.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_08018500 sub_08018500: @ 0x08018500 push {r4, lr} ldr r4, _08018550 @ =gUnk_02033AB8 adds r3, r4, #4 ldr r0, _08018554 @ =gUnk_080B3D14 ldrb r1, [r4] lsls r1, r1, #1 adds r1, r1, r0 ldrb r2, [r4, #1] lsls r0, r2, #1 adds r0, r0, r2 ldrh r1, [r1] adds r0, r0, r1 movs r2, #0 _0801851A: strh r0, [r3] adds r0, #1 adds r3, #2 adds r2, #1 cmp r2, #2 bls _0801851A ldrb r1, [r4] lsls r0, r1, #2 adds r0, r0, r1 ldr r1, _08018558 @ =0x00000C81 adds r0, r0, r1 movs r2, #0 adds r1, r4, #0 adds r1, #0xa _08018536: strh r0, [r3] adds r0, #1 adds r3, #2 adds r2, #1 cmp r2, #4 bls _08018536 movs r0, #5 bl sub_08018690 movs r0, #0 strb r0, [r4, #2] pop {r4, pc} .align 2, 0 _08018550: .4byte gUnk_02033AB8 _08018554: .4byte gUnk_080B3D14 _08018558: .4byte 0x00000C81 thumb_func_start sub_0801855C sub_0801855C: @ 0x0801855C push {r4, r5, r6, lr} ldr r4, _08018570 @ =gUnk_02033AB8 adds r0, r4, #0 movs r1, #0x14 bl sub_0801D630 adds r5, r4, #0 ldr r4, _08018574 @ =gUnk_080B3D20 movs r6, #0 b _0801858C .align 2, 0 _08018570: .4byte gUnk_02033AB8 _08018574: .4byte gUnk_080B3D20 _08018578: adds r0, r4, #0 bl sub_080185B4 cmp r0, #0 beq _08018584 ldrb r6, [r5, #3] _08018584: ldrb r0, [r5, #3] adds r0, #1 strb r0, [r5, #3] adds r4, #4 _0801858C: ldrb r0, [r4] cmp r0, #0xff bne _08018578 strb r6, [r5, #3] ldrb r0, [r5, #3] lsls r0, r0, #2 ldr r1, _080185B0 @ =gUnk_080B3D20 adds r4, r0, r1 ldrb r0, [r4, #2] strb r0, [r5] ldrb r0, [r4, #3] strb r0, [r5, #1] adds r0, r6, #1 strb r0, [r5, #3] bl sub_08018500 pop {r4, r5, r6, pc} .align 2, 0 _080185B0: .4byte gUnk_080B3D20 thumb_func_start sub_080185B4 sub_080185B4: @ 0x080185B4 push {lr} adds r2, r0, #0 ldrb r0, [r2] cmp r0, #0xff bne _080185C2 movs r0, #0 b _080185F6 _080185C2: cmp r0, #0xfe bne _080185D4 ldrb r0, [r2, #1] bl sub_0807CA84 cmp r0, #0 beq _080185F6 movs r0, #1 b _080185F6 _080185D4: cmp r0, #0xfd beq _080185F0 ldr r1, _080185EC @ =gUnk_0811E454 ldrb r0, [r2] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] ldrb r1, [r2, #1] bl sub_0807CB10 b _080185F6 .align 2, 0 _080185EC: .4byte gUnk_0811E454 _080185F0: ldrb r0, [r2, #1] bl sub_0801E7F4 _080185F6: pop {pc} thumb_func_start sub_080185F8 sub_080185F8: @ 0x080185F8 push {r4, r5, lr} ldr r5, _08018624 @ =gUnk_02033AB8 ldrb r0, [r5, #3] lsls r0, r0, #2 ldr r1, _08018628 @ =gUnk_080B3D20 adds r4, r0, r1 adds r0, r4, #0 bl sub_080185B4 cmp r0, #0 beq _08018620 ldrb r0, [r4, #2] strb r0, [r5] ldrb r0, [r4, #3] strb r0, [r5, #1] ldrb r0, [r5, #3] adds r0, #1 strb r0, [r5, #3] bl sub_08018500 _08018620: pop {r4, r5, pc} .align 2, 0 _08018624: .4byte gUnk_02033AB8 _08018628: .4byte gUnk_080B3D20 thumb_func_start sub_0801862C sub_0801862C: @ 0x0801862C push {r4, r5, lr} ldr r1, _0801864C @ =gUnk_03003F80 movs r2, #0 movs r0, #0x16 strb r0, [r1, #0xc] ldr r5, _08018650 @ =gUnk_030010A0 adds r0, r5, #0 adds r0, #0x35 strb r2, [r0] ldr r4, _08018654 @ =gUnk_02033AB8 ldrb r0, [r4] cmp r0, #0xff bne _08018658 ldrh r0, [r4, #4] strh r0, [r5, #0x36] b _0801868C .align 2, 0 _0801864C: .4byte gUnk_03003F80 _08018650: .4byte gUnk_030010A0 _08018654: .4byte gUnk_02033AB8 _08018658: ldrb r0, [r4, #2] lsls r0, r0, #1 adds r1, r4, #4 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r5, #0x36] ldrb r0, [r4, #2] adds r0, #1 strb r0, [r4, #2] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #7 bls _0801868C movs r0, #0 strb r0, [r4, #2] movs r0, #8 bl sub_08018690 ldrh r0, [r4, #4] ldrh r5, [r5, #0x36] cmp r0, r5 bne _0801868C adds r1, r0, #0 ldrh r0, [r4, #0x12] strh r0, [r4, #4] strh r1, [r4, #0x12] _0801868C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08018690 sub_08018690: @ 0x08018690 push {r4, r5, r6, lr} adds r6, r1, #0 subs r4, r0, #1 cmp r4, #0 beq _080186BC lsls r0, r4, #1 adds r5, r0, r6 _0801869E: bl sub_08000E50 adds r1, r4, #1 bl __modsi3 ldrh r2, [r5] lsls r0, r0, #1 adds r0, r0, r6 ldrh r1, [r0] strh r1, [r5] strh r2, [r0] subs r5, #2 subs r4, #1 cmp r4, #0 bne _0801869E _080186BC: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080186C0 sub_080186C0: @ 0x080186C0 ldr r3, _080186D0 @ =gUnk_02033A90 adds r2, r3, #0 adds r2, #0x28 movs r1, #0xff strb r1, [r2] strh r0, [r3, #0x2c] bx lr .align 2, 0 _080186D0: .4byte gUnk_02033A90 thumb_func_start sub_080186D4 sub_080186D4: @ 0x080186D4 push {lr} ldr r0, _080186E8 @ =gUnk_02033A90 adds r0, #0x28 ldrb r0, [r0] cmp r0, #0xff bne _080186E4 bl sub_0801855C _080186E4: pop {pc} .align 2, 0 _080186E8: .4byte gUnk_02033A90 thumb_func_start sub_080186EC sub_080186EC: @ 0x080186EC push {r4, r5, lr} movs r5, #0 ldr r4, _0801870C @ =gUnk_080C9CBC _080186F2: ldrb r0, [r4, #3] cmp r0, #8 bne _08018700 ldrb r1, [r4, #4] adds r0, r5, #0 bl sub_08018738 _08018700: adds r4, #8 adds r5, #1 cmp r5, #0x64 bls _080186F2 pop {r4, r5, pc} .align 2, 0 _0801870C: .4byte gUnk_080C9CBC thumb_func_start sub_08018710 sub_08018710: @ 0x08018710 push {r4, r5, r6, lr} adds r6, r0, #0 movs r5, #0 ldr r4, _08018734 @ =gUnk_080C9CBC _08018718: ldrb r0, [r4, #3] cmp r0, #8 bne _0801872A ldrb r1, [r4, #4] cmp r6, r1 beq _0801872A adds r0, r5, #0 bl sub_08018738 _0801872A: adds r4, #8 adds r5, #1 cmp r5, #0x64 bls _08018718 pop {r4, r5, r6, pc} .align 2, 0 _08018734: .4byte gUnk_080C9CBC thumb_func_start sub_08018738 sub_08018738: @ 0x08018738 push {r4, lr} adds r2, r0, #0 adds r4, r1, #0 lsls r0, r4, #2 adds r0, r0, r4 lsls r0, r0, #2 ldr r1, _08018764 @ =gUnk_080FE320 adds r0, r0, r1 ldr r1, _08018768 @ =gUnk_03000BF0 ldrh r0, [r0, #2] ldrh r1, [r1, #4] cmp r0, r1 bne _08018760 adds r0, r2, #0 bl sub_0801E7F4 adds r1, r0, #0 adds r0, r4, #0 bl sub_0801876C _08018760: pop {r4, pc} .align 2, 0 _08018764: .4byte gUnk_080FE320 _08018768: .4byte gUnk_03000BF0 thumb_func_start sub_0801876C sub_0801876C: @ 0x0801876C push {r4, r5, lr} adds r2, r0, #0 adds r4, r1, #0 lsls r0, r2, #2 adds r0, r0, r2 lsls r0, r0, #2 ldr r1, _08018790 @ =gUnk_080FE320 adds r5, r0, r1 ldrb r0, [r5] cmp r0, #0x1c bls _08018784 b _080189E4 _08018784: lsls r0, r0, #2 ldr r1, _08018794 @ =_08018798 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08018790: .4byte gUnk_080FE320 _08018794: .4byte _08018798 _08018798: @ jump table .4byte _080189E4 @ case 0 .4byte _08018838 @ case 1 .4byte _0801882A @ case 2 .4byte _08018858 @ case 3 .4byte _08018878 @ case 4 .4byte _08018886 @ case 5 .4byte _0801880C @ case 6 .4byte _08018894 @ case 7 .4byte _080188E0 @ case 8 .4byte _08018930 @ case 9 .4byte _080189E4 @ case 10 .4byte _080188FE @ case 11 .4byte _080189E4 @ case 12 .4byte _080189E4 @ case 13 .4byte _080189E4 @ case 14 .4byte _080189B4 @ case 15 .4byte _080189E4 @ case 16 .4byte _080189D0 @ case 17 .4byte _080189E4 @ case 18 .4byte _080189E4 @ case 19 .4byte _080189E4 @ case 20 .4byte _080189E4 @ case 21 .4byte _080189E4 @ case 22 .4byte _080189E4 @ case 23 .4byte _080189A4 @ case 24 .4byte _080188B8 @ case 25 .4byte _080189E4 @ case 26 .4byte _080189E4 @ case 27 .4byte _080189E4 @ case 28 _0801880C: cmp r4, #0 beq _08018812 b _080189E4 _08018812: ldrh r0, [r5, #8] lsrs r0, r0, #4 movs r2, #0x3f ands r0, r2 ldrh r1, [r5, #0xa] lsrs r1, r1, #4 ands r1, r2 lsls r1, r1, #6 orrs r0, r1 bl sub_08018AB4 b _080189E4 _0801882A: cmp r4, #0 bne _08018830 b _080189E4 _08018830: adds r0, r2, #0 bl sub_08018BB4 b _080189E4 _08018838: cmp r4, #0 bne _0801883E b _080189E4 _0801883E: ldrh r0, [r5, #0x12] bl sub_0807CC30 cmp r0, #0 beq _0801884A b _080189E4 _0801884A: ldrb r0, [r5, #1] lsls r0, r0, #4 ldr r1, _08018854 @ =gUnk_080FEC28 b _080188A4 .align 2, 0 _08018854: .4byte gUnk_080FEC28 _08018858: cmp r4, #0 bne _0801885E b _080189E4 _0801885E: ldrh r0, [r5, #0x12] bl sub_0807CA84 cmp r0, #0 beq _0801886A b _080189E4 _0801886A: ldrb r0, [r5, #1] lsls r0, r0, #4 ldr r1, _08018874 @ =gUnk_080FEBE8 b _080188A4 .align 2, 0 _08018874: .4byte gUnk_080FEBE8 _08018878: cmp r4, #0 beq _0801887E b _080189E4 _0801887E: adds r0, r2, #0 bl sub_08018A58 b _080189E4 _08018886: cmp r4, #0 bne _0801888C b _080189E4 _0801888C: adds r0, r2, #0 bl sub_08018B50 b _080189E4 _08018894: cmp r4, #0 beq _0801889A b _080189E4 _0801889A: ldrb r0, [r5, #1] cmp r0, #0x80 beq _080188B0 lsls r0, r0, #4 ldr r1, _080188AC @ =gUnk_080FECC8 _080188A4: adds r0, r0, r1 bl sub_0804ADF8 b _080189E4 .align 2, 0 _080188AC: .4byte gUnk_080FECC8 _080188B0: adds r0, r2, #0 bl sub_080189EC b _080189E4 _080188B8: ldrb r0, [r5, #1] lsls r0, r0, #4 ldr r1, _080188DC @ =gUnk_080FED18 adds r0, r0, r1 bl sub_0804ADF8 adds r2, r0, #0 cmp r2, #0 bne _080188CC b _080189E4 _080188CC: rsbs r0, r4, #0 orrs r0, r4 asrs r0, r0, #0x1f movs r1, #2 ands r0, r1 strb r0, [r2, #0xa] b _080189E4 .align 2, 0 _080188DC: .4byte gUnk_080FED18 _080188E0: cmp r4, #0 bne _080188E6 b _080189E4 _080188E6: movs r0, #0xb4 lsls r0, r0, #1 ldrh r1, [r5, #8] lsrs r1, r1, #4 movs r3, #0x3f ands r1, r3 ldrh r2, [r5, #0xa] lsrs r2, r2, #4 ands r2, r3 lsls r2, r2, #6 orrs r1, r2 b _0801899C _080188FE: cmp r4, #0 beq _080189E4 ldrb r0, [r5, #1] lsls r0, r0, #4 ldr r1, _08018924 @ =gUnk_080FED58 adds r0, r0, r1 bl sub_0804ADF8 ldr r2, _08018928 @ =gUnk_02034350 ldrb r0, [r5, #1] lsls r0, r0, #2 adds r2, #0x8c adds r2, r0, r2 ldr r1, _0801892C @ =gUnk_080FED98 adds r0, r0, r1 ldr r0, [r0] str r0, [r2] b _080189E4 .align 2, 0 _08018924: .4byte gUnk_080FED58 _08018928: .4byte gUnk_02034350 _0801892C: .4byte gUnk_080FED98 _08018930: cmp r4, #0 beq _080189E4 ldrb r0, [r5, #1] lsls r0, r0, #4 ldr r1, _08018974 @ =gUnk_080FEE78 adds r0, r0, r1 bl sub_0804ADF8 adds r2, r0, #0 cmp r2, #0 beq _08018958 ldr r0, _08018978 @ =gUnk_03000BF0 ldrh r1, [r0, #6] ldrh r3, [r5, #8] adds r1, r1, r3 strh r1, [r2, #0x38] ldrh r0, [r0, #8] ldrh r1, [r5, #0xa] adds r0, r0, r1 strh r0, [r2, #0x3a] _08018958: ldrb r0, [r5, #1] cmp r0, #0 bne _0801897C ldrh r1, [r5, #8] lsrs r1, r1, #4 movs r2, #0x3f ands r1, r2 ldrh r0, [r5, #0xa] lsrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r1, r0 movs r0, #0x8d b _0801899C .align 2, 0 _08018974: .4byte gUnk_080FEE78 _08018978: .4byte gUnk_03000BF0 _0801897C: ldrh r4, [r5, #8] lsrs r4, r4, #4 movs r1, #0x3f ands r4, r1 ldrh r0, [r5, #0xa] lsrs r0, r0, #4 ands r0, r1 lsls r0, r0, #6 orrs r4, r0 subs r1, r4, #1 movs r0, #0x8c movs r2, #1 bl sub_0807B314 movs r0, #0x8e adds r1, r4, #0 _0801899C: movs r2, #1 bl sub_0807B314 b _080189E4 _080189A4: cmp r4, #0 beq _080189E4 ldr r0, _080189B0 @ =gUnk_080FEE18 bl sub_0804ADDC b _080189E4 .align 2, 0 _080189B0: .4byte gUnk_080FEE18 _080189B4: cmp r4, #0 beq _080189C4 ldr r0, _080189C0 @ =gUnk_080FEE58 bl sub_0804ADF8 b _080189E4 .align 2, 0 _080189C0: .4byte gUnk_080FEE58 _080189C4: ldr r0, _080189CC @ =gUnk_080FEE48 bl sub_0804ADF8 b _080189E4 .align 2, 0 _080189CC: .4byte gUnk_080FEE48 _080189D0: cmp r4, #0 beq _080189E4 movs r0, #0x80 lsls r0, r0, #1 movs r1, #0x79 bl sub_0807CC9C ldr r0, _080189E8 @ =gUnk_080FEE38 bl sub_0804ADDC _080189E4: pop {r4, r5, pc} .align 2, 0 _080189E8: .4byte gUnk_080FEE38 thumb_func_start sub_080189EC sub_080189EC: @ 0x080189EC push {r4, r5, r6, lr} lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #2 ldr r0, _08018A48 @ =gUnk_080FE320 adds r1, r1, r0 ldrh r0, [r1, #8] lsrs r6, r0, #4 movs r2, #0x3f ands r6, r2 ldrh r0, [r1, #0xa] lsrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r6, r0 subs r6, #0x42 movs r5, #0 _08018A0E: ldr r1, _08018A4C @ =0x000001DF adds r0, r5, r1 adds r1, r6, r5 movs r2, #2 bl sub_0807B314 adds r5, #1 cmp r5, #3 bls _08018A0E adds r6, #0x40 movs r5, #0 _08018A24: ldr r1, _08018A50 @ =0x000001E3 adds r0, r5, r1 adds r4, r6, r5 adds r1, r4, #0 movs r2, #2 bl sub_0807B314 ldr r1, _08018A54 @ =0x000001DB adds r0, r5, r1 adds r1, r4, #0 movs r2, #1 bl sub_0807B314 adds r5, #1 cmp r5, #3 bls _08018A24 pop {r4, r5, r6, pc} .align 2, 0 _08018A48: .4byte gUnk_080FE320 _08018A4C: .4byte 0x000001DF _08018A50: .4byte 0x000001E3 _08018A54: .4byte 0x000001DB thumb_func_start sub_08018A58 sub_08018A58: @ 0x08018A58 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #2 ldr r0, _08018AAC @ =gUnk_080FE320 adds r1, r1, r0 ldrh r0, [r1, #8] lsrs r5, r0, #4 movs r2, #0x3f ands r5, r2 ldrh r0, [r1, #0xa] lsrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r5, r0 subs r5, #0x43 ldr r6, _08018AB0 @ =0x00000232 movs r0, #0 _08018A80: movs r4, #0 movs r1, #0x40 adds r1, r1, r5 mov r8, r1 adds r7, r0, #1 _08018A8A: adds r0, r6, #0 adds r6, #1 adds r1, r5, r4 movs r2, #1 bl sub_0807B314 adds r4, #1 cmp r4, #6 bls _08018A8A mov r5, r8 adds r0, r7, #0 cmp r0, #3 bls _08018A80 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08018AAC: .4byte gUnk_080FE320 _08018AB0: .4byte 0x00000232 thumb_func_start sub_08018AB4 sub_08018AB4: @ 0x08018AB4 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #4 adds r5, r0, #0 movs r3, #0xf4 lsls r3, r3, #1 movs r7, #0xfa lsls r7, r7, #1 movs r0, #0 _08018ACA: movs r6, #0 movs r1, #0x40 adds r1, r1, r5 mov r8, r1 adds r0, #1 mov sb, r0 adds r4, r5, #0 subs r4, #0x40 _08018ADA: adds r0, r3, #0 adds r3, #1 adds r1, r5, r6 movs r2, #1 str r3, [sp] bl sub_0807B314 adds r0, r7, #0 adds r7, #1 adds r1, r4, #0 movs r2, #2 bl sub_0807B314 adds r4, #1 adds r6, #1 ldr r3, [sp] cmp r6, #3 bls _08018ADA mov r5, r8 mov r0, sb cmp r0, #2 bls _08018ACA add sp, #4 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08018B10 sub_08018B10: @ 0x08018B10 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 movs r0, #0xf8 lsls r0, r0, #1 mov r8, r0 movs r7, #0xfe lsls r7, r7, #1 movs r5, #0 adds r4, r6, #0 subs r4, #0x40 _08018B28: mov r0, r8 movs r1, #1 add r8, r1 adds r1, r6, r5 movs r2, #1 bl sub_0807B314 adds r0, r7, #0 adds r7, #1 adds r1, r4, #0 movs r2, #2 bl sub_0807B314 adds r4, #1 adds r5, #1 cmp r5, #3 bls _08018B28 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08018B50 sub_08018B50: @ 0x08018B50 push {r4, r5, r6, r7, lr} sub sp, #4 lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #2 ldr r0, _08018BAC @ =gUnk_080FE320 adds r2, r1, r0 ldrb r1, [r2, #1] movs r0, #0x80 ands r0, r1 ldr r3, _08018BB0 @ =0x00000219 cmp r0, #0 bne _08018B6C subs r3, #0x19 _08018B6C: ldrh r0, [r2, #8] lsrs r5, r0, #4 movs r1, #0x3f ands r5, r1 ldrh r0, [r2, #0xa] lsrs r0, r0, #4 ands r0, r1 lsls r0, r0, #6 orrs r5, r0 subs r5, #0x82 movs r0, #0 _08018B82: movs r4, #0 adds r6, r5, #0 adds r6, #0x40 adds r7, r0, #1 _08018B8A: adds r0, r3, #0 adds r3, #1 adds r1, r5, r4 movs r2, #1 str r3, [sp] bl sub_0807B314 adds r4, #1 ldr r3, [sp] cmp r4, #4 bls _08018B8A adds r5, r6, #0 adds r0, r7, #0 cmp r0, #4 bls _08018B82 add sp, #4 pop {r4, r5, r6, r7, pc} .align 2, 0 _08018BAC: .4byte gUnk_080FE320 _08018BB0: .4byte 0x00000219 thumb_func_start sub_08018BB4 sub_08018BB4: @ 0x08018BB4 push {r4, r5, lr} sub sp, #8 adds r4, r0, #0 lsls r0, r4, #3 ldr r1, _08018C14 @ =gUnk_080FEAC8 adds r0, r0, r1 mov r5, sp mov r1, sp movs r2, #8 bl sub_0801D66C lsls r0, r4, #2 adds r0, r0, r4 lsls r0, r0, #2 ldr r1, _08018C18 @ =gUnk_080FE320 adds r0, r0, r1 ldrh r1, [r0, #8] lsrs r1, r1, #4 movs r2, #0x3f ands r1, r2 ldrh r0, [r0, #0xa] lsrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r1, r0 strh r1, [r5, #4] mov r0, sp bl sub_0804B3C4 ldrb r0, [r5, #1] bl sub_0807CBD0 cmp r0, #0 bne _08018C10 ldrh r3, [r5, #4] ldrb r1, [r5, #6] movs r0, #1 ands r0, r1 movs r2, #2 cmp r0, #0 bne _08018C08 movs r2, #1 _08018C08: movs r0, #0x73 adds r1, r3, #0 bl sub_0807B314 _08018C10: add sp, #8 pop {r4, r5, pc} .align 2, 0 _08018C14: .4byte gUnk_080FEAC8 _08018C18: .4byte gUnk_080FE320 thumb_func_start sub_08018C1C sub_08018C1C: @ 0x08018C1C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 ldr r6, _08018C54 @ =0x00000185 movs r0, #0 _08018C28: movs r4, #0 movs r1, #0x40 adds r1, r1, r5 mov r8, r1 adds r7, r0, #1 _08018C32: adds r0, r6, #0 adds r6, #1 adds r1, r5, r4 movs r2, #1 bl sub_0807B314 adds r4, #1 cmp r4, #4 bls _08018C32 mov r5, r8 adds r0, r7, #0 cmp r0, #3 bls _08018C28 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08018C54: .4byte 0x00000185 thumb_func_start sub_08018C58 sub_08018C58: @ 0x08018C58 push {r4, r5, lr} adds r4, r0, #0 movs r5, #0 _08018C5E: movs r1, #0x98 lsls r1, r1, #2 adds r0, r5, r1 adds r1, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _08018C84 @ =0x00000261 adds r0, r5, r1 adds r1, r4, #1 movs r2, #1 bl sub_0807B314 adds r5, #2 adds r4, #0x40 cmp r5, #5 bls _08018C5E pop {r4, r5, pc} .align 2, 0 _08018C84: .4byte 0x00000261 thumb_func_start sub_08018C88 sub_08018C88: @ 0x08018C88 push {lr} adds r2, r0, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 beq _08018CB4 adds r1, r2, #0 adds r1, #0x3d movs r0, #0 strb r0, [r1] ldr r1, _08018CB0 @ =gUnk_080B3DD0 ldrb r0, [r2, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r2, #0 bl _call_via_r1 b _08018CB8 .align 2, 0 _08018CB0: .4byte gUnk_080B3DD0 _08018CB4: bl sub_0805E780 _08018CB8: pop {pc} .align 2, 0 thumb_func_start sub_08018CBC sub_08018CBC: @ 0x08018CBC push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x84 ldr r5, _08018D50 @ =gUnk_03001160 ldr r0, [r5, #0x2c] str r0, [r4, #0x2c] str r0, [r1] subs r1, #4 ldr r0, [r5, #0x30] str r0, [r4, #0x30] str r0, [r1] ldrb r1, [r5, #0x14] movs r0, #0xe ands r0, r1 strb r0, [r4, #0x14] lsls r0, r0, #2 strb r0, [r4, #0x15] movs r0, #0x80 lsls r0, r0, #3 strh r0, [r4, #0x24] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x96 strb r0, [r1] adds r0, r5, #0 adds r0, #0x3c ldrb r0, [r0] adds r0, #1 movs r2, #0x80 rsbs r2, r2, #0 adds r1, r2, #0 adds r2, r4, #0 adds r2, #0x3c orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x3b ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x3b strb r0, [r1] ldr r6, [r4, #0x54] cmp r6, #0 beq _08018D58 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r0, #0x56 strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x40 movs r0, #0x1c strb r0, [r1] adds r1, #4 movs r0, #6 strb r0, [r1] ldr r0, _08018D54 @ =gUnk_080B3E18 str r0, [r4, #0x48] ldr r0, [r4, #0x54] adds r0, #0x62 movs r1, #0 strb r1, [r0] ldr r2, [r4, #0x54] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2, #0x18] b _08018DD2 .align 2, 0 _08018D50: .4byte gUnk_03001160 _08018D54: .4byte gUnk_080B3E18 _08018D58: ldr r7, _08018DDC @ =gUnk_03003F80 ldrb r0, [r7, #0x1c] cmp r0, #0 bne _08018D64 bl sub_0805E780 _08018D64: movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #6 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #0xa6 strh r0, [r4, #0x12] movs r0, #0x33 strb r0, [r4, #0x1a] adds r0, r4, #0 adds r0, #0x60 strh r6, [r0] ldrb r0, [r7, #0x1d] subs r0, #1 strb r0, [r4, #0xa] ldr r1, _08018DE0 @ =gUnk_080B3DE0 ldrb r0, [r4, #0xa] lsls r0, r0, #1 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r4, #0xe] ldrb r0, [r4, #0xa] lsls r0, r0, #1 adds r0, #1 adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x44 strb r1, [r0] adds r1, r4, #0 adds r1, #0x40 movs r0, #0x1b strb r0, [r1] ldr r1, _08018DE4 @ =gUnk_080B3DE8 ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [r4, #0x48] str r4, [r5, #0x70] adds r0, r5, #0 bl sub_08078CD0 str r6, [r5, #0x70] ldrb r1, [r4, #0xa] adds r1, #0xa adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08018FA0 _08018DD2: adds r0, r4, #0 bl sub_0801766C pop {r4, r5, r6, r7, pc} .align 2, 0 _08018DDC: .4byte gUnk_03003F80 _08018DE0: .4byte gUnk_080B3DE0 _08018DE4: .4byte gUnk_080B3DE8 thumb_func_start sub_08018DE8 sub_08018DE8: @ 0x08018DE8 push {r4, r5, lr} adds r4, r0, #0 ldr r0, [r4, #0x54] adds r0, #0x3a ldrb r1, [r0] movs r5, #4 adds r0, r5, #0 ands r0, r1 lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _08018E08 ldr r0, _08018E18 @ =gUnk_03003F80 strb r1, [r0, #0x1c] bl sub_0805E780 _08018E08: ldr r0, _08018E18 @ =gUnk_03003F80 ldrb r0, [r0, #0x1c] cmp r0, #0 beq _08018E1C cmp r0, #5 beq _08018E24 b _08018E5A .align 2, 0 _08018E18: .4byte gUnk_03003F80 _08018E1C: adds r0, r4, #0 bl sub_08018F6C b _08018E5A _08018E24: ldr r0, [r4, #0x54] strb r5, [r0, #0xd] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] movs r2, #2 movs r0, #2 strb r0, [r4, #0xc] adds r3, r4, #0 adds r3, #0x29 ldrb r1, [r3] subs r0, #0xa ands r0, r1 orrs r0, r2 strb r0, [r3] ldr r2, [r4, #0x54] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r4, #0 bl sub_08018FA0 _08018E5A: ldr r0, _08018E64 @ =gUnk_03001160 bl sub_08078CD0 pop {r4, r5, pc} .align 2, 0 _08018E64: .4byte gUnk_03001160 thumb_func_start sub_08018E68 sub_08018E68: @ 0x08018E68 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r0, [r4, #0x54] cmp r0, #0 bne _08018E82 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 movs r1, #5 bl sub_08008790 b _08018EA8 _08018E82: adds r0, #0x3a ldrb r1, [r0] movs r0, #4 ands r0, r1 cmp r0, #0 bne _08018E92 bl sub_0805E780 _08018E92: adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08018EA8 adds r0, r4, #0 bl sub_08018F6C b _08018F62 _08018EA8: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff beq _08018F46 adds r0, r4, #0 bl sub_0806F69C ldrb r0, [r4, #0x15] cmp r0, #8 beq _08018EEA cmp r0, #8 bgt _08018ECC cmp r0, #0 beq _08018ED6 b _08018EEE _08018ECC: cmp r0, #0x10 beq _08018EDE cmp r0, #0x18 beq _08018EE4 b _08018EEE _08018ED6: movs r6, #0 movs r5, #4 rsbs r5, r5, #0 b _08018EEE _08018EDE: movs r6, #0 movs r5, #4 b _08018EEE _08018EE4: movs r6, #4 rsbs r6, r6, #0 b _08018EEC _08018EEA: movs r6, #4 _08018EEC: movs r5, #0 _08018EEE: ldr r1, [r4, #0x54] cmp r1, #0 beq _08018F00 ldrb r0, [r4, #0x15] strb r0, [r1, #0x15] ldr r1, [r4, #0x54] adds r0, r4, #0 bl sub_0806FA24 _08018F00: ldrb r0, [r4, #0xb] cmp r0, #0 bne _08018F0C adds r0, r4, #0 bl sub_0800451C _08018F0C: adds r0, r4, #0 adds r1, r6, #0 adds r2, r5, #0 bl sub_0800029C ldr r1, _08018F64 @ =gUnk_080B3DF4 bl sub_08007DD6 cmp r0, #0 bne _08018F62 adds r0, r4, #0 adds r1, r6, #0 adds r2, r5, #0 bl sub_080002B4 cmp r0, #0x74 beq _08018F62 ldr r1, _08018F68 @ =gUnk_08003E44 movs r0, #0x2e ldrsh r2, [r4, r0] adds r2, r2, r6 movs r0, #0x32 ldrsh r3, [r4, r0] adds r3, r3, r5 adds r0, r4, #0 bl sub_080040D8 cmp r0, #0 beq _08018F62 _08018F46: ldr r0, [r4, #0x54] cmp r0, #0 bne _08018F56 ldrb r1, [r4, #0xa] adds r1, #0xd adds r0, r4, #0 bl sub_08004260 _08018F56: ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_08018F6C _08018F62: pop {r4, r5, r6, pc} .align 2, 0 _08018F64: .4byte gUnk_080B3DF4 _08018F68: .4byte gUnk_08003E44 thumb_func_start sub_08018F6C sub_08018F6C: @ 0x08018F6C push {r4, lr} adds r4, r0, #0 ldr r1, [r4, #0x54] cmp r1, #0 beq _08018F8A movs r0, #5 strb r0, [r1, #0xd] ldr r2, [r4, #0x54] ldrb r1, [r2, #0x18] subs r0, #9 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] b _08018F9A _08018F8A: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] cmp r0, #0 beq _08018F9E _08018F9A: bl sub_0805E780 _08018F9E: pop {r4, pc} thumb_func_start sub_08018FA0 sub_08018FA0: @ 0x08018FA0 push {lr} adds r2, r0, #0 ldr r0, _08018FC8 @ =gUnk_03001160 adds r0, #0x38 ldrb r0, [r0] adds r1, r2, #0 adds r1, #0x38 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #2 bne _08018FBC movs r0, #1 strb r0, [r2, #0xb] _08018FBC: ldrb r0, [r2, #0xa] adds r0, #0xea bl sub_080A3268 pop {pc} .align 2, 0 _08018FC8: .4byte gUnk_03001160 thumb_func_start sub_08018FCC sub_08018FCC: @ 0x08018FCC push {lr} ldr r2, _08018FE0 @ =gUnk_080B3E30 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08018FE0: .4byte gUnk_080B3E30 thumb_func_start sub_08018FE4 sub_08018FE4: @ 0x08018FE4 push {r4, r5, r6, lr} adds r4, r0, #0 movs r3, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r5, [r4, #0xa] cmp r5, #0 bne _08018FF6 b _080190FC _08018FF6: ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r3 strb r0, [r4, #0x18] ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x10] movs r0, #0x6a str r0, [r4, #0x74] ldrb r0, [r4, #0xb] adds r1, r4, #0 adds r1, #0x40 strb r0, [r1] movs r0, #0xa6 strh r0, [r4, #0x12] ldrb r0, [r1] adds r6, r1, #0 cmp r0, #0xe bne _08019026 movs r0, #0x80 lsls r0, r0, #3 b _0801902A _08019026: movs r0, #0xc0 lsls r0, r0, #2 _0801902A: strh r0, [r4, #0x24] ldrb r0, [r4, #0x14] lsls r0, r0, #2 strb r0, [r4, #0x15] ldr r2, _0801905C @ =gUnk_03001160 adds r0, r2, #0 adds r0, #0x3c ldrb r0, [r0] adds r0, #1 adds r1, r4, #0 adds r1, #0x3c strb r0, [r1] adds r0, r2, #0 adds r0, #0x3b ldrb r0, [r0] subs r1, #1 strb r0, [r1] adds r0, r4, #0 adds r0, #0x38 ldrb r0, [r0] adds r5, r2, #0 cmp r0, #2 bne _08019060 movs r0, #1 b _08019062 .align 2, 0 _0801905C: .4byte gUnk_03001160 _08019060: movs r0, #0 _08019062: strb r0, [r4, #0xb] 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] ldrb r0, [r4, #0x14] lsrs r0, r0, #1 lsls r3, r0, #1 adds r3, r3, r0 lsls r3, r3, #2 ldr r0, _080190F8 @ =gUnk_080B3E40 adds r3, r3, r0 movs r0, #0 ldrsb r0, [r3, r0] ldrh r1, [r5, #0x2e] adds r0, r0, r1 strh r0, [r4, #0x2e] movs r0, #1 ldrsb r0, [r3, r0] ldrh r5, [r5, #0x32] adds r0, r0, r5 strh r0, [r4, #0x32] ldrb r1, [r3, #2] movs r0, #1 ands r1, r0 lsls r1, r1, #6 ldrb r2, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] ldrb r1, [r3, #3] lsls r1, r1, #7 movs r2, #0x7f ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] ldrb r0, [r3, #6] adds r5, r4, #0 adds r5, #0x58 strb r0, [r5] movs r0, #4 ldrsb r0, [r3, r0] str r0, [r4, #0x6c] movs r0, #5 ldrsb r0, [r3, r0] str r0, [r4, #0x70] ldr r0, [r3, #8] str r0, [r4, #0x48] adds r0, r4, #0 bl sub_0801766C ldrb r0, [r6] cmp r0, #0xe bne _080190E8 ldrb r0, [r5] adds r0, #6 strb r0, [r5] adds r1, r4, #0 adds r1, #0x60 movs r0, #0 strh r0, [r1] _080190E8: ldrb r1, [r5] adds r0, r4, #0 bl sub_08004260 movs r0, #0xfc bl sub_080A3268 b _08019178 .align 2, 0 _080190F8: .4byte gUnk_080B3E40 _080190FC: ldrb r1, [r4, #0x11] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r4, #0x11] movs r0, #0xff strb r0, [r4, #0x1e] ldr r2, _08019168 @ =gUnk_080B3E40 ldrb r1, [r4, #0x14] lsrs r1, r1, #1 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r0, r0, r2 ldrb r1, [r0, #2] ands r1, r3 lsls r1, r1, #6 ldrb r2, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] ldr r0, _0801916C @ =gUnk_03003F80 str r4, [r0, #0x2c] adds r0, r4, #0 movs r1, #1 movs r2, #3 bl sub_080AE008 adds r0, r4, #0 bl sub_08079BD8 adds r0, r4, #0 adds r0, #0x68 ldrb r0, [r0] cmp r0, #0xa bne _08019170 movs r0, #0x3c str r0, [r4, #0x78] ldrb r1, [r4, #0xa] movs r0, #0x43 movs r2, #1 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _08019172 adds r0, r4, #0 bl sub_0806FA24 b _08019172 .align 2, 0 _08019168: .4byte gUnk_080B3E40 _0801916C: .4byte gUnk_03003F80 _08019170: str r5, [r4, #0x78] _08019172: adds r0, r4, #0 bl sub_0801917C _08019178: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0801917C sub_0801917C: @ 0x0801917C push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r2, [r4, #0xa] cmp r2, #0 bne _08019188 b _0801934A _08019188: ldr r0, [r4, #0x74] subs r0, #1 str r0, [r4, #0x74] cmp r0, #0 bne _0801919C adds r0, r4, #0 bl sub_08019468 bl sub_0805E780 _0801919C: adds r0, r4, #0 bl sub_08004274 ldr r0, [r4, #0x74] cmp r0, #0x17 bhi _080191BA ldrb r2, [r4, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #1 eors r1, r0 subs r0, #5 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] _080191BA: adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 adds r0, #0x40 ldrb r1, [r0] movs r5, #4 adds r6, r0, #0 cmp r1, #0xe bne _080191D0 movs r5, #1 _080191D0: ldr r2, [r4, #0x6c] ldr r3, [r4, #0x70] adds r0, r4, #0 adds r1, r5, #0 bl sub_08008782 cmp r0, #0 beq _080191EE ldrb r0, [r6] cmp r0, #0xe beq _080191EA bl sub_0805E780 _080191EA: movs r7, #1 b _080191F0 _080191EE: movs r7, #0 _080191F0: ldrb r0, [r6] cmp r0, #0xe bne _0801920E ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] movs r1, #7 ands r0, r1 cmp r0, #0 bne _0801920E adds r0, r4, #0 movs r1, #0x14 movs r2, #0 bl sub_080A29AC _0801920E: ldrb r0, [r4, #0xb] cmp r0, #0 bne _0801921A adds r0, r4, #0 bl sub_0800451C _0801921A: movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _08019288 @ =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 ldr r1, _0801928C @ =gUnk_03001160 adds r1, #0x38 ldrb r1, [r1] movs r2, #0x80 bl sub_080002F0 cmp r0, #0 bne _080192D0 cmp r7, #0 bne _080192D0 ldr r1, _08019290 @ =gUnk_08003E44 movs r0, #0x2e ldrsh r2, [r4, r0] movs r5, #0x32 ldrsh r3, [r4, r5] adds r0, r4, #0 bl sub_080040D8 cmp r0, #0 beq _080192D0 movs r0, #0x1e strb r0, [r4, #0xe] ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r0, [r6] cmp r0, #0xe bne _08019294 adds r0, r4, #0 bl sub_08019468 adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] adds r1, #0xf adds r0, r4, #0 bl sub_08004260 b _080192A2 .align 2, 0 _08019288: .4byte gUnk_03000BF0 _0801928C: .4byte gUnk_03001160 _08019290: .4byte gUnk_08003E44 _08019294: adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] adds r1, #2 adds r0, r4, #0 bl sub_08004260 _080192A2: adds r0, r4, #0 bl sub_08017744 ldrb r0, [r4, #0x10] movs r1, #0x7f ands r1, r0 movs r0, #0 strb r1, [r4, #0x10] strh r0, [r4, #0x24] ldr r0, [r4, #0x2c] cmp r0, #0 bge _080192BC movs r0, #0 _080192BC: str r0, [r4, #0x2c] ldr r0, [r4, #0x30] cmp r0, #0 bge _080192C6 movs r0, #0 _080192C6: str r0, [r4, #0x30] movs r0, #0xc5 lsls r0, r0, #1 bl sub_080A3268 _080192D0: adds r5, r4, #0 adds r5, #0x41 ldrb r0, [r5] cmp r0, #0 bne _080192DC b _08019402 _080192DC: cmp r7, #0 beq _080192E2 b _08019402 _080192E2: ldrb r0, [r6] cmp r0, #0xe bne _080192EE adds r0, r4, #0 bl sub_08019468 _080192EE: adds r0, r4, #0 bl sub_08017744 ldrb r1, [r5] movs r0, #0x3f ands r0, r1 cmp r0, #0x42 bne _08019336 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #3 strb r0, [r4, #0xc] ldrb r0, [r4, #0x15] movs r1, #0x10 eors r0, r1 strb r0, [r4, #0x15] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r4, #0x24] movs r0, #0x80 lsls r0, r0, #8 str r0, [r4, #0x20] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #6 bl sub_08004260 b _08019402 _08019336: ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] movs r0, #1 strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 strb r0, [r4, #0x18] b _08019402 _0801934A: ldr r1, _0801938C @ =gUnk_03003F80 ldr r0, [r1, #0x2c] cmp r0, r4 bne _0801935E adds r0, r1, #0 adds r0, #0x21 ldrb r0, [r0] cmp r0, #0 bne _08019368 str r0, [r1, #0x2c] _0801935E: adds r0, r1, #0 adds r0, #0x21 strb r2, [r0] bl sub_0805E780 _08019368: adds r0, r4, #0 adds r0, #0x68 ldrb r0, [r0] cmp r0, #0xa bne _08019398 ldr r0, _0801938C @ =gUnk_03003F80 adds r2, r0, #0 adds r2, #0x21 ldrb r0, [r2] adds r1, r0, #0 cmp r1, #0 beq _08019398 cmp r1, #0x77 bhi _08019390 adds r0, #1 strb r0, [r2] b _08019398 .align 2, 0 _0801938C: .4byte gUnk_03003F80 _08019390: adds r1, r4, #0 adds r1, #0x40 movs r0, #0xe strb r0, [r1] _08019398: ldr r0, _08019404 @ =gUnk_02002A40 adds r0, #0xad ldrb r5, [r0] ldrb r1, [r4, #0x1e] ldr r2, [r4, #0x78] subs r1, r1, r2 ldr r0, _08019408 @ =gUnk_03001160 ldrb r0, [r0, #0x1e] cmp r1, r0 beq _080193C2 adds r0, r0, r2 strb r0, [r4, #0x1e] cmp r5, #0 bne _080193B8 adds r0, #0x2a strb r0, [r4, #0x1e] _080193B8: ldrb r1, [r4, #0x1e] ldrh r2, [r4, #0x12] adds r0, r4, #0 bl sub_080042D0 _080193C2: ldr r0, _08019408 @ =gUnk_03001160 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080193FA cmp r5, #0 beq _080193FA adds r0, r4, #0 adds r0, #0x40 ldrb r2, [r0] movs r0, #4 movs r1, #1 movs r3, #9 bl sub_08077CB8 cmp r0, #0 beq _080193FA ldr r2, _0801940C @ =gUnk_03003F80 ldrb r1, [r2, #4] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #4] movs r0, #1 rsbs r0, r0, #0 bl sub_08054330 _080193FA: ldr r1, _08019408 @ =gUnk_03001160 adds r0, r4, #0 bl sub_08078E84 _08019402: pop {r4, r5, r6, r7, pc} .align 2, 0 _08019404: .4byte gUnk_02002A40 _08019408: .4byte gUnk_03001160 _0801940C: .4byte gUnk_03003F80 thumb_func_start sub_08019410 sub_08019410: @ 0x08019410 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0xe bhi _08019428 adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] adds r0, r4, #0 bl sub_08004260 b _0801942E _08019428: adds r0, r4, #0 bl sub_08004274 _0801942E: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _08019440 bl sub_0805E780 _08019440: pop {r4, pc} .align 2, 0 thumb_func_start sub_08019444 sub_08019444: @ 0x08019444 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 _08019464 bl sub_0805E780 _08019464: pop {r4, pc} .align 2, 0 thumb_func_start sub_08019468 sub_08019468: @ 0x08019468 push {lr} adds r1, r0, #0 adds r0, #0x40 ldrb r0, [r0] cmp r0, #0xe bne _0801947E adds r0, r1, #0 movs r1, #0x50 movs r2, #0 bl sub_080A29AC _0801947E: pop {pc} thumb_func_start sub_08019480 sub_08019480: @ 0x08019480 push {lr} ldr r2, _08019494 @ =gUnk_080B43F4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08019494: .4byte gUnk_080B43F4 thumb_func_start sub_08019498 sub_08019498: @ 0x08019498 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _08019504 @ =gUnk_03001160 adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA24 ldrb r0, [r5, #0xc] adds r0, #1 movs r2, #0 strb r0, [r5, #0xc] ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r5, #0x18] adds r4, #0x3c ldrb r0, [r4] adds r0, #1 adds r1, r5, #0 adds r1, #0x3c strb r0, [r1] ldr r0, _08019508 @ =gUnk_080B4408 str r0, [r5, #0x48] movs r0, #0xe0 lsls r0, r0, #2 strh r0, [r5, #0x24] movs r0, #2 str r0, [r5, #0x74] str r2, [r5, #0x70] adds r0, r5, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #2 bne _080194E6 movs r0, #1 strb r0, [r5, #0xb] _080194E6: ldrb r0, [r5, #0x14] lsls r0, r0, #2 strb r0, [r5, #0x15] movs r0, #0x3c str r0, [r5, #0x6c] ldrb r0, [r5, #0x14] adds r2, r0, #0 cmp r0, #2 beq _08019534 cmp r0, #2 bgt _0801950C cmp r0, #0 beq _08019516 b _0801954E .align 2, 0 _08019504: .4byte gUnk_03001160 _08019508: .4byte gUnk_080B4408 _0801950C: cmp r0, #4 beq _0801952C cmp r0, #6 beq _08019542 b _0801954E _08019516: ldrh r0, [r5, #0x2e] subs r0, #3 strh r0, [r5, #0x2e] ldrh r0, [r5, #0x32] subs r0, #8 strh r0, [r5, #0x32] ldrb r0, [r5, #0x18] movs r1, #0x80 orrs r0, r1 strb r0, [r5, #0x18] b _0801954E _0801952C: ldrh r0, [r5, #0x2e] adds r0, #2 strh r0, [r5, #0x2e] b _0801954E _08019534: ldrb r0, [r5, #0x18] movs r1, #0x40 orrs r0, r1 strb r0, [r5, #0x18] ldrh r0, [r5, #0x2e] adds r0, #1 b _08019546 _08019542: ldrh r0, [r5, #0x2e] subs r0, #1 _08019546: strh r0, [r5, #0x2e] ldrh r0, [r5, #0x32] subs r0, #4 strh r0, [r5, #0x32] _0801954E: ldr r1, _08019578 @ =gUnk_080B43FC lsrs r0, r2, #1 adds r0, r0, r1 ldrb r1, [r0] adds r0, r5, #0 bl sub_08004260 adds r0, r5, #0 bl sub_0801766C adds r0, r5, #0 bl sub_0806F69C adds r0, r5, #0 bl sub_08019580 ldr r0, _0801957C @ =0x0000013F bl sub_080A3268 pop {r4, r5, pc} .align 2, 0 _08019578: .4byte gUnk_080B43FC _0801957C: .4byte 0x0000013F thumb_func_start sub_08019580 sub_08019580: @ 0x08019580 push {r4, r5, lr} adds r4, r0, #0 ldr r0, [r4, #0x6c] subs r0, #1 str r0, [r4, #0x6c] movs r1, #1 rsbs r1, r1, #0 cmp r0, r1 beq _08019638 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] ldrb r0, [r4, #0xb] cmp r0, #0 bne _080195B0 adds r0, r4, #0 bl sub_0800451C _080195B0: movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _0801962C @ =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 ldr r1, _08019630 @ =gUnk_03001160 adds r1, #0x38 ldrb r1, [r1] movs r2, #0x80 bl sub_080002F0 cmp r0, #0 bne _08019602 ldr r1, _08019634 @ =gUnk_08003E44 movs r0, #0x2e ldrsh r2, [r4, r0] movs r5, #0x32 ldrsh r3, [r4, r5] adds r0, r4, #0 bl sub_080040D8 cmp r0, #0 beq _08019602 adds r0, r4, #0 movs r1, #0x19 movs r2, #0 bl sub_080A29AC bl sub_0805E780 _08019602: adds r0, r4, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0 beq _0801961A adds r0, r4, #0 movs r1, #0x19 movs r2, #0 bl sub_080A29AC bl sub_0805E780 _0801961A: adds r0, r4, #0 movs r1, #0xc bl sub_08008790 cmp r0, #0 beq _0801963C bl sub_0805E780 b _0801963C .align 2, 0 _0801962C: .4byte gUnk_03000BF0 _08019630: .4byte gUnk_03001160 _08019634: .4byte gUnk_08003E44 _08019638: bl sub_0805E780 _0801963C: adds r0, r4, #0 bl sub_08019644 pop {r4, r5, pc} thumb_func_start sub_08019644 sub_08019644: @ 0x08019644 push {lr} adds r2, r0, #0 ldr r0, [r2, #0x74] subs r1, r0, #1 str r1, [r2, #0x74] cmp r1, #0 bne _08019674 movs r0, #2 str r0, [r2, #0x74] ldr r0, [r2, #0x70] adds r0, #1 str r0, [r2, #0x70] ldr r3, _08019678 @ =gUnk_080B4400 adds r0, r0, r3 ldrb r0, [r0] cmp r0, #0xff bne _08019668 str r1, [r2, #0x70] _08019668: ldr r0, [r2, #0x70] adds r0, r0, r3 ldrb r1, [r0] adds r0, r2, #0 bl sub_0801D2B4 _08019674: pop {pc} .align 2, 0 _08019678: .4byte gUnk_080B4400 thumb_func_start sub_0801967C sub_0801967C: @ 0x0801967C push {lr} ldr r1, _08019690 @ =gUnk_080B4458 ldr r0, _08019694 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08019690: .4byte gUnk_080B4458 _08019694: .4byte gUnk_02000080 thumb_func_start sub_08019698 sub_08019698: @ 0x08019698 push {r4, r5, lr} ldr r0, _08019724 @ =gUnk_02032EC0 ldrb r1, [r0, #3] lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #1 ldr r1, _08019728 @ =gUnk_080B4410 adds r4, r0, r1 movs r0, #0x80 lsls r0, r0, #1 ldrh r1, [r4, #4] bl sub_0807CC9C ldrh r0, [r4] ldrh r1, [r4, #2] bl sub_08052FD8 ldr r5, _0801972C @ =gUnk_03000BF0 ldrh r0, [r4, #6] ldrh r1, [r5, #0xa] adds r0, r0, r1 strh r0, [r5, #0xa] ldrh r0, [r4, #8] ldrh r2, [r5, #0xc] adds r0, r0, r2 strh r0, [r5, #0xc] ldr r1, _08019730 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] bl sub_08000108 ldr r2, _08019734 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _08019738 @ =0x0000FEFF ands r0, r1 strh r0, [r2] movs r0, #0x2c movs r1, #0 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _08019700 ldrh r0, [r4, #0xa] ldrh r2, [r5, #0xa] adds r0, r0, r2 strh r0, [r1, #0x2e] ldrh r0, [r4, #0xc] ldrh r5, [r5, #0xc] adds r0, r0, r5 strh r0, [r1, #0x32] _08019700: movs r0, #0x11 bl sub_0801D7EC bl sub_080AD90C bl sub_080AD9B0 bl sub_080AD918 movs r0, #4 movs r1, #8 bl sub_08050054 ldr r1, _0801973C @ =gUnk_02018EB0 ldrb r0, [r1] adds r0, #1 strb r0, [r1] pop {r4, r5, pc} .align 2, 0 _08019724: .4byte gUnk_02032EC0 _08019728: .4byte gUnk_080B4410 _0801972C: .4byte gUnk_03000BF0 _08019730: .4byte gUnk_02000070 _08019734: .4byte gUnk_03000F50 _08019738: .4byte 0x0000FEFF _0801973C: .4byte gUnk_02018EB0 thumb_func_start sub_08019740 sub_08019740: @ 0x08019740 push {lr} ldr r0, _0801975C @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08019758 ldr r0, _08019760 @ =gUnk_02018EB0 ldrb r1, [r0] adds r1, #1 strb r1, [r0] movs r1, #0xc3 lsls r1, r1, #1 strh r1, [r0, #4] _08019758: pop {pc} .align 2, 0 _0801975C: .4byte gUnk_03000FD0 _08019760: .4byte gUnk_02018EB0 thumb_func_start sub_08019764 sub_08019764: @ 0x08019764 push {lr} bl sub_080AD90C bl sub_0805E5C0 bl sub_080AD9B0 bl sub_080AD918 ldr r2, _08019798 @ =gUnk_02018EB0 ldrh r0, [r2, #4] subs r0, #1 strh r0, [r2, #4] lsls r0, r0, #0x10 cmp r0, #0 beq _08019790 ldr r0, _0801979C @ =gUnk_03000FF0 ldrh r1, [r0, #2] movs r0, #0xa ands r0, r1 cmp r0, #0 beq _08019796 _08019790: ldrb r0, [r2] adds r0, #1 strb r0, [r2] _08019796: pop {pc} .align 2, 0 _08019798: .4byte gUnk_02018EB0 _0801979C: .4byte gUnk_03000FF0 thumb_func_start sub_080197A0 sub_080197A0: @ 0x080197A0 push {lr} movs r0, #2 movs r1, #0xb bl sub_080A7138 pop {pc} thumb_func_start sub_080197AC sub_080197AC: @ 0x080197AC ldr r0, _080197C4 @ =gUnk_02025EB0 ldr r1, _080197C8 @ =gUnk_03000F70 str r1, [r0] ldr r2, _080197CC @ =gUnk_080B77C0 ldrh r0, [r2] strh r0, [r1] ldr r0, _080197D0 @ =gUnk_0200B650 subs r1, #0xc str r1, [r0] ldrh r0, [r2, #2] strh r0, [r1] bx lr .align 2, 0 _080197C4: .4byte gUnk_02025EB0 _080197C8: .4byte gUnk_03000F70 _080197CC: .4byte gUnk_080B77C0 _080197D0: .4byte gUnk_0200B650 thumb_func_start sub_080197D4 sub_080197D4: @ 0x080197D4 push {r4, r5, lr} adds r4, r0, #0 movs r5, #0x80 lsls r5, r5, #0x18 _080197DC: ldr r3, [r4, #4] cmp r3, #0 beq _08019824 ldr r1, [r4] ldr r0, _08019808 @ =0x7FFFFFFF ands r1, r0 ldr r0, _0801980C @ =gUnk_08324AE4 adds r1, r1, r0 ldr r2, [r4, #8] adds r0, r2, #0 ands r0, r5 cmp r0, #0 beq _0801981A lsrs r0, r3, #0x18 cmp r0, #6 bne _08019810 adds r0, r1, #0 adds r1, r3, #0 bl LZ77UnCompVram b _0801982E .align 2, 0 _08019808: .4byte 0x7FFFFFFF _0801980C: .4byte gUnk_08324AE4 _08019810: adds r0, r1, #0 adds r1, r3, #0 bl LZ77UnCompWram b _0801982E _0801981A: adds r0, r1, #0 adds r1, r3, #0 bl sub_0801D66C b _0801982E _08019824: ldrh r0, [r4] bl sub_0801D714 bl sub_080533CC _0801982E: adds r4, #0xc adds r0, r4, #0 subs r0, #0xc ldr r0, [r0] ands r0, r5 cmp r0, #0 bne _080197DC pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08019840 sub_08019840: @ 0x08019840 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r0, _0801985C @ =gUnk_03003F80 adds r2, r0, #0 adds r2, #0xa8 ldrb r1, [r2] adds r7, r0, #0 cmp r1, #0 bne _08019860 adds r0, #0xa9 ldrb r0, [r0] b _08019862 .align 2, 0 _0801985C: .4byte gUnk_03003F80 _08019860: ldrb r0, [r2] _08019862: cmp r0, #0x12 bne _0801986A bl _0801A2A4 _0801986A: cmp r0, #0x12 bgt _08019878 cmp r0, #3 bne _08019876 bl _0801A2A4 _08019876: b _08019880 _08019878: cmp r0, #0x16 bne _08019880 bl _0801A2A4 _08019880: ldrb r0, [r7, #0x1e] ldr r1, _08019898 @ =gUnk_03001160 mov sb, r1 cmp r0, #0 bne _08019890 ldrb r0, [r1, #0xc] cmp r0, #0x1d bne _0801989C _08019890: mov r2, sb ldrb r4, [r2, #0x15] b _0801989E .align 2, 0 _08019898: .4byte gUnk_03001160 _0801989C: ldrb r4, [r7, #0xd] _0801989E: movs r0, #0x83 ands r0, r4 cmp r0, #0 bne _0801997C ldrb r0, [r7, #0xa] cmp r0, #0 bne _0801997C lsrs r1, r4, #2 mov r0, sb bl sub_0807BDB8 adds r4, r0, #0 cmp r4, #0xff beq _0801997C ldr r5, _08019960 @ =gUnk_03000BF0 ldrb r1, [r5, #0xf] movs r0, #4 ands r0, r1 cmp r0, #0 bne _0801997C lsls r1, r4, #2 ldr r0, _08019964 @ =gUnk_080B4490 adds r6, r1, r0 mov r3, sb movs r1, #0x2e ldrsh r0, [r3, r1] movs r2, #0 ldrsh r1, [r6, r2] adds r0, r0, r1 ldrh r1, [r5, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r3, #0x3f ands r0, r3 mov r1, sb movs r2, #0x32 ldrsh r1, [r1, r2] mov r8, r1 movs r1, #2 ldrsh r6, [r6, r1] mov r2, r8 adds r1, r2, r6 ldrh r2, [r5, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r3 lsls r1, r1, #6 orrs r0, r1 mov r1, sb adds r1, #0x38 ldrb r1, [r1] bl sub_080002E0 cmp r0, #0xff bne _0801997C ldr r0, [r7, #0x30] ldr r1, _08019968 @ =0x00010002 ands r0, r1 cmp r0, #0 bne _0801995A ldrb r1, [r7, #0x1b] movs r0, #0x10 ands r0, r1 cmp r0, #0 bne _0801995A mov r3, sb movs r1, #0x2e ldrsh r0, [r3, r1] ldrh r1, [r5, #6] subs r0, r0, r1 movs r2, #0x32 ldrsh r1, [r3, r2] ldrh r2, [r5, #8] subs r1, r1, r2 adds r2, r4, #0 movs r3, #5 bl sub_080806BC cmp r0, #0 bne _0801996C ldrb r0, [r7, #5] cmp r0, #0 bne _0801995A ldrb r1, [r7, #0x1c] movs r0, #0xf ands r0, r1 cmp r0, #0 bne _0801995A mov r0, sb adds r1, r4, #0 bl sub_0807BD14 cmp r0, #0 bne _0801996C _0801995A: movs r0, #3 bl _0801A2A6 .align 2, 0 _08019960: .4byte gUnk_03000BF0 _08019964: .4byte gUnk_080B4490 _08019968: .4byte 0x00010002 _0801996C: ldr r1, _08019978 @ =gUnk_03001160 lsls r0, r4, #3 strb r0, [r1, #0x15] movs r0, #0xf bl _0801A2A6 .align 2, 0 _08019978: .4byte gUnk_03001160 _0801997C: ldr r4, _080199DC @ =gUnk_03001160 adds r5, r4, #0 adds r5, #0x38 ldrb r0, [r5] bl sub_0808094C mov r8, r0 ldrb r1, [r4, #0x14] movs r0, #6 ands r0, r1 lsls r0, r0, #1 ldr r1, _080199E0 @ =gUnk_080B4468 adds r6, r0, r1 movs r3, #0x2e ldrsh r0, [r4, r3] movs r2, #0 ldrsh r1, [r6, r2] adds r0, r0, r1 ldr r3, _080199E4 @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r0, r0, r1 asrs r7, r0, #4 movs r2, #0x3f ands r7, r2 movs r1, #0x32 ldrsh r0, [r4, r1] movs r4, #2 ldrsh r1, [r6, r4] adds r0, r0, r1 ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r7, r0 ldrb r1, [r5] adds r0, r7, #0 bl sub_080002B0 adds r6, r0, #0 ldr r0, _080199E8 @ =0x00003FFF cmp r6, r0 bhi _080199EC adds r0, r6, #0 bl sub_080002E4 adds r4, r0, #0 b _080199EE .align 2, 0 _080199DC: .4byte gUnk_03001160 _080199E0: .4byte gUnk_080B4468 _080199E4: .4byte gUnk_03000BF0 _080199E8: .4byte 0x00003FFF _080199EC: adds r4, r6, #0 _080199EE: ldr r5, _08019A28 @ =gUnk_03001160 ldrb r1, [r5, #0x14] adds r3, r1, #0 ldr r0, _08019A2C @ =0x00004036 mov sb, r5 cmp r4, r0 bne _080199FE b _08019F0C _080199FE: cmp r4, r0 bhi _08019AE0 cmp r4, #0x71 bne _08019A08 b _08019D94 _08019A08: cmp r4, #0x71 bhi _08019A4E cmp r4, #0x3a bne _08019A12 b _08019CFC _08019A12: cmp r4, #0x3a bhi _08019A30 cmp r4, #0x1a bne _08019A1C b _08019D48 _08019A1C: cmp r4, #0x28 bne _08019A22 b _08019BB8 _08019A22: bl _0801A2A4 .align 2, 0 _08019A28: .4byte gUnk_03001160 _08019A2C: .4byte 0x00004036 _08019A30: cmp r4, #0x5b bne _08019A36 b _08019CFC _08019A36: cmp r4, #0x5b bhi _08019A44 cmp r4, #0x3d bne _08019A40 b _08019DD4 _08019A40: bl _0801A2A4 _08019A44: cmp r4, #0x70 bne _08019A4A b _08019CC0 _08019A4A: bl _0801A2A4 _08019A4E: ldr r0, _08019A6C @ =0x0000400B cmp r4, r0 bne _08019A56 b _08019E44 _08019A56: cmp r4, r0 bhi _08019A70 cmp r4, #0x72 bne _08019A60 b _08019FA8 _08019A60: subs r0, #0xb cmp r4, r0 bne _08019A68 b _08019B78 _08019A68: bl _0801A2A4 .align 2, 0 _08019A6C: .4byte 0x0000400B _08019A70: ldr r0, _08019AD4 @ =0x0000401B cmp r4, r0 bne _08019A78 b _08019C70 _08019A78: cmp r4, r0 bhs _08019A80 bl _0801A2A4 _08019A80: adds r0, #0x12 cmp r4, r0 bls _08019A8A bl _0801A2A4 _08019A8A: subs r0, #2 cmp r4, r0 bhs _08019A94 bl _0801A2A4 _08019A94: mov r0, r8 adds r1, r7, #0 bl sub_0801A370 cmp r0, #0 bne _08019AA4 bl _0801A2A4 _08019AA4: lsls r0, r7, #1 mov r2, r8 adds r2, #4 adds r2, r2, r0 ldrb r1, [r5, #0x14] movs r0, #4 ands r0, r1 lsls r0, r0, #0x18 lsrs r0, r0, #0x1a ldr r3, _08019AD8 @ =0x00004030 adds r1, r3, #0 adds r0, r0, r1 strh r0, [r2] ldr r2, _08019ADC @ =gUnk_03003F80 ldr r1, [r2, #0x30] movs r0, #0x80 ands r1, r0 adds r7, r2, #0 mov sb, r5 cmp r1, #0 bne _08019AD0 b _0801A09A _08019AD0: b _0801A094 .align 2, 0 _08019AD4: .4byte 0x0000401B _08019AD8: .4byte 0x00004030 _08019ADC: .4byte gUnk_03003F80 _08019AE0: ldr r0, _08019B04 @ =0x00004053 cmp r4, r0 bne _08019AE8 b _0801A13C _08019AE8: cmp r4, r0 bhi _08019B24 subs r0, #0xb cmp r4, r0 bhi _08019B08 subs r0, #8 cmp r4, r0 blo _08019AFA b _08019DD4 _08019AFA: subs r0, #2 cmp r4, r0 bne _08019B02 b _08019F50 _08019B02: b _0801A2A4 .align 2, 0 _08019B04: .4byte 0x00004053 _08019B08: ldr r0, _08019B20 @ =0x00004051 cmp r4, r0 bne _08019B10 b _08019CFC _08019B10: cmp r4, r0 bls _08019B16 b _0801A120 _08019B16: subs r0, #7 cmp r4, r0 bne _08019B1E b _0801A0BC _08019B1E: b _0801A2A4 .align 2, 0 _08019B20: .4byte 0x00004051 _08019B24: ldr r0, _08019B48 @ =0x00004058 cmp r4, r0 bne _08019B2C b _0801A19A _08019B2C: cmp r4, r0 bhi _08019B4C subs r0, #2 cmp r4, r0 bne _08019B38 b _0801A15A _08019B38: cmp r4, r0 bls _08019B3E b _0801A198 _08019B3E: subs r0, #1 cmp r4, r0 bne _08019B46 b _0801A158 _08019B46: b _0801A2A4 .align 2, 0 _08019B48: .4byte 0x00004058 _08019B4C: ldr r0, _08019B64 @ =0x0000405F cmp r4, r0 bne _08019B54 b _0801A1D4 _08019B54: cmp r4, r0 bhi _08019B68 subs r0, #5 cmp r4, r0 bne _08019B60 b _08019EC8 _08019B60: b _0801A2A4 .align 2, 0 _08019B64: .4byte 0x0000405F _08019B68: ldr r0, _08019B74 @ =0x0000407D cmp r4, r0 bne _08019B70 b _0801A23C _08019B70: b _0801A2A4 .align 2, 0 _08019B74: .4byte 0x0000407D _08019B78: mov r0, r8 adds r1, r7, #0 movs r2, #2 bl sub_0801A458 cmp r0, #0 bne _08019B88 b _0801A2A4 _08019B88: lsls r0, r7, #1 mov r1, r8 adds r1, #4 adds r1, r1, r0 ldrb r0, [r5, #0x14] lsrs r0, r0, #1 ldr r4, _08019BB0 @ =0x00004001 adds r0, r0, r4 strh r0, [r1] ldr r2, _08019BB4 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x80 ands r0, r1 adds r7, r2, #0 cmp r0, #0 bne _08019BAA b _0801A0F8 _08019BAA: movs r0, #0xc0 b _0801A0FA .align 2, 0 _08019BB0: .4byte 0x00004001 _08019BB4: .4byte gUnk_03003F80 _08019BB8: ldr r1, _08019C50 @ =gUnk_03003F80 ldr r0, [r1, #0x30] movs r2, #0x80 ands r0, r2 cmp r0, #0 beq _08019BC6 b _0801A2A4 _08019BC6: ldrb r0, [r1, #0xa] cmp r0, #0 beq _08019BCE b _0801A2A4 _08019BCE: ldrb r0, [r5, #0x14] lsls r0, r0, #2 ldrb r1, [r1, #0xd] cmp r0, r1 beq _08019BDA b _0801A2A4 _08019BDA: ldrb r1, [r5, #0x15] adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _08019BE6 b _0801A2A4 _08019BE6: adds r0, r5, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r7, #0 bl sub_080002E0 cmp r0, #0xf beq _08019BF8 b _0801A2A4 _08019BF8: bl sub_08079778 cmp r0, #0 bne _08019C02 b _0801A2A4 _08019C02: ldrb r1, [r5, #0x14] movs r0, #6 ands r0, r1 lsls r0, r0, #1 ldr r1, _08019C54 @ =gUnk_080B4478 adds r6, r0, r1 movs r1, #0x2e ldrsh r0, [r5, r1] ldr r4, _08019C58 @ =gUnk_03000BF0 ldrh r1, [r4, #6] subs r0, r0, r1 movs r2, #0 ldrsh r1, [r6, r2] adds r0, r0, r1 movs r3, #0x32 ldrsh r1, [r5, r3] ldrh r2, [r4, #8] subs r1, r1, r2 movs r3, #2 ldrsh r2, [r6, r3] adds r1, r1, r2 bl sub_08080734 adds r2, r0, #0 cmp r2, #0 bne _08019C38 b _0801A2A4 _08019C38: ldrb r1, [r5, #0x14] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08019C5C ldrh r0, [r2, #4] ldrh r4, [r4, #8] adds r0, r0, r4 adds r0, #6 strh r0, [r5, #0x32] b _08019C64 .align 2, 0 _08019C50: .4byte gUnk_03003F80 _08019C54: .4byte gUnk_080B4478 _08019C58: .4byte gUnk_03000BF0 _08019C5C: ldrh r0, [r2, #2] ldrh r4, [r4, #6] adds r0, r0, r4 strh r0, [r5, #0x2e] _08019C64: movs r0, #4 movs r1, #0 movs r2, #1 bl sub_08078AC0 b _0801A2A4 _08019C70: mov r0, r8 adds r1, r7, #0 movs r2, #0xb bl sub_0801A2B0 cmp r0, #0 bne _08019C80 b _0801A2A4 _08019C80: lsls r0, r7, #1 mov r1, r8 adds r1, #4 adds r1, r1, r0 ldrb r0, [r5, #0x14] lsrs r0, r0, #1 ldr r4, _08019CB8 @ =0x0000401C adds r0, r0, r4 movs r3, #0 strh r0, [r1] ldr r1, _08019CBC @ =gUnk_03003F80 movs r0, #0xa0 strb r0, [r1, #6] movs r0, #5 strb r0, [r1, #0xc] ldr r0, [r1, #0x30] movs r2, #1 orrs r0, r2 str r0, [r1, #0x30] strh r3, [r5, #0x2c] strh r3, [r5, #0x30] ldrb r0, [r5, #0x14] lsls r0, r0, #2 strb r0, [r5, #0x15] strb r2, [r5, #0xa] movs r0, #1 b _0801A2A6 .align 2, 0 _08019CB8: .4byte 0x0000401C _08019CBC: .4byte gUnk_03003F80 _08019CC0: ldr r0, _08019CF8 @ =gUnk_03003F80 adds r2, r0, #0 adds r2, #0x35 ldrb r1, [r2] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08019CD2 b _0801A2A4 _08019CD2: adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 bne _08019CE2 b _0801A2A4 _08019CE2: ldrb r0, [r2] lsls r0, r0, #2 adds r1, r6, #0 adds r2, r7, #0 bl sub_0801A9F0 cmp r0, #0 bne _08019CF4 b _0801A2A4 _08019CF4: movs r0, #1 b _0801A2A6 .align 2, 0 _08019CF8: .4byte gUnk_03003F80 _08019CFC: ldr r2, _08019D40 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _08019D0A b _0801A2A4 _08019D0A: mov r1, sb ldrb r0, [r1, #0x14] cmp r0, #0 beq _08019D14 b _0801A2A4 _08019D14: ldr r0, _08019D44 @ =gUnk_0200AF00 adds r0, #0x2d movs r1, #4 strb r1, [r0] adds r0, r2, #0 adds r0, #0x92 ldrh r1, [r0] movs r0, #0xc0 ands r0, r1 cmp r0, #0 bne _08019D2C b _0801A2A4 _08019D2C: movs r0, #1 strb r0, [r2, #0x1a] mov r0, sb adds r0, #0x38 ldrb r1, [r0] adds r0, r7, #0 bl sub_080A7CFC movs r0, #1 b _0801A2A6 .align 2, 0 _08019D40: .4byte gUnk_03003F80 _08019D44: .4byte gUnk_0200AF00 _08019D48: cmp r3, #0 beq _08019D4E b _0801A2A4 _08019D4E: ldr r2, _08019D8C @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x81 lsls r1, r1, #7 ands r0, r1 cmp r0, #0 beq _08019D5E b _0801A2A4 _08019D5E: ldr r0, _08019D90 @ =gUnk_0200AF00 adds r0, #0x2d movs r1, #6 strb r1, [r0] adds r0, r2, #0 adds r0, #0x92 ldrh r1, [r0] movs r0, #0x88 ands r0, r1 cmp r0, #0 bne _08019D76 b _0801A2A4 _08019D76: movs r0, #1 strb r0, [r2, #0x1a] adds r0, r5, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r7, #0 bl sub_080A7C8C movs r0, #2 b _0801A2A6 .align 2, 0 _08019D8C: .4byte gUnk_03003F80 _08019D90: .4byte gUnk_0200AF00 _08019D94: bl sub_08052734 cmp r0, #0 bne _08019D9E b _0801A2A4 _08019D9E: ldr r0, _08019DCC @ =gUnk_0200AF00 adds r0, #0x2d movs r1, #6 strb r1, [r0] ldr r2, _08019DD0 @ =gUnk_03003F80 adds r0, r2, #0 adds r0, #0x92 ldrh r1, [r0] movs r0, #0x88 ands r0, r1 cmp r0, #0 bne _08019DB8 b _0801A2A4 _08019DB8: movs r0, #1 strb r0, [r2, #0x1a] adds r0, r5, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r7, #0 bl sub_0804B388 movs r0, #2 b _0801A2A6 .align 2, 0 _08019DCC: .4byte gUnk_0200AF00 _08019DD0: .4byte gUnk_03003F80 _08019DD4: ldr r4, _08019E3C @ =gUnk_03003F80 ldr r0, [r4, #0x30] movs r1, #0x80 lsls r1, r1, #7 ands r0, r1 cmp r0, #0 beq _08019DE4 b _0801A2A4 _08019DE4: bl sub_08079778 cmp r0, #0 bne _08019DEE b _0801A2A4 _08019DEE: ldrb r0, [r4, #0xa] cmp r0, #0 beq _08019DF6 b _0801A2A4 _08019DF6: ldr r2, _08019E40 @ =gUnk_03001160 ldrb r0, [r2, #0x14] lsls r0, r0, #2 ldrb r3, [r4, #0xd] cmp r0, r3 beq _08019E04 b _0801A2A4 _08019E04: ldrb r1, [r2, #0x15] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08019E10 b _0801A2A4 _08019E10: ldrb r0, [r2, #0xf] cmp r0, #5 bhi _08019E18 b _0801A2A4 _08019E18: movs r0, #0x81 strb r0, [r4, #2] ldr r0, [r4, #0x30] movs r1, #0x20 orrs r0, r1 str r0, [r4, #0x30] movs r0, #0x15 strb r0, [r4, #0xc] movs r0, #0x80 lsls r0, r0, #0xa str r0, [r2, #0x20] ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0x10] movs r0, #1 b _0801A2A6 .align 2, 0 _08019E3C: .4byte gUnk_03003F80 _08019E40: .4byte gUnk_03001160 _08019E44: mov r0, r8 adds r1, r7, #0 movs r2, #8 bl sub_0801A2B0 cmp r0, #0 bne _08019E54 b _0801A2A4 _08019E54: adds r0, r5, #0 adds r0, #0x38 ldrb r0, [r0] lsls r1, r7, #1 cmp r0, #3 bne _08019E84 ldr r0, _08019E7C @ =gUnk_0200B650 adds r0, #4 adds r2, r1, r0 ldrh r0, [r2] cmp r0, r4 bne _08019E84 ldrb r0, [r5, #0x14] lsrs r0, r0, #1 ldr r4, _08019E80 @ =0x0000400C adds r0, r0, r4 strh r0, [r2] mov sb, r5 b _08019E98 .align 2, 0 _08019E7C: .4byte gUnk_0200B650 _08019E80: .4byte 0x0000400C _08019E84: mov r0, r8 adds r0, #4 adds r0, r0, r1 ldr r2, _08019EBC @ =gUnk_03001160 ldrb r1, [r2, #0x14] lsrs r1, r1, #1 ldr r3, _08019EC0 @ =0x0000400C adds r1, r1, r3 strh r1, [r0] mov sb, r2 _08019E98: ldr r2, _08019EC4 @ =gUnk_03003F80 movs r3, #0 movs r0, #0xa0 strb r0, [r2, #6] movs r0, #5 strb r0, [r2, #0xc] ldr r0, [r2, #0x30] movs r1, #1 orrs r0, r1 str r0, [r2, #0x30] mov r4, sb strh r3, [r4, #0x2c] strh r3, [r4, #0x30] ldrb r0, [r4, #0x14] lsls r0, r0, #2 strb r0, [r4, #0x15] movs r0, #1 b _0801A2A6 .align 2, 0 _08019EBC: .4byte gUnk_03001160 _08019EC0: .4byte 0x0000400C _08019EC4: .4byte gUnk_03003F80 _08019EC8: mov r0, r8 adds r1, r7, #0 movs r2, #2 bl sub_0801A2B0 cmp r0, #0 bne _08019ED8 b _0801A2A4 _08019ED8: lsls r0, r7, #1 mov r1, r8 adds r1, #4 adds r1, r1, r0 ldrb r0, [r5, #0x14] lsrs r0, r0, #1 ldr r2, _08019F04 @ =0x0000405B adds r0, r0, r2 movs r3, #0 strh r0, [r1] ldr r2, _08019F08 @ =gUnk_03003F80 movs r0, #0x98 strb r0, [r2, #6] movs r0, #5 strb r0, [r2, #0xc] ldr r0, [r2, #0x30] movs r1, #1 orrs r0, r1 str r0, [r2, #0x30] strh r3, [r5, #0x2c] strh r3, [r5, #0x30] b _0801A228 .align 2, 0 _08019F04: .4byte 0x0000405B _08019F08: .4byte gUnk_03003F80 _08019F0C: mov r0, r8 adds r1, r7, #0 movs r2, #0xb bl sub_0801A2B0 cmp r0, #0 bne _08019F1C b _0801A2A4 _08019F1C: lsls r0, r7, #1 mov r1, r8 adds r1, #4 adds r1, r1, r0 ldrb r0, [r5, #0x14] lsrs r0, r0, #1 ldr r3, _08019F48 @ =0x00004037 adds r0, r0, r3 movs r3, #0 strh r0, [r1] ldr r2, _08019F4C @ =gUnk_03003F80 movs r0, #0xa0 strb r0, [r2, #6] movs r0, #5 strb r0, [r2, #0xc] ldr r0, [r2, #0x30] movs r1, #1 orrs r0, r1 str r0, [r2, #0x30] strh r3, [r5, #0x2c] strh r3, [r5, #0x30] b _0801A228 .align 2, 0 _08019F48: .4byte 0x00004037 _08019F4C: .4byte gUnk_03003F80 _08019F50: cmp r3, #0 beq _08019F56 b _0801A2A4 _08019F56: ldr r2, _08019FA0 @ =gUnk_03003F80 adds r0, r2, #0 adds r0, #0x35 ldrb r0, [r0] ldrb r1, [r2, #0xd] orrs r0, r1 movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _08019F6C b _0801A2A4 _08019F6C: adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #2 ands r0, r1 cmp r0, #0 bne _08019F7C b _0801A2A4 _08019F7C: lsls r1, r7, #1 mov r0, r8 adds r0, #4 adds r0, r0, r1 ldr r1, _08019FA4 @ =0x0000403F strh r1, [r0] movs r0, #0x82 strb r0, [r2, #6] movs r0, #5 strb r0, [r2, #0xc] ldr r0, [r2, #0x30] movs r1, #1 orrs r0, r1 str r0, [r2, #0x30] strh r3, [r5, #0x2c] strh r3, [r5, #0x30] b _0801A228 .align 2, 0 _08019FA0: .4byte gUnk_03003F80 _08019FA4: .4byte 0x0000403F _08019FA8: ldr r0, _0801A07C @ =gUnk_03003F80 adds r0, #0x35 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08019FB8 b _0801A2A4 _08019FB8: adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 bne _08019FC8 b _0801A2A4 _08019FC8: adds r0, r5, #0 movs r1, #1 bl sub_0801A570 adds r7, r0, #0 ldr r0, _0801A080 @ =0x0000FFFF cmp r7, r0 bne _08019FDA b _0801A2A4 _08019FDA: lsrs r0, r7, #0xc subs r0, #1 mov r8, r0 ldr r0, _0801A084 @ =0x00000FFF ands r7, r0 movs r4, #0 movs r6, #0 ldr r5, _0801A088 @ =gUnk_03004040 mov sb, r5 _08019FEC: mov r1, sb ldr r0, [r1] movs r1, #1 lsls r1, r4 ldr r0, [r0, #0x6c] ands r0, r1 cmp r0, #0 beq _0801A00A ldr r0, [r5] movs r1, #0 bl sub_0801A570 cmp r0, r7 bne _0801A00A adds r6, #1 _0801A00A: adds r5, #4 adds r4, #1 cmp r4, #2 bls _08019FEC cmp r6, r8 bhs _0801A018 b _0801A2A4 _0801A018: movs r0, #7 mov r1, r8 movs r2, #0 bl sub_080A2960 adds r5, r0, #0 cmp r5, #0 bne _0801A02A b _0801A2A4 _0801A02A: ldr r3, _0801A08C @ =gUnk_03001160 ldrb r0, [r3, #0x14] lsls r0, r0, #2 movs r4, #0 strb r0, [r5, #0x15] movs r1, #0x3f adds r0, r7, #0 ands r0, r1 lsls r0, r0, #4 adds r0, #8 ldr r2, _0801A090 @ =gUnk_03000BF0 ldrh r1, [r2, #6] adds r1, r1, r0 strh r1, [r5, #0x2e] movs r0, #0xfc lsls r0, r0, #4 ands r0, r7 lsrs r0, r0, #2 adds r0, #8 ldrh r1, [r2, #8] adds r1, r1, r0 strh r1, [r5, #0x32] adds r0, r3, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r5, #0 adds r0, #0x38 strb r1, [r0] ldr r2, _0801A07C @ =gUnk_03003F80 movs r0, #0xa0 strb r0, [r2, #6] movs r0, #5 strb r0, [r2, #0xc] ldr r0, [r2, #0x30] movs r1, #1 orrs r0, r1 str r0, [r2, #0x30] strh r4, [r3, #0x2c] strh r4, [r3, #0x30] ldrb r0, [r5, #0x15] b _0801A0B6 .align 2, 0 _0801A07C: .4byte gUnk_03003F80 _0801A080: .4byte 0x0000FFFF _0801A084: .4byte 0x00000FFF _0801A088: .4byte gUnk_03004040 _0801A08C: .4byte gUnk_03001160 _0801A090: .4byte gUnk_03000BF0 _0801A094: movs r0, #0xa0 strb r0, [r2, #6] b _0801A09E _0801A09A: movs r0, #0x90 strb r0, [r7, #6] _0801A09E: movs r2, #0 movs r0, #5 strb r0, [r7, #0xc] ldr r0, [r7, #0x30] movs r1, #1 orrs r0, r1 str r0, [r7, #0x30] mov r3, sb strh r2, [r3, #0x2c] strh r2, [r3, #0x30] ldrb r0, [r3, #0x14] lsls r0, r0, #2 _0801A0B6: strb r0, [r3, #0x15] movs r0, #1 b _0801A2A6 _0801A0BC: mov r0, r8 adds r1, r7, #0 movs r2, #8 bl sub_0801A458 cmp r0, #0 bne _0801A0CC b _0801A2A4 _0801A0CC: lsls r0, r7, #1 mov r1, r8 adds r1, #4 adds r1, r1, r0 ldrb r0, [r5, #0x14] lsrs r0, r0, #1 ldr r4, _0801A0F0 @ =0x0000404B adds r0, r0, r4 strh r0, [r1] ldr r2, _0801A0F4 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x80 ands r0, r1 adds r7, r2, #0 cmp r0, #0 beq _0801A0F8 movs r0, #0xc0 b _0801A0FA .align 2, 0 _0801A0F0: .4byte 0x0000404B _0801A0F4: .4byte gUnk_03003F80 _0801A0F8: movs r0, #0xa0 _0801A0FA: strb r0, [r7, #6] movs r2, #0 movs r0, #5 strb r0, [r7, #0xc] ldr r0, [r7, #0x30] movs r1, #1 orrs r0, r1 str r0, [r7, #0x30] ldr r1, _0801A11C @ =gUnk_03001160 strh r2, [r1, #0x2c] strh r2, [r1, #0x30] ldrb r0, [r1, #0x14] lsls r0, r0, #2 strb r0, [r1, #0x15] movs r0, #1 b _0801A2A6 .align 2, 0 _0801A11C: .4byte gUnk_03001160 _0801A120: ldr r0, _0801A134 @ =gUnk_03003F80 adds r0, #0x35 ldrb r0, [r0] cmp r0, #0 beq _0801A12C b _0801A2A4 _0801A12C: ldr r0, _0801A138 @ =0x00004054 adds r1, r5, #0 b _0801A28C .align 2, 0 _0801A134: .4byte gUnk_03003F80 _0801A138: .4byte 0x00004054 _0801A13C: ldr r0, _0801A150 @ =gUnk_03003F80 adds r0, #0x35 ldrb r0, [r0] cmp r0, #6 beq _0801A148 b _0801A2A4 _0801A148: ldr r0, _0801A154 @ =0x00004054 adds r1, r5, #0 b _0801A28C .align 2, 0 _0801A150: .4byte gUnk_03003F80 _0801A154: .4byte 0x00004054 _0801A158: subs r7, #1 _0801A15A: ldr r0, _0801A190 @ =gUnk_03003F80 adds r0, #0x35 ldrb r0, [r0] cmp r0, #0 beq _0801A166 b _0801A2A4 _0801A166: mov r0, sb ldrh r1, [r0, #0x32] movs r0, #0xf ands r0, r1 cmp r0, #9 bgt _0801A174 b _0801A2A4 _0801A174: movs r4, #0 ldr r5, _0801A194 @ =gUnk_03004040 _0801A178: ldr r0, [r5] movs r1, #0 bl sub_0801A8D0 cmp r0, r7 bne _0801A186 b _0801A288 _0801A186: adds r5, #4 adds r4, #1 cmp r4, #2 bls _0801A178 b _0801A2A4 .align 2, 0 _0801A190: .4byte gUnk_03003F80 _0801A194: .4byte gUnk_03004040 _0801A198: subs r7, #0x40 _0801A19A: ldr r0, _0801A1CC @ =gUnk_03003F80 adds r0, #0x35 ldrb r0, [r0] cmp r0, #6 beq _0801A1A6 b _0801A2A4 _0801A1A6: mov r2, sb ldrh r1, [r2, #0x2e] movs r0, #0xf ands r0, r1 cmp r0, #9 ble _0801A2A4 movs r4, #0 ldr r5, _0801A1D0 @ =gUnk_03004040 _0801A1B6: ldr r0, [r5] movs r1, #6 bl sub_0801A8D0 cmp r0, r7 beq _0801A288 adds r5, #4 adds r4, #1 cmp r4, #2 bls _0801A1B6 b _0801A2A4 .align 2, 0 _0801A1CC: .4byte gUnk_03003F80 _0801A1D0: .4byte gUnk_03004040 _0801A1D4: movs r0, #2 ands r0, r1 cmp r0, #0 beq _0801A2A4 ldr r6, _0801A234 @ =gUnk_03003F80 adds r0, r6, #0 adds r0, #0x35 ldrb r0, [r0] ldrb r1, [r6, #0xd] orrs r0, r1 movs r1, #0x80 ands r0, r1 lsls r0, r0, #0x18 lsrs r4, r0, #0x18 cmp r4, #0 bne _0801A2A4 adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r3, #1 mov r8, r3 mov r0, r8 ands r0, r1 cmp r0, #0 beq _0801A2A4 ldr r0, _0801A238 @ =0x00004074 adds r1, r5, #0 adds r1, #0x38 ldrb r2, [r1] adds r1, r7, #0 bl sub_0800015E movs r0, #0xa0 strb r0, [r6, #6] movs r0, #5 strb r0, [r6, #0xc] ldr r0, [r6, #0x30] mov r1, r8 orrs r0, r1 str r0, [r6, #0x30] strh r4, [r5, #0x2c] strh r4, [r5, #0x30] _0801A228: ldrb r0, [r5, #0x14] lsls r0, r0, #2 strb r0, [r5, #0x15] movs r0, #1 b _0801A2A6 .align 2, 0 _0801A234: .4byte gUnk_03003F80 _0801A238: .4byte 0x00004074 _0801A23C: cmp r3, #4 bne _0801A2A4 ldr r1, _0801A280 @ =gUnk_03003F80 adds r0, r1, #0 adds r0, #0x35 ldrb r0, [r0] ldrb r1, [r1, #0xd] orrs r0, r1 movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _0801A2A4 adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0801A2A4 ldr r0, _0801A284 @ =0x00004074 adds r4, r5, #0 adds r4, #0x38 ldrb r2, [r4] adds r1, r7, #0 bl sub_0800015E ldrb r2, [r4] movs r0, #0xd adds r1, r7, #0 bl sub_080001D0 movs r0, #1 b _0801A2A6 .align 2, 0 _0801A280: .4byte gUnk_03003F80 _0801A284: .4byte 0x00004074 _0801A288: ldr r0, _0801A29C @ =0x00004059 ldr r1, _0801A2A0 @ =gUnk_03001160 _0801A28C: adds r1, #0x38 ldrb r2, [r1] adds r1, r7, #0 bl sub_0800015E movs r0, #4 b _0801A2A6 .align 2, 0 _0801A29C: .4byte 0x00004059 _0801A2A0: .4byte gUnk_03001160 _0801A2A4: movs r0, #0 _0801A2A6: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0801A2B0 sub_0801A2B0: @ 0x0801A2B0 push {r4, r5, r6, lr} adds r5, r0, #0 adds r4, r1, #0 adds r6, r2, #0 ldr r1, _0801A31C @ =gUnk_080B4488 ldr r2, _0801A320 @ =gUnk_03001160 ldrb r0, [r2, #0x14] lsrs r0, r0, #1 lsls r0, r0, #1 adds r0, r0, r1 ldrh r3, [r0] ldr r1, _0801A324 @ =gUnk_03003F80 adds r0, r1, #0 adds r0, #0x35 ldrb r0, [r0] ldrb r1, [r1, #0xd] orrs r0, r1 movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _0801A36C adds r0, r2, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0801A36C adds r0, r4, r3 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 adds r0, r2, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r4, #0 bl sub_080002B0 bl sub_080002E4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 adds r1, r0, #0 cmp r0, #0x52 beq _0801A36C cmp r0, #0x52 bgt _0801A328 cmp r0, #0x26 blt _0801A32C cmp r0, #0x27 ble _0801A36C cmp r0, #0x29 beq _0801A36C b _0801A32C .align 2, 0 _0801A31C: .4byte gUnk_080B4488 _0801A320: .4byte gUnk_03001160 _0801A324: .4byte gUnk_03003F80 _0801A328: cmp r1, #0x74 beq _0801A36C _0801A32C: ldr r0, _0801A364 @ =0x00002004 adds r3, r5, r0 adds r0, r3, r4 ldrb r0, [r0] cmp r0, #0x28 beq _0801A36C movs r1, #0x3f ands r1, r4 ldr r0, _0801A368 @ =gUnk_03000BF0 lsls r1, r1, #4 ldrh r2, [r0, #6] adds r1, r1, r2 lsrs r2, r4, #6 lsls r2, r2, #4 ldrh r0, [r0, #8] adds r2, r2, r0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r2, r2, #0x10 asrs r2, r2, #0x10 adds r0, r3, #0 adds r3, r6, #0 bl sub_080AE4CC cmp r0, #0 bne _0801A36C movs r0, #1 b _0801A36E .align 2, 0 _0801A364: .4byte 0x00002004 _0801A368: .4byte gUnk_03000BF0 _0801A36C: movs r0, #0 _0801A36E: pop {r4, r5, r6, pc} thumb_func_start sub_0801A370 sub_0801A370: @ 0x0801A370 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} mov r8, r0 adds r4, r1, #0 ldr r5, _0801A3C8 @ =gUnk_03001160 ldrb r1, [r5, #0x14] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0801A44E bl sub_0801A4F8 cmp r0, #0 beq _0801A44E movs r0, #2 bl sub_0808094C adds r7, r0, #0 ldr r1, _0801A3CC @ =gUnk_080B4488 ldrb r0, [r5, #0x14] lsrs r0, r0, #1 lsls r0, r0, #1 adds r0, r0, r1 movs r1, #0 ldrsh r6, [r0, r1] adds r4, r4, r6 adds r0, r5, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r4, #0 bl sub_080002B0 adds r1, r0, #0 ldr r0, _0801A3D0 @ =0x0000402B cmp r1, r0 beq _0801A3D4 cmp r1, r0 blo _0801A3D6 adds r0, #4 cmp r1, r0 bhi _0801A3D6 _0801A3C4: movs r0, #1 b _0801A450 .align 2, 0 _0801A3C8: .4byte gUnk_03001160 _0801A3CC: .4byte gUnk_080B4488 _0801A3D0: .4byte 0x0000402B _0801A3D4: adds r4, r4, r6 _0801A3D6: adds r0, r7, r4 ldr r1, _0801A40C @ =0x00001F84 adds r0, r0, r1 ldrb r0, [r0] cmp r0, #0x46 beq _0801A44E ldr r0, _0801A410 @ =gUnk_03001160 adds r0, #0x38 ldrb r1, [r0] adds r0, r4, #0 bl sub_080002B0 bl sub_080002E4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x52 beq _0801A44E cmp r0, #0x52 bgt _0801A414 cmp r0, #0x26 blt _0801A418 cmp r0, #0x27 ble _0801A44E cmp r0, #0x29 beq _0801A44E b _0801A418 .align 2, 0 _0801A40C: .4byte 0x00001F84 _0801A410: .4byte gUnk_03001160 _0801A414: cmp r0, #0x74 beq _0801A44E _0801A418: ldr r0, _0801A434 @ =0x00002004 add r0, r8 adds r0, r0, r4 ldrb r0, [r0] adds r1, r0, #0 cmp r0, #0xa beq _0801A446 cmp r0, #0xa bgt _0801A438 cmp r0, #0 beq _0801A3C4 cmp r0, #5 beq _0801A440 b _0801A44E .align 2, 0 _0801A434: .4byte 0x00002004 _0801A438: cmp r1, #0x44 beq _0801A446 cmp r1, #0x45 bne _0801A44E _0801A440: cmp r6, #1 bne _0801A44E b _0801A3C4 _0801A446: movs r0, #1 rsbs r0, r0, #0 cmp r6, r0 beq _0801A3C4 _0801A44E: movs r0, #0 _0801A450: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0801A458 sub_0801A458: @ 0x0801A458 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r7, r0, #0 adds r5, r1, #0 mov r8, r2 ldr r0, _0801A4A4 @ =gUnk_080B4488 ldr r6, _0801A4A8 @ =gUnk_03001160 ldrb r1, [r6, #0x14] lsrs r1, r1, #1 lsls r1, r1, #1 adds r1, r1, r0 movs r0, #0 ldrsh r4, [r1, r0] bl sub_0801A4F8 cmp r0, #0 beq _0801A4F0 adds r4, r5, r4 adds r0, r6, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r4, #0 bl sub_080002B0 bl sub_080002E4 cmp r0, #0x52 beq _0801A4F0 cmp r0, #0x52 bhi _0801A4AC cmp r0, #0x26 blo _0801A4B0 cmp r0, #0x27 bls _0801A4F0 cmp r0, #0x29 beq _0801A4F0 b _0801A4B0 .align 2, 0 _0801A4A4: .4byte gUnk_080B4488 _0801A4A8: .4byte gUnk_03001160 _0801A4AC: cmp r0, #0x74 beq _0801A4F0 _0801A4B0: ldr r2, _0801A4E8 @ =0x00002004 adds r3, r7, r2 adds r5, r3, r4 ldrb r0, [r5] cmp r0, #0x28 beq _0801A4F0 movs r1, #0x3f ands r1, r4 ldr r0, _0801A4EC @ =gUnk_03000BF0 lsls r1, r1, #4 ldrh r2, [r0, #6] adds r1, r1, r2 lsrs r2, r4, #6 lsls r2, r2, #4 ldrh r0, [r0, #8] adds r2, r2, r0 adds r0, r3, #0 mov r3, r8 bl sub_080AE4CC cmp r0, #0 bne _0801A4F0 ldrb r0, [r5] subs r0, #1 cmp r0, #0xe bls _0801A4F0 movs r0, #1 b _0801A4F2 .align 2, 0 _0801A4E8: .4byte 0x00002004 _0801A4EC: .4byte gUnk_03000BF0 _0801A4F0: movs r0, #0 _0801A4F2: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0801A4F8 sub_0801A4F8: @ 0x0801A4F8 push {r4, r5, lr} ldr r4, _0801A538 @ =gUnk_03003F80 ldr r0, [r4, #0x30] movs r5, #0x80 ands r0, r5 cmp r0, #0 beq _0801A544 movs r0, #0x45 bl sub_0807CA84 cmp r0, #1 bne _0801A564 ldrb r1, [r4, #0xd] adds r0, r5, #0 ands r0, r1 cmp r0, #0 bne _0801A564 ldr r2, _0801A53C @ =gUnk_03001160 ldrb r0, [r2, #0x15] cmp r1, r0 bne _0801A564 ldrb r0, [r2, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 ldr r1, _0801A540 @ =gUnk_080B44A0 lsrs r0, r0, #2 adds r0, r0, r1 ldrh r1, [r0] ldrh r0, [r2, #0x2a] b _0801A55E .align 2, 0 _0801A538: .4byte gUnk_03003F80 _0801A53C: .4byte gUnk_03001160 _0801A540: .4byte gUnk_080B44A0 _0801A544: adds r0, r4, #0 adds r0, #0x35 ldrb r0, [r0] ldrb r1, [r4, #0xd] orrs r0, r1 movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _0801A564 ldr r0, _0801A568 @ =gUnk_03001160 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 _0801A55E: ands r0, r1 cmp r0, #0 bne _0801A56C _0801A564: movs r0, #0 b _0801A56E .align 2, 0 _0801A568: .4byte gUnk_03001160 _0801A56C: movs r0, #1 _0801A56E: pop {r4, r5, pc} thumb_func_start sub_0801A570 sub_0801A570: @ 0x0801A570 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r6, r0, #0 mov sl, r1 cmp r6, #0 bne _0801A58C ldr r0, _0801A588 @ =0x0000FFFF b _0801A8C2 .align 2, 0 _0801A588: .4byte 0x0000FFFF _0801A58C: adds r4, r6, #0 adds r4, #0x38 ldrb r0, [r4] bl sub_0808094C mov r8, r0 ldr r0, _0801A668 @ =0x00005004 add r0, r8 mov ip, r0 movs r5, #4 movs r7, #2 ldrb r0, [r6, #0x14] lsrs r0, r0, #1 mov sb, r4 cmp r0, #1 beq _0801A678 cmp r0, #1 ble _0801A5BC cmp r0, #2 bne _0801A5B6 b _0801A73C _0801A5B6: cmp r0, #3 bne _0801A5BC b _0801A7FC _0801A5BC: movs r1, #0x2e ldrsh r0, [r6, r1] ldr r2, _0801A66C @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r0, r0, r1 asrs r4, r0, #4 movs r3, #0x3f ands r4, r3 movs r1, #0x32 ldrsh r0, [r6, r1] ldrh r1, [r2, #8] adds r1, #0xa subs r0, r0, r1 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r4, r0 mov r2, r8 adds r2, #4 movs r3, #0xdc lsls r3, r3, #2 lsls r0, r4, #1 adds r1, r0, r2 _0801A5EA: ldrh r0, [r1] lsls r0, r0, #1 add r0, ip ldrh r0, [r0] cmp r0, r3 beq _0801A600 subs r1, #2 subs r4, #1 subs r5, #1 cmp r5, #0 bne _0801A5EA _0801A600: subs r4, #0x40 movs r3, #0xdd lsls r3, r3, #2 lsls r0, r4, #1 adds r1, r0, r2 _0801A60A: ldrh r0, [r1] lsls r0, r0, #1 add r0, ip ldrh r0, [r0] cmp r0, r3 bne _0801A620 adds r7, #1 subs r1, #0x80 subs r4, #0x40 cmp r7, #3 bls _0801A60A _0801A620: mov r2, sl cmp r2, #0 bne _0801A628 b _0801A8C0 _0801A628: mov r0, sb ldrb r1, [r0] adds r0, r4, #0 bl sub_080002B0 adds r5, r0, #0 ldr r1, _0801A670 @ =0xFFFFFC97 adds r0, r5, r1 cmp r0, #1 bls _0801A63E b _0801A8B4 _0801A63E: ldr r2, _0801A674 @ =0x00001FC4 adds r0, r4, r2 mov r2, r8 adds r1, r2, r0 movs r5, #0 cmp r5, r7 blo _0801A64E b _0801A8B6 _0801A64E: ldrb r0, [r1] cmp r0, #0 beq _0801A656 b _0801A8B4 _0801A656: adds r5, #1 cmp r5, r7 blo _0801A65E b _0801A8B6 _0801A65E: adds r0, r1, r5 ldrb r0, [r0] cmp r0, #0 beq _0801A656 b _0801A8B4 .align 2, 0 _0801A668: .4byte 0x00005004 _0801A66C: .4byte gUnk_03000BF0 _0801A670: .4byte 0xFFFFFC97 _0801A674: .4byte 0x00001FC4 _0801A678: movs r0, #0x2e ldrsh r1, [r6, r0] ldr r3, _0801A730 @ =gUnk_03000BF0 ldrh r0, [r3, #6] subs r0, #0xa subs r1, r1, r0 asrs r4, r1, #4 movs r2, #0x3f ands r4, r2 movs r1, #0x32 ldrsh r0, [r6, r1] ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r4, r0 mov r2, r8 adds r2, #4 mov r3, ip movs r6, #0xdc lsls r6, r6, #2 lsls r0, r4, #1 adds r1, r0, r2 _0801A6A8: ldrh r0, [r1] lsls r0, r0, #1 adds r0, r3, r0 ldrh r0, [r0] cmp r0, r6 beq _0801A6BE adds r1, #0x80 adds r4, #0x40 subs r5, #1 cmp r5, #0 bne _0801A6A8 _0801A6BE: subs r4, #0x40 movs r3, #0xdd lsls r3, r3, #2 lsls r0, r4, #1 adds r1, r0, r2 _0801A6C8: ldrh r0, [r1] lsls r0, r0, #1 add r0, ip ldrh r0, [r0] cmp r0, r3 bne _0801A6DE adds r7, #1 subs r1, #0x80 subs r4, #0x40 cmp r7, #3 bls _0801A6C8 _0801A6DE: mov r2, sl cmp r2, #0 bne _0801A6E6 b _0801A8C0 _0801A6E6: mov r0, sb ldrb r1, [r0] adds r0, r4, #0 bl sub_080002B0 adds r5, r0, #0 ldr r0, _0801A734 @ =0x00000369 cmp r5, r0 beq _0801A700 adds r0, #4 cmp r5, r0 beq _0801A700 b _0801A8B4 _0801A700: adds r0, r4, r7 ldr r1, _0801A738 @ =0x00002004 adds r0, r0, r1 mov r2, r8 adds r1, r2, r0 movs r5, #0 cmp r5, r7 blo _0801A712 b _0801A8B6 _0801A712: ldrb r0, [r1] cmp r0, #0 beq _0801A71A b _0801A8B4 _0801A71A: adds r5, #1 cmp r5, r7 blo _0801A722 b _0801A8B6 _0801A722: lsls r0, r5, #6 adds r0, r0, r1 ldrb r0, [r0] cmp r0, #0 beq _0801A71A b _0801A8B4 .align 2, 0 _0801A730: .4byte gUnk_03000BF0 _0801A734: .4byte 0x00000369 _0801A738: .4byte 0x00002004 _0801A73C: movs r1, #0x2e ldrsh r0, [r6, r1] ldr r2, _0801A7E8 @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r0, r0, r1 asrs r4, r0, #4 movs r3, #0x3f ands r4, r3 movs r1, #0x32 ldrsh r0, [r6, r1] ldrh r1, [r2, #8] subs r1, #0xa subs r0, r0, r1 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r4, r0 mov r2, r8 adds r2, #4 mov r3, ip ldr r6, _0801A7EC @ =0x0000036F lsls r0, r4, #1 adds r1, r0, r2 _0801A76A: ldrh r0, [r1] lsls r0, r0, #1 adds r0, r3, r0 ldrh r0, [r0] cmp r0, r6 beq _0801A780 adds r1, #2 adds r4, #1 subs r5, #1 cmp r5, #0 bne _0801A76A _0801A780: subs r4, #1 ldr r3, _0801A7F0 @ =0x00000372 lsls r0, r4, #1 adds r1, r0, r2 _0801A788: ldrh r0, [r1] lsls r0, r0, #1 add r0, ip ldrh r0, [r0] cmp r0, r3 bne _0801A79E adds r7, #1 subs r1, #2 subs r4, #1 cmp r7, #3 bls _0801A788 _0801A79E: mov r2, sl cmp r2, #0 bne _0801A7A6 b _0801A8C0 _0801A7A6: mov r0, sb ldrb r1, [r0] adds r0, r4, #0 bl sub_080002B0 adds r5, r0, #0 ldr r0, _0801A7F4 @ =0x00000369 cmp r5, r0 beq _0801A7BE adds r0, #2 cmp r5, r0 bne _0801A8B4 _0801A7BE: lsls r0, r7, #6 adds r0, r4, r0 ldr r1, _0801A7F8 @ =0x00002004 adds r0, r0, r1 mov r2, r8 adds r1, r2, r0 movs r5, #0 cmp r5, r7 bhs _0801A8B6 ldrb r0, [r1] cmp r0, #0 bne _0801A8B4 _0801A7D6: adds r5, #1 cmp r5, r7 bhs _0801A8B6 adds r0, r1, r5 ldrb r0, [r0] cmp r0, #0 beq _0801A7D6 b _0801A8B4 .align 2, 0 _0801A7E8: .4byte gUnk_03000BF0 _0801A7EC: .4byte 0x0000036F _0801A7F0: .4byte 0x00000372 _0801A7F4: .4byte 0x00000369 _0801A7F8: .4byte 0x00002004 _0801A7FC: movs r0, #0x2e ldrsh r1, [r6, r0] ldr r3, _0801A890 @ =gUnk_03000BF0 ldrh r0, [r3, #6] adds r0, #0xa subs r1, r1, r0 asrs r4, r1, #4 movs r2, #0x3f ands r4, r2 movs r1, #0x32 ldrsh r0, [r6, r1] ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r4, r0 mov r2, r8 adds r2, #4 mov r3, ip ldr r6, _0801A894 @ =0x0000036F lsls r0, r4, #1 adds r1, r0, r2 _0801A82A: ldrh r0, [r1] lsls r0, r0, #1 adds r0, r3, r0 ldrh r0, [r0] cmp r0, r6 beq _0801A840 subs r1, #0x80 subs r4, #0x40 subs r5, #1 cmp r5, #0 bne _0801A82A _0801A840: subs r4, #1 ldr r3, _0801A898 @ =0x00000372 lsls r0, r4, #1 adds r1, r0, r2 _0801A848: ldrh r0, [r1] lsls r0, r0, #1 add r0, ip ldrh r0, [r0] cmp r0, r3 bne _0801A85E adds r7, #1 subs r1, #2 subs r4, #1 cmp r7, #3 bls _0801A848 _0801A85E: mov r2, sl cmp r2, #0 beq _0801A8C0 mov r0, sb ldrb r1, [r0] adds r0, r4, #0 bl sub_080002B0 adds r5, r0, #0 ldr r0, _0801A89C @ =0x00000369 cmp r5, r0 beq _0801A87C adds r0, #3 cmp r5, r0 bne _0801A8B4 _0801A87C: ldr r1, _0801A8A0 @ =0x00002003 adds r0, r4, r1 mov r2, r8 adds r1, r2, r0 movs r5, #0 cmp r5, r7 bhs _0801A8B6 ldrb r0, [r1] b _0801A8B0 .align 2, 0 _0801A890: .4byte gUnk_03000BF0 _0801A894: .4byte 0x0000036F _0801A898: .4byte 0x00000372 _0801A89C: .4byte 0x00000369 _0801A8A0: .4byte 0x00002003 _0801A8A4: adds r5, #1 cmp r5, r7 bhs _0801A8B6 lsls r0, r5, #6 adds r0, r0, r1 ldrb r0, [r0] _0801A8B0: cmp r0, #0 beq _0801A8A4 _0801A8B4: ldr r4, _0801A8CC @ =0x0000FFFF _0801A8B6: mov r0, sl cmp r0, #0 beq _0801A8C0 lsls r0, r7, #0xc orrs r4, r0 _0801A8C0: adds r0, r4, #0 _0801A8C2: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _0801A8CC: .4byte 0x0000FFFF thumb_func_start sub_0801A8D0 sub_0801A8D0: @ 0x0801A8D0 push {r4, r5, r6, lr} adds r5, r0, #0 adds r4, r1, #0 cmp r5, #0 beq _0801A978 adds r0, r5, #0 adds r0, #0x38 ldrb r0, [r0] bl sub_0808094C adds r6, r0, #4 cmp r4, #0 bne _0801A92C movs r1, #0x2e ldrsh r0, [r5, r1] ldr r2, _0801A91C @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r0, r0, r1 asrs r4, r0, #4 movs r3, #0x3f ands r4, r3 movs r1, #0x32 ldrsh r0, [r5, r1] ldrh r1, [r2, #8] adds r1, #8 subs r0, r0, r1 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r4, r0 lsls r0, r4, #1 adds r0, r0, r6 ldrh r1, [r0] ldr r0, _0801A920 @ =0x00004055 cmp r1, r0 bne _0801A924 subs r0, r4, #1 b _0801A97A .align 2, 0 _0801A91C: .4byte gUnk_03000BF0 _0801A920: .4byte 0x00004055 _0801A924: ldr r0, _0801A928 @ =0x00004056 b _0801A96A .align 2, 0 _0801A928: .4byte 0x00004056 _0801A92C: movs r0, #0x2e ldrsh r1, [r5, r0] ldr r3, _0801A960 @ =gUnk_03000BF0 ldrh r0, [r3, #6] adds r0, #8 subs r1, r1, r0 asrs r4, r1, #4 movs r2, #0x3f ands r4, r2 movs r1, #0x32 ldrsh r0, [r5, r1] ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r4, r0 lsls r0, r4, #1 adds r0, r0, r6 ldrh r1, [r0] ldr r0, _0801A964 @ =0x00004057 cmp r1, r0 bne _0801A968 adds r0, r4, #0 subs r0, #0x40 b _0801A97A .align 2, 0 _0801A960: .4byte gUnk_03000BF0 _0801A964: .4byte 0x00004057 _0801A968: ldr r0, _0801A974 @ =0x00004058 _0801A96A: cmp r1, r0 bne _0801A978 adds r0, r4, #0 b _0801A97A .align 2, 0 _0801A974: .4byte 0x00004058 _0801A978: ldr r0, _0801A97C @ =0x0000FFFF _0801A97A: pop {r4, r5, r6, pc} .align 2, 0 _0801A97C: .4byte 0x0000FFFF thumb_func_start sub_0801A980 sub_0801A980: @ 0x0801A980 push {r4, r5, r6, r7, lr} ldr r4, _0801A9E0 @ =gUnk_03001160 adds r6, r4, #0 adds r6, #0x38 ldrb r0, [r6] bl sub_0808094C ldrb r0, [r4, #0x14] movs r2, #6 ands r2, r0 lsls r2, r2, #1 ldr r0, _0801A9E4 @ =gUnk_080B44A8 adds r2, r2, r0 movs r1, #0x2e ldrsh r0, [r4, r1] movs r3, #0 ldrsh r1, [r2, r3] adds r0, r0, r1 ldr r5, _0801A9E8 @ =gUnk_03000BF0 ldrh r1, [r5, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r3, #0x3f ands r0, r3 movs r7, #0x32 ldrsh r1, [r4, r7] movs r4, #2 ldrsh r2, [r2, r4] adds r1, r1, r2 ldrh r2, [r5, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r3 lsls r1, r1, #6 orrs r0, r1 ldrb r1, [r6] bl sub_080002B0 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 ldr r0, _0801A9EC @ =0x00003FFF cmp r1, r0 bhi _0801A9DC adds r0, r1, #0 bl sub_080002E4 _0801A9DC: movs r0, #0 pop {r4, r5, r6, r7, pc} .align 2, 0 _0801A9E0: .4byte gUnk_03001160 _0801A9E4: .4byte gUnk_080B44A8 _0801A9E8: .4byte gUnk_03000BF0 _0801A9EC: .4byte 0x00003FFF thumb_func_start sub_0801A9F0 sub_0801A9F0: @ 0x0801A9F0 push {r4, r5, lr} adds r3, r0, #0 adds r4, r2, #0 movs r2, #0 ldr r5, _0801AA0C @ =0xFFFFFCA0 adds r0, r1, r5 cmp r0, #4 bhi _0801AA40 lsls r0, r0, #2 ldr r1, _0801AA10 @ =_0801AA14 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801AA0C: .4byte 0xFFFFFCA0 _0801AA10: .4byte _0801AA14 _0801AA14: @ jump table .4byte _0801AA44 @ case 0 .4byte _0801AA28 @ case 1 .4byte _0801AA34 @ case 2 .4byte _0801AA3A @ case 3 .4byte _0801AA2E @ case 4 _0801AA28: cmp r3, #0 bne _0801AA40 b _0801AA44 _0801AA2E: cmp r3, #8 bne _0801AA40 b _0801AA44 _0801AA34: cmp r3, #0x10 bne _0801AA40 b _0801AA44 _0801AA3A: cmp r3, #0x18 bne _0801AA40 movs r2, #1 _0801AA40: cmp r2, #0 beq _0801AA54 _0801AA44: ldr r0, _0801AA50 @ =gUnk_03001160 adds r1, r4, #0 adds r2, r3, #0 bl sub_0801AA58 b _0801AA56 .align 2, 0 _0801AA50: .4byte gUnk_03001160 _0801AA54: movs r0, #0 _0801AA56: pop {r4, r5, pc} thumb_func_start sub_0801AA58 sub_0801AA58: @ 0x0801AA58 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 adds r5, r1, #0 adds r7, r2, #0 movs r0, #0x38 adds r0, r0, r6 mov r8, r0 ldrb r0, [r0] bl sub_0808094C ldr r2, _0801AAF0 @ =gUnk_080B4488 lsrs r1, r7, #3 lsls r1, r1, #1 adds r1, r1, r2 movs r2, #0 ldrsh r1, [r1, r2] adds r1, r5, r1 ldr r2, _0801AAF4 @ =0x00002004 adds r0, r0, r2 adds r0, r0, r1 ldrb r0, [r0] cmp r0, #0 beq _0801AA94 subs r0, #0x20 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x1f bhi _0801AB00 _0801AA94: movs r0, #7 movs r1, #0 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _0801AB00 movs r3, #0 strb r7, [r4, #0x15] movs r1, #0x3f adds r0, r5, #0 ands r0, r1 lsls r0, r0, #4 adds r0, #8 ldr r2, _0801AAF8 @ =gUnk_03000BF0 ldrh r1, [r2, #6] adds r1, r1, r0 strh r1, [r4, #0x2e] movs r0, #0xfc lsls r0, r0, #4 ands r0, r5 lsrs r0, r0, #2 adds r0, #8 ldrh r1, [r2, #8] adds r1, r1, r0 strh r1, [r4, #0x32] mov r0, r8 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] ldr r2, _0801AAFC @ =gUnk_03003F80 movs r0, #0xa0 strb r0, [r2, #6] movs r0, #5 strb r0, [r2, #0xc] ldr r0, [r2, #0x30] movs r1, #1 orrs r0, r1 str r0, [r2, #0x30] strh r3, [r6, #0x2c] strh r3, [r6, #0x30] strb r7, [r6, #0x15] movs r0, #1 b _0801AB02 .align 2, 0 _0801AAF0: .4byte gUnk_080B4488 _0801AAF4: .4byte 0x00002004 _0801AAF8: .4byte gUnk_03000BF0 _0801AAFC: .4byte gUnk_03003F80 _0801AB00: movs r0, #0 _0801AB02: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0801AB08 sub_0801AB08: @ 0x0801AB08 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 adds r5, r0, #0 mov r8, r1 ldr r0, _0801AB4C @ =gUnk_02025EB0 movs r1, #2 cmp r8, r0 bne _0801AB22 movs r1, #1 _0801AB22: lsls r2, r1, #0xc ldr r7, _0801AB50 @ =0x00003004 add r7, r8 mov r6, r8 adds r6, #4 movs r0, #0 ldr r1, _0801AB54 @ =0x00003FFF mov sb, r1 _0801AB32: movs r3, #0 mov sl, r3 adds r0, #1 str r0, [sp] movs r0, #0x80 lsls r0, r0, #1 adds r4, r5, r0 _0801AB40: ldrh r0, [r6] cmp r0, sb bhi _0801AB58 lsls r0, r0, #2 b _0801AB64 .align 2, 0 _0801AB4C: .4byte gUnk_02025EB0 _0801AB50: .4byte 0x00003004 _0801AB54: .4byte 0x00003FFF _0801AB58: ldrh r1, [r7] adds r0, r2, #0 str r2, [sp, #4] bl sub_0801AC68 ldr r2, [sp, #4] _0801AB64: lsls r0, r0, #1 ldr r1, _0801AB8C @ =0x00007004 adds r0, r0, r1 mov r3, r8 adds r1, r3, r0 ldrh r0, [r1] strh r0, [r5] ldrh r0, [r1, #2] strh r0, [r5, #2] ldrh r0, [r1, #4] strh r0, [r4] ldrh r0, [r1, #6] strh r0, [r4, #2] adds r4, #4 adds r5, #4 ldrh r0, [r6, #2] cmp r0, sb bhi _0801AB90 lsls r0, r0, #2 b _0801AB9C .align 2, 0 _0801AB8C: .4byte 0x00007004 _0801AB90: adds r0, r2, #1 ldrh r1, [r7, #2] str r2, [sp, #4] bl sub_0801AC68 ldr r2, [sp, #4] _0801AB9C: lsls r0, r0, #1 ldr r1, _0801ABC4 @ =0x00007004 adds r0, r0, r1 mov r3, r8 adds r1, r3, r0 ldrh r0, [r1] strh r0, [r5] ldrh r0, [r1, #2] strh r0, [r5, #2] ldrh r0, [r1, #4] strh r0, [r4] ldrh r0, [r1, #6] strh r0, [r4, #2] adds r4, #4 adds r5, #4 ldrh r0, [r6, #4] cmp r0, sb bhi _0801ABC8 lsls r0, r0, #2 b _0801ABD4 .align 2, 0 _0801ABC4: .4byte 0x00007004 _0801ABC8: adds r0, r2, #2 ldrh r1, [r7, #4] str r2, [sp, #4] bl sub_0801AC68 ldr r2, [sp, #4] _0801ABD4: lsls r0, r0, #1 ldr r1, _0801ABFC @ =0x00007004 adds r0, r0, r1 mov r3, r8 adds r1, r3, r0 ldrh r0, [r1] strh r0, [r5] ldrh r0, [r1, #2] strh r0, [r5, #2] ldrh r0, [r1, #4] strh r0, [r4] ldrh r0, [r1, #6] strh r0, [r4, #2] adds r4, #4 adds r5, #4 ldrh r0, [r6, #6] cmp r0, sb bhi _0801AC00 lsls r0, r0, #2 b _0801AC0C .align 2, 0 _0801ABFC: .4byte 0x00007004 _0801AC00: adds r0, r2, #3 ldrh r1, [r7, #6] str r2, [sp, #4] bl sub_0801AC68 ldr r2, [sp, #4] _0801AC0C: lsls r0, r0, #1 ldr r1, _0801AC64 @ =0x00007004 adds r0, r0, r1 mov r3, r8 adds r1, r3, r0 ldrh r0, [r1] strh r0, [r5] ldrh r0, [r1, #2] strh r0, [r5, #2] ldrh r0, [r1, #4] strh r0, [r4] ldrh r0, [r1, #6] strh r0, [r4, #2] adds r4, #4 adds r5, #4 adds r6, #8 adds r7, #8 adds r0, r2, #4 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 mov r0, sl adds r0, #1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sl, r0 cmp r0, #0xf bhi _0801AC44 b _0801AB40 _0801AC44: movs r0, #0x80 lsls r0, r0, #1 adds r5, r5, r0 ldr r1, [sp] lsls r0, r1, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x3f bhi _0801AC56 b _0801AB32 _0801AC56: 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 _0801AC64: .4byte 0x00007004 thumb_func_start sub_0801AC68 sub_0801AC68: @ 0x0801AC68 push {r4, r5, lr} adds r4, r0, #0 ldr r2, _0801AC84 @ =gUnk_0200B240 ldr r0, _0801AC88 @ =gUnk_02034350 ldrh r3, [r0, #0xe] movs r0, #0 cmp r0, r3 bhs _0801AC94 _0801AC78: ldrh r5, [r2] cmp r4, r5 bne _0801AC8C ldrh r0, [r2, #2] lsls r0, r0, #2 b _0801AC96 .align 2, 0 _0801AC84: .4byte gUnk_0200B240 _0801AC88: .4byte gUnk_02034350 _0801AC8C: adds r2, #4 adds r0, #1 cmp r0, r3 blo _0801AC78 _0801AC94: lsls r0, r1, #2 _0801AC96: pop {r4, r5, pc} thumb_func_start sub_0801AC98 sub_0801AC98: @ 0x0801AC98 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 ldr r0, _0801ACD0 @ =gUnk_03000BF0 ldrh r1, [r0, #0x1e] lsrs r1, r1, #4 mov r8, r1 ldrh r0, [r0, #0x20] lsrs r0, r0, #4 str r0, [sp] movs r6, #0 movs r1, #0 cmp r1, r0 bhs _0801AD5C _0801ACBA: movs r0, #0 adds r1, #1 str r1, [sp, #4] cmp r0, r8 bhs _0801AD4C _0801ACC4: ldr r5, _0801ACD4 @ =gUnk_080B44C0 adds r0, #1 mov sl, r0 adds r0, r6, #1 mov sb, r0 b _0801ACDA .align 2, 0 _0801ACD0: .4byte gUnk_03000BF0 _0801ACD4: .4byte gUnk_080B44C0 _0801ACD8: adds r5, #0xc _0801ACDA: ldrh r0, [r5] ldr r1, _0801AD0C @ =0x0000FFFF cmp r0, r1 beq _0801AD06 adds r4, r0, #0 adds r0, r6, #0 movs r1, #1 bl sub_080002B0 cmp r4, r0 bne _0801ACD8 ldrh r0, [r5, #0xa] lsls r0, r0, #2 ldr r1, _0801AD10 @ =gUnk_080B44B8 adds r0, r0, r1 ldr r0, [r0] cmp r0, #0 beq _0801ACD8 adds r0, r5, #0 adds r1, r6, #0 bl sub_0801AD6C _0801AD06: ldr r5, _0801AD14 @ =gUnk_080B44C2 ldr r7, _0801AD0C @ =0x0000FFFF b _0801AD1A .align 2, 0 _0801AD0C: .4byte 0x0000FFFF _0801AD10: .4byte gUnk_080B44B8 _0801AD14: .4byte gUnk_080B44C2 _0801AD18: adds r5, #0xc _0801AD1A: ldrh r0, [r5] cmp r0, r7 beq _0801AD44 adds r4, r0, #0 adds r0, r6, #0 movs r1, #2 bl sub_080002B0 cmp r4, r0 bne _0801AD18 ldrh r0, [r5, #0xa] lsls r0, r0, #2 ldr r1, _0801AD68 @ =gUnk_080B44B8 adds r0, r0, r1 ldr r0, [r0] cmp r0, #0 beq _0801AD18 adds r0, r5, #0 adds r1, r6, #0 bl sub_0801AD6C _0801AD44: mov r0, sl mov r6, sb cmp r0, r8 blo _0801ACC4 _0801AD4C: adds r0, r6, #0 adds r0, #0x40 mov r1, r8 subs r6, r0, r1 ldr r1, [sp, #4] ldr r0, [sp] cmp r1, r0 blo _0801ACBA _0801AD5C: 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 _0801AD68: .4byte gUnk_080B44B8 thumb_func_start sub_0801AD6C sub_0801AD6C: @ 0x0801AD6C push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r1, #0 ldrh r0, [r4, #2] cmp r0, #9 beq _0801ADDC bl sub_0805E678 adds r5, r0, #0 cmp r5, #0 beq _0801AE26 ldrh r0, [r4, #2] strb r0, [r5, #8] ldrh r0, [r4, #4] strb r0, [r5, #9] ldrh r0, [r4, #6] strb r0, [r5, #0xa] ldrh r0, [r4, #8] strb r0, [r5, #0xb] movs r1, #0x3f adds r0, r6, #0 ands r0, r1 lsls r0, r0, #4 adds r0, #8 ldr r2, _0801ADD4 @ =gUnk_03000BF0 ldrh r1, [r2, #6] adds r1, r1, r0 movs r3, #0 strh r1, [r5, #0x2e] movs r0, #0xfc lsls r0, r0, #4 ands r0, r6 lsrs r0, r0, #2 adds r0, #8 ldrh r1, [r2, #8] adds r1, r1, r0 strh r1, [r5, #0x32] adds r0, r5, #0 adds r0, #0x38 strb r3, [r0] adds r0, r5, #0 bl sub_08016A30 ldr r1, _0801ADD8 @ =gUnk_081091E4 ldrb r0, [r5, #8] adds r0, r0, r1 ldrb r1, [r0] adds r0, r5, #0 bl sub_0805EA2C b _0801AE26 .align 2, 0 _0801ADD4: .4byte gUnk_03000BF0 _0801ADD8: .4byte gUnk_081091E4 _0801ADDC: bl sub_0805E8D4 adds r3, r0, #0 cmp r3, #0 beq _0801AE26 ldrh r0, [r4, #2] strb r0, [r3, #8] ldrh r0, [r4, #4] strb r0, [r3, #9] ldrh r0, [r4, #6] strb r0, [r3, #0xa] ldrh r0, [r4, #8] strb r0, [r3, #0xb] movs r1, #0x3f adds r0, r6, #0 ands r0, r1 lsls r0, r0, #4 adds r0, #8 ldr r2, _0801AE28 @ =gUnk_03000BF0 ldrh r1, [r2, #6] adds r1, r1, r0 strh r1, [r3, #0x38] movs r0, #0xfc lsls r0, r0, #4 ands r0, r6 lsrs r0, r0, #2 adds r0, #8 ldrh r1, [r2, #8] adds r1, r1, r0 strh r1, [r3, #0x3a] ldr r1, _0801AE2C @ =gUnk_081091E4 ldrb r0, [r3, #8] adds r0, r0, r1 ldrb r1, [r0] adds r0, r3, #0 bl sub_0805EA2C _0801AE26: pop {r4, r5, r6, pc} .align 2, 0 _0801AE28: .4byte gUnk_03000BF0 _0801AE2C: .4byte gUnk_081091E4 thumb_func_start sub_0801AE30 sub_0801AE30: @ 0x0801AE30 movs r0, #1 bx lr thumb_func_start sub_0801AE34 sub_0801AE34: @ 0x0801AE34 ldr r0, _0801AE40 @ =gUnk_03000BF0 ldrb r0, [r0, #0xf] lsrs r0, r0, #1 movs r1, #1 ands r0, r1 bx lr .align 2, 0 _0801AE40: .4byte gUnk_03000BF0 thumb_func_start sub_0801AE44 sub_0801AE44: @ 0x0801AE44 push {r4, lr} adds r4, r0, #0 ldr r1, _0801AEE0 @ =gUnk_03000BF0 movs r0, #0 str r0, [r1, #0x34] bl sub_0807BFD0 cmp r4, #0 beq _0801AE5A bl sub_0807C0DC _0801AE5A: bl sub_080809D4 bl sub_080805F8 ldr r0, _0801AEE4 @ =gUnk_030010A0 adds r0, #0x2d ldrb r0, [r0] cmp r0, #0 beq _0801AE70 bl sub_0807C898 _0801AE70: ldr r4, _0801AEE8 @ =gUnk_02033A90 ldrb r0, [r4, #0xc] cmp r0, #0 beq _0801AE8C ldr r1, _0801AEEC @ =0x0600F000 movs r2, #0x80 lsls r2, r2, #4 movs r0, #0xf bl sub_0801D5EC movs r0, #1 rsbs r0, r0, #0 bl sub_0805BB74 _0801AE8C: movs r0, #5 bl sub_0804B128 cmp r0, #0 beq _0801AE9A bl _call_via_r0 _0801AE9A: ldr r0, _0801AEF0 @ =gUnk_03004030 ldrb r0, [r0, #8] cmp r0, #0 bne _0801AEB6 ldr r1, _0801AEF4 @ =0x0000088C adds r0, r4, r1 ldr r1, [r0] cmp r1, #0 beq _0801AEB6 ldr r2, _0801AEF8 @ =0x00000888 adds r0, r4, r2 ldr r0, [r0] bl _call_via_r1 _0801AEB6: ldr r0, _0801AEE0 @ =gUnk_03000BF0 ldrb r1, [r0, #0xf] movs r0, #1 ands r0, r1 cmp r0, #0 bne _0801AF0C ldr r1, _0801AEFC @ =gUnk_02025EB0 ldr r0, [r1] cmp r0, #0 beq _0801AED0 ldr r0, _0801AF00 @ =gUnk_02019EE0 bl sub_0801AB08 _0801AED0: ldr r1, _0801AF04 @ =gUnk_0200B650 ldr r0, [r1] cmp r0, #0 beq _0801AF10 ldr r0, _0801AF08 @ =gUnk_02002F00 bl sub_0801AB08 b _0801AF10 .align 2, 0 _0801AEE0: .4byte gUnk_03000BF0 _0801AEE4: .4byte gUnk_030010A0 _0801AEE8: .4byte gUnk_02033A90 _0801AEEC: .4byte 0x0600F000 _0801AEF0: .4byte gUnk_03004030 _0801AEF4: .4byte 0x0000088C _0801AEF8: .4byte 0x00000888 _0801AEFC: .4byte gUnk_02025EB0 _0801AF00: .4byte gUnk_02019EE0 _0801AF04: .4byte gUnk_0200B650 _0801AF08: .4byte gUnk_02002F00 _0801AF0C: bl sub_0807C4F8 _0801AF10: bl sub_08000108 pop {r4, pc} .align 2, 0 thumb_func_start sub_0801AF18 sub_0801AF18: @ 0x0801AF18 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 _0801AF46 adds r7, r1, #0 _0801AF2E: ldrh r0, [r4] movs r2, #2 ldrsh r1, [r4, r2] adds r1, r6, r1 adds r2, r5, #0 bl sub_0800015E adds r4, #4 movs r1, #0 ldrsh r0, [r4, r1] cmp r0, r7 bne _0801AF2E _0801AF46: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0801AF48 sub_0801AF48: @ 0x0801AF48 push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r1, #0 adds r5, r2, #0 ldr r0, _0801AF7C @ =0x00003FFF cmp r4, r0 bhi _0801AF7A ldr r0, _0801AF80 @ =gUnk_030010A0 adds r0, #0x30 ldrb r0, [r0] cmp r0, #0 bne _0801AF7A ldr r2, _0801AF84 @ =gUnk_02034350 ldrh r3, [r2, #0xe] cmp r3, #0xff bhi _0801AF7A ldr r0, _0801AF88 @ =gUnk_0200B240 lsls r1, r3, #2 adds r1, r1, r0 strh r4, [r1, #2] lsls r0, r5, #0xc orrs r0, r6 strh r0, [r1] adds r0, r3, #1 strh r0, [r2, #0xe] _0801AF7A: pop {r4, r5, r6, pc} .align 2, 0 _0801AF7C: .4byte 0x00003FFF _0801AF80: .4byte gUnk_030010A0 _0801AF84: .4byte gUnk_02034350 _0801AF88: .4byte gUnk_0200B240 thumb_func_start sub_0801AF8C sub_0801AF8C: @ 0x0801AF8C push {r4, r5, r6, lr} adds r4, r0, #0 lsls r1, r1, #0xc orrs r4, r1 ldr r2, _0801AFB8 @ =gUnk_0200B240 ldr r0, _0801AFBC @ =gUnk_02034350 ldrh r1, [r0, #0xe] movs r3, #0 adds r5, r2, #0 cmp r3, r1 bhs _0801AFE0 ldrh r6, [r2] cmp r4, r6 bne _0801AFC0 subs r1, #1 strh r1, [r0, #0xe] lsls r0, r1, #2 adds r0, r0, r2 ldr r0, [r0] str r0, [r2] b _0801AFE0 .align 2, 0 _0801AFB8: .4byte gUnk_0200B240 _0801AFBC: .4byte gUnk_02034350 _0801AFC0: adds r2, #4 adds r3, #1 cmp r3, r1 bhs _0801AFE0 ldrh r6, [r2] cmp r4, r6 bne _0801AFC0 subs r1, #1 strh r1, [r0, #0xe] adds r2, r5, #0 lsls r0, r3, #2 adds r0, r0, r2 lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] str r1, [r0] _0801AFE0: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0801AFE4 sub_0801AFE4: @ 0x0801AFE4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r3, _0801B018 @ =gUnk_02027EB4 ldr r0, _0801B01C @ =gUnk_03000BF0 ldrh r1, [r0, #0x1e] lsrs r1, r1, #4 mov sl, r1 ldrh r0, [r0, #0x20] lsrs r0, r0, #4 mov sb, r0 movs r7, #0 cmp r7, sb bhs _0801B054 _0801B004: movs r2, #0 adds r0, r7, #1 mov r8, r0 cmp r2, sl bhs _0801B046 _0801B00E: ldr r1, _0801B020 @ =gUnk_080B44D0 adds r4, r3, #1 adds r5, r2, #1 b _0801B026 .align 2, 0 _0801B018: .4byte gUnk_02027EB4 _0801B01C: .4byte gUnk_03000BF0 _0801B020: .4byte gUnk_080B44D0 _0801B024: adds r1, #4 _0801B026: ldrh r0, [r1] cmp r0, #0 beq _0801B03E ldrb r6, [r3] cmp r0, r6 bne _0801B024 ldrh r0, [r1, #2] lsls r1, r7, #6 adds r1, r1, r2 movs r2, #1 bl sub_0800015E _0801B03E: adds r3, r4, #0 adds r2, r5, #0 cmp r2, sl blo _0801B00E _0801B046: adds r0, r3, #0 adds r0, #0x40 mov r1, sl subs r3, r0, r1 mov r7, r8 cmp r7, sb blo _0801B004 _0801B054: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0801B060 sub_0801B060: @ 0x0801B060 push {r4, r5, lr} movs r3, #0 ldr r4, _0801B0B0 @ =gUnk_02000CC0 movs r5, #8 _0801B068: ldr r2, [r4] cmp r2, #0 beq _0801B0C2 ldrh r1, [r4, #6] subs r0, r1, #1 strh r0, [r4, #6] lsls r0, r0, #0x10 cmp r0, #0 bne _0801B0BA cmp r3, #0 bne _0801B0B8 ldr r0, _0801B0B4 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _0801B08C ldr r0, [r2] bl sub_0801B0EC _0801B08C: ldr r0, [r4] adds r0, #4 bl sub_0801B0C4 strh r0, [r4, #6] ldr r0, [r4] adds r1, r0, #0 adds r1, #8 str r1, [r4] ldr r0, [r0, #8] cmp r0, #0 bne _0801B0AC ldr r0, [r1, #4] lsls r0, r0, #3 subs r0, r1, r0 str r0, [r4] _0801B0AC: movs r3, #1 b _0801B0BA .align 2, 0 _0801B0B0: .4byte gUnk_02000CC0 _0801B0B4: .4byte gUnk_03000FD0 _0801B0B8: strh r1, [r4, #6] _0801B0BA: adds r4, #8 subs r5, #1 cmp r5, #0 bne _0801B068 _0801B0C2: pop {r4, r5, pc} thumb_func_start sub_0801B0C4 sub_0801B0C4: @ 0x0801B0C4 push {r4, lr} adds r4, r0, #0 ldr r0, [r4] cmp r0, #0 bge _0801B0E6 bl sub_08000E50 ldr r1, _0801B0E8 @ =gUnk_080B4550 ldrb r2, [r4] lsls r2, r2, #2 adds r2, r2, r1 movs r1, #7 ands r1, r0 ldr r0, [r2] lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] _0801B0E6: pop {r4, pc} .align 2, 0 _0801B0E8: .4byte gUnk_080B4550 thumb_func_start sub_0801B0EC sub_0801B0EC: @ 0x0801B0EC push {r4, r5, lr} adds r4, r0, #0 _0801B0F0: ldr r1, [r4, #4] ldr r0, _0801B110 @ =gUnk_085A2E80 adds r5, r1, r0 ldrb r2, [r4, #2] ldrh r3, [r4] ldr r0, [r4] lsrs r0, r0, #0x1c movs r1, #1 ands r0, r1 cmp r0, #0 beq _0801B114 lsrs r1, r3, #5 adds r0, r5, #0 bl sub_0801D754 b _0801B122 .align 2, 0 _0801B110: .4byte gUnk_085A2E80 _0801B114: movs r0, #0xc0 lsls r0, r0, #0x13 adds r1, r3, r0 lsls r2, r2, #5 adds r0, r5, #0 bl sub_0801D66C _0801B122: ldr r0, [r4] cmp r0, #0 bge _0801B12C adds r4, #8 b _0801B0F0 _0801B12C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0801B130 sub_0801B130: @ 0x0801B130 push {r4, r5, r6, r7, lr} adds r4, r0, #0 bl sub_0801B170 ldr r5, _0801B164 @ =gUnk_02000CC0 ldrh r0, [r4] ldr r1, _0801B168 @ =0x0000FFFF cmp r0, r1 beq _0801B162 ldr r7, _0801B16C @ =gUnk_080B7278 adds r6, r1, #0 _0801B146: ldrh r0, [r4] lsls r0, r0, #2 adds r0, r0, r7 ldr r0, [r0] str r0, [r5] adds r0, #4 bl sub_0801B0C4 strh r0, [r5, #6] adds r5, #8 adds r4, #2 ldrh r0, [r4] cmp r0, r6 bne _0801B146 _0801B162: pop {r4, r5, r6, r7, pc} .align 2, 0 _0801B164: .4byte gUnk_02000CC0 _0801B168: .4byte 0x0000FFFF _0801B16C: .4byte gUnk_080B7278 thumb_func_start sub_0801B170 sub_0801B170: @ 0x0801B170 push {lr} movs r1, #0 movs r2, #0 ldr r0, _0801B184 @ =gUnk_02000CC0 _0801B178: str r2, [r0] adds r0, #8 adds r1, #1 cmp r1, #7 bls _0801B178 pop {pc} .align 2, 0 _0801B184: .4byte gUnk_02000CC0 thumb_func_start sub_0801B188 sub_0801B188: @ 0x0801B188 push {r4, lr} adds r4, r0, #0 ldr r0, _0801B1E0 @ =gUnk_080B77C8 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_08004274 ldrb r2, [r4, #0xc] cmp r2, #3 beq _0801B24E ldrb r1, [r4, #0xe] cmp r1, #0 beq _0801B1E4 adds r0, r4, #0 adds r0, #0x68 ldrb r0, [r0] cmp r0, #7 bne _0801B1BC subs r0, r1, #1 strb r0, [r4, #0xe] _0801B1BC: ldrb r1, [r4, #0xe] cmp r1, #0 bne _0801B24E movs r0, #0x50 strb r0, [r4, #0xf] str r1, [r4, #0x68] ldrb r0, [r4, #0x19] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x19] movs r2, #0x80 lsls r2, r2, #1 adds r0, r4, #0 adds r1, r2, #0 movs r3, #0 bl sub_0805EC9C b _0801B24E .align 2, 0 _0801B1E0: .4byte gUnk_080B77C8 _0801B1E4: ldrb r0, [r4, #0xf] cmp r0, #0 beq _0801B24E subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0801B248 cmp r2, #2 bne _0801B204 ldrb r0, [r4, #0xd] cmp r0, #1 bne _0801B204 ldr r0, _0801B244 @ =gUnk_03003F80 strb r1, [r0, #5] _0801B204: movs r0, #3 strb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #0x3c ands r0, r1 movs r1, #0x10 orrs r0, r1 strb r0, [r2] movs r0, #0xf strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #0x13 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_0805EC60 adds r0, r4, #0 bl sub_08078954 adds r0, r4, #0 movs r1, #0x20 movs r2, #0 movs r3, #0 bl sub_080A2988 adds r0, r4, #0 bl sub_0801B418 b _0801B24E .align 2, 0 _0801B244: .4byte gUnk_03003F80 _0801B248: adds r0, r4, #0 bl sub_0801B3A4 _0801B24E: pop {r4, pc} thumb_func_start sub_0801B250 sub_0801B250: @ 0x0801B250 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] movs r0, #1 strb r0, [r2, #0xc] adds r3, r2, #0 adds r3, #0x29 ldrb r1, [r3] subs r0, #0x3a ands r0, r1 movs r1, #0x18 orrs r0, r1 strb r0, [r3] ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0x10] ldrb r1, [r2, #0xa] adds r0, r1, #0 cmp r0, #0xff bne _0801B28A movs r0, #0x3c b _0801B29C _0801B28A: cmp r0, #0xfe bne _0801B29A movs r0, #0xf strb r0, [r2, #0xe] movs r0, #0xff orrs r0, r1 strb r0, [r2, #0xa] b _0801B29E _0801B29A: movs r0, #0x96 _0801B29C: strb r0, [r2, #0xe] _0801B29E: ldr r0, _0801B2BC @ =gUnk_080B77F4 str r0, [r2, #0x48] movs r0, #0 strb r0, [r2, #0x16] adds r0, r2, #0 adds r0, #0x68 ldrb r0, [r0] cmp r0, #7 bne _0801B2C0 adds r0, r2, #0 movs r1, #5 bl sub_08004260 b _0801B2C8 .align 2, 0 _0801B2BC: .4byte gUnk_080B77F4 _0801B2C0: adds r0, r2, #0 movs r1, #0x15 bl sub_08004260 _0801B2C8: pop {pc} .align 2, 0 thumb_func_start sub_0801B2CC sub_0801B2CC: @ 0x0801B2CC push {r4, r5, lr} adds r4, r0, #0 bl sub_0800442E cmp r0, #0 bne _0801B2DE adds r0, r4, #0 bl sub_08078930 _0801B2DE: movs r0, #8 bl sub_0805436C cmp r0, #1 beq _0801B2F6 cmp r0, #1 blo _0801B2F2 cmp r0, #2 beq _0801B2FA b _0801B2FC _0801B2F2: movs r5, #1 b _0801B2FC _0801B2F6: movs r5, #2 b _0801B2FC _0801B2FA: movs r5, #0 _0801B2FC: ldr r0, _0801B314 @ =gUnk_03003F80 adds r0, #0x92 ldrh r0, [r0] ands r5, r0 cmp r5, #0 beq _0801B310 movs r0, #0 strb r0, [r4, #0xe] movs r0, #1 strb r0, [r4, #0xf] _0801B310: pop {r4, r5, pc} .align 2, 0 _0801B314: .4byte gUnk_03003F80 thumb_func_start sub_0801B318 sub_0801B318: @ 0x0801B318 push {lr} ldr r2, _0801B32C @ =gUnk_080B77D8 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0801B32C: .4byte gUnk_080B77D8 thumb_func_start sub_0801B330 sub_0801B330: @ 0x0801B330 push {lr} ldrb r1, [r0, #0xd] adds r1, #1 strb r1, [r0, #0xd] bl sub_08079BD8 pop {pc} .align 2, 0 thumb_func_start sub_0801B340 sub_0801B340: @ 0x0801B340 adds r0, #0x29 ldrb r2, [r0] movs r1, #0x39 rsbs r1, r1, #0 ands r1, r2 movs r2, #0x10 orrs r1, r2 strb r1, [r0] bx lr .align 2, 0 thumb_func_start sub_0801B354 sub_0801B354: @ 0x0801B354 adds r0, #0x29 ldrb r2, [r0] movs r1, #0x39 rsbs r1, r1, #0 ands r1, r2 movs r2, #0x18 orrs r1, r2 strb r1, [r0] bx lr .align 2, 0 thumb_func_start sub_0801B368 sub_0801B368: @ 0x0801B368 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] subs r0, #1 movs r1, #0 strb r0, [r2, #0xc] strb r1, [r2, #0xd] ldrb r0, [r2, #0xe] cmp r0, #0x3c bls _0801B380 movs r0, #0x3c strb r0, [r2, #0xe] _0801B380: pop {pc} .align 2, 0 thumb_func_start sub_0801B384 sub_0801B384: @ 0x0801B384 push {lr} bl sub_0805E780 pop {pc} thumb_func_start sub_0801B38C sub_0801B38C: @ 0x0801B38C push {lr} ldrb r1, [r0, #0xe] subs r1, #1 strb r1, [r0, #0xe] lsls r1, r1, #0x18 lsrs r1, r1, #0x18 cmp r1, #0xff bne _0801B3A0 bl sub_0805E780 _0801B3A0: pop {pc} .align 2, 0 thumb_func_start sub_0801B3A4 sub_0801B3A4: @ 0x0801B3A4 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] movs r5, #8 cmp r0, #0x28 bhi _0801B3F4 movs r5, #4 ldr r1, [r4, #0x68] movs r0, #0x80 lsls r0, r0, #8 ands r0, r1 cmp r0, #0 beq _0801B3C4 adds r0, r1, #0 subs r0, #0x10 b _0801B3C8 _0801B3C4: adds r0, r1, #0 adds r0, #0x10 _0801B3C8: str r0, [r4, #0x68] ldr r1, [r4, #0x68] movs r2, #0xf0 adds r0, r1, #0 ands r0, r2 subs r0, #1 cmp r0, #0x7f bls _0801B3E0 movs r0, #0x80 lsls r0, r0, #8 eors r1, r0 str r1, [r4, #0x68] _0801B3E0: ldr r0, [r4, #0x68] ands r0, r2 movs r2, #0x98 lsls r2, r2, #1 subs r2, r2, r0 adds r0, r4, #0 adds r1, r2, #0 movs r3, #0 bl sub_0805EC9C _0801B3F4: ldrb r0, [r4, #0xf] ands r0, r5 cmp r0, #0 bne _0801B408 ldrb r1, [r4, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x1a] b _0801B416 _0801B408: ldrb r0, [r4, #0x1a] lsrs r2, r0, #4 movs r1, #0x10 rsbs r1, r1, #0 ands r1, r0 orrs r1, r2 strb r1, [r4, #0x1a] _0801B416: pop {r4, r5, pc} thumb_func_start sub_0801B418 sub_0801B418: @ 0x0801B418 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 movs r6, #0x10 movs r0, #0x10 rsbs r0, r0, #0 mov sb, r0 mov r8, sb _0801B42C: movs r4, #0x10 adds r7, r6, #0 subs r7, #0x10 _0801B432: movs r0, #0x2e ldrsh r2, [r5, r0] adds r2, r2, r4 movs r0, #0x32 ldrsh r3, [r5, r0] adds r3, r3, r6 adds r0, r5, #0 movs r1, #3 bl sub_08008796 subs r4, #0x10 cmp r4, r8 bge _0801B432 adds r6, r7, #0 cmp r6, sb bge _0801B42C pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0801B45C sub_0801B45C: @ 0x0801B45C push {r4, lr} adds r4, r0, #0 ldr r1, _0801B48C @ =gUnk_080B77FC ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0xb beq _0801B4AC ldrb r0, [r4, #0x14] cmp r0, #6 bne _0801B490 adds r1, r4, #0 adds r1, #0x86 movs r2, #0x80 lsls r2, r2, #6 b _0801B496 .align 2, 0 _0801B48C: .4byte gUnk_080B77FC _0801B490: adds r1, r4, #0 adds r1, #0x86 ldr r2, _0801B4C4 @ =0xFFFFE000 _0801B496: adds r0, r2, #0 ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] movs r2, #0x80 lsls r2, r2, #1 ldrh r3, [r1] adds r0, r4, #0 adds r1, r2, #0 bl sub_0805EC9C _0801B4AC: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] movs r1, #0xf ands r0, r1 cmp r0, #0 bne _0801B4C0 movs r0, #0xfb bl sub_08004488 _0801B4C0: pop {r4, pc} .align 2, 0 _0801B4C4: .4byte 0xFFFFE000 thumb_func_start sub_0801B4C8 sub_0801B4C8: @ 0x0801B4C8 push {r4, r5, lr} adds r4, r0, #0 ldr r3, _0801B52C @ =gUnk_03003F80 str r4, [r3, #0x2c] movs r2, #0 movs r0, #1 strb r0, [r4, #0xc] ldr r0, _0801B530 @ =gUnk_081271CC str r0, [r4, #0x48] movs r0, #0xff strb r0, [r4, #0x1e] adds r0, r4, #0 adds r0, #0x80 strb r2, [r0] adds r1, r4, #0 adds r1, #0x58 movs r0, #0xb strb r0, [r1] ldr r5, _0801B534 @ =gUnk_03001160 str r5, [r4, #0x50] adds r0, r4, #0 adds r0, #0x86 strh r2, [r0] ldrb r1, [r4, #0x14] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0801B518 ldrb r0, [r5, #0x18] lsls r0, r0, #0x19 lsrs r0, r0, #0x1f movs r1, #1 bics r1, r0 lsls r1, r1, #6 ldrb r2, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] _0801B518: adds r0, r4, #0 adds r0, #0x68 ldrb r0, [r0] cmp r0, #0xc bne _0801B538 movs r0, #0xa0 lsls r0, r0, #2 strh r0, [r4, #0x24] movs r0, #0x3c b _0801B540 .align 2, 0 _0801B52C: .4byte gUnk_03003F80 _0801B530: .4byte gUnk_081271CC _0801B534: .4byte gUnk_03001160 _0801B538: movs r0, #0x80 lsls r0, r0, #2 strh r0, [r4, #0x24] movs r0, #0x1e _0801B540: strb r0, [r4, #0xe] ldrb r1, [r3, #0xd] movs r0, #0xd ldrsb r0, [r3, r0] cmp r0, #0 blt _0801B550 strb r1, [r4, #0x15] b _0801B556 _0801B550: ldrb r0, [r4, #0x14] lsls r0, r0, #2 strb r0, [r4, #0x15] _0801B556: ldrb r0, [r4, #0x15] adds r1, r4, #0 adds r1, #0x83 strb r0, [r1] adds r0, r4, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #2 bne _0801B56C movs r0, #1 strb r0, [r4, #0xb] _0801B56C: adds r0, r4, #0 movs r1, #1 movs r2, #3 bl sub_080AE008 adds r0, r4, #0 bl sub_0801766C adds r0, r4, #0 bl sub_0801B584 pop {r4, r5, pc} thumb_func_start sub_0801B584 sub_0801B584: @ 0x0801B584 push {r4, r5, r6, r7, lr} adds r6, r0, #0 bl sub_0801B804 ldr r1, _0801B5F8 @ =gUnk_03003F80 ldrb r0, [r1, #4] cmp r0, #0 beq _0801B5A8 ldrb r0, [r1, #0x1a] cmp r0, #0 bne _0801B5A8 ldr r0, [r1, #0x2c] cmp r0, r6 bne _0801B5B4 ldr r0, _0801B5FC @ =gUnk_03001160 ldrb r0, [r0, #0xc] cmp r0, #1 beq _0801B5B8 _0801B5A8: ldr r1, _0801B5F8 @ =gUnk_03003F80 ldr r0, [r1, #0x2c] cmp r0, r6 bne _0801B5B4 movs r0, #0 str r0, [r1, #0x2c] _0801B5B4: bl sub_0805E780 _0801B5B8: ldr r7, _0801B5FC @ =gUnk_03001160 adds r0, r7, #0 adds r0, #0x5a ldrb r1, [r0] movs r3, #1 movs r0, #1 ands r0, r1 cmp r0, #0 bne _0801B600 adds r0, r6, #0 adds r0, #0x68 ldrb r0, [r0] movs r2, #0 cmp r0, #0xc bne _0801B5D8 movs r2, #6 _0801B5D8: lsrs r0, r1, #4 adds r1, r0, r2 ldrb r0, [r6, #0x1e] cmp r0, r1 beq _0801B5EE strb r1, [r6, #0x1e] ldrb r1, [r6, #0x1e] ldrh r2, [r6, #0x12] adds r0, r6, #0 bl sub_080042D0 _0801B5EE: adds r0, r6, #0 adds r1, r7, #0 bl sub_08078E84 b _0801B674 .align 2, 0 _0801B5F8: .4byte gUnk_03003F80 _0801B5FC: .4byte gUnk_03001160 _0801B600: movs r5, #0 movs r0, #2 strb r0, [r6, #0xc] adds r1, r6, #0 adds r1, #0x60 movs r0, #0xd5 strh r0, [r1] ldrb r0, [r6, #0x10] movs r4, #0x80 orrs r0, r4 strb r0, [r6, #0x10] subs r1, #0x24 ldrb r0, [r1] orrs r0, r3 strb r0, [r1] adds r0, r7, #0 adds r0, #0x3b ldrb r0, [r0] adds r2, r6, #0 adds r2, #0x3b strb r0, [r2] movs r0, #0xa6 strh r0, [r6, #0x12] ldrb r1, [r6, #0x18] subs r0, #0xe7 ands r0, r1 movs r1, #4 rsbs r1, r1, #0 ands r0, r1 orrs r0, r3 strb r0, [r6, #0x18] ldrb r1, [r6, #0x14] lsrs r1, r1, #1 lsls r1, r1, #1 ldr r2, _0801B678 @ =gUnk_080B7826 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r3, [r6, #0x2e] adds r0, r0, r3 strh r0, [r6, #0x2e] adds r1, #1 adds r1, r1, r2 movs r0, #0 ldrsb r0, [r1, r0] ldrh r1, [r6, #0x32] adds r0, r0, r1 strh r0, [r6, #0x32] adds r0, r6, #0 movs r1, #0 bl sub_08004260 ldr r0, _0801B67C @ =gUnk_03003F80 str r5, [r0, #0x2c] ldrb r1, [r0, #4] orrs r4, r1 strb r4, [r0, #4] _0801B674: pop {r4, r5, r6, r7, pc} .align 2, 0 _0801B678: .4byte gUnk_080B7826 _0801B67C: .4byte gUnk_03003F80 thumb_func_start sub_0801B680 sub_0801B680: @ 0x0801B680 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_0801B804 adds r0, r4, #0 adds r0, #0x68 ldrb r0, [r0] cmp r0, #0xc bne _0801B6DC adds r0, r4, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 bne _0801B6DC ldr r3, _0801B6C4 @ =gUnk_03003F80 ldrb r1, [r3, #0xd] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0801B6DC adds r2, r4, #0 adds r2, #0x83 ldrb r0, [r2] ldrb r1, [r3, #0xd] subs r0, r0, r1 movs r3, #0x1f ands r0, r3 cmp r0, #0x10 ble _0801B6C8 adds r1, r4, #0 adds r1, #0x82 ldrh r0, [r1] adds r0, #0x40 b _0801B6D0 .align 2, 0 _0801B6C4: .4byte gUnk_03003F80 _0801B6C8: adds r1, r4, #0 adds r1, #0x82 ldrh r0, [r1] subs r0, #0x40 _0801B6D0: strh r0, [r1] ldrb r1, [r2] adds r0, r3, #0 ands r0, r1 strb r0, [r2] strb r0, [r4, #0x15] _0801B6DC: adds r0, r4, #0 bl sub_0806F69C movs r5, #0 adds r0, r4, #0 bl sub_0801B864 cmp r0, #0 beq _0801B6FE adds r0, r4, #0 adds r0, #0x68 ldrb r1, [r0] movs r0, #0xc eors r1, r0 rsbs r0, r1, #0 orrs r0, r1 lsrs r5, r0, #0x1f _0801B6FE: movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _0801B780 @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r3, #0x3f ands r0, r3 movs r6, #0x32 ldrsh r1, [r4, r6] ldrh r2, [r2, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r3 lsls r1, r1, #6 orrs r0, r1 ldr r1, _0801B784 @ =gUnk_03001160 adds r1, #0x38 ldrb r1, [r1] movs r2, #0x80 bl sub_080002F0 cmp r0, #0 bne _0801B73C cmp r5, #0 bne _0801B790 ldr r1, _0801B788 @ =gUnk_08003E44 adds r0, r4, #0 bl sub_080040E2 adds r5, r0, #0 _0801B73C: cmp r5, #0 bne _0801B790 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xb bhi _0801B754 ldrh r0, [r4, #0x24] subs r0, #0x10 strh r0, [r4, #0x24] _0801B754: ldrb r0, [r4, #0xe] cmp r0, #0 bne _0801B75C movs r5, #1 _0801B75C: adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801B76C movs r5, #1 _0801B76C: cmp r5, #0 beq _0801B7A4 adds r0, r4, #0 adds r0, #0x68 ldrb r0, [r0] cmp r0, #0xc bne _0801B78C movs r0, #0x1e b _0801B792 .align 2, 0 _0801B780: .4byte gUnk_03000BF0 _0801B784: .4byte gUnk_03001160 _0801B788: .4byte gUnk_08003E44 _0801B78C: movs r0, #0xc b _0801B792 _0801B790: movs r0, #1 _0801B792: strb r0, [r4, #0xe] cmp r5, #0 beq _0801B7A4 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] movs r0, #0xe0 lsls r0, r0, #1 strh r0, [r4, #0x24] _0801B7A4: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0801B7A8 sub_0801B7A8: @ 0x0801B7A8 push {r4, r5, lr} adds r5, r0, #0 bl sub_0801B804 ldrb r0, [r5, #0xe] cmp r0, #0 beq _0801B7BC subs r0, #1 strb r0, [r5, #0xe] b _0801B7FA _0801B7BC: adds r0, r5, #0 bl sub_0801B864 ldrh r2, [r5, #0x24] movs r0, #0x24 ldrsh r1, [r5, r0] ldr r0, _0801B7FC @ =0x0000027F cmp r1, r0 bgt _0801B7D4 adds r0, r2, #0 adds r0, #8 strh r0, [r5, #0x24] _0801B7D4: ldr r4, _0801B800 @ =gUnk_03001160 adds r0, r5, #0 adds r1, r4, #0 bl sub_080045C4 strb r0, [r5, #0x15] adds r0, r5, #0 bl sub_0806F69C adds r0, r5, #0 adds r1, r4, #0 movs r2, #2 movs r3, #2 bl sub_0800419C cmp r0, #0 beq _0801B7FA bl sub_0805E780 _0801B7FA: pop {r4, r5, pc} .align 2, 0 _0801B7FC: .4byte 0x0000027F _0801B800: .4byte gUnk_03001160 thumb_func_start sub_0801B804 sub_0801B804: @ 0x0801B804 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0xc bl sub_0805436C cmp r0, #1 beq _0801B820 cmp r0, #1 blo _0801B81C cmp r0, #2 beq _0801B824 b _0801B826 _0801B81C: movs r4, #1 b _0801B826 _0801B820: movs r4, #2 b _0801B826 _0801B824: movs r4, #0 _0801B826: ldr r3, _0801B850 @ =gUnk_03003F80 adds r0, r3, #0 adds r0, #0x90 ldrh r0, [r0] ands r4, r0 cmp r4, #0 bne _0801B854 adds r1, r5, #0 adds r1, #0x80 movs r0, #1 strb r0, [r1] ldrb r2, [r3, #0xa] movs r1, #0x7f adds r0, r1, #0 ands r0, r2 strb r0, [r3, #0xa] ldrb r0, [r3, #0xb] ands r1, r0 strb r1, [r3, #0xb] b _0801B862 .align 2, 0 _0801B850: .4byte gUnk_03003F80 _0801B854: ldrb r1, [r3, #0xa] movs r0, #0x80 orrs r1, r0 strb r1, [r3, #0xa] ldrb r1, [r3, #0xb] orrs r0, r1 strb r0, [r3, #0xb] _0801B862: pop {r4, r5, pc} thumb_func_start sub_0801B864 sub_0801B864: @ 0x0801B864 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xb] cmp r0, #0 bne _0801B874 adds r0, r4, #0 bl sub_0800451C _0801B874: ldrb r0, [r4, #0x15] lsrs r0, r0, #2 lsls r0, r0, #1 ldr r3, _0801B894 @ =gUnk_080B782E adds r1, r0, r3 movs r2, #0 ldrsb r2, [r1, r2] adds r0, #1 adds r0, r0, r3 movs r3, #0 ldrsb r3, [r0, r3] adds r0, r4, #0 movs r1, #2 bl sub_08008782 pop {r4, pc} .align 2, 0 _0801B894: .4byte gUnk_080B782E thumb_func_start sub_0801B898 sub_0801B898: @ 0x0801B898 push {lr} ldr r2, _0801B8AC @ =gUnk_080B7840 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0801B8AC: .4byte gUnk_080B7840 thumb_func_start sub_0801B8B0 sub_0801B8B0: @ 0x0801B8B0 push {r4, lr} adds r4, r0, #0 ldr r1, _0801B8F0 @ =gUnk_03003F80 ldrb r0, [r1, #0x1e] cmp r0, #0 beq _0801B8F4 str r4, [r1, #0x2c] ldrb r1, [r4, #0x10] movs r0, #0x20 orrs r0, r1 strb r0, [r4, #0x10] movs r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x3b movs r0, #8 strb r0, [r1] adds r0, r4, #0 movs r1, #1 movs r2, #3 bl sub_080AE008 adds r0, r4, #0 bl sub_08079BD8 adds r0, r4, #0 bl sub_0801766C adds r0, r4, #0 bl sub_0801B8FC b _0801B8F8 .align 2, 0 _0801B8F0: .4byte gUnk_03003F80 _0801B8F4: bl sub_0805E780 _0801B8F8: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801B8FC sub_0801B8FC: @ 0x0801B8FC push {lr} ldr r1, _0801B90C @ =gUnk_03003F80 ldr r2, [r1, #0x2c] cmp r2, r0 beq _0801B910 bl sub_0805E780 b _0801B934 .align 2, 0 _0801B90C: .4byte gUnk_03003F80 _0801B910: ldrb r0, [r1, #0x1e] cmp r0, #0 bne _0801B91E str r0, [r1, #0x2c] bl sub_0805E780 b _0801B934 _0801B91E: ldrb r1, [r2, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x10] adds r1, r2, #0 adds r1, #0x3c movs r0, #0x21 strb r0, [r1] adds r0, r2, #0 bl sub_0801B938 _0801B934: pop {pc} .align 2, 0 thumb_func_start sub_0801B938 sub_0801B938: @ 0x0801B938 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x14] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0801B960 ldr r3, _0801B95C @ =gUnk_03001160 ldrb r1, [r3, #0x18] lsls r1, r1, #0x19 lsrs r1, r1, #0x1f movs r0, #1 eors r1, r0 lsls r1, r1, #6 ldrb r2, [r4, #0x18] subs r0, #0x42 b _0801B96E .align 2, 0 _0801B95C: .4byte gUnk_03001160 _0801B960: ldr r3, _0801B998 @ =gUnk_03001160 ldrb r0, [r3, #0x18] movs r1, #0x40 ands r1, r0 ldrb r2, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 _0801B96E: ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r3, #0 adds r0, #0x58 ldrb r0, [r0] adds r0, #0x68 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #3 bhi _0801B99C ldrb r0, [r3, #0x1e] adds r0, #0x2e strb r0, [r4, #0x1e] ldrb r1, [r4, #0x1e] ldrh r2, [r4, #0x12] adds r0, r4, #0 bl sub_080042D0 b _0801B9A0 .align 2, 0 _0801B998: .4byte gUnk_03001160 _0801B99C: movs r0, #0xff strb r0, [r4, #0x1e] _0801B9A0: ldrb r3, [r4, #0x14] lsrs r3, r3, #1 lsls r0, r3, #3 ldr r1, _0801B9E0 @ =gUnk_080B7850 adds r0, r0, r1 str r0, [r4, #0x48] lsls r3, r3, #1 ldr r0, _0801B9E4 @ =gUnk_080B7848 adds r3, r3, r0 ldr r0, _0801B9E8 @ =gUnk_03003F80 adds r0, #0xac ldrh r0, [r0] movs r1, #8 ands r1, r0 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 rsbs r1, r1, #0 lsrs r1, r1, #0x1f movs r2, #0 ldrsb r2, [r3, r2] ldrb r3, [r3, #1] lsls r3, r3, #0x18 asrs r3, r3, #0x18 adds r0, r4, #0 bl sub_08008782 ldr r1, _0801B9EC @ =gUnk_03001160 adds r0, r4, #0 bl sub_08078E84 pop {r4, pc} .align 2, 0 _0801B9E0: .4byte gUnk_080B7850 _0801B9E4: .4byte gUnk_080B7848 _0801B9E8: .4byte gUnk_03003F80 _0801B9EC: .4byte gUnk_03001160 thumb_func_start sub_0801B9F0 sub_0801B9F0: @ 0x0801B9F0 push {lr} ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] bl sub_08017744 pop {pc} thumb_func_start sub_0801BA00 sub_0801BA00: @ 0x0801BA00 push {lr} ldr r2, _0801BA14 @ =gUnk_080B7870 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0801BA14: .4byte gUnk_080B7870 thumb_func_start sub_0801BA18 sub_0801BA18: @ 0x0801BA18 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x68 ldrb r0, [r1] cmp r0, #0x36 bne _0801BA2A movs r0, #0x36 b _0801BA34 _0801BA2A: ldrb r1, [r1] ldr r0, _0801BA4C @ =gUnk_02002A40 adds r0, r0, r1 adds r0, #0x9a ldrb r0, [r0] _0801BA34: adds r1, r4, #0 adds r1, #0x6f strb r0, [r1] subs r0, #0x20 cmp r0, #0x11 bhi _0801BB02 lsls r0, r0, #2 ldr r1, _0801BA50 @ =_0801BA54 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801BA4C: .4byte gUnk_02002A40 _0801BA50: .4byte _0801BA54 _0801BA54: @ jump table .4byte _0801BA9C @ case 0 .4byte _0801BAF8 @ case 1 .4byte _0801BAF8 @ case 2 .4byte _0801BAF8 @ case 3 .4byte _0801BAF8 @ case 4 .4byte _0801BAF8 @ case 5 .4byte _0801BB02 @ case 6 .4byte _0801BB02 @ case 7 .4byte _0801BB02 @ case 8 .4byte _0801BAF8 @ case 9 .4byte _0801BAF8 @ case 10 .4byte _0801BAF8 @ case 11 .4byte _0801BAF8 @ case 12 .4byte _0801BAF8 @ case 13 .4byte _0801BAF8 @ case 14 .4byte _0801BB02 @ case 15 .4byte _0801BB02 @ case 16 .4byte _0801BB02 @ case 17 _0801BA9C: adds r0, r4, #0 bl sub_0806FBD8 cmp r0, #0 beq _0801BB26 ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldr r1, _0801BAF4 @ =gUnk_03001160 adds r0, r1, #0 adds r0, #0x3c ldrb r0, [r0] adds r0, #1 movs r2, #0x20 adds r3, r4, #0 adds r3, #0x3c orrs r0, r2 strb r0, [r3] adds r1, #0x3b ldrb r0, [r1] adds r1, r4, #0 adds r1, #0x3b strb r0, [r1] adds r1, #5 movs r0, #0x1f strb r0, [r1] movs r0, #1 strb r0, [r4, #0xa] movs r0, #0x20 strb r0, [r4, #0xb] movs r0, #0x52 strb r0, [r4, #0xe] movs r0, #0x1b strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_0801766C movs r0, #0xee lsls r0, r0, #1 bl sub_080A3268 b _0801BB0A .align 2, 0 _0801BAF4: .4byte gUnk_03001160 _0801BAF8: movs r0, #0xd5 strb r0, [r4, #0xe] movs r0, #0x3c strb r0, [r4, #0xf] b _0801BB0A _0801BB02: movs r1, #0 movs r0, #0x37 strb r0, [r4, #0xe] strb r1, [r4, #0xf] _0801BB0A: movs r0, #1 strb r0, [r4, #0xc] movs r0, #0xff strb r0, [r4, #0x1e] ldr r0, _0801BB28 @ =gUnk_03003F80 str r4, [r0, #0x2c] adds r0, r4, #0 movs r1, #1 movs r2, #3 bl sub_080AE008 adds r0, r4, #0 bl sub_0801BB2C _0801BB26: pop {r4, pc} .align 2, 0 _0801BB28: .4byte gUnk_03003F80 thumb_func_start sub_0801BB2C sub_0801BB2C: @ 0x0801BB2C push {r4, r5, lr} adds r5, r0, #0 ldr r0, _0801BB88 @ =gUnk_03003F80 ldr r0, [r0, #0x2c] cmp r0, r5 beq _0801BB68 ldrb r0, [r5, #0xa] cmp r0, #1 bne _0801BB64 ldrb r0, [r5, #0xb] cmp r0, #0x20 beq _0801BB64 adds r0, r5, #0 adds r0, #0x68 ldrb r4, [r0] subs r4, #0x1c ldrb r0, [r5, #0xb] adds r1, r4, #0 bl sub_08054464 ldrb r0, [r5, #0xb] adds r1, r4, #0 movs r2, #5 bl sub_080A7C18 ldr r0, _0801BB8C @ =0x00000109 bl sub_080A3268 _0801BB64: bl sub_0805E780 _0801BB68: ldr r1, _0801BB90 @ =gUnk_03001160 adds r0, r5, #0 bl sub_0801BDE8 adds r0, r5, #0 adds r0, #0x6f ldrb r0, [r0] subs r0, #0x20 cmp r0, #0x11 bhi _0801BC04 lsls r0, r0, #2 ldr r1, _0801BB94 @ =_0801BB98 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801BB88: .4byte gUnk_03003F80 _0801BB8C: .4byte 0x00000109 _0801BB90: .4byte gUnk_03001160 _0801BB94: .4byte _0801BB98 _0801BB98: @ jump table .4byte _0801BBE0 @ case 0 .4byte _0801BBE8 @ case 1 .4byte _0801BBE8 @ case 2 .4byte _0801BBE8 @ case 3 .4byte _0801BBE8 @ case 4 .4byte _0801BBE8 @ case 5 .4byte _0801BC04 @ case 6 .4byte _0801BC04 @ case 7 .4byte _0801BC04 @ case 8 .4byte _0801BBE8 @ case 9 .4byte _0801BBE8 @ case 10 .4byte _0801BBE8 @ case 11 .4byte _0801BBE8 @ case 12 .4byte _0801BBE8 @ case 13 .4byte _0801BBE8 @ case 14 .4byte _0801BC04 @ case 15 .4byte _0801BC04 @ case 16 .4byte _0801BC04 @ case 17 _0801BBE0: adds r0, r5, #0 bl sub_0801BC0C b _0801BC0A _0801BBE8: ldr r0, _0801BC00 @ =gUnk_03001160 adds r1, r0, #0 adds r1, #0x5a ldrb r0, [r1] cmp r0, #1 bne _0801BC0A movs r0, #0 strb r0, [r1] adds r0, r5, #0 bl sub_0801BC14 b _0801BC0A .align 2, 0 _0801BC00: .4byte gUnk_03001160 _0801BC04: adds r0, r5, #0 bl sub_0801BCB4 _0801BC0A: pop {r4, r5, pc} thumb_func_start sub_0801BC0C sub_0801BC0C: @ 0x0801BC0C push {lr} bl sub_0801BE38 pop {pc} thumb_func_start sub_0801BC14 sub_0801BC14: @ 0x0801BC14 push {r4, r5, r6, lr} adds r4, r0, #0 movs r6, #0x20 movs r5, #0 adds r0, #0x6f ldrb r0, [r0] subs r0, #0x21 cmp r0, #0xd bhi _0801BC98 lsls r0, r0, #2 ldr r1, _0801BC30 @ =_0801BC34 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801BC30: .4byte _0801BC34 _0801BC34: @ jump table .4byte _0801BC76 @ case 0 .4byte _0801BC6C @ case 1 .4byte _0801BC6E @ case 2 .4byte _0801BC76 @ case 3 .4byte _0801BC72 @ case 4 .4byte _0801BC98 @ case 5 .4byte _0801BC98 @ case 6 .4byte _0801BC98 @ case 7 .4byte _0801BC7A @ case 8 .4byte _0801BC7A @ case 9 .4byte _0801BC7A @ case 10 .4byte _0801BC7A @ case 11 .4byte _0801BC7A @ case 12 .4byte _0801BC7A @ case 13 _0801BC6C: movs r6, #0x23 _0801BC6E: movs r5, #0x28 b _0801BC98 _0801BC72: movs r5, #0x50 b _0801BC98 _0801BC76: movs r5, #0xa0 b _0801BC98 _0801BC7A: ldr r1, _0801BCB0 @ =gUnk_02002A40 adds r0, r4, #0 adds r0, #0x6f ldrb r0, [r0] adds r2, r1, #0 adds r2, #0xb3 strb r0, [r2] adds r1, #0xc6 movs r0, #0xe1 lsls r0, r0, #2 strh r0, [r1] movs r0, #0x88 lsls r0, r0, #2 bl sub_080A3268 _0801BC98: adds r0, r5, #0 bl sub_080526A0 adds r0, r4, #0 adds r0, #0x68 ldrb r1, [r0] subs r1, #0x1c adds r0, r6, #0 bl sub_08054464 pop {r4, r5, r6, pc} .align 2, 0 _0801BCB0: .4byte gUnk_02002A40 thumb_func_start sub_0801BCB4 sub_0801BCB4: @ 0x0801BCB4 push {r4, r5, lr} adds r4, r0, #0 ldr r0, _0801BCEC @ =gUnk_03001160 adds r0, #0x5a ldrb r0, [r0] cmp r0, #1 bne _0801BD6C adds r0, r4, #0 adds r0, #0x6f ldrb r1, [r0] adds r5, r0, #0 cmp r1, #0x36 beq _0801BCDA subs r0, #7 ldrb r1, [r0] subs r1, #0x1c movs r0, #0x20 bl sub_08054464 _0801BCDA: ldrb r0, [r5] subs r0, #0x26 cmp r0, #0xb bhi _0801BD6C lsls r0, r0, #2 ldr r1, _0801BCF0 @ =_0801BCF4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801BCEC: .4byte gUnk_03001160 _0801BCF0: .4byte _0801BCF4 _0801BCF4: @ jump table .4byte _0801BD24 @ case 0 .4byte _0801BD32 @ case 1 .4byte _0801BD40 @ case 2 .4byte _0801BD6C @ case 3 .4byte _0801BD6C @ case 4 .4byte _0801BD6C @ case 5 .4byte _0801BD6C @ case 6 .4byte _0801BD6C @ case 7 .4byte _0801BD6C @ case 8 .4byte _0801BD54 @ case 9 .4byte _0801BD54 @ case 10 .4byte _0801BD54 @ case 11 _0801BD24: adds r0, r4, #0 movs r1, #0x68 movs r2, #0 movs r3, #0 bl sub_080A2988 b _0801BD6C _0801BD32: adds r0, r4, #0 movs r1, #0x68 movs r2, #1 movs r3, #1 bl sub_080A2988 b _0801BD6C _0801BD40: adds r0, r4, #0 movs r1, #0x68 movs r2, #2 movs r3, #2 bl sub_080A2988 movs r0, #0x20 bl sub_080526A0 b _0801BD6C _0801BD54: ldr r1, _0801BD88 @ =gUnk_02002A40 ldrb r0, [r5] adds r2, r1, #0 adds r2, #0xb2 strb r0, [r2] adds r1, #0xc4 movs r0, #0xe1 lsls r0, r0, #4 strh r0, [r1] ldr r0, _0801BD8C @ =0x000001CF bl sub_080A3268 _0801BD6C: ldr r0, _0801BD90 @ =gUnk_03001160 adds r0, #0x5a ldrb r0, [r0] cmp r0, #2 bne _0801BDAE adds r0, r4, #0 adds r0, #0x6f ldrb r0, [r0] cmp r0, #0x26 beq _0801BD94 cmp r0, #0x27 beq _0801BDA2 b _0801BDAE .align 2, 0 _0801BD88: .4byte gUnk_02002A40 _0801BD8C: .4byte 0x000001CF _0801BD90: .4byte gUnk_03001160 _0801BD94: adds r0, r4, #0 movs r1, #0x68 movs r2, #0 movs r3, #0 bl sub_080A2988 b _0801BDAE _0801BDA2: adds r0, r4, #0 movs r1, #0x68 movs r2, #1 movs r3, #1 bl sub_080A2988 _0801BDAE: ldr r0, _0801BDC8 @ =gUnk_03001160 adds r0, #0x5a ldrb r0, [r0] cmp r0, #3 bne _0801BDE6 adds r0, r4, #0 adds r0, #0x6f ldrb r0, [r0] cmp r0, #0x26 beq _0801BDCC cmp r0, #0x27 beq _0801BDDA b _0801BDE6 .align 2, 0 _0801BDC8: .4byte gUnk_03001160 _0801BDCC: adds r0, r4, #0 movs r1, #0x68 movs r2, #0 movs r3, #0 bl sub_080A2988 b _0801BDE6 _0801BDDA: adds r0, r4, #0 movs r1, #0x68 movs r2, #1 movs r3, #0 bl sub_080A2988 _0801BDE6: pop {r4, r5, pc} thumb_func_start sub_0801BDE8 sub_0801BDE8: @ 0x0801BDE8 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 ldrb r0, [r5, #0x1e] ldrb r1, [r4, #0xe] subs r0, r0, r1 ldrb r1, [r4, #0xf] adds r0, r0, r1 ldrb r1, [r4, #0x1e] cmp r0, r1 beq _0801BE0A strb r0, [r4, #0x1e] ldrb r1, [r4, #0x1e] ldrh r2, [r4, #0x12] adds r0, r4, #0 bl sub_080042D0 _0801BE0A: ldrb r1, [r5, #0x18] lsls r1, r1, #0x19 lsrs r1, r1, #0x1f ldrb r0, [r5, #0x14] lsrs r0, r0, #1 movs r2, #1 ands r0, r2 eors r1, r0 lsls r1, r1, #6 ldrb r2, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] ldr r1, _0801BE34 @ =gUnk_03001160 adds r0, r4, #0 bl sub_08078E84 pop {r4, r5, pc} .align 2, 0 _0801BE34: .4byte gUnk_03001160 thumb_func_start sub_0801BE38 sub_0801BE38: @ 0x0801BE38 push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x41 ldrb r0, [r2] movs r1, #0x7f ands r1, r0 cmp r1, #0x49 beq _0801BE54 cmp r1, #0x4d beq _0801BE60 movs r0, #0 strb r0, [r2] b _0801BE6A _0801BE54: movs r0, #0x28 strb r0, [r4, #0xb] adds r0, r4, #0 bl sub_0801B9F0 b _0801BE6A _0801BE60: movs r0, #0x27 strb r0, [r4, #0xb] adds r0, r4, #0 bl sub_0801B9F0 _0801BE6A: ldrb r0, [r4, #0x1e] subs r0, #0x1b lsls r0, r0, #2 ldr r1, _0801BE84 @ =gUnk_080B788A adds r2, r0, r1 ldrb r0, [r4, #0x18] lsls r0, r0, #0x19 cmp r0, #0 bge _0801BE88 ldr r1, [r4, #0x48] ldrb r0, [r2] rsbs r0, r0, #0 b _0801BE8C .align 2, 0 _0801BE84: .4byte gUnk_080B788A _0801BE88: ldr r1, [r4, #0x48] ldrb r0, [r2] _0801BE8C: strb r0, [r1] ldr r1, [r4, #0x48] ldrb r0, [r2, #1] strb r0, [r1, #1] ldr r1, [r4, #0x48] ldrb r0, [r2, #2] strb r0, [r1, #6] ldr r1, [r4, #0x48] ldrb r0, [r2, #3] strb r0, [r1, #7] ldr r0, _0801BEF0 @ =gUnk_03001160 adds r0, #0x5a ldrb r0, [r0] movs r1, #0xf ands r1, r0 cmp r1, #0 beq _0801BEDE ldrb r0, [r4, #0xb] cmp r0, #0x20 bne _0801BEE4 subs r0, r1, #1 lsls r0, r0, #1 ldr r1, _0801BEF4 @ =gUnk_080B7878 adds r2, r0, r1 movs r1, #0 ldrsb r1, [r2, r1] ldrb r0, [r4, #0x18] lsls r0, r0, #0x19 cmp r0, #0 bge _0801BECA rsbs r1, r1, #0 _0801BECA: ldrb r2, [r2, #1] lsls r2, r2, #0x18 asrs r2, r2, #0x18 adds r0, r4, #0 bl sub_080002B4 cmp r0, #0x10 bne _0801BEDE movs r0, #0x26 strb r0, [r4, #0xb] _0801BEDE: ldrb r0, [r4, #0xb] cmp r0, #0x20 beq _0801BEEE _0801BEE4: ldr r2, _0801BEF0 @ =gUnk_03001160 ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0x10] _0801BEEE: pop {r4, pc} .align 2, 0 _0801BEF0: .4byte gUnk_03001160 _0801BEF4: .4byte gUnk_080B7878 thumb_func_start sub_0801BEF8 sub_0801BEF8: @ 0x0801BEF8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} mov r8, r0 ldr r7, _0801BFF0 @ =gUnk_03001160 ldrb r0, [r0, #0xc] cmp r0, #0 bne _0801BF62 movs r1, #0x2e ldrsh r0, [r7, r1] ldr r5, _0801BFF4 @ =gUnk_080B7B6C ldrb r1, [r7, #0x14] movs r2, #0xe ands r2, r1 adds r1, r2, r5 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r0, r0, r1 ldr r4, _0801BFF8 @ =gUnk_03000BF0 ldrh r1, [r4, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r3, #0x3f ands r0, r3 movs r6, #0x32 ldrsh r1, [r7, r6] adds r2, #1 adds r2, r2, r5 ldrb r2, [r2] 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 lsls r1, r1, #6 orrs r0, r1 mov r1, r8 adds r1, #0x38 ldrb r1, [r1] bl sub_080002B0 mov r1, r8 adds r1, #0x6c strh r0, [r1] mov r1, r8 ldrb r0, [r1, #0xc] adds r0, #1 strb r0, [r1, #0xc] _0801BF62: ldr r2, _0801BFFC @ =gUnk_03003F80 mov sb, r2 ldrb r1, [r2, #0x1a] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x1a] ldr r6, _0801C000 @ =gUnk_03000FF0 ldrh r1, [r6] movs r3, #0x80 lsls r3, r3, #1 mov sl, r3 movs r0, #1 ands r0, r1 cmp r0, #0 beq _0801C074 ldrh r1, [r6, #2] mov r0, sl ands r0, r1 cmp r0, #0 beq _0801BFDA movs r4, #0x2e ldrsh r0, [r7, r4] ldr r5, _0801BFF4 @ =gUnk_080B7B6C mov sb, r5 ldrb r1, [r7, #0x14] movs r2, #0xe ands r2, r1 adds r1, r2, r5 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r0, r0, r1 ldr r4, _0801BFF8 @ =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, [r7, r5] adds r2, #1 add r2, sb ldrb r2, [r2] 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 lsls r1, r1, #6 orrs r0, r1 mov r1, r8 adds r1, #0x38 ldrb r1, [r1] bl sub_080002B0 mov r1, r8 adds r1, #0x6c strh r0, [r1] _0801BFDA: ldrh r3, [r6] mov r0, sl ands r0, r3 adds r4, r3, #0 cmp r0, #0 beq _0801C004 adds r1, r7, #0 adds r1, #0x3d movs r0, #2 strb r0, [r1] b _0801C0D4 .align 2, 0 _0801BFF0: .4byte gUnk_03001160 _0801BFF4: .4byte gUnk_080B7B6C _0801BFF8: .4byte gUnk_03000BF0 _0801BFFC: .4byte gUnk_03003F80 _0801C000: .4byte gUnk_03000FF0 _0801C004: ldrh r2, [r6, #2] movs r6, #0x10 adds r0, r6, #0 ands r0, r2 cmp r0, #0 beq _0801C01A mov r1, r8 adds r1, #0x6c ldrh r0, [r1] subs r0, #1 strh r0, [r1] _0801C01A: movs r5, #0x20 adds r0, r5, #0 ands r0, r2 cmp r0, #0 beq _0801C02E mov r1, r8 adds r1, #0x6c ldrh r0, [r1] adds r0, #1 strh r0, [r1] _0801C02E: movs r0, #0x30 ands r0, r4 cmp r0, #0 beq _0801C06E mov r1, r8 ldrb r0, [r1, #0xf] adds r0, #1 strb r0, [r1, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x1e bls _0801C0D4 movs r0, #0x1e strb r0, [r1, #0xf] adds r0, r6, #0 ands r0, r4 cmp r0, #0 beq _0801C05A adds r1, #0x6c ldrh r0, [r1] subs r0, #1 strh r0, [r1] _0801C05A: adds r0, r5, #0 ands r0, r3 cmp r0, #0 beq _0801C0D4 mov r1, r8 adds r1, #0x6c ldrh r0, [r1] adds r0, #1 strh r0, [r1] b _0801C0D4 _0801C06E: mov r2, r8 strb r0, [r2, #0xf] b _0801C0D4 _0801C074: mov r0, r8 adds r0, #0x6c ldrh r0, [r0] movs r3, #0x2e ldrsh r1, [r7, r3] ldr r4, _0801C1C8 @ =gUnk_080B7B6C mov sl, r4 ldrb r2, [r7, #0x14] movs r3, #0xe ands r3, r2 adds r2, r3, r4 ldrb r2, [r2] lsls r2, r2, #0x18 asrs r2, r2, #0x18 adds r1, r1, r2 ldr r5, _0801C1CC @ =gUnk_03000BF0 ldrh r2, [r5, #6] subs r1, r1, r2 asrs r1, r1, #4 movs r4, #0x3f ands r1, r4 movs r6, #0x32 ldrsh r2, [r7, r6] adds r3, #1 add r3, sl ldrb r3, [r3] lsls r3, r3, #0x18 asrs r3, r3, #0x18 adds r2, r2, r3 ldrh r3, [r5, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r4 lsls r2, r2, #6 orrs r1, r2 mov r2, r8 adds r2, #0x38 ldrb r2, [r2] bl sub_0807B7D8 mov r0, sb ldrb r1, [r0, #0x1a] movs r0, #0x7f ands r0, r1 mov r1, sb strb r0, [r1, #0x1a] bl sub_0805E780 _0801C0D4: ldr r0, _0801C1D0 @ =gUnk_03000FF0 ldrh r1, [r0] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0801C1BE movs r2, #0x6c add r2, r8 mov sb, r2 ldrh r0, [r2] movs r3, #0x2e ldrsh r1, [r7, r3] ldr r6, _0801C1C8 @ =gUnk_080B7B6C movs r2, #0 ldrsb r2, [r6, r2] adds r1, r1, r2 ldr r5, _0801C1CC @ =gUnk_03000BF0 ldrh r2, [r5, #6] subs r1, r1, r2 asrs r1, r1, #4 movs r4, #0x3f ands r1, r4 movs r3, #0x32 ldrsh r2, [r7, r3] movs r3, #1 ldrsb r3, [r6, r3] adds r2, r2, r3 ldrh r3, [r5, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r4 lsls r2, r2, #6 orrs r1, r2 movs r2, #0x38 add r8, r2 mov r3, r8 ldrb r2, [r3] bl sub_0807B7D8 mov r1, sb ldrh r0, [r1] movs r2, #0x2e ldrsh r1, [r7, r2] movs r2, #2 ldrsb r2, [r6, r2] adds r1, r1, r2 ldrh r2, [r5, #6] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r4 movs r3, #0x32 ldrsh r2, [r7, r3] movs r3, #3 ldrsb r3, [r6, r3] adds r2, r2, r3 ldrh r3, [r5, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r4 lsls r2, r2, #6 orrs r1, r2 mov r3, r8 ldrb r2, [r3] bl sub_0807B7D8 mov r1, sb ldrh r0, [r1] movs r2, #0x2e ldrsh r1, [r7, r2] movs r2, #4 ldrsb r2, [r6, r2] adds r1, r1, r2 ldrh r2, [r5, #6] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r4 movs r3, #0x32 ldrsh r2, [r7, r3] movs r3, #5 ldrsb r3, [r6, r3] adds r2, r2, r3 ldrh r3, [r5, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r4 lsls r2, r2, #6 orrs r1, r2 mov r3, r8 ldrb r2, [r3] bl sub_0807B7D8 mov r1, sb ldrh r0, [r1] movs r2, #0x2e ldrsh r1, [r7, r2] movs r2, #6 ldrsb r2, [r6, r2] adds r1, r1, r2 ldrh r2, [r5, #6] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r4 movs r3, #0x32 ldrsh r2, [r7, r3] movs r3, #7 ldrsb r3, [r6, r3] adds r2, r2, r3 ldrh r3, [r5, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r4 lsls r2, r2, #6 orrs r1, r2 mov r4, r8 ldrb r2, [r4] bl sub_0807B7D8 _0801C1BE: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _0801C1C8: .4byte gUnk_080B7B6C _0801C1CC: .4byte gUnk_03000BF0 _0801C1D0: .4byte gUnk_03000FF0 thumb_func_start sub_0801C1D4 sub_0801C1D4: @ 0x0801C1D4 push {r4, lr} movs r4, #0 _0801C1D8: lsls r1, r4, #5 ldr r0, _0801C200 @ =gUnk_0200AF34 adds r2, r1, r0 ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0801C1F8 ldrb r0, [r2, #1] lsls r0, r0, #4 ldr r1, _0801C204 @ =gUnk_080C8F8C adds r0, r0, r1 ldr r1, [r0, #8] adds r0, r2, #0 bl _call_via_r1 _0801C1F8: adds r4, #1 cmp r4, #0x17 bls _0801C1D8 pop {r4, pc} .align 2, 0 _0801C200: .4byte gUnk_0200AF34 _0801C204: .4byte gUnk_080C8F8C thumb_func_start sub_0801C208 sub_0801C208: @ 0x0801C208 push {r4, r5, lr} movs r5, #0 ldr r4, _0801C250 @ =gUnk_03001010 _0801C20E: lsls r1, r5, #5 ldr r0, _0801C254 @ =gUnk_0200AF34 adds r3, r1, r0 ldrb r1, [r3] movs r0, #3 ands r0, r1 cmp r0, #3 bne _0801C248 ldrh r0, [r3, #0xc] strh r0, [r4] ldrh r0, [r3, #0xe] strh r0, [r4, #2] ldrb r2, [r3, #1] lsls r2, r2, #4 ldr r0, _0801C258 @ =gUnk_080C8F8C adds r2, r2, r0 ldrh r0, [r2] strh r0, [r4, #4] ldrh r0, [r2, #2] strh r0, [r4, #6] ldrb r0, [r3, #0x18] lsls r0, r0, #0xc ldrh r1, [r3, #0x1a] orrs r0, r1 strh r0, [r4, #8] ldrh r0, [r2, #6] ldrb r1, [r3, #0x10] bl sub_080ADA14 _0801C248: adds r5, #1 cmp r5, #0x17 bls _0801C20E pop {r4, r5, pc} .align 2, 0 _0801C250: .4byte gUnk_03001010 _0801C254: .4byte gUnk_0200AF34 _0801C258: .4byte gUnk_080C8F8C thumb_func_start sub_0801C25C sub_0801C25C: @ 0x0801C25C push {r4, r5, r6, r7, lr} movs r4, #0 ldr r5, _0801C2E4 @ =gUnk_0200AF34 adds r6, r5, #0 subs r6, #0x34 movs r7, #0xd rsbs r7, r7, #0 ldr r3, _0801C2E8 @ =0x040000D4 _0801C26C: lsls r0, r4, #5 adds r2, r0, r5 ldrb r1, [r2] movs r0, #3 ands r0, r1 cmp r0, #3 bne _0801C2A8 lsls r0, r1, #0x1c lsrs r0, r0, #0x1e cmp r0, #1 bne _0801C2A8 adds r0, r7, #0 ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r2] ldr r0, [r2, #0x1c] str r0, [r3] ldrh r0, [r2, #0x1a] lsls r0, r0, #5 ldr r1, _0801C2EC @ =0x06010000 adds r0, r0, r1 str r0, [r3, #4] ldrb r0, [r2, #0x19] lsls r0, r0, #3 movs r1, #0x84 lsls r1, r1, #0x18 orrs r0, r1 str r0, [r3, #8] ldr r0, [r3, #8] _0801C2A8: adds r4, #1 cmp r4, #0x17 ble _0801C26C adds r2, r6, #0 ldrb r3, [r2, #0x13] movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #0 bge _0801C2C8 movs r1, #0x7f ands r1, r3 strb r1, [r2, #0x13] movs r0, #0x8d lsls r0, r0, #1 bl sub_0801C2F0 _0801C2C8: ldrb r2, [r6, #0x14] movs r0, #0x14 ldrsb r0, [r6, r0] cmp r0, #0 bge _0801C2E0 movs r1, #0x7f ands r1, r2 strb r1, [r6, #0x14] movs r0, #0x93 lsls r0, r0, #1 bl sub_0801C2F0 _0801C2E0: pop {r4, r5, r6, r7, pc} .align 2, 0 _0801C2E4: .4byte gUnk_0200AF34 _0801C2E8: .4byte 0x040000D4 _0801C2EC: .4byte 0x06010000 thumb_func_start sub_0801C2F0 sub_0801C2F0: @ 0x0801C2F0 push {r4, r5, lr} adds r4, r0, #0 adds r0, r1, #0 lsls r5, r4, #5 ldr r1, _0801C330 @ =0x06010000 adds r4, r5, r1 movs r1, #0xa bl Div cmp r0, #9 bls _0801C308 movs r0, #9 _0801C308: ldr r2, _0801C334 @ =0x040000D4 lsls r0, r0, #5 ldr r3, _0801C338 @ =gUnk_085C4620 adds r0, r0, r3 str r0, [r2] str r4, [r2, #4] ldr r4, _0801C33C @ =0x84000008 str r4, [r2, #8] ldr r0, [r2, #8] adds r1, #0xa lsls r1, r1, #5 adds r1, r1, r3 str r1, [r2] ldr r1, _0801C340 @ =0x06010020 adds r0, r5, r1 str r0, [r2, #4] str r4, [r2, #8] ldr r0, [r2, #8] pop {r4, r5, pc} .align 2, 0 _0801C330: .4byte 0x06010000 _0801C334: .4byte 0x040000D4 _0801C338: .4byte gUnk_085C4620 _0801C33C: .4byte 0x84000008 _0801C340: .4byte 0x06010020 thumb_func_start sub_0801C344 sub_0801C344: @ 0x0801C344 push {r4, r5, lr} ldr r4, _0801C36C @ =gUnk_0200AF00 ldrb r1, [r4, #1] ldrb r0, [r4] bics r0, r1 movs r5, #0 strb r0, [r4] bl sub_0801C6B0 bl sub_0801C85C bl sub_0801C4B0 bl sub_0801C99C strb r5, [r4] bl sub_0801C1D4 pop {r4, r5, pc} .align 2, 0 _0801C36C: .4byte gUnk_0200AF00 thumb_func_start sub_0801C370 sub_0801C370: @ 0x0801C370 push {r4, r5, r6, lr} cmp r0, #0 bne _0801C390 ldr r0, _0801C388 @ =gUnk_02002A40 adds r1, r0, #0 adds r1, #0xaa ldrb r1, [r1] lsrs r6, r1, #1 adds r0, #0xc0 ldrh r4, [r0] ldr r5, _0801C38C @ =gUnk_0200AF00 b _0801C398 .align 2, 0 _0801C388: .4byte gUnk_02002A40 _0801C38C: .4byte gUnk_0200AF00 _0801C390: ldr r0, _0801C470 @ =gUnk_0200AF00 ldrb r6, [r0, #3] ldrh r4, [r0, #0xe] adds r5, r0, #0 _0801C398: movs r1, #0xcd lsls r1, r1, #2 adds r0, r5, #0 bl sub_0801D630 strb r6, [r5, #3] strh r4, [r5, #0xe] ldr r0, _0801C474 @ =gUnk_02002A40 adds r0, #0xab ldrb r0, [r0] lsrs r0, r0, #1 strb r0, [r5, #4] movs r0, #0xc bl sub_0801D714 movs r0, #0x10 bl sub_0801D7EC ldr r4, _0801C478 @ =gUnk_02034CB0 movs r1, #0x80 lsls r1, r1, #4 adds r0, r4, #0 bl sub_0801D630 ldr r1, _0801C47C @ =gUnk_03000F50 str r4, [r1, #0x10] ldr r0, _0801C480 @ =0x00001F0C strh r0, [r1, #8] ldrh r2, [r1] movs r3, #0x80 lsls r3, r3, #1 adds r0, r3, #0 orrs r0, r2 strh r0, [r1] ldr r1, _0801C484 @ =gUnk_03000000 ldr r2, _0801C488 @ =0x00000427 adds r0, r1, r2 movs r2, #1 strb r2, [r0] ldr r3, _0801C48C @ =0x00000426 adds r0, r1, r3 strb r2, [r0] ldr r0, _0801C490 @ =0x0000042E adds r1, r1, r0 strb r2, [r1] movs r0, #0x7f strb r0, [r5, #0x13] strb r0, [r5, #0x14] strb r0, [r5, #8] bl sub_0801C6B0 bl sub_0801C4B0 bl sub_0801C85C bl sub_0801C99C movs r0, #0xd0 strh r0, [r5, #0x16] movs r0, #0xb8 strh r0, [r5, #0x18] movs r0, #0xd8 strh r0, [r5, #0x1a] movs r0, #0x1c strh r0, [r5, #0x1c] strh r0, [r5, #0x1e] movs r0, #0xe strh r0, [r5, #0x20] adds r0, r5, #0 adds r0, #0x34 movs r1, #0xc0 lsls r1, r1, #2 bl sub_0801D630 movs r0, #5 movs r1, #9 bl sub_0801CA6C movs r0, #3 movs r1, #0 bl sub_0801CA6C movs r0, #4 movs r1, #0 bl sub_0801CA6C movs r0, #2 movs r1, #0 bl sub_0801CA6C movs r0, #1 movs r1, #0 bl sub_0801CA6C movs r0, #0 movs r1, #0 bl sub_0801CA6C movs r0, #7 movs r1, #0 bl sub_0801CA6C movs r0, #6 movs r1, #0 bl sub_0801CA6C pop {r4, r5, r6, pc} .align 2, 0 _0801C470: .4byte gUnk_0200AF00 _0801C474: .4byte gUnk_02002A40 _0801C478: .4byte gUnk_02034CB0 _0801C47C: .4byte gUnk_03000F50 _0801C480: .4byte 0x00001F0C _0801C484: .4byte gUnk_03000000 _0801C488: .4byte 0x00000427 _0801C48C: .4byte 0x00000426 _0801C490: .4byte 0x0000042E thumb_func_start sub_0801C494 sub_0801C494: @ 0x0801C494 ldr r1, _0801C49C @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0xe] bx lr .align 2, 0 _0801C49C: .4byte gUnk_03000F50 thumb_func_start sub_0801C4A0 sub_0801C4A0: @ 0x0801C4A0 ldr r1, _0801C4AC @ =gUnk_0200AF00 movs r0, #0 strb r0, [r1, #2] strb r0, [r1, #0x10] strb r0, [r1, #0xa] bx lr .align 2, 0 _0801C4AC: .4byte gUnk_0200AF00 thumb_func_start sub_0801C4B0 sub_0801C4B0: @ 0x0801C4B0 push {r4, r5, r6, lr} ldr r2, _0801C4F0 @ =gUnk_0200AF00 ldrb r1, [r2, #1] movs r0, #0x40 ands r0, r1 adds r6, r2, #0 cmp r0, #0 beq _0801C4FC ldrb r0, [r6, #0xa] cmp r0, #0 bne _0801C4C8 b _0801C5D0 _0801C4C8: movs r0, #0 strb r0, [r6, #0xa] ldr r3, _0801C4F4 @ =gUnk_02035160 strh r0, [r3] strh r0, [r3, #2] strh r0, [r3, #4] strh r0, [r3, #6] strh r0, [r3, #8] adds r4, r3, #0 adds r4, #0x40 strh r0, [r4] strh r0, [r4, #2] strh r0, [r4, #4] strh r0, [r4, #6] strh r0, [r4, #8] ldr r1, _0801C4F8 @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0xe] b _0801C5D0 .align 2, 0 _0801C4F0: .4byte gUnk_0200AF00 _0801C4F4: .4byte gUnk_02035160 _0801C4F8: .4byte gUnk_03000F50 _0801C4FC: ldrb r0, [r6, #0xa] cmp r0, #0 bne _0801C560 movs r0, #2 strb r0, [r6, #0xa] ldr r3, _0801C54C @ =gUnk_02035160 adds r4, r3, #0 adds r4, #0x40 ldr r1, _0801C550 @ =gUnk_080FD590 ldr r2, _0801C554 @ =gUnk_02002A40 adds r0, r2, #0 adds r0, #0xa8 ldrb r0, [r0] lsls r0, r0, #2 adds r0, r0, r1 ldrh r1, [r0, #2] strh r1, [r3] adds r0, r1, #1 strh r0, [r3, #2] adds r0, r1, #2 strh r0, [r4] adds r0, r1, #3 strh r0, [r4, #2] ldr r1, _0801C558 @ =0x0000F070 strh r1, [r3, #4] adds r0, r1, #1 strh r0, [r4, #4] adds r0, r1, #2 strh r0, [r3, #6] adds r0, r1, #3 strh r0, [r4, #6] adds r0, r1, #4 strh r0, [r3, #8] adds r0, r1, #5 strh r0, [r4, #8] ldr r1, _0801C55C @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0xe] movs r4, #1 b _0801C564 .align 2, 0 _0801C54C: .4byte gUnk_02035160 _0801C550: .4byte gUnk_080FD590 _0801C554: .4byte gUnk_02002A40 _0801C558: .4byte 0x0000F070 _0801C55C: .4byte gUnk_03000F50 _0801C560: movs r4, #0 ldr r2, _0801C580 @ =gUnk_02002A40 _0801C564: adds r5, r6, #0 adds r0, r2, #0 adds r0, #0xc0 ldrh r1, [r5, #0xe] adds r3, r1, #0 ldrh r0, [r0] cmp r3, r0 beq _0801C58A cmp r3, r0 bhs _0801C584 adds r0, r1, #1 strh r0, [r5, #0xe] b _0801C588 .align 2, 0 _0801C580: .4byte gUnk_02002A40 _0801C584: subs r0, r1, #1 strh r0, [r6, #0xe] _0801C588: movs r4, #2 _0801C58A: cmp r4, #1 beq _0801C5A4 cmp r4, #2 bne _0801C5CC ldr r0, _0801C5D4 @ =gUnk_0200AF00 ldrb r0, [r0, #0xc] movs r1, #3 ands r0, r1 cmp r0, #0 bne _0801C5A4 movs r0, #0x6f bl sub_080A3268 _0801C5A4: ldr r4, _0801C5D4 @ =gUnk_0200AF00 ldrh r3, [r4, #0xe] movs r2, #0 ldr r1, _0801C5D8 @ =gUnk_080FD590 ldr r0, _0801C5DC @ =gUnk_02002A40 adds r0, #0xa8 ldrb r0, [r0] lsls r0, r0, #2 adds r0, r0, r1 ldrh r0, [r0] cmp r0, r3 bhi _0801C5BE movs r2, #1 _0801C5BE: movs r0, #0x70 adds r1, r3, #0 movs r3, #3 bl sub_0801C5E0 ldrb r0, [r4, #0xc] adds r4, r0, #1 _0801C5CC: ldr r0, _0801C5D4 @ =gUnk_0200AF00 strb r4, [r0, #0xc] _0801C5D0: pop {r4, r5, r6, pc} .align 2, 0 _0801C5D4: .4byte gUnk_0200AF00 _0801C5D8: .4byte gUnk_080FD590 _0801C5DC: .4byte gUnk_02002A40 thumb_func_start sub_0801C5E0 sub_0801C5E0: @ 0x0801C5E0 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r5, r1, #0 ldr r7, _0801C650 @ =gUnk_085C4B20 cmp r2, #0 bne _0801C5F0 ldr r0, _0801C654 @ =0xFFFFFD80 adds r7, r7, r0 _0801C5F0: ldr r0, _0801C658 @ =0x000003FF ands r0, r4 lsls r6, r0, #5 ldr r0, _0801C65C @ =0x0600C000 adds r4, r6, r0 cmp r3, #2 beq _0801C620 cmp r3, #3 bne _0801C63C adds r0, r5, #0 movs r1, #0x64 bl Div adds r5, r1, #0 ldr r1, _0801C660 @ =0x040000D4 lsls r0, r0, #6 adds r0, r7, r0 str r0, [r1] str r4, [r1, #4] ldr r0, _0801C664 @ =0x84000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0801C668 @ =0x0600C040 adds r4, r6, r0 _0801C620: adds r0, r5, #0 movs r1, #0xa bl Div adds r5, r1, #0 ldr r1, _0801C660 @ =0x040000D4 lsls r0, r0, #6 adds r0, r7, r0 str r0, [r1] str r4, [r1, #4] ldr r0, _0801C664 @ =0x84000010 str r0, [r1, #8] ldr r0, [r1, #8] adds r4, #0x40 _0801C63C: ldr r1, _0801C660 @ =0x040000D4 lsls r0, r5, #6 adds r0, r7, r0 str r0, [r1] str r4, [r1, #4] ldr r0, _0801C664 @ =0x84000010 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5, r6, r7, pc} .align 2, 0 _0801C650: .4byte gUnk_085C4B20 _0801C654: .4byte 0xFFFFFD80 _0801C658: .4byte 0x000003FF _0801C65C: .4byte 0x0600C000 _0801C660: .4byte 0x040000D4 _0801C664: .4byte 0x84000010 _0801C668: .4byte 0x0600C040 thumb_func_start sub_0801C66C sub_0801C66C: @ 0x0801C66C push {lr} ldr r1, _0801C6A4 @ =gUnk_0200AF00 ldrb r0, [r1, #2] cmp r0, #0 beq _0801C6A2 movs r0, #0 strb r0, [r1, #2] ldrb r0, [r1, #4] movs r2, #1 cmp r0, #0x28 bls _0801C684 movs r2, #2 _0801C684: ldr r0, _0801C6A8 @ =gUnk_02034CF0 ldr r3, _0801C6AC @ =gUnk_03000F50 movs r1, #0 _0801C68A: str r1, [r0] str r1, [r0, #4] str r1, [r0, #8] str r1, [r0, #0xc] str r1, [r0, #0x10] str r1, [r0, #0x14] adds r0, #0x40 subs r2, #1 cmp r2, #0 bgt _0801C68A movs r0, #1 strh r0, [r3, #0xe] _0801C6A2: pop {pc} .align 2, 0 _0801C6A4: .4byte gUnk_0200AF00 _0801C6A8: .4byte gUnk_02034CF0 _0801C6AC: .4byte gUnk_03000F50 thumb_func_start sub_0801C6B0 sub_0801C6B0: @ 0x0801C6B0 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r2, _0801C6CC @ =gUnk_0200AF00 ldrb r1, [r2, #1] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0801C6D0 bl sub_0801C824 bl sub_0801C66C b _0801C802 .align 2, 0 _0801C6CC: .4byte gUnk_0200AF00 _0801C6D0: ldr r5, _0801C6F8 @ =gUnk_02002A40 adds r0, r5, #0 adds r0, #0xab ldrb r0, [r0] lsrs r4, r0, #1 ldrb r0, [r2, #4] cmp r4, r0 beq _0801C6EA strb r4, [r2, #4] bl sub_0801C824 bl sub_0801C66C _0801C6EA: adds r1, r5, #0 adds r1, #0xaa ldrb r0, [r1] cmp r0, #1 beq _0801C6FC lsrs r1, r0, #1 b _0801C6FE .align 2, 0 _0801C6F8: .4byte gUnk_02002A40 _0801C6FC: movs r1, #1 _0801C6FE: cmp r1, r4 ble _0801C704 adds r1, r4, #0 _0801C704: movs r4, #0 ldr r0, _0801C748 @ =gUnk_0200AF00 ldrb r2, [r0, #3] adds r7, r0, #0 cmp r1, r2 beq _0801C718 movs r4, #1 cmp r1, r2 ble _0801C718 movs r4, #2 _0801C718: cmp r4, #1 beq _0801C750 cmp r4, #2 bne _0801C756 ldrb r0, [r7, #5] adds r1, r0, #1 strb r1, [r7, #5] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 movs r0, #1 ands r0, r1 cmp r0, #0 bne _0801C74C movs r0, #7 ands r1, r0 cmp r1, #0 bne _0801C740 movs r0, #0x71 bl sub_080A3268 _0801C740: ldrb r0, [r7, #3] adds r0, #1 strb r0, [r7, #3] b _0801C75A .align 2, 0 _0801C748: .4byte gUnk_0200AF00 _0801C74C: movs r4, #0 b _0801C75A _0801C750: ldrb r0, [r7, #3] subs r0, #1 strb r0, [r7, #3] _0801C756: movs r0, #0 strb r0, [r7, #5] _0801C75A: ldrb r0, [r7, #2] cmp r0, #0 beq _0801C764 cmp r4, #0 beq _0801C802 _0801C764: movs r0, #2 strb r0, [r7, #2] ldrb r0, [r7, #3] lsrs r3, r0, #2 cmp r3, #0xa ble _0801C77A movs r1, #0xa mov r8, r1 adds r6, r3, #0 subs r6, #0xa b _0801C77E _0801C77A: mov r8, r3 movs r6, #0 _0801C77E: ldrb r0, [r7, #4] lsrs r4, r0, #2 adds r1, r4, #0 cmp r4, #0xa ble _0801C78A movs r4, #0xa _0801C78A: adds r2, r1, #0 subs r2, #0xa ldr r0, _0801C808 @ =gUnk_080C8F2C mov ip, r0 cmp r2, #0 ble _0801C7B8 ldr r5, _0801C80C @ =gUnk_02034D30 ldr r1, _0801C810 @ =0x0000F010 adds r0, r1, #0 strh r0, [r5] ldr r1, _0801C814 @ =0x040000D4 movs r0, #0xa subs r0, r0, r6 lsls r0, r0, #1 add r0, ip str r0, [r1] adds r0, r5, #2 str r0, [r1, #4] movs r0, #0x80 lsls r0, r0, #0x18 orrs r2, r0 str r2, [r1, #8] ldr r0, [r1, #8] _0801C7B8: ldr r5, _0801C818 @ =gUnk_02034CF0 ldr r2, _0801C810 @ =0x0000F010 adds r0, r2, #0 strh r0, [r5] ldr r1, _0801C814 @ =0x040000D4 movs r0, #0xa mov r2, r8 subs r0, r0, r2 lsls r0, r0, #1 add r0, ip str r0, [r1] adds r0, r5, #2 str r0, [r1, #4] movs r0, #0x80 lsls r0, r0, #0x18 orrs r4, r0 str r4, [r1, #8] ldr r0, [r1, #8] ldrb r0, [r7, #3] movs r1, #3 ands r1, r0 cmp r1, #0 beq _0801C7FC cmp r3, #9 ble _0801C7EE subs r3, #0xa adds r5, #0x40 _0801C7EE: lsls r0, r3, #1 adds r0, r0, r5 adds r1, #0x11 ldr r3, _0801C81C @ =0xFFFFF000 adds r2, r3, #0 orrs r1, r2 strh r1, [r0, #2] _0801C7FC: ldr r1, _0801C820 @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0xe] _0801C802: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0801C808: .4byte gUnk_080C8F2C _0801C80C: .4byte gUnk_02034D30 _0801C810: .4byte 0x0000F010 _0801C814: .4byte 0x040000D4 _0801C818: .4byte gUnk_02034CF0 _0801C81C: .4byte 0xFFFFF000 _0801C820: .4byte gUnk_03000F50 thumb_func_start sub_0801C824 sub_0801C824: @ 0x0801C824 push {lr} ldr r1, _0801C850 @ =gUnk_0200AF00 ldrb r0, [r1, #6] cmp r0, #0 beq _0801C84E movs r2, #0 strb r2, [r1, #6] ldrb r0, [r1, #4] ldr r1, _0801C854 @ =gUnk_02034D30 cmp r0, #0x28 bls _0801C83C adds r1, #0x40 _0801C83C: str r2, [r1] str r2, [r1, #4] str r2, [r1, #8] str r2, [r1, #0xc] str r2, [r1, #0x10] str r2, [r1, #0x14] ldr r1, _0801C858 @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0xe] _0801C84E: pop {pc} .align 2, 0 _0801C850: .4byte gUnk_0200AF00 _0801C854: .4byte gUnk_02034D30 _0801C858: .4byte gUnk_03000F50 thumb_func_start sub_0801C85C sub_0801C85C: @ 0x0801C85C push {r4, r5, r6, lr} movs r2, #0 ldr r5, _0801C884 @ =gUnk_0200AF00 ldrb r1, [r5, #1] movs r0, #0x20 ands r0, r1 cmp r0, #0 bne _0801C878 ldr r0, _0801C888 @ =gUnk_03003F80 adds r0, #0xa0 ldrb r1, [r0] rsbs r0, r1, #0 orrs r0, r1 lsrs r2, r0, #0x1f _0801C878: cmp r2, #0 bne _0801C88C bl sub_0801C824 b _0801C984 .align 2, 0 _0801C884: .4byte gUnk_0200AF00 _0801C888: .4byte gUnk_03003F80 _0801C88C: ldrb r0, [r5, #4] ldr r4, _0801C92C @ =gUnk_02034D30 cmp r0, #0x28 bls _0801C896 adds r4, #0x40 _0801C896: ldr r0, _0801C930 @ =gUnk_03003F80 adds r0, #0xa4 movs r1, #0 ldrsh r0, [r0, r1] adds r0, #0x13 movs r1, #0x14 bl Div adds r1, r0, #0 cmp r1, #0x28 bls _0801C8AE movs r1, #0x28 _0801C8AE: ldrb r0, [r5, #6] cmp r0, #0 beq _0801C8BA ldrb r0, [r5, #7] cmp r0, r1 beq _0801C910 _0801C8BA: movs r6, #1 strb r6, [r5, #6] strb r1, [r5, #7] adds r0, r1, #0 movs r1, #4 bl Div adds r3, r0, #0 adds r5, r1, #0 ldr r1, _0801C934 @ =0x0000F016 adds r0, r1, #0 strh r0, [r4] ldr r1, _0801C938 @ =0x0000F416 adds r0, r1, #0 strh r0, [r4, #0x16] ldr r2, _0801C93C @ =0x040000D4 movs r0, #0xa subs r0, r0, r3 lsls r0, r0, #1 ldr r1, _0801C940 @ =gUnk_080C8F54 adds r0, r0, r1 str r0, [r2] adds r0, r4, #2 str r0, [r2, #4] ldr r0, _0801C944 @ =0x8000000A str r0, [r2, #8] ldr r0, [r2, #8] cmp r5, #0 beq _0801C90C lsls r2, r3, #1 adds r2, r2, r4 adds r0, r5, #0 adds r0, #0x17 ldr r3, _0801C948 @ =0x000003FF adds r1, r3, #0 ands r0, r1 movs r3, #0xf0 lsls r3, r3, #8 adds r1, r3, #0 orrs r0, r1 strh r0, [r2, #2] _0801C90C: ldr r0, _0801C94C @ =gUnk_03000F50 strh r6, [r0, #0xe] _0801C910: ldr r0, _0801C930 @ =gUnk_03003F80 adds r0, #0xa0 ldrb r0, [r0] cmp r0, #5 bgt _0801C962 cmp r0, #4 blt _0801C962 ldr r2, _0801C950 @ =gUnk_0200AF00 ldrb r1, [r2, #9] adds r4, r2, #0 cmp r0, #4 bne _0801C954 adds r0, r1, #2 b _0801C956 .align 2, 0 _0801C92C: .4byte gUnk_02034D30 _0801C930: .4byte gUnk_03003F80 _0801C934: .4byte 0x0000F016 _0801C938: .4byte 0x0000F416 _0801C93C: .4byte 0x040000D4 _0801C940: .4byte gUnk_080C8F54 _0801C944: .4byte 0x8000000A _0801C948: .4byte 0x000003FF _0801C94C: .4byte gUnk_03000F50 _0801C950: .4byte gUnk_0200AF00 _0801C954: adds r0, r1, #1 _0801C956: strb r0, [r2, #9] ldrb r0, [r4, #9] lsrs r3, r0, #4 movs r0, #3 ands r3, r0 b _0801C966 _0801C962: movs r3, #0 ldr r4, _0801C988 @ =gUnk_0200AF00 _0801C966: ldrb r0, [r4, #8] cmp r3, r0 beq _0801C984 strb r3, [r4, #8] ldr r4, _0801C98C @ =0x0600C2C0 ldr r1, _0801C990 @ =0x040000D4 ldr r2, _0801C994 @ =gUnk_080C8F7C lsls r0, r3, #2 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] str r4, [r1, #4] ldr r0, _0801C998 @ =0x84000030 str r0, [r1, #8] ldr r0, [r1, #8] _0801C984: pop {r4, r5, r6, pc} .align 2, 0 _0801C988: .4byte gUnk_0200AF00 _0801C98C: .4byte 0x0600C2C0 _0801C990: .4byte 0x040000D4 _0801C994: .4byte gUnk_080C8F7C _0801C998: .4byte 0x84000030 thumb_func_start sub_0801C99C sub_0801C99C: @ 0x0801C99C push {r4, r5, lr} ldr r4, _0801C9E0 @ =gUnk_0200AF00 ldrb r1, [r4, #1] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0801C9B2 bl sub_08052724 cmp r0, #0 bne _0801C9EC _0801C9B2: ldrb r0, [r4, #0x10] cmp r0, #0 beq _0801CA50 movs r0, #0 strb r0, [r4, #0x10] ldr r2, _0801C9E4 @ =gUnk_020350E2 strh r0, [r2] strh r0, [r2, #2] strh r0, [r2, #4] strh r0, [r2, #6] adds r1, r2, #0 adds r1, #0x40 strh r0, [r1] adds r1, #2 strh r0, [r1] adds r1, #2 strh r0, [r1] adds r1, #2 strh r0, [r1] ldr r1, _0801C9E8 @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0xe] b _0801CA50 .align 2, 0 _0801C9E0: .4byte gUnk_0200AF00 _0801C9E4: .4byte gUnk_020350E2 _0801C9E8: .4byte gUnk_03000F50 _0801C9EC: ldrb r0, [r4, #0x10] cmp r0, #0 bne _0801CA1E ldr r2, _0801CA54 @ =gUnk_020350E2 adds r1, r2, #0 adds r1, #0x40 ldr r3, _0801CA58 @ =0x0000F01C strh r3, [r2] adds r0, r3, #1 strh r0, [r2, #2] adds r0, r3, #2 strh r0, [r1] adds r0, r3, #3 strh r0, [r1, #2] adds r3, #0x5a strh r3, [r2, #4] adds r0, r3, #1 strh r0, [r1, #4] adds r0, r3, #2 strh r0, [r2, #6] adds r0, r3, #3 strh r0, [r1, #6] ldr r1, _0801CA5C @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0xe] _0801CA1E: ldr r0, _0801CA60 @ =gUnk_02002A40 ldr r3, _0801CA64 @ =gUnk_02033A90 ldrb r1, [r3, #3] ldr r5, _0801CA68 @ =0x0000045C adds r2, r0, r5 adds r1, r1, r2 ldrb r0, [r4, #0x12] ldrb r1, [r1] cmp r0, r1 bne _0801CA38 ldrb r0, [r4, #0x10] cmp r0, #0 bne _0801CA50 _0801CA38: movs r0, #2 strb r0, [r4, #0x10] ldrb r0, [r3, #3] adds r0, r0, r2 ldrb r0, [r0] strb r0, [r4, #0x12] ldrb r1, [r4, #0x12] movs r0, #0x76 movs r2, #0 movs r3, #2 bl sub_0801C5E0 _0801CA50: pop {r4, r5, pc} .align 2, 0 _0801CA54: .4byte gUnk_020350E2 _0801CA58: .4byte 0x0000F01C _0801CA5C: .4byte gUnk_03000F50 _0801CA60: .4byte gUnk_02002A40 _0801CA64: .4byte gUnk_02033A90 _0801CA68: .4byte 0x0000045C thumb_func_start sub_0801CA6C sub_0801CA6C: @ 0x0801CA6C push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r6, r1, #0 movs r3, #0 ldr r7, _0801CAA8 @ =gUnk_0200AF34 movs r0, #1 mov ip, r0 ldr r1, _0801CAAC @ =gUnk_080C8F8C lsls r0, r5, #4 adds r4, r0, r1 _0801CA80: lsls r0, r3, #5 adds r1, r0, r7 ldrb r2, [r1] movs r0, #1 ands r0, r2 cmp r0, #0 bne _0801CAB0 strb r5, [r1, #1] strb r6, [r1, #2] movs r0, #0xff strb r0, [r1, #0x10] mov r0, ip orrs r0, r2 strb r0, [r1] ldrh r0, [r4, #4] strh r0, [r1, #0x1a] ldrb r0, [r4, #0xc] strb r0, [r1, #3] b _0801CAB6 .align 2, 0 _0801CAA8: .4byte gUnk_0200AF34 _0801CAAC: .4byte gUnk_080C8F8C _0801CAB0: adds r3, #1 cmp r3, #0x17 bls _0801CA80 _0801CAB6: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0801CAB8 sub_0801CAB8: @ 0x0801CAB8 push {lr} str r1, [r0, #0x14] ldrb r2, [r1, #1] strb r2, [r0, #0x11] ldrb r2, [r1, #2] strb r2, [r0, #0x12] ldrb r2, [r1, #3] strb r2, [r0, #0x13] ldrb r1, [r1] bl sub_0801CAFC pop {pc} thumb_func_start sub_0801CAD0 sub_0801CAD0: @ 0x0801CAD0 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0x11] subs r0, #1 strb r0, [r2, #0x11] lsls r0, r0, #0x18 cmp r0, #0 bne _0801CAF8 ldr r1, [r2, #0x14] movs r0, #3 ldrsb r0, [r1, r0] cmp r0, #0 bge _0801CAF0 ldrb r0, [r1, #4] lsls r0, r0, #2 subs r1, r1, r0 _0801CAF0: adds r1, #4 adds r0, r2, #0 bl sub_0801CAB8 _0801CAF8: pop {pc} .align 2, 0 thumb_func_start sub_0801CAFC sub_0801CAFC: @ 0x0801CAFC push {lr} adds r2, r0, #0 adds r3, r1, #0 ldrb r0, [r2, #1] lsls r0, r0, #4 ldr r1, _0801CB1C @ =gUnk_080C8F8C adds r1, r0, r1 ldrb r0, [r2, #0x10] cmp r3, r0 beq _0801CB18 strb r3, [r2, #0x10] adds r0, r2, #0 bl sub_0801CB20 _0801CB18: pop {pc} .align 2, 0 _0801CB1C: .4byte gUnk_080C8F8C thumb_func_start sub_0801CB20 sub_0801CB20: @ 0x0801CB20 push {lr} adds r3, r0, #0 ldrb r0, [r1, #0xe] cmp r0, #0 bne _0801CB76 ldrh r1, [r1, #6] lsls r1, r1, #4 ldr r0, _0801CB54 @ =gUnk_080029B4 adds r1, r1, r0 ldrb r0, [r3, #0x10] lsls r0, r0, #2 ldr r2, [r1, #4] adds r2, r2, r0 ldrh r0, [r2, #2] lsls r0, r0, #5 ldr r1, [r1, #8] adds r1, r1, r0 ldrb r2, [r2] cmp r2, #0 bne _0801CB58 ldrb r1, [r3] movs r0, #0xd rsbs r0, r0, #0 ands r0, r1 strb r0, [r3] b _0801CB74 .align 2, 0 _0801CB54: .4byte gUnk_080029B4 _0801CB58: ldrb r0, [r3, #0x19] cmp r0, r2 bne _0801CB64 ldr r0, [r3, #0x1c] cmp r0, r1 beq _0801CB74 _0801CB64: str r1, [r3, #0x1c] ldrb r0, [r3] movs r1, #0xd rsbs r1, r1, #0 ands r1, r0 movs r0, #4 orrs r1, r0 strb r1, [r3] _0801CB74: strb r2, [r3, #0x19] _0801CB76: pop {pc} thumb_func_start sub_0801CB78 sub_0801CB78: @ 0x0801CB78 push {lr} ldr r2, _0801CB8C @ =gUnk_080C903C ldrb r1, [r0, #4] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0801CB8C: .4byte gUnk_080C903C thumb_func_start sub_0801CB90 sub_0801CB90: @ 0x0801CB90 push {lr} ldr r3, _0801CBC4 @ =gUnk_0200AF00 ldrb r1, [r0, #1] lsls r1, r1, #1 adds r2, r3, #0 adds r2, #0x16 adds r1, r1, r2 ldrh r1, [r1] strh r1, [r0, #0xc] ldrb r1, [r0, #1] lsls r1, r1, #1 adds r3, #0x1c adds r1, r1, r3 ldrh r1, [r1] subs r1, #0x20 strh r1, [r0, #0xe] movs r1, #1 strb r1, [r0, #4] ldrb r1, [r0] movs r2, #2 orrs r1, r2 strb r1, [r0] ldrb r1, [r0, #1] bl sub_0801CAFC pop {pc} .align 2, 0 _0801CBC4: .4byte gUnk_0200AF00 thumb_func_start sub_0801CBC8 sub_0801CBC8: @ 0x0801CBC8 push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r0, [r5, #2] movs r6, #8 cmp r0, #0 bne _0801CC10 movs r6, #4 cmp r0, #0 bne _0801CC10 ldr r3, _0801CC08 @ =gUnk_0200AF00 ldrb r0, [r3, #1] ldrb r2, [r5, #1] asrs r0, r2 movs r1, #1 ands r0, r1 cmp r0, #0 bne _0801CBF6 ldr r0, _0801CC0C @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 beq _0801CC10 _0801CBF6: lsls r0, r2, #1 adds r1, r3, #0 adds r1, #0x1c adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] adds r1, r0, #0 subs r1, #0x28 b _0801CC1E .align 2, 0 _0801CC08: .4byte gUnk_0200AF00 _0801CC0C: .4byte gUnk_02000050 _0801CC10: ldr r1, _0801CC7C @ =gUnk_0200AF00 ldrb r0, [r5, #1] lsls r0, r0, #1 adds r1, #0x1c adds r0, r0, r1 movs r2, #0 ldrsh r1, [r0, r2] _0801CC1E: movs r2, #0xe ldrsh r0, [r5, r2] subs r4, r1, r0 adds r1, r4, #0 cmp r4, #0 bge _0801CC2C rsbs r4, r4, #0 _0801CC2C: cmp r6, r4 bgt _0801CC32 adds r4, r6, #0 _0801CC32: adds r0, r1, #0 bl sub_08000E44 muls r4, r0, r4 cmp r4, #0 beq _0801CC44 ldrh r0, [r5, #0xe] adds r0, r0, r4 strh r0, [r5, #0xe] _0801CC44: ldr r0, _0801CC7C @ =gUnk_0200AF00 ldrb r1, [r5, #1] lsls r1, r1, #1 adds r0, #0x16 adds r1, r1, r0 movs r0, #0 ldrsh r1, [r1, r0] movs r2, #0xc ldrsh r0, [r5, r2] subs r4, r1, r0 adds r1, r4, #0 cmp r4, #0 bge _0801CC60 rsbs r4, r4, #0 _0801CC60: cmp r6, r4 bgt _0801CC66 adds r4, r6, #0 _0801CC66: adds r0, r1, #0 bl sub_08000E44 muls r4, r0, r4 cmp r4, #0 beq _0801CC78 ldrh r0, [r5, #0xc] adds r0, r0, r4 strh r0, [r5, #0xc] _0801CC78: pop {r4, r5, r6, pc} .align 2, 0 _0801CC7C: .4byte gUnk_0200AF00 thumb_func_start sub_0801CC80 sub_0801CC80: @ 0x0801CC80 push {r4, r5, lr} ldrb r1, [r0, #1] movs r0, #3 eors r1, r0 rsbs r0, r1, #0 orrs r0, r1 lsrs r0, r0, #0x1f ldr r5, _0801CCAC @ =gUnk_02002A40 adds r1, r5, #0 adds r1, #0xb4 adds r0, r0, r1 ldrb r4, [r0] adds r0, r4, #0 bl sub_080544C8 cmp r0, #0 beq _0801CCA8 adds r0, r5, r4 adds r0, #0x9a ldrb r4, [r0] _0801CCA8: adds r0, r4, #0 pop {r4, r5, pc} .align 2, 0 _0801CCAC: .4byte gUnk_02002A40 thumb_func_start sub_0801CCB0 sub_0801CCB0: @ 0x0801CCB0 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r1, [r4] movs r0, #3 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4] adds r0, r4, #0 bl sub_0801CC80 adds r1, r0, #0 cmp r1, #0 beq _0801CD90 ldrb r0, [r4, #8] cmp r0, r1 beq _0801CCE0 strb r1, [r4, #8] ldr r0, _0801CD1C @ =gUnk_080FDFD8 lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl sub_0801CAB8 _0801CCE0: ldrb r0, [r4, #1] movs r1, #3 eors r0, r1 rsbs r1, r0, #0 orrs r1, r0 lsrs r6, r1, #0x1f ldr r3, _0801CD20 @ =gUnk_0200AF13 cmp r6, #0 beq _0801CCF4 adds r3, #1 _0801CCF4: ldrb r0, [r4, #8] cmp r0, #7 blt _0801CD60 cmp r0, #8 ble _0801CD28 cmp r0, #0xa bgt _0801CD60 ldr r1, _0801CD24 @ =gUnk_02002A40 adds r0, r1, #0 adds r0, #0xad ldrb r2, [r0] ldrb r0, [r3] adds r5, r1, #0 cmp r0, r2 beq _0801CD4C adds r0, r2, #0 adds r0, #0x80 strb r0, [r3] b _0801CD4C .align 2, 0 _0801CD1C: .4byte gUnk_080FDFD8 _0801CD20: .4byte gUnk_0200AF13 _0801CD24: .4byte gUnk_02002A40 _0801CD28: ldr r5, _0801CD44 @ =gUnk_02002A40 adds r0, r5, #0 adds r0, #0xac ldrb r2, [r0] ldrb r0, [r3] cmp r0, r2 beq _0801CD3C adds r0, r2, #0 adds r0, #0x80 strb r0, [r3] _0801CD3C: ldr r1, _0801CD48 @ =gUnk_080FD5A0 adds r0, r5, #0 adds r0, #0xae b _0801CD52 .align 2, 0 _0801CD44: .4byte gUnk_02002A40 _0801CD48: .4byte gUnk_080FD5A0 _0801CD4C: ldr r1, _0801CD5C @ =gUnk_080FD5A4 adds r0, r5, #0 adds r0, #0xaf _0801CD52: ldrb r0, [r0] adds r0, r0, r1 ldrb r0, [r0] b _0801CD64 .align 2, 0 _0801CD5C: .4byte gUnk_080FD5A4 _0801CD60: movs r0, #1 movs r2, #0 _0801CD64: movs r1, #3 cmp r0, r2 bhi _0801CD6C movs r1, #4 _0801CD6C: strb r1, [r4, #0x18] adds r0, r6, #0 bl sub_0801CE24 adds r1, r0, #0 cmp r1, #0 beq _0801CD90 ldrh r0, [r1, #0xc] strh r0, [r4, #0xc] ldrh r0, [r1, #0xe] strh r0, [r4, #0xe] ldrb r0, [r4] movs r1, #2 orrs r0, r1 strb r0, [r4] adds r0, r4, #0 bl sub_0801CAD0 _0801CD90: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0801CD94 sub_0801CD94: @ 0x0801CD94 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #2] ldr r1, _0801CDC0 @ =gUnk_0200AF00 cmp r0, #9 bne _0801CDD4 adds r0, r1, #0 adds r0, #0x2f ldrb r2, [r0] cmp r2, #0 bne _0801CDCE ldr r0, _0801CDC4 @ =gUnk_02033A90 ldrb r0, [r0, #0x18] cmp r0, #2 beq _0801CDC8 cmp r0, #3 beq _0801CDCC adds r0, r1, #0 adds r0, #0x2c ldrb r2, [r0] b _0801CDCE .align 2, 0 _0801CDC0: .4byte gUnk_0200AF00 _0801CDC4: .4byte gUnk_02033A90 _0801CDC8: movs r2, #0xb b _0801CDCE _0801CDCC: movs r2, #0xa _0801CDCE: adds r0, r1, #0 adds r0, #0x32 strb r2, [r0] _0801CDD4: adds r0, r1, #0 adds r0, #0x30 ldrb r1, [r4, #3] adds r0, r0, r1 ldrb r2, [r0] ldrb r1, [r4] movs r0, #3 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4] cmp r2, #0 beq _0801CE1E ldr r1, _0801CE20 @ =gUnk_080C9044 movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] adds r0, r0, r1 ldrb r0, [r0] adds r2, r2, r0 adds r0, r4, #0 adds r1, r2, #0 bl sub_0801CAFC ldrb r0, [r4, #3] bl sub_0801CE24 adds r1, r0, #0 cmp r1, #0 beq _0801CE1E ldrh r0, [r1, #0xc] strh r0, [r4, #0xc] ldrh r0, [r1, #0xe] strh r0, [r4, #0xe] ldrb r0, [r4] movs r1, #2 orrs r0, r1 strb r0, [r4] _0801CE1E: pop {r4, pc} .align 2, 0 _0801CE20: .4byte gUnk_080C9044 thumb_func_start sub_0801CE24 sub_0801CE24: @ 0x0801CE24 push {r4, r5, r6, lr} adds r5, r0, #0 movs r4, #0 movs r6, #1 ldr r3, _0801CE44 @ =gUnk_0200AF34 adds r2, r3, #0 _0801CE30: ldrb r1, [r2] adds r0, r6, #0 ands r0, r1 cmp r0, #0 beq _0801CE48 ldrb r0, [r2, #1] cmp r5, r0 bne _0801CE48 adds r0, r3, #0 b _0801CE54 .align 2, 0 _0801CE44: .4byte gUnk_0200AF34 _0801CE48: adds r2, #0x20 adds r3, #0x20 adds r4, #1 cmp r4, #0x17 bls _0801CE30 movs r0, #0 _0801CE54: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0801CE58 sub_0801CE58: @ 0x0801CE58 push {r4, lr} adds r3, r0, #0 ldrb r0, [r3] movs r4, #3 rsbs r4, r4, #0 ands r4, r0 strb r4, [r3] ldr r2, _0801CEB8 @ =gUnk_0200AF00 ldrb r1, [r2, #1] movs r0, #0x10 ands r0, r1 cmp r0, #0 bne _0801CEB4 ldr r0, _0801CEBC @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _0801CEB4 ldrb r2, [r2, #3] cmp r2, #0 beq _0801CEB4 movs r0, #2 adds r1, r4, #0 orrs r1, r0 strb r1, [r3] adds r0, r2, #3 lsrs r0, r0, #2 lsls r0, r0, #3 adds r1, r0, #3 movs r4, #0xc cmp r2, #0x28 bls _0801CE9E movs r4, #0x14 subs r1, #0x50 _0801CE9E: strh r1, [r3, #0xc] strh r4, [r3, #0xe] movs r1, #3 ands r1, r2 cmp r1, #0 bne _0801CEAC movs r1, #4 _0801CEAC: adds r1, #0x71 adds r0, r3, #0 bl sub_0801CAFC _0801CEB4: pop {r4, pc} .align 2, 0 _0801CEB8: .4byte gUnk_0200AF00 _0801CEBC: .4byte gUnk_02000050 thumb_func_start sub_0801CEC0 sub_0801CEC0: @ 0x0801CEC0 push {lr} ldr r2, _0801CED4 @ =gUnk_080C904C ldrb r1, [r0, #4] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0801CED4: .4byte gUnk_080C904C thumb_func_start sub_0801CED8 sub_0801CED8: @ 0x0801CED8 push {r4, lr} adds r3, r0, #0 ldr r0, _0801CF10 @ =gUnk_0200AF00 adds r1, r0, #0 adds r1, #0x24 ldrb r4, [r1] cmp r4, #1 bne _0801CF0E movs r2, #2 movs r0, #2 strb r0, [r1] movs r1, #0 movs r0, #0x10 strh r0, [r3, #0xc] movs r0, #0x90 strh r0, [r3, #0xe] strb r1, [r3, #6] movs r0, #7 strb r0, [r3, #1] strb r4, [r3, #4] ldrb r0, [r3] orrs r0, r2 strb r0, [r3] ldr r1, _0801CF14 @ =gUnk_080C9094 adds r0, r3, #0 bl sub_0801CAB8 _0801CF0E: pop {r4, pc} .align 2, 0 _0801CF10: .4byte gUnk_0200AF00 _0801CF14: .4byte gUnk_080C9094 thumb_func_start sub_0801CF18 sub_0801CF18: @ 0x0801CF18 push {r4, r5, lr} adds r5, r0, #0 ldr r2, _0801CF54 @ =gUnk_080C9058 ldrb r0, [r5, #6] adds r1, r0, #1 strb r1, [r5, #6] lsls r0, r0, #0x18 lsrs r0, r0, #0x17 adds r0, r0, r2 ldrh r4, [r0] movs r0, #0 adds r1, r4, #0 adds r2, r4, #0 movs r3, #0 bl sub_0805ECEC cmp r4, #0 bne _0801CF52 movs r0, #2 strb r0, [r5, #4] movs r0, #8 strb r0, [r5, #1] ldr r0, _0801CF58 @ =gUnk_0200AF00 adds r0, #0x24 movs r1, #3 strb r1, [r0] ldr r0, _0801CF5C @ =0x00000173 bl sub_080A3268 _0801CF52: pop {r4, r5, pc} .align 2, 0 _0801CF54: .4byte gUnk_080C9058 _0801CF58: .4byte gUnk_0200AF00 _0801CF5C: .4byte 0x00000173 thumb_func_start sub_0801CF60 sub_0801CF60: @ 0x0801CF60 push {r4, r5, lr} adds r4, r0, #0 ldr r0, _0801CF8C @ =gUnk_0200AF00 adds r5, r0, #0 adds r5, #0x24 ldrb r0, [r5] cmp r0, #4 bhi _0801CF7C ldr r0, _0801CF90 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 beq _0801CF94 _0801CF7C: movs r0, #0 strb r0, [r4, #4] ldrb r1, [r4] subs r0, #3 ands r0, r1 strb r0, [r4] b _0801CFA4 .align 2, 0 _0801CF8C: .4byte gUnk_0200AF00 _0801CF90: .4byte gUnk_02000050 _0801CF94: adds r0, r4, #0 bl sub_0801CAD0 ldrb r0, [r4, #0x13] cmp r0, #1 bne _0801CFA4 movs r0, #4 strb r0, [r5] _0801CFA4: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0801CFA8 sub_0801CFA8: @ 0x0801CFA8 push {r4, r5, lr} adds r5, r0, #0 ldr r0, _0801CFCC @ =gUnk_02001A00 movs r1, #0x40 bl sub_0801D630 movs r4, #0 _0801CFB6: adds r0, r4, #0 bl sub_0801CFD0 adds r4, #1 cmp r4, #5 bls _0801CFB6 adds r0, r5, #0 bl sub_0801D000 pop {r4, r5, pc} .align 2, 0 _0801CFCC: .4byte gUnk_02001A00 thumb_func_start sub_0801CFD0 sub_0801CFD0: @ 0x0801CFD0 lsls r0, r0, #2 ldr r1, _0801CFF8 @ =gUnk_02001A00 adds r0, r0, r1 ldrb r2, [r0] movs r1, #0x10 rsbs r1, r1, #0 ands r1, r2 movs r2, #4 orrs r1, r2 movs r2, #0xf ands r1, r2 movs r2, #0x10 orrs r1, r2 strb r1, [r0] movs r1, #0x80 strb r1, [r0, #1] ldr r1, _0801CFFC @ =0x0000FFFF strh r1, [r0, #2] bx lr .align 2, 0 _0801CFF8: .4byte gUnk_02001A00 _0801CFFC: .4byte 0x0000FFFF thumb_func_start sub_0801D000 sub_0801D000: @ 0x0801D000 push {lr} adds r2, r0, #0 ldr r0, _0801D024 @ =gUnk_030010A0 movs r1, #0 cmp r2, #0 beq _0801D00E movs r1, #0xf _0801D00E: adds r0, #0x2f strb r1, [r0] cmp r2, #0 beq _0801D028 bl sub_0801D34C movs r0, #0xf bl sub_0801CFD0 b _0801D03A .align 2, 0 _0801D024: .4byte gUnk_030010A0 _0801D028: ldr r3, _0801D03C @ =gUnk_02001A3C ldrb r1, [r3] movs r0, #0xf ands r0, r1 cmp r0, #4 bne _0801D03A strb r2, [r3] strb r2, [r3, #1] strh r2, [r3, #2] _0801D03A: pop {pc} .align 2, 0 _0801D03C: .4byte gUnk_02001A3C thumb_func_start sub_0801D040 sub_0801D040: @ 0x0801D040 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 str r0, [sp] adds r6, r1, #0 adds r0, r6, #0 bl sub_0801D108 adds r5, r0, #0 cmp r5, #0 bge _0801D0E8 cmp r6, #0x15 bhi _0801D064 movs r4, #1 b _0801D074 _0801D064: ldr r0, _0801D100 @ =gUnk_08133368 adds r1, r6, #0 subs r1, #0x16 lsls r1, r1, #2 adds r1, r1, r0 ldrb r4, [r1, #3] movs r0, #0xf ands r4, r0 _0801D074: adds r0, r4, #0 bl sub_0801D134 adds r5, r0, #0 cmp r5, #0 bge _0801D090 bl sub_0801D34C adds r0, r4, #0 bl sub_0801D134 adds r5, r0, #0 cmp r5, #0 blt _0801D0E8 _0801D090: lsls r1, r5, #2 ldr r0, _0801D104 @ =gUnk_02001A00 adds r3, r1, r0 movs r0, #0 strh r6, [r3, #2] strb r0, [r3, #1] movs r2, #0x10 rsbs r2, r2, #0 lsls r0, r4, #4 movs r1, #3 orrs r0, r1 strb r0, [r3] subs r4, #1 cmp r4, #0 beq _0801D0E0 movs r0, #0 mov sl, r0 movs r1, #0 mov r8, r1 movs r0, #0xf mov sb, r0 mov ip, r2 movs r7, #2 _0801D0BE: adds r3, #4 mov r1, r8 strh r1, [r3, #2] mov r0, sl strb r0, [r3, #1] lsls r2, r4, #4 ldrb r1, [r3] mov r0, sb ands r0, r1 orrs r0, r2 mov r1, ip ands r0, r1 orrs r0, r7 strb r0, [r3] subs r4, #1 cmp r4, #0 bne _0801D0BE _0801D0E0: adds r0, r6, #0 adds r1, r5, #0 bl sub_0801D2C8 _0801D0E8: ldr r0, [sp] adds r1, r5, #0 bl sub_0801D19C adds r0, r5, #0 add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _0801D100: .4byte gUnk_08133368 _0801D104: .4byte gUnk_02001A00 thumb_func_start sub_0801D108 sub_0801D108: @ 0x0801D108 push {lr} adds r2, r0, #0 cmp r2, #5 bhi _0801D116 b _0801D12E _0801D112: adds r0, r1, #0 b _0801D12E _0801D116: movs r1, #6 ldr r0, _0801D130 @ =gUnk_02001A00 adds r0, #0x18 _0801D11C: ldrh r3, [r0, #2] cmp r2, r3 beq _0801D112 adds r0, #4 adds r1, #1 cmp r1, #0xf bls _0801D11C movs r0, #1 rsbs r0, r0, #0 _0801D12E: pop {pc} .align 2, 0 _0801D130: .4byte gUnk_02001A00 thumb_func_start sub_0801D134 sub_0801D134: @ 0x0801D134 push {r4, lr} adds r4, r0, #0 movs r1, #0 movs r2, #6 ldr r0, _0801D154 @ =gUnk_02001A00 adds r3, r0, #0 adds r3, #0x18 _0801D142: ldrb r0, [r3] lsls r0, r0, #0x1c cmp r0, #0 bne _0801D158 adds r1, #1 cmp r4, r1 bhi _0801D15A b _0801D180 .align 2, 0 _0801D154: .4byte gUnk_02001A00 _0801D158: movs r1, #0 _0801D15A: adds r3, #4 adds r2, #1 cmp r2, #0xf bls _0801D142 movs r1, #0 movs r2, #6 ldr r0, _0801D188 @ =gUnk_02001A00 adds r3, r0, #0 adds r3, #0x18 _0801D16C: ldrb r0, [r3] lsls r0, r0, #0x1c lsrs r0, r0, #0x1c cmp r0, #1 bgt _0801D18C cmp r0, #0 blt _0801D18C adds r1, #1 cmp r4, r1 bhi _0801D18E _0801D180: subs r0, r1, #1 subs r0, r2, r0 b _0801D19A .align 2, 0 _0801D188: .4byte gUnk_02001A00 _0801D18C: movs r1, #0 _0801D18E: adds r3, #4 adds r2, #1 cmp r2, #0xf bls _0801D16C movs r0, #1 rsbs r0, r0, #0 _0801D19A: pop {r4, pc} thumb_func_start sub_0801D19C sub_0801D19C: @ 0x0801D19C push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r3, r1, #0 cmp r3, #0 bge _0801D1A8 movs r3, #0 _0801D1A8: adds r0, r4, #0 adds r0, #0x28 ldrb r0, [r0] subs r0, #1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x7e bls _0801D1BE adds r0, r4, #0 adds r0, #0x27 strb r3, [r0] _0801D1BE: movs r0, #0xf adds r1, r3, #0 ands r1, r0 ldrb r2, [r4, #0x1a] movs r5, #0x10 rsbs r5, r5, #0 adds r0, r5, #0 ands r0, r2 orrs r0, r1 movs r2, #0xf adds r1, r3, #0 ands r1, r2 lsls r1, r1, #4 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x1a] lsls r1, r3, #2 ldr r0, _0801D22C @ =gUnk_02001A00 adds r4, r1, r0 ldr r0, [r4] lsls r0, r0, #0x1c lsrs r0, r0, #0x1c cmp r0, #4 beq _0801D22A ldrb r0, [r4, #1] adds r0, #1 strb r0, [r4, #1] ldr r0, [r4] lsls r0, r0, #0x18 lsrs r3, r0, #0x1c ldrb r1, [r4] adds r0, r5, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r4] subs r3, #1 cmp r3, #0 beq _0801D22A movs r7, #0xf adds r6, r5, #0 movs r5, #2 _0801D212: adds r4, #4 lsls r2, r3, #4 ldrb r1, [r4] adds r0, r7, #0 ands r0, r1 orrs r0, r2 ands r0, r6 orrs r0, r5 strb r0, [r4] subs r3, #1 cmp r3, #0 bne _0801D212 _0801D22A: pop {r4, r5, r6, r7, pc} .align 2, 0 _0801D22C: .4byte gUnk_02001A00 thumb_func_start sub_0801D230 sub_0801D230: @ 0x0801D230 push {lr} adds r0, #0x27 ldrb r2, [r0] movs r1, #0 strb r1, [r0] adds r0, r2, #0 bl sub_0801D244 pop {pc} .align 2, 0 thumb_func_start sub_0801D244 sub_0801D244: @ 0x0801D244 push {r4, r5, r6, lr} lsls r0, r0, #2 ldr r1, _0801D288 @ =gUnk_02001A00 adds r2, r0, r1 ldr r0, [r2] lsls r0, r0, #0x1c lsrs r0, r0, #0x1c cmp r0, #3 bne _0801D284 ldrb r0, [r2, #1] subs r0, #1 strb r0, [r2, #1] lsls r0, r0, #0x18 cmp r0, #0 bne _0801D284 ldr r0, [r2] lsls r0, r0, #0x18 lsrs r3, r0, #0x1c movs r5, #0 movs r6, #0x10 rsbs r6, r6, #0 movs r4, #1 _0801D270: strb r5, [r2, #1] ldrb r1, [r2] adds r0, r6, #0 ands r0, r1 orrs r0, r4 strb r0, [r2] adds r2, #4 subs r3, #1 cmp r3, #0 bne _0801D270 _0801D284: pop {r4, r5, r6, pc} .align 2, 0 _0801D288: .4byte gUnk_02001A00 thumb_func_start sub_0801D28C sub_0801D28C: @ 0x0801D28C push {lr} adds r3, r1, #0 adds r0, #0x27 ldrb r2, [r0] ldr r1, _0801D2B0 @ =gUnk_02001A00 lsls r0, r2, #2 adds r1, r0, r1 ldrb r0, [r1] lsls r0, r0, #0x1c lsrs r0, r0, #0x1c cmp r0, #3 bne _0801D2AE strh r3, [r1, #2] adds r0, r3, #0 adds r1, r2, #0 bl sub_0801D2C8 _0801D2AE: pop {pc} .align 2, 0 _0801D2B0: .4byte gUnk_02001A00 thumb_func_start sub_0801D2B4 sub_0801D2B4: @ 0x0801D2B4 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 bl sub_0801D230 adds r0, r4, #0 adds r1, r5, #0 bl sub_0801D040 pop {r4, r5, pc} thumb_func_start sub_0801D2C8 sub_0801D2C8: @ 0x0801D2C8 push {r4, lr} adds r3, r0, #0 ldr r2, _0801D2F8 @ =gUnk_0200B644 adds r4, r1, #0 adds r4, #0x10 movs r1, #1 lsls r1, r4 ldr r0, [r2] orrs r0, r1 str r0, [r2] cmp r3, #5 bls _0801D33C cmp r3, #0x15 bne _0801D300 ldr r2, _0801D2FC @ =gUnk_020176A0 adds r0, r2, #0 adds r0, #0x78 ldrh r0, [r0] lsls r1, r4, #5 adds r1, r1, r2 movs r2, #0x20 bl sub_0801D5EC b _0801D33C .align 2, 0 _0801D2F8: .4byte gUnk_0200B644 _0801D2FC: .4byte gUnk_020176A0 _0801D300: cmp r3, #0x14 bhi _0801D31C subs r0, r3, #6 lsls r0, r0, #5 ldr r1, _0801D318 @ =gUnk_020176A0 adds r0, r0, r1 adds r1, r4, #0 movs r2, #1 bl sub_0801D754 b _0801D33C .align 2, 0 _0801D318: .4byte gUnk_020176A0 _0801D31C: ldr r1, _0801D340 @ =gUnk_08133368 adds r0, r3, #0 subs r0, #0x16 lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] lsrs r2, r0, #0x18 movs r1, #0xf ands r2, r1 ldr r1, _0801D344 @ =0x00FFFFFF ands r0, r1 ldr r1, _0801D348 @ =gUnk_085A2E80 adds r0, r0, r1 adds r1, r4, #0 bl sub_0801D754 _0801D33C: pop {r4, pc} .align 2, 0 _0801D340: .4byte gUnk_08133368 _0801D344: .4byte 0x00FFFFFF _0801D348: .4byte gUnk_085A2E80 thumb_func_start sub_0801D34C sub_0801D34C: @ 0x0801D34C push {r4, r5, r6, r7, lr} sub sp, #0x10 movs r2, #0 movs r3, #0 ldr r1, _0801D37C @ =gUnk_02001A00 _0801D356: mov r4, sp adds r0, r4, r2 strb r2, [r0] ldrb r0, [r1] lsls r0, r0, #0x1c lsrs r0, r0, #0x1c cmp r0, #1 bgt _0801D370 cmp r0, #0 blt _0801D370 strb r3, [r1] strb r3, [r1, #1] strh r3, [r1, #2] _0801D370: adds r1, #4 adds r2, #1 cmp r2, #0xf bls _0801D356 movs r4, #6 b _0801D390 .align 2, 0 _0801D37C: .4byte gUnk_02001A00 _0801D380: cmp r4, r1 ble _0801D390 mov r2, sp adds r0, r2, r4 strb r1, [r0] adds r0, r4, #0 bl sub_0801D48C _0801D390: adds r0, r4, #1 bl sub_0801D458 adds r4, r0, #0 cmp r4, #0 beq _0801D3AC movs r0, #1 bl sub_0801D134 adds r1, r0, #0 movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 bne _0801D380 _0801D3AC: movs r1, #0 ldr r4, _0801D450 @ =gUnk_03003D70 mov ip, r4 _0801D3B2: lsls r0, r1, #3 mov r2, ip adds r3, r0, r2 adds r0, r3, #0 ldr r3, [r3, #4] adds r5, r1, #1 cmp r0, r3 beq _0801D444 movs r7, #0x10 rsbs r7, r7, #0 adds r4, r0, #0 ldr r6, _0801D454 @ =gUnk_020000C0 _0801D3CA: ldrb r0, [r3, #8] cmp r0, #9 beq _0801D43E adds r1, r3, #0 adds r1, #0x28 ldrb r0, [r1] subs r0, #1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x7e bhi _0801D40C ldrb r1, [r1] lsls r1, r1, #6 adds r1, r1, r6 ldrb r0, [r1, #5] add r0, sp ldrb r0, [r0] strb r0, [r1, #5] ldrb r0, [r1, #0x15] add r0, sp ldrb r0, [r0] strb r0, [r1, #0x15] adds r2, r1, #0 adds r2, #0x25 ldrb r0, [r2] add r0, sp ldrb r0, [r0] strb r0, [r2] adds r1, #0x35 ldrb r0, [r1] add r0, sp ldrb r0, [r0] strb r0, [r1] _0801D40C: adds r1, r3, #0 adds r1, #0x27 ldrb r0, [r1] add r0, sp ldrb r0, [r0] strb r0, [r1] ldrb r2, [r3, #0x1a] lsls r0, r2, #0x1c lsrs r0, r0, #0x1c add r0, sp ldrb r1, [r0] movs r0, #0xf ands r1, r0 adds r0, r7, #0 ands r0, r2 orrs r0, r1 strb r0, [r3, #0x1a] lsrs r1, r0, #4 add r1, sp ldrb r2, [r1] lsls r2, r2, #4 movs r1, #0xf ands r0, r1 orrs r0, r2 strb r0, [r3, #0x1a] _0801D43E: ldr r3, [r3, #4] cmp r4, r3 bne _0801D3CA _0801D444: adds r1, r5, #0 cmp r1, #8 bls _0801D3B2 add sp, #0x10 pop {r4, r5, r6, r7, pc} .align 2, 0 _0801D450: .4byte gUnk_03003D70 _0801D454: .4byte gUnk_020000C0 thumb_func_start sub_0801D458 sub_0801D458: @ 0x0801D458 push {lr} adds r2, r0, #0 cmp r2, #0xf bhi _0801D488 ldr r1, _0801D47C @ =gUnk_02001A00 lsls r0, r2, #2 adds r1, r0, r1 _0801D466: ldrb r0, [r1] lsls r0, r0, #0x1c lsrs r0, r0, #0x1c cmp r0, #0 blt _0801D478 cmp r0, #1 ble _0801D480 cmp r0, #4 beq _0801D480 _0801D478: adds r0, r2, #0 b _0801D48A .align 2, 0 _0801D47C: .4byte gUnk_02001A00 _0801D480: adds r1, #4 adds r2, #1 cmp r2, #0xf bls _0801D466 _0801D488: movs r0, #0 _0801D48A: pop {pc} thumb_func_start sub_0801D48C sub_0801D48C: @ 0x0801D48C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #4 adds r6, r0, #0 adds r3, r1, #0 ldr r0, _0801D50C @ =gUnk_02001A00 mov r8, r0 lsls r0, r6, #2 mov r1, r8 adds r4, r0, r1 ldrb r0, [r4] lsrs r5, r0, #4 subs r5, #1 movs r0, #1 rsbs r0, r0, #0 cmp r5, r0 beq _0801D4F8 ldr r2, _0801D510 @ =gUnk_020176A0 lsls r0, r3, #5 movs r1, #0x80 lsls r1, r1, #2 adds r0, r0, r1 adds r7, r0, r2 lsls r0, r3, #2 add r8, r0 lsls r0, r6, #5 adds r0, r0, r1 adds r6, r0, r2 movs r3, #0 _0801D4C8: ldr r0, [r4] mov r1, r8 adds r1, #4 mov r8, r1 subs r1, #4 stm r1!, {r0} strb r3, [r4] strb r3, [r4, #1] strh r3, [r4, #2] adds r0, r6, #0 adds r1, r7, #0 movs r2, #0x20 str r3, [sp] bl sub_0801D66C adds r6, #0x20 adds r4, #4 adds r7, #0x20 subs r5, #1 movs r0, #1 rsbs r0, r0, #0 ldr r3, [sp] cmp r5, r0 bne _0801D4C8 _0801D4F8: ldr r0, _0801D514 @ =gUnk_0200B644 ldr r1, [r0] ldr r2, _0801D518 @ =0xFFFF0000 orrs r1, r2 str r1, [r0] add sp, #4 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0801D50C: .4byte gUnk_02001A00 _0801D510: .4byte gUnk_020176A0 _0801D514: .4byte gUnk_0200B644 _0801D518: .4byte 0xFFFF0000 thumb_func_start sub_0801D51C sub_0801D51C: @ 0x0801D51C push {r4, lr} adds r2, r0, #0 ldr r0, _0801D58C @ =0x05F5E0FF cmp r2, r0 bhi _0801D5A0 ldr r1, _0801D590 @ =0x00989680 adds r0, r2, #0 bl Div adds r4, r0, #0 lsls r4, r4, #0x1c ldr r2, _0801D594 @ =0x000F4240 adds r0, r1, #0 adds r1, r2, #0 bl Div lsls r0, r0, #0x18 adds r4, r4, r0 ldr r2, _0801D598 @ =0x000186A0 adds r0, r1, #0 adds r1, r2, #0 bl Div lsls r0, r0, #0x14 adds r4, r4, r0 ldr r2, _0801D59C @ =0x00002710 adds r0, r1, #0 adds r1, r2, #0 bl Div lsls r0, r0, #0x10 adds r4, r4, r0 movs r2, #0xfa lsls r2, r2, #2 adds r0, r1, #0 adds r1, r2, #0 bl Div lsls r0, r0, #0xc adds r4, r4, r0 adds r0, r1, #0 movs r1, #0x64 bl Div lsls r0, r0, #8 adds r4, r4, r0 adds r0, r1, #0 movs r1, #0xa bl Div lsls r0, r0, #4 adds r4, r4, r0 adds r4, r4, r1 adds r0, r4, #0 b _0801D5A2 .align 2, 0 _0801D58C: .4byte 0x05F5E0FF _0801D590: .4byte 0x00989680 _0801D594: .4byte 0x000F4240 _0801D598: .4byte 0x000186A0 _0801D59C: .4byte 0x00002710 _0801D5A0: ldr r0, _0801D5A4 @ =0x99999999 _0801D5A2: pop {r4, pc} .align 2, 0 _0801D5A4: .4byte 0x99999999 thumb_func_start sub_0801D5A8 sub_0801D5A8: @ 0x0801D5A8 lsrs r2, r1, #3 adds r0, r0, r2 ldrb r0, [r0] movs r2, #7 ands r2, r1 asrs r0, r2 movs r1, #1 ands r0, r1 bx lr .align 2, 0 thumb_func_start sub_0801D5BC sub_0801D5BC: @ 0x0801D5BC lsrs r2, r1, #3 adds r3, r0, r2 movs r2, #7 ands r1, r2 movs r2, #1 lsls r2, r1 ldrb r0, [r3] adds r1, r0, #0 orrs r1, r2 strb r1, [r3] ands r0, r2 bx lr thumb_func_start sub_0801D5D4 sub_0801D5D4: @ 0x0801D5D4 lsrs r2, r1, #3 adds r3, r0, r2 movs r2, #7 ands r1, r2 movs r2, #1 lsls r2, r1 ldrb r0, [r3] adds r1, r0, #0 bics r1, r2 strb r1, [r3] ands r0, r2 bx lr thumb_func_start sub_0801D5EC sub_0801D5EC: @ 0x0801D5EC sub sp, #4 mov r3, sp strh r0, [r3] ldr r3, _0801D60C @ =0x040000D4 mov r0, sp str r0, [r3] str r1, [r3, #4] lsrs r2, r2, #1 movs r0, #0x81 lsls r0, r0, #0x18 orrs r2, r0 str r2, [r3, #8] ldr r0, [r3, #8] add sp, #4 bx lr .align 2, 0 _0801D60C: .4byte 0x040000D4 thumb_func_start sub_0801D610 sub_0801D610: @ 0x0801D610 sub sp, #4 str r0, [sp] ldr r3, _0801D62C @ =0x040000D4 mov r0, sp str r0, [r3] str r1, [r3, #4] lsrs r2, r2, #2 movs r0, #0x85 lsls r0, r0, #0x18 orrs r2, r0 str r2, [r3, #8] ldr r0, [r3, #8] add sp, #4 bx lr .align 2, 0 _0801D62C: .4byte 0x040000D4 thumb_func_start sub_0801D630 sub_0801D630: @ 0x0801D630 push {r4, lr} adds r3, r0, #0 adds r2, r1, #0 movs r4, #0 adds r1, r3, #0 orrs r1, r2 movs r0, #3 ands r1, r0 cmp r1, #0 beq _0801D64A cmp r1, #2 beq _0801D654 b _0801D65E _0801D64A: movs r0, #0 adds r1, r3, #0 bl sub_0801D610 b _0801D668 _0801D654: movs r0, #0 adds r1, r3, #0 bl sub_0801D5EC b _0801D668 _0801D65E: strb r4, [r3] adds r3, #1 subs r2, #1 cmp r2, #0 bne _0801D65E _0801D668: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801D66C sub_0801D66C: @ 0x0801D66C push {r4, lr} adds r3, r0, #0 adds r4, r2, #0 adds r2, r3, #0 orrs r2, r1 orrs r2, r4 movs r0, #3 ands r2, r0 cmp r2, #0 beq _0801D686 cmp r2, #2 beq _0801D698 b _0801D6B0 _0801D686: ldr r2, _0801D694 @ =0x040000D4 str r3, [r2] str r1, [r2, #4] lsrs r0, r4, #2 movs r1, #0x84 lsls r1, r1, #0x18 b _0801D6A4 .align 2, 0 _0801D694: .4byte 0x040000D4 _0801D698: ldr r2, _0801D6AC @ =0x040000D4 str r3, [r2] str r1, [r2, #4] lsrs r0, r4, #1 movs r1, #0x80 lsls r1, r1, #0x18 _0801D6A4: orrs r0, r1 str r0, [r2, #8] ldr r0, [r2, #8] b _0801D6BE .align 2, 0 _0801D6AC: .4byte 0x040000D4 _0801D6B0: ldrb r0, [r3] strb r0, [r1] adds r3, #1 adds r1, #1 subs r4, #1 cmp r4, #0 bne _0801D6B0 _0801D6BE: pop {r4, pc} thumb_func_start sub_0801D6C0 sub_0801D6C0: @ 0x0801D6C0 push {lr} ldr r0, _0801D6D4 @ =0x04000130 ldrh r0, [r0] ldr r1, _0801D6D8 @ =0x000003FF bics r1, r0 ldr r0, _0801D6DC @ =gUnk_03000FF0 bl sub_0801D6E0 pop {pc} .align 2, 0 _0801D6D4: .4byte 0x04000130 _0801D6D8: .4byte 0x000003FF _0801D6DC: .4byte gUnk_03000FF0 thumb_func_start sub_0801D6E0 sub_0801D6E0: @ 0x0801D6E0 push {lr} adds r2, r0, #0 ldrh r0, [r2] adds r3, r1, #0 bics r3, r0 strh r3, [r2, #2] cmp r1, r0 bne _0801D70A ldrb r0, [r2, #7] subs r0, #1 strb r0, [r2, #7] lsls r0, r0, #0x18 cmp r0, #0 bne _0801D704 movs r0, #4 strb r0, [r2, #7] strh r1, [r2, #4] b _0801D710 _0801D704: movs r0, #0 strh r0, [r2, #4] b _0801D710 _0801D70A: movs r0, #0x14 strb r0, [r2, #7] strh r3, [r2, #4] _0801D710: strh r1, [r2] pop {pc} thumb_func_start sub_0801D714 sub_0801D714: @ 0x0801D714 push {r4, lr} ldr r1, _0801D748 @ =gUnk_080FF850 lsls r0, r0, #2 adds r0, r0, r1 ldr r4, [r0] _0801D71E: ldrb r3, [r4, #2] ldrb r0, [r4, #3] movs r2, #0xf ands r2, r0 cmp r2, #0 bne _0801D72C movs r2, #0x10 _0801D72C: ldrh r0, [r4] lsls r0, r0, #5 ldr r1, _0801D74C @ =gUnk_085A2E80 adds r0, r0, r1 adds r1, r3, #0 bl sub_0801D754 ldrb r1, [r4, #3] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801D750 adds r4, #4 b _0801D71E .align 2, 0 _0801D748: .4byte gUnk_080FF850 _0801D74C: .4byte gUnk_085A2E80 _0801D750: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801D754 sub_0801D754: @ 0x0801D754 push {r4, r5, r6, r7, lr} adds r6, r0, #0 lsls r5, r2, #5 movs r3, #1 lsls r3, r1 subs r2, #1 ldr r4, _0801D790 @ =gUnk_0200B644 ldr r7, _0801D794 @ =gUnk_020176A0 cmp r2, #0 ble _0801D772 _0801D768: lsls r0, r3, #1 orrs r3, r0 subs r2, #1 cmp r2, #0 bgt _0801D768 _0801D772: ldr r0, [r4] orrs r0, r3 str r0, [r4] lsls r0, r1, #5 adds r0, r0, r7 ldr r2, _0801D798 @ =0x040000D4 str r6, [r2] str r0, [r2, #4] lsrs r0, r5, #2 movs r1, #0x84 lsls r1, r1, #0x18 orrs r0, r1 str r0, [r2, #8] ldr r0, [r2, #8] pop {r4, r5, r6, r7, pc} .align 2, 0 _0801D790: .4byte gUnk_0200B644 _0801D794: .4byte gUnk_020176A0 _0801D798: .4byte 0x040000D4 thumb_func_start sub_0801D79C sub_0801D79C: @ 0x0801D79C ldr r3, _0801D7B4 @ =gUnk_020176A0 lsls r2, r0, #1 adds r2, r2, r3 strh r1, [r2] ldr r2, _0801D7B8 @ =gUnk_0200B644 lsrs r0, r0, #4 movs r1, #1 lsls r1, r0 ldr r0, [r2] orrs r0, r1 str r0, [r2] bx lr .align 2, 0 _0801D7B4: .4byte gUnk_020176A0 _0801D7B8: .4byte gUnk_0200B644 thumb_func_start sub_0801D7BC sub_0801D7BC: @ 0x0801D7BC push {lr} adds r2, r0, #0 cmp r1, #0 beq _0801D7D4 ldr r1, _0801D7CC @ =gUnk_03000F50 ldr r0, _0801D7D0 @ =0x0000E0FF b _0801D7D8 .align 2, 0 _0801D7CC: .4byte gUnk_03000F50 _0801D7D0: .4byte 0x0000E0FF _0801D7D4: ldr r1, _0801D7E4 @ =gUnk_03000F50 ldr r0, _0801D7E8 @ =0x0000FFFF _0801D7D8: strh r0, [r1, #6] movs r0, #0 adds r1, r2, #0 bl sub_0801D79C pop {pc} .align 2, 0 _0801D7E4: .4byte gUnk_03000F50 _0801D7E8: .4byte 0x0000FFFF thumb_func_start sub_0801D7EC sub_0801D7EC: @ 0x0801D7EC push {r4, r5, r6, lr} ldr r1, _0801D814 @ =gUnk_08100AA8 lsls r0, r0, #2 adds r0, r0, r1 ldr r4, [r0] movs r6, #0x80 lsls r6, r6, #0x12 ldr r5, _0801D818 @ =0x040000D4 _0801D7FC: movs r2, #0 ldrb r1, [r4, #3] movs r0, #0xf ands r1, r0 cmp r1, #0xd beq _0801D894 cmp r1, #0xd bhi _0801D81C cmp r1, #7 beq _0801D842 b _0801D836 .align 2, 0 _0801D814: .4byte gUnk_08100AA8 _0801D818: .4byte 0x040000D4 _0801D81C: cmp r1, #0xe beq _0801D826 cmp r1, #0xf beq _0801D82E b _0801D836 _0801D826: ldrb r0, [r6, #7] cmp r0, #1 bls _0801D83E b _0801D842 _0801D82E: ldrb r0, [r6, #7] cmp r0, #0 beq _0801D83E b _0801D842 _0801D836: ldrb r0, [r6, #7] cmp r1, r0 bne _0801D83E movs r2, #1 _0801D83E: cmp r2, #0 beq _0801D888 _0801D842: ldr r0, [r4] ldr r1, _0801D868 @ =0x00FFFFFF ands r0, r1 ldr r1, _0801D86C @ =gUnk_085A2E80 adds r2, r0, r1 ldr r1, [r4, #4] ldr r0, [r4, #8] movs r3, #0x80 lsls r3, r3, #0x18 cmp r0, #0 bge _0801D87C ldr r0, _0801D870 @ =0x05FFFFFF cmp r1, r0 bls _0801D874 adds r0, r2, #0 bl LZ77UnCompVram b _0801D888 .align 2, 0 _0801D868: .4byte 0x00FFFFFF _0801D86C: .4byte gUnk_085A2E80 _0801D870: .4byte 0x05FFFFFF _0801D874: adds r0, r2, #0 bl LZ77UnCompWram b _0801D888 _0801D87C: str r2, [r5] str r1, [r5, #4] lsrs r0, r0, #1 orrs r0, r3 str r0, [r5, #8] ldr r0, [r5, #8] _0801D888: ldrb r1, [r4, #3] movs r0, #0x80 ands r1, r0 adds r4, #0xc cmp r1, #0 bne _0801D7FC _0801D894: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0801D898 sub_0801D898: @ 0x0801D898 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r4, r1, #0 adds r6, r2, #0 movs r0, #0x80 lsls r0, r0, #8 ands r0, r3 movs r1, #0x20 mov ip, r1 cmp r0, #0 beq _0801D8B2 movs r0, #0x40 mov ip, r0 _0801D8B2: ldr r0, _0801D8D8 @ =0x00007FFF ands r3, r0 ldr r1, _0801D8DC @ =0x040000D4 movs r2, #0x80 lsls r2, r2, #0x18 orrs r2, r6 lsls r7, r6, #1 mov r0, ip lsls r6, r0, #1 _0801D8C4: str r4, [r1] str r5, [r1, #4] str r2, [r1, #8] ldr r0, [r1, #8] adds r4, r4, r7 adds r5, r5, r6 subs r3, #1 cmp r3, #0 bne _0801D8C4 pop {r4, r5, r6, r7, pc} .align 2, 0 _0801D8D8: .4byte 0x00007FFF _0801D8DC: .4byte 0x040000D4 thumb_func_start sub_0801D8E0 sub_0801D8E0: @ 0x0801D8E0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} mov ip, r0 movs r0, #3 add ip, r0 subs r0, #7 mov r1, ip ands r1, r0 mov ip, r1 ldr r6, _0801D90C @ =gUnk_02035540 mov sb, r6 ldrh r7, [r6] movs r5, #1 movs r3, #0x80 lsls r3, r3, #5 add r3, sb subs r4, r3, r1 movs r2, #0 b _0801D926 .align 2, 0 _0801D90C: .4byte gUnk_02035540 _0801D910: cmp r1, r4 bhi _0801D918 cmp r3, r0 bls _0801D952 _0801D918: cmp r4, r1 bhi _0801D920 cmp r0, r3 bls _0801D952 _0801D920: adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 _0801D926: cmp r2, r7 bhs _0801D94A lsls r0, r2, #2 add r0, sb ldrh r1, [r0, #2] ldr r6, _0801D95C @ =gUnk_02035540 adds r1, r1, r6 ldrh r0, [r0, #4] adds r0, r0, r6 cmp r1, r4 bhi _0801D940 cmp r4, r0 bls _0801D952 _0801D940: cmp r1, r3 bhi _0801D910 cmp r3, r0 bhi _0801D910 movs r5, #0 _0801D94A: lsls r0, r7, #2 mov sl, r0 cmp r5, #0 bne _0801D9D8 _0801D952: movs r1, #0 mov r8, r1 lsls r6, r7, #2 mov sl, r6 b _0801D970 .align 2, 0 _0801D95C: .4byte gUnk_02035540 _0801D960: movs r5, #0 _0801D962: mov r0, r8 adds r0, #1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r8, r0 cmp r8, r7 bhs _0801D9D4 _0801D970: mov r1, r8 lsls r0, r1, #2 add r0, sb ldrh r0, [r0, #2] ldr r6, _0801D994 @ =gUnk_02035540 adds r3, r0, r6 mov r0, ip subs r4, r3, r0 movs r5, #0 mov r0, sl adds r0, #2 add r0, sb adds r0, #4 cmp r4, r0 blo _0801D962 movs r5, #1 movs r2, #0 b _0801D9AE .align 2, 0 _0801D994: .4byte gUnk_02035540 _0801D998: cmp r1, r4 bhi _0801D9A0 cmp r3, r0 bls _0801D960 _0801D9A0: cmp r4, r1 bhi _0801D9A8 cmp r0, r3 bls _0801D960 _0801D9A8: adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 _0801D9AE: cmp r2, r7 bhs _0801D9D0 lsls r0, r2, #2 add r0, sb ldrh r1, [r0, #2] adds r1, r1, r6 ldrh r0, [r0, #4] adds r0, r0, r6 cmp r1, r4 bhi _0801D9C6 cmp r4, r0 blo _0801D960 _0801D9C6: cmp r1, r3 bhs _0801D998 cmp r3, r0 bhi _0801D998 movs r5, #0 _0801D9D0: cmp r5, #0 beq _0801D962 _0801D9D4: cmp r5, #0 beq _0801DA00 _0801D9D8: ldr r0, _0801D9FC @ =gUnk_02035542 mov r1, sl adds r2, r1, r0 subs r3, r0, #2 subs r1, r4, r3 strh r1, [r2] adds r0, #2 add r0, sl add r1, ip strh r1, [r0] adds r0, r7, #1 strh r0, [r3] adds r0, r4, #0 mov r1, ip bl sub_0801D630 adds r0, r4, #0 b _0801DA02 .align 2, 0 _0801D9FC: .4byte gUnk_02035542 _0801DA00: movs r0, #0 _0801DA02: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0801DA0C sub_0801DA0C: @ 0x0801DA0C push {r4, r5, lr} ldr r3, _0801DA44 @ =gUnk_02035540 subs r1, r0, r3 ldr r0, _0801DA48 @ =0x00000FFF cmp r1, r0 bhi _0801DA74 adds r4, r3, #0 ldrh r5, [r4] adds r4, #2 movs r2, #0 cmp r2, r5 bhs _0801DA74 ldrh r0, [r4] cmp r0, r1 bne _0801DA4C lsls r0, r5, #2 subs r1, r3, #2 adds r0, r0, r1 ldrh r1, [r0] strh r1, [r4] strh r2, [r0] adds r0, #2 ldrh r1, [r0] strh r1, [r4, #2] strh r2, [r0] subs r0, r5, #1 strh r0, [r3] b _0801DA74 .align 2, 0 _0801DA44: .4byte gUnk_02035540 _0801DA48: .4byte 0x00000FFF _0801DA4C: adds r4, #4 adds r2, #1 cmp r2, r5 bhs _0801DA74 ldrh r0, [r4] cmp r0, r1 bne _0801DA4C lsls r1, r5, #2 ldr r3, _0801DA78 @ =gUnk_0203553E adds r1, r1, r3 ldrh r0, [r1] strh r0, [r4] movs r2, #0 strh r2, [r1] adds r1, #2 ldrh r0, [r1] strh r0, [r4, #2] strh r2, [r1] subs r0, r5, #1 strh r0, [r3, #2] _0801DA74: pop {r4, r5, pc} .align 2, 0 _0801DA78: .4byte gUnk_0203553E thumb_func_start sub_0801DA7C sub_0801DA7C: @ 0x0801DA7C push {lr} ldr r0, _0801DA8C @ =gUnk_02035540 movs r1, #0x80 lsls r1, r1, #5 bl sub_0801D630 pop {pc} .align 2, 0 _0801DA8C: .4byte gUnk_02035540 thumb_func_start sub_0801DA90 sub_0801DA90: @ 0x0801DA90 push {r4, r5, lr} adds r4, r0, #0 ldr r1, _0801DAEC @ =gUnk_03001000 ldrb r0, [r1] movs r3, #0 movs r0, #1 strb r0, [r1] ldr r0, _0801DAF0 @ =gUnk_03003DE0 strb r3, [r0] ldr r0, _0801DAF4 @ =gUnk_03000FD0 strb r3, [r0] ldr r5, _0801DAF8 @ =gUnk_03000F50 adds r0, r5, #0 adds r0, #0x6d strb r3, [r0] subs r0, #1 strb r3, [r0] ldr r1, _0801DAFC @ =0x040000B0 ldrh r2, [r1, #0xa] ldr r0, _0801DB00 @ =0x0000C5FF ands r0, r2 strh r0, [r1, #0xa] ldrh r2, [r1, #0xa] ldr r0, _0801DB04 @ =0x00007FFF ands r0, r2 strh r0, [r1, #0xa] ldrh r0, [r1, #0xa] movs r0, #0x80 lsls r0, r0, #0x13 strh r3, [r0] bl sub_0801DB10 bl sub_0801DB34 ldr r0, _0801DB08 @ =0x0600C000 movs r1, #0x20 bl sub_0801D630 ldr r0, _0801DB0C @ =gUnk_02034CB0 movs r1, #0x80 lsls r1, r1, #4 bl sub_0801D630 strh r4, [r5, #0xe] pop {r4, r5, pc} .align 2, 0 _0801DAEC: .4byte gUnk_03001000 _0801DAF0: .4byte gUnk_03003DE0 _0801DAF4: .4byte gUnk_03000FD0 _0801DAF8: .4byte gUnk_03000F50 _0801DAFC: .4byte 0x040000B0 _0801DB00: .4byte 0x0000C5FF _0801DB04: .4byte 0x00007FFF _0801DB08: .4byte 0x0600C000 _0801DB0C: .4byte gUnk_02034CB0 thumb_func_start sub_0801DB10 sub_0801DB10: @ 0x0801DB10 push {r4, lr} ldr r3, _0801DB30 @ =gUnk_03000020 movs r1, #0xe0 lsls r1, r1, #0x13 movs r0, #0x80 movs r4, #0xa8 lsls r4, r4, #2 adds r2, r4, #0 _0801DB20: strh r2, [r3] adds r3, #8 strh r2, [r1] adds r1, #8 subs r0, #1 cmp r0, #0 bne _0801DB20 pop {r4, pc} .align 2, 0 _0801DB30: .4byte gUnk_03000020 thumb_func_start sub_0801DB34 sub_0801DB34: @ 0x0801DB34 push {r4, lr} ldr r4, _0801DB6C @ =gUnk_03000F50 adds r0, r4, #0 movs r1, #0x7c bl sub_0801D630 ldr r0, _0801DB70 @ =gUnk_02034CB0 str r0, [r4, #0x10] ldr r0, _0801DB74 @ =0x00001F0C strh r0, [r4, #8] ldr r0, _0801DB78 @ =gUnk_02021F30 str r0, [r4, #0x1c] ldr r0, _0801DB7C @ =0x00001C01 strh r0, [r4, #0x14] ldr r0, _0801DB80 @ =gUnk_020344B0 str r0, [r4, #0x28] ldr r0, _0801DB84 @ =0x00001D02 strh r0, [r4, #0x20] ldr r0, _0801DB88 @ =gUnk_02001A40 str r0, [r4, #0x34] ldr r0, _0801DB8C @ =0x00001E03 strh r0, [r4, #0x2c] movs r0, #0xa0 lsls r0, r0, #1 strh r0, [r4] ldr r0, _0801DB90 @ =0x0000FFFF strh r0, [r4, #6] pop {r4, pc} .align 2, 0 _0801DB6C: .4byte gUnk_03000F50 _0801DB70: .4byte gUnk_02034CB0 _0801DB74: .4byte 0x00001F0C _0801DB78: .4byte gUnk_02021F30 _0801DB7C: .4byte 0x00001C01 _0801DB80: .4byte gUnk_020344B0 _0801DB84: .4byte 0x00001D02 _0801DB88: .4byte gUnk_02001A40 _0801DB8C: .4byte 0x00001E03 _0801DB90: .4byte 0x0000FFFF thumb_func_start sub_0801DB94 sub_0801DB94: @ 0x0801DB94 ldr r0, _0801DB9C @ =gUnk_030010A0 ldrh r0, [r0, #0x1e] lsrs r0, r0, #0xb bx lr .align 2, 0 _0801DB9C: .4byte gUnk_030010A0 thumb_func_start sub_0801DBA0 sub_0801DBA0: @ 0x0801DBA0 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #4 adds r4, r0, #0 adds r5, r1, #0 adds r1, r2, #0 adds r0, r5, #0 bl sub_0801D630 movs r0, #1 strb r0, [r5] ldr r2, _0801DBE4 @ =gUnk_030010A0 ldrh r0, [r2, #0x1c] lsrs r0, r0, #4 movs r1, #0x7f ands r0, r1 strb r0, [r5, #1] ldrh r0, [r2, #0x1e] lsrs r0, r0, #4 ands r0, r1 strb r0, [r5, #2] adds r5, #3 ldr r1, _0801DBE8 @ =gUnk_080C9C50 ldr r0, _0801DBEC @ =gUnk_02033A90 ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] lsls r4, r4, #2 adds r4, r4, r0 ldr r6, [r4] b _0801DD3A .align 2, 0 _0801DBE4: .4byte gUnk_030010A0 _0801DBE8: .4byte gUnk_080C9C50 _0801DBEC: .4byte gUnk_02033A90 _0801DBF0: ldrb r0, [r6] ldrb r1, [r6, #1] movs r2, #3 bl sub_0804B0FC adds r4, r0, #0 cmp r4, #0 bne _0801DC04 adds r6, #8 b _0801DD3A _0801DC04: adds r0, r6, #0 bl sub_0801DF10 mov r8, r0 bl sub_0805279C movs r1, #8 adds r1, r1, r6 mov sb, r1 cmp r0, #0 beq _0801DCAE ldrb r0, [r4] cmp r0, #0 beq _0801DCAE movs r3, #0xfc lsls r3, r3, #2 ldr r7, _0801DC84 @ =0x000007FF _0801DC26: ldrb r0, [r4] cmp r0, #3 bgt _0801DCA6 cmp r0, #2 blt _0801DCA6 ldrb r1, [r4, #1] mov r0, r8 str r3, [sp] bl sub_0807CB10 ldr r3, [sp] cmp r0, #0 bne _0801DCA6 ldr r0, _0801DC88 @ =gUnk_0811E214 ldrb r2, [r6] lsls r2, r2, #2 adds r2, r2, r0 ldrb r1, [r6, #1] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 ldr r1, [r2] adds r2, r1, r0 movs r0, #2 strb r0, [r5] ldrb r0, [r4] cmp r0, #2 bne _0801DC8C ldrh r0, [r4, #4] lsls r0, r0, #4 ands r0, r3 movs r1, #8 orrs r0, r1 ldrh r1, [r2] ands r1, r7 adds r0, r0, r1 asrs r0, r0, #4 strb r0, [r5, #1] ldrh r0, [r4, #4] lsrs r0, r0, #2 ands r0, r3 movs r1, #8 orrs r0, r1 ldrh r1, [r2, #2] ands r1, r7 b _0801DC9E .align 2, 0 _0801DC84: .4byte 0x000007FF _0801DC88: .4byte gUnk_0811E214 _0801DC8C: ldrh r0, [r2] ands r0, r7 ldrh r1, [r4, #4] adds r0, r0, r1 asrs r0, r0, #4 strb r0, [r5, #1] ldrh r0, [r2, #2] ands r0, r7 ldrh r1, [r4, #6] _0801DC9E: adds r0, r0, r1 asrs r0, r0, #4 strb r0, [r5, #2] adds r5, #3 _0801DCA6: adds r4, #8 ldrb r0, [r4] cmp r0, #0 bne _0801DC26 _0801DCAE: bl sub_0805279C cmp r0, #0 beq _0801DD16 ldrb r1, [r6, #2] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0801DD16 ldr r0, _0801DD4C @ =gUnk_02033A90 ldrb r0, [r0, #3] adds r0, #1 bl sub_0807CC30 cmp r0, #0 bne _0801DD16 ldr r0, _0801DD50 @ =gUnk_0811E214 ldrb r2, [r6] lsls r2, r2, #2 adds r2, r2, r0 ldrb r1, [r6, #1] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 ldr r1, [r2] adds r2, r1, r0 movs r0, #4 strb r0, [r5] ldrh r0, [r2, #4] lsrs r0, r0, #1 ldrh r1, [r2] adds r0, r0, r1 asrs r1, r0, #4 adds r0, r1, #0 cmp r1, #0 bge _0801DCF8 adds r0, #0x7f _0801DCF8: asrs r0, r0, #7 lsls r0, r0, #7 subs r0, r1, r0 strb r0, [r5, #1] ldrh r0, [r2, #6] lsrs r0, r0, #1 ldrh r2, [r2, #2] adds r0, r0, r2 asrs r1, r0, #4 adds r0, r1, #0 asrs r0, r0, #7 lsls r0, r0, #7 subs r0, r1, r0 strb r0, [r5, #2] adds r5, #3 _0801DD16: ldr r2, _0801DD54 @ =gUnk_030010A0 ldrh r0, [r6] ldrh r1, [r2, #0x16] cmp r0, r1 bne _0801DD38 movs r0, #3 strb r0, [r5] ldrh r0, [r2, #0x18] lsrs r0, r0, #4 movs r1, #0x7f ands r0, r1 strb r0, [r5, #1] ldrh r0, [r2, #0x1a] lsrs r0, r0, #4 ands r0, r1 strb r0, [r5, #2] adds r5, #3 _0801DD38: mov r6, sb _0801DD3A: ldrb r0, [r6] cmp r0, #0 beq _0801DD42 b _0801DBF0 _0801DD42: add sp, #4 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _0801DD4C: .4byte gUnk_02033A90 _0801DD50: .4byte gUnk_0811E214 _0801DD54: .4byte gUnk_030010A0 thumb_func_start sub_0801DD58 sub_0801DD58: @ 0x0801DD58 ldr r2, _0801DD7C @ =gUnk_0811E214 lsls r0, r0, #2 adds r0, r0, r2 lsls r2, r1, #2 adds r2, r2, r1 lsls r2, r2, #1 ldr r3, [r0] adds r3, r3, r2 ldr r0, _0801DD80 @ =gUnk_02033A90 ldr r1, _0801DD84 @ =0x0000085C adds r0, r0, r1 ldr r2, [r0] ldrh r1, [r3] strh r1, [r2, #4] ldr r1, [r0] ldrh r0, [r3, #2] strh r0, [r1, #6] bx lr .align 2, 0 _0801DD7C: .4byte gUnk_0811E214 _0801DD80: .4byte gUnk_02033A90 _0801DD84: .4byte 0x0000085C thumb_func_start sub_0801DD88 sub_0801DD88: @ 0x0801DD88 push {lr} ldr r0, _0801DD98 @ =gUnk_0201AEE0 ldr r1, _0801DD9C @ =0x06006000 movs r2, #0x80 lsls r2, r2, #6 bl sub_08000E96 pop {pc} .align 2, 0 _0801DD98: .4byte gUnk_0201AEE0 _0801DD9C: .4byte 0x06006000 thumb_func_start sub_0801DDA0 sub_0801DDA0: @ 0x0801DDA0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x14 adds r4, r0, #0 bl sub_08052690 cmp r0, #0 bne _0801DDB8 b _0801DEEA _0801DDB8: ldr r1, _0801DDD8 @ =gUnk_080C9C50 ldr r0, _0801DDDC @ =gUnk_02033A90 ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] lsls r0, r4, #2 adds r0, r0, r1 ldr r4, [r0] ldr r0, _0801DDE0 @ =gUnk_02019EE0 movs r1, #0x80 lsls r1, r1, #8 bl sub_0801D630 b _0801DEE2 .align 2, 0 _0801DDD8: .4byte gUnk_080C9C50 _0801DDDC: .4byte gUnk_02033A90 _0801DDE0: .4byte gUnk_02019EE0 _0801DDE4: ldrb r0, [r4] ldrb r1, [r4, #1] movs r2, #3 bl sub_0804B0FC adds r6, r0, #0 adds r0, r4, #0 bl sub_0801DF10 adds r5, r0, #0 movs r0, #0 str r0, [sp, #0xc] ldrh r2, [r4] ldr r0, _0801DE14 @ =gUnk_02032EC0 ldrh r3, [r0, #0x20] ldr r1, _0801DE18 @ =0x0000FFFF ands r1, r2 ldr r0, _0801DE18 @ =0x0000FFFF ands r0, r3 cmp r1, r0 bne _0801DE1C movs r3, #8 b _0801DE36 .align 2, 0 _0801DE14: .4byte gUnk_02032EC0 _0801DE18: .4byte 0x0000FFFF _0801DE1C: bl sub_080527CC cmp r0, #0 beq _0801DE28 movs r0, #2 str r0, [sp, #0xc] _0801DE28: adds r0, r6, #0 adds r1, r5, #0 bl sub_0801DF90 cmp r0, #0 beq _0801DE38 movs r3, #3 _0801DE36: str r3, [sp, #0xc] _0801DE38: ldrb r1, [r4, #2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0801DE46 movs r0, #0 str r0, [sp, #0xc] _0801DE46: adds r3, r4, #0 adds r3, #8 str r3, [sp, #0x10] ldr r0, [sp, #0xc] cmp r0, #0 beq _0801DEE0 ldr r2, _0801DEF8 @ =0x040000D4 ldr r0, [r4, #4] ldr r1, _0801DEFC @ =gUnk_08324AE4 adds r0, r0, r1 str r0, [r2] ldr r0, _0801DF00 @ =gUnk_02019EE0 str r0, [r2, #4] ldr r0, _0801DF04 @ =0x84000100 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, _0801DF08 @ =gUnk_0811E214 ldrb r2, [r4] lsls r2, r2, #2 adds r2, r2, r0 ldrb r1, [r4, #1] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 ldr r2, [r2] adds r2, r2, r0 ldrh r0, [r2] lsrs r0, r0, #4 str r0, [sp] ldrh r0, [r2, #2] ldr r1, _0801DF0C @ =0x000007FF ands r0, r1 lsrs r0, r0, #4 str r0, [sp, #4] ldrh r0, [r2, #4] lsrs r7, r0, #4 ldrh r0, [r2, #6] lsrs r0, r0, #4 mov sl, r0 adds r0, r7, #3 lsrs r0, r0, #2 str r0, [sp, #8] movs r6, #0 cmp r6, sl bhs _0801DEE0 _0801DEA0: ldr r3, [sp, #8] adds r1, r6, #0 muls r1, r3, r1 ldr r0, _0801DF00 @ =gUnk_02019EE0 adds r1, r1, r0 mov r8, r1 movs r5, #0 adds r0, r6, #1 mov sb, r0 cmp r5, r7 bhs _0801DEDA _0801DEB6: ldr r3, [sp] adds r4, r3, r5 adds r0, r5, #0 mov r1, r8 bl sub_0801DF60 ldr r1, [sp, #0xc] bl sub_0801DF78 adds r2, r0, #0 adds r0, r4, #0 ldr r3, [sp, #4] adds r1, r3, r6 bl sub_0801DF28 adds r5, #1 cmp r5, r7 blo _0801DEB6 _0801DEDA: mov r6, sb cmp r6, sl blo _0801DEA0 _0801DEE0: ldr r4, [sp, #0x10] _0801DEE2: ldrb r0, [r4] cmp r0, #0 beq _0801DEEA b _0801DDE4 _0801DEEA: add sp, #0x14 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _0801DEF8: .4byte 0x040000D4 _0801DEFC: .4byte gUnk_08324AE4 _0801DF00: .4byte gUnk_02019EE0 _0801DF04: .4byte 0x84000100 _0801DF08: .4byte gUnk_0811E214 _0801DF0C: .4byte 0x000007FF thumb_func_start sub_0801DF10 sub_0801DF10: @ 0x0801DF10 push {lr} adds r1, r0, #0 ldrb r0, [r1, #3] cmp r0, #1 bne _0801DF20 movs r0, #0xc0 lsls r0, r0, #2 b _0801DF26 _0801DF20: ldrb r0, [r1] bl sub_08052D58 _0801DF26: pop {pc} thumb_func_start sub_0801DF28 sub_0801DF28: @ 0x0801DF28 push {r4, lr} lsrs r4, r1, #3 lsls r4, r4, #4 lsrs r3, r0, #3 adds r4, r4, r3 lsls r4, r4, #5 ldr r3, _0801DF58 @ =gUnk_0201AEE0 adds r4, r4, r3 movs r3, #7 ands r1, r3 lsls r1, r1, #2 adds r4, r4, r1 ands r0, r3 lsls r0, r0, #2 lsls r2, r0 ldr r1, _0801DF5C @ =gUnk_080C9460 adds r0, r0, r1 ldr r1, [r4] ldr r0, [r0] ands r1, r0 orrs r1, r2 str r1, [r4] pop {r4, pc} .align 2, 0 _0801DF58: .4byte gUnk_0201AEE0 _0801DF5C: .4byte gUnk_080C9460 thumb_func_start sub_0801DF60 sub_0801DF60: @ 0x0801DF60 adds r3, r0, #0 lsrs r0, r3, #2 adds r0, r0, r1 ldrb r0, [r0] movs r2, #3 adds r1, r2, #0 bics r1, r3 lsls r1, r1, #1 asrs r0, r1 ands r0, r2 bx lr .align 2, 0 thumb_func_start sub_0801DF78 sub_0801DF78: @ 0x0801DF78 push {lr} cmp r0, #2 beq _0801DF88 cmp r0, #2 blo _0801DF8E cmp r0, #3 beq _0801DF8C b _0801DF8E _0801DF88: adds r0, r1, #0 b _0801DF8E _0801DF8C: movs r0, #7 _0801DF8E: pop {pc} thumb_func_start sub_0801DF90 sub_0801DF90: @ 0x0801DF90 push {lr} adds r2, r1, #0 cmp r0, #0 bne _0801DFAA b _0801DFB0 _0801DF9A: ldrb r1, [r0, #1] adds r0, r2, #0 bl sub_0807CB10 b _0801DFB2 _0801DFA4: cmp r1, #1 beq _0801DF9A adds r0, #8 _0801DFAA: ldrb r1, [r0] cmp r1, #0 bne _0801DFA4 _0801DFB0: movs r0, #0 _0801DFB2: pop {pc} thumb_func_start sub_0801DFB4 sub_0801DFB4: @ 0x0801DFB4 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} mov r8, r0 adds r4, r1, #0 adds r5, r2, #0 adds r6, r3, #0 ldr r7, _0801E004 @ =gUnk_02022740 adds r0, r7, #0 movs r1, #0x10 bl sub_0801D630 strh r4, [r7, #6] strh r5, [r7, #8] strh r6, [r7, #0xa] mov r0, r8 str r0, [r7, #0xc] ldr r0, _0801E008 @ =gUnk_03003DF0 ldrb r0, [r0, #2] strb r0, [r7, #3] mov r1, r8 cmp r1, #0 beq _0801DFF8 ldrb r1, [r1, #0x11] lsls r0, r1, #0x1c lsrs r0, r0, #0x1c strb r0, [r7, #4] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #2 orrs r0, r1 mov r1, r8 strb r0, [r1, #0x11] _0801DFF8: movs r0, #0 strb r0, [r7] pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0801E004: .4byte gUnk_02022740 _0801E008: .4byte gUnk_03003DF0 thumb_func_start sub_0801E00C sub_0801E00C: @ 0x0801E00C push {r4, lr} ldr r1, _0801E024 @ =gUnk_080C9CAC ldr r4, _0801E028 @ =gUnk_02022740 ldrb r0, [r4, #1] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 ldrb r0, [r4] pop {r4, pc} .align 2, 0 _0801E024: .4byte gUnk_080C9CAC _0801E028: .4byte gUnk_02022740 thumb_func_start sub_0801E02C sub_0801E02C: @ 0x0801E02C push {r4, lr} ldr r4, _0801E040 @ =gUnk_02022740 ldrh r0, [r4, #6] bl sub_0801E0E0 movs r0, #3 strb r0, [r4] movs r0, #1 strb r0, [r4, #1] pop {r4, pc} .align 2, 0 _0801E040: .4byte gUnk_02022740 thumb_func_start sub_0801E044 sub_0801E044: @ 0x0801E044 push {lr} ldr r0, _0801E06C @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _0801E06A movs r0, #4 movs r1, #0 bl sub_080A7138 ldr r0, _0801E070 @ =gUnk_02022740 movs r1, #4 strb r1, [r0] movs r1, #2 strb r1, [r0, #1] movs r0, #0x6b bl sub_080A3268 _0801E06A: pop {pc} .align 2, 0 _0801E06C: .4byte gUnk_02000050 _0801E070: .4byte gUnk_02022740 thumb_func_start sub_0801E074 sub_0801E074: @ 0x0801E074 push {lr} ldr r0, _0801E084 @ =gUnk_02022740 ldrb r1, [r0] cmp r1, #5 beq _0801E088 cmp r1, #6 beq _0801E08C b _0801E098 .align 2, 0 _0801E084: .4byte gUnk_02022740 _0801E088: ldrh r0, [r0, #8] b _0801E08E _0801E08C: ldrh r0, [r0, #0xa] _0801E08E: bl sub_0801E0E0 ldr r1, _0801E09C @ =gUnk_02022740 movs r0, #3 strb r0, [r1, #1] _0801E098: pop {pc} .align 2, 0 _0801E09C: .4byte gUnk_02022740 thumb_func_start sub_0801E0A0 sub_0801E0A0: @ 0x0801E0A0 push {r4, lr} ldr r0, _0801E0D8 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _0801E0D4 ldr r4, _0801E0DC @ =gUnk_02022740 ldr r3, [r4, #0xc] cmp r3, #0 beq _0801E0C8 ldrb r0, [r4, #4] movs r1, #0xf ands r1, r0 ldrb r2, [r3, #0x11] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3, #0x11] _0801E0C8: ldrb r0, [r4] movs r1, #1 cmp r0, #6 bne _0801E0D2 movs r1, #2 _0801E0D2: strb r1, [r4] _0801E0D4: pop {r4, pc} .align 2, 0 _0801E0D8: .4byte gUnk_02000050 _0801E0DC: .4byte gUnk_02022740 thumb_func_start sub_0801E0E0 sub_0801E0E0: @ 0x0801E0E0 push {lr} adds r2, r0, #0 cmp r2, #0 beq _0801E102 ldr r0, _0801E0F8 @ =gUnk_02022740 ldr r1, [r0, #0xc] cmp r1, #0 beq _0801E0FC adds r0, r2, #0 bl sub_08056398 b _0801E102 .align 2, 0 _0801E0F8: .4byte gUnk_02022740 _0801E0FC: adds r0, r2, #0 bl sub_08056378 _0801E102: pop {pc} thumb_func_start sub_0801E104 sub_0801E104: @ 0x0801E104 ldr r1, _0801E118 @ =gUnk_03000F50 ldrh r2, [r1] ldr r0, _0801E11C @ =0x00009FFF ands r0, r2 movs r2, #0 strh r0, [r1] adds r1, #0x6c strb r2, [r1] bx lr .align 2, 0 _0801E118: .4byte gUnk_03000F50 _0801E11C: .4byte 0x00009FFF thumb_func_start sub_0801E120 sub_0801E120: @ 0x0801E120 ldr r3, _0801E14C @ =gUnk_03000F50 ldrh r1, [r3] movs r2, #0x80 lsls r2, r2, #6 adds r0, r2, #0 movs r2, #0 orrs r0, r1 strh r0, [r3] adds r1, r3, #0 adds r1, #0x60 ldr r0, _0801E150 @ =0x00003F37 strh r0, [r1] adds r1, #2 movs r0, #0x3f strh r0, [r1] adds r0, r3, #0 adds r0, #0x58 strh r2, [r0] subs r1, #6 movs r0, #0xa0 strh r0, [r1] bx lr .align 2, 0 _0801E14C: .4byte gUnk_03000F50 _0801E150: .4byte 0x00003F37 thumb_func_start sub_0801E154 sub_0801E154: @ 0x0801E154 push {lr} movs r1, #0 bl sub_0801E24C pop {pc} .align 2, 0 thumb_func_start sub_0801E160 sub_0801E160: @ 0x0801E160 push {r4, r5, r6, lr} mov r6, sb mov r5, r8 push {r5, r6} adds r6, r0, #0 mov r8, r1 mov sb, r2 ldr r5, _0801E1A8 @ =gUnk_03003DE4 ldrb r1, [r5] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 ldr r4, _0801E1AC @ =gUnk_02017AA0 adds r0, r0, r4 movs r1, #0xa0 lsls r1, r1, #4 bl sub_0801D630 adds r0, r6, #0 mov r1, r8 mov r2, sb bl sub_0801E290 ldrb r1, [r5] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 adds r0, r0, r4 ldr r1, _0801E1B0 @ =0x04000040 ldr r2, _0801E1B4 @ =0xA2600001 bl sub_0805622C pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, pc} .align 2, 0 _0801E1A8: .4byte gUnk_03003DE4 _0801E1AC: .4byte gUnk_02017AA0 _0801E1B0: .4byte 0x04000040 _0801E1B4: .4byte 0xA2600001 thumb_func_start sub_0801E1B8 sub_0801E1B8: @ 0x0801E1B8 push {r4, lr} ldr r2, _0801E1E8 @ =gUnk_03000F50 mov ip, r2 ldrh r3, [r2] movs r4, #0x80 lsls r4, r4, #6 adds r2, r4, #0 movs r4, #0 orrs r2, r3 mov r3, ip strh r2, [r3] mov r2, ip adds r2, #0x60 strh r0, [r2] mov r0, ip adds r0, #0x62 strh r1, [r0] subs r0, #0xa strh r4, [r0] mov r1, ip adds r1, #0x5c movs r0, #0xa0 strh r0, [r1] pop {r4, pc} .align 2, 0 _0801E1E8: .4byte gUnk_03000F50 thumb_func_start sub_0801E1EC sub_0801E1EC: @ 0x0801E1EC push {r4, r5, r6, lr} mov r6, sb mov r5, r8 push {r5, r6} mov r8, r0 mov sb, r1 adds r4, r2, #0 ldr r6, _0801E23C @ =gUnk_03003DE4 ldrb r1, [r6] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 ldr r5, _0801E240 @ =gUnk_02017AA0 adds r0, r0, r5 movs r1, #0xa0 lsls r1, r1, #4 bl sub_0801D630 adds r0, r4, #0 movs r1, #0 bl sub_0801E24C mov r0, r8 mov r1, sb adds r2, r4, #0 bl sub_0801E290 ldrb r1, [r6] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 adds r0, r0, r5 ldr r1, _0801E244 @ =0x04000040 ldr r2, _0801E248 @ =0xA2600001 bl sub_0805622C pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, pc} .align 2, 0 _0801E23C: .4byte gUnk_03003DE4 _0801E240: .4byte gUnk_02017AA0 _0801E244: .4byte 0x04000040 _0801E248: .4byte 0xA2600001 thumb_func_start sub_0801E24C sub_0801E24C: @ 0x0801E24C push {r4, r5, lr} lsls r1, r1, #1 ldr r2, _0801E278 @ =gUnk_02018EE0 adds r5, r1, r2 movs r3, #0 adds r2, r0, #0 lsls r4, r2, #1 movs r0, #3 subs r1, r0, r4 cmp r3, r2 bgt _0801E28E adds r4, r4, r5 _0801E264: lsls r0, r3, #1 adds r0, r0, r5 strh r2, [r0] strh r3, [r4] cmp r1, #0 bge _0801E27C adds r1, #6 lsls r0, r3, #2 adds r1, r1, r0 b _0801E288 .align 2, 0 _0801E278: .4byte gUnk_02018EE0 _0801E27C: adds r1, #0xa subs r0, r3, r2 lsls r0, r0, #2 adds r1, r1, r0 subs r4, #2 subs r2, #1 _0801E288: adds r3, #1 cmp r3, r2 ble _0801E264 _0801E28E: pop {r4, r5, pc} thumb_func_start sub_0801E290 sub_0801E290: @ 0x0801E290 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} mov ip, r0 adds r6, r2, #0 ldr r0, _0801E2BC @ =gUnk_03003DE4 ldrb r0, [r0] lsls r2, r0, #2 adds r2, r2, r0 lsls r2, r2, #9 lsls r0, r1, #1 ldr r3, _0801E2C0 @ =gUnk_02017AA0 adds r0, r0, r3 adds r2, r2, r0 adds r4, r2, #0 adds r5, r1, #0 mov sb, r5 ldr r0, _0801E2C4 @ =gUnk_02018EE0 mov r8, r0 b _0801E30A .align 2, 0 _0801E2BC: .4byte gUnk_03003DE4 _0801E2C0: .4byte gUnk_02017AA0 _0801E2C4: .4byte gUnk_02018EE0 _0801E2C8: mov r1, r8 movs r3, #0 ldrsh r0, [r1, r3] movs r7, #2 add r8, r7 mov r3, ip subs r1, r3, r0 adds r3, r3, r0 cmp r1, #0 bge _0801E2DE movs r1, #0 _0801E2DE: cmp r3, #0xef ble _0801E2E4 movs r3, #0xf0 _0801E2E4: mov r7, sb lsls r0, r7, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x9f bhi _0801E2F2 strb r3, [r4] strb r1, [r4, #1] _0801E2F2: lsls r0, r5, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x9f bhi _0801E2FE strb r3, [r2] strb r1, [r2, #1] _0801E2FE: subs r4, #2 adds r2, #2 movs r0, #1 rsbs r0, r0, #0 add sb, r0 adds r5, #1 _0801E30A: adds r0, r6, #0 subs r6, #1 cmp r0, #0 bne _0801E2C8 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0801E31C sub_0801E31C: @ 0x0801E31C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x20 str r0, [sp] str r1, [sp, #4] mov sl, r2 mov sb, r3 ldr r0, _0801E3AC @ =gUnk_03003DE4 ldrb r1, [r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 ldr r1, _0801E3B0 @ =gUnk_02017AA0 adds r0, r0, r1 movs r1, #0xa0 lsls r1, r1, #4 bl sub_0801D630 cmp sl, sb bge _0801E3DC movs r6, #0 mov r8, sl mov r7, r8 mov r0, r8 lsls r1, r0, #1 movs r0, #3 subs r5, r0, r1 cmp r6, r8 ble _0801E35E b _0801E45E _0801E35E: mov r1, r8 lsls r0, r1, #2 ldr r4, _0801E3B4 @ =gUnk_02018EE0 adds r0, r0, r4 str r0, [sp, #0x10] mov r1, sb mov r0, r8 muls r0, r1, r0 str r0, [sp, #0x14] movs r3, #0 _0801E372: adds r0, r3, #0 mov r1, sl str r3, [sp, #0x18] bl Div adds r4, r0, #0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 str r4, [sp, #0x1c] ldr r0, [sp, #0x14] mov r1, sl bl Div lsls r0, r0, #0x10 lsrs r0, r0, #0x10 lsls r2, r6, #2 ldr r4, _0801E3B4 @ =gUnk_02018EE0 adds r1, r2, r4 str r0, [r1] ldr r0, [sp, #0x1c] ldr r1, [sp, #0x10] str r0, [r1] ldr r3, [sp, #0x18] cmp r5, #0 bge _0801E3B8 adds r0, r5, #6 adds r5, r0, r2 b _0801E3D2 .align 2, 0 _0801E3AC: .4byte gUnk_03003DE4 _0801E3B0: .4byte gUnk_02017AA0 _0801E3B4: .4byte gUnk_02018EE0 _0801E3B8: adds r1, r5, #0 adds r1, #0xa subs r0, r6, r7 lsls r0, r0, #2 adds r5, r1, r0 ldr r4, [sp, #0x10] subs r4, #4 str r4, [sp, #0x10] ldr r0, [sp, #0x14] mov r1, sb subs r0, r0, r1 str r0, [sp, #0x14] subs r7, #1 _0801E3D2: add r3, sb adds r6, #1 cmp r6, r7 ble _0801E372 b _0801E45E _0801E3DC: movs r6, #0 mov r8, sb mov r7, r8 mov r4, r8 lsls r1, r4, #1 movs r0, #3 subs r5, r0, r1 cmp r6, r8 bgt _0801E45E lsls r0, r4, #2 ldr r1, _0801E438 @ =gUnk_02018EE0 adds r0, r0, r1 str r0, [sp, #8] mov r0, sl mov r4, r8 muls r4, r0, r4 str r4, [sp, #0xc] movs r3, #0 _0801E400: adds r0, r3, #0 mov r1, sb str r3, [sp, #0x18] bl Div adds r4, r0, #0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 str r4, [sp, #0x1c] ldr r0, [sp, #0xc] mov r1, sb bl Div lsls r0, r0, #0x10 lsrs r0, r0, #0x10 lsls r2, r6, #2 ldr r4, _0801E438 @ =gUnk_02018EE0 adds r1, r2, r4 str r0, [r1] ldr r0, [sp, #0x1c] ldr r1, [sp, #8] str r0, [r1] ldr r3, [sp, #0x18] cmp r5, #0 bge _0801E43C adds r0, r5, #6 adds r5, r0, r2 b _0801E456 .align 2, 0 _0801E438: .4byte gUnk_02018EE0 _0801E43C: adds r1, r5, #0 adds r1, #0xa subs r0, r6, r7 lsls r0, r0, #2 adds r5, r1, r0 ldr r4, [sp, #8] subs r4, #4 str r4, [sp, #8] ldr r0, [sp, #0xc] mov r1, sl subs r0, r0, r1 str r0, [sp, #0xc] subs r7, #1 _0801E456: add r3, sl adds r6, #1 cmp r6, r7 ble _0801E400 _0801E45E: ldr r0, [sp] ldr r1, [sp, #4] mov r2, r8 bl sub_0801E290 ldr r0, _0801E48C @ =gUnk_03003DE4 ldrb r1, [r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 ldr r1, _0801E490 @ =gUnk_02017AA0 adds r0, r0, r1 ldr r1, _0801E494 @ =0x04000040 ldr r2, _0801E498 @ =0xA2600001 bl sub_0805622C add sp, #0x20 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _0801E48C: .4byte gUnk_03003DE4 _0801E490: .4byte gUnk_02017AA0 _0801E494: .4byte 0x04000040 _0801E498: .4byte 0xA2600001 thumb_func_start sub_0801E49C sub_0801E49C: @ 0x0801E49C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 mov r8, r0 str r1, [sp, #4] mov sb, r2 adds r5, r3, #0 ldr r0, _0801E5E4 @ =0x0000FFFF movs r2, #0xf0 lsls r2, r2, #3 ldr r1, _0801E5E8 @ =gUnk_02018EE0 bl sub_0801D5EC adds r3, r5, #0 subs r3, #0x40 movs r2, #0xff ands r3, r2 ldr r1, _0801E5EC @ =gUnk_080C9160 adds r0, r3, #0 adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r1 movs r4, #0 ldrsh r0, [r0, r4] mov r4, sb muls r4, r0, r4 adds r0, r4, #0 asrs r0, r0, #8 mov r4, r8 adds r7, r4, r0 lsls r0, r3, #1 adds r0, r0, r1 movs r3, #0 ldrsh r0, [r0, r3] mov r4, sb muls r4, r0, r4 adds r0, r4, #0 asrs r0, r0, #8 ldr r3, [sp, #4] adds r3, r3, r0 mov sl, r3 adds r3, r5, #0 adds r3, #0x68 ands r3, r2 adds r0, r3, #0 adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r1 movs r4, #0 ldrsh r0, [r0, r4] mov r4, sb muls r4, r0, r4 adds r0, r4, #0 asrs r0, r0, #8 mov r4, r8 adds r6, r4, r0 lsls r0, r3, #1 adds r0, r0, r1 movs r3, #0 ldrsh r0, [r0, r3] mov r4, sb muls r4, r0, r4 adds r0, r4, #0 asrs r0, r0, #8 ldr r3, [sp, #4] adds r4, r3, r0 adds r3, r5, #0 subs r3, #0xe8 ands r3, r2 adds r0, r3, #0 adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] mov r2, sb muls r2, r0, r2 adds r0, r2, #0 asrs r0, r0, #8 mov r2, r8 adds r5, r2, r0 lsls r0, r3, #1 adds r0, r0, r1 movs r3, #0 ldrsh r0, [r0, r3] mov r1, sb muls r1, r0, r1 adds r0, r1, #0 asrs r0, r0, #8 ldr r2, [sp, #4] adds r2, r2, r0 mov r8, r2 movs r0, #0 str r0, [sp] adds r0, r7, #0 mov r1, sl adds r2, r6, #0 adds r3, r4, #0 bl sub_0801E64C movs r0, #1 str r0, [sp] adds r0, r7, #0 mov r1, sl adds r2, r5, #0 mov r3, r8 bl sub_0801E64C movs r0, #2 str r0, [sp] adds r0, r6, #0 adds r1, r4, #0 adds r2, r5, #0 mov r3, r8 bl sub_0801E64C ldr r5, _0801E5F0 @ =gUnk_03003DE4 ldrb r1, [r5] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 ldr r6, _0801E5F4 @ =gUnk_02017AA0 adds r0, r0, r6 movs r1, #0xa0 lsls r1, r1, #4 bl sub_0801D630 ldr r2, _0801E5E8 @ =gUnk_02018EE0 ldrb r1, [r5] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 adds r1, r0, r6 movs r3, #0xa0 mov sl, r3 _0801E5B0: ldr r7, [r2] ldr r6, [r2, #4] ldr r5, [r2, #8] adds r2, #0xc cmp r7, r6 ble _0801E5C2 adds r4, r7, #0 adds r7, r6, #0 adds r6, r4, #0 _0801E5C2: cmp r7, r5 ble _0801E5CC adds r4, r7, #0 adds r7, r5, #0 adds r5, r4, #0 _0801E5CC: cmp r6, r5 ble _0801E5D6 adds r4, r6, #0 adds r6, r5, #0 adds r5, r4, #0 _0801E5D6: movs r0, #1 rsbs r0, r0, #0 cmp r7, r0 beq _0801E5F8 strb r5, [r1] strb r7, [r1, #1] b _0801E60A .align 2, 0 _0801E5E4: .4byte 0x0000FFFF _0801E5E8: .4byte gUnk_02018EE0 _0801E5EC: .4byte gUnk_080C9160 _0801E5F0: .4byte gUnk_03003DE4 _0801E5F4: .4byte gUnk_02017AA0 _0801E5F8: cmp r6, r7 beq _0801E602 strb r5, [r1] strb r6, [r1, #1] b _0801E60A _0801E602: cmp r5, r7 beq _0801E60A strb r7, [r1, #1] strb r7, [r1] _0801E60A: movs r4, #1 rsbs r4, r4, #0 add sl, r4 adds r1, #2 mov r0, sl cmp r0, #0 bgt _0801E5B0 ldr r0, _0801E63C @ =gUnk_03003DE4 ldrb r1, [r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 ldr r1, _0801E640 @ =gUnk_02017AA0 adds r0, r0, r1 ldr r1, _0801E644 @ =0x04000040 ldr r2, _0801E648 @ =0xA2600001 bl sub_0805622C 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 _0801E63C: .4byte gUnk_03003DE4 _0801E640: .4byte gUnk_02017AA0 _0801E644: .4byte 0x04000040 _0801E648: .4byte 0xA2600001 thumb_func_start sub_0801E64C sub_0801E64C: @ 0x0801E64C push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r4, r1, #0 adds r6, r3, #0 ldr r7, _0801E6C4 @ =gUnk_02018EE0 cmp r4, #0 bge _0801E65E cmp r6, #0 blt _0801E6C2 _0801E65E: cmp r4, #0x9f ble _0801E666 cmp r6, #0x9f bgt _0801E6C2 _0801E666: cmp r4, r6 ble _0801E676 adds r1, r4, #0 adds r4, r6, #0 adds r6, r1, #0 adds r1, r5, #0 adds r5, r2, #0 adds r2, r1, #0 _0801E676: cmp r4, r6 beq _0801E6C2 subs r0, r2, r5 lsls r0, r0, #0x10 subs r1, r6, r4 bl Div adds r3, r0, #0 cmp r4, #0 bge _0801E694 rsbs r0, r4, #0 muls r0, r3, r0 asrs r0, r0, #0x10 adds r5, r5, r0 movs r4, #0 _0801E694: cmp r6, #0x9f ble _0801E69A movs r6, #0x9f _0801E69A: lsls r2, r5, #0x10 lsls r0, r4, #1 adds r0, r0, r4 ldr r1, [sp, #0x14] adds r0, r0, r1 lsls r0, r0, #2 adds r7, r0, r7 _0801E6A8: cmp r5, #0 bge _0801E6AE movs r5, #0 _0801E6AE: cmp r5, #0xf0 ble _0801E6B4 movs r5, #0xf0 _0801E6B4: str r5, [r7] adds r2, r2, r3 asrs r5, r2, #0x10 adds r4, #1 adds r7, #0xc cmp r4, r6 ble _0801E6A8 _0801E6C2: pop {r4, r5, r6, r7, pc} .align 2, 0 _0801E6C4: .4byte gUnk_02018EE0 thumb_func_start sub_0801E6C8 sub_0801E6C8: @ 0x0801E6C8 push {r4, r5, r6, lr} adds r4, r0, #0 subs r0, r4, #1 cmp r0, #0x63 bhi _0801E722 movs r1, #0 ldr r5, _0801E724 @ =gUnk_02022740 ldr r3, _0801E728 @ =gUnk_02002C01 movs r2, #0xf1 _0801E6DA: adds r0, r1, r3 ldrb r6, [r0] cmp r4, r6 bne _0801E6E4 strb r2, [r0] _0801E6E4: adds r1, #1 cmp r1, #0x7f bls _0801E6DA ldr r0, [r5, #0xc] bl sub_08002632 adds r1, r0, #0 subs r0, r1, #1 cmp r0, #0x7e bhi _0801E70A ldr r0, _0801E72C @ =gUnk_02002A40 ldr r2, _0801E730 @ =0x000001C1 adds r0, r0, r2 adds r1, r1, r0 ldrb r0, [r1] cmp r0, #0xf1 bne _0801E70A movs r0, #0xf2 strb r0, [r1] _0801E70A: movs r1, #0 ldr r0, _0801E734 @ =gUnk_03003DF0 movs r2, #0xf1 adds r0, #0xb _0801E712: ldrb r3, [r0] cmp r4, r3 bne _0801E71A strb r2, [r0] _0801E71A: adds r0, #0xc adds r1, #1 cmp r1, #0x1f bls _0801E712 _0801E722: pop {r4, r5, r6, pc} .align 2, 0 _0801E724: .4byte gUnk_02022740 _0801E728: .4byte gUnk_02002C01 _0801E72C: .4byte gUnk_02002A40 _0801E730: .4byte 0x000001C1 _0801E734: .4byte gUnk_03003DF0 thumb_func_start sub_0801E738 sub_0801E738: @ 0x0801E738 push {r4, lr} adds r4, r0, #0 bl sub_0801E82C adds r0, r4, #0 subs r0, #0x65 cmp r0, #0x10 bhi _0801E790 adds r0, r4, #0 bl sub_0801E8B0 adds r1, r0, #0 cmp r1, #0 bge _0801E76E movs r1, #0 ldr r0, _0801E794 @ =gUnk_02002A40 movs r3, #0x8c lsls r3, r3, #1 adds r2, r0, r3 ldrb r0, [r2] cmp r0, #0 beq _0801E76E _0801E764: adds r1, #1 adds r0, r1, r2 ldrb r0, [r0] cmp r0, #0 bne _0801E764 _0801E76E: cmp r1, #0x11 bhi _0801E790 ldr r2, _0801E794 @ =gUnk_02002A40 movs r3, #0x8c lsls r3, r3, #1 adds r0, r2, r3 adds r0, r1, r0 strb r4, [r0] adds r3, #0x13 adds r0, r2, r3 adds r1, r1, r0 ldrb r0, [r1] adds r0, #1 cmp r0, #0x63 ble _0801E78E movs r0, #0x63 _0801E78E: strb r0, [r1] _0801E790: pop {r4, pc} .align 2, 0 _0801E794: .4byte gUnk_02002A40 thumb_func_start sub_0801E798 sub_0801E798: @ 0x0801E798 push {r4, lr} bl sub_0801E8B0 adds r1, r0, #0 cmp r1, #0 blt _0801E7C4 ldr r2, _0801E7C8 @ =gUnk_02002A40 ldr r3, _0801E7CC @ =0x0000012B adds r0, r2, r3 adds r3, r1, r0 ldrb r0, [r3] subs r0, #1 cmp r0, #0 bgt _0801E7C2 movs r4, #0x8c lsls r4, r4, #1 adds r0, r2, r4 adds r0, r1, r0 movs r1, #0 strb r1, [r0] movs r0, #0 _0801E7C2: strb r0, [r3] _0801E7C4: pop {r4, pc} .align 2, 0 _0801E7C8: .4byte gUnk_02002A40 _0801E7CC: .4byte 0x0000012B thumb_func_start sub_0801E7D0 sub_0801E7D0: @ 0x0801E7D0 push {lr} bl sub_0801E8B0 adds r1, r0, #0 cmp r1, #0 blt _0801E7F0 ldr r0, _0801E7E8 @ =gUnk_02002A40 ldr r2, _0801E7EC @ =0x0000012B adds r0, r0, r2 adds r0, r1, r0 ldrb r0, [r0] b _0801E7F2 .align 2, 0 _0801E7E8: .4byte gUnk_02002A40 _0801E7EC: .4byte 0x0000012B _0801E7F0: movs r0, #0 _0801E7F2: pop {pc} thumb_func_start sub_0801E7F4 sub_0801E7F4: @ 0x0801E7F4 push {lr} adds r1, r0, #0 subs r0, r1, #1 cmp r0, #0x63 bhi _0801E80C ldr r0, _0801E808 @ =gUnk_02002C81 bl sub_0801D5A8 b _0801E80E .align 2, 0 _0801E808: .4byte gUnk_02002C81 _0801E80C: movs r0, #0 _0801E80E: pop {pc} thumb_func_start sub_0801E810 sub_0801E810: @ 0x0801E810 push {lr} adds r1, r0, #0 subs r0, r1, #1 cmp r0, #0x63 bhi _0801E828 ldr r0, _0801E824 @ =gUnk_02002C8E bl sub_0801D5A8 b _0801E82A .align 2, 0 _0801E824: .4byte gUnk_02002C8E _0801E828: movs r0, #0 _0801E82A: pop {pc} thumb_func_start sub_0801E82C sub_0801E82C: @ 0x0801E82C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r1, _0801E8AC @ =gUnk_02002B54 movs r5, #0 adds r2, r1, #4 _0801E83C: ldrb r0, [r2, #0x13] adds r3, r1, #4 mov sl, r3 cmp r0, #0 bne _0801E848 strb r0, [r2] _0801E848: adds r2, #1 adds r5, #1 cmp r5, #0x12 bls _0801E83C movs r0, #0 strb r0, [r1, #0x16] adds r2, r1, #0 adds r2, #0x29 strb r0, [r2] movs r5, #0 movs r0, #0x17 adds r0, r0, r1 mov sb, r0 movs r3, #0x18 adds r3, r3, r1 mov r8, r3 adds r7, r1, #4 adds r6, r1, #5 _0801E86C: mov r1, sl adds r0, r1, r5 ldrb r0, [r0] subs r0, #0x65 cmp r0, #0x10 bls _0801E890 movs r4, #0x12 subs r4, r4, r5 adds r0, r6, #0 adds r1, r7, #0 adds r2, r4, #0 bl sub_0801D66C mov r0, r8 mov r1, sb adds r2, r4, #0 bl sub_0801D66C _0801E890: movs r3, #1 add sb, r3 add r8, r3 adds r7, #1 adds r6, #1 adds r5, #1 cmp r5, #0x11 bls _0801E86C pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _0801E8AC: .4byte gUnk_02002B54 thumb_func_start sub_0801E8B0 sub_0801E8B0: @ 0x0801E8B0 push {lr} adds r2, r0, #0 movs r1, #0 ldr r3, _0801E8C4 @ =gUnk_02002B58 _0801E8B8: adds r0, r1, r3 ldrb r0, [r0] cmp r2, r0 bne _0801E8C8 adds r0, r1, #0 b _0801E8D2 .align 2, 0 _0801E8C4: .4byte gUnk_02002B58 _0801E8C8: adds r1, #1 cmp r1, #0x11 bls _0801E8B8 movs r0, #1 rsbs r0, r0, #0 _0801E8D2: pop {pc} thumb_func_start sub_0801E8D4 sub_0801E8D4: @ 0x0801E8D4 push {r4, r5, lr} movs r5, #0xa _0801E8D8: adds r0, r5, #0 bl sub_0801E7F4 cmp r0, #0 beq _0801E990 adds r0, r5, #0 bl sub_0801E810 cmp r0, #0 bne _0801E990 ldr r1, _0801E910 @ =gUnk_080C9CBC lsls r0, r5, #3 adds r0, r0, r1 ldrb r1, [r0, #4] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, _0801E914 @ =gUnk_080FE320 adds r2, r0, r1 ldrh r3, [r2, #0x12] ldrb r0, [r2, #0x10] cmp r0, #0xa bhi _0801E97C lsls r0, r0, #2 ldr r1, _0801E918 @ =_0801E91C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801E910: .4byte gUnk_080C9CBC _0801E914: .4byte gUnk_080FE320 _0801E918: .4byte _0801E91C _0801E91C: @ jump table .4byte _0801E948 @ case 0 .4byte _0801E94C @ case 1 .4byte _0801E950 @ case 2 .4byte _0801E954 @ case 3 .4byte _0801E958 @ case 4 .4byte _0801E95C @ case 5 .4byte _0801E962 @ case 6 .4byte _0801E968 @ case 7 .4byte _0801E96E @ case 8 .4byte _0801E972 @ case 9 .4byte _0801E978 @ case 10 _0801E948: movs r4, #0 b _0801E97C _0801E94C: ldrb r4, [r2, #0x11] b _0801E97C _0801E950: movs r4, #0xf b _0801E97C _0801E954: movs r4, #0x10 b _0801E97C _0801E958: movs r4, #0x11 b _0801E97C _0801E95C: movs r4, #4 movs r3, #0x83 b _0801E97C _0801E962: movs r4, #4 movs r3, #0x84 b _0801E97C _0801E968: movs r4, #4 movs r3, #0x87 b _0801E97C _0801E96E: movs r4, #4 b _0801E97A _0801E972: movs r4, #4 movs r3, #0x8b b _0801E97C _0801E978: movs r4, #5 _0801E97A: movs r3, #0x88 _0801E97C: adds r0, r4, #0 adds r1, r3, #0 bl sub_0807CB24 cmp r0, #0 beq _0801E990 ldr r0, _0801E998 @ =gUnk_02002C8E adds r1, r5, #0 bl sub_0801D5BC _0801E990: adds r5, #1 cmp r5, #0x64 bls _0801E8D8 pop {r4, r5, pc} .align 2, 0 _0801E998: .4byte gUnk_02002C8E thumb_func_start sub_0801E99C sub_0801E99C: @ 0x0801E99C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} bl sub_08002632 mov r8, r0 ldr r1, _0801E9E4 @ =gUnk_08001DCC lsls r0, r0, #2 adds r0, r0, r1 ldr r7, [r0] movs r0, #0x67 bl sub_0807CA84 cmp r0, #0 beq _0801EA56 ldr r1, _0801E9E8 @ =gUnk_02002A40 ldrb r0, [r7] ldrb r2, [r1, #8] cmp r0, r2 bhi _0801EA56 ldr r2, _0801E9EC @ =0x000001C1 adds r0, r1, r2 add r0, r8 ldrb r5, [r0] subs r2, #0x80 adds r0, r1, r2 add r0, r8 ldrb r6, [r0] adds r4, r6, r7 _0801E9D6: cmp r5, #0xf1 beq _0801E9F6 cmp r5, #0xf1 bhi _0801E9F0 cmp r5, #0 beq _0801E9F6 b _0801EA10 .align 2, 0 _0801E9E4: .4byte gUnk_08001DCC _0801E9E8: .4byte gUnk_02002A40 _0801E9EC: .4byte 0x000001C1 _0801E9F0: cmp r5, #0xf2 beq _0801EA0A b _0801EA10 _0801E9F6: ldrb r5, [r4, #5] cmp r5, #0 beq _0801EA10 cmp r5, #0xff beq _0801EA14 adds r0, r5, #0 bl sub_0801E7F4 cmp r0, #0 beq _0801EA10 _0801EA0A: adds r4, #1 adds r6, #1 ldrb r5, [r4, #5] _0801EA10: cmp r5, #0xff bne _0801EA1C _0801EA14: adds r0, r7, #0 bl sub_0801EA74 adds r5, r0, #0 _0801EA1C: cmp r5, #0 beq _0801EA32 cmp r5, #0xf2 beq _0801E9D6 adds r0, r5, #0 bl sub_0801E7F4 cmp r0, #0 beq _0801EA34 movs r5, #0xf1 b _0801E9D6 _0801EA32: movs r5, #0xf3 _0801EA34: ldr r1, _0801EA5C @ =gUnk_02002A40 ldr r2, _0801EA60 @ =0x000001C1 adds r0, r1, r2 add r0, r8 strb r5, [r0] subs r2, #0x80 adds r0, r1, r2 add r0, r8 strb r6, [r0] bl sub_08000E50 ldrb r4, [r7, #1] movs r1, #0x64 bl __modsi3 cmp r4, r0 bhi _0801EA64 _0801EA56: movs r0, #0 b _0801EA6E .align 2, 0 _0801EA5C: .4byte gUnk_02002A40 _0801EA60: .4byte 0x000001C1 _0801EA64: subs r0, r5, #1 cmp r0, #0x63 bls _0801EA6C movs r5, #0 _0801EA6C: adds r0, r5, #0 _0801EA6E: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0801EA74 sub_0801EA74: @ 0x0801EA74 push {r4, r5, r6, lr} bl sub_08000E50 movs r1, #0x12 bl __modsi3 adds r5, r0, #0 movs r6, #0 _0801EA84: ldr r0, _0801EA98 @ =gUnk_080CA11C adds r0, r5, r0 ldrb r4, [r0] adds r0, r4, #0 bl sub_0801E7F4 cmp r0, #0 bne _0801EA9C adds r0, r4, #0 b _0801EAAE .align 2, 0 _0801EA98: .4byte gUnk_080CA11C _0801EA9C: adds r0, r5, #1 movs r1, #0x12 bl __modsi3 adds r5, r0, #0 adds r6, #1 cmp r6, #0x11 bls _0801EA84 movs r0, #0xf2 _0801EAAE: pop {r4, r5, r6, pc} thumb_func_start sub_0801EAB0 sub_0801EAB0: @ 0x0801EAB0 push {r4, lr} adds r4, r0, #0 ldr r1, _0801EACC @ =gUnk_080CA130 bl sub_0800129E movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, pc} .align 2, 0 _0801EACC: .4byte gUnk_080CA130 thumb_func_start sub_0801EAD0 sub_0801EAD0: @ 0x0801EAD0 push {lr} ldr r2, _0801EAE4 @ =gUnk_080CA148 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0801EAE4: .4byte gUnk_080CA148 thumb_func_start sub_0801EAE8 sub_0801EAE8: @ 0x0801EAE8 push {r4, lr} adds r4, r0, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _0801EAFC adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _0801EAFC: ldr r1, _0801EB08 @ =gUnk_080CA130 adds r0, r4, #0 bl sub_0804AA30 pop {r4, pc} .align 2, 0 _0801EB08: .4byte gUnk_080CA130 thumb_func_start sub_0801EB0C sub_0801EB0C: @ 0x0801EB0C push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xa] cmp r0, #0 bne _0801EB1E adds r0, r1, #0 bl sub_0804A7D4 b _0801EB28 _0801EB1E: adds r0, r1, #0 movs r1, #0xf1 movs r2, #0 bl sub_0804A7E0 _0801EB28: pop {pc} .align 2, 0 thumb_func_start sub_0801EB2C sub_0801EB2C: @ 0x0801EB2C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #2 bhi _0801EB50 adds r0, r4, #0 bl sub_0806F520 cmp r0, #0 bne _0801EB50 adds r0, r4, #0 bl sub_0801ECFC ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 b _0801EB60 _0801EB50: ldr r0, _0801EB64 @ =gUnk_080CA158 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _0801EB60: pop {r4, pc} .align 2, 0 _0801EB64: .4byte gUnk_080CA158 thumb_func_start sub_0801EB68 sub_0801EB68: @ 0x0801EB68 movs r1, #1 strb r1, [r0, #0xd] movs r1, #0x3c strb r1, [r0, #0x1d] bx lr .align 2, 0 thumb_func_start sub_0801EB74 sub_0801EB74: @ 0x0801EB74 push {lr} bl sub_0806F4E8 pop {pc} thumb_func_start sub_0801EB7C sub_0801EB7C: @ 0x0801EB7C push {lr} bl sub_0806F3E4 pop {pc} thumb_func_start sub_0801EB84 sub_0801EB84: @ 0x0801EB84 push {lr} ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] movs r1, #2 bl sub_08004276 pop {pc} .align 2, 0 thumb_func_start nullsub_3 nullsub_3: @ 0x0801EB98 bx lr .align 2, 0 thumb_func_start sub_0801EB9C sub_0801EB9C: @ 0x0801EB9C push {lr} adds r2, r0, #0 ldrb r3, [r2, #0x10] movs r0, #0x80 ands r0, r3 lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 beq _0801EBC0 movs r0, #0x80 orrs r0, r3 strb r0, [r2, #0x10] adds r2, #0x3a ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] b _0801EBC6 _0801EBC0: adds r0, r2, #0 adds r0, #0x45 strb r1, [r0] _0801EBC6: pop {pc} thumb_func_start sub_0801EBC8 sub_0801EBC8: @ 0x0801EBC8 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 ldrb r0, [r4, #0xa] cmp r0, #2 beq _0801EBDE bl sub_08000E50 movs r1, #3 ands r0, r1 _0801EBDE: strb r0, [r4, #0x14] movs r0, #0x12 strb r0, [r4, #0x1c] adds r0, r4, #0 bl sub_0801ECFC ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 pop {r4, pc} thumb_func_start sub_0801EBF4 sub_0801EBF4: @ 0x0801EBF4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0801EC1E movs r0, #2 strb r0, [r4, #0xc] bl sub_08000E50 ldr r2, _0801EC28 @ =gUnk_080CA170 movs r1, #3 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_0801ED14 _0801EC1E: adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 _0801EC28: .4byte gUnk_080CA170 thumb_func_start sub_0801EC2C sub_0801EC2C: @ 0x0801EC2C push {r4, r5, lr} adds r5, r0, #0 bl sub_080AEF88 adds r0, r5, #0 bl sub_08004274 ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0801EC7E adds r0, r5, #0 bl sub_0801EDEC cmp r0, #0 beq _0801EC78 ldr r1, _0801EC74 @ =gUnk_080CA174 ldrb r0, [r5, #0xa] adds r0, r0, r1 ldrb r4, [r0] bl sub_08000E50 movs r1, #3 ands r0, r1 cmp r4, r0 bhi _0801EC78 strb r1, [r5, #0xc] ldrb r1, [r5, #0x14] adds r1, #4 adds r0, r5, #0 bl sub_08004260 b _0801EC7E .align 2, 0 _0801EC74: .4byte gUnk_080CA174 _0801EC78: adds r0, r5, #0 bl sub_0801ECFC _0801EC7E: pop {r4, r5, pc} thumb_func_start sub_0801EC80 sub_0801EC80: @ 0x0801EC80 push {r4, r5, lr} adds r4, r0, #0 bl sub_08004274 adds r5, r4, #0 adds r5, #0x5a ldrb r1, [r5] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0801ECD8 adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_0804A98C adds r2, r0, #0 cmp r2, #0 beq _0801ECD8 ldrb r0, [r4, #0x15] strb r0, [r2, #0x15] ldrb r1, [r4, #0x15] lsrs r1, r1, #2 ldr r0, _0801ECF0 @ =gUnk_080CA176 adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] ldrh r3, [r2, #0x2e] adds r0, r0, r3 strh r0, [r2, #0x2e] movs r0, #1 ldrsb r0, [r1, r0] ldrh r1, [r2, #0x32] adds r0, r0, r1 strh r0, [r2, #0x32] ldr r0, _0801ECF4 @ =0x0000FFFD strh r0, [r2, #0x36] ldrb r1, [r5] movs r0, #0xfe ands r0, r1 strb r0, [r5] ldr r0, _0801ECF8 @ =0x0000018D bl sub_08004488 _0801ECD8: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801ECEC adds r0, r4, #0 bl sub_0801ECFC _0801ECEC: pop {r4, r5, pc} .align 2, 0 _0801ECF0: .4byte gUnk_080CA176 _0801ECF4: .4byte 0x0000FFFD _0801ECF8: .4byte 0x0000018D thumb_func_start sub_0801ECFC sub_0801ECFC: @ 0x0801ECFC push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] bl sub_08000E50 movs r1, #0x38 ands r0, r1 adds r0, #0x18 strb r0, [r4, #0xe] pop {r4, pc} .align 2, 0 thumb_func_start sub_0801ED14 sub_0801ED14: @ 0x0801ED14 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xa] cmp r0, #2 beq _0801ED7E adds r0, r5, #0 bl sub_08049FA0 cmp r0, #0 beq _0801ED4C ldrb r0, [r5, #0xa] cmp r0, #1 bne _0801ED46 bl sub_08000E50 movs r1, #3 ands r1, r0 cmp r1, #0 bne _0801ED46 adds r0, r5, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 bne _0801EDC4 _0801ED46: bl sub_08000E50 b _0801EDD0 _0801ED4C: bl sub_08000E50 movs r1, #3 ands r1, r0 cmp r1, #0 beq _0801ED78 adds r0, r5, #0 bl sub_08049EE4 adds r4, r0, #0 bl sub_08000E50 ldr r2, _0801ED74 @ =gUnk_080CA17E movs r1, #1 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] adds r0, r0, r4 b _0801EDD0 .align 2, 0 _0801ED74: .4byte gUnk_080CA17E _0801ED78: bl sub_08000E50 b _0801EDD0 _0801ED7E: adds r0, r5, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 bne _0801EDC4 adds r0, r5, #0 bl sub_08049FA0 cmp r0, #0 beq _0801ED9A bl sub_08000E50 b _0801EDD0 _0801ED9A: bl sub_08000E50 movs r1, #3 ands r1, r0 cmp r1, #0 beq _0801EDC4 adds r0, r5, #0 bl sub_08049EE4 adds r4, r0, #0 bl sub_08000E50 ldr r2, _0801EDC0 @ =gUnk_080CA17E movs r1, #1 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] adds r0, r0, r4 b _0801EDD0 .align 2, 0 _0801EDC0: .4byte gUnk_080CA17E _0801EDC4: ldr r0, _0801EDE8 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r5, #0 bl sub_080045C4 adds r0, #4 _0801EDD0: movs r1, #0x18 ands r0, r1 strb r0, [r5, #0x15] ldrb r0, [r5, #0x15] lsrs r0, r0, #3 strb r0, [r5, #0x14] ldrb r1, [r5, #0x14] adds r0, r5, #0 bl sub_08004260 pop {r4, r5, pc} .align 2, 0 _0801EDE8: .4byte gUnk_020000B0 thumb_func_start sub_0801EDEC sub_0801EDEC: @ 0x0801EDEC push {r4, lr} adds r4, r0, #0 movs r0, #1 bl sub_08049DF4 adds r1, r0, #0 cmp r1, #0 beq _0801EE12 adds r0, r4, #0 bl sub_080045C4 adds r0, #4 movs r1, #0x18 ands r0, r1 ldrb r4, [r4, #0x15] cmp r0, r4 bne _0801EE12 movs r0, #1 b _0801EE14 _0801EE12: movs r0, #0 _0801EE14: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801EE18 sub_0801EE18: @ 0x0801EE18 push {r4, r5, lr} adds r5, r0, #0 bl sub_080012DC adds r4, r0, #0 cmp r4, #0 beq _0801EE9E cmp r4, #2 beq _0801EE40 ldr r0, _0801EE3C @ =gUnk_080012C8 lsls r1, r4, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r5, #0 bl _call_via_r1 b _0801EEE0 .align 2, 0 _0801EE3C: .4byte gUnk_080012C8 _0801EE40: adds r2, r5, #0 adds r2, #0x3a ldrb r1, [r2] movs r0, #0xfe ands r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x81 ldrb r0, [r0] cmp r4, r0 beq _0801EE9E ldrb r0, [r5, #0xa] cmp r0, #1 beq _0801EE9E cmp r0, #1 bgt _0801EE66 cmp r0, #0 beq _0801EE6C b _0801EE9E _0801EE66: cmp r0, #2 beq _0801EE96 b _0801EE9E _0801EE6C: ldrb r1, [r5, #0x10] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801EE9E movs r0, #6 strb r0, [r5, #0xc] movs r0, #0x7f ands r0, r1 strb r0, [r5, #0x10] movs r0, #0x20 strh r0, [r5, #0x24] adds r1, r5, #0 adds r1, #0x3f movs r0, #0x5c strb r0, [r1] adds r0, r5, #0 movs r1, #5 bl sub_08004260 b _0801EE9E _0801EE96: adds r0, r5, #0 bl sub_080043A8 b _0801EEE0 _0801EE9E: adds r0, r5, #0 adds r0, #0x81 strb r4, [r0] ldr r4, _0801EED0 @ =gUnk_080CA21C adds r0, r5, #0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 ldr r0, [r5, #0x68] ldrb r0, [r0, #0xa] cmp r0, #0x1c bne _0801EED4 movs r3, #0x10 rsbs r3, r3, #0 adds r0, r5, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC b _0801EEE0 .align 2, 0 _0801EED0: .4byte gUnk_080CA21C _0801EED4: ldrb r0, [r5, #0xa] cmp r0, #2 bne _0801EEE0 adds r0, r5, #0 bl sub_0801FB34 _0801EEE0: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0801EEE4 sub_0801EEE4: @ 0x0801EEE4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #1 beq _0801EF0C cmp r0, #1 bgt _0801EEF8 cmp r0, #0 beq _0801EEFE b _0801EF38 _0801EEF8: cmp r0, #2 beq _0801EF28 b _0801EF38 _0801EEFE: adds r0, r4, #0 bl sub_0801F3AC ldr r0, _0801EF08 @ =gUnk_080CA234 b _0801EF14 .align 2, 0 _0801EF08: .4byte gUnk_080CA234 _0801EF0C: adds r0, r4, #0 bl sub_0801F764 ldr r0, _0801EF24 @ =gUnk_080CA25C _0801EF14: ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 b _0801EF38 .align 2, 0 _0801EF24: .4byte gUnk_080CA25C _0801EF28: ldr r0, _0801EF3C @ =gUnk_080CA288 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _0801EF38: pop {r4, pc} .align 2, 0 _0801EF3C: .4byte gUnk_080CA288 thumb_func_start sub_0801EF40 sub_0801EF40: @ 0x0801EF40 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #2 bne _0801EF68 adds r0, r4, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x8e beq _0801EF58 cmp r0, #0x95 bne _0801EF68 _0801EF58: ldrb r0, [r4, #0x10] movs r1, #0x7f ands r1, r0 movs r0, #0 strb r1, [r4, #0x10] adds r1, r4, #0 adds r1, #0x45 strb r0, [r1] _0801EF68: adds r0, r4, #0 adds r0, #0x45 ldrb r6, [r0] adds r7, r0, #0 cmp r6, #0 beq _0801EFB0 subs r0, #4 ldrb r0, [r0] cmp r0, #0x94 bne _0801EF94 adds r0, r4, #0 bl sub_0801FB68 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC adds r0, r4, #0 movs r1, #6 bl sub_08004260 b _0801EFC0 _0801EF94: adds r0, r4, #0 adds r0, #0x80 ldrb r1, [r0] adds r5, r0, #0 cmp r1, r6 beq _0801EFC4 adds r0, r4, #0 bl sub_0801FB68 adds r0, r4, #0 movs r1, #6 bl sub_08004260 b _0801EFC4 _0801EFB0: adds r0, r4, #0 bl sub_0804AA1C str r6, [r4, #0x20] adds r0, r4, #0 movs r1, #9 bl sub_08004260 _0801EFC0: adds r5, r4, #0 adds r5, #0x80 _0801EFC4: ldrb r0, [r7] strb r0, [r5] ldr r1, _0801EFD4 @ =gUnk_080CA21C adds r0, r4, #0 bl sub_0804AA30 pop {r4, r5, r6, r7, pc} .align 2, 0 _0801EFD4: .4byte gUnk_080CA21C thumb_func_start sub_0801EFD8 sub_0801EFD8: @ 0x0801EFD8 push {r4, lr} adds r4, r0, #0 bl sub_0806F520 cmp r0, #0 bne _0801F000 adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _0801F000 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC adds r0, r4, #0 movs r1, #6 bl sub_08004260 b _0801F028 _0801F000: adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #8 beq _0801F018 adds r0, r4, #0 bl sub_0801FB68 adds r0, r4, #0 movs r1, #8 bl sub_08004260 _0801F018: movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 adds r0, r4, #0 bl sub_08004274 _0801F028: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F02C sub_0801F02C: @ 0x0801F02C push {r4, lr} adds r4, r0, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #6 bne _0801F03E adds r0, r4, #0 bl sub_08004274 _0801F03E: adds r0, r4, #0 bl sub_08001318 pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F048 sub_0801F048: @ 0x0801F048 push {r4, lr} adds r4, r0, #0 movs r1, #0xc0 lsls r1, r1, #5 bl sub_08003FC4 adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0xa] cmp r0, #0 bne _0801F068 adds r0, r4, #0 bl sub_0804A7D4 b _0801F082 _0801F068: cmp r0, #1 bne _0801F078 adds r0, r4, #0 movs r1, #0xf2 movs r2, #0 bl sub_0804A7E0 b _0801F082 _0801F078: adds r0, r4, #0 movs r1, #0xf1 movs r2, #0 bl sub_0804A7E0 _0801F082: pop {r4, pc} thumb_func_start sub_0801F084 sub_0801F084: @ 0x0801F084 push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0801F09A adds r0, r4, #0 bl sub_08004274 _0801F09A: adds r0, r4, #0 bl sub_08001242 pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F0A4 sub_0801F0A4: @ 0x0801F0A4 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r2, #0 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x45 ldrb r1, [r0] adds r0, #0x3b strb r1, [r0] adds r4, #0x82 strb r2, [r4] pop {r4, pc} .align 2, 0 thumb_func_start nullsub_4 nullsub_4: @ 0x0801F0C4 bx lr .align 2, 0 thumb_func_start sub_0801F0C8 sub_0801F0C8: @ 0x0801F0C8 push {r4, r5, lr} adds r5, r0, #0 bl sub_08004274 adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F12A movs r4, #3 movs r0, #3 strb r0, [r5, #0xc] bl sub_08000E50 ands r0, r4 adds r0, #0xc strb r0, [r5, #0xe] bl sub_08000E50 strb r0, [r5, #0xf] adds r0, r5, #0 movs r1, #1 bl sub_08049F84 strb r0, [r5, #0x15] ldrb r1, [r5, #0x10] movs r0, #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 movs r1, #0x39 rsbs r1, r1, #0 ands r0, r1 movs r1, #0x18 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 movs r1, #2 bl sub_08004260 _0801F12A: pop {r4, r5, pc} thumb_func_start sub_0801F12C sub_0801F12C: @ 0x0801F12C push {r4, lr} adds r4, r0, #0 bl sub_0801FBD0 cmp r0, #0 beq _0801F140 adds r0, r4, #0 bl sub_0801F328 b _0801F1AC _0801F140: ldrb r1, [r4, #0xf] adds r0, r1, #1 strb r0, [r4, #0xf] movs r0, #7 ands r0, r1 cmp r0, #0 bne _0801F158 adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] _0801F158: adds r0, r4, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0801F1AC adds r0, r4, #0 movs r1, #1 movs r2, #0x38 bl sub_08049F64 cmp r0, #0 beq _0801F18A movs r0, #4 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0801FBE4 b _0801F1AC _0801F18A: adds r0, r4, #0 movs r1, #1 movs r2, #0x48 bl sub_08049F64 cmp r0, #0 beq _0801F1A6 bl sub_08000E50 movs r1, #3 ands r0, r1 adds r0, #0xc strb r0, [r4, #0xe] b _0801F1AC _0801F1A6: adds r0, r4, #0 bl sub_0801F328 _0801F1AC: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F1B0 sub_0801F1B0: @ 0x0801F1B0 push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0801F1FA movs r0, #1 ands r0, r1 cmp r0, #0 beq _0801F1DE movs r0, #1 eors r0, r1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x5a strb r0, [r1] adds r0, #0xd1 bl sub_08004488 _0801F1DE: adds r0, r4, #0 bl sub_080AEFE0 movs r1, #0x80 lsls r1, r1, #7 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _0801F200 adds r0, r4, #0 bl sub_08004274 b _0801F200 _0801F1FA: adds r0, r4, #0 bl sub_08004274 _0801F200: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F226 adds r0, r4, #0 bl sub_0801FBD0 cmp r0, #0 beq _0801F220 adds r0, r4, #0 bl sub_0801F328 b _0801F226 _0801F220: adds r0, r4, #0 bl sub_0801F340 _0801F226: pop {r4, pc} thumb_func_start sub_0801F228 sub_0801F228: @ 0x0801F228 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0801F246 movs r0, #3 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] _0801F246: adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F250 sub_0801F250: @ 0x0801F250 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F26C adds r0, r4, #0 bl sub_0801F360 _0801F26C: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F270 sub_0801F270: @ 0x0801F270 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xf] adds r0, r1, #1 strb r0, [r4, #0xf] movs r0, #7 ands r0, r1 cmp r0, #0 bne _0801F28C adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] _0801F28C: adds r0, r4, #0 bl sub_080AF160 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0801FBD0 cmp r0, #0 bne _0801F2CA ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0801F2CA adds r0, r4, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #0 bne _0801F2C6 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #4 bl sub_08004260 b _0801F2CA _0801F2C6: movs r0, #8 strb r0, [r4, #0xe] _0801F2CA: pop {r4, pc} thumb_func_start sub_0801F2CC sub_0801F2CC: @ 0x0801F2CC push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F2F6 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 bl sub_08004260 _0801F2F6: pop {r4, pc} thumb_func_start sub_0801F2F8 sub_0801F2F8: @ 0x0801F2F8 push {r4, lr} adds r4, r0, #0 movs r1, #0xc0 lsls r1, r1, #5 bl sub_08003FC4 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F324 adds r0, r4, #0 bl sub_0801F340 adds r0, r4, #0 bl sub_0804AA1C _0801F324: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F328 sub_0801F328: @ 0x0801F328 push {lr} movs r1, #6 strb r1, [r0, #0xc] ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] movs r1, #5 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_0801F340 sub_0801F340: @ 0x0801F340 push {lr} movs r1, #5 strb r1, [r0, #0xc] movs r1, #0x3c strb r1, [r0, #0xe] movs r1, #0x20 strh r1, [r0, #0x24] adds r2, r0, #0 adds r2, #0x3f movs r1, #0x5c strb r1, [r2] movs r1, #2 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_0801F360 sub_0801F360: @ 0x0801F360 push {r4, lr} adds r4, r0, #0 movs r0, #7 strb r0, [r4, #0xc] bl sub_08000E50 movs r1, #0x38 ands r0, r1 adds r0, #0xb4 strb r0, [r4, #0xe] bl sub_08000E50 strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x10 orrs r0, r1 movs r1, #8 rsbs r1, r1, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #1 bl sub_08004260 pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F3AC sub_0801F3AC: @ 0x0801F3AC push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #9 beq _0801F426 cmp r0, #0 beq _0801F426 adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0801F408 adds r5, r4, #0 adds r5, #0x82 ldrb r0, [r5] cmp r0, #0 bne _0801F3DE adds r0, r4, #0 movs r1, #1 movs r2, #0x48 bl sub_08049F64 cmp r0, #0 beq _0801F400 _0801F3DE: ldrb r2, [r4, #0xc] cmp r2, #1 bne _0801F426 movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #6 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] strb r2, [r5] adds r0, r4, #0 movs r1, #0 bl sub_08004260 b _0801F426 _0801F400: ldrb r0, [r4, #0xc] cmp r0, #3 bne _0801F426 b _0801F40E _0801F408: ldrb r0, [r4, #0xc] cmp r0, #3 bne _0801F416 _0801F40E: adds r0, r4, #0 bl sub_0801F328 b _0801F426 _0801F416: cmp r0, #7 bne _0801F426 movs r0, #8 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #7 bl sub_08004260 _0801F426: pop {r4, r5, pc} thumb_func_start sub_0801F428 sub_0801F428: @ 0x0801F428 push {r4, r5, lr} adds r5, r0, #0 bl sub_0804A720 movs r4, #0 movs r0, #1 strb r0, [r5, #0xc] bl sub_08000E50 strb r0, [r5, #0xe] adds r0, r5, #0 adds r0, #0x45 ldrb r1, [r0] adds r0, #0x3b strb r1, [r0] adds r0, #2 strb r4, [r0] ldrb r0, [r5, #0xb] cmp r0, #0 beq _0801F488 movs r0, #3 strb r0, [r5, #0xc] movs r0, #0x1e strb r0, [r5, #0xf] 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, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x18 orrs r0, r1 strb r0, [r2] ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r5, #0x18] adds r0, r5, #0 movs r1, #2 bl sub_08004260 _0801F488: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0801F48C sub_0801F48C: @ 0x0801F48C push {lr} bl sub_08004274 pop {pc} thumb_func_start sub_0801F494 sub_0801F494: @ 0x0801F494 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F4E8 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] 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, #0x18 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #2 bl sub_08004260 _0801F4E8: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F4EC sub_0801F4EC: @ 0x0801F4EC push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0801F504 movs r0, #4 strb r0, [r4, #0xc] _0801F504: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F508 sub_0801F508: @ 0x0801F508 push {r4, r5, lr} adds r4, r0, #0 bl sub_0801FBD0 cmp r0, #0 beq _0801F51C adds r1, r4, #0 adds r1, #0x83 movs r0, #0 b _0801F55C _0801F51C: ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] movs r1, #0xff adds r5, r0, #0 ands r5, r1 movs r0, #7 ands r5, r0 cmp r5, #0 bne _0801F566 adds r0, r4, #0 movs r1, #1 movs r2, #0x38 bl sub_08049F64 cmp r0, #0 beq _0801F566 bl sub_08000E50 movs r1, #1 ands r1, r0 cmp r1, #0 beq _0801F556 movs r0, #5 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0801FBE4 b _0801F580 _0801F556: adds r1, r4, #0 adds r1, #0x83 movs r0, #0x78 _0801F55C: strb r0, [r1] adds r0, r4, #0 bl sub_0801F730 b _0801F580 _0801F566: cmp r5, #4 bne _0801F574 adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] _0801F574: adds r0, r4, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_08004274 _0801F580: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0801F584 sub_0801F584: @ 0x0801F584 push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0801F5CE movs r0, #1 ands r0, r1 cmp r0, #0 beq _0801F5B2 movs r0, #1 eors r0, r1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x5b strb r0, [r1] adds r0, #0xd0 bl sub_08004488 _0801F5B2: adds r0, r4, #0 bl sub_080AEFE0 movs r1, #0x80 lsls r1, r1, #7 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _0801F5D4 adds r0, r4, #0 bl sub_08004274 b _0801F5D4 _0801F5CE: adds r0, r4, #0 bl sub_08004274 _0801F5D4: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F618 adds r0, r4, #0 bl sub_0801FBD0 cmp r0, #0 beq _0801F5FC adds r1, r4, #0 adds r1, #0x83 movs r0, #0 strb r0, [r1] adds r0, r4, #0 bl sub_0801F730 b _0801F618 _0801F5FC: movs r0, #6 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xf] movs r0, #0x20 strh r0, [r4, #0x24] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x5c strb r0, [r1] adds r0, r4, #0 movs r1, #2 bl sub_08004260 _0801F618: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F61C sub_0801F61C: @ 0x0801F61C push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xf] subs r0, #1 strb r0, [r1, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0801F630 movs r0, #4 strb r0, [r1, #0xc] _0801F630: adds r0, r1, #0 bl sub_08004274 pop {pc} thumb_func_start sub_0801F638 sub_0801F638: @ 0x0801F638 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F684 movs r0, #8 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x10 orrs r0, r1 movs r1, #8 rsbs r1, r1, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _0801F684: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F688 sub_0801F688: @ 0x0801F688 push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x83 ldrb r0, [r5] cmp r0, #0 beq _0801F69A subs r0, #1 strb r0, [r5] _0801F69A: adds r0, r4, #0 bl sub_0801FBD0 cmp r0, #0 bne _0801F6AA ldrb r0, [r5] cmp r0, #0 beq _0801F6C2 _0801F6AA: adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_080AF160 adds r0, r4, #0 bl sub_08004274 b _0801F6C8 _0801F6C2: adds r0, r4, #0 bl sub_0801F748 _0801F6C8: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0801F6CC sub_0801F6CC: @ 0x0801F6CC push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F6F6 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 bl sub_08004260 _0801F6F6: pop {r4, pc} thumb_func_start sub_0801F6F8 sub_0801F6F8: @ 0x0801F6F8 push {r4, lr} adds r4, r0, #0 movs r1, #0xc0 lsls r1, r1, #5 bl sub_08003FC4 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F72E movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x20 strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_0804AA1C adds r0, r4, #0 movs r1, #2 bl sub_08004260 _0801F72E: pop {r4, pc} thumb_func_start sub_0801F730 sub_0801F730: @ 0x0801F730 push {lr} movs r1, #7 strb r1, [r0, #0xc] ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] movs r1, #5 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_0801F748 sub_0801F748: @ 0x0801F748 push {lr} movs r1, #2 strb r1, [r0, #0xc] ldrb r2, [r0, #0x18] subs r1, #6 ands r1, r2 movs r2, #1 orrs r1, r2 strb r1, [r0, #0x18] movs r1, #4 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_0801F764 sub_0801F764: @ 0x0801F764 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0xa beq _0801F7D6 cmp r0, #0 beq _0801F7D6 adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0801F7B8 ldrb r6, [r4, #0xc] cmp r6, #1 bne _0801F7D6 adds r5, r4, #0 adds r5, #0x82 ldrb r0, [r5] cmp r0, #0 bne _0801F79C adds r0, r4, #0 movs r1, #1 movs r2, #0x48 bl sub_08049F64 cmp r0, #0 beq _0801F7D6 _0801F79C: movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #6 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] strb r6, [r5] adds r0, r4, #0 movs r1, #0 bl sub_08004260 b _0801F7D6 _0801F7B8: ldrb r0, [r4, #0xc] cmp r0, #4 bne _0801F7C6 adds r0, r4, #0 bl sub_0801F730 b _0801F7D6 _0801F7C6: cmp r0, #8 bne _0801F7D6 movs r0, #9 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #7 bl sub_08004260 _0801F7D6: pop {r4, r5, r6, pc} thumb_func_start sub_0801F7D8 sub_0801F7D8: @ 0x0801F7D8 push {r4, r5, lr} adds r4, r0, #0 bl sub_0804A720 movs r5, #0 movs r0, #1 strb r0, [r4, #0xc] bl sub_08000E50 strb r0, [r4, #0xe] adds r0, r4, #0 adds r0, #0x45 ldrb r1, [r0] adds r0, #0x3b strb r1, [r0] adds r4, #0x82 strb r5, [r4] pop {r4, r5, pc} thumb_func_start sub_0801F7FC sub_0801F7FC: @ 0x0801F7FC push {r4, r5, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0801F83E adds r5, r4, #0 adds r5, #0x82 ldrb r0, [r5] cmp r0, #0 bne _0801F822 adds r0, r4, #0 movs r1, #1 movs r2, #0x48 bl sub_08049F64 cmp r0, #0 beq _0801F83E _0801F822: movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #6 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #1 strb r0, [r5] adds r0, r4, #0 movs r1, #0 bl sub_08004260 _0801F83E: pop {r4, r5, pc} thumb_func_start sub_0801F840 sub_0801F840: @ 0x0801F840 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F880 adds r0, r4, #0 bl sub_0801FB14 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, #0x18 orrs r0, r1 strb r0, [r2] _0801F880: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F884 sub_0801F884: @ 0x0801F884 push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xf] cmp r0, #0 beq _0801F898 subs r0, #1 strb r0, [r4, #0xf] b _0801F8BC _0801F898: adds r0, r4, #0 movs r1, #0x1b bl sub_0804A9FC adds r1, r0, #0 cmp r1, #0 beq _0801F8BC movs r0, #0x40 strb r0, [r1, #0xb] movs r0, #4 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x3f movs r0, #0xa5 strb r0, [r1] adds r0, #0xee bl sub_08004488 _0801F8BC: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F8C0 sub_0801F8C0: @ 0x0801F8C0 push {r4, r5, lr} adds r4, r0, #0 bl sub_0801FBD0 cmp r0, #0 beq _0801F8D4 adds r0, r4, #0 bl sub_0801FAE0 b _0801F938 _0801F8D4: adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 bne _0801F8E8 adds r0, r4, #0 bl sub_0801F730 b _0801F938 _0801F8E8: ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] movs r1, #0xff adds r5, r0, #0 ands r5, r1 movs r0, #7 ands r5, r0 cmp r5, #0 bne _0801F91C ldr r0, _0801F918 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 movs r2, #0x38 bl sub_08049F1C cmp r0, #0 beq _0801F91C movs r0, #5 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0801FBE4 b _0801F938 .align 2, 0 _0801F918: .4byte gUnk_020000B0 _0801F91C: cmp r5, #4 bne _0801F92C ldr r0, _0801F93C @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] _0801F92C: adds r0, r4, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_08004274 _0801F938: pop {r4, r5, pc} .align 2, 0 _0801F93C: .4byte gUnk_020000B0 thumb_func_start sub_0801F940 sub_0801F940: @ 0x0801F940 push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0801F988 movs r0, #1 ands r0, r1 cmp r0, #0 beq _0801F966 movs r0, #1 eors r0, r1 strb r0, [r2] ldr r0, _0801F984 @ =0x0000012B bl sub_08004488 _0801F966: adds r0, r4, #0 bl sub_080AEFE0 movs r1, #0x80 lsls r1, r1, #7 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _0801F98E adds r0, r4, #0 bl sub_08004274 b _0801F98E .align 2, 0 _0801F984: .4byte 0x0000012B _0801F988: adds r0, r4, #0 bl sub_08004274 _0801F98E: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F9C2 adds r0, r4, #0 bl sub_0801FBD0 cmp r0, #0 beq _0801F9AE adds r0, r4, #0 bl sub_0801FAE0 b _0801F9C2 _0801F9AE: movs r0, #6 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xf] movs r0, #0x20 strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #2 bl sub_08004260 _0801F9C2: pop {r4, pc} thumb_func_start sub_0801F9C4 sub_0801F9C4: @ 0x0801F9C4 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xf] subs r0, #1 strb r0, [r1, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0801F9D8 movs r0, #4 strb r0, [r1, #0xc] _0801F9D8: adds r0, r1, #0 bl sub_08004274 pop {pc} thumb_func_start sub_0801F9E0 sub_0801F9E0: @ 0x0801F9E0 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801FA2C movs r0, #8 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x10 orrs r0, r1 movs r1, #8 rsbs r1, r1, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _0801FA2C: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801FA30 sub_0801FA30: @ 0x0801FA30 push {r4, lr} adds r4, r0, #0 bl sub_0801FBD0 cmp r0, #0 beq _0801FA54 adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_080AF160 adds r0, r4, #0 bl sub_08004274 b _0801FA74 _0801FA54: adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 bne _0801FA6E movs r0, #9 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #7 bl sub_08004260 b _0801FA74 _0801FA6E: adds r0, r4, #0 bl sub_0801FAF8 _0801FA74: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801FA78 sub_0801FA78: @ 0x0801FA78 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801FAA8 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 bl sub_08004260 adds r0, r4, #0 bl sub_0804AA1C _0801FAA8: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801FAAC sub_0801FAAC: @ 0x0801FAAC push {r4, lr} adds r4, r0, #0 movs r1, #0xc0 lsls r1, r1, #5 bl sub_08003FC4 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801FADC adds r0, r4, #0 bl sub_0801FB14 movs r0, #0x20 strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_0804AA1C _0801FADC: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801FAE0 sub_0801FAE0: @ 0x0801FAE0 push {lr} movs r1, #7 strb r1, [r0, #0xc] ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] movs r1, #5 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_0801FAF8 sub_0801FAF8: @ 0x0801FAF8 push {lr} movs r1, #2 strb r1, [r0, #0xc] ldrb r2, [r0, #0x18] subs r1, #6 ands r1, r2 movs r2, #1 orrs r1, r2 strb r1, [r0, #0x18] movs r1, #4 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_0801FB14 sub_0801FB14: @ 0x0801FB14 push {r4, lr} adds r4, r0, #0 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #2 bl sub_08004260 pop {r4, pc} thumb_func_start sub_0801FB34 sub_0801FB34: @ 0x0801FB34 push {r4, lr} adds r4, r0, #0 ldr r3, [r4, #0x68] cmp r3, #0 beq _0801FB62 ldr r2, _0801FB64 @ =gUnk_080CA2B4 adds r0, #0x5a ldrb r1, [r0] movs r0, #0xf ands r0, r1 adds r0, r0, r2 movs r2, #0 ldrsb r2, [r0, r2] adds r0, r4, #0 adds r1, r3, #0 movs r3, #1 bl sub_0806FA90 ldr r1, [r4, #0x68] adds r1, #0x63 ldrb r0, [r1] subs r0, #1 strb r0, [r1] _0801FB62: pop {r4, pc} .align 2, 0 _0801FB64: .4byte gUnk_080CA2B4 thumb_func_start sub_0801FB68 sub_0801FB68: @ 0x0801FB68 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #1 beq _0801FB88 cmp r0, #1 bgt _0801FB7C cmp r0, #0 beq _0801FB82 b _0801FBC8 _0801FB7C: cmp r0, #2 beq _0801FBB6 b _0801FBC8 _0801FB82: movs r0, #9 strb r0, [r4, #0xc] b _0801FBC8 _0801FB88: movs r0, #0xa strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 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] b _0801FBC8 _0801FBB6: movs r0, #0xa strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x5c strb r0, [r1] adds r0, r4, #0 bl sub_0804AA1C _0801FBC8: movs r0, #0 str r0, [r4, #0x20] pop {r4, pc} .align 2, 0 thumb_func_start sub_0801FBD0 sub_0801FBD0: @ 0x0801FBD0 push {lr} bl sub_080002B8 cmp r0, #0x10 beq _0801FBDE movs r0, #0 b _0801FBE0 _0801FBDE: movs r0, #1 _0801FBE0: pop {pc} .align 2, 0 thumb_func_start sub_0801FBE4 sub_0801FBE4: @ 0x0801FBE4 push {r4, lr} adds r4, r0, #0 movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r4, #0x24] movs r0, #0x80 lsls r0, r0, #0xa str r0, [r4, #0x20] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #3 bl sub_08004260 pop {r4, pc} thumb_func_start sub_0801FC08 sub_0801FC08: @ 0x0801FC08 push {r4, lr} adds r4, r0, #0 ldr r1, _0801FC24 @ =gUnk_080CA49C bl sub_0800129E movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, pc} .align 2, 0 _0801FC24: .4byte gUnk_080CA49C thumb_func_start sub_0801FC28 sub_0801FC28: @ 0x0801FC28 push {lr} ldr r2, _0801FC3C @ =gUnk_080CA4B4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0801FC3C: .4byte gUnk_080CA4B4 thumb_func_start sub_0801FC40 sub_0801FC40: @ 0x0801FC40 push {r4, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x80 bne _0801FC5C ldrb r0, [r4, #0xc] cmp r0, #3 bne _0801FC6E adds r1, r4, #0 adds r1, #0x74 movs r0, #1 strh r0, [r1] b _0801FC6E _0801FC5C: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _0801FC6E adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _0801FC6E: ldr r1, _0801FC78 @ =gUnk_080CA49C adds r0, r4, #0 bl sub_0804AA30 pop {r4, pc} .align 2, 0 _0801FC78: .4byte gUnk_080CA49C thumb_func_start sub_0801FC7C sub_0801FC7C: @ 0x0801FC7C push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xa] cmp r0, #0 bne _0801FC8E adds r0, r1, #0 bl sub_0804A7D4 b _0801FC98 _0801FC8E: adds r0, r1, #0 movs r1, #0xf1 movs r2, #0 bl sub_0804A7E0 _0801FC98: pop {pc} .align 2, 0 thumb_func_start sub_0801FC9C sub_0801FC9C: @ 0x0801FC9C push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r0, #1 strb r0, [r4, #0xc] bl sub_08000E50 strb r0, [r4, #0xe] pop {r4, pc} thumb_func_start sub_0801FCB0 sub_0801FCB0: @ 0x0801FCB0 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0801FD28 bl sub_08000E50 movs r1, #0x1f ands r1, r0 adds r0, r5, #0 bl sub_0801FE68 cmp r0, #0 beq _0801FD1C movs r0, #2 strb r0, [r5, #0xc] ldrb r1, [r5, #0x18] subs r0, #6 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r5, #0x18] ldr r0, _0801FD14 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r5, #0 bl sub_080045C4 adds r4, r0, #0 bl sub_08000E50 ldr r2, _0801FD18 @ =gUnk_080CA4C8 movs r1, #1 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] adds r0, r0, r4 movs r1, #0x1f ands r0, r1 strb r0, [r5, #0x15] adds r0, r5, #0 movs r1, #0 bl sub_08004260 adds r0, r5, #0 bl sub_08016A04 b _0801FD28 .align 2, 0 _0801FD14: .4byte gUnk_020000B0 _0801FD18: .4byte gUnk_080CA4C8 _0801FD1C: bl sub_08000E50 movs r1, #0x18 ands r0, r1 adds r0, #8 strb r0, [r5, #0xe] _0801FD28: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0801FD2C sub_0801FD2C: @ 0x0801FD2C push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801FD66 movs r0, #3 strb r0, [r4, #0xc] ldrb r0, [r4, #0xa] cmp r0, #0 bne _0801FD54 adds r1, r4, #0 adds r1, #0x74 movs r0, #0xb4 b _0801FD5A _0801FD54: adds r1, r4, #0 adds r1, #0x74 movs r0, #0x6e _0801FD5A: strh r0, [r1] adds r0, r4, #0 movs r1, #2 bl sub_08004260 b _0801FD7C _0801FD66: movs r0, #1 ands r0, r1 cmp r0, #0 beq _0801FD7C movs r0, #0xfe ands r0, r1 strb r0, [r2] ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x10] _0801FD7C: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801FD80 sub_0801FD80: @ 0x0801FD80 push {r4, lr} adds r4, r0, #0 bl sub_0801FED4 adds r0, r4, #0 bl sub_08004274 adds r1, r4, #0 adds r1, #0x74 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0801FDB2 movs r0, #4 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _0801FDB2: pop {r4, pc} thumb_func_start sub_0801FDB4 sub_0801FDB4: @ 0x0801FDB4 push {r4, lr} adds r4, r0, #0 bl sub_0801FED4 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801FDE0 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0xf0 strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #0xf4 ands r0, r1 strb r0, [r4, #0x18] _0801FDE0: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801FDE4 sub_0801FDE4: @ 0x0801FDE4 push {r4, r5, r6, r7, lr} adds r6, r0, #0 adds r4, r1, #0 adds r5, r2, #0 ldr r7, _0801FE04 @ =gUnk_020000B0 ldr r0, [r7] adds r0, #0x38 ldrb r2, [r0] adds r0, r4, #0 adds r1, r5, #0 bl sub_080002D4 cmp r0, #0 beq _0801FE34 b _0801FE5C .align 2, 0 _0801FE04: .4byte gUnk_020000B0 _0801FE08: movs r0, #0x10 rsbs r0, r0, #0 adds r1, r0, #0 ands r4, r1 adds r0, r4, #0 adds r0, #8 strh r0, [r6, #0x2e] ands r5, r1 adds r0, r5, #0 adds r0, #8 strh r0, [r6, #0x32] ldr r0, _0801FE30 @ =gUnk_020000B0 ldr r0, [r0] adds r0, #0x38 ldrb r1, [r0] adds r0, r6, #0 adds r0, #0x38 strb r1, [r0] movs r0, #1 b _0801FE5E .align 2, 0 _0801FE30: .4byte gUnk_020000B0 _0801FE34: ldr r0, [r7] adds r0, #0x38 ldrb r2, [r0] adds r0, r4, #0 adds r1, r5, #0 bl sub_080002BC adds r3, r0, #0 ldr r1, _0801FE60 @ =gUnk_080CA4CA ldrh r0, [r1] ldr r2, _0801FE64 @ =0x0000FFFF cmp r0, r2 beq _0801FE5C _0801FE4E: ldrh r0, [r1] adds r1, #2 cmp r0, r3 beq _0801FE08 ldrh r0, [r1] cmp r0, r2 bne _0801FE4E _0801FE5C: movs r0, #0 _0801FE5E: pop {r4, r5, r6, r7, pc} .align 2, 0 _0801FE60: .4byte gUnk_080CA4CA _0801FE64: .4byte 0x0000FFFF thumb_func_start sub_0801FE68 sub_0801FE68: @ 0x0801FE68 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r7, r0, #0 adds r6, r1, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 bne _0801FE82 _0801FE7E: movs r0, #0 b _0801FEC4 _0801FE82: ldr r0, _0801FECC @ =gUnk_020000B0 ldr r0, [r0] ldr r5, [r0, #0x2c] ldr r4, [r0, #0x30] ldr r1, _0801FED0 @ =gUnk_080C9160 lsls r0, r6, #4 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] lsls r0, r0, #0xb mov sb, r0 lsls r0, r6, #4 adds r0, #0x80 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] lsls r0, r0, #0xb mov r8, r0 movs r6, #0 _0801FEA8: add r5, sb mov r2, r8 subs r4, r4, r2 asrs r1, r5, #0x10 asrs r2, r4, #0x10 adds r0, r7, #0 bl sub_0801FDE4 cmp r0, #0 beq _0801FE7E adds r6, #1 cmp r6, #7 bls _0801FEA8 movs r0, #1 _0801FEC4: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _0801FECC: .4byte gUnk_020000B0 _0801FED0: .4byte gUnk_080C9160 thumb_func_start sub_0801FED4 sub_0801FED4: @ 0x0801FED4 push {r4, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 bne _0801FEEA adds r1, r4, #0 adds r1, #0x74 movs r0, #1 strh r0, [r1] _0801FEEA: adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] movs r2, #0xf adds r1, r2, #0 ands r1, r0 lsls r1, r1, #5 strh r1, [r4, #0x24] ldrb r0, [r4, #0xa] cmp r0, #0 bne _0801FF28 ldrb r1, [r4, #0xf] adds r0, r1, #1 strb r0, [r4, #0xf] adds r0, r2, #0 ands r0, r1 cmp r0, #0 bne _0801FF4E ldr r0, _0801FF24 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl sub_0800132C adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 b _0801FF4E .align 2, 0 _0801FF24: .4byte gUnk_020000B0 _0801FF28: adds r0, r1, #0 adds r0, #0x40 strh r0, [r4, #0x24] ldrb r1, [r4, #0xf] adds r0, r1, #1 strb r0, [r4, #0xf] movs r0, #7 ands r0, r1 cmp r0, #0 bne _0801FF4E ldr r0, _0801FF58 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl sub_0800132C adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 _0801FF4E: adds r0, r4, #0 bl sub_080AEF88 pop {r4, pc} .align 2, 0 _0801FF58: .4byte gUnk_020000B0 thumb_func_start sub_0801FF5C sub_0801FF5C: @ 0x0801FF5C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 bne _0801FF84 ldr r1, _0801FF80 @ =gUnk_080CA570 adds r0, r4, #0 bl sub_0800129E movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC b _0801FF94 .align 2, 0 _0801FF80: .4byte gUnk_080CA570 _0801FF84: ldr r0, _0801FF98 @ =gUnk_080CA588 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _0801FF94: pop {r4, pc} .align 2, 0 _0801FF98: .4byte gUnk_080CA588 thumb_func_start sub_0801FF9C sub_0801FF9C: @ 0x0801FF9C push {r4, lr} adds r4, r0, #0 ldr r1, _0801FFD4 @ =gUnk_080CA590 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #0 beq _0801FFD2 ldr r2, _0801FFD8 @ =gUnk_080CA5B8 ldrb r1, [r4, #0xf] adds r0, r1, #1 strb r0, [r4, #0xf] movs r0, #0x30 ands r0, r1 lsrs r0, r0, #4 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r4, #0x36] _0801FFD2: pop {r4, pc} .align 2, 0 _0801FFD4: .4byte gUnk_080CA590 _0801FFD8: .4byte gUnk_080CA5B8 thumb_func_start sub_0801FFDC sub_0801FFDC: @ 0x0801FFDC push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r4, #0 adds r6, #0x82 ldrb r0, [r6] cmp r0, #0 beq _08020068 adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] cmp r1, #0x94 bne _08020018 movs r0, #3 movs r1, #1 bl sub_0804AA60 adds r5, r0, #0 cmp r5, #0 beq _08020010 adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA24 ldrh r0, [r5, #0x36] subs r0, #8 strh r0, [r5, #0x36] _08020010: movs r0, #0 strb r0, [r6] movs r0, #2 b _0802001E _08020018: cmp r1, #0x9b bne _08020042 movs r0, #1 _0802001E: strb r0, [r4, #0x14] movs r0, #5 strb r0, [r4, #0xc] movs r1, #0 movs r0, #0x80 strh r0, [r4, #0x24] adds r2, r4, #0 adds r2, #0x3d movs r0, #0xe2 strb r0, [r2] adds r0, r4, #0 adds r0, #0x81 strb r1, [r0] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 b _08020068 _08020042: cmp r1, #0x80 bne _08020068 ldrb r0, [r4, #0x14] cmp r0, #0 bne _08020068 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] strh r1, [r4, #0x24] movs r0, #0xff strb r0, [r4, #0x15] adds r1, r4, #0 adds r1, #0x83 movs r0, #0x78 strb r0, [r1] adds r0, r4, #0 bl sub_08004274 _08020068: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _0802007A adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _0802007A: ldr r1, _08020084 @ =gUnk_080CA570 adds r0, r4, #0 bl sub_0804AA30 pop {r4, r5, r6, pc} .align 2, 0 _08020084: .4byte gUnk_080CA570 thumb_func_start sub_08020088 sub_08020088: @ 0x08020088 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #2 bhi _0802009C adds r0, r4, #0 bl sub_0806F520 cmp r0, #0 beq _080200AC _0802009C: ldr r0, _080200B0 @ =gUnk_080CA5BC ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _080200AC: pop {r4, pc} .align 2, 0 _080200B0: .4byte gUnk_080CA5BC thumb_func_start sub_080200B4 sub_080200B4: @ 0x080200B4 push {lr} adds r2, r0, #0 movs r1, #1 strb r1, [r2, #0xd] movs r0, #0x3c strb r0, [r2, #0x1d] ldrb r3, [r2, #0x14] cmp r3, #0 bne _080200E2 strb r1, [r2, #0x14] movs r0, #5 strb r0, [r2, #0xc] adds r1, r2, #0 adds r1, #0x3f movs r0, #0x71 strb r0, [r1] adds r0, r2, #0 adds r0, #0x81 strb r3, [r0] ldrb r1, [r2, #0x14] adds r0, r2, #0 bl sub_08004260 _080200E2: pop {pc} thumb_func_start sub_080200E4 sub_080200E4: @ 0x080200E4 push {lr} bl sub_0806F4E8 pop {pc} thumb_func_start sub_080200EC sub_080200EC: @ 0x080200EC push {lr} bl sub_0806F3E4 pop {pc} thumb_func_start sub_080200F4 sub_080200F4: @ 0x080200F4 ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] bx lr .align 2, 0 thumb_func_start nullsub_5 nullsub_5: @ 0x08020100 bx lr .align 2, 0 thumb_func_start sub_08020104 sub_08020104: @ 0x08020104 push {lr} adds r2, r0, #0 ldrb r3, [r2, #0x10] movs r0, #0x80 ands r0, r3 lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 beq _08020128 movs r0, #0x80 orrs r0, r3 strb r0, [r2, #0x10] adds r2, #0x3a ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] b _0802012E _08020128: adds r0, r2, #0 adds r0, #0x45 strb r1, [r0] _0802012E: pop {pc} thumb_func_start sub_08020130 sub_08020130: @ 0x08020130 push {r4, r5, lr} adds r4, r0, #0 bl sub_0804A720 movs r5, #1 strb r5, [r4, #0xc] movs r0, #0x10 strb r0, [r4, #0xe] bl sub_08000E50 strb r0, [r4, #0xf] bl sub_08000E50 movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] movs r0, #0x12 strb r0, [r4, #0x1c] bl sub_08000E50 ands r0, r5 movs r1, #0xfe cmp r0, #0 beq _08020162 movs r1, #2 _08020162: adds r0, r4, #0 adds r0, #0x80 strb r1, [r0] adds r0, #1 strb r5, [r0] adds r0, #1 strb r5, [r0] movs r0, #0 strb r0, [r4, #0x14] adds r0, r4, #0 movs r1, #0 bl sub_08004260 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08020180 sub_08020180: @ 0x08020180 push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x83 ldrb r0, [r5] cmp r0, #0 beq _08020192 subs r0, #1 strb r0, [r5] _08020192: adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _080201D4 ldrb r0, [r5] cmp r0, #0 bne _080201D4 ldrb r1, [r4, #0xf] movs r0, #0xf ands r0, r1 cmp r0, #0 bne _080201D4 ldr r0, _0802021C @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 movs r2, #0x30 bl sub_08049F1C cmp r0, #0 beq _080201D4 movs r0, #2 strb r0, [r4, #0xc] bl sub_08000E50 movs r1, #3 ands r0, r1 strb r0, [r4, #0xd] movs r0, #0x3c strb r0, [r4, #0xe] movs r0, #0xa0 strh r0, [r4, #0x24] _080201D4: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802020C movs r0, #0x10 strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_08020604 bl sub_08000E50 movs r1, #3 ands r1, r0 cmp r1, #0 bne _0802020C bl sub_08000E50 movs r1, #1 ands r1, r0 movs r2, #0xfe cmp r1, #0 beq _08020206 movs r2, #2 _08020206: adds r0, r4, #0 adds r0, #0x80 strb r2, [r0] _0802020C: adds r0, r4, #0 bl sub_080AEFE0 adds r0, r4, #0 bl sub_08004274 pop {r4, r5, pc} .align 2, 0 _0802021C: .4byte gUnk_020000B0 thumb_func_start sub_08020220 sub_08020220: @ 0x08020220 push {r4, r5, lr} adds r5, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _08020284 ldrb r0, [r5, #0xe] subs r1, r0, #1 strb r1, [r5, #0xe] lsls r0, r1, #0x18 cmp r0, #0 beq _0802024C lsrs r0, r0, #0x1c movs r1, #3 ands r0, r1 movs r1, #4 subs r1, r1, r0 adds r0, r5, #0 bl sub_08004276 b _08020292 _0802024C: movs r0, #3 strb r0, [r5, #0xc] movs r0, #0x78 strb r0, [r5, #0xe] movs r0, #0xc0 strh r0, [r5, #0x24] ldr r0, _0802027C @ =gUnk_020000B0 ldr r1, [r0] adds r0, r5, #0 bl sub_080045C4 adds r4, r0, #0 bl sub_08000E50 ldr r2, _08020280 @ =gUnk_080CA5D4 movs r1, #1 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] adds r0, r0, r4 movs r1, #0x1f ands r0, r1 strb r0, [r5, #0x15] b _0802028A .align 2, 0 _0802027C: .4byte gUnk_020000B0 _08020280: .4byte gUnk_080CA5D4 _08020284: adds r0, r5, #0 bl sub_080205F8 _0802028A: adds r0, r5, #0 movs r1, #4 bl sub_08004276 _08020292: pop {r4, r5, pc} thumb_func_start sub_08020294 sub_08020294: @ 0x08020294 push {r4, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _080202F8 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080202B4 adds r0, r4, #0 bl sub_080205F8 _080202B4: ldrb r1, [r4, #0xe] cmp r1, #0x3c bls _080202E6 movs r0, #1 ands r0, r1 cmp r0, #0 beq _080202C8 ldrh r0, [r4, #0x24] adds r0, #4 strh r0, [r4, #0x24] _080202C8: ldr r0, _080202F0 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #3 ands r0, r1 cmp r0, #0 bne _080202E6 ldr r0, _080202F4 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl sub_080045C4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 _080202E6: adds r0, r4, #0 bl sub_080AEFE0 b _080202FE .align 2, 0 _080202F0: .4byte gUnk_030010A0 _080202F4: .4byte gUnk_020000B0 _080202F8: adds r0, r4, #0 bl sub_080205F8 _080202FE: adds r0, r4, #0 movs r1, #4 bl sub_08004276 pop {r4, pc} thumb_func_start sub_08020308 sub_08020308: @ 0x08020308 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r1, r0, #1 strb r1, [r4, #0xe] lsls r0, r1, #0x18 cmp r0, #0 bne _08020332 movs r0, #1 strb r0, [r4, #0xc] strb r0, [r4, #0xe] movs r0, #0x80 strh r0, [r4, #0x24] adds r1, r4, #0 adds r1, #0x83 movs r0, #0x78 strb r0, [r1] adds r0, r4, #0 bl sub_08004274 b _0802034E _08020332: movs r0, #1 ands r1, r0 cmp r1, #0 beq _08020340 ldrh r0, [r4, #0x24] subs r0, #8 strh r0, [r4, #0x24] _08020340: adds r0, r4, #0 bl sub_080AEFE0 adds r0, r4, #0 movs r1, #4 bl sub_08004276 _0802034E: pop {r4, pc} thumb_func_start sub_08020350 sub_08020350: @ 0x08020350 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0x14] cmp r0, #2 beq _08020398 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_080044EC cmp r0, #0 bne _0802037C movs r0, #6 strb r0, [r4, #0xc] movs r0, #0xf0 strb r0, [r4, #0xe] movs r0, #0xa strb r0, [r4, #0xf] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x71 strb r0, [r1] _0802037C: ldrb r0, [r4, #0x15] cmp r0, #0xff bne _0802038A adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] strb r0, [r4, #0x15] _0802038A: adds r0, r4, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_08004274 b _080203BE _08020398: movs r1, #0xe0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 bne _080203BE movs r0, #7 strb r0, [r4, #0xc] movs r0, #0x96 strb r0, [r4, #0xe] movs r0, #0xa strb r0, [r4, #0xf] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x71 strb r0, [r1] _080203BE: pop {r4, pc} thumb_func_start sub_080203C0 sub_080203C0: @ 0x080203C0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] cmp r0, #0 beq _080203DC subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _080203DC adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _080203DC: adds r0, r4, #0 bl sub_0800442E cmp r0, #0 bne _080203F2 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08020418 _080203F2: movs r0, #9 strb r0, [r4, #0xc] movs r0, #0xc0 lsls r0, r0, #9 str r0, [r4, #0x20] bl sub_08000E50 movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_0804AA1C movs r0, #5 strb r0, [r4, #0x14] adds r0, r4, #0 movs r1, #5 bl sub_08004260 _08020418: pop {r4, pc} .align 2, 0 thumb_func_start sub_0802041C sub_0802041C: @ 0x0802041C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] cmp r0, #0 beq _08020438 subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08020438 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _08020438: adds r0, r4, #0 bl sub_0800442E cmp r0, #0 bne _0802044E ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08020466 _0802044E: movs r0, #8 strb r0, [r4, #0xc] movs r0, #0xf0 strb r0, [r4, #0xe] bl sub_08000E50 movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_0804AA1C _08020466: pop {r4, pc} thumb_func_start sub_08020468 sub_08020468: @ 0x08020468 push {r4, r5, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080204A6 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080204A2 movs r0, #9 strb r0, [r4, #0xc] movs r0, #0xc0 lsls r0, r0, #9 str r0, [r4, #0x20] movs r0, #4 strb r0, [r4, #0x14] adds r0, r4, #0 movs r1, #4 bl sub_08004260 b _080204A6 _080204A2: movs r0, #1 strb r0, [r4, #0xe] _080204A6: adds r5, r4, #0 adds r5, #0x5a ldrb r1, [r5] movs r0, #2 ands r0, r1 cmp r0, #0 beq _080204C4 movs r0, #0xfd ands r0, r1 strb r0, [r5] bl sub_08000E50 movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] _080204C4: ldrb r1, [r5] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080204D6 adds r0, r4, #0 bl sub_0800442E b _080204DC _080204D6: adds r0, r4, #0 bl sub_080AEF88 _080204DC: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080204E0 sub_080204E0: @ 0x080204E0 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0802051A movs r2, #0 movs r1, #1 strb r1, [r4, #0xc] adds r3, r4, #0 adds r3, #0x3f movs r0, #0x70 strb r0, [r3] adds r0, r4, #0 adds r0, #0x82 strb r1, [r0] subs r0, #1 strb r1, [r0] strb r2, [r4, #0x14] adds r0, r4, #0 movs r1, #0 bl sub_08004260 b _0802053A _0802051A: movs r0, #1 ands r0, r1 cmp r0, #0 beq _0802052A adds r0, r4, #0 bl sub_0800442E b _0802053A _0802052A: movs r1, #0xe0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 adds r0, r4, #0 bl sub_080AEF88 _0802053A: pop {r4, pc} thumb_func_start sub_0802053C sub_0802053C: @ 0x0802053C push {r4, lr} adds r4, r0, #0 movs r1, #1 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0xf0 strb r0, [r4, #0xe] movs r0, #0x28 strb r0, [r4, #0xf] ldrb r0, [r4, #0x18] movs r2, #4 rsbs r2, r2, #0 ands r2, r0 orrs r2, r1 ldrb r3, [r4, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r3 movs r3, #0x40 orrs r0, r3 strb r0, [r4, #0x19] ldrb r0, [r4, #0x1b] ands r1, r0 orrs r1, r3 strb r1, [r4, #0x1b] movs r0, #0x31 rsbs r0, r0, #0 ands r2, r0 strb r2, [r4, #0x18] movs r0, #0x20 strh r0, [r4, #0x24] bl sub_08000E50 movs r1, #0x10 ands r0, r1 adds r0, #8 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #3 bl sub_08004260 pop {r4, pc} thumb_func_start sub_08020590 sub_08020590: @ 0x08020590 push {r4, r5, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r1, r0, #1 strb r1, [r4, #0xe] movs r5, #0xff lsls r0, r1, #0x18 cmp r0, #0 bne _080205AE adds r0, r4, #0 bl sub_0805E7BC b _080205F2 _080205AE: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x3b bhi _080205C8 ldrb r2, [r4, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #1 eors r1, r0 subs r0, #5 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] _080205C8: ldr r0, [r4, #0x34] ldr r1, _080205F4 @ =0xFFFF4000 adds r0, r0, r1 str r0, [r4, #0x34] adds r0, r4, #0 bl sub_0806F69C ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] ands r0, r5 cmp r0, #0 bne _080205F2 movs r0, #0x28 strb r0, [r4, #0xf] bl sub_08000E50 movs r1, #0x10 ands r0, r1 adds r0, #8 strb r0, [r4, #0x15] _080205F2: pop {r4, r5, pc} .align 2, 0 _080205F4: .4byte 0xFFFF4000 thumb_func_start sub_080205F8 sub_080205F8: @ 0x080205F8 movs r1, #4 strb r1, [r0, #0xc] movs r1, #0x3c strb r1, [r0, #0xe] bx lr .align 2, 0 thumb_func_start sub_08020604 sub_08020604: @ 0x08020604 push {r4, lr} adds r4, r0, #0 bl sub_08049FA0 cmp r0, #0 bne _08020624 bl sub_08000E50 movs r1, #3 ands r1, r0 cmp r1, #0 beq _08020624 adds r0, r4, #0 bl sub_08049EE4 b _08020632 _08020624: adds r0, r4, #0 adds r0, #0x80 ldrb r0, [r0] ldrb r1, [r4, #0x15] adds r0, r0, r1 movs r1, #0x1f ands r0, r1 _08020632: strb r0, [r4, #0x15] pop {r4, pc} .align 2, 0 thumb_func_start sub_08020638 sub_08020638: @ 0x08020638 push {lr} ldr r1, _08020644 @ =gUnk_080CA66C bl sub_0800129E pop {pc} .align 2, 0 _08020644: .4byte gUnk_080CA66C thumb_func_start sub_08020648 sub_08020648: @ 0x08020648 push {r4, lr} adds r4, r0, #0 bl sub_08020AD0 ldr r1, _08020664 @ =gUnk_080CA684 ldrb r0, [r4, #0xc] 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 _08020664: .4byte gUnk_080CA684 thumb_func_start sub_08020668 sub_08020668: @ 0x08020668 push {r4, r5, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x3f ldrb r0, [r2] cmp r0, #0x22 bne _080206A2 adds r1, r4, #0 adds r1, #0x45 ldrb r0, [r1] cmp r0, #0xff beq _080206A2 movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x80 lsls r0, r0, #0xa str r0, [r4, #0x20] movs r0, #0xff strb r0, [r4, #0x15] movs r0, #1 rsbs r0, r0, #0 strb r0, [r1] movs r0, #0x23 strb r0, [r2] ldrb r1, [r4, #0x14] adds r1, #8 adds r0, r4, #0 bl sub_08004260 _080206A2: adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] adds r5, r0, #0 cmp r1, #0x80 beq _080206D0 ldrb r0, [r4, #0xc] subs r0, #4 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _080206D0 movs r0, #4 strb r0, [r4, #0xc] movs r0, #0xb4 strb r0, [r4, #0xe] movs r0, #0xff strb r0, [r4, #0x15] ldrb r1, [r4, #0x14] adds r1, #0x10 adds r0, r4, #0 bl sub_08004260 _080206D0: ldrb r0, [r5] cmp r0, #0x93 bne _080206DC adds r0, r4, #0 bl sub_08020648 _080206DC: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080206E0 sub_080206E0: @ 0x080206E0 push {r4, r5, lr} adds r4, r0, #0 bl sub_08020AD0 cmp r0, #0 beq _080206F6 adds r1, r4, #0 adds r1, #0x42 movs r0, #0 strb r0, [r1] b _08020730 _080206F6: adds r0, r4, #0 bl sub_08020B6C cmp r0, #0 beq _0802072A adds r1, r4, #0 adds r1, #0x42 ldrb r0, [r1] subs r0, #1 strb r0, [r1] adds r5, r4, #0 adds r5, #0x3e ldrb r1, [r5] adds r0, r4, #0 movs r2, #0xa bl sub_080AE58C adds r0, r4, #0 adds r0, #0x46 ldrh r1, [r0] ldrb r2, [r5] adds r0, r4, #0 movs r3, #0xa bl sub_080AE7E8 b _08020730 _0802072A: adds r0, r4, #0 bl sub_08001324 _08020730: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08020734 sub_08020734: @ 0x08020734 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #2 bhi _08020764 adds r0, r4, #0 bl sub_0806F520 cmp r0, #0 bne _08020764 movs r0, #4 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] movs r0, #0xff strb r0, [r4, #0x15] ldrb r1, [r4, #0x14] adds r1, #0x10 adds r0, r4, #0 bl sub_08004260 b _08020774 _08020764: ldr r0, _08020778 @ =gUnk_080CA6A4 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _08020774: pop {r4, pc} .align 2, 0 _08020778: .4byte gUnk_080CA6A4 thumb_func_start sub_0802077C sub_0802077C: @ 0x0802077C movs r1, #1 strb r1, [r0, #0xd] movs r1, #0x3c strb r1, [r0, #0x1d] bx lr .align 2, 0 thumb_func_start sub_08020788 sub_08020788: @ 0x08020788 push {lr} bl sub_0806F4E8 pop {pc} thumb_func_start sub_08020790 sub_08020790: @ 0x08020790 push {lr} bl sub_0806F3E4 pop {pc} thumb_func_start sub_08020798 sub_08020798: @ 0x08020798 ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] bx lr .align 2, 0 thumb_func_start nullsub_6 nullsub_6: @ 0x080207A4 bx lr .align 2, 0 thumb_func_start sub_080207A8 sub_080207A8: @ 0x080207A8 push {lr} movs r3, #4 movs r1, #4 strb r1, [r0, #0xc] ldrb r2, [r0, #0x10] movs r1, #0x80 orrs r1, r2 strb r1, [r0, #0x10] movs r1, #0x29 adds r1, r1, r0 mov ip, r1 ldrb r2, [r1] movs r1, #8 rsbs r1, r1, #0 ands r1, r2 orrs r1, r3 mov r2, ip strb r1, [r2] adds r3, r0, #0 adds r3, #0x3a ldrb r2, [r3] movs r1, #0xfb ands r1, r2 strb r1, [r3] ldrb r1, [r0, #0x15] movs r2, #0x10 eors r1, r2 strb r1, [r0, #0x15] movs r1, #0xc0 lsls r1, r1, #9 str r1, [r0, #0x20] movs r1, #0x80 strh r1, [r0, #0x24] ldrb r1, [r0, #0x14] adds r1, #0x10 bl sub_08004260 pop {pc} thumb_func_start sub_080207F4 sub_080207F4: @ 0x080207F4 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r1, #0 movs r0, #0x30 strb r0, [r4, #0x16] movs r0, #0x12 strb r0, [r4, #0x1c] adds r0, r4, #0 adds r0, #0x84 strb r1, [r0] bl sub_08000E50 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_08020A30 pop {r4, pc} .align 2, 0 thumb_func_start sub_08020820 sub_08020820: @ 0x08020820 push {r4, r5, lr} adds r4, r0, #0 bl sub_08004274 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r5, #1 adds r0, r5, #0 ands r0, r1 cmp r0, #0 beq _0802084A movs r0, #0xfe ands r0, r1 strb r0, [r2] adds r0, r4, #0 bl sub_080AEF88 cmp r0, #0 bne _0802084A strb r5, [r4, #0xe] _0802084A: adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08020872 movs r0, #0xef ands r0, r1 strb r0, [r2] ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08020872 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] _08020872: pop {r4, r5, pc} thumb_func_start sub_08020874 sub_08020874: @ 0x08020874 push {lr} ldr r2, _08020888 @ =gUnk_080CA6BC ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08020888: .4byte gUnk_080CA6BC thumb_func_start sub_0802088C sub_0802088C: @ 0x0802088C movs r1, #1 strb r1, [r0, #0xd] ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] ldr r1, _080208B0 @ =gUnk_03001160 ldrb r1, [r1, #0x14] adds r2, r0, #0 adds r2, #0x85 strb r1, [r2] adds r0, #0x29 ldrb r2, [r0] movs r1, #0x39 rsbs r1, r1, #0 ands r1, r2 strb r1, [r0] bx lr .align 2, 0 _080208B0: .4byte gUnk_03001160 thumb_func_start sub_080208B4 sub_080208B4: @ 0x080208B4 push {r4, r5, lr} adds r2, r0, #0 adds r4, r2, #0 adds r4, #0x85 ldrb r0, [r4] ldr r5, _080208EC @ =gUnk_03001160 ldrb r1, [r5, #0x14] subs r0, r0, r1 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r0, #0 beq _080208E6 ldrb r0, [r2, #0x14] adds r0, r0, r1 movs r1, #3 ands r0, r1 strb r0, [r2, #0x14] ldrb r1, [r2, #0x14] adds r1, #0x10 adds r0, r2, #0 bl sub_08004260 _080208E6: ldrb r0, [r5, #0x14] strb r0, [r4] pop {r4, r5, pc} .align 2, 0 _080208EC: .4byte gUnk_03001160 thumb_func_start sub_080208F0 sub_080208F0: @ 0x080208F0 adds r0, #0x29 ldrb r2, [r0] movs r1, #0x39 rsbs r1, r1, #0 ands r1, r2 movs r2, #0x18 orrs r1, r2 strb r1, [r0] bx lr .align 2, 0 thumb_func_start sub_08020904 sub_08020904: @ 0x08020904 push {lr} movs r1, #4 strb r1, [r0, #0xc] ldrb r2, [r0, #0x10] movs r1, #0x80 orrs r1, r2 strb r1, [r0, #0x10] movs r1, #0xff strb r1, [r0, #0x15] ldrb r1, [r0, #0x14] adds r1, #0x10 bl sub_08004260 pop {pc} thumb_func_start sub_08020920 sub_08020920: @ 0x08020920 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 _08020936 adds r0, r1, #0 bl sub_08020A30 _08020936: pop {pc} thumb_func_start sub_08020938 sub_08020938: @ 0x08020938 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r5, #0x80 adds r0, r5, #0 ands r0, r1 cmp r0, #0 bne _08020950 adds r0, r4, #0 bl sub_08004274 _08020950: movs r1, #0xa0 lsls r1, r1, #6 adds r0, r4, #0 bl sub_080044EC cmp r0, #0 bne _08020980 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08020978 movs r0, #5 strb r0, [r4, #0xc] ldrb r1, [r4, #0x14] adds r1, #0xc adds r0, r4, #0 bl sub_08004260 _08020978: adds r0, r4, #0 bl sub_08078930 b _0802099C _08020980: cmp r0, #1 bne _0802098C movs r0, #0x82 lsls r0, r0, #1 bl sub_08004488 _0802098C: ldrb r1, [r4, #0x15] adds r0, r5, #0 ands r0, r1 cmp r0, #0 bne _0802099C adds r0, r4, #0 bl sub_080AEFE0 _0802099C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080209A0 sub_080209A0: @ 0x080209A0 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080209E2 ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r4, #0x24] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x22 strb r0, [r1] adds r0, r4, #0 bl sub_08020A30 ldrb r0, [r4, #0x14] lsls r0, r0, #3 strb r0, [r4, #0x15] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 b _080209F0 _080209E2: movs r0, #1 ands r0, r1 cmp r0, #0 bne _080209F0 adds r0, r4, #0 bl sub_08078930 _080209F0: pop {r4, pc} .align 2, 0 thumb_func_start sub_080209F4 sub_080209F4: @ 0x080209F4 push {r4, lr} adds r4, r0, #0 movs r1, #0xe0 lsls r1, r1, #5 bl sub_08003FC4 cmp r0, #0 bne _08020A14 movs r1, #7 movs r0, #7 strb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] orrs r0, r1 strb r0, [r2] _08020A14: adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] cmp r0, #0 bne _08020A24 adds r0, r4, #0 bl sub_08004274 _08020A24: pop {r4, pc} .align 2, 0 thumb_func_start sub_08020A28 sub_08020A28: @ 0x08020A28 push {lr} bl sub_08004274 pop {pc} thumb_func_start sub_08020A30 sub_08020A30: @ 0x08020A30 push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x84 ldrb r0, [r5] cmp r0, #1 bhi _08020A68 bl sub_08000E50 ldr r2, _08020A64 @ =gUnk_080CA6CC movs r1, #7 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r4, #0xe] cmp r0, #0 bne _08020A68 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] ldrb r0, [r5] adds r0, #1 strb r0, [r5] b _08020A7A .align 2, 0 _08020A64: .4byte gUnk_080CA6CC _08020A68: movs r0, #0 movs r1, #1 strb r1, [r4, #0xc] adds r1, r4, #0 adds r1, #0x84 strb r0, [r1] adds r0, r4, #0 bl sub_08020A7C _08020A7A: pop {r4, r5, pc} thumb_func_start sub_08020A7C sub_08020A7C: @ 0x08020A7C push {r4, r5, r6, lr} adds r6, r0, #0 bl sub_08000E50 ldrb r5, [r6, #0x15] ldr r4, _08020ACC @ =gUnk_080CA6D4 movs r1, #3 bl __modsi3 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r5, r5, r0 movs r4, #0x18 ands r5, r4 adds r0, r6, #0 bl sub_08049FA0 cmp r0, #0 bne _08020ABA adds r0, r6, #0 bl sub_08049EE4 adds r0, #4 ands r0, r4 movs r1, #0x10 eors r1, r5 cmp r1, r0 bne _08020ABA adds r5, r1, #0 _08020ABA: strb r5, [r6, #0x15] lsrs r0, r5, #3 strb r0, [r6, #0x14] ldrb r1, [r6, #0x14] adds r0, r6, #0 bl sub_08004260 pop {r4, r5, r6, pc} .align 2, 0 _08020ACC: .4byte gUnk_080CA6D4 thumb_func_start sub_08020AD0 sub_08020AD0: @ 0x08020AD0 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_08020B6C cmp r0, #0 beq _08020B68 movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 bne _08020B68 movs r1, #0x2e ldrsh r0, [r4, r1] ldr r3, _08020B5C @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r0, r0, r1 asrs r5, r0, #4 movs r2, #0x3f ands r5, r2 movs r1, #0x32 ldrsh r0, [r4, r1] ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r5, r0 adds r6, r4, #0 adds r6, #0x38 ldrb r1, [r6] adds r0, r5, #0 bl sub_080002B0 lsls r0, r0, #0x10 ldr r1, _08020B60 @ =0xFF8F0000 adds r0, r0, r1 lsrs r0, r0, #0x10 cmp r0, #1 bhi _08020B68 movs r0, #6 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrh r2, [r4, #0x2e] movs r1, #0x10 rsbs r1, r1, #0 adds r0, r1, #0 ands r0, r2 adds r0, #8 strh r0, [r4, #0x2e] ldrh r0, [r4, #0x32] ands r1, r0 adds r1, #0xd strh r1, [r4, #0x32] movs r0, #0x80 lsls r0, r0, #0xa str r0, [r4, #0x20] ldrb r1, [r4, #0x14] adds r1, #0x14 adds r0, r4, #0 bl sub_08004260 ldr r0, _08020B64 @ =0x00004034 ldrb r2, [r6] adds r1, r5, #0 bl sub_0800015E movs r0, #1 b _08020B6A .align 2, 0 _08020B5C: .4byte gUnk_03000BF0 _08020B60: .4byte 0xFF8F0000 _08020B64: .4byte 0x00004034 _08020B68: movs r0, #0 _08020B6A: pop {r4, r5, r6, pc} thumb_func_start sub_08020B6C sub_08020B6C: @ 0x08020B6C push {lr} adds r0, #0x58 ldrb r0, [r0] subs r0, #0x10 cmp r0, #3 bls _08020B7C movs r0, #0 b _08020B7E _08020B7C: movs r0, #1 _08020B7E: pop {pc} thumb_func_start sub_08020B80 sub_08020B80: @ 0x08020B80 push {r4, lr} adds r4, r0, #0 ldr r1, _08020B9C @ =gUnk_080CAA98 bl sub_0800129E movs r3, #0x16 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, pc} .align 2, 0 _08020B9C: .4byte gUnk_080CAA98 thumb_func_start sub_08020BA0 sub_08020BA0: @ 0x08020BA0 push {lr} ldr r2, _08020BB4 @ =gUnk_080CAAB0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08020BB4: .4byte gUnk_080CAAB0 thumb_func_start sub_08020BB8 sub_08020BB8: @ 0x08020BB8 push {r4, r5, r6, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r0, [r0] movs r2, #0x7f adds r1, r2, #0 ands r1, r0 cmp r1, #0x1c beq _08020BE0 cmp r1, #0x1c bgt _08020BD4 cmp r1, #0x16 beq _08020C24 b _08020D32 _08020BD4: cmp r1, #0x4b beq _08020C68 cmp r1, #0x4c bne _08020BDE b _08020CF0 _08020BDE: b _08020D32 _08020BE0: movs r0, #0xb strb r0, [r4, #0xc] ldr r1, _08020C20 @ =gUnk_080CAB0C ldrb r0, [r4, #0xa] adds r0, r0, r1 ldrb r0, [r0] strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x51 strb r0, [r1] adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] movs r2, #0x10 eors r2, r0 adds r2, #4 movs r0, #0x18 ands r2, r0 asrs r2, r2, #3 adds r0, r4, #0 movs r1, #8 bl sub_08021218 adds r0, r4, #0 bl sub_08021588 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC b _08020CE2 .align 2, 0 _08020C20: .4byte gUnk_080CAB0C _08020C24: movs r0, #0xb strb r0, [r4, #0xc] ldr r1, _08020C64 @ =gUnk_080CAB10 ldrb r0, [r4, #0xa] adds r0, r0, r1 ldrb r0, [r0] strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x51 strb r0, [r1] adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] movs r2, #0x10 eors r2, r0 adds r2, #4 movs r0, #0x18 ands r2, r0 asrs r2, r2, #3 adds r0, r4, #0 movs r1, #8 bl sub_08021218 adds r0, r4, #0 bl sub_08021588 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC b _08020CE2 .align 2, 0 _08020C64: .4byte gUnk_080CAB10 _08020C68: ldrb r0, [r4, #0xc] adds r6, r4, #0 adds r6, #0x45 adds r5, r4, #0 adds r5, #0x78 cmp r0, #0xd beq _08020D58 cmp r0, #0xf beq _08020D58 cmp r0, #0x13 beq _08020D58 cmp r0, #0x12 beq _08020D58 adds r0, r4, #0 adds r0, #0x79 ldrb r0, [r0] cmp r0, #4 blt _08020CC0 cmp r0, #6 ble _08020CAC cmp r0, #0xc bgt _08020CC0 cmp r0, #8 blt _08020CC0 ldr r0, _08020CA8 @ =gUnk_080CAB04 ldrb r1, [r4, #0xa] adds r1, r1, r0 ldrb r0, [r1] adds r1, r4, #0 adds r1, #0x7a b _08020CC6 .align 2, 0 _08020CA8: .4byte gUnk_080CAB04 _08020CAC: ldr r0, _08020CBC @ =gUnk_080CAB00 ldrb r1, [r4, #0xa] adds r1, r1, r0 ldrb r0, [r1] adds r1, r4, #0 adds r1, #0x7a b _08020CC6 .align 2, 0 _08020CBC: .4byte gUnk_080CAB00 _08020CC0: adds r1, r4, #0 adds r1, #0x7a movs r0, #0 _08020CC6: strb r0, [r1] movs r0, #0xa strb r0, [r4, #0xc] ldrb r2, [r4, #0x14] adds r0, r4, #0 movs r1, #0xb bl sub_08021218 ldr r0, _08020CEC @ =0x0000015D bl sub_08004488 adds r0, r4, #0 bl sub_08021588 _08020CE2: adds r6, r4, #0 adds r6, #0x45 adds r5, r4, #0 adds r5, #0x78 b _08020D58 .align 2, 0 _08020CEC: .4byte 0x0000015D _08020CF0: ldrb r0, [r4, #0xc] adds r6, r4, #0 adds r6, #0x45 adds r5, r4, #0 adds r5, #0x78 cmp r0, #0xf bne _08020D58 movs r1, #0xff ldr r0, [r4, #0x54] cmp r0, #0 beq _08020D0E adds r0, #0x41 ldrb r0, [r0] adds r1, r2, #0 ands r1, r0 _08020D0E: cmp r1, #2 bne _08020D28 ldr r0, _08020D24 @ =gUnk_080CAB08 ldrb r1, [r4, #0xa] adds r1, r1, r0 ldrb r1, [r1] adds r0, r4, #0 bl sub_080213D0 b _08020D58 .align 2, 0 _08020D24: .4byte gUnk_080CAB08 _08020D28: adds r0, r4, #0 movs r1, #0 bl sub_080213D0 b _08020D58 _08020D32: adds r2, r4, #0 adds r2, #0x45 adds r0, r4, #0 adds r0, #0x78 ldrb r1, [r2] adds r6, r2, #0 adds r5, r0, #0 ldrb r0, [r5] cmp r1, r0 beq _08020D58 adds r0, r4, #0 bl sub_08021588 adds r0, r4, #0 bl sub_08021390 adds r0, r4, #0 bl sub_0804AA1C _08020D58: ldrb r0, [r6] strb r0, [r5] ldr r1, _08020D68 @ =gUnk_080CAA98 adds r0, r4, #0 bl sub_0804AA30 pop {r4, r5, r6, pc} .align 2, 0 _08020D68: .4byte gUnk_080CAA98 thumb_func_start nullsub_129 nullsub_129: @ 0x08020D6C bx lr .align 2, 0 thumb_func_start sub_08020D70 sub_08020D70: @ 0x08020D70 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x75 strb r1, [r0] subs r0, #0x30 ldrb r1, [r0] adds r0, #0x33 strb r1, [r0] movs r0, #0xff strb r0, [r4, #0x14] adds r0, r4, #0 movs r1, #0 movs r2, #2 bl sub_08021218 pop {r4, pc} thumb_func_start sub_08020D9C sub_08020D9C: @ 0x08020D9C push {r4, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _08020DB0 adds r0, r4, #0 bl sub_080213F0 _08020DB0: pop {r4, pc} .align 2, 0 thumb_func_start sub_08020DB4 sub_08020DB4: @ 0x08020DB4 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 _08020DD0 adds r0, r4, #0 bl sub_08021390 _08020DD0: pop {r4, pc} .align 2, 0 thumb_func_start sub_08020DD4 sub_08020DD4: @ 0x08020DD4 push {r4, lr} adds r4, r0, #0 bl sub_080214FC cmp r0, #0 beq _08020DE8 adds r0, r4, #0 bl sub_080213F0 b _08020E26 _08020DE8: adds r1, r4, #0 adds r1, #0x76 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08020E08 movs r0, #5 strb r0, [r4, #0xc] ldrb r2, [r4, #0x14] adds r0, r4, #0 movs r1, #5 bl sub_08021218 b _08020E26 _08020E08: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08020E1A adds r0, r4, #0 bl sub_08021540 _08020E1A: adds r0, r4, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_080042B8 _08020E26: pop {r4, pc} thumb_func_start sub_08020E28 sub_08020E28: @ 0x08020E28 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 _08020E44 adds r0, r4, #0 bl sub_080213B0 _08020E44: pop {r4, pc} .align 2, 0 thumb_func_start sub_08020E48 sub_08020E48: @ 0x08020E48 push {r4, lr} adds r4, r0, #0 bl sub_080214FC cmp r0, #0 beq _08020E5C adds r0, r4, #0 bl sub_080213F0 b _08020E76 _08020E5C: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08020E76 adds r0, r4, #0 bl sub_080213B0 _08020E76: pop {r4, pc} thumb_func_start sub_08020E78 sub_08020E78: @ 0x08020E78 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 _08020E94 adds r0, r4, #0 bl sub_08021390 _08020E94: pop {r4, pc} .align 2, 0 thumb_func_start sub_08020E98 sub_08020E98: @ 0x08020E98 push {r4, r5, lr} adds r4, r0, #0 movs r1, #1 movs r2, #0x38 bl sub_08049F64 cmp r0, #0 beq _08020EF6 ldr r5, _08020EDC @ =gUnk_020000B0 ldr r1, [r5] adds r0, r4, #0 bl sub_0802169C cmp r0, #0 bne _08020ECA ldr r0, [r5] adds r1, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_080AEF88 cmp r0, #0 bne _08020EE0 _08020ECA: movs r0, #8 strb r0, [r4, #0xc] ldrb r2, [r4, #0x14] adds r0, r4, #0 movs r1, #7 bl sub_08021218 b _08020F26 .align 2, 0 _08020EDC: .4byte gUnk_020000B0 _08020EE0: ldrb r0, [r4, #0x15] movs r1, #0x10 eors r0, r1 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_0802124C adds r0, r4, #0 bl sub_08021644 b _08020F26 _08020EF6: ldr r0, _08020F08 @ =gUnk_020000B0 ldr r1, [r0] cmp r1, #0 bne _08020F0C adds r0, r4, #0 bl sub_08021414 b _08020F26 .align 2, 0 _08020F08: .4byte gUnk_020000B0 _08020F0C: adds r0, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_0802124C adds r0, r4, #0 bl sub_08021644 _08020F26: pop {r4, r5, pc} thumb_func_start sub_08020F28 sub_08020F28: @ 0x08020F28 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 _08020F44 adds r0, r4, #0 bl sub_08021400 _08020F44: pop {r4, pc} .align 2, 0 thumb_func_start sub_08020F48 sub_08020F48: @ 0x08020F48 push {r4, r5, lr} adds r4, r0, #0 movs r1, #1 movs r2, #0x48 bl sub_08049F64 cmp r0, #0 beq _08020FA4 ldr r5, _08020F98 @ =gUnk_020000B0 ldr r1, [r5] adds r0, r4, #0 bl sub_08021664 cmp r0, #0 beq _08020F9C ldr r1, [r5] adds r0, r4, #0 movs r2, #9 bl sub_0804A044 adds r2, r0, #0 cmp r2, #0xff beq _08020F9C movs r0, #0xe strb r0, [r4, #0xc] lsrs r2, r2, #3 adds r0, r4, #0 movs r1, #0xd bl sub_08021218 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A98C cmp r0, #0 beq _08020FAA str r4, [r0, #0x50] str r0, [r4, #0x54] b _08020FAA .align 2, 0 _08020F98: .4byte gUnk_020000B0 _08020F9C: adds r0, r4, #0 bl sub_08021424 b _08020FAA _08020FA4: adds r0, r4, #0 bl sub_08021390 _08020FAA: pop {r4, r5, pc} thumb_func_start sub_08020FAC sub_08020FAC: @ 0x08020FAC push {lr} adds r2, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08020FDC adds r1, r2, #0 adds r1, #0x7a ldrb r0, [r1] cmp r0, #0 beq _08020FCC subs r0, #1 strb r0, [r1] b _08020FE2 _08020FCC: adds r1, r2, #0 adds r1, #0x3d movs r0, #0xf8 strb r0, [r1] adds r0, r2, #0 bl sub_08021390 b _08020FE2 _08020FDC: adds r0, r2, #0 bl sub_080042B8 _08020FE2: pop {pc} thumb_func_start sub_08020FE4 sub_08020FE4: @ 0x08020FE4 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 _0802100C movs r0, #0xc strb r0, [r4, #0xc] ldrb r2, [r4, #0x14] adds r0, r4, #0 movs r1, #9 bl sub_08021218 adds r0, r4, #0 bl sub_0804AA1C _0802100C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08021010 sub_08021010: @ 0x08021010 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 _08021034 adds r1, r4, #0 adds r1, #0x3f movs r0, #0x56 strb r0, [r1] adds r0, r4, #0 bl sub_080213F0 _08021034: pop {r4, pc} .align 2, 0 thumb_func_start sub_08021038 sub_08021038: @ 0x08021038 push {r4, r5, lr} adds r4, r0, #0 ldr r0, [r4, #0x54] cmp r0, #0 bne _08021066 adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] cmp r0, #0 beq _08021066 adds r0, r4, #0 movs r1, #0 movs r2, #0 bl sub_0804A98C cmp r0, #0 beq _0802105E str r4, [r0, #0x50] str r0, [r4, #0x54] _0802105E: movs r0, #0x87 lsls r0, r0, #1 bl sub_08004488 _08021066: adds r5, r4, #0 adds r5, #0x5a ldrb r1, [r5] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08021090 adds r0, r4, #0 bl sub_08021588 adds r1, r4, #0 adds r1, #0x7c ldrb r0, [r1] cmp r0, #0 beq _08021088 subs r0, #1 b _080210A2 _08021088: adds r0, r4, #0 bl sub_08021390 b _080210A4 _08021090: adds r0, r4, #0 bl sub_080042B8 ldrb r0, [r5] cmp r0, #4 bne _080210A4 adds r1, r4, #0 adds r1, #0x3f movs r0, #0x51 _080210A2: strb r0, [r1] _080210A4: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080210A8 sub_080210A8: @ 0x080210A8 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080210D4 movs r0, #0 strb r0, [r2] adds r0, r4, #0 bl sub_08021588 ldr r0, _080210D0 @ =0x0000015D bl sub_08004488 b _080210E2 .align 2, 0 _080210D0: .4byte 0x0000015D _080210D4: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080210E2 adds r0, r4, #0 bl sub_08021390 _080210E2: pop {r4, pc} thumb_func_start sub_080210E4 sub_080210E4: @ 0x080210E4 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0802111A movs r0, #0xfe ands r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #0 movs r2, #2 bl sub_0804A98C cmp r0, #0 beq _08021112 str r4, [r0, #0x50] str r0, [r4, #0x54] _08021112: movs r0, #0x87 lsls r0, r0, #1 bl sub_08004488 _0802111A: adds r0, r4, #0 bl sub_08021644 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08021154 adds r0, r4, #0 bl sub_080AEF88 cmp r0, #0 beq _0802114A ldr r0, [r4, #0x54] cmp r0, #0 beq _08021154 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08021154 _0802114A: adds r0, r4, #0 movs r1, #0 bl sub_080213D0 b _0802116C _08021154: adds r1, r4, #0 adds r1, #0x76 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0802116C adds r0, r4, #0 movs r1, #0 bl sub_080213D0 _0802116C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08021170 sub_08021170: @ 0x08021170 push {lr} adds r2, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08021198 adds r1, r2, #0 adds r1, #0x7b ldrb r0, [r1] cmp r0, #0 beq _08021190 subs r0, #1 strb r0, [r1] b _0802119E _08021190: adds r0, r2, #0 bl sub_08021390 b _0802119E _08021198: adds r0, r2, #0 bl sub_080042B8 _0802119E: pop {pc} thumb_func_start sub_080211A0 sub_080211A0: @ 0x080211A0 push {r4, lr} adds r4, r0, #0 bl sub_080214FC cmp r0, #0 beq _080211B4 adds r0, r4, #0 bl sub_08021390 b _080211CE _080211B4: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080211CE adds r0, r4, #0 bl sub_080213B0 _080211CE: pop {r4, pc} thumb_func_start sub_080211D0 sub_080211D0: @ 0x080211D0 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_0802159C adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080211F2 adds r0, r4, #0 bl sub_08021390 _080211F2: pop {r4, pc} thumb_func_start sub_080211F4 sub_080211F4: @ 0x080211F4 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_08021600 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08021216 adds r0, r4, #0 bl sub_08021390 _08021216: pop {r4, pc} thumb_func_start sub_08021218 sub_08021218: @ 0x08021218 push {r4, lr} adds r3, r0, #0 adds r4, r3, #0 adds r4, #0x74 ldrb r0, [r4] cmp r0, r1 bne _0802122C ldrb r0, [r3, #0x14] cmp r0, r2 beq _08021244 _0802122C: strb r2, [r3, #0x14] strb r1, [r4] lsls r0, r1, #1 ldr r1, _08021248 @ =gUnk_080CAB14 adds r0, r0, r1 ldrb r1, [r0, #1] strh r1, [r3, #0x12] ldrb r1, [r0] adds r1, r1, r2 adds r0, r3, #0 bl sub_080042AC _08021244: pop {r4, pc} .align 2, 0 _08021248: .4byte gUnk_080CAB14 thumb_func_start sub_0802124C sub_0802124C: @ 0x0802124C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0x14] ldrb r1, [r4, #0x15] bl sub_08021274 adds r2, r0, #0 cmp r2, #0xff beq _0802126C adds r0, r4, #0 adds r0, #0x74 ldrb r1, [r0] adds r0, r4, #0 bl sub_08021218 b _08021272 _0802126C: adds r0, r4, #0 bl sub_080042B8 _08021272: pop {r4, pc} thumb_func_start sub_08021274 sub_08021274: @ 0x08021274 push {lr} adds r2, r0, #0 movs r0, #7 ands r0, r1 subs r0, #3 cmp r0, #2 bhi _0802129A movs r3, #0x18 adds r0, r1, #0 ands r0, r3 lsrs r0, r0, #3 cmp r0, r2 beq _080212AA adds r0, r1, #0 adds r0, #8 ands r0, r3 lsrs r0, r0, #3 cmp r0, r2 beq _080212AA _0802129A: adds r0, r1, #4 movs r1, #0x18 ands r0, r1 lsrs r1, r0, #3 cmp r2, r1 beq _080212AA adds r0, r1, #0 b _080212AC _080212AA: movs r0, #0xff _080212AC: pop {pc} .align 2, 0 thumb_func_start sub_080212B0 sub_080212B0: @ 0x080212B0 push {r4, r5, lr} adds r5, r0, #0 adds r1, r5, #0 adds r1, #0x75 ldrb r0, [r1] cmp r0, #1 beq _080212D0 cmp r0, #2 beq _080212DC movs r0, #1 strb r0, [r1] ldr r4, _080212CC @ =gUnk_080CAB3A b _080212E2 .align 2, 0 _080212CC: .4byte gUnk_080CAB3A _080212D0: movs r0, #2 strb r0, [r1] ldr r4, _080212D8 @ =gUnk_080CAB42 b _080212E2 .align 2, 0 _080212D8: .4byte gUnk_080CAB42 _080212DC: movs r0, #0 strb r0, [r1] ldr r4, _0802131C @ =gUnk_080CAB4A _080212E2: bl sub_08000E50 movs r1, #7 ands r1, r0 adds r1, r1, r4 ldrb r2, [r1] ldrb r0, [r5, #0xa] cmp r0, #1 bhi _08021306 cmp r2, #2 bne _08021306 ldr r4, _08021320 @ =gUnk_080CAB52 bl sub_08000E50 movs r1, #3 ands r1, r0 adds r1, r1, r4 ldrb r2, [r1] _08021306: movs r0, #0 str r0, [r5, #0x54] ldr r1, _08021324 @ =gUnk_080CAB58 lsls r0, r2, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _0802131C: .4byte gUnk_080CAB4A _08021320: .4byte gUnk_080CAB52 _08021324: .4byte gUnk_080CAB58 thumb_func_start sub_08021328 sub_08021328: @ 0x08021328 push {lr} movs r1, #0xd strb r1, [r0, #0xc] ldr r2, _08021348 @ =gUnk_080CAB68 ldrb r1, [r0, #0xa] adds r1, r1, r2 ldrb r2, [r1] adds r1, r0, #0 adds r1, #0x7c strb r2, [r1] ldrb r2, [r0, #0x14] movs r1, #0xc bl sub_08021218 pop {pc} .align 2, 0 _08021348: .4byte gUnk_080CAB68 thumb_func_start sub_0802134C sub_0802134C: @ 0x0802134C push {lr} movs r1, #0xf strb r1, [r0, #0xc] ldrb r1, [r0, #0x14] lsls r1, r1, #3 strb r1, [r0, #0x15] movs r1, #0x80 lsls r1, r1, #2 strh r1, [r0, #0x24] adds r2, r0, #0 adds r2, #0x76 movs r1, #0x78 strh r1, [r2] ldrb r2, [r0, #0x14] movs r1, #0xe bl sub_08021218 pop {pc} thumb_func_start sub_08021370 sub_08021370: @ 0x08021370 push {lr} movs r1, #0x12 strb r1, [r0, #0xc] ldrb r2, [r0, #0x14] movs r1, #0x10 bl sub_08021218 pop {pc} thumb_func_start sub_08021380 sub_08021380: @ 0x08021380 push {lr} movs r1, #0x13 strb r1, [r0, #0xc] ldrb r2, [r0, #0x14] movs r1, #0x11 bl sub_08021218 pop {pc} thumb_func_start sub_08021390 sub_08021390: @ 0x08021390 push {lr} movs r1, #7 strb r1, [r0, #0xc] movs r1, #0x80 lsls r1, r1, #2 strh r1, [r0, #0x24] adds r2, r0, #0 adds r2, #0x3f movs r1, #0x56 strb r1, [r2] ldrb r2, [r0, #0x14] movs r1, #6 bl sub_08021218 pop {pc} .align 2, 0 thumb_func_start sub_080213B0 sub_080213B0: @ 0x080213B0 push {lr} movs r1, #3 strb r1, [r0, #0xc] movs r1, #1 strb r1, [r0, #0xe] movs r1, #0xc0 strh r1, [r0, #0x24] adds r2, r0, #0 adds r2, #0x76 movs r1, #0xf0 strh r1, [r2] ldrb r2, [r0, #0x14] movs r1, #3 bl sub_08021218 pop {pc} thumb_func_start sub_080213D0 sub_080213D0: @ 0x080213D0 push {r4, lr} adds r4, r0, #0 movs r0, #0x10 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x7b strb r1, [r0] ldrb r2, [r4, #0x14] adds r0, r4, #0 movs r1, #0xf bl sub_08021218 adds r0, r4, #0 bl sub_08021588 pop {r4, pc} thumb_func_start sub_080213F0 sub_080213F0: @ 0x080213F0 push {lr} movs r1, #6 strb r1, [r0, #0xc] ldrb r2, [r0, #0x14] movs r1, #1 bl sub_08021218 pop {pc} thumb_func_start sub_08021400 sub_08021400: @ 0x08021400 push {lr} movs r1, #9 strb r1, [r0, #0xc] movs r1, #0x60 strh r1, [r0, #0x24] ldrb r2, [r0, #0x14] movs r1, #0xa bl sub_08021218 pop {pc} thumb_func_start sub_08021414 sub_08021414: @ 0x08021414 push {lr} movs r1, #0x11 strb r1, [r0, #0xc] ldrb r2, [r0, #0x14] movs r1, #5 bl sub_08021218 pop {pc} thumb_func_start sub_08021424 sub_08021424: @ 0x08021424 push {r4, r5, lr} adds r5, r0, #0 ldr r0, _08021450 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r5, #0 bl sub_080045C4 adds r1, r0, #0 ldrb r0, [r5, #0x14] bl sub_08021274 adds r4, r0, #0 cmp r4, #0xff beq _08021454 adds r0, r5, #0 adds r0, #0x74 ldrb r1, [r0] adds r0, r5, #0 adds r2, r4, #0 bl sub_08021218 b _08021456 .align 2, 0 _08021450: .4byte gUnk_020000B0 _08021454: ldrb r4, [r5, #0x14] _08021456: cmp r4, #1 beq _08021490 cmp r4, #1 blo _08021478 cmp r4, #2 beq _080214A8 ldr r0, _08021474 @ =gUnk_020000B0 ldr r1, [r0] movs r2, #0x2e ldrsh r0, [r1, r2] adds r2, r0, #0 adds r2, #0x24 movs r4, #0x32 ldrsh r3, [r1, r4] b _080214B8 .align 2, 0 _08021474: .4byte gUnk_020000B0 _08021478: ldr r0, _0802148C @ =gUnk_020000B0 ldr r0, [r0] movs r1, #0x2e ldrsh r2, [r0, r1] movs r4, #0x32 ldrsh r0, [r0, r4] adds r3, r0, #0 adds r3, #0x2c b _080214B8 .align 2, 0 _0802148C: .4byte gUnk_020000B0 _08021490: ldr r0, _080214A4 @ =gUnk_020000B0 ldr r1, [r0] movs r2, #0x2e ldrsh r0, [r1, r2] adds r2, r0, #0 subs r2, #0x24 movs r4, #0x32 ldrsh r3, [r1, r4] b _080214B8 .align 2, 0 _080214A4: .4byte gUnk_020000B0 _080214A8: ldr r0, _080214F0 @ =gUnk_020000B0 ldr r0, [r0] movs r1, #0x2e ldrsh r2, [r0, r1] movs r4, #0x32 ldrsh r0, [r0, r4] adds r3, r0, #0 subs r3, #0x1d _080214B8: movs r1, #0x2e ldrsh r0, [r5, r1] subs r0, r2, r0 adds r0, #3 cmp r0, #6 bhi _080214D0 movs r4, #0x32 ldrsh r0, [r5, r4] subs r0, r3, r0 adds r0, #2 cmp r0, #4 bls _080214E8 _080214D0: movs r1, #0x2e ldrsh r0, [r5, r1] movs r4, #0x32 ldrsh r1, [r5, r4] bl sub_080045D4 strb r0, [r5, #0x15] adds r0, r5, #0 bl sub_080AEF88 cmp r0, #0 bne _080214F4 _080214E8: adds r0, r5, #0 bl sub_080212B0 b _080214FA .align 2, 0 _080214F0: .4byte gUnk_020000B0 _080214F4: adds r0, r5, #0 bl sub_080042B8 _080214FA: pop {r4, r5, pc} thumb_func_start sub_080214FC sub_080214FC: @ 0x080214FC push {r4, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0802153C ldr r0, _08021538 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl sub_080045C4 adds r2, r0, #0 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x1f ands r0, r1 subs r0, r2, r0 subs r0, #2 cmp r0, #4 bhi _0802153C adds r0, r2, #4 movs r1, #0x18 ands r0, r1 lsrs r0, r0, #3 strb r0, [r4, #0x14] movs r0, #1 b _0802153E .align 2, 0 _08021538: .4byte gUnk_020000B0 _0802153C: movs r0, #0 _0802153E: pop {r4, pc} thumb_func_start sub_08021540 sub_08021540: @ 0x08021540 push {r4, r5, lr} adds r4, r0, #0 bl sub_08000E50 adds r5, r0, #0 adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 bne _08021566 movs r0, #1 ands r0, r5 cmp r0, #0 beq _08021566 adds r0, r4, #0 bl sub_08049EE4 adds r1, r0, #4 b _08021568 _08021566: lsrs r1, r5, #0x10 _08021568: movs r0, #0x18 ands r1, r0 strb r1, [r4, #0x15] ldrb r0, [r4, #0x14] bl sub_08021274 adds r2, r0, #0 cmp r2, #0xff beq _08021582 adds r0, r4, #0 movs r1, #3 bl sub_08021218 _08021582: movs r0, #0x1e strb r0, [r4, #0xe] pop {r4, r5, pc} thumb_func_start sub_08021588 sub_08021588: @ 0x08021588 push {lr} adds r2, r0, #0 ldr r1, [r2, #0x54] cmp r1, #0 beq _08021598 movs r0, #0 str r0, [r1, #0x50] str r0, [r2, #0x54] _08021598: pop {pc} .align 2, 0 thumb_func_start sub_0802159C sub_0802159C: @ 0x0802159C push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] adds r0, r1, #0 cmp r0, #1 bne _080215D4 movs r0, #0 strb r0, [r2] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x51 strb r0, [r1] adds r0, r4, #0 movs r1, #0 movs r2, #3 bl sub_0804A98C cmp r0, #0 beq _080215CA str r4, [r0, #0x50] str r0, [r4, #0x54] _080215CA: movs r0, #0x8b lsls r0, r0, #1 bl sub_08004488 b _080215F8 _080215D4: cmp r0, #2 bne _080215E4 movs r0, #0 strb r0, [r2] adds r0, r4, #0 bl sub_08021588 b _080215F8 _080215E4: movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _080215F8 movs r0, #0xdf ands r0, r1 strb r0, [r2] ldr r0, _080215FC @ =0x00000115 bl sub_08004488 _080215F8: pop {r4, pc} .align 2, 0 _080215FC: .4byte 0x00000115 thumb_func_start sub_08021600 sub_08021600: @ 0x08021600 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x5a ldrb r0, [r1] cmp r0, #1 bne _08021634 movs r0, #0 strb r0, [r1] subs r1, #0x1b movs r0, #0x51 strb r0, [r1] adds r0, r4, #0 movs r1, #0 movs r2, #4 bl sub_0804A98C cmp r0, #0 beq _0802162A str r4, [r0, #0x50] str r0, [r4, #0x54] _0802162A: movs r0, #0x87 lsls r0, r0, #1 bl sub_08004488 b _08021642 _08021634: cmp r0, #2 bne _08021642 movs r0, #0 strb r0, [r1] adds r0, r4, #0 bl sub_08021588 _08021642: pop {r4, pc} thumb_func_start sub_08021644 sub_08021644: @ 0x08021644 push {lr} adds r2, r0, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _08021660 movs r0, #0xdf ands r0, r1 strb r0, [r2] movs r0, #0x7d bl sub_08004488 _08021660: pop {pc} .align 2, 0 thumb_func_start sub_08021664 sub_08021664: @ 0x08021664 push {lr} ldrb r2, [r0, #0x14] cmp r2, #1 beq _08021690 cmp r2, #1 bgt _08021676 cmp r2, #0 beq _08021680 b _08021698 _08021676: cmp r2, #2 beq _08021688 cmp r2, #3 beq _08021690 b _08021698 _08021680: movs r2, #0x22 bl sub_08049F1C b _0802169A _08021688: movs r2, #0x13 bl sub_08049F1C b _0802169A _08021690: movs r2, #0x1a bl sub_08049F1C b _0802169A _08021698: movs r0, #0 _0802169A: pop {pc} thumb_func_start sub_0802169C sub_0802169C: @ 0x0802169C push {lr} ldrb r2, [r0, #0x14] cmp r2, #1 beq _080216C0 cmp r2, #1 bgt _080216AE cmp r2, #0 beq _080216B8 b _080216CE _080216AE: cmp r2, #2 beq _080216BC cmp r2, #3 beq _080216C0 b _080216CE _080216B8: movs r2, #0x2c b _080216C2 _080216BC: movs r2, #0x1d b _080216C2 _080216C0: movs r2, #0x24 _080216C2: bl sub_08049F1C cmp r0, #0 bne _080216CE movs r0, #1 b _080216D0 _080216CE: movs r0, #0 _080216D0: pop {pc} .align 2, 0 thumb_func_start sub_080216D4 sub_080216D4: @ 0x080216D4 push {lr} ldr r1, _080216E0 @ =gUnk_080CB570 bl sub_0800129E pop {pc} .align 2, 0 _080216E0: .4byte gUnk_080CB570 thumb_func_start sub_080216E4 sub_080216E4: @ 0x080216E4 push {lr} ldr r2, _080216F8 @ =gUnk_080CB588 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080216F8: .4byte gUnk_080CB588 thumb_func_start sub_080216FC sub_080216FC: @ 0x080216FC push {lr} adds r2, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0802171A adds r0, r2, #0 movs r1, #3 movs r2, #0x80 bl sub_080A29AC bl sub_0805E780 _0802171A: pop {pc} thumb_func_start nullsub_7 nullsub_7: @ 0x0802171C bx lr .align 2, 0 thumb_func_start sub_08021720 sub_08021720: @ 0x08021720 movs r3, #1 movs r1, #1 strb r1, [r0, #0xc] ldrb r2, [r0, #0x18] subs r1, #5 ands r1, r2 orrs r1, r3 strb r1, [r0, #0x18] ldrb r1, [r0, #0xa] strb r1, [r0, #0x1e] ldrb r2, [r0, #0x19] movs r1, #0x3f ands r1, r2 movs r2, #0x40 orrs r1, r2 strb r1, [r0, #0x19] adds r0, #0x29 ldrb r2, [r0] movs r1, #8 rsbs r1, r1, #0 ands r1, r2 movs r2, #3 orrs r1, r2 strb r1, [r0] bx lr .align 2, 0 thumb_func_start nullsub_08 nullsub_08: @ 0x08021754 bx lr .align 2, 0 thumb_func_start sub_08021758 sub_08021758: @ 0x08021758 push {lr} ldr r1, _08021764 @ =gUnk_080CB590 bl sub_0800129E pop {pc} .align 2, 0 _08021764: .4byte gUnk_080CB590 thumb_func_start sub_08021768 sub_08021768: @ 0x08021768 push {lr} ldr r2, _0802177C @ =gUnk_080CB5A8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802177C: .4byte gUnk_080CB5A8 thumb_func_start sub_08021780 sub_08021780: @ 0x08021780 push {r4, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x80 beq _08021792 cmp r0, #0x93 beq _080217F4 b _080217FA _08021792: ldr r0, _080217A4 @ =gUnk_03003F80 adds r0, #0xa8 ldrb r0, [r0] cmp r0, #0x18 bne _080217A8 adds r0, r4, #0 bl sub_08021768 b _080217FA .align 2, 0 _080217A4: .4byte gUnk_03003F80 _080217A8: movs r1, #0 movs r0, #5 strb r0, [r4, #0xc] movs r0, #0xb4 strb r0, [r4, #0xe] strb r1, [r4, #0xf] 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, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r2] ldr r0, _080217EC @ =gUnk_03001160 adds r1, r4, #0 bl sub_0806FA6C ldr r0, _080217F0 @ =0x0000FFFF strh r0, [r4, #0x36] adds r1, r4, #0 adds r1, #0x87 movs r0, #1 strb r0, [r1] adds r0, r4, #0 movs r1, #6 bl sub_08004260 b _080217FA .align 2, 0 _080217EC: .4byte gUnk_03001160 _080217F0: .4byte 0x0000FFFF _080217F4: adds r0, r4, #0 bl sub_08021768 _080217FA: adds r0, r4, #0 adds r0, #0x45 ldrb r1, [r0] cmp r1, #0 bne _08021808 subs r0, #3 strb r1, [r0] _08021808: ldr r1, _08021814 @ =gUnk_080CB590 adds r0, r4, #0 bl sub_0804AA30 pop {r4, pc} .align 2, 0 _08021814: .4byte gUnk_080CB590 thumb_func_start sub_08021818 sub_08021818: @ 0x08021818 push {lr} adds r3, r0, #0 ldrb r0, [r3, #0xa] cmp r0, #0 bne _0802182A adds r0, r3, #0 bl sub_0804A7D4 b _08021844 _0802182A: ldr r2, [r3, #0x50] cmp r2, #0 beq _0802183A ldrb r0, [r2, #0xf] subs r0, #1 movs r1, #0 strb r0, [r2, #0xf] str r1, [r3, #0x50] _0802183A: adds r0, r3, #0 movs r1, #0xf0 movs r2, #0 bl sub_0804A7E0 _08021844: pop {pc} .align 2, 0 thumb_func_start sub_08021848 sub_08021848: @ 0x08021848 push {r4, lr} adds r4, r0, #0 bl sub_0806F520 adds r1, r0, #0 cmp r1, #0 beq _0802186C ldr r0, _08021868 @ =gUnk_080CB5C8 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 b _0802187A .align 2, 0 _08021868: .4byte gUnk_080CB5C8 _0802186C: movs r0, #3 strb r0, [r4, #0xc] strh r1, [r4, #0x36] adds r0, r4, #0 movs r1, #2 bl sub_08004260 _0802187A: pop {r4, pc} thumb_func_start sub_0802187C sub_0802187C: @ 0x0802187C movs r1, #2 strb r1, [r0, #0xd] bx lr .align 2, 0 thumb_func_start nullsub_130 nullsub_130: @ 0x08021884 bx lr .align 2, 0 thumb_func_start sub_08021888 sub_08021888: @ 0x08021888 push {r4, lr} adds r4, r0, #0 bl sub_0806F3E4 cmp r0, #0 beq _0802189A adds r0, r4, #0 bl sub_08021818 _0802189A: pop {r4, pc} thumb_func_start sub_0802189C sub_0802189C: @ 0x0802189C push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r0, #1 strb r0, [r4, #0xc] strb r0, [r4, #0x1c] adds r0, r4, #0 movs r1, #3 bl sub_08004260 pop {r4, pc} thumb_func_start sub_080218B4 sub_080218B4: @ 0x080218B4 push {lr} ldr r2, _080218C8 @ =gUnk_080CB5D4 ldrb r1, [r0, #0xb] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080218C8: .4byte gUnk_080CB5D4 thumb_func_start sub_080218CC sub_080218CC: @ 0x080218CC push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r0, [r5, #0xd] cmp r0, #0 bne _08021916 movs r2, #1 movs r0, #1 strb r0, [r5, #0xd] ldrb r1, [r5, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r5, #0x18] adds r0, r5, #0 movs r1, #1 bl sub_08049F84 adds r4, r0, #0 bl sub_08000E50 movs r1, #0x10 eors r4, r1 ldr r2, _08021980 @ =gUnk_080CB5DC movs r1, #7 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] adds r0, r0, r4 movs r1, #0x1f ands r0, r1 strb r0, [r5, #0x15] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r5, #0x24] movs r0, #0x90 lsls r0, r0, #9 str r0, [r5, #0x20] _08021916: adds r0, r5, #0 bl sub_08004274 adds r2, r5, #0 adds r2, #0x5a ldrb r1, [r2] movs r6, #1 adds r0, r6, #0 ands r0, r1 adds r4, r2, #0 cmp r0, #0 beq _08021948 adds r0, r5, #0 bl sub_080AEFE0 movs r1, #0xe0 lsls r1, r1, #5 adds r0, r5, #0 bl sub_080044EC cmp r0, #0 bne _08021948 adds r0, r5, #0 adds r0, #0x59 strb r6, [r0] _08021948: ldrb r1, [r4] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0802197C movs r0, #2 strb r0, [r5, #0xc] bl sub_08000E50 movs r1, #0x38 ands r0, r1 adds r0, #8 strb r0, [r5, #0xe] movs r0, #1 strb r0, [r5, #0xf] ldrb r1, [r5, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r5, #0x10] movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r5, #0x24] adds r0, r5, #0 movs r1, #0 bl sub_08004260 _0802197C: pop {r4, r5, r6, pc} .align 2, 0 _08021980: .4byte gUnk_080CB5DC thumb_func_start sub_08021984 sub_08021984: @ 0x08021984 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #0 bne _080219C2 movs r0, #1 strb r0, [r4, #0xd] 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 r0, _08021A08 @ =0x0000FF80 strh r0, [r4, #0x36] 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] ldr r0, _08021A0C @ =0x0000012D bl sub_08004488 _080219C2: movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08021A04 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x10 strb r0, [r4, #0xe] movs r2, #1 movs r0, #1 strb r0, [r4, #0xf] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r4, #0x24] adds r1, r4, #0 adds r1, #0x86 movs r0, #0x3c strb r0, [r1] adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08016A04 _08021A04: pop {r4, pc} .align 2, 0 _08021A08: .4byte 0x0000FF80 _08021A0C: .4byte 0x0000012D thumb_func_start sub_08021A10 sub_08021A10: @ 0x08021A10 push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldr r1, _08021A60 @ =gUnk_03001160 adds r0, r4, #0 movs r2, #0x78 movs r3, #0x50 bl sub_080041A0 cmp r0, #0 beq _08021A5E adds r0, r4, #0 bl sub_08021D00 cmp r0, #0 bne _08021A5E ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08021A5E movs r0, #3 strb r0, [r4, #0xc] bl sub_08000E50 movs r1, #0x3f ands r0, r1 adds r0, #0x1e strb r0, [r4, #0xe] ldrb r1, [r4, #0x15] adds r0, r4, #0 bl sub_08021D44 adds r0, r4, #0 movs r1, #2 bl sub_08004260 _08021A5E: pop {r4, pc} .align 2, 0 _08021A60: .4byte gUnk_03001160 thumb_func_start sub_08021A64 sub_08021A64: @ 0x08021A64 push {r4, r5, lr} adds r4, r0, #0 bl sub_08021D00 cmp r0, #0 bne _08021AD4 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r5, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _08021A96 movs r0, #2 strb r0, [r4, #0xc] bl sub_08000E50 movs r1, #0x1f ands r0, r1 adds r0, #0x1e strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0 bl sub_08004260 _08021A96: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] ands r0, r5 cmp r0, #0 bne _08021AC8 movs r0, #8 strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 adds r1, r0, #0 cmp r1, #0xff bne _08021AC2 movs r0, #7 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_08004260 b _08021AD4 _08021AC2: adds r0, r4, #0 bl sub_08021D44 _08021AC8: adds r0, r4, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_08004274 _08021AD4: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08021AD8 sub_08021AD8: @ 0x08021AD8 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08021B3A ldrb r0, [r4, #0xe] cmp r0, #0 beq _08021B1E movs r0, #0 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 cmp r0, #0xff bne _08021B16 movs r0, #2 strb r0, [r4, #0xc] movs r0, #8 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0 bl sub_08004260 b _08021B60 _08021B16: strb r0, [r4, #0x15] movs r0, #0x7c bl sub_08004488 _08021B1E: adds r0, r4, #0 bl sub_080AEFE0 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08021B3A adds r1, r4, #0 adds r1, #0x59 movs r0, #1 strb r0, [r1] _08021B3A: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08021B60 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x14 strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x86 movs r0, #0x3c strb r0, [r1] adds r0, r4, #0 movs r1, #0 bl sub_08004260 _08021B60: pop {r4, pc} .align 2, 0 thumb_func_start sub_08021B64 sub_08021B64: @ 0x08021B64 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r0, _08021B88 @ =gUnk_03003F80 ldr r1, [r0, #0x30] movs r2, #4 ands r1, r2 adds r6, r0, #0 cmp r1, #0 beq _08021B8C movs r1, #0 movs r0, #3 strb r0, [r4, #0xc] str r1, [r4, #0x34] adds r0, r4, #0 movs r1, #2 bl sub_08004260 b _08021C4E .align 2, 0 _08021B88: .4byte gUnk_03003F80 _08021B8C: movs r5, #1 adds r0, r6, #0 adds r0, #0xa8 ldrb r0, [r0] cmp r0, #0xb beq _08021BBA cmp r0, #0x14 beq _08021BBA bl sub_0807953C cmp r0, #0 beq _08021BAE ldrb r1, [r4, #0xa] lsls r0, r1, #1 adds r0, r0, r1 adds r5, r0, #0 adds r5, #8 _08021BAE: ldrb r0, [r4, #0xe] subs r5, r0, r5 cmp r5, #0 bge _08021BB8 movs r5, #0 _08021BB8: strb r5, [r4, #0xe] _08021BBA: ldr r0, [r6, #0x30] movs r1, #0x88 lsls r1, r1, #1 ands r0, r1 cmp r0, #0 beq _08021BC8 movs r5, #0 _08021BC8: cmp r5, #0 bne _08021C04 movs r0, #6 strb r0, [r4, #0xc] movs r0, #0x80 lsls r0, r0, #9 str r0, [r4, #0x20] adds r0, r4, #0 adds r0, #0x87 strb r5, [r0] ldr r2, _08021BEC @ =gUnk_03001160 ldrb r1, [r2, #0x15] adds r0, r1, #0 cmp r0, #0xff beq _08021BF0 movs r0, #0x10 b _08021BF6 .align 2, 0 _08021BEC: .4byte gUnk_03001160 _08021BF0: ldrb r0, [r2, #0x14] lsls r0, r0, #2 movs r1, #0x10 _08021BF6: eors r0, r1 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #5 bl sub_08004260 b _08021C4E _08021C04: ldrb r1, [r6, #0x1a] movs r0, #0x80 orrs r0, r1 strb r0, [r6, #0x1a] adds r1, r6, #0 adds r1, #0x80 ldrh r0, [r1] subs r0, #0x50 strh r0, [r1] adds r1, #0x2a ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, _08021C50 @ =gUnk_03001160 adds r1, r4, #0 bl sub_0806FA6C ldr r2, _08021C54 @ =gUnk_080CB5E4 ldrb r1, [r4, #0xf] adds r0, r1, #1 strb r0, [r4, #0xf] movs r0, #0xe ands r0, r1 lsrs r0, r0, #1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r4, #0x2e] adds r0, r0, r1 strh r0, [r4, #0x2e] ldrh r0, [r4, #0x36] subs r0, #1 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_08004274 _08021C4E: pop {r4, r5, r6, pc} .align 2, 0 _08021C50: .4byte gUnk_03001160 _08021C54: .4byte gUnk_080CB5E4 thumb_func_start sub_08021C58 sub_08021C58: @ 0x08021C58 push {r4, r5, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r5, #1 adds r0, r5, #0 ands r0, r1 cmp r0, #0 beq _08021C8A adds r0, r4, #0 bl sub_080AEFE0 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08021C8A adds r0, r4, #0 adds r0, #0x59 strb r5, [r0] _08021C8A: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08021CCC movs r0, #2 strb r0, [r4, #0xc] movs r2, #0x3c strb r2, [r4, #0xe] movs r0, #1 strb r0, [r4, #0xf] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r3, r4, #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 r0, r4, #0 adds r0, #0x86 strb r2, [r0] adds r0, r4, #0 movs r1, #0 bl sub_08004260 _08021CCC: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08021CD0 sub_08021CD0: @ 0x08021CD0 push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _08021CE6 adds r0, r4, #0 bl sub_08004274 _08021CE6: adds r0, r4, #0 movs r1, #1 bl sub_08049F84 cmp r0, #0xff beq _08021CFE movs r0, #3 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_08004260 _08021CFE: pop {r4, pc} thumb_func_start sub_08021D00 sub_08021D00: @ 0x08021D00 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x86 ldrb r0, [r1] cmp r0, #0 beq _08021D16 subs r0, #1 strb r0, [r1] movs r0, #0 b _08021D40 _08021D16: adds r0, r4, #0 movs r1, #1 movs r2, #0x10 bl sub_08049F64 cmp r0, #0 bne _08021D28 movs r0, #0 b _08021D40 _08021D28: movs r0, #4 strb r0, [r4, #0xc] movs r0, #1 strb r0, [r4, #0xe] movs r0, #0xc0 lsls r0, r0, #9 str r0, [r4, #0x20] adds r0, r4, #0 movs r1, #4 bl sub_08004260 movs r0, #1 _08021D40: pop {r4, pc} .align 2, 0 thumb_func_start sub_08021D44 sub_08021D44: @ 0x08021D44 push {lr} adds r2, r0, #0 adds r1, #4 movs r0, #0x18 ands r1, r0 strb r1, [r2, #0x15] movs r0, #8 ands r1, r0 cmp r1, #0 beq _08021D5E movs r0, #0xc0 lsls r0, r0, #1 b _08021D60 _08021D5E: movs r0, #0xc0 _08021D60: strh r0, [r2, #0x24] pop {pc} thumb_func_start sub_08021D64 sub_08021D64: @ 0x08021D64 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _08021D7C @ =gUnk_080CB69C bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _08021D7C: .4byte gUnk_080CB69C thumb_func_start sub_08021D80 sub_08021D80: @ 0x08021D80 push {lr} ldr r2, _08021D94 @ =gUnk_080CB6B4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08021D94: .4byte gUnk_080CB6B4 thumb_func_start sub_08021D98 sub_08021D98: @ 0x08021D98 push {lr} ldr r1, _08021DA4 @ =gUnk_080CB69C bl sub_0804AA30 pop {pc} .align 2, 0 _08021DA4: .4byte gUnk_080CB69C thumb_func_start sub_08021DA8 sub_08021DA8: @ 0x08021DA8 push {r4, lr} adds r4, r0, #0 bl sub_0806F520 cmp r0, #0 beq _08021DC4 ldr r0, _08021DC8 @ =gUnk_080CB6C4 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _08021DC4: pop {r4, pc} .align 2, 0 _08021DC8: .4byte gUnk_080CB6C4 thumb_func_start sub_08021DCC sub_08021DCC: @ 0x08021DCC movs r1, #2 strb r1, [r0, #0xd] bx lr .align 2, 0 thumb_func_start sub_08021DD4 sub_08021DD4: @ 0x08021DD4 push {lr} bl sub_0806F4E8 pop {pc} thumb_func_start sub_08021DDC sub_08021DDC: @ 0x08021DDC push {r4, lr} adds r4, r0, #0 bl sub_0806F3E4 cmp r0, #0 beq _08021DEE adds r0, r4, #0 bl sub_0804A7D4 _08021DEE: pop {r4, pc} thumb_func_start sub_08021DF0 sub_08021DF0: @ 0x08021DF0 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 ldrb r0, [r4, #0xa] cmp r0, #0 beq _08021E14 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] ldr r0, _08021E48 @ =0x0000FFF0 strh r0, [r4, #0x36] _08021E14: bl sub_08000E50 movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] movs r0, #1 strb r0, [r4, #0x1c] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #9 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x38 movs r0, #3 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 bl sub_08021EF0 pop {r4, pc} .align 2, 0 _08021E48: .4byte 0x0000FFF0 thumb_func_start sub_08021E4C sub_08021E4C: @ 0x08021E4C push {r4, r5, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x78 ldrh r0, [r1] cmp r0, #0 beq _08021E5E subs r0, #1 strh r0, [r1] _08021E5E: adds r1, r4, #0 adds r1, #0x7a ldrh r0, [r1] cmp r0, #0 beq _08021E6C subs r0, #1 strh r0, [r1] _08021E6C: adds r0, r4, #0 bl sub_08004274 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x80 ands r0, r1 adds r5, r2, #0 cmp r0, #0 beq _08021E8A adds r0, r4, #0 bl sub_08021F24 b _08021E90 _08021E8A: adds r0, r4, #0 bl sub_080AEFB4 _08021E90: ldr r1, _08021EA0 @ =gUnk_080CB6D0 ldrb r0, [r5] adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x63 strb r1, [r0] pop {r4, r5, pc} .align 2, 0 _08021EA0: .4byte gUnk_080CB6D0 thumb_func_start sub_08021EA4 sub_08021EA4: @ 0x08021EA4 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 _08021EBA adds r0, r1, #0 bl sub_08021EF0 _08021EBA: pop {pc} thumb_func_start sub_08021EBC sub_08021EBC: @ 0x08021EBC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08021ECC subs r0, #1 strb r0, [r4, #0xe] b _08021EE8 _08021ECC: ldr r0, _08021EEC @ =gUnk_03001160 movs r2, #0x2e ldrsh r1, [r0, r2] movs r3, #0x32 ldrsh r2, [r0, r3] adds r0, r4, #0 movs r3, #0x70 bl sub_0806FCB8 cmp r0, #0 beq _08021EE8 adds r0, r4, #0 bl sub_08021EF0 _08021EE8: pop {r4, pc} .align 2, 0 _08021EEC: .4byte gUnk_03001160 thumb_func_start sub_08021EF0 sub_08021EF0: @ 0x08021EF0 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] bl sub_08000E50 ldr r2, _08021F20 @ =gUnk_080CB6D6 movs r1, #0xf ands r1, r0 lsls r1, r1, #1 adds r1, r1, r2 ldrh r1, [r1] adds r0, r4, #0 adds r0, #0x78 strh r1, [r0] adds r1, r4, #0 adds r1, #0x7a movs r0, #0x3c strh r0, [r1] adds r0, r4, #0 movs r1, #0 bl sub_08004260 pop {r4, pc} .align 2, 0 _08021F20: .4byte gUnk_080CB6D6 thumb_func_start sub_08021F24 sub_08021F24: @ 0x08021F24 push {r4, lr} adds r4, r0, #0 adds r0, #0x78 ldrh r0, [r0] cmp r0, #0 bne _08021F48 movs r0, #2 strb r0, [r4, #0xc] bl sub_08000E50 ldr r2, _08021F44 @ =gUnk_080CB6F6 movs r1, #0xf ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] b _08021F6E .align 2, 0 _08021F44: .4byte gUnk_080CB6F6 _08021F48: adds r0, r4, #0 adds r0, #0x7a ldrh r0, [r0] cmp r0, #0 bne _08021F80 ldr r0, _08021F7C @ =gUnk_03001160 movs r2, #0x2e ldrsh r1, [r0, r2] movs r3, #0x32 ldrsh r2, [r0, r3] adds r0, r4, #0 movs r3, #0x70 bl sub_0806FCB8 cmp r0, #0 bne _08021F80 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x1e _08021F6E: strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #1 bl sub_08004260 b _08021FA4 .align 2, 0 _08021F7C: .4byte gUnk_03001160 _08021F80: adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 beq _08021F94 bl sub_08000E50 movs r1, #0x1f ands r0, r1 b _08021F9A _08021F94: adds r0, r4, #0 bl sub_08049EE4 _08021F9A: strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #0 bl sub_08004260 _08021FA4: pop {r4, pc} .align 2, 0 thumb_func_start sub_08021FA8 sub_08021FA8: @ 0x08021FA8 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _08021FD4 @ =gUnk_080CB734 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r5 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldr r1, _08021FD8 @ =gUnk_080CB8A4 ldrb r0, [r4, #0xb] lsls r0, r0, #2 adds r0, r0, r1 ldrb r1, [r4, #0x1e] ldr r0, [r0] lsls r1, r1, #2 adds r1, r1, r0 ldr r0, [r1] str r0, [r4, #0x48] pop {r4, r5, pc} .align 2, 0 _08021FD4: .4byte gUnk_080CB734 _08021FD8: .4byte gUnk_080CB8A4 thumb_func_start sub_08021FDC sub_08021FDC: @ 0x08021FDC push {lr} ldr r2, _08021FF0 @ =gUnk_080CB74C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08021FF0: .4byte gUnk_080CB74C thumb_func_start sub_08021FF4 sub_08021FF4: @ 0x08021FF4 push {lr} ldr r1, _08022000 @ =gUnk_080CB734 bl sub_0804AA30 pop {pc} .align 2, 0 _08022000: .4byte gUnk_080CB734 thumb_func_start sub_08022004 sub_08022004: @ 0x08022004 push {r4, lr} adds r4, r0, #0 adds r0, #0x7c ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x7e ldrh r1, [r1] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E adds r0, r4, #0 movs r1, #5 movs r2, #0 bl sub_080A29AC adds r0, r4, #0 bl sub_08049CF4 bl sub_0805E780 pop {r4, pc} .align 2, 0 thumb_func_start sub_08022034 sub_08022034: @ 0x08022034 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0xa] movs r0, #3 ands r0, r1 strb r0, [r4, #0xb] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #5 orrs r0, r1 strb r0, [r2] ldr r2, _08022098 @ =gUnk_080CB764 ldrb r0, [r4, #0xb] lsls r0, r0, #1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r4, #0x2e] adds r0, r0, r1 adds r1, r4, #0 adds r1, #0x78 strh r0, [r1] ldrb r0, [r4, #0xb] lsls r0, r0, #1 adds r0, #1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r4, #0x32] adds r0, r0, r1 adds r1, r4, #0 adds r1, #0x7a strh r0, [r1] ldrb r1, [r4, #0xb] adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_080221C0 pop {r4, pc} .align 2, 0 _08022098: .4byte gUnk_080CB764 thumb_func_start sub_0802209C sub_0802209C: @ 0x0802209C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 bne _080220D2 adds r0, r4, #0 adds r0, #0x78 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x7a ldrh r1, [r1] movs r2, #0x10 movs r3, #0x10 bl sub_0806FBFC cmp r0, #0 beq _080220D6 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x12 strb r0, [r4, #0xe] ldrb r1, [r4, #0xb] adds r1, #4 adds r0, r4, #0 bl sub_08004260 b _080220D6 _080220D2: subs r0, #1 strb r0, [r4, #0xe] _080220D6: pop {r4, pc} thumb_func_start sub_080220D8 sub_080220D8: @ 0x080220D8 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 _080220EC movs r0, #3 strb r0, [r1, #0xc] _080220EC: pop {pc} .align 2, 0 thumb_func_start sub_080220F0 sub_080220F0: @ 0x080220F0 push {r4, r5, r6, lr} adds r5, r0, #0 bl sub_08004274 adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08022160 movs r1, #0 movs r0, #4 strb r0, [r5, #0xc] movs r0, #0x78 strb r0, [r5, #0xe] adds r0, r5, #0 adds r0, #0x44 strb r1, [r0] ldrb r1, [r5, #0xb] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, _0802215C @ =gUnk_080CB76C adds r4, r0, r1 movs r6, #0 _08022124: adds r0, r5, #0 movs r1, #0x11 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _08022148 movs r0, #0 ldrsb r0, [r4, r0] ldrh r2, [r1, #0x2e] adds r0, r0, r2 strh r0, [r1, #0x2e] movs r0, #1 ldrsb r0, [r4, r0] ldrh r2, [r1, #0x32] adds r0, r0, r2 strh r0, [r1, #0x32] _08022148: adds r6, #1 adds r4, #2 cmp r6, #5 bls _08022124 movs r0, #0x82 lsls r0, r0, #1 bl sub_08004488 b _08022170 .align 2, 0 _0802215C: .4byte gUnk_080CB76C _08022160: movs r0, #1 ands r0, r1 cmp r0, #0 beq _08022170 adds r1, r5, #0 adds r1, #0x44 movs r0, #4 strb r0, [r1] _08022170: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08022174 sub_08022174: @ 0x08022174 push {r4, lr} adds r4, r0, #0 bl sub_0800445C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08022196 movs r0, #5 strb r0, [r4, #0xc] ldrb r1, [r4, #0xb] adds r1, #8 adds r0, r4, #0 bl sub_08004260 _08022196: pop {r4, pc} thumb_func_start sub_08022198 sub_08022198: @ 0x08022198 push {r4, lr} adds r4, r0, #0 bl sub_0800445C adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080221BC movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x5a strb r0, [r4, #0xe] _080221BC: pop {r4, pc} .align 2, 0 thumb_func_start sub_080221C0 sub_080221C0: @ 0x080221C0 push {r4, r5, r6, lr} adds r6, r0, #0 movs r0, #0x2e ldrsh r4, [r6, r0] ldr r1, _08022220 @ =gUnk_03000BF0 ldrh r0, [r1, #6] subs r4, r4, r0 asrs r4, r4, #4 movs r2, #0x3f ands r4, r2 movs r3, #0x32 ldrsh r0, [r6, r3] ldrh r1, [r1, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r4, r0 ldr r1, _08022224 @ =gUnk_080B4488 ldrb r0, [r6, #0xb] lsls r0, r0, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] adds r4, r4, r0 adds r0, r6, #0 adds r0, #0x7e strh r4, [r0] adds r5, r6, #0 adds r5, #0x38 ldrb r1, [r5] adds r0, r4, #0 bl sub_080001DA adds r1, r6, #0 adds r1, #0x7c strh r0, [r1] ldr r1, _08022228 @ =gUnk_080CB79C ldrb r0, [r6, #0xb] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] ldrb r2, [r5] adds r1, r4, #0 bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 _08022220: .4byte gUnk_03000BF0 _08022224: .4byte gUnk_080B4488 _08022228: .4byte gUnk_080CB79C thumb_func_start sub_0802222C sub_0802222C: @ 0x0802222C push {lr} ldr r1, _08022238 @ =gUnk_080CB948 bl sub_0800129E pop {pc} .align 2, 0 _08022238: .4byte gUnk_080CB948 thumb_func_start sub_0802223C sub_0802223C: @ 0x0802223C push {lr} ldr r2, _08022250 @ =gUnk_080CB960 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08022250: .4byte gUnk_080CB960 thumb_func_start sub_08022254 sub_08022254: @ 0x08022254 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 beq _08022344 adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 subs r0, #4 cmp r0, #0x18 bhi _08022356 lsls r0, r0, #2 ldr r1, _0802227C @ =_08022280 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802227C: .4byte _08022280 _08022280: @ jump table .4byte _080222E4 @ case 0 .4byte _080222E4 @ case 1 .4byte _080222E4 @ case 2 .4byte _08022356 @ case 3 .4byte _080222E4 @ case 4 .4byte _080222E4 @ case 5 .4byte _080222E4 @ case 6 .4byte _080222E4 @ case 7 .4byte _080222E4 @ case 8 .4byte _080222E4 @ case 9 .4byte _08022356 @ case 10 .4byte _08022356 @ case 11 .4byte _080222E4 @ case 12 .4byte _080222E4 @ case 13 .4byte _080222E4 @ case 14 .4byte _08022356 @ case 15 .4byte _08022356 @ case 16 .4byte _08022356 @ case 17 .4byte _080222F2 @ case 18 .4byte _08022356 @ case 19 .4byte _080222E4 @ case 20 .4byte _080222E4 @ case 21 .4byte _080222E4 @ case 22 .4byte _08022356 @ case 23 .4byte _080222F2 @ case 24 _080222E4: ldr r0, _08022340 @ =gUnk_03003F80 adds r0, #0xac ldrh r1, [r0] movs r0, #8 ands r0, r1 cmp r0, #0 beq _08022356 _080222F2: adds r0, r4, #0 movs r1, #4 movs r2, #0 bl sub_080A29AC movs r0, #1 movs r1, #1 bl sub_0804AA60 adds r5, r0, #0 cmp r5, #0 beq _08022356 movs r0, #1 strb r0, [r5, #0xb] adds r1, r5, #0 adds r1, #0x3d movs r0, #0xf8 strb r0, [r1] adds r0, r4, #0 adds r1, r5, #0 bl sub_0804A4E4 movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] strb r0, [r4, #0x15] str r5, [r4, #0x54] b _08022356 .align 2, 0 _08022340: .4byte gUnk_03003F80 _08022344: adds r0, r4, #0 adds r0, #0x3f ldrb r0, [r0] cmp r0, #0x94 beq _08022356 adds r0, r4, #0 movs r1, #2 bl sub_08004260 _08022356: ldr r1, _08022360 @ =gUnk_080CB948 adds r0, r4, #0 bl sub_0804AA30 pop {r4, r5, pc} .align 2, 0 _08022360: .4byte gUnk_080CB948 thumb_func_start nullsub_131 nullsub_131: @ 0x08022364 bx lr .align 2, 0 thumb_func_start sub_08022368 sub_08022368: @ 0x08022368 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r0, #1 strb r0, [r4, #0xc] bl sub_08000E50 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #0 bl sub_08004260 pop {r4, pc} .align 2, 0 thumb_func_start sub_08022390 sub_08022390: @ 0x08022390 push {r4, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _080223D4 ldrb r1, [r4, #0xe] adds r0, r1, #1 strb r0, [r4, #0xe] movs r0, #0xf ands r0, r1 cmp r0, #0 bne _080223C0 adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] bl sub_08000E50 movs r1, #4 ands r0, r1 strb r0, [r4, #0xf] _080223C0: ldrb r0, [r4, #0xf] cmp r0, #0 bne _080223CE adds r0, r4, #0 bl sub_080AEF88 b _080223DA _080223CE: subs r0, #1 strb r0, [r4, #0xf] b _080223DA _080223D4: bl sub_08000E50 strb r0, [r4, #0xe] _080223DA: adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 thumb_func_start sub_080223E4 sub_080223E4: @ 0x080223E4 push {lr} adds r3, r0, #0 ldr r2, [r3, #0x54] cmp r2, #0 beq _0802240A adds r1, r2, #0 adds r1, #0x41 movs r0, #0x94 strb r0, [r1] subs r1, #4 movs r0, #0x10 strb r0, [r1] adds r1, #5 movs r0, #0xc strb r0, [r1] ldrb r1, [r3, #0x15] adds r0, r2, #0 adds r0, #0x3e strb r1, [r0] _0802240A: adds r0, r3, #0 bl sub_0805E7BC pop {pc} .align 2, 0 thumb_func_start sub_08022414 sub_08022414: @ 0x08022414 push {r4, lr} adds r4, r0, #0 ldr r1, _08022430 @ =gUnk_080CBA28 bl sub_0800129E movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, pc} .align 2, 0 _08022430: .4byte gUnk_080CBA28 thumb_func_start sub_08022434 sub_08022434: @ 0x08022434 push {lr} ldr r2, _08022448 @ =gUnk_080CBA40 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08022448: .4byte gUnk_080CBA40 thumb_func_start sub_0802244C sub_0802244C: @ 0x0802244C push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x45 ldrb r0, [r5] cmp r0, #0 bne _0802245C b _08022582 _0802245C: adds r0, r4, #0 adds r0, #0x3f ldrb r1, [r0] adds r6, r0, #0 cmp r1, #0x65 bne _08022522 adds r0, #2 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 subs r0, #2 cmp r0, #0x18 bhi _08022540 lsls r0, r0, #2 ldr r1, _08022480 @ =_08022484 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08022480: .4byte _08022484 _08022484: @ jump table .4byte _080224E8 @ case 0 .4byte _080224E8 @ case 1 .4byte _08022540 @ case 2 .4byte _08022540 @ case 3 .4byte _08022540 @ case 4 .4byte _08022540 @ case 5 .4byte _08022508 @ case 6 .4byte _08022508 @ case 7 .4byte _08022508 @ case 8 .4byte _08022508 @ case 9 .4byte _08022508 @ case 10 .4byte _08022540 @ case 11 .4byte _08022540 @ case 12 .4byte _08022540 @ case 13 .4byte _08022540 @ case 14 .4byte _08022540 @ case 15 .4byte _08022540 @ case 16 .4byte _08022540 @ case 17 .4byte _08022540 @ case 18 .4byte _08022540 @ case 19 .4byte _08022508 @ case 20 .4byte _08022540 @ case 21 .4byte _08022508 @ case 22 .4byte _08022508 @ case 23 .4byte _08022508 @ case 24 _080224E8: movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xf] movs r0, #0x5c strb r0, [r6] ldr r0, _08022504 @ =gUnk_080FD468 str r0, [r4, #0x48] adds r0, r4, #0 movs r1, #0 bl sub_08004260 b _08022540 .align 2, 0 _08022504: .4byte gUnk_080FD468 _08022508: adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC movs r0, #5 strb r0, [r4, #0xc] movs r0, #0x5c strb r0, [r6] adds r0, r4, #0 movs r1, #1 bl sub_08004260 b _08022540 _08022522: adds r0, r4, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x94 bne _08022540 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC movs r0, #5 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _08022540: adds r0, r4, #0 adds r0, #0x80 adds r1, r4, #0 adds r1, #0x45 ldrb r2, [r0] adds r5, r1, #0 adds r7, r0, #0 ldrb r0, [r5] cmp r2, r0 beq _08022566 movs r0, #5 strb r0, [r4, #0xc] movs r0, #0x5c strb r0, [r6] adds r0, r4, #0 movs r1, #1 bl sub_08004260 b _0802258E _08022566: ldrb r0, [r4, #0xc] cmp r0, #3 bne _0802258E movs r0, #4 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #3 bl sub_08004260 movs r0, #0xca lsls r0, r0, #1 bl sub_08004488 b _0802258E _08022582: adds r0, r4, #0 movs r1, #1 bl sub_08004260 adds r7, r4, #0 adds r7, #0x80 _0802258E: ldrb r0, [r5] strb r0, [r7] ldr r1, _0802259C @ =gUnk_080CBA28 adds r0, r4, #0 bl sub_0804AA30 pop {r4, r5, r6, r7, pc} .align 2, 0 _0802259C: .4byte gUnk_080CBA28 thumb_func_start sub_080225A0 sub_080225A0: @ 0x080225A0 push {r4, lr} adds r4, r0, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #1 bne _080225B2 adds r0, r4, #0 bl sub_08004274 _080225B2: adds r0, r4, #0 bl sub_08001318 pop {r4, pc} .align 2, 0 thumb_func_start sub_080225BC sub_080225BC: @ 0x080225BC push {r4, lr} adds r4, r0, #0 movs r1, #0xc0 lsls r1, r1, #5 bl sub_08003FC4 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080225DE adds r0, r4, #0 bl sub_0804A7D4 b _080225E4 _080225DE: adds r0, r4, #0 bl sub_08004274 _080225E4: pop {r4, pc} .align 2, 0 thumb_func_start nullsub_9 nullsub_9: @ 0x080225E8 bx lr .align 2, 0 thumb_func_start sub_080225EC sub_080225EC: @ 0x080225EC push {r4, lr} adds r4, r0, #0 bl sub_0804A720 adds r0, r4, #0 adds r0, #0x45 ldrb r1, [r0] adds r0, #0x3b strb r1, [r0] adds r1, r4, #0 adds r1, #0x81 movs r0, #0x5a strb r0, [r1] ldrb r0, [r4, #0xe] cmp r0, #0 bne _0802261A movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0 bl sub_08004260 b _0802264C _0802261A: movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xf] ldrb r0, [r4, #0x18] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x18] 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] ldr r0, _08022650 @ =0x0000FF80 strh r0, [r4, #0x36] adds r0, r4, #0 movs r1, #6 bl sub_08004260 _0802264C: pop {r4, pc} .align 2, 0 _08022650: .4byte 0x0000FF80 thumb_func_start sub_08022654 sub_08022654: @ 0x08022654 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #1 beq _0802268C cmp r0, #1 bgt _08022668 cmp r0, #0 beq _0802266E b _080226E4 _08022668: cmp r0, #2 beq _080226BE b _080226E4 _0802266E: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _080226E4 movs r0, #1 strb r0, [r4, #0xd] ldr r0, _080226E8 @ =0x0000012D bl sub_080A3268 adds r0, r4, #0 movs r1, #0 bl sub_08004260 _0802268C: movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _080226E4 movs r0, #2 strb r0, [r4, #0xd] ldrb r1, [r4, #0x18] subs r0, #6 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #5 bl sub_08004260 movs r0, #0x7d bl sub_08004488 adds r0, r4, #0 bl sub_08016A04 _080226BE: adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080226E4 movs r0, #3 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x65 strb r0, [r1] adds r0, r4, #0 movs r1, #2 bl sub_08004260 _080226E4: pop {r4, pc} .align 2, 0 _080226E8: .4byte 0x0000012D thumb_func_start sub_080226EC sub_080226EC: @ 0x080226EC push {r4, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _08022776 adds r0, r4, #0 bl sub_080228CC cmp r0, #0 beq _0802271A movs r0, #3 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x65 strb r0, [r1] adds r0, r4, #0 movs r1, #2 bl sub_08004260 b _0802277C _0802271A: adds r0, r4, #0 bl sub_080228F0 cmp r0, #0 beq _08022758 movs r0, #6 strb r0, [r4, #0xc] movs r0, #0x90 lsls r0, r0, #9 str r0, [r4, #0x20] movs r0, #0xa0 lsls r0, r0, #1 strh r0, [r4, #0x24] ldr r0, _08022754 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x5a strb r0, [r1] adds r0, r4, #0 movs r1, #4 bl sub_08004260 b _0802277C .align 2, 0 _08022754: .4byte gUnk_020000B0 _08022758: ldrb r1, [r4, #0xe] adds r0, r1, #1 strb r0, [r4, #0xe] movs r0, #7 ands r0, r1 cmp r0, #0 bne _08022770 adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] _08022770: adds r0, r4, #0 bl sub_080AEF88 _08022776: adds r0, r4, #0 bl sub_08004274 _0802277C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08022780 sub_08022780: @ 0x08022780 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080227AA movs r0, #4 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #3 bl sub_08004260 movs r0, #0xca lsls r0, r0, #1 bl sub_08004488 _080227AA: pop {r4, pc} thumb_func_start sub_080227AC sub_080227AC: @ 0x080227AC push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080227CC ldr r0, _080227C8 @ =gUnk_080FD470 b _080227CE .align 2, 0 _080227C8: .4byte gUnk_080FD470 _080227CC: ldr r0, _08022814 @ =gUnk_080FD468 _080227CE: str r0, [r4, #0x48] adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r3, #2 adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _080227EE movs r0, #0xfd ands r0, r1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x5c strb r0, [r1] _080227EE: ldrb r1, [r2] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08022812 strb r3, [r4, #0xc] bl sub_08000E50 ldr r2, _08022818 @ =gUnk_080CBA60 movs r1, #3 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #0 bl sub_08004260 _08022812: pop {r4, pc} .align 2, 0 _08022814: .4byte gUnk_080FD468 _08022818: .4byte gUnk_080CBA60 thumb_func_start sub_0802281C sub_0802281C: @ 0x0802281C push {r4, lr} adds r4, r0, #0 movs r1, #0xc0 lsls r1, r1, #5 bl sub_08003FC4 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08022852 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x20 strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_0804AA1C _08022852: pop {r4, pc} thumb_func_start sub_08022854 sub_08022854: @ 0x08022854 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08022898 adds r0, r4, #0 bl sub_080AEFE0 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08022898 movs r0, #7 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x5c strb r0, [r1] adds r0, r4, #0 movs r1, #5 bl sub_08004260 movs r0, #0x7d bl sub_08004488 _08022898: pop {r4, pc} .align 2, 0 thumb_func_start sub_0802289C sub_0802289C: @ 0x0802289C push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080228CA movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x20 strh r0, [r4, #0x24] adds r1, r4, #0 adds r1, #0x81 movs r0, #0x78 strb r0, [r1] adds r0, r4, #0 movs r1, #0 bl sub_08004260 _080228CA: pop {r4, pc} thumb_func_start sub_080228CC sub_080228CC: @ 0x080228CC push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xf] cmp r0, #0 bne _080228E8 adds r0, r1, #0 movs r1, #1 movs r2, #0x28 bl sub_08049F64 cmp r0, #0 beq _080228EC movs r0, #1 b _080228EE _080228E8: subs r0, #1 strb r0, [r1, #0xf] _080228EC: movs r0, #0 _080228EE: pop {pc} thumb_func_start sub_080228F0 sub_080228F0: @ 0x080228F0 push {lr} adds r1, r0, #0 adds r2, r1, #0 adds r2, #0x81 ldrb r0, [r2] cmp r0, #0 bne _08022910 adds r0, r1, #0 movs r1, #1 movs r2, #0x40 bl sub_08049F64 cmp r0, #0 beq _08022914 movs r0, #1 b _08022916 _08022910: subs r0, #1 strb r0, [r2] _08022914: movs r0, #0 _08022916: pop {pc} thumb_func_start sub_08022918 sub_08022918: @ 0x08022918 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _08022930 @ =gUnk_080CBB64 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _08022930: .4byte gUnk_080CBB64 thumb_func_start sub_08022934 sub_08022934: @ 0x08022934 push {lr} ldr r2, _08022948 @ =gUnk_080CBB7C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08022948: .4byte gUnk_080CBB7C thumb_func_start sub_0802294C sub_0802294C: @ 0x0802294C push {lr} ldr r1, _08022958 @ =gUnk_080CBB64 bl sub_0804AA30 pop {pc} .align 2, 0 _08022958: .4byte gUnk_080CBB64 thumb_func_start nullsub_132 nullsub_132: @ 0x0802295C bx lr .align 2, 0 thumb_func_start sub_08022960 sub_08022960: @ 0x08022960 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 adds r0, r4, #0 bl sub_08022A88 pop {r4, pc} thumb_func_start sub_08022970 sub_08022970: @ 0x08022970 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 _08022986 adds r0, r1, #0 bl sub_08022AA4 _08022986: pop {pc} thumb_func_start sub_08022988 sub_08022988: @ 0x08022988 push {r4, lr} adds r4, r0, #0 movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 bne _080229A6 adds r0, r4, #0 bl sub_08022B20 cmp r0, #0 beq _080229A6 adds r0, r4, #0 bl sub_08022B0C b _080229F6 _080229A6: ldrb r0, [r4, #0xf] cmp r0, #0 beq _080229C6 subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _080229F6 movs r0, #1 strb r0, [r4, #0x1e] movs r0, #0x80 lsls r0, r0, #9 str r0, [r4, #0x20] movs r0, #0xd6 bl sub_08004488 _080229C6: adds r0, r4, #0 bl sub_080AEF88 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 adds r1, r0, #0 cmp r1, #0 bne _080229F6 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080229F0 adds r0, r4, #0 bl sub_08022A88 b _080229F6 _080229F0: movs r0, #4 strb r0, [r4, #0xf] strb r1, [r4, #0x1e] _080229F6: pop {r4, pc} thumb_func_start sub_080229F8 sub_080229F8: @ 0x080229F8 push {r4, lr} adds r4, r0, #0 movs r1, #0xa0 lsls r1, r1, #6 bl sub_08003FC4 cmp r0, #0 bne _08022A3C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _08022A30 movs r0, #4 strb r0, [r4, #0xc] movs r0, #6 strb r0, [r4, #0xe] movs r0, #8 strb r0, [r4, #0xf] strb r1, [r4, #0x1e] movs r0, #0xc0 strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_08022B44 b _08022A3C _08022A30: movs r0, #0x80 lsls r0, r0, #9 str r0, [r4, #0x20] movs r0, #0xd6 bl sub_08004488 _08022A3C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08022A40 sub_08022A40: @ 0x08022A40 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] cmp r0, #0 beq _08022A58 subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08022A86 movs r0, #1 strb r0, [r4, #0x1e] _08022A58: adds r0, r4, #0 bl sub_080AEF88 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08022A86 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08022A80 adds r0, r4, #0 bl sub_08022A88 b _08022A86 _08022A80: adds r0, r4, #0 bl sub_08022B44 _08022A86: pop {r4, pc} thumb_func_start sub_08022A88 sub_08022A88: @ 0x08022A88 push {r4, r5, lr} adds r4, r0, #0 movs r5, #0 movs r0, #1 strb r0, [r4, #0xc] bl sub_08000E50 movs r1, #0xf ands r0, r1 adds r0, #8 strb r0, [r4, #0xe] strb r5, [r4, #0x1e] pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08022AA4 sub_08022AA4: @ 0x08022AA4 push {r4, r5, lr} adds r4, r0, #0 bl sub_08000E50 adds r5, r0, #0 movs r0, #2 strb r0, [r4, #0xc] movs r1, #3 adds r0, r5, #0 ands r0, r1 adds r0, #1 strb r0, [r4, #0xe] movs r0, #1 strb r0, [r4, #0xf] movs r0, #0x80 strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 bne _08022AE0 lsrs r0, r5, #8 movs r1, #3 ands r0, r1 cmp r0, #0 beq _08022AE0 adds r0, r4, #0 bl sub_08049EE4 b _08022AE6 _08022AE0: lsrs r0, r5, #0x10 movs r1, #0x1f ands r0, r1 _08022AE6: strb r0, [r4, #0x15] ldrb r1, [r4, #0x15] movs r0, #0xf ands r0, r1 cmp r0, #0 beq _08022B08 lsrs r1, r1, #4 movs r0, #1 eors r1, r0 ands r1, r0 lsls r1, r1, #6 ldrb r2, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] _08022B08: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08022B0C sub_08022B0C: @ 0x08022B0C push {lr} movs r1, #3 strb r1, [r0, #0xc] strb r1, [r0, #0xe] movs r1, #8 strb r1, [r0, #0xf] bl sub_08022B44 pop {pc} .align 2, 0 thumb_func_start sub_08022B20 sub_08022B20: @ 0x08022B20 push {r4, lr} adds r4, r0, #0 movs r0, #2 bl sub_08049DF4 cmp r0, #0 beq _08022B40 ldr r1, _08022B3C @ =gUnk_03001160 adds r0, r4, #0 movs r2, #0x24 movs r3, #0x24 bl sub_080041A0 b _08022B42 .align 2, 0 _08022B3C: .4byte gUnk_03001160 _08022B40: movs r0, #0 _08022B42: pop {r4, pc} thumb_func_start sub_08022B44 sub_08022B44: @ 0x08022B44 push {r4, lr} adds r4, r0, #0 movs r0, #0xc0 lsls r0, r0, #8 str r0, [r4, #0x20] ldr r1, _08022B84 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 adds r1, r0, #0 strb r1, [r4, #0x15] movs r0, #0xf ands r0, r1 cmp r0, #0 beq _08022B7A lsls r1, r1, #0x18 lsrs r1, r1, #0x1c movs r0, #1 eors r1, r0 ands r1, r0 lsls r1, r1, #6 ldrb r2, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] _08022B7A: movs r0, #0xd6 bl sub_08004488 pop {r4, pc} .align 2, 0 _08022B84: .4byte gUnk_03001160 thumb_func_start sub_08022B88 sub_08022B88: @ 0x08022B88 push {lr} ldr r2, _08022B9C @ =gUnk_080CBB90 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08022B9C: .4byte gUnk_080CBB90 thumb_func_start sub_08022BA0 sub_08022BA0: @ 0x08022BA0 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x79 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldrh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x74 strh r1, [r0] ldrh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x76 strh r0, [r1] ldr r1, _08022BD0 @ =gUnk_080CBBA0 adds r0, r4, #0 bl sub_0800129E adds r0, r4, #0 bl sub_08022EAC pop {r4, pc} .align 2, 0 _08022BD0: .4byte gUnk_080CBBA0 thumb_func_start sub_08022BD4 sub_08022BD4: @ 0x08022BD4 push {lr} ldr r2, _08022BE8 @ =gUnk_080CBBB4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08022BE8: .4byte gUnk_080CBBB4 thumb_func_start sub_08022BEC sub_08022BEC: @ 0x08022BEC push {lr} adds r2, r0, #0 movs r0, #0x7a adds r0, r0, r2 mov ip, r0 adds r3, r2, #0 adds r3, #0x45 ldrb r0, [r0] ldrb r1, [r3] cmp r0, r1 beq _08022C0A adds r1, r2, #0 adds r1, #0x7b movs r0, #0x1e strb r0, [r1] _08022C0A: ldrb r0, [r3] mov r1, ip strb r0, [r1] movs r0, #1 strb r0, [r2, #0xe] adds r0, r2, #0 adds r0, #0x3e ldrb r0, [r0] strb r0, [r2, #0x15] ldrb r0, [r2, #0x15] adds r0, #2 movs r1, #0x1c ands r0, r1 asrs r0, r0, #2 strb r0, [r2, #0x14] strb r0, [r2, #0x1e] ldr r0, [r2, #0x54] adds r3, r2, #0 adds r3, #0x3d ldrb r1, [r3] adds r0, #0x3d strb r1, [r0] ldr r0, [r2, #0x7c] ldrb r1, [r3] adds r0, #0x3d strb r1, [r0] adds r0, r2, #0 adds r0, #0x80 ldr r0, [r0] ldrb r1, [r3] adds r0, #0x3d strb r1, [r0] ldr r1, _08022C54 @ =gUnk_080CBBA0 adds r0, r2, #0 bl sub_0804AA30 pop {pc} .align 2, 0 _08022C54: .4byte gUnk_080CBBA0 thumb_func_start sub_08022C58 sub_08022C58: @ 0x08022C58 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r7, r0, #0 ldrb r1, [r7, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r7, #0x10] ldr r0, _08022D3C @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x44 bhi _08022D34 movs r0, #0xd movs r1, #1 bl sub_0804AA60 mov sb, r0 str r0, [r7, #0x54] mov r2, sb adds r2, #0x29 ldrb r1, [r2] movs r4, #8 rsbs r4, r4, #0 adds r0, r4, #0 ands r0, r1 movs r1, #5 mov r8, r1 mov r1, r8 orrs r0, r1 strb r0, [r2] mov r0, sb str r7, [r0, #0x50] adds r0, r7, #0 mov r1, sb bl sub_0806FA24 movs r0, #0xd movs r1, #2 bl sub_0804AA60 adds r6, r0, #0 mov r1, sb str r6, [r1, #0x54] adds r2, r6, #0 adds r2, #0x29 ldrb r1, [r2] adds r0, r4, #0 ands r0, r1 mov r1, r8 orrs r0, r1 strb r0, [r2] str r7, [r6, #0x50] adds r0, r7, #0 adds r1, r6, #0 bl sub_0806FA24 movs r0, #0xd movs r1, #3 bl sub_0804AA60 adds r5, r0, #0 str r5, [r6, #0x54] adds r1, r5, #0 adds r1, #0x29 ldrb r0, [r1] ands r4, r0 mov r0, r8 orrs r4, r0 strb r4, [r1] str r7, [r5, #0x50] adds r0, r7, #0 adds r1, r5, #0 bl sub_0806FA24 adds r0, r7, #0 bl sub_0804A720 movs r0, #1 strb r0, [r7, #0xc] strb r0, [r7, #0xe] strb r0, [r7, #0xf] ldrb r0, [r7, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r7, #0x10] str r7, [r7, #0x50] mov r1, sb str r1, [r7, #0x54] str r6, [r7, #0x7c] adds r0, r7, #0 adds r0, #0x80 str r5, [r0] bl sub_08000E50 movs r1, #0x1f ands r0, r1 strb r0, [r7, #0x15] ldrb r0, [r7, #0x15] adds r0, #2 movs r1, #0x1c ands r0, r1 asrs r0, r0, #2 strb r0, [r7, #0x14] strb r0, [r7, #0x1e] adds r0, r7, #0 adds r0, #0x45 ldrb r1, [r0] adds r0, #0x35 strb r1, [r0] _08022D34: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _08022D3C: .4byte gUnk_03003DBC thumb_func_start sub_08022D40 sub_08022D40: @ 0x08022D40 push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x7b ldrb r1, [r2] cmp r1, #0 beq _08022D66 adds r0, r1, #0 adds r0, #0xff strb r0, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08022D8E ldrb r0, [r4, #0x14] adds r0, #1 movs r1, #7 ands r0, r1 b _08022D8A _08022D66: adds r0, r4, #0 bl sub_08022F14 adds r0, r4, #0 bl sub_080AEF88 ldrh r0, [r4, #0x2a] cmp r0, #0 beq _08022D8E adds r1, r0, #0 adds r0, r4, #0 bl sub_0800417E ldrb r0, [r4, #0x15] adds r0, #2 movs r1, #0x1c ands r0, r1 asrs r0, r0, #2 _08022D8A: strb r0, [r4, #0x14] strb r0, [r4, #0x1e] _08022D8E: pop {r4, pc} thumb_func_start sub_08022D90 sub_08022D90: @ 0x08022D90 push {r4, r5, lr} adds r5, r0, #0 ldr r0, [r5, #0x50] ldr r0, [r0, #4] cmp r0, #0 beq _08022DE0 ldr r1, _08022DDC @ =gUnk_080CBBBC ldrb r0, [r5, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 ldr r4, [r5, #0x50] ldrb r2, [r4, #0x1b] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r3, [r5, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r3 orrs r0, r2 strb r0, [r5, #0x1b] ldrb r0, [r4, #0x19] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r5, #0x19] ands r1, r2 orrs r1, r0 strb r1, [r5, #0x19] adds r4, #0x38 ldrb r1, [r4] adds r0, r5, #0 adds r0, #0x38 strb r1, [r0] b _08022DE6 .align 2, 0 _08022DDC: .4byte gUnk_080CBBBC _08022DE0: adds r0, r5, #0 bl sub_0805E7BC _08022DE6: pop {r4, r5, pc} thumb_func_start sub_08022DE8 sub_08022DE8: @ 0x08022DE8 push {lr} adds r3, r0, #0 movs r0, #1 strb r0, [r3, #0xc] adds r0, r3, #0 adds r0, #0x7c movs r1, #0x88 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, #1 strb r1, [r0] ldr r0, [r3, #0x50] ldrb r0, [r0, #0x14] strb r0, [r3, #0x14] adds r2, r3, #0 adds r2, #0x84 ldrb r1, [r3, #0x14] lsls r0, r1, #4 adds r0, r0, r1 lsls r1, r0, #8 adds r0, r0, r1 lsls r1, r0, #0x10 adds r0, r0, r1 str r0, [r2] ldrb r0, [r3, #0xa] cmp r0, #3 beq _08022E38 adds r0, #7 b _08022E3C _08022E38: ldrb r0, [r3, #0x14] adds r0, #0xa _08022E3C: strb r0, [r3, #0x1e] pop {pc} thumb_func_start sub_08022E40 sub_08022E40: @ 0x08022E40 push {r4, r5, lr} adds r4, r0, #0 ldrh r1, [r4, #0x2e] adds r0, #0x74 strh r1, [r0] ldrh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x76 strh r0, [r1] ldr r2, [r4, #0x50] adds r2, #0x79 ldrb r0, [r2] adds r0, #1 movs r3, #7 ands r0, r3 adds r0, #0x7c adds r0, r4, r0 ldrb r1, [r0] movs r0, #0xf ands r0, r1 subs r0, #8 lsrs r1, r1, #4 lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r5, [r4, #0x2e] adds r0, r0, r5 strh r0, [r4, #0x2e] subs r1, #8 ldrh r0, [r4, #0x32] adds r1, r1, r0 strh r1, [r4, #0x32] adds r1, r4, #0 adds r1, #0x84 ldrb r0, [r2] adds r0, #1 ands r0, r3 lsls r0, r0, #2 ldr r1, [r1] lsrs r1, r0 movs r0, #7 ands r1, r0 strb r1, [r4, #0x14] ldrb r0, [r4, #0xa] cmp r0, #3 bne _08022EA2 adds r0, r1, #0 adds r0, #0xa strb r0, [r4, #0x1e] b _08022EA8 _08022EA2: adds r0, r4, #0 bl sub_08022EAC _08022EA8: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08022EAC sub_08022EAC: @ 0x08022EAC push {r4, r5, lr} mov ip, r0 ldr r1, [r0, #0x54] cmp r1, #0 beq _08022F12 ldr r0, [r0, #0x50] adds r0, #0x79 ldrb r0, [r0] movs r4, #7 adds r3, r4, #0 ands r3, r0 adds r3, r3, r1 adds r3, #0x7c mov r0, ip ldrh r1, [r0, #0x2e] adds r0, #0x74 ldrb r0, [r0] subs r1, r1, r0 adds r1, #8 movs r5, #0xf ands r1, r5 mov r2, ip ldrh r0, [r2, #0x32] adds r2, #0x76 ldrb r2, [r2] subs r0, r0, r2 adds r0, #8 ands r0, r5 lsls r0, r0, #4 adds r1, r1, r0 strb r1, [r3] mov r1, ip ldr r0, [r1, #0x50] adds r0, #0x79 ldrb r1, [r0] adds r0, r4, #0 ands r0, r1 lsls r0, r0, #2 mov r2, ip ldrb r1, [r2, #0x14] ands r4, r1 lsls r4, r0 movs r2, #0xf lsls r2, r0 mov r0, ip ldr r1, [r0, #0x54] adds r1, #0x84 ldr r0, [r1] bics r0, r2 orrs r4, r0 str r4, [r1] _08022F12: pop {r4, r5, pc} thumb_func_start sub_08022F14 sub_08022F14: @ 0x08022F14 push {r4, r5, lr} adds r4, r0, #0 bl sub_08049FA0 cmp r0, #0 bne _08022F4E adds r0, r4, #0 bl sub_08049EE4 ldrb r1, [r4, #0x15] subs r2, r0, r1 movs r1, #0x1f ands r2, r1 adds r0, r2, #4 ands r0, r1 cmp r0, #8 bls _08022F4E movs r0, #8 strb r0, [r4, #0xf] cmp r2, #0xf bhi _08022F46 adds r1, r4, #0 adds r1, #0x78 movs r0, #1 b _08022F4C _08022F46: adds r1, r4, #0 adds r1, #0x78 movs r0, #0xff _08022F4C: strb r0, [r1] _08022F4E: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r1, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _08022F9E movs r0, #4 strb r0, [r4, #0xe] ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] ands r0, r1 adds r5, r4, #0 adds r5, #0x78 cmp r0, #0 bne _08022F84 movs r0, #8 strb r0, [r4, #0xf] bl sub_08000E50 ldr r2, _08022FA0 @ =gUnk_080CBBC4 movs r1, #1 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r5] _08022F84: ldrb r0, [r5] ldrb r1, [r4, #0x15] adds r0, r0, r1 movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] ldrb r0, [r4, #0x15] adds r0, #2 movs r1, #0x1c ands r0, r1 asrs r0, r0, #2 strb r0, [r4, #0x14] strb r0, [r4, #0x1e] _08022F9E: pop {r4, r5, pc} .align 2, 0 _08022FA0: .4byte gUnk_080CBBC4 thumb_func_start sub_08022FA4 sub_08022FA4: @ 0x08022FA4 push {lr} ldr r1, _08022FB0 @ =gUnk_080CBBC8 bl sub_0800129E pop {pc} .align 2, 0 _08022FB0: .4byte gUnk_080CBBC8 thumb_func_start sub_08022FB4 sub_08022FB4: @ 0x08022FB4 push {lr} ldr r2, _08022FC8 @ =gUnk_080CBBDC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08022FC8: .4byte gUnk_080CBBDC thumb_func_start nullsub_133 nullsub_133: @ 0x08022FCC bx lr .align 2, 0 thumb_func_start sub_08022FD0 sub_08022FD0: @ 0x08022FD0 push {lr} movs r3, #1 movs r1, #1 strb r1, [r0, #0xc] ldrb r2, [r0, #0x18] subs r1, #5 ands r1, r2 orrs r1, r3 strb r1, [r0, #0x18] movs r1, #0 bl sub_08023000 pop {pc} .align 2, 0 thumb_func_start sub_08022FEC sub_08022FEC: @ 0x08022FEC push {lr} movs r1, #0x80 bl sub_08023000 pop {pc} .align 2, 0 thumb_func_start sub_08022FF8 sub_08022FF8: @ 0x08022FF8 bx lr .align 2, 0 thumb_func_start sub_08022FFC sub_08022FFC: @ 0x08022FFC bx lr .align 2, 0 thumb_func_start sub_08023000 sub_08023000: @ 0x08023000 push {r4, lr} adds r4, r0, #0 cmp r1, #0x80 bne _0802300E bl sub_080042B8 b _08023014 _0802300E: adds r0, r4, #0 bl sub_080042AC _08023014: movs r2, #0x80 adds r0, r4, #0 adds r0, #0x5b ldrb r0, [r0] cmp r0, #0x40 bne _08023022 rsbs r2, r2, #0 _08023022: ldrb r0, [r4, #0x19] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x19] adds r0, r4, #0 adds r1, r2, #0 movs r2, #0x80 movs r3, #0 bl sub_0805EC9C pop {r4, pc} thumb_func_start sub_08023038 sub_08023038: @ 0x08023038 push {r4, r5, r6, lr} adds r4, r0, #0 ldrh r5, [r4, #0x2e] ldrh r6, [r4, #0x32] ldrb r1, [r4, #0xa] cmp r1, #0 bne _0802306C ldrb r0, [r4, #0xc] cmp r0, #0 beq _08023052 adds r0, r4, #0 bl sub_0802390C _08023052: adds r0, r4, #0 adds r0, #0x7c ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x7d strb r0, [r1] ldr r1, _08023068 @ =gUnk_080CBC38 adds r0, r4, #0 bl sub_0800129E b _08023090 .align 2, 0 _08023068: .4byte gUnk_080CBC38 _0802306C: ldr r0, [r4, #0x50] ldr r0, [r0, #4] cmp r0, #0 beq _08023088 cmp r1, #8 beq _08023080 adds r0, r4, #0 bl sub_080235BC b _08023090 _08023080: adds r0, r4, #0 bl sub_08023730 b _08023090 _08023088: adds r0, r4, #0 bl sub_0805E7BC b _080230CA _08023090: ldr r0, [r4, #0x50] adds r2, r0, #0 adds r2, #0x7c adds r0, #0x7d ldrb r1, [r2] ldrb r0, [r0] cmp r1, r0 beq _080230CA ldr r1, [r4, #0x54] cmp r1, #0 beq _080230CA ldrb r2, [r2] subs r2, #1 movs r0, #0xf ands r2, r0 adds r2, #0x78 adds r2, r1, r2 ldrh r1, [r4, #0x2e] subs r1, r1, r5 adds r1, #8 movs r3, #0xf ands r1, r3 lsls r1, r1, #4 ldrh r0, [r4, #0x32] subs r0, r0, r6 adds r0, #8 ands r0, r3 orrs r1, r0 strb r1, [r2] _080230CA: pop {r4, r5, r6, pc} thumb_func_start sub_080230CC sub_080230CC: @ 0x080230CC push {lr} ldr r2, _080230E0 @ =gUnk_080CBC50 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080230E0: .4byte gUnk_080CBC50 thumb_func_start sub_080230E4 sub_080230E4: @ 0x080230E4 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xd] cmp r0, #0xff bne _08023132 movs r2, #0 movs r0, #7 strb r0, [r5, #0xc] movs r3, #1 strb r3, [r5, #0xe] strb r2, [r5, #0xd] adds r1, r5, #0 adds r1, #0x3f movs r0, #0x85 strb r0, [r1] subs r1, #2 movs r0, #0xf8 strb r0, [r1] adds r0, r5, #0 adds r0, #0x7f strb r2, [r0] subs r0, #4 strb r2, [r0] subs r0, #0x3a ldrb r0, [r0] cmp r0, #0x80 beq _0802311E cmp r0, #0x9e bne _08023128 _0802311E: strb r2, [r5, #0xb] adds r1, r5, #0 adds r1, #0x80 movs r0, #0x14 b _08023130 _08023128: strb r3, [r5, #0xb] adds r1, r5, #0 adds r1, #0x80 movs r0, #8 _08023130: strb r0, [r1] _08023132: adds r0, r5, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _0802318A adds r0, r5, #0 adds r0, #0x7f ldrb r0, [r0] cmp r0, #0 bne _0802318A ldrb r0, [r5, #0xc] cmp r0, #7 bne _0802318A ldr r4, _08023194 @ =gUnk_03001160 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #0xc0 lsls r0, r0, #9 str r0, [r4, #0x20] movs r0, #0xff strb r0, [r4, #0x15] adds r4, #0x3d movs r0, #0xec strb r0, [r4] ldr r2, _08023198 @ =gUnk_03003F80 movs r0, #0x41 strb r0, [r2, #2] ldr r0, [r2, #0x30] ldr r1, _0802319C @ =0xFFF7FFFF ands r0, r1 str r0, [r2, #0x30] _0802318A: ldr r1, _080231A0 @ =gUnk_080CBC38 adds r0, r5, #0 bl sub_0804AA30 pop {r4, r5, pc} .align 2, 0 _08023194: .4byte gUnk_03001160 _08023198: .4byte gUnk_03003F80 _0802319C: .4byte 0xFFF7FFFF _080231A0: .4byte gUnk_080CBC38 thumb_func_start sub_080231A4 sub_080231A4: @ 0x080231A4 push {lr} adds r2, r0, #0 adds r2, #0x7c ldrb r1, [r2] adds r1, #1 strb r1, [r2] bl sub_08001324 thumb_func_start nullsub_134 nullsub_134: @ 0x080231B4 pop {pc} .align 2, 0 thumb_func_start nullsub_135 nullsub_135: @ 0x080231B8 bx lr .align 2, 0 thumb_func_start sub_080231BC sub_080231BC: @ 0x080231BC push {r4, r5, r6, lr} adds r6, r0, #0 ldr r0, _08023280 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x3f bhi _0802327E movs r0, #0xf movs r1, #1 bl sub_0804AA60 adds r4, r0, #0 str r4, [r6, #0x54] str r6, [r4, #0x50] movs r0, #0xf movs r1, #2 bl sub_0804AA60 adds r5, r0, #0 str r5, [r4, #0x54] str r6, [r5, #0x50] movs r0, #0xf movs r1, #3 bl sub_0804AA60 adds r4, r0, #0 str r4, [r5, #0x54] str r6, [r4, #0x50] movs r0, #0xf movs r1, #4 bl sub_0804AA60 adds r5, r0, #0 str r5, [r4, #0x54] str r6, [r5, #0x50] movs r0, #0xf movs r1, #5 bl sub_0804AA60 adds r4, r0, #0 str r4, [r5, #0x54] str r6, [r4, #0x50] movs r0, #0xf movs r1, #6 bl sub_0804AA60 adds r5, r0, #0 str r5, [r4, #0x54] str r6, [r5, #0x50] movs r0, #0xf movs r1, #7 bl sub_0804AA60 adds r4, r0, #0 str r4, [r5, #0x54] str r6, [r4, #0x50] movs r0, #0xf movs r1, #8 bl sub_0804AA60 str r0, [r4, #0x54] str r4, [r0, #0x74] str r6, [r0, #0x50] movs r1, #0 str r1, [r0, #0x54] adds r0, r6, #0 bl sub_0804A720 movs r0, #6 strb r0, [r6, #0xc] movs r1, #0x1e strb r1, [r6, #0xe] str r6, [r6, #0x50] adds r0, r6, #0 adds r0, #0x78 strh r1, [r0] ldrb r1, [r6, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #5 orrs r0, r1 strb r0, [r6, #0x1a] bl sub_08000E50 movs r1, #0x1f ands r0, r1 strb r0, [r6, #0x15] ldrb r0, [r6, #0x15] adds r0, #2 movs r1, #0x1c ands r0, r1 asrs r0, r0, #2 strb r0, [r6, #0x14] ldrb r1, [r6, #0x14] adds r0, r6, #0 bl sub_08004260 _0802327E: pop {r4, r5, r6, pc} .align 2, 0 _08023280: .4byte gUnk_03003DBC thumb_func_start nullsub_136 nullsub_136: @ 0x08023284 bx lr .align 2, 0 thumb_func_start sub_08023288 sub_08023288: @ 0x08023288 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r7, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _08023324 ldrb r1, [r7, #0xe] adds r0, r1, #1 strb r0, [r7, #0xe] movs r0, #0xf ands r0, r1 cmp r0, #0 bne _08023324 bl sub_08000E50 adds r4, r0, #0 movs r0, #0x1e ands r4, r0 movs r0, #0 mov r8, r0 ldr r2, _08023308 @ =gUnk_03001160 mov sb, r2 ldr r0, _0802330C @ =gUnk_080CBC70 mov sl, r0 _080232C2: mov r2, sb movs r0, #0x2e ldrsh r1, [r2, r0] mov r2, sl adds r0, r4, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r6, r1, r0 mov r0, sb movs r2, #0x32 ldrsh r1, [r0, r2] adds r0, r4, #1 add r0, sl ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r5, r1, r0 ldr r0, _08023310 @ =gUnk_03001198 ldrb r2, [r0] adds r0, r6, #0 adds r1, r5, #0 bl sub_080002A4 bl sub_08023A38 cmp r0, #0 beq _08023314 adds r0, r7, #0 adds r1, r6, #0 adds r2, r5, #0 bl sub_08023990 b _08023324 .align 2, 0 _08023308: .4byte gUnk_03001160 _0802330C: .4byte gUnk_080CBC70 _08023310: .4byte gUnk_03001198 _08023314: adds r4, #2 movs r0, #0x1e ands r4, r0 movs r2, #1 add r8, r2 mov r0, r8 cmp r0, #0xf bls _080232C2 _08023324: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08023330 sub_08023330: @ 0x08023330 push {r4, r5, lr} adds r5, r0, #0 bl sub_08004274 adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08023394 movs r0, #4 strb r0, [r5, #0xc] movs r0, #0x19 strb r0, [r5, #0xe] ldrb r1, [r5, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r5, #0x10] adds r1, r5, #0 adds r1, #0x78 movs r4, #0 movs r0, #0x96 lsls r0, r0, #2 strh r0, [r1] bl sub_08000E50 movs r1, #0x1c ands r0, r1 strb r0, [r5, #0x15] lsrs r0, r0, #2 strb r0, [r5, #0x14] adds r0, r5, #0 adds r0, #0x7b strb r4, [r0] adds r0, #4 strb r4, [r0] ldrb r1, [r5, #0x14] adds r0, r5, #0 bl sub_08023A88 ldr r1, [r5, #0x54] adds r0, r5, #0 bl sub_0806FA24 adds r0, r5, #0 movs r1, #4 movs r2, #0 bl sub_080A29AC _08023394: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08023398 sub_08023398: @ 0x08023398 push {r4, r5, r6, lr} adds r5, r0, #0 adds r0, #0x7c ldrb r1, [r0] adds r1, #1 strb r1, [r0] adds r0, #3 ldrb r0, [r0] cmp r0, #0 beq _080233C0 adds r0, r5, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 bne _080233C0 adds r1, r5, #0 adds r1, #0x78 movs r0, #1 strh r0, [r1] _080233C0: adds r4, r5, #0 adds r4, #0x78 ldrh r0, [r4] subs r0, #1 strh r0, [r4] lsls r0, r0, #0x10 cmp r0, #0 bne _08023416 adds r0, r5, #0 bl sub_080002A0 bl sub_08023A38 cmp r0, #0 beq _08023412 movs r0, #5 strb r0, [r5, #0xc] adds r1, r5, #0 adds r1, #0x7f movs r0, #0 strb r0, [r1] ldrb r1, [r5, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r5, #0x10] adds r1, r5, #0 adds r1, #0x3f movs r0, #0x85 strb r0, [r1] ldr r1, [r5, #0x54] movs r0, #1 strb r0, [r1, #0xe] adds r0, r5, #0 bl sub_08023A68 adds r0, r5, #0 movs r1, #4 movs r2, #0 bl sub_080A29AC b _0802349C _08023412: movs r0, #0x28 strh r0, [r4] _08023416: adds r0, r5, #0 adds r0, #0x7f ldrb r0, [r0] cmp r0, #0 beq _08023426 adds r0, r5, #0 bl sub_08023AB0 _08023426: ldrb r0, [r5, #0xe] subs r1, r0, #1 strb r1, [r5, #0xe] lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #2 bhi _08023440 lsls r0, r1, #0x18 cmp r0, #0 bne _0802349C movs r0, #0x19 strb r0, [r5, #0xe] b _0802349C _08023440: ldr r4, [r5, #0x2c] ldr r6, [r5, #0x30] adds r0, r5, #0 bl sub_080AEF88 ldr r0, [r5, #0x2c] cmp r0, r4 bne _08023460 ldr r0, [r5, #0x30] cmp r0, r6 bne _08023460 adds r1, r5, #0 adds r1, #0x7c ldrb r0, [r1] subs r0, #1 strb r0, [r1] _08023460: ldr r0, _080234A0 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #7 ands r0, r1 cmp r0, #0 bne _0802349C adds r0, r5, #0 movs r1, #1 bl sub_08049F84 adds r1, r0, #0 adds r0, r5, #0 bl sub_08004596 ldrb r0, [r5, #0x15] adds r0, #2 movs r1, #0x1c ands r0, r1 asrs r0, r0, #2 ldrb r1, [r5, #0x14] cmp r0, r1 beq _0802349C strb r0, [r5, #0x14] adds r1, r5, #0 adds r1, #0x7b ldrb r1, [r1] adds r1, r0, r1 adds r0, r5, #0 bl sub_08004260 _0802349C: pop {r4, r5, r6, pc} .align 2, 0 _080234A0: .4byte gUnk_030010A0 thumb_func_start sub_080234A4 sub_080234A4: @ 0x080234A4 push {r4, lr} adds r4, r0, #0 adds r0, #0x7c ldrb r1, [r0] adds r1, #1 strb r1, [r0] adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x7f ldrb r0, [r0] cmp r0, #0 beq _080234D6 movs r0, #6 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #0xa ands r0, r1 strb r0, [r4, #0x18] adds r1, r4, #0 adds r1, #0x78 movs r0, #0x96 lsls r0, r0, #1 strh r0, [r1] _080234D6: pop {r4, pc} thumb_func_start sub_080234D8 sub_080234D8: @ 0x080234D8 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x78 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0802351A movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x1a] subs r0, #0x12 ands r0, r1 movs r1, #5 orrs r0, r1 strb r0, [r4, #0x1a] bl sub_08000E50 movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] ldrb r0, [r4, #0x15] adds r0, #2 movs r1, #0x1c ands r0, r1 asrs r0, r0, #2 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08023A88 _0802351A: pop {r4, pc} thumb_func_start sub_0802351C sub_0802351C: @ 0x0802351C push {r4, r5, r6, r7, lr} adds r7, r0, #0 ldrb r0, [r7, #0xe] cmp r0, #0 beq _0802355A ldrb r0, [r7, #0xb] cmp r0, #1 beq _08023534 ldr r0, _080235A8 @ =gUnk_03001160 ldrb r0, [r0, #0x1e] cmp r0, #0xff bne _0802355A _08023534: movs r0, #0 strb r0, [r7, #0xe] ldr r1, [r7, #0x54] movs r0, #3 strb r0, [r1, #0xc] ldr r1, [r7, #0x54] adds r0, r7, #0 adds r0, #0x80 ldrb r0, [r0] strb r0, [r1, #0xf] ldr r0, [r7, #0x54] ldrb r1, [r0, #0x14] adds r1, #1 bl sub_08004260 ldrb r1, [r7, #0x14] adds r0, r7, #0 bl sub_08004260 _0802355A: adds r0, r7, #0 adds r0, #0x7f ldrb r0, [r0] cmp r0, #0 bne _080235B4 ldrb r0, [r7, #0xb] cmp r0, #0 bne _080235B8 ldr r5, _080235A8 @ =gUnk_03001160 ldrb r0, [r7, #0x14] movs r4, #7 adds r2, r4, #0 ands r2, r0 strb r2, [r5, #0x14] ldr r3, _080235AC @ =gUnk_03003F80 ldr r0, [r3, #0x30] movs r1, #0x80 lsls r1, r1, #0xc orrs r0, r1 str r0, [r3, #0x30] ldr r6, _080235B0 @ =gUnk_080CBC90 adds r2, r2, r6 movs r3, #0 ldrsb r3, [r2, r3] lsls r3, r3, #0x10 adds r0, r7, #0 adds r1, r5, #0 movs r2, #0 bl sub_0806FA48 ldrb r0, [r7, #0x14] ands r4, r0 adds r4, r4, r6 ldrb r0, [r4] rsbs r0, r0, #0 adds r5, #0x63 strb r0, [r5] b _080235B8 .align 2, 0 _080235A8: .4byte gUnk_03001160 _080235AC: .4byte gUnk_03003F80 _080235B0: .4byte gUnk_080CBC90 _080235B4: movs r0, #4 strb r0, [r7, #0xc] _080235B8: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080235BC sub_080235BC: @ 0x080235BC push {lr} ldr r2, _080235D0 @ =gUnk_080CBC98 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080235D0: .4byte gUnk_080CBC98 thumb_func_start sub_080235D4 sub_080235D4: @ 0x080235D4 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldr r1, [r4, #0x50] ldrh r0, [r1, #0x2e] strh r0, [r4, #0x2e] ldrh r0, [r1, #0x32] strh r0, [r4, #0x32] adds r0, r4, #0 bl sub_080239F0 ldrb r0, [r4, #0xa] cmp r0, #1 bne _080235F6 movs r0, #0x10 b _080235F8 _080235F6: movs r0, #0x12 _080235F8: strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 pop {r4, pc} thumb_func_start sub_08023604 sub_08023604: @ 0x08023604 push {lr} adds r2, r0, #0 ldr r0, [r2, #0x50] adds r0, #0x7c ldrb r1, [r0] movs r0, #0xf ands r0, r1 adds r0, r0, r2 adds r0, #0x78 ldrb r0, [r0] cmp r0, #0x88 beq _08023640 movs r1, #0 movs r0, #2 strb r0, [r2, #0xc] strb r1, [r2, #0xe] ldrb r1, [r2, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x10] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 bl sub_08023644 _08023640: pop {pc} .align 2, 0 thumb_func_start sub_08023644 sub_08023644: @ 0x08023644 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r5, [r4, #0x50] adds r0, r5, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0x17 bne _08023692 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08023692 movs r0, #0x2e ldrsh r1, [r4, r0] movs r2, #0x2e ldrsh r0, [r5, r2] cmp r1, r0 bne _08023692 movs r6, #0x32 ldrsh r1, [r4, r6] movs r2, #0x32 ldrsh r0, [r5, r2] cmp r1, r0 bne _08023692 movs r2, #1 strb r2, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] ldr r0, [r4, #0x54] strb r2, [r0, #0xe] adds r0, r4, #0 bl sub_080239F0 _08023692: adds r0, r5, #0 adds r0, #0x7c adds r1, r5, #0 adds r1, #0x7d ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 beq _080236F2 movs r2, #0xf adds r1, r2, #0 ands r1, r0 adds r1, #0x78 adds r1, r4, r1 ldrb r0, [r1] lsrs r0, r0, #4 ldr r3, _080236F4 @ =0x0000FFF8 adds r0, r0, r3 ldrh r6, [r4, #0x2e] adds r0, r0, r6 strh r0, [r4, #0x2e] ldrb r0, [r1] ands r2, r0 adds r2, r2, r3 ldrh r0, [r4, #0x32] adds r2, r2, r0 strh r2, [r4, #0x32] ldrb r2, [r5, #0x1b] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r3, [r4, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r3 orrs r0, r2 strb r0, [r4, #0x1b] ldrb r0, [r5, #0x19] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r4, #0x19] ands r1, r2 orrs r1, r0 strb r1, [r4, #0x19] adds r0, r5, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] _080236F2: pop {r4, r5, r6, pc} .align 2, 0 _080236F4: .4byte 0x0000FFF8 thumb_func_start sub_080236F8 sub_080236F8: @ 0x080236F8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0802372E movs r0, #2 strb r0, [r4, #0xc] ldr r1, [r4, #0x54] movs r0, #3 strb r0, [r1, #0xc] ldr r1, [r4, #0x54] ldr r0, [r4, #0x50] adds r0, #0x80 ldrb r0, [r0] strb r0, [r1, #0xf] ldr r0, [r4, #0x54] ldrb r1, [r0, #0x14] adds r1, #1 bl sub_08004260 ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 _0802372E: pop {r4, pc} thumb_func_start sub_08023730 sub_08023730: @ 0x08023730 push {lr} ldr r2, _08023744 @ =gUnk_080CBCA8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08023744: .4byte gUnk_080CBCA8 thumb_func_start sub_08023748 sub_08023748: @ 0x08023748 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x14 strb r0, [r4, #0x14] ldr r1, [r4, #0x50] ldrh r0, [r1, #0x2e] strh r0, [r4, #0x2e] ldrh r0, [r1, #0x32] strh r0, [r4, #0x32] adds r0, r4, #0 bl sub_080239F0 adds r0, r4, #0 bl sub_08023A68 pop {r4, pc} thumb_func_start sub_0802376C sub_0802376C: @ 0x0802376C push {r4, r5, lr} adds r4, r0, #0 ldr r5, [r4, #0x50] ldrb r0, [r5, #0x18] lsls r0, r0, #0x1e lsrs r0, r0, #0x1e cmp r0, #1 bne _0802379A adds r0, r5, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0xf bhi _0802379A ldrb r0, [r4, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 movs r0, #1 orrs r1, r0 strb r1, [r4, #0x18] adds r0, r4, #0 bl sub_08004274 _0802379A: adds r0, r5, #0 adds r0, #0x7c ldrb r1, [r0] movs r0, #0xf ands r0, r1 adds r0, r0, r4 adds r0, #0x78 ldrb r0, [r0] cmp r0, #0x88 beq _080237D4 movs r1, #0 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r4, #0xe] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldr r0, [r4, #0x50] adds r0, #0x7f movs r1, #1 strb r1, [r0] adds r0, r4, #0 movs r1, #0x14 bl sub_08023A88 adds r0, r4, #0 bl sub_080237D8 _080237D4: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080237D8 sub_080237D8: @ 0x080237D8 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r5, [r4, #0x50] adds r0, r5, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0x17 bne _0802382E ldrb r0, [r4, #0xe] cmp r0, #0 beq _0802382E movs r0, #0x2e ldrsh r1, [r4, r0] movs r2, #0x2e ldrsh r0, [r5, r2] cmp r1, r0 bne _0802382E movs r6, #0x32 ldrsh r1, [r4, r6] movs r2, #0x32 ldrsh r0, [r5, r2] cmp r1, r0 bne _0802382E movs r2, #1 strb r2, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] adds r0, r5, #0 adds r0, #0x7f strb r2, [r0] adds r0, r4, #0 bl sub_080239F0 adds r0, r4, #0 bl sub_08023A68 _0802382E: adds r0, r5, #0 adds r0, #0x7c adds r1, r5, #0 adds r1, #0x7d ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 beq _0802388E movs r2, #0xf adds r1, r2, #0 ands r1, r0 adds r1, #0x78 adds r1, r4, r1 ldrb r0, [r1] lsrs r0, r0, #4 ldr r3, _08023890 @ =0x0000FFF8 adds r0, r0, r3 ldrh r6, [r4, #0x2e] adds r0, r0, r6 strh r0, [r4, #0x2e] ldrb r0, [r1] ands r2, r0 adds r2, r2, r3 ldrh r0, [r4, #0x32] adds r2, r2, r0 strh r2, [r4, #0x32] ldrb r2, [r5, #0x1b] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r3, [r4, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r3 orrs r0, r2 strb r0, [r4, #0x1b] ldrb r0, [r5, #0x19] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r4, #0x19] ands r1, r2 orrs r1, r0 strb r1, [r4, #0x19] adds r0, r5, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] _0802388E: pop {r4, r5, r6, pc} .align 2, 0 _08023890: .4byte 0x0000FFF8 thumb_func_start sub_08023894 sub_08023894: @ 0x08023894 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xf] subs r0, #1 strb r0, [r5, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08023900 movs r0, #2 strb r0, [r5, #0xc] ldr r0, [r5, #0x50] adds r0, #0x7f movs r1, #1 strb r1, [r0] ldrb r1, [r5, #0x14] adds r0, r5, #0 bl sub_08004260 ldr r0, [r5, #0x50] ldrb r0, [r0, #0xb] cmp r0, #0 bne _08023900 ldr r2, _08023904 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x80 lsls r1, r1, #0xe orrs r0, r1 str r0, [r2, #0x30] ldr r4, _08023908 @ =gUnk_03001160 ldrh r0, [r5, #0x2e] strh r0, [r4, #0x2e] ldrh r0, [r5, #0x32] strh r0, [r4, #0x32] ldr r0, [r5, #0x74] adds r1, r5, #0 bl sub_080045C4 adds r0, #4 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] lsrs r0, r0, #2 strb r0, [r4, #0x14] adds r1, r4, #0 adds r1, #0x3d movs r0, #0xc strb r0, [r1] subs r0, #0x1c bl sub_080526A0 adds r0, r4, #0 movs r1, #0x7a bl sub_0800449C _08023900: pop {r4, r5, pc} .align 2, 0 _08023904: .4byte gUnk_03003F80 _08023908: .4byte gUnk_03001160 thumb_func_start sub_0802390C sub_0802390C: @ 0x0802390C push {r4, r5, lr} adds r5, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08023932 ldr r2, [r5, #0x54] adds r3, r5, #0 adds r3, #0x3d _08023922: ldrb r0, [r3] adds r1, r2, #0 adds r1, #0x3d strb r0, [r1] ldr r2, [r2, #0x54] cmp r2, #0 bne _08023922 b _0802398C _08023932: ldr r2, [r5, #0x54] b _0802393C _08023936: ldr r2, [r2, #0x54] cmp r2, #0 beq _0802398C _0802393C: adds r0, r2, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08023936 movs r0, #0x45 adds r0, r0, r2 mov ip, r0 ldrb r1, [r0] movs r4, #0xff subs r0, r4, r1 lsls r0, r0, #0x18 lsrs r3, r0, #0x18 cmp r3, #0 beq _08023936 adds r0, r1, #0 orrs r0, r4 mov r1, ip strb r0, [r1] adds r0, r2, #0 adds r0, #0x3d ldrb r4, [r0] adds r1, r5, #0 adds r1, #0x45 ldrb r0, [r1] cmp r0, r3 blo _0802397A subs r0, r0, r3 b _0802397C _0802397A: movs r0, #0 _0802397C: strb r0, [r1] adds r2, r5, #0 _08023980: adds r0, r2, #0 adds r0, #0x3d strb r4, [r0] ldr r2, [r2, #0x54] cmp r2, #0 bne _08023980 _0802398C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08023990 sub_08023990: @ 0x08023990 push {r4, r5, lr} adds r5, r0, #0 movs r0, #3 strb r0, [r5, #0xc] ldrb r3, [r5, #0x18] subs r0, #7 ands r0, r3 movs r3, #1 orrs r0, r3 strb r0, [r5, #0x18] movs r0, #0x55 strb r0, [r5, #0x1a] adds r4, r5, #0 adds r4, #0x29 ldrb r0, [r4] movs r3, #7 orrs r0, r3 strb r0, [r4] strh r1, [r5, #0x2e] strh r2, [r5, #0x32] ldr r0, _080239EC @ =gUnk_03001160 adds r0, #0x38 ldrb r1, [r0] adds r0, r5, #0 adds r0, #0x38 strb r1, [r0] adds r0, r5, #0 bl sub_08016A04 adds r0, r5, #0 movs r1, #0x16 bl sub_08004260 ldr r4, [r5, #0x54] _080239D4: adds r0, r4, #0 bl sub_080239F0 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 ldr r4, [r4, #0x54] cmp r4, #0 bne _080239D4 pop {r4, r5, pc} .align 2, 0 _080239EC: .4byte gUnk_03001160 thumb_func_start sub_080239F0 sub_080239F0: @ 0x080239F0 adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x78 movs r0, #0x88 strb r0, [r1] adds r1, #1 strb r0, [r1] adds r1, #1 strb r0, [r1] adds r1, #1 strb r0, [r1] adds r1, #1 strb r0, [r1] adds r1, #1 strb r0, [r1] adds r1, #1 strb r0, [r1] adds r1, #1 strb r0, [r1] adds r1, #1 strb r0, [r1] adds r1, #1 strb r0, [r1] adds r1, #1 strb r0, [r1] adds r1, #1 strb r0, [r1] adds r1, #1 strb r0, [r1] adds r1, #1 strb r0, [r1] adds r1, #1 strb r0, [r1] adds r1, #1 strb r0, [r1] bx lr thumb_func_start sub_08023A38 sub_08023A38: @ 0x08023A38 push {lr} adds r1, r0, #0 cmp r1, #0x1a beq _08023A5A cmp r1, #0x29 beq _08023A5A ldr r0, _08023A60 @ =gUnk_080B37A0 adds r0, r1, r0 ldrb r1, [r0] cmp r1, #9 beq _08023A5A cmp r1, #0xb beq _08023A5A cmp r1, #0xa beq _08023A5A cmp r1, #0xc bne _08023A64 _08023A5A: movs r0, #1 b _08023A66 .align 2, 0 _08023A60: .4byte gUnk_080B37A0 _08023A64: movs r0, #0 _08023A66: pop {pc} thumb_func_start sub_08023A68 sub_08023A68: @ 0x08023A68 push {r4, lr} adds r4, r0, #0 movs r1, #5 bl sub_0801D2B4 adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #0x17 bl sub_08004260 pop {r4, pc} thumb_func_start sub_08023A88 sub_08023A88: @ 0x08023A88 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 movs r1, #0x22 bl sub_0801D2B4 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 r0, r4, #0 adds r1, r5, #0 bl sub_08004260 pop {r4, r5, pc} thumb_func_start sub_08023AB0 sub_08023AB0: @ 0x08023AB0 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r7, r4, #0 adds r7, #0x7b ldrb r0, [r7] cmp r0, #8 bne _08023AF6 adds r5, r4, #0 adds r5, #0x7e ldrb r0, [r5] adds r6, r0, #0 cmp r6, #0 bne _08023B00 adds r0, r4, #0 bl sub_08023B38 cmp r0, #0 beq _08023ADE adds r0, r4, #0 adds r0, #0x78 ldrh r0, [r0] cmp r0, #0x1d bhi _08023B34 _08023ADE: adds r1, r4, #0 adds r1, #0x3f movs r0, #0x85 strb r0, [r1] strb r6, [r7] movs r0, #0x1e strb r0, [r5] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 b _08023B34 _08023AF6: adds r5, r4, #0 adds r5, #0x7e ldrb r0, [r5] cmp r0, #0 beq _08023B06 _08023B00: subs r0, #1 strb r0, [r5] b _08023B34 _08023B06: adds r0, r4, #0 adds r0, #0x78 ldrh r0, [r0] cmp r0, #0x59 bls _08023B34 adds r0, r4, #0 bl sub_08023B38 cmp r0, #0 beq _08023B34 adds r1, r4, #0 adds r1, #0x3f movs r0, #0x87 strb r0, [r1] movs r0, #8 strb r0, [r7] movs r0, #0xa strb r0, [r5] ldrb r1, [r4, #0x14] adds r1, #8 adds r0, r4, #0 bl sub_08004260 _08023B34: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08023B38 sub_08023B38: @ 0x08023B38 push {r4, r5, r6, lr} adds r4, r0, #0 movs r0, #1 bl sub_08049DF4 adds r5, r0, #0 cmp r5, #0 bne _08023B4C movs r0, #0 b _08023B8E _08023B4C: movs r0, #0x2e ldrsh r2, [r4, r0] ldr r3, _08023B90 @ =gUnk_080CBCB8 ldrb r0, [r4, #0x14] lsls r0, r0, #1 adds r1, r0, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r2, r2, r1 movs r6, #0x32 ldrsh r1, [r4, r6] adds r0, #1 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r1, r1, r0 movs r3, #0 movs r4, #0x2e ldrsh r0, [r5, r4] subs r0, r0, r2 adds r0, #0x14 cmp r0, #0x28 bhi _08023B8C movs r6, #0x32 ldrsh r0, [r5, r6] subs r0, r0, r1 adds r0, #0x14 cmp r0, #0x28 bhi _08023B8C movs r3, #1 _08023B8C: adds r0, r3, #0 _08023B8E: pop {r4, r5, r6, pc} .align 2, 0 _08023B90: .4byte gUnk_080CBCB8 thumb_func_start sub_08023B94 sub_08023B94: @ 0x08023B94 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xa] cmp r0, #1 bne _08023BAC ldr r1, _08023BA8 @ =gUnk_080CBDBC adds r0, r5, #0 bl sub_0800129E b _08023BEC .align 2, 0 _08023BA8: .4byte gUnk_080CBDBC _08023BAC: cmp r0, #0 bne _08023C00 movs r1, #0x36 ldrsh r0, [r5, r1] cmp r0, #0 bne _08023BD8 adds r0, r5, #0 bl sub_080012DC adds r1, r0, #0 cmp r1, #0 beq _08023BD8 ldr r0, _08023BD4 @ =gUnk_080012C8 lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r5, #0 bl _call_via_r1 b _08023C06 .align 2, 0 _08023BD4: .4byte gUnk_080012C8 _08023BD8: ldr r4, _08023BFC @ =gUnk_080CBDD4 adds r0, r5, #0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 _08023BEC: movs r3, #0x10 rsbs r3, r3, #0 adds r0, r5, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC b _08023C06 .align 2, 0 _08023BFC: .4byte gUnk_080CBDD4 _08023C00: adds r0, r5, #0 bl sub_08023E10 _08023C06: pop {r4, r5, pc} thumb_func_start sub_08023C08 sub_08023C08: @ 0x08023C08 push {lr} ldr r2, _08023C1C @ =gUnk_080CBDEC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08023C1C: .4byte gUnk_080CBDEC thumb_func_start sub_08023C20 sub_08023C20: @ 0x08023C20 push {r4, lr} adds r4, r0, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _08023C34 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _08023C34: ldrb r0, [r4, #0xa] cmp r0, #1 bne _08023C48 ldr r1, _08023C44 @ =gUnk_080CBDBC adds r0, r4, #0 bl sub_0804AA30 b _08023C50 .align 2, 0 _08023C44: .4byte gUnk_080CBDBC _08023C48: ldr r1, _08023C54 @ =gUnk_080CBDD4 adds r0, r4, #0 bl sub_0804AA30 _08023C50: pop {r4, pc} .align 2, 0 _08023C54: .4byte gUnk_080CBDD4 thumb_func_start nullsub_137 nullsub_137: @ 0x08023C58 bx lr .align 2, 0 thumb_func_start sub_08023C5C sub_08023C5C: @ 0x08023C5C push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r0, #1 strb r0, [r4, #0xc] bl sub_08000E50 movs r1, #0x30 ands r0, r1 adds r0, #0xb4 strb r0, [r4, #0xe] bl sub_08000E50 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] lsrs r0, r0, #3 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 pop {r4, pc} thumb_func_start sub_08023C8C sub_08023C8C: @ 0x08023C8C push {r4, lr} adds r4, r0, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_08023E54 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08023CDC adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] cmp r0, #1 beq _08023CBC movs r0, #8 strb r0, [r4, #0xe] b _08023CDC _08023CBC: bl sub_08000E50 movs r1, #0x30 ands r0, r1 adds r0, #0xb4 strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_08023E9C ldrb r0, [r4, #0x15] lsrs r0, r0, #3 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 _08023CDC: pop {r4, pc} .align 2, 0 thumb_func_start sub_08023CE0 sub_08023CE0: @ 0x08023CE0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _08023D48 cmp r0, #1 bgt _08023CF4 cmp r0, #0 beq _08023CFA b _08023DC0 _08023CF4: cmp r0, #2 beq _08023D6E b _08023DC0 _08023CFA: adds r0, r4, #0 bl sub_0804A720 ldrb r1, [r4, #0xb] cmp r1, #1 bne _08023D1C movs r0, #2 strb r0, [r4, #0xc] ldrb r0, [r4, #0xe] cmp r0, #0 bne _08023D12 strb r1, [r4, #0xe] _08023D12: ldrb r0, [r4, #0x18] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x18] b _08023D20 _08023D1C: movs r0, #1 strb r0, [r4, #0xc] _08023D20: ldr r0, _08023D44 @ =0x0000FF80 strh r0, [r4, #0x36] 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] adds r0, r4, #0 movs r1, #6 bl sub_08004260 b _08023E0A .align 2, 0 _08023D44: .4byte 0x0000FF80 _08023D48: adds r0, r4, #0 movs r1, #1 movs r2, #0x20 bl sub_08049F64 cmp r0, #0 beq _08023E0A movs r0, #2 strb r0, [r4, #0xc] ldrb r0, [r4, #0xe] cmp r0, #0 bne _08023D64 movs r0, #8 strb r0, [r4, #0xe] _08023D64: ldrb r0, [r4, #0x18] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x18] b _08023E0A _08023D6E: ldrb r0, [r4, #0xe] cmp r0, #0 beq _08023D94 subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08023E0A ldr r0, _08023D90 @ =0x0000012D bl sub_08004488 adds r0, r4, #0 movs r1, #4 bl sub_08004260 b _08023E0A .align 2, 0 _08023D90: .4byte 0x0000012D _08023D94: movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08023E0A movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #7 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #0x84 bl sub_08004488 adds r0, r4, #0 bl sub_08016A04 b _08023E0A _08023DC0: adds r0, r4, #0 bl sub_08004274 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] cmp r1, #0 beq _08023E0A movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08023DF2 movs r0, #0x10 movs r1, #1 bl sub_0804AA60 adds r1, r0, #0 cmp r1, #0 beq _08023E0A adds r0, r4, #0 bl sub_0804A4E4 bl sub_0805E780 b _08023E0A _08023DF2: ldr r1, _08023E0C @ =gUnk_080CBDF4 ldrb r0, [r2] subs r0, #1 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r4, #0x32] adds r0, r0, r1 movs r1, #0 strh r0, [r4, #0x32] strb r1, [r2] _08023E0A: pop {r4, pc} .align 2, 0 _08023E0C: .4byte gUnk_080CBDF4 thumb_func_start sub_08023E10 sub_08023E10: @ 0x08023E10 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08023E36 movs r0, #1 strb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #9 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #5 bl sub_08004260 _08023E36: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08023E50 adds r0, r4, #0 bl sub_0805E7BC _08023E50: pop {r4, pc} .align 2, 0 thumb_func_start sub_08023E54 sub_08023E54: @ 0x08023E54 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] adds r1, r0, #1 strb r1, [r4, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x1b bls _08023E94 movs r0, #0 strb r0, [r4, #0xf] movs r0, #0x10 movs r1, #2 bl sub_0804AA60 adds r5, r0, #0 cmp r5, #0 beq _08023E94 ldrb r0, [r4, #0x14] lsls r0, r0, #1 ldr r1, _08023E98 @ =gUnk_080CBDF7 adds r0, r0, r1 movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #0x10 movs r3, #1 ldrsb r3, [r0, r3] lsls r3, r3, #0x10 adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA48 _08023E94: pop {r4, r5, pc} .align 2, 0 _08023E98: .4byte gUnk_080CBDF7 thumb_func_start sub_08023E9C sub_08023E9C: @ 0x08023E9C push {r4, r5, r6, lr} adds r5, r0, #0 bl sub_08000E50 adds r6, r0, #0 adds r0, r5, #0 bl sub_08049FA0 cmp r0, #0 bne _08023EC2 movs r0, #1 ands r0, r6 cmp r0, #0 beq _08023EC2 adds r0, r5, #0 bl sub_08049EE4 adds r0, #4 b _08023F1C _08023EC2: adds r0, r5, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _08023F0A movs r0, #6 ands r0, r6 cmp r0, #0 beq _08023F0A ldr r0, _08023F00 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r5, #0 bl sub_080045C4 ldrb r2, [r5, #0x15] subs r1, r0, r2 cmp r1, #0 beq _08023F22 adds r0, r1, #4 movs r3, #0x1f ands r0, r3 cmp r0, #8 bls _08023F22 ands r1, r3 cmp r1, #0xf bhi _08023F04 adds r0, r2, #0 adds r0, #8 b _08023F1C .align 2, 0 _08023F00: .4byte gUnk_020000B0 _08023F04: adds r0, r2, #0 subs r0, #8 b _08023F1C _08023F0A: ldr r4, _08023F24 @ =gUnk_080CBDFF lsrs r0, r6, #4 movs r1, #3 bl __modsi3 adds r0, r0, r4 ldrb r0, [r0] ldrb r1, [r5, #0x15] adds r0, r0, r1 _08023F1C: movs r1, #0x18 ands r0, r1 strb r0, [r5, #0x15] _08023F22: pop {r4, r5, r6, pc} .align 2, 0 _08023F24: .4byte gUnk_080CBDFF thumb_func_start sub_08023F28 sub_08023F28: @ 0x08023F28 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _08023F40 @ =gUnk_080CBEC4 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _08023F40: .4byte gUnk_080CBEC4 thumb_func_start sub_08023F44 sub_08023F44: @ 0x08023F44 push {lr} ldr r2, _08023F58 @ =gUnk_080CBEDC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08023F58: .4byte gUnk_080CBEDC thumb_func_start sub_08023F5C sub_08023F5C: @ 0x08023F5C push {r4, lr} mov ip, r0 adds r0, #0x3f ldrb r0, [r0] cmp r0, #0x6e beq _08023FC8 mov r0, ip adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x80 bne _08023FD0 mov r1, ip adds r1, #0x86 movs r0, #0x30 strb r0, [r1] mov r2, ip adds r2, #0x83 ldrb r1, [r2] movs r0, #0xf ands r0, r1 adds r4, r2, #0 cmp r0, #3 bne _08023FD0 mov r1, ip ldrb r0, [r1, #0xc] cmp r0, #6 bne _08023FD0 subs r2, #3 ldrb r0, [r2] cmp r0, #1 beq _08023FA0 cmp r0, #2 beq _08023FB8 b _08023FD0 _08023FA0: movs r0, #0 ldr r1, _08023FC4 @ =0x0000FFF0 mov r3, ip strh r1, [r3, #0x36] adds r3, #0x82 strb r0, [r3] mov r0, ip adds r0, #0x78 strh r1, [r0] ldrb r0, [r2] adds r0, #1 strb r0, [r2] _08023FB8: ldrb r1, [r4] movs r0, #0x7f ands r0, r1 strb r0, [r4] b _08023FD0 .align 2, 0 _08023FC4: .4byte 0x0000FFF0 _08023FC8: mov r1, ip adds r1, #0x45 movs r0, #0 strb r0, [r1] _08023FD0: ldr r1, _08023FDC @ =gUnk_080CBEC4 mov r0, ip bl sub_0804AA30 pop {r4, pc} .align 2, 0 _08023FDC: .4byte gUnk_080CBEC4 thumb_func_start sub_08023FE0 sub_08023FE0: @ 0x08023FE0 push {r4, lr} adds r4, r0, #0 bl sub_08001324 thumb_func_start sub_08023FE8 sub_08023FE8: @ 0x08023FE8 adds r0, r4, #0 bl sub_08004274 pop {r4, pc} thumb_func_start sub_08023FF0 sub_08023FF0: @ 0x08023FF0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #2 bhi _08024022 adds r0, r4, #0 bl sub_0806F520 cmp r0, #0 bne _08024022 movs r2, #1 strb r2, [r4, #0xc] strb r0, [r4, #0xd] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x77 strb r0, [r1] strb r2, [r4, #0xe] movs r0, #0x40 strh r0, [r4, #0x24] b _08024032 _08024022: ldr r0, _08024034 @ =gUnk_080CBEF8 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _08024032: pop {r4, pc} .align 2, 0 _08024034: .4byte gUnk_080CBEF8 thumb_func_start sub_08024038 sub_08024038: @ 0x08024038 push {lr} movs r1, #1 strb r1, [r0, #0xd] movs r1, #0x3c strb r1, [r0, #0x1d] bl sub_08004274 pop {pc} thumb_func_start sub_08024048 sub_08024048: @ 0x08024048 push {r4, lr} adds r4, r0, #0 bl sub_0806F4E8 adds r0, r4, #0 bl sub_08004274 pop {r4, pc} thumb_func_start sub_08024058 sub_08024058: @ 0x08024058 push {lr} bl sub_0806F3E4 pop {pc} thumb_func_start sub_08024060 sub_08024060: @ 0x08024060 push {lr} adds r3, r0, #0 adds r2, r3, #0 adds r2, #0x3f ldrb r0, [r2] cmp r0, #0x6e beq _0802408C ldrb r1, [r3, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r3, #0x10] movs r0, #0x6e strb r0, [r2] ldr r0, _08024094 @ =gUnk_03001160 ldrb r1, [r0, #0x19] lsrs r1, r1, #6 lsls r1, r1, #6 ldrb r2, [r3, #0x19] movs r0, #0x3f ands r0, r2 orrs r0, r1 strb r0, [r3, #0x19] _0802408C: adds r0, r3, #0 bl sub_08004274 pop {pc} .align 2, 0 _08024094: .4byte gUnk_03001160 thumb_func_start nullsub_138 nullsub_138: @ 0x08024098 bx lr .align 2, 0 thumb_func_start sub_0802409C sub_0802409C: @ 0x0802409C push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x45 movs r0, #0 strb r0, [r1] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_080A29BC pop {r4, pc} thumb_func_start sub_080240B8 sub_080240B8: @ 0x080240B8 push {r4, r5, r6, r7, lr} adds r4, r0, #0 bl sub_08000E50 movs r1, #0xc0 ands r1, r0 lsrs r7, r1, #3 adds r0, r4, #0 bl sub_0804A720 movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0xd] adds r0, r4, #0 adds r0, #0x80 strb r1, [r0] movs r0, #8 ands r0, r7 cmp r0, #0 beq _080240FC movs r0, #0x32 ldrsh r1, [r4, r0] movs r0, #0x10 ands r0, r7 cmp r0, #0 beq _080240F4 adds r0, r1, #0 subs r0, #0x20 b _080240F8 _080240F4: adds r0, r1, #0 adds r0, #0x20 _080240F8: strh r0, [r4, #0x32] b _08024114 _080240FC: movs r0, #0x2e ldrsh r1, [r4, r0] movs r0, #0x10 ands r0, r7 cmp r0, #0 beq _0802410E adds r0, r1, #0 subs r0, #0x20 b _08024112 _0802410E: adds r0, r1, #0 adds r0, #0x20 _08024112: strh r0, [r4, #0x2e] _08024114: ldrb r0, [r4, #0xa] cmp r0, #0 beq _08024120 cmp r0, #1 beq _0802412C b _08024136 _08024120: adds r1, r4, #0 adds r1, #0x78 ldr r0, _08024128 @ =0x0000FFF0 b _08024132 .align 2, 0 _08024128: .4byte 0x0000FFF0 _0802412C: adds r1, r4, #0 adds r1, #0x78 ldr r0, _080241BC @ =0x0000FFD0 _08024132: strh r0, [r1] strh r0, [r4, #0x36] _08024136: adds r0, r4, #0 bl sub_08016A04 bl sub_08052660 cmp r0, #0 beq _08024150 ldrb r0, [r4, #0x1b] movs r1, #0x3f ands r1, r0 movs r0, #0x40 orrs r1, r0 strb r1, [r4, #0x1b] _08024150: bl sub_08000E50 movs r1, #0x40 ands r0, r1 adds r1, r4, #0 adds r1, #0x81 movs r6, #0 strb r0, [r1] adds r0, r4, #0 adds r0, #0x82 strb r6, [r0] adds r5, r4, #0 adds r5, #0x83 movs r0, #0x80 strb r0, [r5] adds r0, r4, #0 adds r0, #0x86 strb r6, [r0] adds r0, #1 strb r6, [r0] strb r6, [r4, #0xe] movs r0, #0x20 strb r0, [r4, #0xf] adds r2, r4, #0 adds r2, #0x3c ldrb r1, [r2] movs r0, #0x10 orrs r0, r1 strb r0, [r2] movs r0, #2 strb r0, [r4, #0x1c] strb r7, [r4, #0x15] adds r0, r4, #0 bl sub_080249DC ldrb r0, [r4, #0xa] cmp r0, #1 bne _080241B8 strb r6, [r5] ldrb r2, [r5] adds r0, r4, #0 movs r1, #6 bl sub_0804A98C adds r1, r0, #0 cmp r1, #0 beq _080241B8 str r1, [r4, #0x54] str r4, [r1, #0x50] ldrh r0, [r1, #0x32] adds r0, #0x10 strh r0, [r1, #0x32] _080241B8: pop {r4, r5, r6, r7, pc} .align 2, 0 _080241BC: .4byte 0x0000FFD0 thumb_func_start sub_080241C0 sub_080241C0: @ 0x080241C0 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_08024940 adds r6, r4, #0 adds r6, #0x80 ldrb r5, [r6] cmp r5, #0 beq _080241D8 cmp r5, #1 beq _08024238 b _08024296 _080241D8: ldr r0, _08024218 @ =gUnk_03003F80 ldrb r0, [r0, #0xf] movs r2, #0x40 cmp r0, #0 beq _080241E4 movs r2, #0xa0 _080241E4: adds r0, r4, #0 movs r1, #3 bl sub_08049F64 cmp r0, #0 beq _08024220 adds r0, r4, #0 movs r1, #3 bl sub_08049FDC cmp r0, #0 beq _08024220 ldr r0, _0802421C @ =gUnk_03001160 ldrb r0, [r0, #0xc] cmp r0, #0x1e beq _08024220 ldrb r0, [r6] adds r0, #1 strb r0, [r6] strh r5, [r4, #0x24] adds r0, r4, #0 movs r1, #3 movs r2, #0xa bl sub_08024A14 b _08024296 .align 2, 0 _08024218: .4byte gUnk_03003F80 _0802421C: .4byte gUnk_03001160 _08024220: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08024296 adds r0, r4, #0 movs r1, #0 movs r2, #0x20 bl sub_08024A14 b _08024296 _08024238: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08024296 ldrb r0, [r4, #0xa] cmp r0, #0 beq _08024290 adds r5, r4, #0 adds r5, #0x83 ldrb r1, [r5] movs r0, #0x80 ands r0, r1 lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 beq _0802426C adds r0, r4, #0 bl sub_08024C94 ldrb r0, [r5] movs r1, #0x40 orrs r0, r1 strb r0, [r5] b _08024296 _0802426C: movs r0, #3 strb r0, [r4, #0xc] strb r1, [r6] movs r0, #0xa strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #0 bl sub_08024E00 adds r0, r4, #0 bl sub_08024E1C ldrb r2, [r4, #0xf] adds r0, r4, #0 movs r1, #3 bl sub_08024A14 b _08024296 _08024290: adds r0, r4, #0 bl sub_08024C94 _08024296: pop {r4, r5, r6, pc} thumb_func_start sub_08024298 sub_08024298: @ 0x08024298 push {lr} bl sub_08024D00 pop {pc} thumb_func_start sub_080242A0 sub_080242A0: @ 0x080242A0 push {r4, r5, lr} adds r4, r0, #0 bl sub_08024940 adds r0, r4, #0 bl sub_08024CC0 cmp r0, #0 beq _08024334 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r1, #0xff lsls r0, r0, #0x18 lsrs r5, r0, #0x18 cmp r5, #0 bne _080242F0 ldr r0, _080242E4 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #1 bl sub_08024E00 movs r1, #0x24 ldrsh r0, [r4, r1] cmp r0, #0 beq _080242E8 strh r5, [r4, #0x24] b _08024306 .align 2, 0 _080242E4: .4byte gUnk_020000B0 _080242E8: adds r0, r4, #0 bl sub_08024E1C b _08024306 _080242F0: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] ands r0, r1 cmp r0, #0 bne _08024306 adds r0, r4, #0 movs r1, #3 movs r2, #0xa bl sub_08024A14 _08024306: ldr r0, _08024338 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 movs r2, #0x20 bl sub_08049F1C cmp r0, #0 beq _08024334 adds r0, r4, #0 movs r1, #3 bl sub_08049FDC cmp r0, #0 beq _08024334 movs r1, #0 movs r0, #4 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x80 strb r1, [r0] movs r0, #0x10 strb r0, [r4, #0xe] strh r1, [r4, #0x24] _08024334: pop {r4, r5, pc} .align 2, 0 _08024338: .4byte gUnk_020000B0 thumb_func_start sub_0802433C sub_0802433C: @ 0x0802433C push {r4, lr} adds r4, r0, #0 bl sub_08024940 adds r2, r4, #0 adds r2, #0x80 ldrb r0, [r2] cmp r0, #0 beq _08024354 cmp r0, #1 beq _0802437A b _080243B6 _08024354: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080243B6 ldrb r0, [r2] adds r0, #1 strb r0, [r2] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r4, #0x24] movs r0, #8 strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #1 bl sub_08024E00 b _080243B6 _0802437A: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r3, #0xff lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _080243A0 movs r0, #5 strb r0, [r4, #0xc] strb r1, [r2] movs r0, #0xa0 lsls r0, r0, #1 strh r0, [r4, #0x24] movs r0, #0xc0 strb r0, [r4, #0xe] movs r0, #8 strb r0, [r4, #0xf] b _080243B6 _080243A0: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] ands r0, r3 cmp r0, #0 bne _080243B6 adds r0, r4, #0 movs r1, #2 movs r2, #4 bl sub_08024A14 _080243B6: pop {r4, pc} thumb_func_start sub_080243B8 sub_080243B8: @ 0x080243B8 push {r4, r5, lr} adds r4, r0, #0 bl sub_08024940 adds r5, r4, #0 adds r5, #0x80 ldrb r0, [r5] cmp r0, #1 beq _0802446A cmp r0, #1 bgt _080243D4 cmp r0, #0 beq _080243DA b _080244E4 _080243D4: cmp r0, #2 beq _08024486 b _080244E4 _080243DA: adds r0, r4, #0 movs r1, #1 bl sub_08024C48 cmp r0, #0 beq _08024462 ldr r0, [r4, #0x54] cmp r0, #0 beq _080243F2 ldr r0, [r0, #4] cmp r0, #0 bne _08024406 _080243F2: movs r0, #2 strb r0, [r5] movs r0, #0x20 strb r0, [r4, #0xe] movs r1, #0x80 strh r1, [r4, #0x24] adds r0, r4, #0 adds r0, #0x83 strb r1, [r0] b _080244E4 _08024406: ldr r0, _08024434 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 movs r2, #0xe bl sub_08049F1C cmp r0, #0 beq _08024438 ldrb r0, [r5] adds r0, #1 strb r0, [r5] movs r0, #0x1e strb r0, [r4, #0xe] adds r0, #0xe2 strh r0, [r4, #0x24] adds r1, r4, #0 adds r1, #0x83 movs r0, #0x80 strb r0, [r1] ldr r1, [r4, #0x54] movs r0, #2 strb r0, [r1, #0xc] b _080244E4 .align 2, 0 _08024434: .4byte gUnk_020000B0 _08024438: ldrb r0, [r4, #0xe] subs r2, r0, #1 strb r2, [r4, #0xe] movs r1, #0xff lsls r0, r2, #0x18 cmp r0, #0 beq _08024462 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] ands r0, r1 cmp r0, #0 bne _080244E4 lsls r2, r2, #0x18 lsrs r2, r2, #0x1e adds r2, #1 adds r0, r4, #0 movs r1, #2 bl sub_08024A14 b _080244E4 _08024462: adds r0, r4, #0 bl sub_08024C7C b _080244E4 _0802446A: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080244E4 ldrb r0, [r5] adds r0, #1 strb r0, [r5] movs r0, #0x20 strb r0, [r4, #0xe] movs r0, #0x80 strh r0, [r4, #0x24] b _080244E4 _08024486: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _080244E4 movs r0, #6 strb r0, [r4, #0xc] strb r1, [r5] movs r0, #0x80 strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_08024B38 adds r0, r4, #0 adds r0, #0x83 ldrb r1, [r0] movs r2, #0x40 adds r0, r2, #0 ands r0, r1 cmp r0, #0 bne _080244D8 movs r0, #0x3f ands r0, r1 cmp r0, #1 beq _080244C4 cmp r0, #3 bne _080244C8 movs r0, #4 b _080244CA _080244C4: movs r0, #0x14 b _080244CA _080244C8: movs r0, #0x30 _080244CA: strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #2 movs r2, #8 bl sub_08024A14 b _080244E4 _080244D8: strb r2, [r4, #0xe] adds r0, r4, #0 movs r1, #0 movs r2, #8 bl sub_08024A14 _080244E4: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080244E8 sub_080244E8: @ 0x080244E8 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 bl sub_08024940 adds r0, r5, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #7 bls _08024502 b _08024924 _08024502: lsls r0, r0, #2 ldr r1, _0802450C @ =_08024510 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802450C: .4byte _08024510 _08024510: @ jump table .4byte _08024530 @ case 0 .4byte _080245A6 @ case 1 .4byte _080245E4 @ case 2 .4byte _080247F4 @ case 3 .4byte _08024818 @ case 4 .4byte _08024836 @ case 5 .4byte _080248AE @ case 6 .4byte _0802490A @ case 7 _08024530: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] movs r1, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _08024592 movs r1, #0x2e ldrsh r0, [r5, r1] ldr r2, _08024584 @ =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 movs r1, #1 bl sub_080002E0 adds r2, r0, #0 cmp r2, #0 bne _08024588 adds r0, r5, #0 adds r0, #0x80 ldrb r1, [r0] adds r1, #1 strb r1, [r0] adds r1, r5, #0 adds r1, #0x82 ldrb r0, [r1] adds r0, #1 strb r0, [r1] strb r2, [r5, #0xf] strh r2, [r5, #0x24] b _08024924 .align 2, 0 _08024584: .4byte gUnk_03000BF0 _08024588: movs r0, #0x30 strb r0, [r5, #0xe] movs r0, #4 strb r0, [r5, #0xf] b _08024924 _08024592: ldrb r0, [r5, #0xf] subs r0, #1 strb r0, [r5, #0xf] ands r0, r1 cmp r0, #0 beq _080245A0 b _08024924 _080245A0: adds r0, r5, #0 movs r1, #1 b _08024902 _080245A6: ldrh r0, [r5, #0x36] adds r0, #1 strh r0, [r5, #0x36] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r2, #0x10 rsbs r2, r2, #0 cmp r0, r2 bge _080245BA b _08024924 _080245BA: adds r1, r5, #0 adds r1, #0x82 movs r0, #0 strb r0, [r1] adds r0, r5, #0 adds r0, #0x78 strh r2, [r0] adds r0, r5, #0 bl sub_08024AD8 cmp r0, #0 beq _080245D4 b _0802482A _080245D4: adds r0, r5, #0 bl sub_08024C94 adds r2, r5, #0 adds r2, #0x83 ldrb r0, [r2] movs r1, #0x40 b _080247EE _080245E4: adds r0, r5, #0 bl sub_08024AD8 cmp r0, #0 bne _080245F0 b _080247E0 _080245F0: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] movs r2, #0xff lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0802462C movs r7, #0x24 ldrsh r0, [r5, r7] cmp r0, #0 beq _0802460C strh r1, [r5, #0x24] b _08024612 _0802460C: adds r0, r5, #0 bl sub_08024E1C _08024612: ldr r1, [r5, #0x54] adds r0, r5, #0 bl sub_080045C4 strb r0, [r5, #0x15] adds r0, r5, #0 movs r1, #0 bl sub_08024E00 adds r0, r5, #0 bl sub_080249DC b _08024642 _0802462C: ldrb r0, [r5, #0xf] subs r0, #1 strb r0, [r5, #0xf] ands r0, r2 cmp r0, #0 bne _08024642 adds r0, r5, #0 movs r1, #1 movs r2, #8 bl sub_08024A14 _08024642: adds r6, r5, #0 adds r6, #0x83 ldrb r1, [r6] movs r0, #0x3f mov sb, r0 ands r0, r1 cmp r0, #2 beq _0802474C cmp r0, #2 bgt _0802465C cmp r0, #1 beq _080246E4 b _08024924 _0802465C: cmp r0, #3 beq _08024662 b _08024924 _08024662: movs r0, #0x80 ands r0, r1 lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #0 beq _08024670 b _08024924 _08024670: adds r1, r5, #0 adds r1, #0x80 ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r0, #0xc strb r0, [r5, #0xe] movs r0, #0x10 strb r0, [r5, #0x15] movs r4, #0 strh r2, [r5, #0x24] adds r0, r5, #0 adds r0, #0x84 strb r4, [r0] adds r2, r5, #0 adds r2, #0x3b ldrb r1, [r2] movs r0, #0xfc ands r0, r1 strb r0, [r2] adds r0, r5, #0 bl sub_080249DC ldr r2, _080246DC @ =gUnk_03001160 adds r0, r2, #0 adds r0, #0x29 ldrb r0, [r0] lsls r0, r0, #0x1a lsrs r0, r0, #0x1d adds r1, r5, #0 adds r1, #0x85 strb r0, [r1] ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0x10] ldr r2, _080246E0 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x80 lsls r1, r1, #1 orrs r0, r1 str r0, [r2, #0x30] ldrb r1, [r2, #0xa] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0xa] adds r2, #0x26 ldrb r0, [r2] cmp r0, #0 bne _080246D6 b _08024924 _080246D6: strb r4, [r2] b _08024924 .align 2, 0 _080246DC: .4byte gUnk_03001160 _080246E0: .4byte gUnk_03003F80 _080246E4: ldr r1, [r5, #0x54] adds r0, r5, #0 movs r2, #6 movs r3, #6 bl sub_080041A0 cmp r0, #0 bne _080246F6 b _08024924 _080246F6: adds r1, r5, #0 adds r1, #0x80 ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r0, #0xc strb r0, [r5, #0xe] ldrb r1, [r6] movs r0, #0x7f ands r0, r1 strb r0, [r6] ldr r0, [r5, #0x54] adds r1, r5, #0 bl sub_0806FA24 ldrh r0, [r5, #0x36] subs r0, #0xe strh r0, [r5, #0x36] adds r1, r5, #0 adds r1, #0x78 ldrh r0, [r1] subs r0, #0xe strh r0, [r1] ldrb r2, [r6] adds r0, r5, #0 movs r1, #6 bl sub_0804A98C adds r4, r0, #0 cmp r4, #0 bne _08024736 b _08024924 _08024736: str r5, [r4, #0x50] ldrh r0, [r4, #0x36] adds r0, #0xe strh r0, [r4, #0x36] ldr r1, [r5, #0x54] str r1, [r4, #0x54] adds r0, r4, #0 bl sub_0806FA24 str r4, [r5, #0x54] b _08024924 _0802474C: ldr r1, [r5, #0x54] adds r0, r5, #0 movs r2, #6 movs r3, #6 bl sub_080041A0 cmp r0, #0 bne _0802475E b _08024924 _0802475E: adds r1, r5, #0 adds r1, #0x80 ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r0, #0xc strb r0, [r5, #0xe] ldrb r1, [r6] movs r0, #0x7f ands r0, r1 strb r0, [r6] ldr r4, [r5, #0x54] adds r0, r4, #0 adds r0, #0x70 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r4, r2] ldr r3, _080247DC @ =gUnk_03000BF0 ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 mov r7, sb ands r1, r7 movs r7, #0x32 ldrsh r2, [r4, r7] ldrh r3, [r3, #8] subs r2, r2, r3 asrs r2, r2, #4 mov r3, sb ands r2, r3 lsls r2, r2, #6 orrs r1, r2 adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E adds r0, r4, #0 bl sub_0805E7BC ldrh r0, [r5, #0x36] subs r0, #0xe strh r0, [r5, #0x36] adds r1, r5, #0 adds r1, #0x78 ldrh r0, [r1] subs r0, #0xe strh r0, [r1] ldrb r2, [r6] adds r0, r5, #0 movs r1, #6 bl sub_0804A98C adds r4, r0, #0 cmp r4, #0 bne _080247D0 b _08024924 _080247D0: str r5, [r4, #0x50] ldrh r0, [r4, #0x36] adds r0, #0xe strh r0, [r4, #0x36] str r4, [r5, #0x54] b _08024924 .align 2, 0 _080247DC: .4byte gUnk_03000BF0 _080247E0: adds r0, r5, #0 bl sub_08024C94 adds r2, r5, #0 adds r2, #0x83 ldrb r1, [r2] movs r0, #0x40 _080247EE: orrs r0, r1 strb r0, [r2] b _08024924 _080247F4: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #0 beq _08024804 b _08024924 _08024804: adds r0, r5, #0 adds r0, #0x80 ldrb r1, [r0] adds r1, #1 strb r1, [r0] strb r2, [r5, #0xf] strh r2, [r5, #0x24] adds r1, r5, #0 adds r1, #0x82 b _0802482E _08024818: ldrh r0, [r5, #0x36] subs r0, #2 strh r0, [r5, #0x36] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x3c rsbs r1, r1, #0 cmp r0, r1 bge _08024924 _0802482A: adds r1, r5, #0 adds r1, #0x80 _0802482E: ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _08024924 _08024836: ldrh r2, [r5, #0x36] movs r4, #0x36 ldrsh r1, [r5, r4] movs r0, #0x30 rsbs r0, r0, #0 cmp r1, r0 bge _0802484A adds r0, r2, #1 strh r0, [r5, #0x36] b _08024924 _0802484A: adds r1, r5, #0 adds r1, #0x82 ldrb r0, [r1] cmp r0, #0 beq _0802485E movs r0, #0 strb r0, [r1] subs r1, #0xa ldr r0, _08024884 @ =0x0000FFD0 strh r0, [r1] _0802485E: adds r0, r5, #0 adds r0, #0x83 ldrb r0, [r0] cmp r0, #1 blt _080248A6 cmp r0, #2 ble _08024888 cmp r0, #3 bne _080248A6 adds r0, r5, #0 adds r0, #0x84 ldrb r0, [r0] cmp r0, #0x2f bls _08024924 adds r0, r5, #0 bl sub_08024F50 b _08024924 .align 2, 0 _08024884: .4byte 0x0000FFD0 _08024888: adds r1, r5, #0 adds r1, #0x80 ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r0, #0xc0 strb r0, [r5, #0xe] movs r0, #8 strb r0, [r5, #0xf] movs r0, #0x80 strh r0, [r5, #0x24] adds r0, r5, #0 bl sub_080249DC b _08024924 _080248A6: adds r0, r5, #0 bl sub_08024C7C b _08024924 _080248AE: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] movs r1, #0xff lsls r0, r0, #0x18 lsrs r3, r0, #0x18 cmp r3, #0 bne _080248F2 adds r2, r5, #0 adds r2, #0x83 ldrb r1, [r2] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080248E8 movs r0, #0xc0 strb r0, [r2] adds r0, r5, #0 adds r0, #0x80 strb r3, [r0] movs r1, #0x40 movs r0, #0x40 strh r0, [r5, #0x24] strb r1, [r5, #0xe] movs r0, #8 strb r0, [r5, #0xf] adds r0, r5, #0 movs r1, #0 b _08024902 _080248E8: movs r0, #0x40 strb r0, [r5, #0xe] movs r0, #8 strb r0, [r5, #0xf] b _08024924 _080248F2: ldrb r0, [r5, #0xf] subs r0, #1 strb r0, [r5, #0xf] ands r0, r1 cmp r0, #0 bne _08024924 adds r0, r5, #0 movs r1, #2 _08024902: movs r2, #8 bl sub_08024A14 b _08024924 _0802490A: ldr r0, _0802493C @ =gUnk_03001160 movs r7, #0x36 ldrsh r1, [r0, r7] cmp r1, #0 bne _08024924 adds r0, r5, #0 adds r0, #0x80 strb r1, [r0] movs r0, #0x80 strh r0, [r5, #0x24] adds r0, r5, #0 bl sub_08024B38 _08024924: adds r0, r5, #0 adds r0, #0x83 ldrb r0, [r0] cmp r0, #3 bne _08024934 adds r0, r5, #0 bl sub_08024E4C _08024934: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _0802493C: .4byte gUnk_03001160 thumb_func_start sub_08024940 sub_08024940: @ 0x08024940 push {r4, r5, lr} adds r4, r0, #0 bl sub_08000E50 adds r5, r0, #0 movs r0, #0x70 ands r5, r0 ldrh r0, [r4, #0x2a] cmp r0, #0 beq _08024962 adds r1, r0, #0 adds r0, r4, #0 bl sub_0800417E adds r0, r4, #0 bl sub_080249F4 _08024962: adds r0, r4, #0 adds r0, #0x82 ldrb r0, [r0] cmp r0, #0 bne _0802497C adds r0, r4, #0 adds r0, #0x78 ldrh r0, [r0] strh r0, [r4, #0x36] cmp r5, #0 beq _0802497C adds r0, #2 strh r0, [r4, #0x36] _0802497C: ldrb r0, [r4, #0xb] cmp r0, #0 bne _0802498A bl sub_08052660 cmp r0, #0 beq _080249CE _0802498A: adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 bne _080249A2 adds r0, r4, #0 bl sub_08049EE4 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_080249F4 _080249A2: movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #0x20 rsbs r0, r0, #0 cmp r1, r0 bge _080249BC adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] adds r0, #0x18 ands r0, r1 strb r0, [r2] b _080249CE _080249BC: adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #8 rsbs r1, r1, #0 ands r1, r0 movs r0, #1 orrs r1, r0 strb r1, [r2] _080249CE: adds r0, r4, #0 bl sub_080AEFB4 adds r0, r4, #0 bl sub_08004274 pop {r4, r5, pc} thumb_func_start sub_080249DC sub_080249DC: @ 0x080249DC push {lr} ldrb r1, [r0, #0x15] adds r1, #2 movs r2, #0x1c ands r1, r2 lsrs r1, r1, #2 strb r1, [r0, #0x14] ldrb r1, [r0, #0x14] bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_080249F4 sub_080249F4: @ 0x080249F4 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0x15] adds r1, r0, #2 movs r0, #0x1f ands r1, r0 lsrs r1, r1, #2 ldrb r0, [r2, #0x14] cmp r1, r0 beq _08024A12 strb r1, [r2, #0x14] ldrb r1, [r2, #0x14] adds r0, r2, #0 bl sub_08004260 _08024A12: pop {pc} thumb_func_start sub_08024A14 sub_08024A14: @ 0x08024A14 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r5, r1, #0 adds r7, r2, #0 movs r6, #0 cmp r5, #1 beq _08024A40 cmp r5, #1 blo _08024A30 cmp r5, #2 beq _08024A5E cmp r5, #3 beq _08024A84 b _08024A9E _08024A30: adds r0, r4, #0 bl sub_08049EE4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 b _08024A9C _08024A40: adds r0, r4, #0 movs r1, #0 bl sub_08024C48 cmp r0, #0 beq _08024A9E ldr r1, [r4, #0x54] adds r0, r4, #0 bl sub_080045C4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 b _08024A9C _08024A5E: adds r0, r4, #0 movs r1, #1 bl sub_08024C48 cmp r0, #0 beq _08024A9E ldr r0, _08024A80 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl sub_080045C4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 b _08024A9C .align 2, 0 _08024A80: .4byte gUnk_020000B0 _08024A84: adds r0, r4, #0 movs r1, #1 bl sub_08024C48 cmp r0, #0 beq _08024A9E ldr r0, _08024AD4 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] _08024A9C: movs r6, #1 _08024A9E: cmp r5, #0 beq _08024ABA adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 bne _08024ABA bl sub_08000E50 movs r1, #3 ands r1, r0 cmp r1, #0 beq _08024ABA movs r6, #0 _08024ABA: cmp r6, #0 bne _08024AC8 adds r0, r4, #0 movs r1, #0 adds r2, r7, #0 bl sub_08024A14 _08024AC8: adds r0, r4, #0 bl sub_080249DC strb r7, [r4, #0xf] pop {r4, r5, r6, r7, pc} .align 2, 0 _08024AD4: .4byte gUnk_020000B0 thumb_func_start sub_08024AD8 sub_08024AD8: @ 0x08024AD8 push {r4, lr} adds r4, r0, #0 adds r3, r4, #0 adds r3, #0x83 ldrb r2, [r3] movs r0, #0x40 ands r0, r2 cmp r0, #0 bne _08024B2A movs r1, #0 movs r0, #0x3f ands r0, r2 cmp r0, #3 bne _08024B12 ldr r0, _08024B0C @ =gUnk_03003F80 ldrb r0, [r0, #0xf] cmp r0, #0 bne _08024B10 ldr r0, [r4, #0x54] str r1, [r0, #0x50] str r1, [r4, #0x54] movs r0, #0xc0 strb r0, [r3] movs r0, #0 b _08024B34 .align 2, 0 _08024B0C: .4byte gUnk_03003F80 _08024B10: movs r1, #1 _08024B12: adds r0, r4, #0 bl sub_08024C48 cmp r0, #0 bne _08024B32 str r0, [r4, #0x54] adds r1, r4, #0 adds r1, #0x83 movs r0, #0xc0 strb r0, [r1] movs r0, #0 b _08024B34 _08024B2A: adds r0, r4, #0 bl sub_08024B38 b _08024B34 _08024B32: movs r0, #1 _08024B34: pop {r4, pc} .align 2, 0 thumb_func_start sub_08024B38 sub_08024B38: @ 0x08024B38 push {r4, r5, r6, r7, lr} adds r5, r0, #0 movs r7, #0 ldr r0, _08024B5C @ =gUnk_03003F80 ldrb r3, [r0, #0xf] adds r2, r3, #0 adds r1, r0, #0 cmp r2, #0 beq _08024BA0 adds r0, #0x26 ldrb r0, [r0] cmp r0, #1 bne _08024B62 cmp r2, #3 bls _08024B60 subs r0, r3, #3 strb r0, [r1, #0xf] b _08024B62 .align 2, 0 _08024B5C: .4byte gUnk_03003F80 _08024B60: strb r7, [r1, #0xf] _08024B62: ldrb r0, [r1, #0xf] cmp r0, #0 beq _08024BA0 adds r0, r5, #0 movs r1, #1 bl sub_08024C48 cmp r0, #0 beq _08024C3C ldr r4, _08024B9C @ =gUnk_020000B0 ldr r1, [r4] adds r0, r5, #0 movs r2, #0xa0 bl sub_08049F1C cmp r0, #0 beq _08024C3C movs r7, #1 ldr r0, [r4] str r0, [r5, #0x54] adds r2, r5, #0 adds r2, #0x83 ldrb r1, [r2] movs r0, #3 orrs r0, r1 movs r1, #0xbf ands r0, r1 strb r0, [r2] b _08024C3C .align 2, 0 _08024B9C: .4byte gUnk_020000B0 _08024BA0: movs r0, #8 movs r1, #2 movs r2, #2 bl sub_0805EB00 adds r4, r0, #0 cmp r4, #0 beq _08024BF0 adds r6, r5, #0 adds r6, #0x83 b _08024BC4 _08024BB6: adds r0, r4, #0 movs r1, #2 bl sub_0805EB64 adds r4, r0, #0 cmp r4, #0 beq _08024BF0 _08024BC4: ldrb r0, [r4, #0xc] cmp r0, #2 beq _08024BB6 movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 bne _08024BB6 adds r0, r5, #0 adds r1, r4, #0 movs r2, #0xa0 bl sub_08049F1C cmp r0, #0 beq _08024BB6 movs r7, #1 str r4, [r5, #0x54] ldrb r0, [r6] movs r1, #1 orrs r1, r0 movs r0, #0xbf ands r1, r0 strb r1, [r6] _08024BF0: cmp r7, #0 bne _08024C42 movs r0, #6 movs r1, #5 movs r2, #6 bl sub_0805EB00 adds r4, r0, #0 cmp r4, #0 beq _08024C3C adds r6, r5, #0 adds r6, #0x83 b _08024C18 _08024C0A: adds r0, r4, #0 movs r1, #6 bl sub_0805EB64 adds r4, r0, #0 cmp r4, #0 beq _08024C3C _08024C18: ldrb r0, [r4, #0xc] cmp r0, #1 bne _08024C0A adds r0, r5, #0 adds r1, r4, #0 movs r2, #0xa0 bl sub_08049F1C cmp r0, #0 beq _08024C0A movs r7, #1 str r4, [r5, #0x54] ldrb r0, [r6] movs r1, #2 orrs r1, r0 movs r0, #0xbf ands r1, r0 strb r1, [r6] _08024C3C: cmp r7, #0 bne _08024C42 str r7, [r5, #0x54] _08024C42: adds r0, r7, #0 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08024C48 sub_08024C48: @ 0x08024C48 push {r4, r5, lr} adds r3, r0, #0 movs r4, #1 cmp r1, #0 beq _08024C60 movs r0, #3 bl sub_08049DF4 rsbs r1, r0, #0 orrs r1, r0 lsrs r4, r1, #0x1f b _08024C78 _08024C60: ldr r2, [r3, #0x54] cmp r2, #0 beq _08024C74 ldr r0, [r2, #4] cmp r0, #0 beq _08024C74 movs r5, #0x36 ldrsh r0, [r2, r5] cmp r0, #0 bge _08024C78 _08024C74: str r1, [r3, #0x54] movs r4, #0 _08024C78: adds r0, r4, #0 pop {r4, r5, pc} thumb_func_start sub_08024C7C sub_08024C7C: @ 0x08024C7C push {lr} movs r1, #1 strb r1, [r0, #0xc] movs r2, #0 movs r1, #0x40 strh r1, [r0, #0x24] strb r2, [r0, #0xe] movs r1, #0 movs r2, #0x20 bl sub_08024A14 pop {pc} thumb_func_start sub_08024C94 sub_08024C94: @ 0x08024C94 push {lr} movs r2, #0 movs r1, #2 strb r1, [r0, #0xc] adds r1, r0, #0 adds r1, #0x80 strb r2, [r1] movs r1, #0x40 strb r1, [r0, #0xe] strb r2, [r0, #0xf] movs r1, #0xc0 strh r1, [r0, #0x24] adds r2, r0, #0 adds r2, #0x83 movs r1, #0x80 strb r1, [r2] ldrb r2, [r0, #0xf] movs r1, #3 bl sub_08024A14 pop {pc} .align 2, 0 thumb_func_start sub_08024CC0 sub_08024CC0: @ 0x08024CC0 push {r4, r5, lr} adds r4, r0, #0 movs r5, #1 movs r1, #1 bl sub_08024C48 cmp r0, #0 bne _08024CD4 movs r5, #0 b _08024CF8 _08024CD4: ldr r0, _08024CFC @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 movs r2, #0x50 bl sub_08049F1C cmp r0, #0 beq _08024CF0 adds r0, r4, #0 movs r1, #3 bl sub_08049FDC cmp r0, #0 bne _08024CF8 _08024CF0: movs r5, #0 adds r0, r4, #0 bl sub_08024C7C _08024CF8: adds r0, r5, #0 pop {r4, r5, pc} .align 2, 0 _08024CFC: .4byte gUnk_020000B0 thumb_func_start sub_08024D00 sub_08024D00: @ 0x08024D00 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x86 ldrb r0, [r1] cmp r0, #0 beq _08024D1A subs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_08004274 b _08024D20 _08024D1A: adds r0, r4, #0 bl sub_08024940 _08024D20: adds r0, r4, #0 adds r0, #0x83 ldrb r1, [r0] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _08024D46 adds r0, r4, #0 bl sub_08024B38 cmp r0, #0 beq _08024D46 movs r0, #6 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x80 movs r0, #2 strb r0, [r1] b _08024DFC _08024D46: adds r0, r4, #0 bl sub_08024CC0 cmp r0, #0 beq _08024DFC adds r1, r4, #0 adds r1, #0x80 ldrb r0, [r1] cmp r0, #0 beq _08024D60 cmp r0, #1 beq _08024DAE b _08024DFC _08024D60: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08024DFC ldrb r0, [r1] adds r0, #1 strb r0, [r1] bl sub_08000E50 movs r1, #0xf ands r0, r1 adds r0, #0x20 strb r0, [r4, #0xe] ldrb r2, [r4, #0x15] adds r0, r4, #0 adds r0, #0x81 ldrb r1, [r0] adds r3, r0, #0 cmp r1, #0 beq _08024D90 adds r1, r2, #4 b _08024D94 _08024D90: adds r1, r2, #0 adds r1, #0x1c _08024D94: movs r0, #0x1f ands r0, r1 strb r0, [r4, #0x15] ldrb r0, [r3] movs r1, #0x40 eors r0, r1 strb r0, [r3] adds r0, r4, #0 movs r1, #3 movs r2, #0x10 bl sub_08024A14 b _08024DFC _08024DAE: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r2, #0xff lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 bne _08024DCE strb r0, [r1] bl sub_08000E50 movs r1, #0x1f ands r0, r1 adds r0, #0x20 strb r0, [r4, #0xe] b _08024DFC _08024DCE: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] ands r0, r2 cmp r0, #0 bne _08024DFC ldrb r1, [r4, #0x15] adds r0, r4, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #0 beq _08024DEA adds r1, #1 b _08024DEC _08024DEA: adds r1, #0x1f _08024DEC: movs r0, #0x1f ands r0, r1 strb r0, [r4, #0x15] movs r0, #0x10 strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_080249DC _08024DFC: pop {r4, pc} .align 2, 0 thumb_func_start sub_08024E00 sub_08024E00: @ 0x08024E00 push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 bl sub_08024E34 ldr r1, _08024E18 @ =gUnk_080CBF10 lsls r0, r0, #1 orrs r0, r4 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r5, #0xe] pop {r4, r5, pc} .align 2, 0 _08024E18: .4byte gUnk_080CBF10 thumb_func_start sub_08024E1C sub_08024E1C: @ 0x08024E1C push {r4, lr} adds r4, r0, #0 bl sub_08024E34 ldr r1, _08024E30 @ =gUnk_080CBF18 lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r4, #0x24] pop {r4, pc} .align 2, 0 _08024E30: .4byte gUnk_080CBF18 thumb_func_start sub_08024E34 sub_08024E34: @ 0x08024E34 push {lr} bl sub_08000E50 movs r1, #0x3c ands r1, r0 lsrs r1, r1, #2 ldr r0, _08024E48 @ =gUnk_080CBF20 adds r1, r1, r0 ldrb r0, [r1] pop {pc} .align 2, 0 _08024E48: .4byte gUnk_080CBF20 thumb_func_start sub_08024E4C sub_08024E4C: @ 0x08024E4C push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r0, #0x83 ldrb r0, [r0] cmp r0, #3 bne _08024F46 ldrb r0, [r4, #0xf] adds r0, #1 movs r7, #0 movs r1, #0xff ands r0, r1 movs r1, #0x1f ands r0, r1 strb r0, [r4, #0xf] bl sub_0807953C cmp r0, #0 beq _08024E84 bl sub_08000E50 adds r3, r4, #0 adds r3, #0x84 ldrb r2, [r3] adds r2, #1 movs r1, #1 ands r1, r0 adds r2, r2, r1 strb r2, [r3] _08024E84: ldr r0, _08024EC8 @ =gUnk_02002A40 adds r0, #0xaa ldrb r0, [r0] adds r2, r4, #0 adds r2, #0x87 cmp r0, #0 beq _08024E9A adds r5, r2, #0 ldrb r0, [r5] cmp r0, #4 bne _08024ECC _08024E9A: adds r1, r4, #0 adds r1, #0x84 movs r0, #0x30 strb r0, [r1] strb r7, [r2] adds r0, r4, #0 bl sub_08024F50 adds r0, r4, #0 adds r0, #0x80 strb r7, [r0] movs r1, #0x40 movs r0, #0x40 strh r0, [r4, #0x24] strb r1, [r4, #0xe] movs r0, #8 strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #0 movs r2, #8 bl sub_08024A14 b _08024F46 .align 2, 0 _08024EC8: .4byte gUnk_02002A40 _08024ECC: ldr r6, _08024F48 @ =gUnk_03001160 bl sub_08077B2C ldr r2, _08024F4C @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x80 lsls r1, r1, #1 orrs r0, r1 str r0, [r2, #0x30] ldrb r0, [r2, #0xa] movs r1, #0x80 orrs r0, r1 strb r0, [r2, #0xa] movs r0, #0xe strb r0, [r2, #0xc] adds r1, r2, #0 adds r1, #0x38 movs r0, #0x14 strb r0, [r1] adds r1, #1 movs r0, #1 strb r0, [r1] adds r0, r2, #0 adds r0, #0x3a strb r7, [r0] movs r3, #0x80 lsls r3, r3, #9 adds r0, r4, #0 adds r1, r6, #0 movs r2, #0 bl sub_0806FA48 adds r1, r6, #0 adds r1, #0x63 movs r0, #0x1a strb r0, [r1] movs r0, #4 strb r0, [r6, #0x14] adds r2, r6, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #0x3d ands r0, r1 strb r0, [r2] ldrb r0, [r4, #0xf] cmp r0, #0 bne _08024F46 ldrb r0, [r5] adds r0, #1 strb r0, [r5] adds r1, r6, #0 adds r1, #0x3d movs r0, #8 strb r0, [r1] subs r0, #0xa bl sub_080526A0 adds r0, r6, #0 movs r1, #0x7a bl sub_0800449C _08024F46: pop {r4, r5, r6, r7, pc} .align 2, 0 _08024F48: .4byte gUnk_03001160 _08024F4C: .4byte gUnk_03003F80 thumb_func_start sub_08024F50 sub_08024F50: @ 0x08024F50 push {r4, r5, r6, lr} adds r6, r0, #0 ldr r2, _08024FDC @ =gUnk_03003F80 movs r4, #0 strb r4, [r2, #0xa] ldr r0, [r2, #0x30] ldr r1, _08024FE0 @ =0xFFFFFEFF ands r0, r1 str r0, [r2, #0x30] ldr r5, _08024FE4 @ =gUnk_03001160 adds r0, r6, #0 adds r1, r5, #0 bl sub_0806FA24 movs r0, #1 strb r0, [r5, #0xc] ldrb r0, [r5, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r5, #0x10] adds r1, r5, #0 adds r1, #0x3d movs r0, #0xc4 strb r0, [r1] ldrb r0, [r5, #0x14] lsls r0, r0, #2 strb r0, [r5, #0x15] movs r3, #0 strh r4, [r5, #0x24] adds r0, r6, #0 adds r0, #0x85 ldrb r0, [r0] adds r4, r5, #0 adds r4, #0x29 movs r1, #7 ands r1, r0 lsls r1, r1, #3 ldrb r2, [r4] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4] adds r1, r5, #0 adds r1, #0x63 movs r0, #0 ldrsb r0, [r1, r0] strh r0, [r5, #0x36] strb r3, [r1] adds r2, r6, #0 adds r2, #0x3b ldrb r1, [r2] movs r0, #3 orrs r0, r1 strb r0, [r2] adds r1, r6, #0 adds r1, #0x83 movs r0, #0xc0 strb r0, [r1] subs r1, #3 ldrb r0, [r1] adds r0, #2 strb r0, [r1] adds r0, r6, #0 adds r0, #0x84 strb r3, [r0] movs r0, #0x80 strh r0, [r6, #0x24] pop {r4, r5, r6, pc} .align 2, 0 _08024FDC: .4byte gUnk_03003F80 _08024FE0: .4byte 0xFFFFFEFF _08024FE4: .4byte gUnk_03001160 thumb_func_start sub_08024FE8 sub_08024FE8: @ 0x08024FE8 push {r4, lr} adds r4, r0, #0 ldr r1, _08025004 @ =gUnk_080CBF9C bl sub_0800129E movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, pc} .align 2, 0 _08025004: .4byte gUnk_080CBF9C thumb_func_start sub_08025008 sub_08025008: @ 0x08025008 push {lr} ldr r2, _0802501C @ =gUnk_080CBFB4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802501C: .4byte gUnk_080CBFB4 thumb_func_start sub_08025020 sub_08025020: @ 0x08025020 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r0, [r0] movs r1, #0x7f ands r1, r0 cmp r1, #0 blt _080250C2 cmp r1, #3 ble _0802510C cmp r1, #0x1b bne _080250C2 adds r0, r4, #0 bl sub_0804AA1C ldr r1, _08025058 @ =gUnk_080CBFE8 ldr r0, [r4, #0x4c] ldrb r0, [r0, #0xa] adds r0, r0, r1 ldrb r1, [r0] adds r3, r4, #0 adds r3, #0x82 ldrb r0, [r3] cmp r1, r0 bhs _0802505C subs r0, r0, r1 strb r0, [r3] b _08025078 .align 2, 0 _08025058: .4byte gUnk_080CBFE8 _0802505C: adds r1, r4, #0 adds r1, #0x84 movs r2, #0 movs r0, #0xa5 lsls r0, r0, #2 strh r0, [r1] subs r1, #0x45 movs r0, #0x83 strb r0, [r1] strb r2, [r3] adds r0, r4, #0 movs r1, #0x7c bl sub_0801D2B4 _08025078: movs r2, #0 movs r0, #7 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] ldr r0, [r4, #0x20] cmp r0, #0 ble _0802508A str r2, [r4, #0x20] _0802508A: adds r1, r4, #0 adds r1, #0x3d movs r0, #0xf4 strb r0, [r1] adds r0, r4, #0 adds r0, #0x42 strb r2, [r0] adds r5, r4, #0 adds r5, #0x80 ldrb r0, [r5] cmp r0, #0 bne _0802510C ldr r0, [r4, #0x4c] ldrb r0, [r0, #0x15] lsrs r0, r0, #3 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_08004260 adds r1, r4, #0 adds r1, #0x59 movs r0, #6 strb r0, [r1] movs r0, #1 strb r0, [r5] b _0802510C _080250C2: adds r0, r4, #0 adds r0, #0x3f ldrb r0, [r0] cmp r0, #0x82 bne _0802510C adds r0, r4, #0 adds r0, #0x3d ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bge _0802510C movs r0, #0x21 movs r1, #2 movs r2, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _08025104 adds r3, r2, #0 adds r3, #0x29 ldrb r0, [r3] movs r1, #8 rsbs r1, r1, #0 ands r1, r0 movs r0, #3 orrs r1, r0 strb r1, [r3] adds r0, r4, #0 adds r1, r2, #0 bl sub_0806FA24 _08025104: movs r0, #0xc3 lsls r0, r0, #1 bl sub_08004488 _0802510C: ldr r1, _08025118 @ =gUnk_080CBF9C adds r0, r4, #0 bl sub_0804AA30 pop {r4, r5, pc} .align 2, 0 _08025118: .4byte gUnk_080CBF9C thumb_func_start sub_0802511C sub_0802511C: @ 0x0802511C push {r4, lr} adds r4, r0, #0 adds r0, #0x3a ldrb r1, [r0] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08025142 ldrb r0, [r4, #0xe] cmp r0, #1 bne _08025142 adds r0, r4, #0 adds r0, #0x82 ldrb r0, [r0] cmp r0, #0 beq _08025142 adds r0, r4, #0 bl sub_08025B18 _08025142: adds r0, r4, #0 bl sub_0804A7D4 pop {r4, pc} .align 2, 0 thumb_func_start sub_0802514C sub_0802514C: @ 0x0802514C push {r4, lr} adds r4, r0, #0 movs r1, #0x80 lsls r1, r1, #6 bl sub_08003FC4 adds r0, r4, #0 bl sub_0806F520 cmp r0, #0 beq _08025178 ldr r0, _08025174 @ =gUnk_080CBFEC ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 b _0802517E .align 2, 0 _08025174: .4byte gUnk_080CBFEC _08025178: adds r0, r4, #0 bl sub_08025C2C _0802517E: pop {r4, pc} thumb_func_start sub_08025180 sub_08025180: @ 0x08025180 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xd] bl sub_08000E50 strb r0, [r4, #0xe] ldr r0, [r4, #0x4c] ldrb r0, [r0, #0x15] movs r1, #0x10 eors r0, r1 lsrs r0, r0, #3 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_0804AA1C pop {r4, pc} thumb_func_start sub_080251AC sub_080251AC: @ 0x080251AC push {r4, lr} adds r4, r0, #0 adds r3, r4, #0 adds r3, #0x82 ldrb r0, [r3] cmp r0, #3 bls _080251D8 subs r0, #3 strb r0, [r3] ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r1, #0xff ands r0, r1 movs r1, #3 ands r0, r1 cmp r0, #0 bne _080251F4 adds r0, r4, #0 bl sub_08025BD4 b _080251F4 _080251D8: adds r1, r4, #0 adds r1, #0x84 movs r2, #0 movs r0, #0xa5 lsls r0, r0, #2 strh r0, [r1] subs r1, #0x45 movs r0, #0x83 strb r0, [r1] strb r2, [r3] adds r0, r4, #0 movs r1, #0x7c bl sub_0801D2B4 _080251F4: adds r0, r4, #0 bl sub_08004274 pop {r4, pc} thumb_func_start sub_080251FC sub_080251FC: @ 0x080251FC push {r4, r5, lr} adds r4, r0, #0 bl sub_0804A720 adds r1, r4, #0 adds r1, #0x82 movs r5, #0 movs r0, #0xf0 strb r0, [r1] bl sub_08000E50 movs r1, #0x1c ands r0, r1 strb r0, [r4, #0x15] adds r0, r4, #0 adds r0, #0x80 strb r5, [r0] adds r0, r4, #0 bl sub_080256B4 adds r0, r4, #0 movs r1, #0 bl sub_08004260 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08025230 sub_08025230: @ 0x08025230 push {r4, r5, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x81 ldrb r0, [r1] cmp r0, #0 beq _08025242 subs r0, #1 strb r0, [r1] _08025242: adds r0, r4, #0 bl sub_08025C44 adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r5, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _08025270 bl sub_08000E50 movs r1, #3 ands r0, r1 adds r0, #4 strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_08025C60 strb r0, [r4, #0x15] _08025270: ldrh r0, [r4, #0x2a] cmp r0, #0 beq _0802528C ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] ands r0, r5 cmp r0, #0 bne _08025290 ldrh r1, [r4, #0x2a] adds r0, r4, #0 bl sub_0800417E b _08025290 _0802528C: movs r0, #0x1e strb r0, [r4, #0xf] _08025290: adds r1, r4, #0 adds r1, #0x78 ldrh r0, [r1] cmp r0, #0 bne _080252D8 adds r0, r4, #0 bl sub_0802571C cmp r0, #0 beq _080252DC movs r0, #2 strb r0, [r4, #0xc] movs r0, #0xf0 strb r0, [r4, #0xe] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _080252D4 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] 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, #0x86 strh r1, [r0] b _080252DC .align 2, 0 _080252D4: .4byte gUnk_03000BF0 _080252D8: subs r0, #1 strh r0, [r1] _080252DC: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080252E0 sub_080252E0: @ 0x080252E0 push {r4, r5, lr} adds r4, r0, #0 movs r1, #0x2e ldrsh r0, [r4, r1] movs r2, #0x32 ldrsh r1, [r4, r2] adds r2, r4, #0 adds r2, #0x7c ldrh r2, [r2] adds r3, r4, #0 adds r3, #0x7e ldrh r3, [r3] bl sub_080045D4 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_08025C44 adds r0, r4, #0 bl sub_08004274 movs r1, #0x2e ldrsh r0, [r4, r1] ldr r3, _08025348 @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r0, r0, r1 asrs r5, r0, #4 movs r2, #0x3f ands r5, r2 movs r1, #0x32 ldrsh r0, [r4, r1] ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r5, r0 adds r0, r4, #0 adds r0, #0x86 ldrh r2, [r0] cmp r5, r2 bne _0802534C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08025352 adds r0, r4, #0 bl sub_080256B4 b _08025352 .align 2, 0 _08025348: .4byte gUnk_03000BF0 _0802534C: strh r5, [r0] movs r0, #0xf0 strb r0, [r4, #0xe] _08025352: movs r0, #0x2e ldrsh r1, [r4, r0] adds r0, r4, #0 adds r0, #0x7c ldrh r0, [r0] cmp r1, r0 bne _08025388 movs r1, #0x32 ldrsh r0, [r4, r1] adds r1, r4, #0 adds r1, #0x7e ldrh r1, [r1] cmp r0, r1 bne _08025388 movs r1, #0 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] strb r1, [r4, #0xf] movs r0, #0xc0 lsls r0, r0, #9 str r0, [r4, #0x20] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _08025388: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0802538C sub_0802538C: @ 0x0802538C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _0802539C subs r0, #1 strb r0, [r4, #0xe] b _080253CC _0802539C: adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] cmp r0, #0 bne _080253AE adds r0, r4, #0 bl sub_08004274 b _080253CC _080253AE: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 ldr r1, [r4, #0x20] ldr r0, _080253D0 @ =0x00001FFF cmp r1, r0 bgt _080253CC movs r0, #4 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_08004260 _080253CC: pop {r4, pc} .align 2, 0 _080253D0: .4byte 0x00001FFF thumb_func_start sub_080253D4 sub_080253D4: @ 0x080253D4 push {r4, lr} adds r4, r0, #0 bl sub_08004274 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _0802541A ldrb r0, [r4, #0xf] cmp r0, #0 bne _080253FE movs r0, #5 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #3 bl sub_08004260 b _0802541A _080253FE: movs r0, #6 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #3 bl sub_08004260 adds r0, r4, #0 bl sub_08025A54 adds r0, r4, #0 bl sub_08025AE8 _0802541A: pop {r4, pc} thumb_func_start sub_0802541C sub_0802541C: @ 0x0802541C push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08025448 movs r0, #3 strb r0, [r4, #0xc] movs r0, #1 strb r0, [r4, #0xf] movs r0, #0x80 lsls r0, r0, #0xa str r0, [r4, #0x20] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _08025448: pop {r4, pc} .align 2, 0 thumb_func_start sub_0802544C sub_0802544C: @ 0x0802544C push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r0, [r0] cmp r0, #0 bne _08025460 adds r0, r4, #0 bl sub_08004274 b _0802547A _08025460: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802547A adds r0, r4, #0 bl sub_080256B4 adds r0, r4, #0 movs r1, #0 bl sub_08004260 _0802547A: pop {r4, pc} thumb_func_start sub_0802547C sub_0802547C: @ 0x0802547C push {r4, lr} adds r4, r0, #0 movs r1, #0x80 lsls r1, r1, #6 bl sub_08003FC4 adds r0, r4, #0 bl sub_08004274 ldrb r1, [r4, #0xe] movs r0, #7 ands r0, r1 cmp r0, #0 bne _0802549E adds r0, r4, #0 bl sub_08025BD4 _0802549E: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080254B0 adds r0, r4, #0 bl sub_08025C2C _080254B0: pop {r4, pc} .align 2, 0 thumb_func_start sub_080254B4 sub_080254B4: @ 0x080254B4 push {r4, lr} adds r4, r0, #0 movs r1, #0x80 lsls r1, r1, #6 bl sub_08003FC4 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0802550C movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 bne _08025512 adds r0, r4, #0 adds r0, #0x84 ldrh r0, [r0] cmp r0, #0 bne _080254F6 adds r1, r4, #0 adds r1, #0x3f movs r0, #0x82 strb r0, [r1] adds r1, #0x43 movs r0, #0xf0 strb r0, [r1] adds r0, r4, #0 bl sub_080256B4 b _08025502 _080254F6: movs r0, #0xc strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _08025502: adds r0, r4, #0 movs r1, #0 bl sub_08004260 b _08025512 _0802550C: adds r0, r4, #0 bl sub_08004274 _08025512: pop {r4, pc} thumb_func_start sub_08025514 sub_08025514: @ 0x08025514 push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldrb r1, [r4, #0xe] adds r0, r1, #1 strb r0, [r4, #0xe] lsls r1, r1, #0x18 lsrs r1, r1, #0x18 adds r0, r4, #0 bl sub_0802594C cmp r0, #0 beq _08025542 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0xf0 strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x81 movs r0, #0x78 strb r0, [r1] b _08025550 _08025542: ldrb r0, [r4, #0xe] cmp r0, #3 bls _08025550 movs r0, #0xa strb r0, [r4, #0xc] movs r0, #0x20 strb r0, [r4, #0xe] _08025550: pop {r4, pc} .align 2, 0 thumb_func_start sub_08025554 sub_08025554: @ 0x08025554 push {r4, lr} adds r4, r0, #0 movs r0, #1 bl sub_08049DF4 adds r2, r0, #0 cmp r2, #0 bne _0802556C adds r0, r4, #0 bl sub_080256B4 b _080255A8 _0802556C: ldrb r1, [r4, #0xe] movs r0, #3 ands r0, r1 cmp r0, #0 bne _08025580 adds r0, r2, #0 adds r1, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] _08025580: adds r0, r4, #0 bl sub_08025C44 adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08025598 subs r0, #1 strb r0, [r4, #0xe] b _080255A8 _08025598: adds r0, r4, #0 bl sub_080258C4 cmp r0, #0 bne _080255A8 adds r0, r4, #0 bl sub_080256B4 _080255A8: pop {r4, pc} .align 2, 0 thumb_func_start sub_080255AC sub_080255AC: @ 0x080255AC push {r4, r5, r6, lr} adds r5, r0, #0 movs r0, #1 bl sub_08049DF4 adds r6, r0, #0 cmp r6, #0 bne _080255C4 adds r0, r5, #0 bl sub_080256B4 b _08025638 _080255C4: adds r1, r5, #0 adds r1, #0x81 ldrb r0, [r1] cmp r0, #0 beq _080255D2 subs r0, #1 strb r0, [r1] _080255D2: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802560C bl sub_08000E50 movs r1, #3 ands r0, r1 adds r0, #4 strb r0, [r5, #0xe] bl sub_08000E50 adds r4, r0, #0 movs r0, #0xf ands r4, r0 cmp r4, #7 bgt _080255FA subs r4, #1 _080255FA: subs r4, #7 adds r0, r6, #0 adds r1, r5, #0 bl sub_080045C4 adds r0, r0, r4 movs r1, #0x1f ands r0, r1 strb r0, [r5, #0x15] _0802560C: adds r1, r5, #0 adds r1, #0x78 ldrh r0, [r1] cmp r0, #0 bne _08025628 adds r0, r5, #0 bl sub_080258C4 cmp r0, #0 bne _0802562C adds r0, r5, #0 bl sub_080256B4 b _0802562C _08025628: subs r0, #1 strh r0, [r1] _0802562C: adds r0, r5, #0 bl sub_08025C44 adds r0, r5, #0 bl sub_08004274 _08025638: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0802563C sub_0802563C: @ 0x0802563C push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r2, r4, #0 adds r2, #0x84 ldrh r0, [r2] subs r1, r0, #1 strh r1, [r2] lsls r0, r1, #0x10 cmp r0, #0 bne _08025678 adds r0, r4, #0 movs r1, #0x28 bl sub_0801D2B4 adds r1, r4, #0 adds r1, #0x3f movs r0, #0x82 strb r0, [r1] adds r1, #0x43 movs r0, #0xf0 strb r0, [r1] adds r0, r4, #0 bl sub_080256B4 adds r0, r4, #0 bl sub_0804AA1C b _080256B0 _08025678: lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x77 bhi _080256B0 ldr r0, _080256A4 @ =gUnk_080CBFF8 lsrs r1, r1, #0x14 adds r1, r1, r0 ldrb r1, [r1] ldrh r2, [r2] adds r0, r2, #0 ands r0, r1 cmp r0, #0 bne _080256B0 adds r0, r1, #1 ands r2, r0 cmp r2, #0 beq _080256A8 adds r0, r4, #0 movs r1, #0x7c bl sub_0801D2B4 b _080256B0 .align 2, 0 _080256A4: .4byte gUnk_080CBFF8 _080256A8: adds r0, r4, #0 movs r1, #0x28 bl sub_0801D2B4 _080256B0: pop {r4, pc} .align 2, 0 thumb_func_start sub_080256B4 sub_080256B4: @ 0x080256B4 push {r4, r5, lr} adds r5, r0, #0 movs r0, #1 strb r0, [r5, #0xc] bl sub_08000E50 movs r1, #3 ands r0, r1 adds r0, #4 strb r0, [r5, #0xe] movs r0, #0x1e strb r0, [r5, #0xf] bl sub_08000E50 ldrb r4, [r5, #0x15] adds r4, #7 movs r1, #7 bl __modsi3 lsls r0, r0, #2 adds r4, r4, r0 movs r0, #0x1c ands r4, r0 strb r4, [r5, #0x15] bl sub_08000E50 ldr r2, _08025718 @ =gUnk_080CC000 movs r1, #0xf ands r1, r0 lsls r1, r1, #1 adds r1, r1, r2 ldrh r1, [r1] adds r0, r5, #0 adds r0, #0x78 movs r4, #0 strh r1, [r0] bl sub_08000E50 movs r1, #0x18 bl __modsi3 lsls r0, r0, #1 adds r1, r5, #0 adds r1, #0x7a strb r0, [r1] adds r0, r5, #0 adds r0, #0x7b strb r4, [r0] pop {r4, r5, pc} .align 2, 0 _08025718: .4byte gUnk_080CC000 thumb_func_start sub_0802571C sub_0802571C: @ 0x0802571C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 adds r7, r0, #0 ldr r0, _080257B0 @ =gUnk_03000BF0 mov sb, r0 ldrh r0, [r7, #0x2e] mov r2, sb ldrh r1, [r2, #6] subs r0, r0, r1 adds r0, #8 movs r3, #0x10 rsbs r3, r3, #0 adds r2, r3, #0 ands r0, r2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp] ldrh r0, [r7, #0x32] mov r3, sb ldrh r1, [r3, #8] subs r0, r0, r1 adds r0, #8 ands r0, r2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sl, r0 adds r0, r7, #0 adds r0, #0x7a ldrb r4, [r0] movs r3, #0 ldr r0, _080257B4 @ =gUnk_080CC020 mov r8, r0 _08025764: mov r1, r8 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r2, [sp] adds r0, r2, r0 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 adds r0, r4, #1 add r0, r8 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 add r0, sl lsls r0, r0, #0x10 lsrs r5, r0, #0x10 adds r0, r7, #0 adds r1, r6, #0 adds r2, r5, #0 str r3, [sp, #4] bl sub_080257EC ldr r3, [sp, #4] cmp r0, #0 beq _080257B8 mov r3, sb ldrh r0, [r3, #6] adds r0, r6, r0 adds r1, r7, #0 adds r1, #0x7c strh r0, [r1] ldrh r0, [r3, #8] adds r0, r5, r0 adds r1, #2 strh r0, [r1] movs r0, #1 b _080257E0 .align 2, 0 _080257B0: .4byte gUnk_03000BF0 _080257B4: .4byte gUnk_080CC020 _080257B8: adds r0, r4, #2 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 cmp r4, #0x2f bls _080257C4 movs r4, #0 _080257C4: adds r0, r3, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 cmp r3, #3 bls _08025764 adds r0, r7, #0 adds r0, #0x7a strb r4, [r0] adds r1, r7, #0 adds r1, #0x7b ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r0, #0 _080257E0: add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} thumb_func_start sub_080257EC sub_080257EC: @ 0x080257EC push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 adds r7, r1, #0 adds r6, r2, #0 adds r0, #0x38 ldrb r2, [r0] adds r0, r7, #0 adds r1, r6, #0 bl sub_080002A8 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 ldr r0, _080258B0 @ =0x00000312 cmp r2, r0 beq _08025822 ldr r0, _080258B4 @ =gUnk_080B37A0 adds r0, r2, r0 ldrb r0, [r0] cmp r0, #0x16 beq _08025822 ldr r0, _080258B8 @ =gUnk_080B3E80 adds r0, r2, r0 ldrb r0, [r0] cmp r0, #0 beq _080258AA _08025822: adds r5, r7, #0 subs r5, #0x10 adds r4, #0x38 ldrb r2, [r4] adds r0, r5, #0 adds r1, r6, #0 bl sub_080002A8 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 ldr r0, _080258B0 @ =0x00000312 mov r8, r4 cmp r2, r0 beq _08025852 ldr r0, _080258B4 @ =gUnk_080B37A0 adds r0, r2, r0 ldrb r0, [r0] cmp r0, #0x16 beq _08025852 ldr r0, _080258B8 @ =gUnk_080B3E80 adds r0, r2, r0 ldrb r0, [r0] cmp r0, #0 beq _080258AA _08025852: adds r4, r6, #0 subs r4, #0x10 mov r0, r8 ldrb r2, [r0] adds r0, r7, #0 adds r1, r4, #0 bl sub_080002A8 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 ldr r0, _080258B0 @ =0x00000312 adds r1, r4, #0 cmp r2, r0 beq _08025882 ldr r0, _080258B4 @ =gUnk_080B37A0 adds r0, r2, r0 ldrb r0, [r0] cmp r0, #0x16 beq _08025882 ldr r0, _080258B8 @ =gUnk_080B3E80 adds r0, r2, r0 ldrb r0, [r0] cmp r0, #0 beq _080258AA _08025882: mov r0, r8 ldrb r2, [r0] adds r0, r5, #0 bl sub_080002A8 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 ldr r0, _080258B0 @ =0x00000312 cmp r2, r0 beq _080258BC ldr r0, _080258B4 @ =gUnk_080B37A0 adds r0, r2, r0 ldrb r0, [r0] cmp r0, #0x16 beq _080258BC ldr r0, _080258B8 @ =gUnk_080B3E80 adds r0, r2, r0 ldrb r0, [r0] cmp r0, #0 bne _080258BC _080258AA: movs r0, #1 b _080258BE .align 2, 0 _080258B0: .4byte 0x00000312 _080258B4: .4byte gUnk_080B37A0 _080258B8: .4byte gUnk_080B3E80 _080258BC: movs r0, #0 _080258BE: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_080258C4 sub_080258C4: @ 0x080258C4 push {r4, lr} adds r4, r0, #0 movs r0, #1 bl sub_08049DF4 adds r2, r0, #0 cmp r2, #0 beq _08025922 movs r0, #0x2e ldrsh r1, [r2, r0] movs r3, #0x2e ldrsh r0, [r4, r3] subs r3, r1, r0 adds r0, r3, #0 muls r0, r3, r0 adds r3, r0, #0 movs r1, #0x32 ldrsh r0, [r2, r1] movs r2, #0x32 ldrsh r1, [r4, r2] subs r0, r0, r1 adds r1, r0, #0 muls r1, r0, r1 adds r0, r1, #0 adds r3, r3, r0 adds r0, r4, #0 adds r0, #0x84 ldrh r0, [r0] cmp r0, #0 bne _0802591A adds r0, r4, #0 adds r0, #0x81 ldrb r1, [r0] cmp r1, #0 bne _0802591A movs r0, #0x80 lsls r0, r0, #3 cmp r3, r0 bgt _0802591A movs r0, #9 strb r0, [r4, #0xc] strb r1, [r4, #0xe] b _08025942 _0802591A: movs r0, #0x90 lsls r0, r0, #4 cmp r3, r0 ble _08025926 _08025922: movs r0, #0 b _08025944 _08025926: movs r0, #0xb strb r0, [r4, #0xc] movs r0, #1 strb r0, [r4, #0xe] bl sub_08000E50 ldr r2, _08025948 @ =gUnk_080CC050 movs r1, #0xf ands r1, r0 adds r1, r1, r2 ldrb r1, [r1] adds r0, r4, #0 adds r0, #0x78 strh r1, [r0] _08025942: movs r0, #1 _08025944: pop {r4, pc} .align 2, 0 _08025948: .4byte gUnk_080CC050 thumb_func_start sub_0802594C sub_0802594C: @ 0x0802594C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x14 mov sl, r0 ldr r0, _08025A20 @ =gUnk_080CC090 lsls r1, r1, #2 adds r1, r1, r0 ldr r7, [r1] mov r0, sl adds r0, #0x38 ldrb r0, [r0] mov sb, r0 ldr r3, _08025A24 @ =gUnk_03000BF0 mov r1, sl ldrh r0, [r1, #0x2e] ldrh r1, [r3, #6] subs r0, r0, r1 adds r0, #8 movs r1, #0x10 rsbs r1, r1, #0 adds r2, r1, #0 ands r0, r2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp] mov r1, sl ldrh r0, [r1, #0x32] ldrh r1, [r3, #8] subs r0, r0, r1 adds r0, #8 ands r0, r2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp, #4] _08025996: movs r0, #0 ldrsb r0, [r7, r0] ldr r1, [sp] lsls r4, r1, #0x10 asrs r4, r4, #0x10 adds r4, r4, r0 lsls r4, r4, #0x10 movs r0, #1 ldrsb r0, [r7, r0] ldr r1, [sp, #4] lsls r5, r1, #0x10 asrs r5, r5, #0x10 adds r5, r5, r0 lsls r5, r5, #0x10 lsrs r0, r4, #0x10 str r0, [sp, #8] asrs r4, r4, #0x10 lsrs r1, r5, #0x10 str r1, [sp, #0xc] asrs r5, r5, #0x10 adds r0, r4, #0 adds r1, r5, #0 mov r2, sb bl sub_080002D4 adds r6, r0, #0 lsls r6, r6, #0x18 lsrs r6, r6, #0x18 movs r0, #0x10 rsbs r0, r0, #0 adds r0, r0, r4 mov r8, r0 adds r1, r5, #0 mov r2, sb bl sub_080002D4 adds r3, r0, #0 lsls r3, r3, #0x18 lsrs r3, r3, #0x18 subs r5, #0x10 adds r0, r4, #0 adds r1, r5, #0 mov r2, sb str r3, [sp, #0x10] bl sub_080002D4 adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x18 mov r0, r8 adds r1, r5, #0 mov r2, sb bl sub_080002D4 ldr r3, [sp, #0x10] orrs r6, r3 orrs r4, r6 orrs r4, r0 lsls r4, r4, #0x18 cmp r4, #0 beq _08025A28 adds r7, #2 movs r0, #0 ldrsb r0, [r7, r0] cmp r0, #0x7f bne _08025996 movs r0, #0 b _08025A44 .align 2, 0 _08025A20: .4byte gUnk_080CC090 _08025A24: .4byte gUnk_03000BF0 _08025A28: ldr r2, _08025A50 @ =gUnk_03000BF0 ldrh r0, [r2, #6] ldr r1, [sp, #8] adds r0, r0, r1 mov r1, sl adds r1, #0x7c strh r0, [r1] ldrh r0, [r2, #8] ldr r1, [sp, #0xc] adds r0, r0, r1 mov r1, sl adds r1, #0x7e strh r0, [r1] movs r0, #1 _08025A44: add sp, #0x14 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _08025A50: .4byte gUnk_03000BF0 thumb_func_start sub_08025A54 sub_08025A54: @ 0x08025A54 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r1, r0, #0 adds r1, #0x38 ldrb r1, [r1] mov sb, r1 ldr r3, _08025AB0 @ =gUnk_03000BF0 ldrh r2, [r0, #0x2e] ldrh r1, [r3, #6] subs r2, r2, r1 ldrh r1, [r0, #0x32] ldrh r0, [r3, #8] subs r1, r1, r0 ldr r4, _08025AB4 @ =gUnk_080CC0A0 movs r5, #0 lsls r2, r2, #0x10 asrs r2, r2, #0x10 mov r8, r2 movs r6, #0x3f lsls r1, r1, #0x10 asrs r7, r1, #0x10 _08025A82: movs r0, #0 ldrsb r0, [r4, r0] add r0, r8 asrs r0, r0, #4 ands r0, r6 movs r1, #1 ldrsb r1, [r4, r1] adds r1, r7, r1 asrs r1, r1, #4 ands r1, r6 lsls r1, r1, #6 orrs r0, r1 mov r1, sb bl sub_08025AB8 adds r5, #1 adds r4, #2 cmp r5, #3 bls _08025A82 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _08025AB0: .4byte gUnk_03000BF0 _08025AB4: .4byte gUnk_080CC0A0 thumb_func_start sub_08025AB8 sub_08025AB8: @ 0x08025AB8 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 bl sub_080002E0 cmp r0, #0 bne _08025AD6 lsls r0, r4, #0x10 lsrs r0, r0, #0x10 lsls r1, r5, #0x18 lsrs r1, r1, #0x18 bl sub_080002C8 cmp r0, #0xa beq _08025ADA _08025AD6: movs r0, #0 b _08025AE6 _08025ADA: movs r0, #0x61 adds r1, r4, #0 adds r2, r5, #0 bl sub_0807B7D8 movs r0, #1 _08025AE6: pop {r4, r5, pc} thumb_func_start sub_08025AE8 sub_08025AE8: @ 0x08025AE8 push {r4, lr} adds r4, r0, #0 movs r1, #0x22 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _08025B00 ldr r0, [r1, #0x30] subs r0, #1 str r0, [r1, #0x30] _08025B00: adds r0, r4, #0 movs r1, #0x23 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _08025B16 ldr r0, [r1, #0x30] adds r0, #1 str r0, [r1, #0x30] _08025B16: pop {r4, pc} thumb_func_start sub_08025B18 sub_08025B18: @ 0x08025B18 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 adds r6, r0, #0 movs r0, #0x2e ldrsh r1, [r6, r0] ldr r2, _08025BC8 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 str r1, [sp] movs r0, #0x32 ldrsh r1, [r6, r0] ldrh r0, [r2, #8] subs r1, r1, r0 str r1, [sp, #4] adds r0, r6, #0 adds r0, #0x38 ldrb r0, [r0] mov sl, r0 ldr r5, _08025BCC @ =gUnk_080CC0A8 movs r7, #0 movs r1, #0x3f mov r8, r1 movs r2, #0x10 rsbs r2, r2, #0 mov sb, r2 _08025B52: movs r0, #0 ldrsb r0, [r5, r0] ldr r1, [sp] adds r0, r1, r0 asrs r0, r0, #4 mov r2, r8 ands r0, r2 movs r1, #1 ldrsb r1, [r5, r1] ldr r2, [sp, #4] adds r1, r2, r1 asrs r1, r1, #4 mov r2, r8 ands r1, r2 lsls r1, r1, #6 orrs r0, r1 mov r1, sl bl sub_08025AB8 movs r0, #0x21 movs r1, #2 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08025BB4 movs r2, #0 ldrsb r2, [r5, r2] lsls r2, r2, #0x10 movs r3, #1 ldrsb r3, [r5, r3] lsls r3, r3, #0x10 adds r0, r6, #0 adds r1, r4, #0 bl sub_0806FA48 ldrh r1, [r4, #0x2e] mov r0, sb ands r0, r1 adds r0, #8 strh r0, [r4, #0x2e] ldrh r1, [r4, #0x32] mov r0, sb ands r0, r1 adds r0, #8 strh r0, [r4, #0x32] ldr r0, _08025BD0 @ =0x0000FFFF strh r0, [r4, #0x36] _08025BB4: adds r7, #1 adds r5, #2 cmp r7, #8 bls _08025B52 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 _08025BC8: .4byte gUnk_03000BF0 _08025BCC: .4byte gUnk_080CC0A8 _08025BD0: .4byte 0x0000FFFF thumb_func_start sub_08025BD4 sub_08025BD4: @ 0x08025BD4 push {r4, r5, lr} adds r5, r0, #0 adds r0, #0x82 ldrb r0, [r0] cmp r0, #0 beq _08025C22 adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 bne _08025C22 movs r0, #0x21 movs r1, #0 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08025C22 ldr r3, _08025C24 @ =gUnk_080CC0BA ldrb r0, [r5, #0x14] lsls r0, r0, #1 adds r1, r0, r3 movs r2, #0 ldrsb r2, [r1, r2] lsls r2, r2, #0x10 adds r0, #1 adds r0, r0, r3 movs r3, #0 ldrsb r3, [r0, r3] lsls r3, r3, #0x10 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA48 ldr r0, _08025C28 @ =0x0000FFF6 strh r0, [r4, #0x36] _08025C22: pop {r4, r5, pc} .align 2, 0 _08025C24: .4byte gUnk_080CC0BA _08025C28: .4byte 0x0000FFF6 thumb_func_start sub_08025C2C sub_08025C2C: @ 0x08025C2C push {lr} movs r2, #0 movs r1, #8 strb r1, [r0, #0xc] adds r1, r0, #0 adds r1, #0x80 strb r2, [r1] movs r1, #8 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_08025C44 sub_08025C44: @ 0x08025C44 push {lr} adds r2, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08025C58 movs r0, #0 b _08025C5E _08025C58: adds r0, r2, #0 bl sub_080AEF88 _08025C5E: pop {pc} thumb_func_start sub_08025C60 sub_08025C60: @ 0x08025C60 push {r4, lr} adds r4, r0, #0 bl sub_08049FA0 cmp r0, #0 bne _08025C80 bl sub_08000E50 movs r1, #1 ands r1, r0 cmp r1, #0 beq _08025C80 adds r0, r4, #0 bl sub_08049EE4 b _08025C98 _08025C80: bl sub_08000E50 ldr r2, _08025C9C @ =gUnk_080CC0C2 movs r1, #7 ands r1, r0 adds r1, r1, r2 movs r0, #0 ldrsb r0, [r1, r0] ldrb r4, [r4, #0x15] adds r0, r0, r4 movs r1, #0x1f ands r0, r1 _08025C98: pop {r4, pc} .align 2, 0 _08025C9C: .4byte gUnk_080CC0C2 thumb_func_start sub_08025CA0 sub_08025CA0: @ 0x08025CA0 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _08025CB8 @ =gUnk_080CC19C bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _08025CB8: .4byte gUnk_080CC19C thumb_func_start sub_08025CBC sub_08025CBC: @ 0x08025CBC push {r4, lr} adds r4, r0, #0 bl sub_08001324 thumb_func_start sub_08025CC4 sub_08025CC4: @ 0x08025CC4 ldrb r0, [r4, #0xa] cmp r0, #0 bne _08025CD0 adds r0, r4, #0 bl sub_08027870 _08025CD0: pop {r4, pc} .align 2, 0 thumb_func_start sub_08025CD4 sub_08025CD4: @ 0x08025CD4 push {r4, r5, lr} adds r4, r0, #0 bl sub_08078B48 ldrb r3, [r4, #0xa] cmp r3, #0 bne _08025DA4 ldrb r0, [r4, #0xd] cmp r0, #0xc beq _08025CFE movs r0, #0xc strb r0, [r4, #0xd] adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] strb r3, [r0, #3] ldr r0, [r4, #0x54] movs r1, #9 bl sub_080042AC b _08025D9C _08025CFE: adds r5, r4, #0 adds r5, #0x84 ldr r0, [r5] ldrb r0, [r0, #3] cmp r0, #0 beq _08025D10 cmp r0, #1 beq _08025D28 b _08025D9C _08025D10: adds r0, r4, #0 movs r1, #0x3f bl sub_08027C7C ldr r0, [r5] movs r1, #1 strb r1, [r0, #3] adds r1, r4, #0 adds r1, #0x7d movs r0, #0x78 strb r0, [r1] b _08025D9C _08025D28: adds r2, r4, #0 adds r2, #0x7d ldrb r0, [r2] subs r1, r0, #1 strb r1, [r2] lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _08025D84 ldr r1, [r4, #0x54] adds r1, #0x6d ldrb r0, [r1] movs r2, #2 orrs r0, r2 strb r0, [r1] ldr r1, [r4, #0x68] adds r1, #0x6d ldrb r0, [r1] orrs r0, r2 strb r0, [r1] ldr r1, [r4, #0x50] adds r1, #0x6d ldrb r0, [r1] orrs r0, r2 strb r0, [r1] ldr r2, [r4, #0x54] ldr r1, [r4, #0x50] ldr r0, [r4, #0x68] adds r0, #0x45 strb r3, [r0] adds r1, #0x45 strb r3, [r1] adds r2, #0x45 strb r3, [r2] ldr r0, _08025D80 @ =gUnk_02034490 strb r3, [r0] movs r0, #0x94 lsls r0, r0, #1 bl sub_080A3268 adds r0, r4, #0 bl sub_0804A7D4 b _08025D9C .align 2, 0 _08025D80: .4byte gUnk_02034490 _08025D84: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 movs r1, #0x3f cmp r0, #0x50 bhi _08025D96 movs r1, #0xf cmp r0, #0x1e bls _08025D96 movs r1, #0x1f _08025D96: adds r0, r4, #0 bl sub_08027C7C _08025D9C: adds r0, r4, #0 bl sub_08027870 b _08025DBC _08025DA4: adds r2, r4, #0 adds r2, #0x6d ldrb r1, [r2] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08025DBC movs r0, #2 orrs r0, r1 strb r0, [r2] bl sub_0805E780 _08025DBC: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08025DC0 sub_08025DC0: @ 0x08025DC0 push {lr} ldr r2, _08025DD4 @ =gUnk_080CC1B0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08025DD4: .4byte gUnk_080CC1B0 thumb_func_start sub_08025DD8 sub_08025DD8: @ 0x08025DD8 push {r4, r5, r6, r7, lr} adds r5, r0, #0 movs r0, #1 strb r0, [r5, #0xc] ldrb r1, [r5, #0xa] cmp r1, #8 bne _08025DF2 movs r0, #4 strb r0, [r5, #0xa] ldr r0, [r5, #0x54] ldr r0, [r0, #0x48] str r0, [r5, #0x48] b _0802605E _08025DF2: ldr r6, _08025E48 @ =gUnk_080CC1B8 movs r4, #3 movs r3, #3 adds r0, r3, #0 ands r0, r1 lsls r0, r0, #2 adds r0, r0, r6 ldrb r0, [r0, #1] movs r1, #0x29 adds r1, r1, r5 mov ip, r1 movs r1, #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] adds r1, r5, #0 adds r1, #0x76 movs r0, #0xa0 strh r0, [r1] adds r1, #4 strh r0, [r1] adds r1, #4 movs r0, #0 strh r0, [r1] ldrb r0, [r5, #0x19] orrs r0, r4 strb r0, [r5, #0x19] ldrb r0, [r5, #0xa] ands r3, r0 cmp r3, #1 bne _08025E4C adds r0, r5, #0 movs r1, #0 bl sub_080042AC b _08025E58 .align 2, 0 _08025E48: .4byte gUnk_080CC1B8 _08025E4C: lsls r0, r3, #2 adds r0, r0, r6 ldrb r1, [r0] adds r0, r5, #0 bl sub_08004260 _08025E58: ldrb r0, [r5, #0xa] movs r6, #3 ands r6, r0 cmp r6, #0 beq _08025E86 cmp r6, #0 bge _08025E68 b _08026050 _08025E68: cmp r6, #3 ble _08025E6E b _08026050 _08025E6E: ldr r4, [r5, #0x48] adds r0, r5, #0 bl sub_0806FBD8 adds r1, r0, #0 cmp r1, #0 beq _08025E7E b _08026020 _08025E7E: ldr r0, [r5, #0x68] adds r0, #0x45 strb r1, [r0] b _0802605E _08025E86: strb r0, [r5, #0xb] movs r0, #0x10 bl sub_0801D8E0 adds r4, r5, #0 adds r4, #0x84 str r0, [r4] cmp r0, #0 beq _08025EA2 adds r0, r5, #0 bl sub_0806FBD8 cmp r0, #0 bne _08025EAA _08025EA2: adds r0, r5, #0 bl sub_0804A7D4 b _0802605E _08025EAA: ldr r0, [r4] str r0, [r5, #0x64] ldr r2, [r5, #0x48] ldr r1, _0802601C @ =gUnk_080FD238 ldrb r0, [r1] strb r0, [r2] ldr r2, [r5, #0x48] ldrb r0, [r1, #1] strb r0, [r2, #1] ldr r2, [r5, #0x48] ldrb r0, [r1, #2] strb r0, [r2, #2] ldr r2, [r5, #0x48] ldrb r0, [r1, #3] strb r0, [r2, #3] ldr r2, [r5, #0x48] ldrb r0, [r1, #4] strb r0, [r2, #4] ldr r2, [r5, #0x48] ldrb r0, [r1, #5] strb r0, [r2, #5] ldr r2, [r5, #0x48] ldrb r0, [r1, #6] strb r0, [r2, #6] ldr r2, [r5, #0x48] ldrb r0, [r1, #7] strb r0, [r2, #7] strb r6, [r5, #0xd] adds r1, r5, #0 adds r1, #0x6d ldrb r0, [r1] movs r7, #1 orrs r0, r7 strb r0, [r1] ldr r0, [r4] strb r6, [r0, #6] ldr r0, [r4] strb r6, [r0, #5] ldr r1, [r4] movs r0, #0xf strb r0, [r1, #1] ldr r0, [r4] strb r6, [r0, #3] ldr r0, [r4] strb r6, [r0, #4] ldr r1, [r4] ldrh r0, [r5, #0x2e] strh r0, [r1, #0xe] ldrb r0, [r5, #0xa] movs r1, #3 orrs r1, r0 movs r0, #0x13 bl sub_0804AA60 adds r2, r0, #0 str r2, [r5, #0x68] cmp r2, #0 beq _08025F46 adds r0, r5, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r2, #0 adds r0, #0x38 strb r1, [r0] ldr r1, [r5, #0x68] ldrh r0, [r5, #0x2e] strh r0, [r1, #0x2e] ldr r1, [r5, #0x68] ldrh r0, [r5, #0x32] subs r0, #0xe strh r0, [r1, #0x32] ldr r1, [r5, #0x68] movs r0, #0xe strb r0, [r1, #0xe] ldr r0, [r5, #0x68] str r5, [r0, #0x50] ldr r0, [r5, #0x68] str r5, [r0, #0x68] _08025F46: ldrb r0, [r5, #0xa] movs r1, #2 orrs r1, r0 movs r0, #0x13 bl sub_0804AA60 adds r2, r0, #0 str r2, [r5, #0x50] cmp r2, #0 beq _08025F8C adds r0, r5, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r2, #0 adds r0, #0x38 strb r1, [r0] ldr r1, [r5, #0x50] ldrh r0, [r5, #0x2e] strh r0, [r1, #0x2e] ldr r1, [r5, #0x50] ldr r0, [r5, #0x68] ldrh r0, [r0, #0x32] subs r0, #0x12 strh r0, [r1, #0x32] ldr r1, [r5, #0x50] movs r0, #0x12 strb r0, [r1, #0xe] ldr r1, [r5, #0x50] ldr r0, [r5, #0x68] str r0, [r1, #0x50] ldr r1, [r5, #0x68] ldr r0, [r5, #0x50] str r0, [r1, #0x54] ldr r0, [r5, #0x50] str r5, [r0, #0x68] _08025F8C: ldrb r0, [r5, #0xa] adds r1, r7, #0 orrs r1, r0 movs r0, #0x13 bl sub_0804AA60 adds r2, r0, #0 str r2, [r5, #0x54] cmp r2, #0 beq _08025FD6 adds r0, r5, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r2, #0 adds r0, #0x38 strb r1, [r0] ldr r1, [r5, #0x54] ldrh r0, [r5, #0x2e] strh r0, [r1, #0x2e] ldr r1, [r5, #0x54] ldr r0, [r5, #0x50] ldrh r0, [r0, #0x32] subs r0, #0xe strh r0, [r1, #0x32] ldr r1, [r5, #0x54] movs r0, #0xe strb r0, [r1, #0xe] ldr r1, [r5, #0x54] ldr r0, [r5, #0x50] str r0, [r1, #0x50] ldr r0, [r5, #0x54] str r5, [r0, #0x54] ldr r1, [r5, #0x50] ldr r0, [r5, #0x54] str r0, [r1, #0x54] ldr r0, [r5, #0x54] str r5, [r0, #0x68] _08025FD6: movs r0, #0x13 movs r1, #8 bl sub_0804AA60 adds r1, r0, #0 cmp r1, #0 beq _08025FE6 str r5, [r1, #0x54] _08025FE6: adds r0, r5, #0 movs r1, #0x49 movs r2, #1 movs r3, #0 bl sub_080A2988 adds r1, r0, #0 cmp r1, #0 beq _08025FFC ldr r0, [r5, #0x54] str r0, [r1, #0x54] _08025FFC: ldrb r0, [r5, #0xa] cmp r0, #0 beq _08026050 adds r0, r5, #0 movs r1, #0x49 movs r2, #3 movs r3, #0 bl sub_080A2988 adds r1, r0, #0 cmp r1, #0 beq _08026050 ldr r0, [r5, #0x54] str r0, [r1, #0x54] b _08026050 .align 2, 0 _0802601C: .4byte gUnk_080FD238 _08026020: ldr r1, [r5, #0x48] ldrb r0, [r4] strb r0, [r1] ldr r1, [r5, #0x48] ldrb r0, [r4, #1] strb r0, [r1, #1] ldr r1, [r5, #0x48] ldrb r0, [r4, #2] strb r0, [r1, #2] ldr r1, [r5, #0x48] ldrb r0, [r4, #3] strb r0, [r1, #3] ldr r1, [r5, #0x48] ldrb r0, [r4, #4] strb r0, [r1, #4] ldr r1, [r5, #0x48] ldrb r0, [r4, #5] strb r0, [r1, #5] ldr r1, [r5, #0x48] ldrb r0, [r4, #6] strb r0, [r1, #6] ldr r1, [r5, #0x48] ldrb r0, [r4, #7] strb r0, [r1, #7] _08026050: ldrb r1, [r5, #0xa] movs r0, #3 ands r0, r1 strb r0, [r5, #0xa] adds r0, r5, #0 bl sub_08026060 _0802605E: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08026060 sub_08026060: @ 0x08026060 push {r4, lr} adds r4, r0, #0 ldr r1, _0802608C @ =gUnk_080CC1C8 ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 adds r0, #0x76 ldrh r1, [r0] adds r0, #4 ldrh r2, [r0] adds r0, #4 ldrh r3, [r0] adds r0, r4, #0 bl sub_0805EC9C pop {r4, pc} .align 2, 0 _0802608C: .4byte gUnk_080CC1C8 thumb_func_start sub_08026090 sub_08026090: @ 0x08026090 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #0 bne _080260EA ldr r0, [r4, #0x54] adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _080260B8 ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r0, #1 strb r0, [r4, #0xd] movs r0, #0xfa strb r0, [r4, #0xe] ldr r0, _080260D4 @ =gUnk_03000BF0 str r4, [r0, #0x30] _080260B8: ldr r0, [r4, #0x54] ldrb r1, [r0, #0x10] strb r1, [r4, #0x10] ldr r1, [r0, #0x48] str r1, [r4, #0x48] adds r0, #0x3f ldrb r1, [r0] cmp r1, #0x7e bne _080260D8 adds r0, r4, #0 adds r0, #0x3f strb r1, [r0] b _080260E0 .align 2, 0 _080260D4: .4byte gUnk_03000BF0 _080260D8: adds r1, r4, #0 adds r1, #0x3f movs r0, #0x7c strb r0, [r1] _080260E0: ldr r0, [r4, #0x54] adds r1, r4, #0 bl sub_0806FA24 b _08026106 _080260EA: bl sub_08078B48 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _08026106 ldr r1, _08026108 @ =gUnk_03000BF0 ldr r0, _0802610C @ =gUnk_03001160 str r0, [r1, #0x30] bl sub_0805E780 _08026106: pop {r4, pc} .align 2, 0 _08026108: .4byte gUnk_03000BF0 _0802610C: .4byte gUnk_03001160 thumb_func_start sub_08026110 sub_08026110: @ 0x08026110 push {r4, r5, r6, r7, lr} adds r6, r0, #0 ldr r1, _08026144 @ =gUnk_080CC1DC ldrb r0, [r6, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r6, #0 bl _call_via_r1 adds r0, r6, #0 adds r0, #0x84 ldr r2, [r0] ldr r0, [r2, #8] cmp r0, #0 bne _08026160 ldrb r1, [r2, #5] cmp r1, #0 beq _08026160 ldrb r0, [r6, #0xd] cmp r0, #8 bne _08026148 adds r0, r1, #0 subs r0, #0x40 b _0802614C .align 2, 0 _08026144: .4byte gUnk_080CC1DC _08026148: adds r0, r1, #0 subs r0, #0x20 _0802614C: strb r0, [r2, #5] adds r0, r6, #0 adds r0, #0x84 ldr r1, [r0] movs r0, #5 ldrsb r0, [r1, r0] cmp r0, #0 bge _08026160 movs r0, #0 strb r0, [r1, #5] _08026160: adds r2, r6, #0 adds r2, #0x80 ldrb r0, [r2] movs r1, #0x76 adds r1, r1, r6 mov ip, r1 adds r7, r6, #0 adds r7, #0x7a cmp r0, #0 beq _08026230 ldrb r0, [r6, #0xe] cmp r0, #0 bne _080261D2 ldrb r1, [r2] lsls r1, r1, #0xc ldr r0, [r6, #0x74] subs r0, r0, r1 str r0, [r6, #0x74] ldrb r1, [r2] lsls r1, r1, #0xc ldr r0, [r6, #0x78] subs r0, r0, r1 str r0, [r6, #0x78] mov r0, ip ldrh r2, [r0] adds r4, r6, #0 adds r4, #0x82 ldrb r1, [r4] adds r3, r6, #0 adds r3, #0x84 ldr r0, [r3] ldrb r0, [r0, #5] adds r1, r1, r0 cmp r2, r1 bgt _080261AA mov r0, ip strh r1, [r0] _080261AA: ldrh r2, [r7] ldrb r1, [r4] ldr r0, [r3] ldrb r0, [r0, #5] adds r1, r1, r0 cmp r2, r1 bgt _080261BA strh r1, [r7] _080261BA: mov r1, ip ldrh r2, [r1] ldrb r1, [r4] ldr r0, [r3] ldrb r0, [r0, #5] adds r1, r1, r0 cmp r2, r1 bgt _08026230 ldrh r0, [r7] cmp r0, r1 bgt _08026230 b _08026228 _080261D2: ldrb r1, [r2] lsls r1, r1, #0xc ldr r0, [r6, #0x74] adds r0, r0, r1 str r0, [r6, #0x74] ldrb r1, [r2] lsls r1, r1, #0xc ldr r0, [r6, #0x78] adds r0, r0, r1 str r0, [r6, #0x78] mov r0, ip ldrh r2, [r0] adds r4, r6, #0 adds r4, #0x81 ldrb r1, [r4] adds r3, r6, #0 adds r3, #0x84 ldr r0, [r3] ldrb r0, [r0, #5] adds r1, r1, r0 cmp r2, r1 blt _08026202 mov r0, ip strh r1, [r0] _08026202: ldrh r2, [r7] ldrb r1, [r4] ldr r0, [r3] ldrb r0, [r0, #5] adds r1, r1, r0 cmp r2, r1 blt _08026212 strh r1, [r7] _08026212: mov r1, ip ldrh r2, [r1] ldrb r1, [r4] ldr r0, [r3] ldrb r0, [r0, #5] adds r1, r1, r0 cmp r2, r1 blt _08026230 ldrh r0, [r7] cmp r0, r1 blt _08026230 _08026228: ldrb r0, [r6, #0xe] movs r1, #1 eors r0, r1 strb r0, [r6, #0xe] _08026230: ldr r5, [r6, #0x48] mov r0, ip ldrh r1, [r0] movs r4, #0x80 lsls r4, r4, #9 adds r0, r4, #0 bl __divsi3 lsls r1, r0, #3 subs r1, r1, r0 lsrs r1, r1, #7 strb r1, [r5, #6] ldr r5, [r6, #0x48] ldrh r1, [r7] adds r0, r4, #0 bl __divsi3 lsls r1, r0, #1 adds r1, r1, r0 lsrs r1, r1, #7 strb r1, [r5, #7] movs r1, #0x36 ldrsh r0, [r6, r1] cmp r0, #0 bne _08026268 adds r0, r6, #0 bl sub_0800445C _08026268: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0802626C sub_0802626C: @ 0x0802626C push {lr} ldr r2, _0802629C @ =gUnk_02034490 movs r1, #1 strb r1, [r2] ldr r2, _080262A0 @ =gUnk_080CC20C adds r1, r0, #0 adds r1, #0x84 ldr r1, [r1] ldrb r1, [r1, #3] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 ldr r0, _080262A4 @ =gUnk_03001160 ldrb r0, [r0, #0xc] cmp r0, #0x17 beq _08026298 cmp r0, #0xf beq _08026298 bl sub_08078B48 _08026298: pop {pc} .align 2, 0 _0802629C: .4byte gUnk_02034490 _080262A0: .4byte gUnk_080CC20C _080262A4: .4byte gUnk_03001160 thumb_func_start sub_080262A8 sub_080262A8: @ 0x080262A8 push {r4, r5, r6, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x82 movs r6, #0 movs r0, #0x90 strb r0, [r1] subs r1, #1 movs r0, #0xb0 strb r0, [r1] subs r1, #1 movs r0, #8 strb r0, [r1] movs r5, #1 strb r5, [r4, #0xe] adds r0, r4, #0 movs r1, #6 movs r2, #1 bl sub_080276F4 ldrb r0, [r4, #0xb] cmp r0, #0 bne _080262EC ldr r1, _080262E8 @ =gUnk_03003F80 movs r0, #0x82 lsls r0, r0, #1 strh r0, [r1, #8] adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] strb r5, [r0, #3] b _0802631A .align 2, 0 _080262E8: .4byte gUnk_03003F80 _080262EC: adds r0, r4, #0 adds r0, #0x7c strb r6, [r0] adds r1, r4, #0 adds r1, #0x7d movs r0, #0x1e strb r0, [r1] adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] movs r0, #3 strb r0, [r1, #3] ldr r0, _0802631C @ =gUnk_03001160 strb r6, [r0, #0x14] ldr r0, _08026320 @ =gUnk_03000BF0 str r4, [r0, #0x30] strb r5, [r0, #0xe] ldr r0, _08026324 @ =0x00004022 movs r1, #0xb2 lsls r1, r1, #2 movs r2, #1 bl sub_0800015E _0802631A: pop {r4, r5, r6, pc} .align 2, 0 _0802631C: .4byte gUnk_03001160 _08026320: .4byte gUnk_03000BF0 _08026324: .4byte 0x00004022 thumb_func_start sub_08026328 sub_08026328: @ 0x08026328 push {lr} adds r2, r0, #0 ldr r0, _08026354 @ =gUnk_03001160 ldrb r0, [r0, #0xc] cmp r0, #0x17 beq _08026352 adds r1, r2, #0 adds r1, #0x7d movs r0, #0x78 strb r0, [r1] adds r0, r2, #0 adds r0, #0x84 ldr r1, [r0] ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] movs r0, #0xa movs r1, #0 movs r2, #0 bl sub_08078AC0 _08026352: pop {pc} .align 2, 0 _08026354: .4byte gUnk_03001160 thumb_func_start sub_08026358 sub_08026358: @ 0x08026358 push {r4, lr} adds r3, r0, #0 ldr r4, _08026398 @ =gUnk_03001160 ldrb r0, [r4, #0xc] cmp r0, #0xf beq _080263B0 adds r1, r3, #0 adds r1, #0x7d ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #0 bne _080263A0 adds r0, r3, #0 adds r0, #0x7c strb r2, [r0] movs r0, #0x1e strb r0, [r1] adds r0, r3, #0 adds r0, #0x84 ldr r1, [r0] ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] strb r2, [r4, #0x14] ldr r1, _0802639C @ =gUnk_03000BF0 str r3, [r1, #0x30] movs r0, #1 strb r0, [r1, #0xe] b _080263B0 .align 2, 0 _08026398: .4byte gUnk_03001160 _0802639C: .4byte gUnk_03000BF0 _080263A0: cmp r2, #0x60 bhi _080263B0 cmp r2, #0x5b bhi _080263AC movs r0, #4 b _080263AE _080263AC: movs r0, #2 _080263AE: strb r0, [r4, #0x14] _080263B0: pop {r4, pc} .align 2, 0 thumb_func_start sub_080263B4 sub_080263B4: @ 0x080263B4 push {r4, r5, lr} adds r4, r0, #0 movs r0, #0x7d adds r0, r0, r4 mov ip, r0 ldrb r0, [r0] subs r0, #1 mov r1, ip strb r0, [r1] lsls r0, r0, #0x18 lsrs r5, r0, #0x18 cmp r5, #0xff bne _08026410 ldr r2, _08026400 @ =gUnk_080CC234 adds r3, r4, #0 adds r3, #0x7c ldrb r0, [r3] adds r1, r0, #1 strb r1, [r3] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 adds r0, r0, r2 ldrb r1, [r0] mov r0, ip strb r1, [r0] adds r0, r5, #0 ands r0, r1 cmp r0, #0xff bne _08026404 movs r0, #0x78 strb r0, [r3] adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] b _08026410 .align 2, 0 _08026400: .4byte gUnk_080CC234 _08026404: ldrb r2, [r4, #0xb] adds r0, r4, #0 movs r1, #0x49 movs r3, #0 bl sub_080A2988 _08026410: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08026414 sub_08026414: @ 0x08026414 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r1, r7, #0 adds r1, #0x7c ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _08026474 ldr r0, _08026478 @ =0x0000FF40 strh r0, [r7, #0x36] ldr r6, [r7, #0x54] ldr r5, [r7, #0x50] ldr r4, [r7, #0x68] ldrb r2, [r4, #0x18] movs r1, #4 rsbs r1, r1, #0 adds r0, r1, #0 ands r0, r2 movs r3, #1 orrs r0, r3 strb r0, [r4, #0x18] ldrb r2, [r5, #0x18] adds r0, r1, #0 ands r0, r2 orrs r0, r3 strb r0, [r5, #0x18] ldrb r2, [r6, #0x18] adds r0, r1, #0 ands r0, r2 orrs r0, r3 strb r0, [r6, #0x18] ldrb r0, [r7, #0x18] ands r1, r0 orrs r1, r3 strb r1, [r7, #0x18] adds r0, r7, #0 adds r0, #0x84 ldr r1, [r0] ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] movs r0, #0xd1 lsls r0, r0, #1 bl sub_080A3268 _08026474: pop {r4, r5, r6, r7, pc} .align 2, 0 _08026478: .4byte 0x0000FF40 thumb_func_start sub_0802647C sub_0802647C: @ 0x0802647C push {r4, lr} adds r4, r0, #0 movs r1, #0x80 lsls r1, r1, #7 bl sub_08003FC4 cmp r0, #0 bne _080264A6 movs r0, #0x10 movs r1, #0 bl sub_08080964 ldr r0, _080264A8 @ =0x000001A1 bl sub_080A3268 adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] _080264A6: pop {r4, pc} .align 2, 0 _080264A8: .4byte 0x000001A1 thumb_func_start sub_080264AC sub_080264AC: @ 0x080264AC push {r4, lr} adds r4, r0, #0 movs r1, #0xd0 movs r2, #8 bl sub_080277B8 adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] ldrb r0, [r0, #3] cmp r0, #6 beq _080264D2 ldr r0, [r4, #0x54] movs r1, #4 bl sub_080042AC adds r0, r4, #0 bl sub_08027D20 _080264D2: pop {r4, pc} thumb_func_start sub_080264D4 sub_080264D4: @ 0x080264D4 push {r4, lr} adds r4, r0, #0 bl sub_080279E8 cmp r0, #0 beq _08026504 adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] adds r1, r4, #0 adds r1, #0x7d movs r0, #0x3c strb r0, [r1] adds r0, r4, #0 movs r1, #5 movs r2, #0 bl sub_080276F4 movs r0, #0x2e bl sub_080A3268 _08026504: adds r0, r4, #0 bl sub_080277F8 pop {r4, pc} thumb_func_start sub_0802650C sub_0802650C: @ 0x0802650C push {lr} adds r2, r0, #0 ldr r0, [r2, #0x54] adds r0, #0x81 ldrb r0, [r0] cmp r0, #0 bne _0802652C adds r0, r2, #0 adds r0, #0x84 ldr r1, [r0] ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] ldr r1, _08026534 @ =gUnk_03000BF0 ldr r0, _08026538 @ =gUnk_03001160 str r0, [r1, #0x30] _0802652C: adds r0, r2, #0 bl sub_08027870 pop {pc} .align 2, 0 _08026534: .4byte gUnk_03000BF0 _08026538: .4byte gUnk_03001160 thumb_func_start sub_0802653C sub_0802653C: @ 0x0802653C push {r4, r5, lr} sub sp, #4 adds r4, r0, #0 ldr r1, _08026578 @ =gUnk_03000BF0 ldrh r5, [r1] cmp r5, #0 bne _08026572 movs r0, #4 strb r0, [r1, #0xe] movs r0, #0xff str r0, [sp] adds r0, r4, #0 movs r1, #0x90 movs r2, #0xb0 movs r3, #4 bl sub_08027B98 adds r0, r4, #0 movs r1, #0 bl sub_08027548 ldr r0, [r4, #0x54] movs r1, #0 bl sub_080042AC ldr r0, _0802657C @ =gUnk_02034490 strb r5, [r0] _08026572: add sp, #4 pop {r4, r5, pc} .align 2, 0 _08026578: .4byte gUnk_03000BF0 _0802657C: .4byte gUnk_02034490 thumb_func_start sub_08026580 sub_08026580: @ 0x08026580 push {r4, r5, r6, r7, lr} adds r5, r0, #0 bl sub_08027AA4 adds r7, r5, #0 adds r7, #0x84 ldr r0, [r7] ldrb r0, [r0, #1] cmp r0, #0x40 bne _0802659C adds r0, r5, #0 bl sub_08027BBC b _0802662C _0802659C: adds r1, r5, #0 adds r1, #0x7d ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 adds r6, r1, #0 cmp r0, #0xff bne _08026626 movs r0, #0 strh r0, [r5, #0x24] movs r0, #2 strb r0, [r5, #0xd] adds r4, r5, #0 adds r4, #0x7c movs r0, #0x3c strb r0, [r4] ldr r1, _080265E4 @ =gUnk_03001160 adds r0, r5, #0 bl sub_080045C4 strb r0, [r5, #0x15] ldr r0, [r7] ldrb r0, [r0, #4] adds r2, r4, #0 cmp r0, #2 bne _080265E8 adds r1, r5, #0 adds r1, #0x80 movs r0, #0x48 strb r0, [r1] adds r1, #1 ldrb r0, [r1] adds r0, #0x10 b _080265EE .align 2, 0 _080265E4: .4byte gUnk_03001160 _080265E8: adds r1, r5, #0 adds r1, #0x80 movs r0, #0x10 _080265EE: strb r0, [r1] adds r4, r5, #0 adds r4, #0x84 ldr r0, [r4] ldrb r1, [r0, #1] movs r0, #0xa0 ands r0, r1 cmp r0, #0 beq _08026608 movs r0, #0 strb r0, [r6] strb r0, [r2] b _08026626 _08026608: bl sub_08000E50 ldr r2, _08026630 @ =gUnk_080CC24F movs r1, #7 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] adds r1, r0, #1 strb r1, [r6] ldr r0, [r4] ldrb r0, [r0, #4] cmp r0, #2 bne _08026626 lsls r0, r1, #1 strb r0, [r6] _08026626: adds r0, r5, #0 bl sub_08027870 _0802662C: pop {r4, r5, r6, r7, pc} .align 2, 0 _08026630: .4byte gUnk_080CC24F thumb_func_start sub_08026634 sub_08026634: @ 0x08026634 push {r4, r5, lr} sub sp, #4 adds r4, r0, #0 bl sub_08027AA4 cmp r0, #0 beq _08026644 b _08026748 _08026644: adds r0, r4, #0 adds r0, #0x7d ldrb r1, [r0] adds r5, r0, #0 cmp r1, #0 bne _080266D6 adds r1, r4, #0 adds r1, #0x7c ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _08026748 adds r1, #8 ldr r2, [r1] ldrb r3, [r2, #1] movs r0, #0x40 ands r0, r3 adds r5, r1, #0 cmp r0, #0 bne _080266B0 movs r0, #0x80 ands r0, r3 cmp r0, #0 beq _0802668C ldrb r0, [r2] subs r0, #1 strb r0, [r2] ldr r1, [r5] ldrb r0, [r1] cmp r0, #0 bne _080266B0 movs r0, #1 b _080266AE _0802668C: movs r0, #1 strb r0, [r2, #1] ldr r0, [r5] ldrb r0, [r0, #4] cmp r0, #2 bne _080266B0 bl sub_08000E50 movs r1, #3 ands r1, r0 cmp r1, #0 beq _080266B0 ldr r1, [r5] movs r0, #4 strb r0, [r1] ldr r1, [r5] movs r0, #0x81 _080266AE: strb r0, [r1, #1] _080266B0: movs r1, #0 movs r0, #3 strb r0, [r4, #0xd] ldr r0, [r5] strb r1, [r0, #3] str r1, [sp] adds r0, r4, #0 movs r1, #0x90 movs r2, #0x90 movs r3, #0xc bl sub_08027B98 movs r0, #0xe0 lsls r0, r0, #0xb str r0, [r4, #0x20] movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r4, #0x24] b _08026742 _080266D6: ldr r0, _08026700 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #0x7f ands r0, r1 cmp r0, #0 bne _080266EC ldr r1, _08026704 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] _080266EC: adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] ldrb r0, [r0, #4] cmp r0, #2 bne _08026708 movs r0, #0x80 lsls r0, r0, #1 b _0802670A .align 2, 0 _08026700: .4byte gUnk_030010A0 _08026704: .4byte gUnk_03001160 _08026708: movs r0, #0xc0 _0802670A: strh r0, [r4, #0x24] ldrb r0, [r4, #0xe] cmp r0, #0 beq _0802672C ldr r0, _0802674C @ =gUnk_030010A0 ldr r0, [r0] movs r1, #7 ands r0, r1 cmp r0, #0 bne _08026726 movs r0, #0xcf lsls r0, r0, #1 bl sub_080A3268 _08026726: adds r0, r4, #0 bl sub_080AEF88 _0802672C: adds r0, r4, #0 adds r0, #0x76 adds r1, r4, #0 adds r1, #0x81 ldrh r0, [r0] ldrb r1, [r1] cmp r0, r1 bne _08026742 ldrb r0, [r5] subs r0, #1 strb r0, [r5] _08026742: adds r0, r4, #0 bl sub_08027870 _08026748: add sp, #4 pop {r4, r5, pc} .align 2, 0 _0802674C: .4byte gUnk_030010A0 thumb_func_start sub_08026750 sub_08026750: @ 0x08026750 push {r4, lr} adds r4, r0, #0 bl sub_08027AA4 ldr r1, _08026770 @ =gUnk_080CC258 adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] ldrb r0, [r0, #3] 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 _08026770: .4byte gUnk_080CC258 thumb_func_start sub_08026774 sub_08026774: @ 0x08026774 push {r4, lr} sub sp, #4 adds r4, r0, #0 ldr r1, [r4, #0x54] adds r1, #0x83 ldr r0, [r4, #0x50] adds r0, #0x83 ldrb r1, [r1] ldrb r0, [r0] orrs r1, r0 ldr r0, [r4, #0x68] adds r0, #0x83 ldrb r0, [r0] orrs r1, r0 cmp r1, #0 bne _080267C6 adds r2, r4, #0 adds r2, #0x7d ldrb r0, [r2] subs r0, #1 strb r0, [r2] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _080267CC str r1, [sp] adds r0, r4, #0 movs r1, #0x80 movs r2, #0x80 movs r3, #0x40 bl sub_08027B98 adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] movs r0, #1 strb r0, [r1, #3] ldr r0, [r4, #0x54] movs r1, #1 bl sub_080042AC _080267C6: adds r0, r4, #0 bl sub_080277F8 _080267CC: add sp, #4 pop {r4, pc} thumb_func_start sub_080267D0 sub_080267D0: @ 0x080267D0 push {r4, lr} sub sp, #4 adds r4, r0, #0 movs r1, #0xf0 movs r2, #8 bl sub_080277B8 adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] ldrb r0, [r0, #3] cmp r0, #1 beq _08026802 movs r0, #0xff str r0, [sp] adds r0, r4, #0 movs r1, #0xe0 movs r2, #0xc0 movs r3, #0x20 bl sub_08027B98 ldr r0, [r4, #0x54] movs r1, #2 bl sub_080042AC _08026802: add sp, #4 pop {r4, pc} .align 2, 0 thumb_func_start sub_08026808 sub_08026808: @ 0x08026808 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldr r2, [r4, #0x54] ldr r7, [r4, #0x68] ldr r6, [r4, #0x50] adds r1, r2, #0 adds r1, #0x76 ldrh r0, [r1] cmp r0, #0xbf bhi _08026820 adds r0, #4 strh r0, [r1] _08026820: adds r5, r2, #0 adds r5, #0x7a ldrh r0, [r5] cmp r0, #0xb0 bls _08026830 subs r0, #8 strh r0, [r5] b _08026860 _08026830: ldr r1, _08026868 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] movs r0, #4 strb r0, [r4, #0xd] movs r1, #0xa0 strh r1, [r5] adds r0, r6, #0 adds r0, #0x7a strh r1, [r0] adds r0, r7, #0 adds r0, #0x7a strh r1, [r0] adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_080276F4 movs r0, #0xd1 lsls r0, r0, #1 bl sub_080A3268 _08026860: adds r0, r4, #0 bl sub_080277F8 pop {r4, r5, r6, r7, pc} .align 2, 0 _08026868: .4byte gUnk_03001160 thumb_func_start sub_0802686C sub_0802686C: @ 0x0802686C push {r4, r5, lr} sub sp, #4 adds r4, r0, #0 movs r1, #0x80 lsls r1, r1, #7 bl sub_08003FC4 adds r5, r0, #0 cmp r5, #0 beq _08026888 adds r0, r4, #0 bl sub_080AEF88 b _080268BE _08026888: movs r0, #0x10 movs r1, #0 bl sub_08080964 movs r0, #5 strb r0, [r4, #0xd] adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] strb r5, [r0, #3] str r5, [sp] adds r0, r4, #0 movs r1, #0x80 movs r2, #0x80 movs r3, #0x80 bl sub_08027B98 adds r0, r4, #0 bl sub_08027870 ldr r0, [r4, #0x54] movs r1, #3 bl sub_080042AC ldr r0, _080268C4 @ =0x000001A1 bl sub_080A3268 _080268BE: add sp, #4 pop {r4, r5, pc} .align 2, 0 _080268C4: .4byte 0x000001A1 thumb_func_start sub_080268C8 sub_080268C8: @ 0x080268C8 push {r4, lr} adds r4, r0, #0 bl sub_08027AA4 ldr r1, _080268E8 @ =gUnk_080CC264 adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] ldrb r0, [r0, #3] 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 _080268E8: .4byte gUnk_080CC264 thumb_func_start sub_080268EC sub_080268EC: @ 0x080268EC push {r4, lr} adds r4, r0, #0 movs r1, #0xd0 movs r2, #8 bl sub_080277B8 adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] ldrb r0, [r0, #3] cmp r0, #0 beq _08026912 ldr r0, [r4, #0x54] movs r1, #4 bl sub_080042AC adds r0, r4, #0 bl sub_08027D20 _08026912: pop {r4, pc} thumb_func_start sub_08026914 sub_08026914: @ 0x08026914 push {r4, lr} sub sp, #4 adds r4, r0, #0 bl sub_080279E8 cmp r0, #0 beq _08026942 movs r0, #0xff str r0, [sp] adds r0, r4, #0 movs r1, #0x90 movs r2, #0xb0 movs r3, #4 bl sub_08027B98 adds r0, r4, #0 movs r1, #0 bl sub_08027548 ldr r0, [r4, #0x54] movs r1, #0 bl sub_080042AC _08026942: adds r0, r4, #0 bl sub_080277F8 add sp, #4 pop {r4, pc} thumb_func_start sub_0802694C sub_0802694C: @ 0x0802694C push {lr} ldr r2, _08026964 @ =gUnk_080CC26C adds r1, r0, #0 adds r1, #0x84 ldr r1, [r1] ldrb r1, [r1, #3] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08026964: .4byte gUnk_080CC26C thumb_func_start sub_08026968 sub_08026968: @ 0x08026968 push {r4, r5, r6, lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x7d ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _0802698C adds r0, r2, #0 adds r0, #0x84 ldr r1, [r0] ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] b _080269C0 _0802698C: ldr r6, [r2, #0x54] ldr r4, [r2, #0x68] ldr r5, [r2, #0x50] ldrb r1, [r2, #0x15] movs r0, #0x10 ands r0, r1 ldr r3, _080269C8 @ =0xFFFFFF00 cmp r0, #0 beq _080269A2 movs r3, #0x80 lsls r3, r3, #1 _080269A2: adds r1, r4, #0 adds r1, #0x82 ldrh r0, [r1] adds r0, r0, r3 strh r0, [r1] adds r1, r5, #0 adds r1, #0x82 ldrh r0, [r1] adds r0, r0, r3 strh r0, [r1] adds r1, r6, #0 adds r1, #0x82 ldrh r0, [r1] adds r0, r0, r3 strh r0, [r1] _080269C0: adds r0, r2, #0 bl sub_08027870 pop {r4, r5, r6, pc} .align 2, 0 _080269C8: .4byte 0xFFFFFF00 thumb_func_start sub_080269CC sub_080269CC: @ 0x080269CC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r6, r0, #0 movs r7, #0 ldr r5, [r6, #0x54] ldr r0, [r6, #0x68] mov sl, r0 ldr r1, [r6, #0x50] mov sb, r1 ldrb r1, [r6, #0x15] movs r0, #0x10 ands r0, r1 movs r1, #0xc0 lsls r1, r1, #2 mov r8, r1 cmp r0, #0 beq _080269F8 ldr r0, _08026A18 @ =0xFFFFFD00 mov r8, r0 _080269F8: mov r0, sl adds r0, #0x83 ldrb r0, [r0] adds r4, r0, #0 adds r4, #0x20 lsls r0, r4, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x3f bhi _08026A1C mov r1, sl adds r1, #0x82 ldrh r0, [r1] add r0, r8 strh r0, [r1] b _08026A1E .align 2, 0 _08026A18: .4byte 0xFFFFFD00 _08026A1C: movs r7, #1 _08026A1E: mov r0, sb adds r0, #0x83 ldrb r0, [r0] adds r4, r0, #0 adds r4, #0x44 lsls r0, r4, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x87 bhi _08026A3C mov r1, sb adds r1, #0x82 ldrh r0, [r1] add r0, r8 strh r0, [r1] b _08026A3E _08026A3C: adds r7, #1 _08026A3E: adds r0, r5, #0 adds r0, #0x83 ldrb r0, [r0] adds r4, r0, #0 adds r4, #0x40 adds r0, #0x20 cmp r0, #0x40 bls _08026A7E ldrb r1, [r6, #0x15] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08026A6C adds r0, r5, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #6 beq _08026A7E adds r0, r5, #0 movs r1, #6 bl sub_080042AC b _08026A7E _08026A6C: adds r0, r5, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #5 beq _08026A7E adds r0, r5, #0 movs r1, #5 bl sub_080042AC _08026A7E: lsls r0, r4, #0x18 cmp r0, #0 blt _08026A90 adds r1, r5, #0 adds r1, #0x82 ldrh r0, [r1] add r0, r8 strh r0, [r1] b _08026A92 _08026A90: adds r7, #1 _08026A92: cmp r7, #3 beq _08026A98 b _08026BB8 _08026A98: ldrb r1, [r6, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r6, #0x10] ldrb r1, [r5, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r5, #0x10] adds r1, r5, #0 adds r1, #0x76 ldrh r0, [r1] adds r0, #3 strh r0, [r1] movs r0, #0x20 movs r1, #0 bl sub_08080964 ldr r0, _08026B24 @ =0x0000010B bl sub_080A3268 adds r0, r6, #0 movs r1, #0x15 movs r2, #0 movs r3, #0 bl sub_080A2988 adds r4, r0, #0 cmp r4, #0 beq _08026B4E movs r0, #0xc9 strh r0, [r4, #0x12] adds r1, r4, #0 adds r1, #0x58 movs r0, #1 strb r0, [r1] ldrh r0, [r4, #0x32] adds r0, #0x10 strh r0, [r4, #0x32] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] ldrb r2, [r5, #0x19] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r3, [r4, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r3 orrs r0, r2 strb r0, [r4, #0x19] ldrb r0, [r5, #0x1b] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r4, #0x1b] ands r1, r2 orrs r1, r0 strb r1, [r4, #0x1b] ldrb r1, [r6, #0x15] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08026B28 ldrh r0, [r4, #0x2e] subs r0, #0x38 b _08026B2C .align 2, 0 _08026B24: .4byte 0x0000010B _08026B28: ldrh r0, [r4, #0x2e] adds r0, #0x38 _08026B2C: strh r0, [r4, #0x2e] adds r0, r4, #0 movs r1, #0x3e bl sub_080ADF80 ldrb r0, [r6, #0xb] cmp r0, #0 bne _08026B46 adds r0, r4, #0 movs r1, #0x2b bl sub_0801D040 b _08026B4E _08026B46: adds r0, r4, #0 movs r1, #0x2c bl sub_0801D040 _08026B4E: ldr r3, [r6, #0x50] ldr r2, [r6, #0x54] ldr r0, [r6, #0x68] adds r0, #0x84 movs r1, #1 strb r1, [r0] adds r2, #0x84 strb r1, [r2] adds r3, #0x84 strb r1, [r3] mov r0, sb adds r0, #0x7a movs r1, #0x98 strh r1, [r0] mov r0, sl adds r0, #0x7a strh r1, [r0] adds r0, r5, #0 adds r0, #0x7a strh r1, [r0] bl sub_08000E50 ldr r2, _08026BB4 @ =gUnk_080CC278 movs r1, #3 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] adds r7, r6, #0 adds r7, #0x7c strb r0, [r7] adds r0, r6, #0 adds r0, #0x84 ldr r1, [r0] ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] adds r0, r5, #0 movs r1, #0x49 movs r2, #0xa movs r3, #0 bl sub_080A2988 adds r4, r0, #0 cmp r4, #0 beq _08026BD4 adds r1, r4, #0 adds r1, #0x84 ldrb r0, [r7] str r0, [r1] b _08026BD4 .align 2, 0 _08026BB4: .4byte gUnk_080CC278 _08026BB8: adds r0, r5, #0 adds r0, #0x76 ldrh r0, [r0] cmp r0, #0xef bhi _08026BD4 ldr r0, [r5, #0x74] movs r1, #0x80 lsls r1, r1, #0xb adds r0, r0, r1 str r0, [r5, #0x74] ldr r0, [r5, #0x78] ldr r1, _08026BE4 @ =0xFFFF8000 adds r0, r0, r1 str r0, [r5, #0x78] _08026BD4: adds r0, r6, #0 bl sub_08027870 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _08026BE4: .4byte 0xFFFF8000 thumb_func_start sub_08026BE8 sub_08026BE8: @ 0x08026BE8 push {r4, r5, lr} adds r4, r0, #0 ldr r5, [r4, #0x54] adds r3, r5, #0 adds r3, #0x3b ldrb r1, [r3] movs r0, #0xfe ands r0, r1 strb r0, [r3] adds r1, r4, #0 adds r1, #0x7c ldrb r0, [r1] adds r2, r0, #0 cmp r2, #0 bne _08026C34 movs r0, #7 strb r0, [r4, #0xd] adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] strb r2, [r0, #3] adds r1, #1 movs r0, #0x2d strb r0, [r1] ldrb r1, [r5, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r5, #0x10] ldrb r0, [r3] movs r1, #1 orrs r0, r1 strb r0, [r3] ldr r0, _08026C30 @ =0x00000155 bl sub_080A3268 b _08026C38 .align 2, 0 _08026C30: .4byte 0x00000155 _08026C34: subs r0, #1 strb r0, [r1] _08026C38: adds r0, r4, #0 bl sub_08027870 pop {r4, r5, pc} thumb_func_start sub_08026C40 sub_08026C40: @ 0x08026C40 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #4 adds r5, r0, #0 ldr r4, [r5, #0x54] ldr r7, [r5, #0x68] ldr r6, [r5, #0x50] adds r2, r5, #0 adds r2, #0x7d ldrb r0, [r2] cmp r0, #0 beq _08026CCC subs r1, r0, #1 strb r1, [r2] lsls r0, r1, #0x18 cmp r0, #0 beq _08026C9C movs r0, #8 ands r1, r0 cmp r1, #0 beq _08026C82 ldr r0, [r4, #0x74] movs r1, #0x80 lsls r1, r1, #0xa adds r0, r0, r1 str r0, [r4, #0x74] ldr r0, [r4, #0x78] movs r2, #0x80 lsls r2, r2, #9 adds r0, r0, r2 str r0, [r4, #0x78] b _08026E12 _08026C82: ldr r0, [r4, #0x74] ldr r3, _08026C94 @ =0xFFFE0000 adds r0, r0, r3 str r0, [r4, #0x74] ldr r0, [r4, #0x78] ldr r1, _08026C98 @ =0xFFFF0000 adds r0, r0, r1 str r0, [r4, #0x78] b _08026E12 .align 2, 0 _08026C94: .4byte 0xFFFE0000 _08026C98: .4byte 0xFFFF0000 _08026C9C: ldrb r1, [r5, #0x15] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08026CBA adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #8 beq _08026CCC adds r0, r4, #0 movs r1, #8 bl sub_080042AC b _08026CCC _08026CBA: adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #7 beq _08026CCC adds r0, r4, #0 movs r1, #7 bl sub_080042AC _08026CCC: adds r0, r5, #0 adds r0, #0x7c ldrb r1, [r0] mov r8, r0 cmp r1, #0 bne _08026CF0 ldrb r1, [r5, #0x15] movs r0, #0x10 ands r0, r1 ldr r2, _08026CEC @ =0xFFFFFD00 cmp r0, #0 beq _08026D00 movs r2, #0xc0 lsls r2, r2, #2 b _08026D00 .align 2, 0 _08026CEC: .4byte 0xFFFFFD00 _08026CF0: ldrb r1, [r5, #0x15] movs r0, #0x10 ands r0, r1 ldr r2, _08026D30 @ =0xFFFFFB80 cmp r0, #0 beq _08026D00 movs r2, #0x90 lsls r2, r2, #3 _08026D00: adds r0, r7, #0 adds r0, #0x83 ldrb r0, [r0] adds r0, #6 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xc bls _08026D34 adds r1, r7, #0 adds r1, #0x82 lsls r0, r2, #1 ldrh r3, [r1] adds r0, r0, r3 strh r0, [r1] adds r1, r6, #0 adds r1, #0x82 ldrh r0, [r1] adds r0, r0, r2 strh r0, [r1] adds r1, r4, #0 adds r1, #0x82 ldrh r0, [r1] b _08026D7E .align 2, 0 _08026D30: .4byte 0xFFFFFB80 _08026D34: adds r0, r7, #0 adds r0, #0x82 movs r1, #0 strh r1, [r0] adds r0, r6, #0 adds r0, #0x83 ldrb r0, [r0] adds r0, #6 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xc bls _08026D60 adds r1, r6, #0 adds r1, #0x82 lsls r0, r2, #1 ldrh r3, [r1] adds r0, r0, r3 strh r0, [r1] adds r1, r4, #0 adds r1, #0x82 ldrh r0, [r1] b _08026D7E _08026D60: adds r0, r6, #0 adds r0, #0x82 strh r1, [r0] adds r0, r4, #0 adds r0, #0x83 ldrb r0, [r0] adds r0, #6 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xc bls _08026D84 adds r1, r4, #0 adds r1, #0x82 lsls r0, r2, #1 ldrh r2, [r1] _08026D7E: adds r0, r0, r2 strh r0, [r1] b _08026D8A _08026D84: adds r0, r4, #0 adds r0, #0x82 strh r1, [r0] _08026D8A: adds r1, r4, #0 adds r1, #0x76 ldrh r0, [r1] cmp r0, #0xa0 bls _08026DA4 ldr r0, [r4, #0x74] ldr r3, _08026DA0 @ =0xFFFC0000 adds r0, r0, r3 str r0, [r4, #0x74] b _08026DA8 .align 2, 0 _08026DA0: .4byte 0xFFFC0000 _08026DA4: movs r0, #0xa0 strh r0, [r1] _08026DA8: adds r0, r4, #0 adds r0, #0x7a ldrh r0, [r0] cmp r0, #0x9f bhi _08026DBE ldr r0, [r4, #0x78] movs r1, #0x80 lsls r1, r1, #8 adds r0, r0, r1 str r0, [r4, #0x78] b _08026E0C _08026DBE: adds r0, r5, #0 movs r1, #3 movs r2, #0 bl sub_080276F4 adds r0, r4, #0 adds r0, #0x7d movs r2, #0 strb r2, [r0] ldrb r1, [r5, #0x15] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08026DEE adds r1, r6, #0 adds r1, #0x85 movs r0, #1 strb r0, [r1] adds r1, r7, #0 adds r1, #0x85 strb r0, [r1] adds r1, r4, #0 adds r1, #0x85 strb r0, [r1] _08026DEE: movs r0, #8 strb r0, [r5, #0xd] movs r0, #4 mov r3, r8 strb r0, [r3] strb r2, [r6, #0xf] strb r2, [r7, #0xf] strb r2, [r4, #0xf] str r2, [sp] adds r0, r5, #0 movs r1, #0x90 movs r2, #0xb0 movs r3, #0x10 bl sub_08027B98 _08026E0C: adds r0, r5, #0 bl sub_08027870 _08026E12: add sp, #4 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08026E1C sub_08026E1C: @ 0x08026E1C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #4 adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x7c ldrb r0, [r1] adds r6, r0, #0 cmp r6, #0 bne _08026EE0 ldr r0, [r4, #0x54] ldrb r0, [r0, #0xf] ldr r1, [r4, #0x50] ldrb r1, [r1, #0xf] ldr r2, [r4, #0x68] adds r0, r0, r1 ldrb r2, [r2, #0xf] adds r0, r0, r2 cmp r0, #0xa ble _08026EF2 ldrb r0, [r4, #0x10] movs r1, #0x80 mov r8, r1 movs r7, #0 mov r1, r8 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 bl sub_08027C54 adds r5, r4, #0 adds r5, #0x84 cmp r0, #0 beq _08026E72 ldr r1, [r5] ldrb r0, [r1, #4] adds r0, #1 strb r0, [r1, #4] ldr r0, [r4, #0x54] adds r0, #0x45 movs r1, #0xff strb r1, [r0] _08026E72: ldr r1, [r5] ldrb r0, [r1, #4] cmp r0, #3 bne _08026EA0 adds r0, r4, #0 adds r0, #0x45 strb r6, [r0] ldrb r0, [r4, #0x10] movs r1, #0x7f ands r1, r0 strb r1, [r4, #0x10] ldr r3, [r4, #0x54] ldr r2, [r4, #0x50] ldr r0, [r4, #0x68] strb r1, [r0, #0x10] ldrb r0, [r4, #0x10] strb r0, [r2, #0x10] strb r0, [r3, #0x10] adds r1, r4, #0 adds r1, #0x3d movs r0, #0xc4 strb r0, [r1] b _08026F14 _08026EA0: movs r0, #4 strb r0, [r1] ldr r1, [r5] movs r0, #0x81 strb r0, [r1, #1] ldrb r0, [r4, #0x10] mov r1, r8 orrs r0, r1 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x7d strb r0, [r1] movs r0, #0xb strb r0, [r4, #0xd] ldr r0, [r5] strb r6, [r0, #3] ldr r0, [r4, #0x54] movs r1, #0 bl sub_080042AC str r6, [sp] adds r0, r4, #0 movs r1, #0x80 movs r2, #0x80 movs r3, #0x80 bl sub_08027B98 ldr r1, [r5] movs r0, #0x21 strb r0, [r1, #1] b _08026EF2 _08026EE0: subs r0, #1 movs r2, #0 strb r0, [r1] adds r1, r4, #0 adds r1, #0x84 ldr r0, [r1] str r2, [r0, #8] ldr r0, [r1] strb r2, [r0, #6] _08026EF2: adds r0, r4, #0 bl sub_08027C54 cmp r0, #0 beq _08026F14 adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] ldrb r0, [r0, #4] cmp r0, #2 bne _08026F14 adds r0, r4, #0 movs r1, #0x3f bl sub_08027C7C bl sub_08078B48 _08026F14: add sp, #4 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08026F1C sub_08026F1C: @ 0x08026F1C push {r4, r5, lr} sub sp, #4 adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x7c ldrb r1, [r5] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08026F70 adds r0, r4, #0 bl sub_080279E8 cmp r0, #0 beq _08026F68 adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] movs r2, #0 strb r2, [r0, #3] ldrb r1, [r5] movs r0, #0xf ands r0, r1 strb r0, [r5] str r2, [sp] adds r0, r4, #0 movs r1, #0x80 movs r2, #0x80 movs r3, #0x80 bl sub_08027B98 ldrb r0, [r5] cmp r0, #2 bne _08026F68 adds r0, r4, #0 movs r1, #0 bl sub_08027548 _08026F68: adds r0, r4, #0 bl sub_080277F8 b _08026FA0 _08026F70: adds r0, r4, #0 movs r1, #0xf0 movs r2, #0x10 bl sub_080277B8 adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] ldrb r0, [r0, #3] cmp r0, #0 beq _08026FA0 ldrb r0, [r5] adds r0, #1 movs r1, #0x80 orrs r0, r1 strb r0, [r5] movs r0, #1 str r0, [sp] adds r0, r4, #0 movs r1, #0xc0 movs r2, #0xc0 movs r3, #0x20 bl sub_08027B98 _08026FA0: add sp, #4 pop {r4, r5, pc} thumb_func_start sub_08026FA4 sub_08026FA4: @ 0x08026FA4 push {r4, r5, lr} adds r4, r0, #0 bl sub_08078B48 ldrb r0, [r4, #0x10] movs r5, #0x7f adds r1, r5, #0 ands r1, r0 strb r1, [r4, #0x10] ldr r3, [r4, #0x54] ldr r2, [r4, #0x50] ldr r0, [r4, #0x68] strb r1, [r0, #0x10] ldrb r0, [r4, #0x10] strb r0, [r2, #0x10] strb r0, [r3, #0x10] adds r3, r4, #0 adds r3, #0x7c ldrb r0, [r3] cmp r0, #0 beq _08026FD2 movs r0, #1 strb r0, [r3] _08026FD2: ldr r2, [r4, #0x54] adds r0, r2, #0 adds r0, #0x7a ldrh r0, [r0] cmp r0, #0x97 bhi _08026FFE movs r1, #0x80 lsls r1, r1, #9 ldrb r0, [r3] lsls r1, r0 ldr r0, [r2, #0x78] adds r0, r0, r1 str r0, [r2, #0x78] ldr r2, [r4, #0x54] movs r1, #0x80 lsls r1, r1, #0xa ldrb r3, [r3] lsls r1, r3 ldr r0, [r2, #0x74] subs r0, r0, r1 str r0, [r2, #0x74] b _0802705C _08026FFE: movs r0, #7 strb r0, [r4, #0xd] ldrb r1, [r2, #0x10] adds r0, r5, #0 ands r0, r1 strb r0, [r2, #0x10] adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] movs r0, #0 strb r0, [r1, #3] adds r1, r4, #0 adds r1, #0x7d movs r0, #0x2d strb r0, [r1] ldr r0, _08027044 @ =0x00000155 bl sub_080A3268 ldrb r1, [r4, #0x15] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08027048 ldr r1, [r4, #0x54] adds r0, r1, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #8 beq _0802705C adds r0, r1, #0 movs r1, #8 bl sub_080042AC b _0802705C .align 2, 0 _08027044: .4byte 0x00000155 _08027048: ldr r1, [r4, #0x54] adds r0, r1, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #7 beq _0802705C adds r0, r1, #0 movs r1, #7 bl sub_080042AC _0802705C: adds r0, r4, #0 bl sub_08027870 pop {r4, r5, pc} thumb_func_start sub_08027064 sub_08027064: @ 0x08027064 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 ldr r6, [r5, #0x54] ldr r0, [r5, #0x68] mov sb, r0 ldr r1, [r5, #0x50] mov r8, r1 movs r0, #0x60 strh r0, [r5, #0x24] adds r0, r6, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0xa beq _08027098 ldr r0, _080270C8 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #0xf ands r0, r1 cmp r0, #0 bne _08027098 movs r0, #0x7c bl sub_080A3268 _08027098: adds r0, r5, #0 adds r0, #0x84 ldr r3, [r0] ldrb r1, [r3, #3] adds r7, r0, #0 cmp r1, #0 beq _080270E0 ldr r0, _080270CC @ =gUnk_03001160 movs r2, #0x32 ldrsh r4, [r5, r2] movs r1, #0x32 ldrsh r2, [r0, r1] cmp r4, r2 beq _080270E0 ldr r0, _080270C8 @ =gUnk_030010A0 ldr r1, [r0] movs r0, #0xf ands r1, r0 cmp r1, #0 bne _080270D4 cmp r4, r2 ble _080270D0 strb r1, [r3, #0xc] b _080270D4 .align 2, 0 _080270C8: .4byte gUnk_030010A0 _080270CC: .4byte gUnk_03001160 _080270D0: movs r0, #0x10 strb r0, [r3, #0xc] _080270D4: ldr r0, [r7] ldrb r0, [r0, #0xc] strb r0, [r5, #0x15] adds r0, r5, #0 bl sub_080AEF88 _080270E0: adds r0, r6, #0 adds r0, #0x85 ldrb r0, [r0] cmp r0, #1 bne _080270FC adds r0, r6, #0 adds r0, #0x83 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bgt _0802710E movs r0, #0x18 b _08027110 _080270FC: adds r0, r6, #0 adds r0, #0x83 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bge _0802710E movs r0, #0x18 b _08027110 _0802710E: movs r0, #8 _08027110: strb r0, [r5, #0x15] ldr r1, [r7] ldrb r0, [r1, #3] cmp r0, #0 bne _08027152 movs r2, #0x2e ldrsh r0, [r5, r2] ldrh r1, [r1, #0xe] cmp r0, r1 bne _0802714A mov r0, r8 adds r0, #0x84 movs r1, #1 strb r1, [r0] mov r0, sb adds r0, #0x84 strb r1, [r0] adds r0, r6, #0 adds r0, #0x84 strb r1, [r0] adds r1, r5, #0 adds r1, #0x7c movs r0, #0x1e strb r0, [r1] ldr r1, [r7] ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] b _080271FE _0802714A: adds r0, r5, #0 bl sub_080AEF88 b _080271FE _08027152: adds r0, r6, #0 adds r0, #0x7d ldrb r0, [r0] cmp r0, #0 beq _080271E6 mov r0, sb adds r0, #0x7d ldrb r0, [r0] cmp r0, #0 beq _080271E6 mov r0, r8 adds r0, #0x7d ldrb r0, [r0] cmp r0, #0 beq _080271E6 adds r1, r5, #0 adds r1, #0x7c ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _080271FE mov r0, r8 adds r0, #0x84 movs r1, #1 strb r1, [r0] mov r0, sb adds r0, #0x84 strb r1, [r0] adds r0, r6, #0 adds r0, #0x84 strb r1, [r0] movs r3, #0 ldr r0, [r7] ldrb r0, [r0, #3] cmp r0, #1 bls _080271B2 ldr r0, _080271DC @ =gUnk_03001160 movs r2, #0x2e ldrsh r1, [r5, r2] movs r2, #0x2e ldrsh r0, [r0, r2] movs r3, #8 cmp r1, r0 ble _080271B2 movs r3, #0x18 _080271B2: ldr r2, [r7] ldrb r1, [r2, #3] cmp r1, #5 beq _080271C0 ldrb r0, [r5, #0x15] cmp r0, r3 bne _080271E0 _080271C0: movs r4, #0 movs r0, #6 strb r0, [r5, #0xd] adds r0, r5, #0 movs r1, #7 movs r2, #1 bl sub_080276F4 ldr r0, [r7] strb r4, [r0, #3] adds r1, r5, #0 adds r1, #0x7d movs r0, #0xf b _080271FC .align 2, 0 _080271DC: .4byte gUnk_03001160 _080271E0: adds r0, r1, #1 strb r0, [r2, #3] b _080271FE _080271E6: ldr r0, [r7] ldrb r0, [r0, #3] cmp r0, #4 beq _080271F6 adds r1, r5, #0 adds r1, #0x7c movs r0, #0x1e b _080271FC _080271F6: adds r1, r5, #0 adds r1, #0x7c movs r0, #0x3c _080271FC: strb r0, [r1] _080271FE: adds r0, r5, #0 bl sub_08027870 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0802720C sub_0802720C: @ 0x0802720C push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldrb r0, [r0, #0xd] strb r0, [r4, #0xd] ldrb r0, [r4, #0xd] cmp r0, #0xc bhi _080272CA lsls r0, r0, #2 ldr r1, _08027228 @ =_0802722C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08027228: .4byte _0802722C _0802722C: @ jump table .4byte _080272C4 @ case 0 .4byte _08027260 @ case 1 .4byte _08027260 @ case 2 .4byte _0802726E @ case 3 .4byte _080272AA @ case 4 .4byte _0802726E @ case 5 .4byte _080272CA @ case 6 .4byte _080272CA @ case 7 .4byte _08027282 @ case 8 .4byte _080272CA @ case 9 .4byte _080272A0 @ case 10 .4byte _080272CA @ case 11 .4byte _08027260 @ case 12 _08027260: adds r1, r4, #0 adds r1, #0x7a movs r0, #0xa0 strh r0, [r1] subs r1, #4 strh r0, [r1] b _080272AA _0802726E: adds r0, r4, #0 adds r0, #0x83 ldrb r0, [r0] cmp r0, #0 beq _080272CA adds r1, r4, #0 adds r1, #0x7d movs r0, #0 strb r0, [r1] b _080272AA _08027282: ldrb r0, [r4, #0xf] cmp r0, #3 bhi _080272CA adds r0, r4, #0 bl sub_0802757C adds r0, r4, #0 adds r0, #0x83 ldrb r0, [r0] cmp r0, #0 bne _080272CA ldrb r0, [r4, #0xf] adds r0, #1 strb r0, [r4, #0xf] b _080272CA _080272A0: adds r2, r4, #0 adds r2, #0x7d ldrb r0, [r2] cmp r0, #0 bne _080272B2 _080272AA: adds r0, r4, #0 bl sub_0802757C b _080272CA _080272B2: adds r1, r4, #0 adds r1, #0x84 ldrb r0, [r1] cmp r0, #0 beq _080272CA movs r0, #0 strb r0, [r2] strb r0, [r1] b _080272CA _080272C4: adds r0, r4, #0 bl sub_0802757C _080272CA: ldr r0, [r4, #0x50] ldr r0, [r0, #0x34] str r0, [r4, #0x34] pop {r4, pc} .align 2, 0 thumb_func_start sub_080272D4 sub_080272D4: @ 0x080272D4 push {r4, r5, r6, lr} adds r6, r0, #0 ldr r0, [r6, #0x50] ldrb r0, [r0, #0xd] cmp r0, #0xc bls _080272E2 b _08027532 _080272E2: lsls r0, r0, #2 ldr r1, _080272EC @ =_080272F0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080272EC: .4byte _080272F0 _080272F0: @ jump table .4byte _08027508 @ case 0 .4byte _08027324 @ case 1 .4byte _08027324 @ case 2 .4byte _08027332 @ case 3 .4byte _0802733E @ case 4 .4byte _08027332 @ case 5 .4byte _08027368 @ case 6 .4byte _08027532 @ case 7 .4byte _08027346 @ case 8 .4byte _08027454 @ case 9 .4byte _0802748C @ case 10 .4byte _08027532 @ case 11 .4byte _08027324 @ case 12 _08027324: adds r1, r6, #0 adds r1, #0x7a movs r0, #0xa0 strh r0, [r1] subs r1, #4 strh r0, [r1] b _0802733E _08027332: adds r0, r6, #0 adds r0, #0x83 ldrb r0, [r0] cmp r0, #0 bne _0802733E b _08027532 _0802733E: adds r0, r6, #0 bl sub_0802757C b _08027532 _08027346: ldrb r0, [r6, #0xf] cmp r0, #2 bls _0802734E b _08027532 _0802734E: adds r0, r6, #0 bl sub_0802757C adds r0, r6, #0 adds r0, #0x83 ldrb r0, [r0] cmp r0, #0 beq _08027360 b _08027532 _08027360: ldrb r0, [r6, #0xf] adds r0, #1 strb r0, [r6, #0xf] b _08027532 _08027368: ldr r5, [r6, #0x48] adds r0, r6, #0 adds r0, #0x7a ldrh r1, [r0] movs r4, #0x80 lsls r4, r4, #9 adds r0, r4, #0 bl __divsi3 lsls r1, r0, #3 adds r1, r1, r0 lsrs r1, r1, #7 strb r1, [r5, #6] ldr r5, [r6, #0x48] adds r0, r6, #0 adds r0, #0x76 ldrh r1, [r0] adds r0, r4, #0 bl __divsi3 lsls r1, r0, #2 adds r1, r1, r0 lsrs r1, r1, #6 strb r1, [r5, #7] adds r0, r6, #0 adds r0, #0x84 ldrb r0, [r0] cmp r0, #0 bne _080273A4 b _08027532 _080273A4: adds r0, r6, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08027444 adds r2, r6, #0 adds r2, #0x3d ldrb r1, [r2] movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08027444 ldr r0, [r6, #0x54] ldr r0, [r0, #0x68] adds r0, #0x3d strb r1, [r0] ldr r0, [r6, #0x54] ldr r0, [r0, #0x50] ldrb r1, [r2] adds r0, #0x3d strb r1, [r0] ldr r0, [r6, #0x54] ldrb r1, [r2] adds r0, #0x3d strb r1, [r0] ldr r0, [r6, #0x54] bl sub_08027D20 adds r2, r0, #0 cmp r2, #0 beq _08027406 ldrh r0, [r6, #0x2e] adds r0, #1 strh r0, [r2, #0x2e] adds r0, r6, #0 adds r0, #0x63 ldrb r0, [r0] adds r0, #0x20 adds r1, r2, #0 adds r1, #0x63 strb r0, [r1] adds r0, r6, #0 adds r0, #0x62 ldrb r1, [r0] adds r0, r2, #0 adds r0, #0x62 strb r1, [r0] _08027406: ldr r0, [r6, #0x54] bl sub_08027C54 cmp r0, #0 beq _0802741C ldr r0, [r6, #0x54] adds r0, #0x84 ldr r0, [r0] ldrb r0, [r0, #4] cmp r0, #2 beq _08027428 _0802741C: ldr r0, _08027424 @ =0x00000127 bl sub_080A3268 b _08027444 .align 2, 0 _08027424: .4byte 0x00000127 _08027428: bl sub_08078B48 ldr r0, _0802744C @ =gUnk_03000BF0 ldr r2, [r6, #0x54] str r2, [r0, #0x30] ldr r1, _08027450 @ =gUnk_02034490 movs r0, #1 strb r0, [r1] movs r0, #9 strb r0, [r2, #0xd] movs r0, #0x94 lsls r0, r0, #1 bl sub_080A3268 _08027444: adds r0, r6, #0 bl sub_08027A60 b _08027484 .align 2, 0 _0802744C: .4byte gUnk_03000BF0 _08027450: .4byte gUnk_02034490 _08027454: ldr r5, [r6, #0x48] adds r0, r6, #0 adds r0, #0x7a ldrh r1, [r0] movs r4, #0x80 lsls r4, r4, #9 adds r0, r4, #0 bl __divsi3 lsls r1, r0, #3 adds r1, r1, r0 lsrs r1, r1, #7 strb r1, [r5, #6] ldr r5, [r6, #0x48] adds r0, r6, #0 adds r0, #0x76 ldrh r1, [r0] adds r0, r4, #0 bl __divsi3 lsls r1, r0, #2 adds r1, r1, r0 lsrs r1, r1, #6 strb r1, [r5, #7] _08027484: adds r0, r6, #0 bl sub_0800445C b _08027532 _0802748C: adds r2, r6, #0 adds r2, #0x7d ldrb r0, [r2] cmp r0, #0 bne _0802749E adds r0, r6, #0 bl sub_0802757C b _080274AE _0802749E: adds r1, r6, #0 adds r1, #0x84 ldrb r0, [r1] cmp r0, #0 beq _080274AE movs r0, #0 strb r0, [r2] strb r0, [r1] _080274AE: adds r2, r6, #0 adds r2, #0x83 adds r0, r6, #0 adds r0, #0x81 ldrb r1, [r0] lsrs r0, r1, #1 ldrb r2, [r2] adds r0, r2, r0 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, r1 bls _080274F4 lsls r0, r2, #0x18 cmp r0, #0 ble _080274E0 adds r0, r6, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0xc beq _08027532 adds r0, r6, #0 movs r1, #0xc bl sub_080042AC b _08027532 _080274E0: adds r0, r6, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0xb beq _08027532 adds r0, r6, #0 movs r1, #0xb bl sub_080042AC b _08027532 _080274F4: adds r0, r6, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0xa beq _08027532 adds r0, r6, #0 movs r1, #0xa bl sub_080042AC b _08027532 _08027508: ldr r0, [r6, #0x54] adds r0, #0x84 ldr r0, [r0] ldrb r0, [r0, #3] cmp r0, #8 bne _08027532 adds r0, r6, #0 bl sub_0802757C adds r0, r6, #0 adds r0, #0x7d ldrb r0, [r0] cmp r0, #1 bne _08027532 adds r1, r6, #0 adds r1, #0x81 ldrb r0, [r1] cmp r0, #0 beq _08027532 subs r0, #4 strb r0, [r1] _08027532: ldr r0, [r6, #0x50] ldr r0, [r0, #0x34] str r0, [r6, #0x34] adds r1, r6, #0 adds r1, #0x41 movs r0, #0 strb r0, [r1] adds r0, r6, #0 bl sub_080042B8 pop {r4, r5, r6, pc} thumb_func_start sub_08027548 sub_08027548: @ 0x08027548 push {r4, r5, r6, lr} sub sp, #4 adds r4, r0, #0 adds r6, r1, #0 movs r5, #0 movs r0, #1 strb r0, [r4, #0xd] movs r0, #0xff str r0, [sp] adds r0, r4, #0 movs r1, #0x90 movs r2, #0xb0 movs r3, #8 bl sub_08027B98 adds r0, r4, #0 adds r0, #0x7d strb r5, [r0] adds r0, r4, #0 movs r1, #0 adds r2, r6, #0 bl sub_080276F4 add sp, #4 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0802757C sub_0802757C: @ 0x0802757C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r5, r0, #0 adds r6, r5, #0 adds r6, #0x7d ldrb r1, [r6] cmp r1, #0 beq _080275BA ldrb r0, [r5, #0xa] cmp r0, #1 beq _080275AE ldr r0, [r5, #0x54] adds r0, #0x7d ldrb r0, [r0] movs r1, #0x83 adds r1, r1, r5 mov sl, r1 cmp r0, #0 beq _08027676 movs r0, #0 strb r0, [r6] b _08027676 _080275AE: subs r0, r1, #1 strb r0, [r6] movs r2, #0x83 adds r2, r2, r5 mov sl, r2 b _08027676 _080275BA: movs r0, #0x85 adds r0, r0, r5 mov ip, r0 ldrb r1, [r0] mov sb, r1 cmp r1, #1 bne _0802761E adds r1, r5, #0 adds r1, #0x82 adds r0, r5, #0 adds r0, #0x86 ldrh r0, [r0] ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] adds r0, r5, #0 adds r0, #0x83 adds r2, r5, #0 adds r2, #0x81 movs r4, #0 ldrsb r4, [r0, r4] movs r3, #0 ldrsb r3, [r2, r3] mov r8, r1 mov sl, r0 adds r7, r2, #0 cmp r4, r3 blt _08027676 movs r0, #0 mov r1, ip strb r0, [r1] ldrb r0, [r5, #0xa] cmp r0, #1 bne _08027616 ldr r1, [r5, #0x50] adds r0, r1, #0 adds r0, #0x81 ldrb r0, [r0] lsls r0, r0, #8 adds r1, #0x86 ldrh r1, [r1] bl __divsi3 adds r0, #1 strb r0, [r6] b _0802761A _08027616: mov r2, sb strb r2, [r6] _0802761A: ldrb r0, [r7] b _08027670 _0802761E: adds r2, r5, #0 adds r2, #0x82 adds r1, r5, #0 adds r1, #0x86 ldrh r0, [r2] ldrh r1, [r1] subs r0, r0, r1 strh r0, [r2] adds r1, r5, #0 adds r1, #0x83 movs r4, #0 ldrsb r4, [r1, r4] adds r0, r5, #0 adds r0, #0x81 ldrb r3, [r0] mov r8, r2 mov sl, r1 adds r7, r0, #0 cmn r4, r3 bgt _08027676 movs r1, #1 mov r2, ip strb r1, [r2] ldrb r0, [r5, #0xa] cmp r0, #1 bne _0802766A ldr r1, [r5, #0x50] adds r0, r1, #0 adds r0, #0x81 ldrb r0, [r0] lsls r0, r0, #8 adds r1, #0x86 ldrh r1, [r1] bl __divsi3 adds r0, #1 strb r0, [r6] b _0802766C _0802766A: strb r1, [r6] _0802766C: ldrb r0, [r7] rsbs r0, r0, #0 _08027670: lsls r0, r0, #8 mov r1, r8 strh r0, [r1] _08027676: ldr r2, [r5, #0x50] adds r0, r2, #0 adds r0, #0x63 movs r1, #0 ldrsb r1, [r0, r1] lsls r1, r1, #0x10 ldr r0, [r2, #0x30] adds r0, r0, r1 str r0, [r5, #0x30] adds r0, r2, #0 adds r0, #0x62 movs r1, #0 ldrsb r1, [r0, r1] lsls r1, r1, #0x10 ldr r0, [r2, #0x2c] adds r0, r0, r1 str r0, [r5, #0x2c] ldrb r1, [r5, #0xe] lsls r1, r1, #8 mov r0, sl ldrb r2, [r0] adds r0, r5, #0 bl sub_0806F62C ldrb r0, [r5, #0xa] cmp r0, #1 beq _080276D2 ldr r1, [r5, #0x54] ldr r0, [r5, #0x30] str r0, [r1, #0x30] ldr r1, [r5, #0x54] ldr r0, [r5, #0x2c] str r0, [r1, #0x2c] ldr r0, [r5, #0x54] ldrb r1, [r0, #0xe] lsls r1, r1, #8 adds r2, r0, #0 adds r2, #0x83 ldrb r2, [r2] bl sub_0806F62C ldr r0, [r5, #0x68] ldr r1, [r5, #0x54] ldrb r2, [r1, #0xa] bl sub_080279AC _080276D2: ldr r0, [r5, #0x68] ldrb r2, [r5, #0xa] adds r1, r5, #0 bl sub_080279AC mov r1, sl ldrb r0, [r1] rsbs r0, r0, #0 adds r1, r5, #0 adds r1, #0x7f strb r0, [r1] pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080276F4 sub_080276F4: @ 0x080276F4 push {r4, r5, r6, r7, lr} adds r6, r2, #0 ldr r5, [r0, #0x54] ldr r4, [r0, #0x68] ldr r0, [r0, #0x50] mov ip, r0 adds r0, #0x84 movs r2, #0 strb r2, [r0] adds r0, r4, #0 adds r0, #0x84 strb r2, [r0] adds r0, r5, #0 adds r0, #0x84 strb r2, [r0] mov r0, ip adds r0, #0x7e movs r7, #0 strh r2, [r0] adds r0, r4, #0 adds r0, #0x7e strh r2, [r0] adds r0, r5, #0 adds r0, #0x7e strh r2, [r0] mov r0, ip adds r0, #0x7d strb r7, [r0] adds r0, r4, #0 adds r0, #0x7d strb r7, [r0] ldr r0, _080277AC @ =gUnk_080CC27C lsls r1, r1, #2 adds r0, r1, r0 ldrh r2, [r0] adds r3, r5, #0 adds r3, #0x86 strh r2, [r3] ldrb r0, [r0, #2] adds r2, r5, #0 adds r2, #0x81 strb r0, [r2] ldr r0, _080277B0 @ =gUnk_080CC2BC adds r0, r1, r0 ldrh r2, [r0] adds r3, r4, #0 adds r3, #0x86 strh r2, [r3] ldrb r0, [r0, #2] adds r2, r4, #0 adds r2, #0x81 strb r0, [r2] ldr r0, _080277B4 @ =gUnk_080CC29C adds r1, r1, r0 ldrh r0, [r1] mov r2, ip adds r2, #0x86 strh r0, [r2] ldrb r0, [r1, #2] mov r1, ip adds r1, #0x81 strb r0, [r1] cmp r6, #0 bne _080277AA mov r0, ip adds r0, #0x85 strb r7, [r0] adds r0, r4, #0 adds r0, #0x85 strb r7, [r0] adds r0, r5, #0 adds r0, #0x85 strb r7, [r0] mov r0, ip adds r0, #0x82 strh r6, [r0] adds r0, r4, #0 adds r0, #0x82 strh r6, [r0] adds r0, r5, #0 adds r0, #0x82 strh r6, [r0] ldrb r0, [r1] lsls r0, r0, #7 ldrh r1, [r2] bl __divsi3 adds r0, #1 adds r1, r5, #0 adds r1, #0x7d strb r0, [r1] _080277AA: pop {r4, r5, r6, r7, pc} .align 2, 0 _080277AC: .4byte gUnk_080CC27C _080277B0: .4byte gUnk_080CC2BC _080277B4: .4byte gUnk_080CC29C thumb_func_start sub_080277B8 sub_080277B8: @ 0x080277B8 push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 ldr r1, [r5, #0x54] adds r3, r1, #0 adds r3, #0x7a ldrh r0, [r3] cmp r4, r0 bls _080277DC adds r0, r0, r2 strh r0, [r3] ldr r0, [r1, #0x74] ldr r2, _080277D8 @ =0xFFFE8000 adds r0, r0, r2 str r0, [r1, #0x74] b _080277F0 .align 2, 0 _080277D8: .4byte 0xFFFE8000 _080277DC: strh r4, [r3] adds r1, #0x7c movs r0, #8 strb r0, [r1] adds r0, r5, #0 adds r0, #0x84 ldr r1, [r0] ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] _080277F0: adds r0, r5, #0 bl sub_080277F8 pop {r4, r5, pc} thumb_func_start sub_080277F8 sub_080277F8: @ 0x080277F8 push {r4, r5, r6, r7, lr} adds r6, r0, #0 ldr r3, [r6, #0x54] ldr r5, [r6, #0x68] ldr r4, [r6, #0x50] ldrh r2, [r6, #0x2e] strh r2, [r5, #0x2e] movs r7, #0xe strb r7, [r5, #0xe] ldrh r0, [r6, #0x32] subs r0, #0xe strh r0, [r5, #0x32] strh r2, [r4, #0x2e] movs r0, #0x7a adds r0, r0, r3 mov ip, r0 ldrh r1, [r0] subs r1, #0xa0 asrs r1, r1, #4 movs r0, #0x12 subs r0, r0, r1 strb r0, [r4, #0xe] ldrb r1, [r4, #0xe] ldrh r0, [r5, #0x32] subs r0, r0, r1 strh r0, [r4, #0x32] strh r2, [r3, #0x2e] mov r1, ip ldrh r0, [r1] cmp r0, #0xa0 bls _0802784E subs r0, #0xa0 asrs r0, r0, #2 movs r1, #0xe subs r1, r1, r0 strb r1, [r3, #0xe] movs r0, #0x80 ands r1, r0 cmp r1, #0 beq _08027850 movs r0, #0 strb r0, [r3, #0xe] b _08027850 _0802784E: strb r7, [r3, #0xe] _08027850: ldrb r1, [r3, #0xe] ldrh r0, [r4, #0x32] subs r0, r0, r1 strh r0, [r3, #0x32] ldr r0, [r3, #0x74] str r0, [r4, #0x74] ldr r0, [r3, #0x78] str r0, [r4, #0x78] ldr r0, [r3, #0x74] str r0, [r5, #0x74] ldr r0, [r3, #0x78] str r0, [r5, #0x78] adds r0, r6, #0 bl sub_08027984 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08027870 sub_08027870: @ 0x08027870 push {r4, r5, r6, r7, lr} adds r7, r0, #0 ldr r4, [r7, #0x54] ldr r5, [r7, #0x68] ldr r6, [r7, #0x50] ldr r0, [r4, #0x74] str r0, [r6, #0x74] ldr r0, [r4, #0x78] str r0, [r6, #0x78] ldr r0, [r4, #0x74] str r0, [r5, #0x74] ldr r0, [r4, #0x78] str r0, [r5, #0x78] adds r0, r4, #0 adds r0, #0x83 ldrb r0, [r0] rsbs r0, r0, #0 adds r1, r4, #0 adds r1, #0x7f strb r0, [r1] adds r0, r5, #0 adds r0, #0x83 ldrb r0, [r0] rsbs r0, r0, #0 adds r1, r5, #0 adds r1, #0x7f strb r0, [r1] adds r0, r6, #0 adds r0, #0x83 ldrb r0, [r0] rsbs r0, r0, #0 adds r1, r6, #0 adds r1, #0x7f strb r0, [r1] adds r1, r5, #0 adds r1, #0x7a ldrh r0, [r1] cmp r0, #0xa0 bls _080278C2 movs r0, #0xe b _080278CC _080278C2: ldrh r1, [r1] movs r0, #0xa0 subs r0, r0, r1 asrs r0, r0, #3 adds r0, #0xe _080278CC: strb r0, [r5, #0xe] adds r1, r6, #0 adds r1, #0x7a ldrh r0, [r1] cmp r0, #0xa0 bls _080278EA adds r2, r4, #0 adds r2, #0x7a ldrh r1, [r2] subs r1, #0xa0 asrs r1, r1, #4 movs r0, #0x12 subs r0, r0, r1 strb r0, [r6, #0xe] b _080278FA _080278EA: ldrh r1, [r1] movs r0, #0xa0 subs r0, r0, r1 asrs r0, r0, #2 adds r0, #0x12 strb r0, [r6, #0xe] adds r2, r4, #0 adds r2, #0x7a _080278FA: adds r0, r2, #0 ldrh r1, [r0] cmp r1, #0xa0 bls _0802791A adds r0, r1, #0 subs r0, #0xa0 asrs r0, r0, #2 movs r1, #0xe subs r1, r1, r0 strb r1, [r4, #0xe] movs r0, #0x80 ands r1, r0 cmp r1, #0 beq _08027934 movs r0, #0 b _08027932 _0802791A: cmp r1, #0x7f bhi _08027928 ldrh r1, [r0] movs r0, #0xa0 subs r0, r0, r1 asrs r0, r0, #2 b _08027930 _08027928: ldrh r1, [r2] movs r0, #0xa0 subs r0, r0, r1 asrs r0, r0, #1 _08027930: adds r0, #0xe _08027932: strb r0, [r4, #0xe] _08027934: ldr r0, [r7, #0x2c] str r0, [r5, #0x2c] ldr r0, [r7, #0x30] str r0, [r5, #0x30] ldrb r1, [r5, #0xe] lsls r1, r1, #8 adds r0, r5, #0 adds r0, #0x83 ldrb r2, [r0] adds r0, r5, #0 bl sub_0806F62C ldr r0, [r5, #0x2c] str r0, [r6, #0x2c] ldr r0, [r5, #0x30] str r0, [r6, #0x30] ldrb r1, [r6, #0xe] lsls r1, r1, #8 adds r0, r6, #0 adds r0, #0x83 ldrb r2, [r0] adds r0, r6, #0 bl sub_0806F62C ldr r0, [r6, #0x2c] str r0, [r4, #0x2c] ldr r0, [r6, #0x30] str r0, [r4, #0x30] ldrb r1, [r4, #0xe] lsls r1, r1, #8 adds r0, r4, #0 adds r0, #0x83 ldrb r2, [r0] adds r0, r4, #0 bl sub_0806F62C adds r0, r7, #0 bl sub_08027984 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08027984 sub_08027984: @ 0x08027984 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r1, [r4, #0x54] ldr r5, [r4, #0x68] ldr r6, [r4, #0x50] ldrb r2, [r1, #0xa] bl sub_080279AC ldrb r2, [r5, #0xa] adds r0, r4, #0 adds r1, r5, #0 bl sub_080279AC ldrb r2, [r6, #0xa] adds r0, r4, #0 adds r1, r6, #0 bl sub_080279AC pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080279AC sub_080279AC: @ 0x080279AC push {r4, r5, r6, lr} mov ip, r1 movs r3, #4 subs r3, r3, r2 ldrh r1, [r1, #0x2e] ldrh r4, [r0, #0x2e] subs r1, r1, r4 mov r6, ip adds r6, #0x62 strb r1, [r6] mov r2, ip ldrh r1, [r2, #0x32] ldrh r2, [r0, #0x32] adds r0, r2, r3 subs r1, r1, r0 mov r5, ip adds r5, #0x63 strb r1, [r5] mov r0, ip strh r4, [r0, #0x2e] adds r2, r2, r3 strh r2, [r0, #0x32] ldr r1, [r0, #0x48] ldrb r0, [r6] strb r0, [r1] mov r2, ip ldr r1, [r2, #0x48] ldrb r0, [r5] strb r0, [r1, #1] pop {r4, r5, r6, pc} thumb_func_start sub_080279E8 sub_080279E8: @ 0x080279E8 push {r4, lr} sub sp, #4 adds r2, r0, #0 ldr r4, [r2, #0x54] adds r0, #0x81 ldrb r0, [r0] cmp r0, #0x80 bne _08027A20 adds r0, r2, #0 adds r0, #0x76 ldrh r1, [r0] adds r0, #0xe ldr r0, [r0] ldrb r0, [r0, #5] subs r1, r1, r0 cmp r1, #0x80 bne _08027A58 adds r0, r2, #0 adds r0, #0x82 ldrb r1, [r0] movs r0, #1 str r0, [sp] adds r0, r2, #0 movs r2, #0xa0 movs r3, #0x20 bl sub_08027B98 b _08027A58 _08027A20: adds r0, r4, #0 adds r0, #0x76 ldrh r1, [r0] adds r3, r0, #0 cmp r1, #0xa0 bls _08027A30 subs r0, r1, #4 b _08027A32 _08027A30: movs r0, #0xa0 _08027A32: strh r0, [r3] adds r0, r4, #0 adds r0, #0x7a ldrh r2, [r0] adds r1, r0, #0 cmp r2, #0xa0 bls _08027A44 subs r0, r2, #4 b _08027A46 _08027A44: movs r0, #0xa0 _08027A46: strh r0, [r1] ldrh r0, [r3] cmp r0, #0xa0 bne _08027A58 ldrh r0, [r1] cmp r0, #0xa0 bne _08027A58 movs r0, #1 b _08027A5A _08027A58: movs r0, #0 _08027A5A: add sp, #4 pop {r4, pc} .align 2, 0 thumb_func_start sub_08027A60 sub_08027A60: @ 0x08027A60 push {lr} adds r2, r0, #0 adds r0, #0x7c ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08027A78 ldr r0, [r2, #0x74] movs r1, #0x80 lsls r1, r1, #7 b _08027A7C _08027A78: ldr r0, [r2, #0x74] ldr r1, _08027AA0 @ =0xFFFFC000 _08027A7C: adds r0, r0, r1 str r0, [r2, #0x74] adds r3, r2, #0 adds r3, #0x7c ldrb r0, [r3] adds r2, r0, #1 strb r2, [r3] movs r0, #0x7f ands r0, r2 cmp r0, #0x28 bne _08027A9C movs r1, #0x80 movs r0, #0x80 ands r2, r0 eors r2, r1 strb r2, [r3] _08027A9C: pop {pc} .align 2, 0 _08027AA0: .4byte 0xFFFFC000 thumb_func_start sub_08027AA4 sub_08027AA4: @ 0x08027AA4 push {r4, r5, lr} adds r5, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08027B94 movs r0, #0x7f ands r0, r1 cmp r0, #0x13 beq _08027AC2 cmp r0, #0x1b beq _08027B44 b _08027B94 _08027AC2: movs r0, #0x84 bl sub_080A3268 ldrb r3, [r5, #0xb] adds r0, r5, #0 movs r1, #0x49 movs r2, #9 bl sub_080A2988 ldr r0, _08027B3C @ =0x00000155 bl sub_080A3268 adds r0, r5, #0 adds r0, #0x84 ldr r4, [r0] adds r1, r5, #0 adds r1, #0x3d movs r0, #3 strb r0, [r1] ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] ldrb r0, [r4, #6] movs r1, #3 bl __divsi3 adds r1, r0, #0 lsls r0, r1, #0x18 lsrs r0, r0, #0x15 ldrb r2, [r4, #5] cmp r0, r2 beq _08027B06 lsls r0, r1, #3 strb r0, [r4, #5] _08027B06: movs r0, #0xb4 str r0, [r4, #8] movs r0, #5 ldrsb r0, [r4, r0] cmp r0, #0 bge _08027B94 movs r0, #0x40 strb r0, [r4, #1] adds r1, r5, #0 adds r1, #0x3f movs r0, #0 strb r0, [r1] ldrb r0, [r5, #0xd] cmp r0, #2 bne _08027B2A adds r0, r5, #0 bl sub_08027BBC _08027B2A: adds r0, r5, #0 bl sub_08027D20 ldr r0, _08027B40 @ =0x00000127 bl sub_080A3268 _08027B36: movs r0, #1 b _08027B96 .align 2, 0 _08027B3C: .4byte 0x00000155 _08027B40: .4byte 0x00000127 _08027B44: adds r1, r5, #0 adds r1, #0x3d movs r0, #0xe2 strb r0, [r1] ldr r0, [r5, #0x4c] ldrb r0, [r0, #0xa] adds r0, #1 cmp r0, #2 beq _08027B74 cmp r0, #2 bgt _08027B60 cmp r0, #1 beq _08027B84 b _08027B36 _08027B60: cmp r0, #3 bne _08027B36 adds r1, r5, #0 adds r1, #0x42 movs r0, #0x1a strb r0, [r1] adds r1, #4 movs r0, #0xe0 lsls r0, r0, #1 b _08027B90 _08027B74: adds r1, r5, #0 adds r1, #0x42 movs r0, #0x14 strb r0, [r1] adds r1, #4 movs r0, #0xc0 lsls r0, r0, #1 b _08027B90 _08027B84: adds r1, r5, #0 adds r1, #0x42 movs r0, #0x10 strb r0, [r1] adds r1, #4 adds r0, #0xf0 _08027B90: strh r0, [r1] b _08027B36 _08027B94: movs r0, #0 _08027B96: pop {r4, r5, pc} thumb_func_start sub_08027B98 sub_08027B98: @ 0x08027B98 push {r4, lr} mov ip, r0 ldr r4, [sp, #8] adds r0, #0x82 strb r1, [r0] subs r0, #1 strb r2, [r0] subs r0, #1 strb r3, [r0] cmp r4, #0xff beq _08027BB4 mov r0, ip strb r4, [r0, #0xe] b _08027BBA _08027BB4: movs r0, #1 mov r1, ip strb r0, [r1, #0xe] _08027BBA: pop {r4, pc} thumb_func_start sub_08027BBC sub_08027BBC: @ 0x08027BBC push {r4, r5, r6, lr} adds r6, r0, #0 movs r4, #0 movs r0, #0xa strb r0, [r6, #0xd] adds r5, r6, #0 adds r5, #0x84 ldr r0, [r5] strb r4, [r0, #1] adds r0, r6, #0 movs r1, #7 movs r2, #1 bl sub_080276F4 ldr r0, [r6, #0x54] adds r0, #0x7d strb r4, [r0] movs r3, #0 strh r4, [r6, #0x24] ldr r0, [r5] strb r3, [r0, #3] movs r0, #0x2e ldrsh r1, [r6, r0] ldr r0, [r5] ldrh r0, [r0, #0xe] cmp r1, r0 ble _08027C0A movs r0, #0x18 strb r0, [r6, #0x15] ldr r2, [r6, #0x54] ldr r1, [r6, #0x50] ldr r0, [r6, #0x68] adds r0, #0x85 strb r3, [r0] adds r1, #0x85 strb r3, [r1] adds r2, #0x85 strb r3, [r2] b _08027C22 _08027C0A: movs r0, #8 strb r0, [r6, #0x15] ldr r3, [r6, #0x54] ldr r2, [r6, #0x50] ldr r0, [r6, #0x68] adds r0, #0x85 movs r1, #1 strb r1, [r0] adds r2, #0x85 strb r1, [r2] adds r3, #0x85 strb r1, [r3] _08027C22: ldrb r0, [r6, #0x15] lsrs r0, r0, #2 strb r0, [r6, #0x14] ldr r0, _08027C44 @ =gUnk_03001160 movs r2, #0x32 ldrsh r1, [r6, r2] movs r2, #0x32 ldrsh r0, [r0, r2] cmp r1, r0 beq _08027C52 cmp r1, r0 ble _08027C48 adds r0, r6, #0 adds r0, #0x84 ldr r1, [r0] movs r0, #0 b _08027C50 .align 2, 0 _08027C44: .4byte gUnk_03001160 _08027C48: adds r0, r6, #0 adds r0, #0x84 ldr r1, [r0] movs r0, #0x10 _08027C50: strb r0, [r1, #0xc] _08027C52: pop {r4, r5, r6, pc} thumb_func_start sub_08027C54 sub_08027C54: @ 0x08027C54 push {lr} ldr r2, _08027C74 @ =gUnk_080CC2DC adds r1, r0, #0 adds r1, #0x84 ldr r1, [r1] ldrb r1, [r1, #4] adds r1, r1, r2 ldr r0, [r0, #0x54] adds r0, #0x45 ldrb r1, [r1] ldrb r0, [r0] cmp r1, r0 bhi _08027C78 movs r0, #0 b _08027C7A .align 2, 0 _08027C74: .4byte gUnk_080CC2DC _08027C78: movs r0, #1 _08027C7A: pop {pc} thumb_func_start sub_08027C7C sub_08027C7C: @ 0x08027C7C push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 ldr r0, [r4, #0x54] bl sub_08027C9C ldr r0, [r4, #0x68] adds r1, r5, #0 bl sub_08027C9C ldr r0, [r4, #0x50] adds r1, r5, #0 bl sub_08027C9C pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08027C9C sub_08027C9C: @ 0x08027C9C push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 bl sub_08000E50 ands r0, r4 cmp r0, #0 bne _08027D1E adds r0, r5, #0 movs r1, #0x48 movs r2, #0 bl sub_080A29AC adds r4, r0, #0 cmp r4, #0 beq _08027D1E adds r0, r5, #0 adds r0, #0x62 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r1, [r5, #0x48] ldrb r1, [r1, #6] subs r0, r0, r1 ldrh r1, [r4, #0x2e] adds r0, r0, r1 strh r0, [r4, #0x2e] bl sub_08000E50 ldr r1, [r5, #0x48] ldrb r1, [r1, #6] lsls r1, r1, #1 bl __modsi3 ldrh r1, [r4, #0x2e] adds r1, r1, r0 strh r1, [r4, #0x2e] adds r0, r5, #0 adds r0, #0x63 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r1, [r5, #0x48] ldrb r1, [r1, #7] subs r0, r0, r1 ldrh r1, [r4, #0x32] adds r0, r0, r1 strh r0, [r4, #0x32] bl sub_08000E50 ldr r1, [r5, #0x48] ldrb r1, [r1, #7] lsls r1, r1, #1 bl __modsi3 ldrh r1, [r4, #0x32] adds r1, r1, r0 strh r1, [r4, #0x32] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] _08027D1E: pop {r4, r5, pc} thumb_func_start sub_08027D20 sub_08027D20: @ 0x08027D20 push {r4, r5, lr} adds r5, r0, #0 movs r1, #0x15 movs r2, #0 movs r3, #0 bl sub_080A2988 adds r4, r0, #0 cmp r4, #0 beq _08027D66 movs r0, #0xc9 strh r0, [r4, #0x12] ldrh r0, [r4, #0x32] adds r0, #1 strh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x63 movs r0, #8 strb r0, [r1] adds r0, r4, #0 movs r1, #0x3e bl sub_080ADF80 ldrb r0, [r5, #0xb] cmp r0, #0 bne _08027D5E adds r0, r4, #0 movs r1, #0x2b bl sub_0801D040 b _08027D66 _08027D5E: adds r0, r4, #0 movs r1, #0x2c bl sub_0801D040 _08027D66: adds r0, r4, #0 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08027D6C sub_08027D6C: @ 0x08027D6C push {r4, lr} adds r4, r0, #0 ldr r1, _08027D88 @ =gUnk_080CC6FC bl sub_0800129E movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, pc} .align 2, 0 _08027D88: .4byte gUnk_080CC6FC thumb_func_start sub_08027D8C sub_08027D8C: @ 0x08027D8C push {lr} ldr r2, _08027DA0 @ =gUnk_080CC714 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08027DA0: .4byte gUnk_080CC714 thumb_func_start sub_08027DA4 sub_08027DA4: @ 0x08027DA4 push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x3f ldrb r0, [r2] cmp r0, #1 bne _08027DC4 movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r0, #0x8c strb r0, [r2] b _08027E0E _08027DC4: ldrb r0, [r4, #0xc] cmp r0, #7 bne _08027DD2 adds r0, r4, #0 bl sub_0802810C b _08027E0E _08027DD2: adds r0, r4, #0 adds r0, #0x41 ldrb r2, [r0] movs r0, #0x80 ands r0, r2 cmp r0, #0 beq _08027E0E movs r1, #0x7f ands r1, r2 cmp r1, #0 bne _08027E0E movs r0, #7 strb r0, [r4, #0xc] movs r0, #0x5f strb r0, [r4, #0xe] strb r1, [r4, #0xf] adds r2, r4, #0 adds r2, #0x3b ldrb r1, [r2] movs r0, #0xfc ands r0, r1 strb r0, [r2] ldr r0, _08027E38 @ =gUnk_03001160 adds r0, #0x29 ldrb r0, [r0] lsls r0, r0, #0x1a lsrs r0, r0, #0x1d adds r1, r4, #0 adds r1, #0x83 strb r0, [r1] _08027E0E: adds r0, r4, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _08027E1C movs r0, #0x20 strb r0, [r4, #0xe] _08027E1C: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _08027E2E adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _08027E2E: ldr r1, _08027E3C @ =gUnk_080CC6FC adds r0, r4, #0 bl sub_0804AA30 pop {r4, pc} .align 2, 0 _08027E38: .4byte gUnk_03001160 _08027E3C: .4byte gUnk_080CC6FC thumb_func_start sub_08027E40 sub_08027E40: @ 0x08027E40 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #2 bne _08027E62 adds r5, r4, #0 adds r5, #0x80 ldrb r0, [r5] cmp r0, #0xff beq _08027E62 adds r0, r4, #0 movs r1, #3 bl sub_0805E3A0 ldrb r0, [r5] bl sub_08028224 _08027E62: adds r0, r4, #0 bl sub_0804A7D4 pop {r4, r5, pc} .align 2, 0 thumb_func_start nullsub_139 nullsub_139: @ 0x08027E6C bx lr .align 2, 0 thumb_func_start sub_08027E70 sub_08027E70: @ 0x08027E70 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 ldrb r3, [r4, #0xa] cmp r3, #1 beq _08027EA6 cmp r3, #1 bgt _08027E88 cmp r3, #0 beq _08027E8E b _08027EE4 _08027E88: cmp r3, #2 beq _08027EC4 b _08027EE4 _08027E8E: movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #7 ands r0, r1 strb r0, [r4, #0x18] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] strb r3, [r4, #0xe] b _08027EE4 _08027EA6: movs r2, #1 strb r3, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] movs r0, #8 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #1 bl sub_08004260 b _08027EE4 _08027EC4: movs r3, #0 movs r2, #1 strb r2, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] strb r3, [r4, #0xe] adds r0, r4, #0 adds r0, #0x3f strb r2, [r0] adds r0, r4, #0 movs r1, #0 bl sub_08004260 _08027EE4: movs r0, #0 strb r0, [r4, #0x15] adds r1, r4, #0 adds r1, #0x82 strb r0, [r1] strb r0, [r4, #0x14] adds r1, #1 strb r0, [r1] subs r1, #3 movs r0, #0xff strb r0, [r1] pop {r4, pc} thumb_func_start sub_08027EFC sub_08027EFC: @ 0x08027EFC push {r4, lr} adds r4, r0, #0 adds r0, #0x3f ldrb r0, [r0] cmp r0, #1 beq _08027F7C adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _08027F68 adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 bne _08027F32 bl sub_08000E50 movs r1, #0x30 ands r1, r0 cmp r1, #0 beq _08027F32 adds r0, r4, #0 bl sub_08049EE4 b _08027F38 _08027F32: adds r0, r4, #0 adds r0, #0x82 ldrb r0, [r0] _08027F38: strb r0, [r4, #0x15] ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08027F5A adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] adds r1, r4, #0 adds r1, #0x82 strb r0, [r1] movs r0, #8 strb r0, [r4, #0xe] _08027F5A: adds r0, r4, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_08004274 b _08027F7C _08027F68: movs r0, #6 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #2 bl sub_08004260 _08027F7C: pop {r4, pc} .align 2, 0 thumb_func_start nullsub_12 nullsub_12: @ 0x08027F80 bx lr .align 2, 0 thumb_func_start sub_08027F84 sub_08027F84: @ 0x08027F84 push {r4, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _08027FB0 movs r0, #5 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #9 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_080A29BC _08027FB0: pop {r4, pc} .align 2, 0 thumb_func_start sub_08027FB4 sub_08027FB4: @ 0x08027FB4 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 _08027FD6 movs r1, #1 movs r0, #1 strb r0, [r2, #0xc] strb r0, [r2, #0xe] adds r3, r2, #0 adds r3, #0x3b ldrb r0, [r3] orrs r0, r1 strb r0, [r3] _08027FD6: adds r0, r2, #0 bl sub_08004274 pop {pc} .align 2, 0 thumb_func_start sub_08027FE0 sub_08027FE0: @ 0x08027FE0 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r2, #1 adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _08028028 strb r2, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] movs r2, #8 movs r0, #8 strb r0, [r4, #0xe] adds r3, r4, #0 adds r3, #0x29 ldrb r1, [r3] subs r0, #0x41 ands r0, r1 orrs r0, r2 strb r0, [r3] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _08028028: pop {r4, pc} .align 2, 0 thumb_func_start sub_0802802C sub_0802802C: @ 0x0802802C push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0802805A movs r2, #0 movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #7 ands r0, r1 strb r0, [r4, #0x18] strb r2, [r4, #0x15] strb r2, [r4, #0xe] adds r0, r4, #0 bl sub_080A29BC _0802805A: pop {r4, pc} thumb_func_start sub_0802805C sub_0802805C: @ 0x0802805C push {r4, r5, lr} adds r5, r0, #0 movs r1, #2 bl sub_08004276 bl sub_0807953C cmp r0, #0 beq _0802807E bl sub_08000E50 ldrb r2, [r5, #0xf] adds r2, #1 movs r1, #1 ands r1, r0 adds r2, r2, r1 strb r2, [r5, #0xf] _0802807E: ldrb r0, [r5, #0xf] cmp r0, #0x18 bhi _0802808E ldr r0, _08028098 @ =gUnk_02002A40 adds r0, #0xaa ldrb r0, [r0] cmp r0, #0 bne _0802809C _0802808E: adds r0, r5, #0 bl sub_0802810C b _08028102 .align 2, 0 _08028098: .4byte gUnk_02002A40 _0802809C: bl sub_08077B2C ldr r2, _08028104 @ =gUnk_03003F80 ldrb r1, [r2, #0x1a] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x1a] ldr r4, _08028108 @ =gUnk_03001160 movs r3, #0x80 lsls r3, r3, #9 adds r0, r5, #0 adds r1, r4, #0 movs r2, #0 bl sub_0806FA48 ldrh r0, [r5, #0x12] ldrb r1, [r5, #0x1e] bl sub_080700C8 ldrb r1, [r0] adds r2, r4, #0 adds r2, #0x62 strb r1, [r2] ldrb r0, [r0, #1] adds r1, r4, #0 adds r1, #0x63 strb r0, [r1] adds r4, #0x29 ldrb r1, [r4] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4] ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080280F0 adds r0, r5, #0 bl sub_080281A0 _080280F0: ldrb r1, [r5, #0xe] movs r0, #3 ands r0, r1 cmp r0, #0 bne _08028102 movs r0, #0x82 lsls r0, r0, #1 bl sub_08004488 _08028102: pop {r4, r5, pc} .align 2, 0 _08028104: .4byte gUnk_03003F80 _08028108: .4byte gUnk_03001160 thumb_func_start sub_0802810C sub_0802810C: @ 0x0802810C push {r4, r5, lr} adds r4, r0, #0 ldr r2, _08028198 @ =gUnk_03003F80 movs r1, #0 movs r0, #0x41 strb r0, [r2, #2] strb r1, [r2, #0xa] ldr r0, [r2, #0x30] subs r1, #0x11 ands r0, r1 str r0, [r2, #0x30] ldr r0, _0802819C @ =gUnk_03001160 mov ip, r0 ldrb r0, [r0, #0x10] movs r1, #0x80 orrs r0, r1 mov r1, ip strb r0, [r1, #0x10] movs r0, #0xc0 lsls r0, r0, #9 str r0, [r1, #0x20] adds r1, #0x3d movs r0, #0xc4 strb r0, [r1] movs r3, #0 mov r2, ip ldrb r0, [r2, #0x14] lsls r0, r0, #2 strb r0, [r2, #0x15] adds r0, r4, #0 adds r0, #0x83 ldrb r0, [r0] mov r5, ip adds r5, #0x29 movs r1, #7 ands r1, r0 lsls r1, r1, #3 ldrb r2, [r5] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r5] mov r1, ip adds r1, #0x63 movs r0, #0 ldrsb r0, [r1, r0] mov r2, ip strh r0, [r2, #0x36] strb r3, [r1] movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x50 strb r0, [r4, #0xe] strb r3, [r4, #0xf] adds r2, r4, #0 adds r2, #0x3b ldrb r1, [r2] movs r0, #2 orrs r0, r1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x3d movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bne _08028196 movs r0, #0xee strb r0, [r1] _08028196: pop {r4, r5, pc} .align 2, 0 _08028198: .4byte gUnk_03003F80 _0802819C: .4byte gUnk_03001160 thumb_func_start sub_080281A0 sub_080281A0: @ 0x080281A0 push {r4, lr} adds r4, r0, #0 movs r0, #0x19 strb r0, [r4, #0xf] movs r0, #0xe bl sub_080281E0 cmp r0, #0 beq _080281BA adds r0, r4, #0 adds r0, #0x80 movs r1, #0xe b _080281CA _080281BA: movs r0, #0xd bl sub_080281E0 cmp r0, #0 beq _080281D6 adds r0, r4, #0 adds r0, #0x80 movs r1, #0xd _080281CA: strb r1, [r0] movs r0, #0xaf lsls r0, r0, #3 bl sub_08056378 b _080281DE _080281D6: movs r0, #1 rsbs r0, r0, #0 bl sub_080526A0 _080281DE: pop {r4, pc} thumb_func_start sub_080281E0 sub_080281E0: @ 0x080281E0 push {r4, r5, r6, r7, lr} adds r7, r0, #0 movs r4, #0 bl sub_0807CA84 cmp r0, #1 bne _0802821A ldr r6, _08028220 @ =gUnk_02002A40 adds r5, r6, #0 adds r5, #0xb4 ldrb r0, [r5] bl sub_080544B4 cmp r0, #0 beq _08028200 strb r4, [r5] _08028200: adds r5, r6, #0 adds r5, #0xb5 ldrb r0, [r5] bl sub_080544B4 cmp r0, #0 beq _08028210 strb r4, [r5] _08028210: adds r0, r7, #0 movs r1, #0 bl sub_0807CAA0 movs r4, #1 _0802821A: adds r0, r4, #0 pop {r4, r5, r6, r7, pc} .align 2, 0 _08028220: .4byte gUnk_02002A40 thumb_func_start sub_08028224 sub_08028224: @ 0x08028224 push {lr} movs r1, #0 movs r2, #1 bl sub_080A7C18 ldr r0, _08028238 @ =0x00000579 bl sub_08056378 pop {pc} .align 2, 0 _08028238: .4byte 0x00000579 thumb_func_start sub_0802823C sub_0802823C: @ 0x0802823C push {r4, lr} adds r4, r0, #0 ldr r1, _08028268 @ =gUnk_080CC790 bl sub_0800129E movs r3, #0x20 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC ldr r1, [r4, #0x54] cmp r1, #0 beq _08028266 ldr r0, [r1, #4] cmp r0, #0 beq _08028266 adds r0, r4, #0 bl sub_0806FA24 _08028266: pop {r4, pc} .align 2, 0 _08028268: .4byte gUnk_080CC790 thumb_func_start sub_0802826C sub_0802826C: @ 0x0802826C push {lr} ldr r2, _08028280 @ =gUnk_080CC7A8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08028280: .4byte gUnk_080CC7A8 thumb_func_start sub_08028284 sub_08028284: @ 0x08028284 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _08028298 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _08028298: ldr r1, _080282BC @ =gUnk_080CC790 adds r0, r4, #0 bl sub_0804AA30 adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080282DE ldrb r0, [r4, #0xc] cmp r0, #4 beq _080282C0 adds r0, r4, #0 bl sub_08028754 b _080282DE .align 2, 0 _080282BC: .4byte gUnk_080CC790 _080282C0: movs r0, #0x3f ands r0, r1 cmp r0, #0 bne _080282DE adds r1, r4, #0 adds r1, #0x7a ldrb r0, [r1] adds r0, #1 strb r0, [r1] adds r1, #7 movs r0, #0x16 strb r0, [r1] adds r0, r4, #0 bl sub_08028784 _080282DE: ldr r0, [r4, #0x54] adds r1, r4, #0 adds r1, #0x3d ldrb r1, [r1] adds r0, #0x3d strb r1, [r0] adds r0, r4, #0 adds r0, #0x45 ldrb r5, [r0] cmp r5, #0 bne _0802830C movs r0, #0 strh r5, [r4, #0x24] adds r1, r4, #0 adds r1, #0x82 strb r0, [r1] adds r0, r4, #0 bl sub_080287E0 ldr r0, [r4, #0x54] bl sub_0805E7BC str r5, [r4, #0x54] _0802830C: pop {r4, r5, pc} .align 2, 0 thumb_func_start nullsub_13 nullsub_13: @ 0x08028310 bx lr .align 2, 0 thumb_func_start sub_08028314 sub_08028314: @ 0x08028314 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r1, #0 movs r2, #1 strb r2, [r4, #0xc] strb r1, [r4, #0x14] adds r0, r4, #0 adds r0, #0x7b strb r1, [r0] adds r0, #5 strb r1, [r0] adds r0, #3 strb r1, [r0] subs r0, #2 strb r1, [r0] subs r0, #7 strb r1, [r0] adds r0, #8 strb r2, [r0] ldrb r0, [r4, #0xe] cmp r0, #0 beq _0802835E ldrb r1, [r4, #0xb] lsls r0, r1, #1 strb r0, [r4, #0x14] movs r0, #0x1e strb r0, [r4, #0xe] movs r0, #0x80 strh r0, [r4, #0x24] lsls r1, r1, #3 strb r1, [r4, #0x15] adds r0, r4, #0 bl sub_080287E0 b _08028368 _0802835E: movs r0, #0x10 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_08028604 _08028368: movs r0, #3 bl sub_080A7EE0 cmp r0, #0 beq _08028376 str r4, [r0, #0x50] str r0, [r4, #0x54] _08028376: pop {r4, pc} thumb_func_start sub_08028378 sub_08028378: @ 0x08028378 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x81 ldrb r0, [r1] cmp r0, #0 beq _0802838A subs r0, #1 strb r0, [r1] _0802838A: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r2, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _080283B8 adds r1, r4, #0 adds r1, #0x80 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ands r0, r2 cmp r0, #0xf bls _080283B0 adds r0, r4, #0 bl sub_08028728 b _080283FC _080283B0: adds r0, r4, #0 bl sub_08028604 b _080283FC _080283B8: adds r0, r4, #0 bl sub_080286CC cmp r0, #0 beq _080283CE adds r2, r4, #0 adds r2, #0x7b ldrb r0, [r2] movs r1, #1 orrs r0, r1 strb r0, [r2] _080283CE: adds r0, r4, #0 bl sub_080288A4 cmp r0, #0 beq _080283FC ldrh r1, [r4, #0x2a] adds r0, r4, #0 bl sub_0800417E ldrb r0, [r4, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 asrs r0, r0, #2 strb r0, [r4, #0x14] adds r1, r4, #0 adds r1, #0x83 ldrb r0, [r1] adds r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_080287E0 _080283FC: ldrb r0, [r4, #0xf] cmp r0, #0xb bls _08028414 adds r0, r4, #0 adds r0, #0x7b ldrb r0, [r0] cmp r0, #0 beq _08028418 adds r0, r4, #0 bl sub_08028754 b _08028418 _08028414: adds r0, #1 strb r0, [r4, #0xf] _08028418: adds r0, r4, #0 bl sub_08028858 pop {r4, pc} thumb_func_start sub_08028420 sub_08028420: @ 0x08028420 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0802844C movs r0, #3 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x82 strb r1, [r0] subs r0, #2 strb r1, [r0] movs r0, #0x10 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_08028604 b _08028462 _0802844C: adds r0, r4, #0 bl sub_080286CC cmp r0, #0 beq _08028462 adds r2, r4, #0 adds r2, #0x7b ldrb r0, [r2] movs r1, #1 orrs r0, r1 strb r0, [r2] _08028462: ldrb r0, [r4, #0xf] cmp r0, #0xb bls _0802847A adds r0, r4, #0 adds r0, #0x7b ldrb r0, [r0] cmp r0, #0 beq _0802847E adds r0, r4, #0 bl sub_08028754 b _0802847E _0802847A: adds r0, #1 strb r0, [r4, #0xf] _0802847E: adds r0, r4, #0 bl sub_08028858 pop {r4, pc} .align 2, 0 thumb_func_start sub_08028488 sub_08028488: @ 0x08028488 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #0 bne _08028520 adds r0, r4, #0 adds r0, #0x82 ldrb r1, [r0] adds r3, r0, #0 cmp r1, #2 beq _080284D2 cmp r1, #2 ble _080284F0 cmp r1, #3 beq _080284B4 cmp r1, #4 beq _080284E6 b _080284F0 _080284B4: movs r0, #4 strb r0, [r4, #0xc] movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] movs r0, #0x8f lsls r0, r0, #1 bl sub_08004488 b _0802850A _080284D2: strb r1, [r4, #0xc] strh r2, [r4, #0x24] bl sub_08000E50 movs r1, #7 ands r0, r1 lsls r1, r0, #1 adds r1, r1, r0 adds r1, #0x40 b _08028508 _080284E6: ldrb r0, [r4, #0x15] adds r0, #0x10 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] _080284F0: movs r0, #1 strb r0, [r4, #0xc] strb r0, [r3] movs r0, #0x80 strh r0, [r4, #0x24] bl sub_08000E50 movs r1, #7 ands r0, r1 lsls r1, r0, #1 adds r1, r1, r0 adds r1, #0x22 _08028508: strb r1, [r4, #0xe] _0802850A: movs r0, #0 strb r0, [r4, #0xf] ldrb r0, [r4, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 asrs r0, r0, #2 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_080287E0 _08028520: adds r0, r4, #0 bl sub_08028858 pop {r4, pc} thumb_func_start sub_08028528 sub_08028528: @ 0x08028528 push {r4, r5, r6, lr} adds r4, r0, #0 movs r0, #1 bl sub_08049DF4 adds r5, r0, #0 cmp r5, #0 bne _08028542 strb r5, [r4, #0xf] adds r0, r4, #0 bl sub_08028728 b _08028600 _08028542: adds r0, r4, #0 bl sub_080288C0 ldr r1, _08028590 @ =gUnk_080CC944 ldrb r0, [r4, #0x14] lsrs r0, r0, #1 lsls r0, r0, #2 adds r0, r0, r1 ldr r2, [r0] ldr r1, [r4, #0x48] ldrb r0, [r2] strb r0, [r1] ldr r1, [r4, #0x48] ldrb r0, [r2, #1] strb r0, [r1, #1] ldr r1, [r4, #0x48] ldrb r0, [r2, #6] strb r0, [r1, #6] ldr r1, [r4, #0x48] ldrb r0, [r2, #7] strb r0, [r1, #7] adds r0, r4, #0 adds r0, #0x7a ldrb r1, [r0] adds r6, r0, #0 cmp r1, #0 beq _08028594 movs r0, #0 strb r0, [r6] adds r1, r4, #0 adds r1, #0x81 movs r0, #0x16 strb r0, [r1] adds r0, r4, #0 bl sub_08028784 adds r1, r4, #0 adds r1, #0x7b b _080285EE .align 2, 0 _08028590: .4byte gUnk_080CC944 _08028594: ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x20 bne _080285BC strb r1, [r4, #0xe] adds r0, r4, #0 adds r1, r5, #0 bl sub_080045C4 adds r5, r0, #0 ldrb r0, [r4, #0x15] adds r1, r5, #0 bl sub_08028828 cmp r0, #0 beq _080285BC strb r5, [r4, #0x15] _080285BC: ldrb r1, [r4, #0xe] movs r0, #7 ands r0, r1 cmp r0, #0 bne _080285D6 movs r0, #0xf0 bl sub_08004488 adds r0, r4, #0 movs r1, #2 movs r2, #0x40 bl sub_080A29AC _080285D6: adds r1, r4, #0 adds r1, #0x7b ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x80 bne _080285EE ldrb r0, [r6] adds r0, #1 strb r0, [r6] _080285EE: ldrb r0, [r1] cmp r0, #0x20 bls _080285FA adds r0, r4, #0 bl sub_080AEF88 _080285FA: adds r0, r4, #0 bl sub_08004274 _08028600: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08028604 sub_08028604: @ 0x08028604 push {r4, r5, r6, lr} adds r4, r0, #0 movs r1, #0 strb r1, [r4, #0xf] adds r0, #0x82 ldrb r0, [r0] cmp r0, #1 bne _080286B0 bl sub_08000E50 ldr r2, _08028650 @ =gUnk_080CC7BC movs r1, #3 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r4, #0xe] movs r0, #0x80 strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 beq _08028658 bl sub_08000E50 ldr r2, _08028654 @ =gUnk_080CC7D0 movs r1, #7 ands r1, r0 adds r1, r1, r2 movs r0, #0 ldrsb r0, [r1, r0] adds r0, #0x18 ldrb r1, [r4, #0x15] adds r0, r0, r1 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] b _080286B8 .align 2, 0 _08028650: .4byte gUnk_080CC7BC _08028654: .4byte gUnk_080CC7D0 _08028658: adds r0, r4, #0 bl sub_08049EE4 adds r5, r0, #0 adds r6, r4, #0 adds r6, #0x83 ldrb r0, [r6] cmp r0, #0 bne _08028684 bl sub_08000E50 ldr r2, _08028680 @ =gUnk_080CC7C0 movs r1, #0xf ands r1, r0 adds r1, r1, r2 movs r0, #0 ldrsb r0, [r1, r0] adds r5, r5, r0 b _080286A2 .align 2, 0 _08028680: .4byte gUnk_080CC7C0 _08028684: bl sub_08000E50 ldr r2, _080286AC @ =gUnk_080CC7C0 movs r1, #7 ands r1, r0 adds r1, r1, r2 movs r0, #0 ldrsb r0, [r1, r0] adds r5, r5, r0 ldrb r0, [r4, #0xe] adds r0, #0x10 strb r0, [r4, #0xe] ldrb r0, [r6] subs r0, #1 strb r0, [r6] _080286A2: adds r0, r5, #4 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] b _080286B8 .align 2, 0 _080286AC: .4byte gUnk_080CC7C0 _080286B0: movs r0, #0xc strb r0, [r4, #0xe] strh r1, [r4, #0x24] ldrb r0, [r4, #0x15] _080286B8: lsrs r5, r0, #2 ldrb r0, [r4, #0x14] cmp r5, r0 beq _080286C8 strb r5, [r4, #0x14] adds r0, r4, #0 bl sub_080287E0 _080286C8: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080286CC sub_080286CC: @ 0x080286CC push {r4, r5, lr} adds r5, r0, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #0 bne _08028724 movs r0, #1 bl sub_08049DF4 adds r4, r0, #0 cmp r4, #0 beq _08028724 adds r0, r5, #0 adds r0, #0x82 ldrb r0, [r0] cmp r0, #2 bne _080286FC adds r0, r5, #0 adds r1, r4, #0 movs r2, #0x30 bl sub_0806FC80 cmp r0, #0 bne _08028720 _080286FC: adds r0, r5, #0 adds r1, r4, #0 movs r2, #0x40 bl sub_0806FC80 cmp r0, #0 beq _08028724 adds r0, r5, #0 adds r1, r4, #0 bl sub_080045C4 adds r0, #4 movs r1, #0x18 ands r0, r1 lsrs r0, r0, #2 ldrb r5, [r5, #0x14] cmp r0, r5 bne _08028724 _08028720: movs r0, #1 b _08028726 _08028724: movs r0, #0 _08028726: pop {r4, r5, pc} thumb_func_start sub_08028728 sub_08028728: @ 0x08028728 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 asrs r0, r0, #2 strb r0, [r4, #0x14] lsls r0, r0, #2 strb r0, [r4, #0x15] adds r1, r4, #0 adds r1, #0x83 ldrb r0, [r1] lsrs r0, r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_080287B4 adds r4, #0x82 movs r0, #2 strb r0, [r4] pop {r4, pc} thumb_func_start sub_08028754 sub_08028754: @ 0x08028754 push {r4, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049F84 movs r2, #0 strb r0, [r4, #0x15] ldrb r0, [r4, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 asrs r0, r0, #2 strb r0, [r4, #0x14] adds r0, r4, #0 adds r0, #0x83 strb r2, [r0] adds r0, r4, #0 bl sub_080287B4 adds r4, #0x82 movs r0, #3 strb r0, [r4] pop {r4, pc} .align 2, 0 thumb_func_start sub_08028784 sub_08028784: @ 0x08028784 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 asrs r0, r0, #2 movs r1, #0 strb r0, [r4, #0x14] lsls r0, r0, #2 strb r0, [r4, #0x15] adds r0, r4, #0 adds r0, #0x83 strb r1, [r0] adds r0, r4, #0 bl sub_080287B4 ldrb r0, [r4, #0xe] lsls r0, r0, #1 strb r0, [r4, #0xe] adds r4, #0x82 movs r0, #4 strb r0, [r4] pop {r4, pc} thumb_func_start sub_080287B4 sub_080287B4: @ 0x080287B4 push {lr} adds r2, r0, #0 movs r1, #0 movs r0, #3 strb r0, [r2, #0xc] movs r0, #0x20 strb r0, [r2, #0xe] strb r1, [r2, #0xf] adds r0, r2, #0 adds r0, #0x80 strb r1, [r0] subs r0, #5 strb r1, [r0] movs r0, #0 strh r1, [r2, #0x24] adds r1, r2, #0 adds r1, #0x82 strb r0, [r1] adds r0, r2, #0 bl sub_080287E0 pop {pc} thumb_func_start sub_080287E0 sub_080287E0: @ 0x080287E0 push {lr} adds r3, r0, #0 ldrb r0, [r3, #0x14] lsrs r2, r0, #1 adds r0, r3, #0 adds r0, #0x82 ldrb r0, [r0] cmp r0, #4 bhi _0802881E lsls r0, r0, #2 ldr r1, _080287FC @ =_08028800 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080287FC: .4byte _08028800 _08028800: @ jump table .4byte _0802881E @ case 0 .4byte _08028814 @ case 1 .4byte _0802881C @ case 2 .4byte _08028818 @ case 3 .4byte _08028814 @ case 4 _08028814: adds r2, #4 b _0802881E _08028818: adds r2, #8 b _0802881E _0802881C: adds r2, #0xc _0802881E: adds r0, r3, #0 adds r1, r2, #0 bl sub_08004260 pop {pc} thumb_func_start sub_08028828 sub_08028828: @ 0x08028828 push {r4, lr} adds r4, r0, #0 adds r3, r1, #0 adds r0, r3, #4 movs r2, #0x18 ands r0, r2 adds r1, r4, #4 ands r1, r2 cmp r0, r1 bne _08028852 adds r0, r3, #5 movs r1, #7 ands r0, r1 adds r2, r4, #5 ands r2, r1 cmp r0, #2 bhi _08028852 cmp r2, #2 bhi _08028852 movs r0, #1 b _08028854 _08028852: movs r0, #0 _08028854: pop {r4, pc} .align 2, 0 thumb_func_start sub_08028858 sub_08028858: @ 0x08028858 push {r4, lr} adds r4, r0, #0 bl sub_080288C0 ldr r1, _080288A0 @ =gUnk_080CC944 ldrb r0, [r4, #0x14] lsrs r0, r0, #1 lsls r0, r0, #2 adds r0, r0, r1 ldr r2, [r0] ldr r1, [r4, #0x48] ldrb r0, [r2] strb r0, [r1] ldr r1, [r4, #0x48] ldrb r0, [r2, #1] strb r0, [r1, #1] ldr r1, [r4, #0x48] ldrb r0, [r2, #6] strb r0, [r1, #6] ldr r1, [r4, #0x48] ldrb r0, [r2, #7] strb r0, [r1, #7] adds r0, r4, #0 adds r0, #0x82 ldrb r0, [r0] cmp r0, #0 bne _08028890 strh r0, [r4, #0x24] _08028890: adds r0, r4, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 _080288A0: .4byte gUnk_080CC944 thumb_func_start sub_080288A4 sub_080288A4: @ 0x080288A4 ldr r2, _080288BC @ =gUnk_080CC7D8 ldrb r1, [r0, #0x14] lsrs r1, r1, #1 lsls r1, r1, #1 adds r1, r1, r2 ldrh r0, [r0, #0x2a] ldrh r1, [r1] ands r1, r0 rsbs r0, r1, #0 orrs r0, r1 lsrs r0, r0, #0x1f bx lr .align 2, 0 _080288BC: .4byte gUnk_080CC7D8 thumb_func_start sub_080288C0 sub_080288C0: @ 0x080288C0 push {lr} mov ip, r0 ldr r2, [r0, #0x54] cmp r2, #0 beq _08028908 adds r0, r2, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08028908 adds r0, r2, #0 adds r0, #0x3e ldrb r0, [r0] mov r1, ip adds r1, #0x3e strb r0, [r1] adds r0, r2, #0 adds r0, #0x3d ldrb r0, [r0] rsbs r0, r0, #0 subs r1, #1 strb r0, [r1] adds r0, r2, #0 adds r0, #0x46 ldrh r0, [r0] adds r1, #9 movs r3, #0 strh r0, [r1] adds r2, #0x42 ldrb r1, [r2] mov r0, ip adds r0, #0x42 strb r1, [r0] strb r3, [r2] _08028908: pop {pc} .align 2, 0 thumb_func_start sub_0802890C sub_0802890C: @ 0x0802890C push {lr} ldr r1, _08028918 @ =gUnk_080CC9C8 bl sub_0800129E pop {pc} .align 2, 0 _08028918: .4byte gUnk_080CC9C8 thumb_func_start sub_0802891C sub_0802891C: @ 0x0802891C push {lr} ldr r2, _08028930 @ =gUnk_080CC9E0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08028930: .4byte gUnk_080CC9E0 thumb_func_start sub_08028934 sub_08028934: @ 0x08028934 push {r4, lr} adds r4, r0, #0 adds r0, #0x3f ldrb r0, [r0] cmp r0, #1 bne _08028988 adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r2, #0x7f adds r0, r2, #0 ands r0, r1 cmp r0, #0x42 bne _08028988 movs r1, #0 movs r0, #3 strb r0, [r4, #0xc] strb r1, [r4, #0xd] movs r0, #0x28 strb r0, [r4, #0xe] ldrb r1, [r4, #0x10] adds r0, r2, #0 ands r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #4 bl sub_080290E0 adds r0, r4, #0 movs r1, #3 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _08028982 ldrh r0, [r1, #0x36] subs r0, #8 strh r0, [r1, #0x36] _08028982: ldr r0, _0802898C @ =0x000001BB bl sub_08004488 _08028988: pop {r4, pc} .align 2, 0 _0802898C: .4byte 0x000001BB thumb_func_start nullsub_140 nullsub_140: @ 0x08028990 bx lr .align 2, 0 thumb_func_start sub_08028994 sub_08028994: @ 0x08028994 push {r4, r5, lr} adds r4, r0, #0 movs r0, #0 strb r0, [r4, #0xf] ldrh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x78 movs r5, #0 strh r1, [r0] ldrh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x7a strh r0, [r1] strb r5, [r4, #0x14] movs r0, #0x10 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_08028E9C ldr r0, [r4, #0x7c] ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 bne _080289D4 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _080289FC _080289D4: movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xe] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #0xb1 ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 bl sub_0802925C adds r0, r4, #0 movs r1, #0 bl sub_080290E0 b _08028A42 _080289FC: strb r5, [r4, #0xe] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _08028A44 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] 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, #0x76 strh r1, [r0] ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080001DA adds r1, r4, #0 adds r1, #0x74 strh r0, [r1] subs r1, #0x34 movs r0, #0x41 strb r0, [r1] adds r0, r4, #0 bl sub_08028FFC _08028A42: pop {r4, r5, pc} .align 2, 0 _08028A44: .4byte gUnk_03000BF0 thumb_func_start sub_08028A48 sub_08028A48: @ 0x08028A48 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] adds r5, r0, #0 cmp r5, #0 beq _08028A5A subs r0, #1 strb r0, [r4, #0xe] b _08028A72 _08028A5A: adds r0, r4, #0 movs r1, #0 bl sub_08028F98 cmp r0, #0 beq _08028A72 adds r0, r4, #0 bl sub_08029078 strb r5, [r4, #0xd] movs r0, #1 strb r0, [r4, #0xf] _08028A72: pop {r4, r5, pc} thumb_func_start sub_08028A74 sub_08028A74: @ 0x08028A74 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xd] cmp r0, #4 bls _08028A84 b _08028BA6 _08028A84: lsls r0, r0, #2 ldr r1, _08028A90 @ =_08028A94 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08028A90: .4byte _08028A94 _08028A94: @ jump table .4byte _08028AA8 @ case 0 .4byte _08028ACA @ case 1 .4byte _08028B1A @ case 2 .4byte _08028B54 @ case 3 .4byte _08028B76 @ case 4 _08028AA8: movs r6, #1 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08028BA6 strb r6, [r4, #0xd] movs r0, #0x3c strb r0, [r4, #0xe] movs r0, #0x10 strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_08028FDC b _08028B6C _08028ACA: movs r6, #1 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r2, #0xff lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _08028AF6 movs r0, #2 strb r0, [r4, #0xd] movs r0, #0x20 strb r0, [r4, #0xe] strb r1, [r4, #0xf] adds r0, r4, #0 bl sub_08028FDC adds r0, r4, #0 movs r1, #2 bl sub_080290E0 b _08028BA6 _08028AF6: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] ands r0, r2 cmp r0, #0 bne _08028BA6 adds r0, r4, #0 bl sub_08028FDC cmp r0, #0 beq _08028B14 adds r0, r4, #0 movs r1, #1 bl sub_080290E0 _08028B14: movs r0, #0x10 strb r0, [r4, #0xf] b _08028BA6 _08028B1A: movs r6, #1 adds r0, r4, #0 bl sub_080290FC adds r5, r4, #0 adds r5, #0x5a ldrb r1, [r5] adds r0, r6, #0 ands r0, r1 cmp r0, #0 beq _08028BA6 adds r0, r4, #0 movs r1, #4 movs r2, #0 bl sub_0804A98C adds r1, r0, #0 cmp r1, #0 beq _08028BA6 str r4, [r1, #0x50] ldrb r0, [r4, #0x15] strb r0, [r1, #0x15] ldrb r1, [r5] movs r0, #0xfe ands r0, r1 strb r0, [r5] movs r0, #3 strb r0, [r4, #0xd] b _08028BA6 _08028B54: movs r6, #2 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08028BA6 movs r0, #4 strb r0, [r4, #0xd] movs r0, #0x50 strb r0, [r4, #0xe] _08028B6C: adds r0, r4, #0 movs r1, #1 bl sub_080290E0 b _08028BA6 _08028B76: movs r6, #2 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08028BA6 adds r0, r4, #0 movs r1, #0 bl sub_08028F98 adds r5, r0, #0 cmp r5, #0 beq _08028BB4 movs r0, #1 strb r0, [r4, #0xd] movs r0, #0x3c strb r0, [r4, #0xe] movs r0, #0x10 strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_08028FDC b _08028BC2 _08028BA6: adds r0, r4, #0 adds r1, r6, #0 bl sub_08028F98 adds r5, r0, #0 cmp r5, #0 bne _08028BC2 _08028BB4: adds r0, r4, #0 bl sub_08028FFC strb r5, [r4, #0xd] movs r0, #0x50 strb r0, [r4, #0xe] strb r5, [r4, #0xf] _08028BC2: pop {r4, r5, r6, pc} thumb_func_start sub_08028BC4 sub_08028BC4: @ 0x08028BC4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #0 beq _08028BD4 cmp r0, #1 beq _08028C14 b _08028C76 _08028BD4: ldrb r0, [r4, #0xe] cmp r0, #0 bne _08028C0E adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08028C76 movs r0, #1 strb r0, [r4, #0xd] adds r0, r4, #0 bl sub_08028FDC adds r0, r4, #0 movs r1, #5 bl sub_080290E0 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] b _08028C76 _08028C0E: subs r0, #1 strb r0, [r4, #0xe] b _08028C76 _08028C14: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08028C76 movs r1, #0 movs r0, #4 strb r0, [r4, #0xc] strb r1, [r4, #0xd] movs r0, #0x1e strb r0, [r4, #0xe] movs r0, #5 strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_080290E0 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC adds r2, r0, #0 cmp r2, #0 beq _08028C66 adds r3, r2, #0 adds r3, #0x29 ldrb r1, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r3] ldrh r0, [r2, #0x36] subs r0, #0xc strh r0, [r2, #0x36] adds r0, r2, #0 movs r1, #2 bl sub_0805E3A0 _08028C66: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 adds r0, r4, #0 bl sub_0802925C _08028C76: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0800445C pop {r4, pc} thumb_func_start sub_08028C84 sub_08028C84: @ 0x08028C84 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r1, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _08028CD2 movs r0, #0x30 strb r0, [r4, #0xe] ldrb r0, [r4, #0xf] adds r5, r0, #0 cmp r5, #0 beq _08028CB4 subs r0, #1 strb r0, [r4, #0xf] ands r0, r1 cmp r0, #0 bne _08028CD2 adds r0, r4, #0 bl sub_0804AA1C b _08028CD2 _08028CB4: adds r0, r4, #0 bl sub_08028FDC adds r1, r4, #0 adds r1, #0x80 cmp r0, #0 bne _08028CC8 ldrb r0, [r1] cmp r0, #0 beq _08028CD2 _08028CC8: strb r5, [r1] adds r0, r4, #0 movs r1, #0 bl sub_080290E0 _08028CD2: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0800445C adds r0, r4, #0 bl sub_08028F0C pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08028CE8 sub_08028CE8: @ 0x08028CE8 push {r4, r5, r6, r7, lr} adds r5, r0, #0 ldr r6, [r5, #0x7c] ldr r0, _08028D30 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08028DCC adds r0, r5, #0 bl sub_0802915C cmp r0, #0 beq _08028DCC bl sub_08056338 cmp r0, #0 bne _08028DCC ldr r0, _08028D34 @ =gUnk_02002A40 adds r0, #0xc0 ldrh r1, [r6, #2] ldrh r0, [r0] cmp r1, r0 bhi _08028DC0 adds r0, r5, #0 bl sub_080291DC cmp r0, #0 beq _08028D3C ldr r0, _08028D38 @ =0x00002904 bl sub_08056378 movs r0, #0 bl sub_08078A90 b _08028DCC .align 2, 0 _08028D30: .4byte gUnk_02000050 _08028D34: .4byte gUnk_02002A40 _08028D38: .4byte 0x00002904 _08028D3C: ldrh r0, [r6, #2] rsbs r0, r0, #0 bl sub_080526CC ldrb r0, [r6] lsrs r7, r0, #2 cmp r7, #1 beq _08028D9C cmp r7, #1 bgt _08028D56 cmp r7, #0 beq _08028D5C b _08028DCC _08028D56: cmp r7, #2 beq _08028DAA b _08028DCC _08028D5C: ldrb r1, [r6, #9] cmp r1, #0xff bne _08028D70 ldr r4, _08028D98 @ =gUnk_080CC9C0 bl sub_08000E50 movs r1, #7 ands r1, r0 adds r1, r1, r4 ldrb r1, [r1] _08028D70: ldrb r0, [r6, #8] movs r2, #0 bl sub_080A7C00 movs r0, #6 strb r0, [r5, #0xc] movs r0, #4 strb r0, [r5, #0xe] adds r0, r5, #0 adds r0, #0x81 strb r7, [r0] adds r0, r5, #0 movs r1, #3 bl sub_080290E0 movs r0, #0x87 bl sub_0807CCB4 b _08028DE2 .align 2, 0 _08028D98: .4byte gUnk_080CC9C0 _08028D9C: ldrb r0, [r6, #8] ldrb r1, [r6, #9] movs r2, #0 bl sub_080A7C00 movs r0, #4 b _08028DB6 _08028DAA: ldrb r0, [r6, #8] ldrb r1, [r6, #9] movs r2, #0 bl sub_080A7C00 movs r0, #8 _08028DB6: strb r0, [r5, #0xe] adds r0, r5, #0 bl sub_0802922C b _08028DE2 _08028DC0: ldr r0, _08028DE4 @ =0x00002903 bl sub_08056378 movs r0, #0 bl sub_08078A90 _08028DCC: adds r0, r5, #0 bl sub_0800445C movs r0, #4 strb r0, [r5, #0xc] movs r0, #0x30 strb r0, [r5, #0xe] adds r0, r5, #0 movs r1, #0 bl sub_080290E0 _08028DE2: pop {r4, r5, r6, r7, pc} .align 2, 0 _08028DE4: .4byte 0x00002903 thumb_func_start sub_08028DE8 sub_08028DE8: @ 0x08028DE8 push {r4, lr} adds r4, r0, #0 ldr r0, _08028E08 @ =gUnk_03001160 ldrb r0, [r0, #0xc] cmp r0, #8 bne _08028E0C adds r4, #0x81 ldrb r0, [r4] cmp r0, #0 bne _08028E3A movs r0, #1 bl sub_08078A90 movs r0, #1 strb r0, [r4] b _08028E3A .align 2, 0 _08028E08: .4byte gUnk_03001160 _08028E0C: ldr r0, _08028E3C @ =0x00002902 bl sub_08056378 movs r1, #0 movs r0, #4 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x81 strb r1, [r0] movs r0, #1 strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_08028EDC movs r0, #0 bl sub_08078A90 adds r0, r4, #0 bl sub_0800445C adds r0, r4, #0 bl sub_08004274 _08028E3A: pop {r4, pc} .align 2, 0 _08028E3C: .4byte 0x00002902 thumb_func_start sub_08028E40 sub_08028E40: @ 0x08028E40 push {r4, r5, lr} adds r4, r0, #0 ldr r0, _08028E80 @ =gUnk_02000050 ldrb r0, [r0] movs r1, #0x7f ands r1, r0 cmp r1, #0 bne _08028E72 ldr r5, [r4, #0x7c] movs r0, #4 strb r0, [r4, #0xc] strb r1, [r4, #0xd] movs r0, #1 strb r0, [r4, #0xe] ldrh r0, [r5, #0xa] bl sub_0807CBD0 cmp r0, #0 bne _08028E6C ldrh r0, [r5, #0xa] bl sub_0807CCB4 _08028E6C: movs r0, #0 bl sub_08078A90 _08028E72: adds r0, r4, #0 bl sub_0800445C adds r0, r4, #0 bl sub_08004274 pop {r4, r5, pc} .align 2, 0 _08028E80: .4byte gUnk_02000050 thumb_func_start sub_08028E84 sub_08028E84: @ 0x08028E84 push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _08028E98 movs r0, #4 strb r0, [r4, #0xc] movs r0, #1 strb r0, [r4, #0xe] _08028E98: pop {r4, pc} .align 2, 0 thumb_func_start sub_08028E9C sub_08028E9C: @ 0x08028E9C push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r0, [r5, #0xa] lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #2 ldr r6, _08028ED8 @ =gUnk_080CC954 adds r4, r1, r6 adds r0, r4, #0 bl sub_08029198 cmp r0, #0 beq _08028ECA ldrb r1, [r4] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08028ECA ldrh r1, [r4, #0xa] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r4, r0, r6 _08028ECA: str r4, [r5, #0x7c] adds r1, r5, #0 adds r1, #0x80 movs r0, #0 strb r0, [r1] pop {r4, r5, r6, pc} .align 2, 0 _08028ED8: .4byte gUnk_080CC954 thumb_func_start sub_08028EDC sub_08028EDC: @ 0x08028EDC push {r4, r5, lr} adds r5, r0, #0 ldr r4, [r5, #0x7c] adds r0, r4, #0 bl sub_08029198 cmp r0, #0 beq _08028F04 ldrb r1, [r4] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08028F04 ldrh r0, [r4, #0xa] lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #2 ldr r0, _08028F08 @ =gUnk_080CC954 adds r4, r1, r0 str r4, [r5, #0x7c] _08028F04: pop {r4, r5, pc} .align 2, 0 _08028F08: .4byte gUnk_080CC954 thumb_func_start sub_08028F0C sub_08028F0C: @ 0x08028F0C push {r4, r5, r6, lr} adds r5, r0, #0 adds r2, r5, #0 adds r2, #0x39 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 bne _08028F2C movs r1, #0 movs r0, #8 strb r0, [r5, #0xc] strb r1, [r2] adds r0, r5, #0 bl sub_0806F118 b _08028F90 _08028F2C: cmp r0, #0 beq _08028F90 ldr r6, [r5, #0x7c] movs r4, #0 strb r4, [r2] adds r0, r5, #0 bl sub_0804AA1C adds r0, r5, #0 bl sub_0806EDC4 lsls r0, r0, #3 strb r0, [r5, #0x15] adds r0, r5, #0 movs r1, #3 bl sub_080290E0 adds r1, r5, #0 adds r1, #0x80 movs r0, #1 strb r0, [r1] movs r0, #0x20 strb r0, [r5, #0xe] strb r4, [r5, #0xf] adds r0, r6, #0 bl sub_08029198 cmp r0, #0 beq _08028F6A ldrh r4, [r6, #6] b _08028F84 _08028F6A: ldrb r1, [r6] movs r0, #0xfc ands r0, r1 cmp r0, #0xc beq _08028F78 movs r0, #5 b _08028F7A _08028F78: movs r0, #7 _08028F7A: strb r0, [r5, #0xc] ldrh r4, [r6, #4] movs r0, #1 bl sub_08078A90 _08028F84: adds r0, r4, #0 bl sub_08056378 ldr r1, _08028F94 @ =gUnk_02000050 ldrh r0, [r6, #2] str r0, [r1, #0x10] _08028F90: pop {r4, r5, r6, pc} .align 2, 0 _08028F94: .4byte gUnk_02000050 thumb_func_start sub_08028F98 sub_08028F98: @ 0x08028F98 push {r4, r5, r6, lr} adds r6, r0, #0 adds r5, r1, #0 movs r0, #1 bl sub_08049DF4 adds r4, r0, #0 cmp r4, #0 beq _08028FD4 adds r0, r6, #0 adds r1, r4, #0 movs r2, #0x28 movs r3, #0x28 bl sub_080041A0 cmp r0, #0 bne _08028FD4 cmp r5, #2 beq _08028FD8 movs r3, #0x50 cmp r5, #0 beq _08028FC6 movs r3, #0x58 _08028FC6: adds r0, r6, #0 adds r1, r4, #0 adds r2, r3, #0 bl sub_080041A0 cmp r0, #0 bne _08028FD8 _08028FD4: movs r0, #0 b _08028FDA _08028FD8: movs r0, #1 _08028FDA: pop {r4, r5, r6, pc} thumb_func_start sub_08028FDC sub_08028FDC: @ 0x08028FDC push {r4, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049F84 adds r1, r0, #4 movs r0, #0x18 ands r1, r0 ldrb r0, [r4, #0x15] cmp r1, r0 beq _08028FF8 strb r1, [r4, #0x15] movs r0, #1 b _08028FFA _08028FF8: movs r0, #0 _08028FFA: pop {r4, pc} thumb_func_start sub_08028FFC sub_08028FFC: @ 0x08028FFC push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] 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] adds r0, r4, #0 bl sub_080AE068 adds r0, r4, #0 bl sub_0801D230 adds r1, r4, #0 adds r1, #0x60 movs r0, #0xe8 strh r0, [r1] ldrb r1, [r4, #0x1a] subs r0, #0xf8 ands r0, r1 movs r1, #2 orrs r0, r1 movs r1, #0xf ands r0, r1 movs r1, #0x20 orrs r0, r1 strb r0, [r4, #0x1a] movs r0, #0xa7 strh r0, [r4, #0x12] adds r0, r4, #0 adds r0, #0x78 ldrh r0, [r0] strh r0, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x7a ldrh r0, [r0] strh r0, [r4, #0x32] adds r0, r4, #0 movs r1, #0 bl sub_08004260 ldr r0, _08029074 @ =0x00004022 adds r1, r4, #0 adds r1, #0x76 ldrh r1, [r1] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E pop {r4, pc} .align 2, 0 _08029074: .4byte 0x00004022 thumb_func_start sub_08029078 sub_08029078: @ 0x08029078 push {r4, lr} adds r4, r0, #0 movs r0, #2 strb r0, [r4, #0xc] 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, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #0x72 bl sub_080ADF80 cmp r0, #0 bne _080290AE adds r0, r4, #0 bl sub_0805E7BC b _080290DE _080290AE: adds r0, r4, #0 movs r1, #0x6e bl sub_0801D040 movs r0, #0xd0 strh r0, [r4, #0x12] adds r0, r4, #0 bl sub_08028FDC adds r0, r4, #0 movs r1, #1 bl sub_080290E0 adds r0, r4, #0 adds r0, #0x74 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x76 ldrh r1, [r1] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E _080290DE: pop {r4, pc} thumb_func_start sub_080290E0 sub_080290E0: @ 0x080290E0 push {lr} adds r3, r1, #0 ldrb r1, [r0, #0x15] lsrs r1, r1, #3 ldr r2, _080290F8 @ =gUnk_080CCA04 adds r3, r3, r2 ldrb r2, [r3] orrs r1, r2 bl sub_08004260 pop {pc} .align 2, 0 _080290F8: .4byte gUnk_080CCA04 thumb_func_start sub_080290FC sub_080290FC: @ 0x080290FC push {r4, r5, lr} adds r2, r0, #0 ldrb r0, [r2, #0xe] cmp r0, #0 beq _08029158 subs r1, r0, #1 strb r1, [r2, #0xe] lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xf bhi _08029158 movs r0, #1 ands r0, r1 cmp r0, #0 bne _08029158 ldrb r4, [r2, #0x15] movs r0, #0x10 ands r0, r4 movs r5, #1 cmp r0, #0 beq _08029128 subs r5, #2 _08029128: movs r3, #8 adds r0, r3, #0 ands r0, r4 cmp r0, #0 beq _08029146 movs r4, #0x2e ldrsh r0, [r2, r4] ands r1, r3 cmp r1, #0 beq _08029140 subs r0, r0, r5 b _08029142 _08029140: adds r0, r0, r5 _08029142: strh r0, [r2, #0x2e] b _08029158 _08029146: movs r4, #0x32 ldrsh r0, [r2, r4] ands r1, r3 cmp r1, #0 bne _08029154 subs r0, r0, r5 b _08029156 _08029154: adds r0, r0, r5 _08029156: strh r0, [r2, #0x32] _08029158: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0802915C sub_0802915C: @ 0x0802915C push {lr} ldr r0, [r0, #0x7c] ldrb r0, [r0, #8] cmp r0, #0x5c beq _08029190 cmp r0, #0x5c bgt _08029174 cmp r0, #0x1c beq _08029186 cmp r0, #0x44 beq _0802917E b _08029194 _08029174: cmp r0, #0x6c beq _08029190 cmp r0, #0x6f beq _08029190 b _08029194 _0802917E: movs r0, #0x44 bl sub_0807CA84 b _0802918C _08029186: movs r0, #0x5a bl sub_0807CC30 _0802918C: cmp r0, #0 bne _08029194 _08029190: movs r0, #1 b _08029196 _08029194: movs r0, #0 _08029196: pop {pc} thumb_func_start sub_08029198 sub_08029198: @ 0x08029198 push {lr} adds r2, r0, #0 ldrb r1, [r2] movs r0, #0xfc ands r0, r1 cmp r0, #0xc beq _080291CA ldrb r0, [r2, #8] cmp r0, #0x1c beq _080291BC cmp r0, #0x1c bgt _080291B6 cmp r0, #9 beq _080291C4 b _080291D8 _080291B6: cmp r0, #0x44 beq _080291C4 b _080291D8 _080291BC: movs r0, #0x5a bl sub_0807CC30 b _080291D0 _080291C4: bl sub_0807CA84 b _080291D0 _080291CA: ldrh r0, [r2, #0xa] bl sub_0807CBD0 _080291D0: cmp r0, #0 beq _080291D8 movs r0, #1 b _080291DA _080291D8: movs r0, #0 _080291DA: pop {pc} thumb_func_start sub_080291DC sub_080291DC: @ 0x080291DC push {lr} ldr r0, [r0, #0x7c] ldrb r0, [r0, #8] cmp r0, #0x6c beq _080291EC cmp r0, #0x6f beq _08029204 b _08029228 _080291EC: ldr r2, _080291FC @ =gUnk_080FD5A0 ldr r1, _08029200 @ =gUnk_02002A40 adds r0, r1, #0 adds r0, #0xae ldrb r0, [r0] adds r0, r0, r2 adds r1, #0xac b _08029212 .align 2, 0 _080291FC: .4byte gUnk_080FD5A0 _08029200: .4byte gUnk_02002A40 _08029204: ldr r2, _08029220 @ =gUnk_080FD5A4 ldr r1, _08029224 @ =gUnk_02002A40 adds r0, r1, #0 adds r0, #0xaf ldrb r0, [r0] adds r0, r0, r2 adds r1, #0xad _08029212: ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bhi _08029228 movs r0, #1 b _0802922A .align 2, 0 _08029220: .4byte gUnk_080FD5A4 _08029224: .4byte gUnk_02002A40 _08029228: movs r0, #0 _0802922A: pop {pc} thumb_func_start sub_0802922C sub_0802922C: @ 0x0802922C push {r4, lr} adds r4, r0, #0 movs r0, #0 movs r1, #6 strb r1, [r4, #0xc] adds r1, r4, #0 adds r1, #0x81 strb r0, [r1] ldr r0, [r4, #0x7c] ldrb r0, [r0, #8] cmp r0, #0x6c beq _08029252 cmp r0, #0x6c bgt _08029252 cmp r0, #0x1c bne _08029252 movs r0, #0x5a bl sub_0807CD04 _08029252: adds r0, r4, #0 movs r1, #3 bl sub_080290E0 pop {r4, pc} thumb_func_start sub_0802925C sub_0802925C: @ 0x0802925C push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r0, #0 adds r0, r4, #0 bl sub_08078784 pop {r4, pc} .align 2, 0 thumb_func_start sub_08029270 sub_08029270: @ 0x08029270 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _08029296 adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 movs r1, #0xe bl sub_08004260 b _0802929C _08029296: adds r0, r2, #0 bl sub_08004274 _0802929C: pop {pc} .align 2, 0 thumb_func_start sub_080292A0 sub_080292A0: @ 0x080292A0 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xb] cmp r0, #0 bne _080292F8 adds r0, r5, #0 bl sub_080043E8 lsls r0, r0, #0x18 lsrs r4, r0, #0x18 cmp r4, #0 beq _080292CE ldrb r0, [r5, #0xc] cmp r0, #4 bne _080292C4 adds r0, r5, #0 bl sub_080296D8 _080292C4: adds r0, r5, #0 adds r1, r4, #0 bl sub_08001290 b _080292FE _080292CE: ldr r4, _080292F4 @ =gUnk_080CCC00 adds r0, r5, #0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 movs r3, #0x10 rsbs r3, r3, #0 adds r0, r5, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC b _080292FE .align 2, 0 _080292F4: .4byte gUnk_080CCC00 _080292F8: adds r0, r5, #0 bl sub_080293DC _080292FE: pop {r4, r5, pc} thumb_func_start sub_08029300 sub_08029300: @ 0x08029300 push {lr} ldr r2, _08029314 @ =gUnk_080CCC18 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08029314: .4byte gUnk_080CCC18 thumb_func_start sub_08029318 sub_08029318: @ 0x08029318 push {r4, lr} adds r4, r0, #0 adds r0, #0x3f ldrb r0, [r0] cmp r0, #0x8e bne _0802932C adds r0, r4, #0 bl sub_08029770 b _080293A6 _0802932C: ldrb r0, [r4, #0xc] cmp r0, #4 bne _08029338 adds r0, r4, #0 bl sub_080296D8 _08029338: ldr r0, [r4, #0x4c] ldrb r0, [r0, #8] cmp r0, #1 bne _08029394 ldrb r0, [r4, #0xc] cmp r0, #2 bne _08029356 adds r0, r4, #0 movs r1, #0 bl sub_08004260 ldr r0, [r4, #0x54] movs r1, #4 bl sub_08004260 _08029356: movs r1, #0 movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] strb r1, [r4, #0xf] adds r1, r4, #0 adds r1, #0x83 movs r0, #0x41 strb r0, [r1] adds r2, r4, #0 adds r2, #0x3b ldrb r1, [r2] movs r0, #0xfc ands r0, r1 strb r0, [r2] ldr r0, _08029390 @ =gUnk_03001160 adds r0, #0x29 ldrb r0, [r0] lsls r0, r0, #0x1a lsrs r0, r0, #0x1d adds r1, r4, #0 adds r1, #0x80 strb r0, [r1] movs r0, #0x82 lsls r0, r0, #1 bl sub_08004488 b _080293A6 .align 2, 0 _08029390: .4byte gUnk_03001160 _08029394: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _080293A6 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _080293A6: ldr r1, _080293B0 @ =gUnk_080CCC00 adds r0, r4, #0 bl sub_0804AA30 pop {r4, pc} .align 2, 0 _080293B0: .4byte gUnk_080CCC00 thumb_func_start sub_080293B4 sub_080293B4: @ 0x080293B4 push {lr} ldr r3, _080293D4 @ =gUnk_080CCC34 adds r1, r0, #0 adds r1, #0x84 ldrb r2, [r1] lsls r1, r2, #1 adds r1, r1, r2 ldrb r2, [r0, #0xa] adds r1, r1, r2 adds r1, r1, r3 ldrb r2, [r1] movs r1, #0xff bl sub_0804A7E0 pop {pc} .align 2, 0 _080293D4: .4byte gUnk_080CCC34 thumb_func_start nullsub_141 nullsub_141: @ 0x080293D8 bx lr .align 2, 0 thumb_func_start sub_080293DC sub_080293DC: @ 0x080293DC push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA6C ldrh r0, [r4, #0x32] adds r0, #1 strh r0, [r4, #0x32] ldrh r0, [r4, #0x36] subs r0, #1 strh r0, [r4, #0x36] ldr r1, _08029408 @ =gUnk_080CCC3C ldrb r0, [r4, #0xc] 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 _08029408: .4byte gUnk_080CCC3C thumb_func_start sub_0802940C sub_0802940C: @ 0x0802940C push {r4, r5, lr} adds r4, r0, #0 ldrb r1, [r4, #0xa] movs r0, #0x17 bl sub_0804AA60 adds r5, r0, #0 cmp r5, #0 beq _0802944A adds r0, r4, #0 bl sub_0804A720 str r4, [r5, #0x50] movs r1, #0 movs r0, #1 strb r0, [r5, #0xb] str r5, [r4, #0x54] adds r0, r4, #0 adds r0, #0x81 strb r1, [r0] adds r0, #3 strb r1, [r0] ldrb r0, [r4, #0x1a] lsls r0, r0, #0x1c lsrs r0, r0, #0x1c adds r1, r4, #0 adds r1, #0x82 strb r0, [r1] adds r0, r4, #0 bl sub_080297F0 _0802944A: pop {r4, r5, pc} thumb_func_start sub_0802944C sub_0802944C: @ 0x0802944C push {r4, lr} adds r4, r0, #0 bl sub_080296C8 adds r0, r4, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #0 beq _08029470 adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _08029470 adds r0, r4, #0 bl sub_08029770 _08029470: pop {r4, pc} .align 2, 0 thumb_func_start sub_08029474 sub_08029474: @ 0x08029474 push {r4, lr} adds r4, r0, #0 bl sub_080296C8 adds r3, r4, #0 adds r3, #0x5a ldrb r2, [r3] movs r0, #0x80 ands r0, r2 lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 beq _080294C0 movs r0, #3 strb r0, [r4, #0xc] movs r0, #8 strb r0, [r4, #0xe] ldr r1, _080294BC @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] lsls r0, r0, #0x18 lsrs r0, r0, #0x1c strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 ldr r0, [r4, #0x54] ldrb r1, [r4, #0x14] adds r1, #4 bl sub_08004260 b _080294D2 .align 2, 0 _080294BC: .4byte gUnk_03001160 _080294C0: lsls r0, r2, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bne _080294D2 strb r1, [r3] ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x10] _080294D2: pop {r4, pc} thumb_func_start sub_080294D4 sub_080294D4: @ 0x080294D4 push {r4, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0802951C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08029508 movs r0, #8 strb r0, [r4, #0xe] ldr r1, _08029518 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 adds r0, r4, #0 bl sub_0802969C _08029508: adds r0, r4, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_080296C8 b _08029538 .align 2, 0 _08029518: .4byte gUnk_03001160 _0802951C: movs r0, #6 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #3 bl sub_08004260 ldr r0, [r4, #0x54] movs r1, #7 bl sub_08004260 _08029538: pop {r4, pc} .align 2, 0 thumb_func_start sub_0802953C sub_0802953C: @ 0x0802953C push {r4, r5, lr} adds r5, r0, #0 bl sub_080296C8 adds r0, r5, #0 bl sub_080296C8 bl sub_0807953C cmp r0, #0 beq _08029558 ldrb r0, [r5, #0xf] adds r0, #1 strb r0, [r5, #0xf] _08029558: ldrb r0, [r5, #0xe] cmp r0, #0 beq _08029562 subs r0, #1 strb r0, [r5, #0xe] _08029562: ldrb r0, [r5, #0xf] cmp r0, #0x2d bhi _08029572 ldr r0, _08029580 @ =gUnk_02002A40 adds r0, #0xc0 ldrh r0, [r0] cmp r0, #0 bne _08029584 _08029572: ldrb r0, [r5, #0xe] cmp r0, #0 bne _08029584 adds r0, r5, #0 bl sub_080296D8 b _080295FE .align 2, 0 _08029580: .4byte gUnk_02002A40 _08029584: bl sub_08077B2C ldr r2, _08029600 @ =gUnk_03003F80 ldrb r1, [r2, #0x1a] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x1a] ldr r4, _08029604 @ =gUnk_03001160 movs r3, #0x80 lsls r3, r3, #9 adds r0, r5, #0 adds r1, r4, #0 movs r2, #0 bl sub_0806FA48 ldrh r0, [r5, #0x12] ldrb r1, [r5, #0x1e] bl sub_080700C8 ldrb r1, [r0] adds r2, r4, #0 adds r2, #0x62 strb r1, [r2] ldrb r0, [r0, #1] subs r0, #1 adds r1, r4, #0 adds r1, #0x63 strb r0, [r1] adds r4, #0x29 ldrb r1, [r4] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4] adds r1, r5, #0 adds r1, #0x83 ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 bne _080295FE movs r0, #0x41 strb r0, [r1] ldr r0, _08029608 @ =gUnk_02002A40 adds r0, #0xc0 ldrh r0, [r0] cmp r0, #0 beq _080295FE ldr r1, _0802960C @ =gUnk_080CCC44 ldrb r0, [r5, #0xa] adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 bl sub_080526CC adds r1, r5, #0 adds r1, #0x84 movs r0, #1 strb r0, [r1] _080295FE: pop {r4, r5, pc} .align 2, 0 _08029600: .4byte gUnk_03003F80 _08029604: .4byte gUnk_03001160 _08029608: .4byte gUnk_02002A40 _0802960C: .4byte gUnk_080CCC44 thumb_func_start sub_08029610 sub_08029610: @ 0x08029610 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xf] subs r0, #1 strb r0, [r1, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08029628 movs r0, #3 strb r0, [r1, #0xc] movs r0, #1 strb r0, [r1, #0xe] _08029628: adds r0, r1, #0 bl sub_080296C8 pop {pc} thumb_func_start sub_08029630 sub_08029630: @ 0x08029630 push {r4, lr} adds r4, r0, #0 bl sub_080296C8 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0802965E adds r1, r4, #0 adds r1, #0x81 movs r0, #1 strb r0, [r1] ldr r2, [r4, #0x54] ldrb r1, [r2, #0x18] subs r0, #5 ands r0, r1 strb r0, [r2, #0x18] adds r0, r4, #0 bl sub_080297F0 _0802965E: pop {r4, pc} thumb_func_start sub_08029660 sub_08029660: @ 0x08029660 movs r1, #1 strb r1, [r0, #0xc] movs r1, #0xd1 strh r1, [r0, #0x12] ldr r2, _08029684 @ =gUnk_080CCC47 ldrb r1, [r0, #0xa] adds r1, r1, r2 ldrb r2, [r1] movs r1, #0xf ands r2, r1 ldrb r3, [r0, #0x1a] movs r1, #0x10 rsbs r1, r1, #0 ands r1, r3 orrs r1, r2 strb r1, [r0, #0x1a] bx lr .align 2, 0 _08029684: .4byte gUnk_080CCC47 thumb_func_start sub_08029688 sub_08029688: @ 0x08029688 push {lr} adds r1, r0, #0 ldr r0, [r1, #0x50] ldr r0, [r0, #4] cmp r0, #0 bne _0802969A adds r0, r1, #0 bl sub_0805E7BC _0802969A: pop {pc} thumb_func_start sub_0802969C sub_0802969C: @ 0x0802969C push {r4, r5, lr} adds r5, r0, #0 ldrb r1, [r5, #0x15] movs r0, #0xf ands r0, r1 cmp r0, #0 beq _080296C4 lsrs r4, r1, #4 ldrb r0, [r5, #0x14] cmp r4, r0 beq _080296C4 strb r4, [r5, #0x14] adds r0, r5, #0 adds r1, r4, #0 bl sub_08004260 ldr r0, [r5, #0x54] adds r1, r4, #4 bl sub_08004260 _080296C4: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080296C8 sub_080296C8: @ 0x080296C8 push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldr r0, [r4, #0x54] bl sub_08004274 pop {r4, pc} thumb_func_start sub_080296D8 sub_080296D8: @ 0x080296D8 push {r4, r5, lr} adds r4, r0, #0 ldr r2, _08029764 @ =gUnk_03003F80 movs r0, #0x41 strb r0, [r2, #2] ldr r0, [r2, #0x30] movs r1, #0x11 rsbs r1, r1, #0 ands r0, r1 str r0, [r2, #0x30] ldr r0, _08029768 @ =gUnk_03001160 mov ip, r0 ldrb r0, [r0, #0x10] movs r1, #0x80 orrs r0, r1 mov r1, ip strb r0, [r1, #0x10] movs r0, #0xc0 lsls r0, r0, #9 str r0, [r1, #0x20] adds r1, #0x3d movs r0, #0xa6 strb r0, [r1] movs r3, #0 ldr r0, _0802976C @ =0x0000FFFE mov r1, ip strh r0, [r1, #0x36] ldrb r0, [r1, #0x14] lsls r0, r0, #2 strb r0, [r1, #0x15] adds r0, r4, #0 adds r0, #0x80 ldrb r0, [r0] mov r5, ip adds r5, #0x29 movs r1, #7 ands r1, r0 lsls r1, r1, #3 ldrb r2, [r5] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r5] mov r0, ip adds r0, #0x63 strb r3, [r0] movs r0, #0xa0 lsls r0, r0, #1 mov r1, ip strh r0, [r1, #0x24] movs r0, #5 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xf] adds r2, r4, #0 adds r2, #0x3b ldrb r1, [r2] movs r0, #3 orrs r0, r1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x3d movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bne _08029762 movs r0, #0xf4 strb r0, [r1] _08029762: pop {r4, r5, pc} .align 2, 0 _08029764: .4byte gUnk_03003F80 _08029768: .4byte gUnk_03001160 _0802976C: .4byte 0x0000FFFE thumb_func_start sub_08029770 sub_08029770: @ 0x08029770 push {r4, lr} adds r4, r0, #0 movs r1, #0x73 bl sub_080ADF80 cmp r0, #0 beq _080297E8 movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r0, #0xd1 strh r0, [r4, #0x12] 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] adds r0, r4, #0 adds r0, #0x82 ldrb r1, [r0] movs r0, #0xf ands r1, r0 ldrb r2, [r4, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x1a] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x8d strb r0, [r1] ldr r0, _080297EC @ =gUnk_080FD260 str r0, [r4, #0x48] adds r0, r4, #0 movs r1, #2 bl sub_08004260 ldr r2, [r4, #0x54] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] ldr r0, [r4, #0x54] movs r1, #6 bl sub_08004260 adds r0, r4, #0 bl sub_080A29BC _080297E8: pop {r4, pc} .align 2, 0 _080297EC: .4byte gUnk_080FD260 thumb_func_start sub_080297F0 sub_080297F0: @ 0x080297F0 push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xe] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x8e strb r0, [r1] adds r0, r4, #0 bl sub_080AE068 ldr r0, _08029850 @ =0x00000143 strh r0, [r4, #0x12] ldr r1, _08029854 @ =gUnk_080CCC47 ldrb r0, [r4, #0xa] adds r0, r0, r1 ldrb r1, [r0] movs r0, #0xf ands r1, r0 ldrb r2, [r4, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x1a] adds r1, r4, #0 adds r1, #0x60 movs r0, #9 strh r0, [r1] adds r0, r4, #0 movs r1, #0x54 bl sub_08004260 pop {r4, pc} .align 2, 0 _08029850: .4byte 0x00000143 _08029854: .4byte gUnk_080CCC47 thumb_func_start sub_08029858 sub_08029858: @ 0x08029858 push {lr} ldr r2, _0802986C @ =gUnk_080CCD44 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802986C: .4byte gUnk_080CCD44 thumb_func_start sub_08029870 sub_08029870: @ 0x08029870 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _08029888 @ =gUnk_080CCD60 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _08029888: .4byte gUnk_080CCD60 thumb_func_start sub_0802988C sub_0802988C: @ 0x0802988C push {lr} ldr r2, _080298A0 @ =gUnk_080CCD78 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080298A0: .4byte gUnk_080CCD78 thumb_func_start sub_080298A4 sub_080298A4: @ 0x080298A4 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xc] cmp r0, #1 bne _08029970 adds r0, r5, #0 adds r0, #0x41 ldrb r0, [r0] movs r1, #0x7f ands r1, r0 cmp r1, #0x1e bhi _08029948 lsls r0, r1, #2 ldr r1, _080298C8 @ =_080298CC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080298C8: .4byte _080298CC _080298CC: @ jump table .4byte _08029970 @ case 0 .4byte _08029970 @ case 1 .4byte _08029970 @ case 2 .4byte _08029970 @ case 3 .4byte _08029948 @ case 4 .4byte _08029948 @ case 5 .4byte _08029948 @ case 6 .4byte _08029948 @ case 7 .4byte _08029948 @ case 8 .4byte _08029948 @ case 9 .4byte _08029948 @ case 10 .4byte _08029948 @ case 11 .4byte _08029948 @ case 12 .4byte _08029948 @ case 13 .4byte _08029948 @ case 14 .4byte _08029970 @ case 15 .4byte _08029948 @ case 16 .4byte _08029948 @ case 17 .4byte _08029948 @ case 18 .4byte _08029970 @ case 19 .4byte _08029948 @ case 20 .4byte _08029948 @ case 21 .4byte _08029948 @ case 22 .4byte _08029948 @ case 23 .4byte _08029948 @ case 24 .4byte _08029948 @ case 25 .4byte _08029948 @ case 26 .4byte _08029970 @ case 27 .4byte _08029948 @ case 28 .4byte _08029948 @ case 29 .4byte _08029970 @ case 30 _08029948: movs r1, #0 movs r4, #2 strb r4, [r5, #0xc] strb r1, [r5, #0xe] adds r2, r5, #0 adds r2, #0x3f movs r0, #0x6b strb r0, [r2] adds r0, r5, #0 adds r0, #0x77 strb r1, [r0] adds r0, r5, #0 movs r1, #0x7f bl sub_0801D2B4 movs r0, #0xfe bl sub_08004488 ldr r0, [r5, #0x54] strb r4, [r0, #0xc] _08029970: ldr r1, _0802997C @ =gUnk_080CCD60 adds r0, r5, #0 bl sub_0804AA30 pop {r4, r5, pc} .align 2, 0 _0802997C: .4byte gUnk_080CCD60 thumb_func_start sub_08029980 sub_08029980: @ 0x08029980 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xf] cmp r0, #0 beq _08029990 subs r0, #1 strb r0, [r1, #0xf] b _08029996 _08029990: adds r0, r1, #0 bl sub_0804A7D4 _08029996: pop {pc} thumb_func_start nullsub_14 nullsub_14: @ 0x08029998 bx lr .align 2, 0 thumb_func_start sub_0802999C sub_0802999C: @ 0x0802999C push {r4, r5, r6, r7, lr} adds r7, r0, #0 ldr r0, _08029A90 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x43 bhi _08029A8E movs r0, #0x18 movs r1, #1 bl sub_0804AA60 adds r4, r0, #0 str r7, [r4, #0x50] adds r0, r7, #0 adds r1, r4, #0 movs r2, #0 movs r3, #5 bl sub_0806FA48 str r4, [r7, #0x54] movs r0, #0x18 movs r1, #2 bl sub_0804AA60 adds r5, r0, #0 str r7, [r5, #0x50] adds r0, r7, #0 adds r1, r5, #0 movs r2, #0 movs r3, #4 bl sub_0806FA48 str r5, [r4, #0x54] movs r0, #0x18 movs r1, #3 bl sub_0804AA60 adds r4, r0, #0 str r7, [r4, #0x50] adds r0, r7, #0 adds r1, r4, #0 movs r2, #0 movs r3, #3 bl sub_0806FA48 str r4, [r5, #0x54] movs r0, #0x18 movs r1, #4 bl sub_0804AA60 adds r5, r0, #0 str r7, [r5, #0x50] adds r0, r7, #0 adds r1, r5, #0 movs r2, #0 movs r3, #2 bl sub_0806FA48 str r5, [r4, #0x54] movs r0, #0x18 movs r1, #5 bl sub_0804AA60 adds r6, r0, #0 str r7, [r6, #0x50] adds r0, r7, #0 adds r1, r6, #0 movs r2, #0 movs r3, #1 bl sub_0806FA48 str r6, [r5, #0x54] movs r0, #0x18 movs r1, #6 bl sub_0804AA60 adds r4, r0, #0 str r7, [r4, #0x54] str r7, [r4, #0x50] adds r0, r7, #0 adds r1, r4, #0 movs r2, #0 movs r3, #0 bl sub_0806FA48 str r4, [r6, #0x54] movs r4, #1 strb r4, [r7, #0xc] ldrb r1, [r7, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r7, #0x10] bl sub_08000E50 movs r1, #0x18 ands r0, r1 strb r0, [r7, #0x15] movs r2, #0 movs r0, #0xa0 strh r0, [r7, #0x24] movs r0, #0xff strb r0, [r7, #0x14] ldr r0, [r7, #0x30] adds r0, #6 str r0, [r7, #0x30] str r7, [r7, #0x50] adds r1, r7, #0 adds r1, #0x74 movs r0, #1 rsbs r0, r0, #0 strb r0, [r1] adds r0, r7, #0 adds r0, #0x75 strb r2, [r0] adds r0, #2 strb r4, [r0] adds r0, r7, #0 bl sub_08029E0C adds r0, r7, #0 bl sub_08029EEC _08029A8E: pop {r4, r5, r6, r7, pc} .align 2, 0 _08029A90: .4byte gUnk_03003DBC thumb_func_start sub_08029A94 sub_08029A94: @ 0x08029A94 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_0802A098 pop {r4, pc} thumb_func_start sub_08029AA4 sub_08029AA4: @ 0x08029AA4 push {lr} adds r1, r0, #0 adds r0, #0x77 ldrb r0, [r0] cmp r0, #0 beq _08029ADA movs r0, #3 strb r0, [r1, #0xc] movs r0, #0x84 lsls r0, r0, #1 strh r0, [r1, #0x24] adds r2, r1, #0 adds r2, #0x3f movs r0, #0x6a strb r0, [r2] adds r2, #0x3b adds r0, #0xfe strh r0, [r2] subs r2, #5 movs r0, #4 strb r0, [r2] adds r0, r1, #0 bl sub_08029EEC ldr r0, _08029ADC @ =0x0000019D bl sub_08004488 _08029ADA: pop {pc} .align 2, 0 _08029ADC: .4byte 0x0000019D thumb_func_start sub_08029AE0 sub_08029AE0: @ 0x08029AE0 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_0802A16C adds r0, r4, #0 bl sub_0802A098 adds r1, r4, #0 adds r1, #0x7a ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08029B28 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0xa0 strh r0, [r4, #0x24] subs r1, #5 movs r0, #0 strb r0, [r1] adds r0, r4, #0 bl sub_08029EEC adds r0, r4, #0 movs r1, #0x77 bl sub_0801D2B4 movs r0, #0xc1 lsls r0, r0, #1 bl sub_08004488 _08029B28: pop {r4, pc} .align 2, 0 thumb_func_start sub_08029B2C sub_08029B2C: @ 0x08029B2C push {r4, lr} adds r4, r0, #0 bl sub_0802A14C cmp r0, #0 beq _08029B7A adds r2, r4, #0 adds r2, #0x86 ldrb r0, [r2] cmp r0, #0 beq _08029B60 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08029B8A adds r0, r4, #0 movs r1, #0x48 movs r2, #0 bl sub_080A29AC adds r0, r4, #0 bl sub_0805E7BC b _08029B8A _08029B60: ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrb r0, [r4, #0xa] lsls r1, r0, #4 subs r1, r1, r0 movs r0, #0x5a subs r0, r0, r1 strb r0, [r4, #0xe] movs r0, #1 strb r0, [r2] b _08029B8A _08029B7A: ldr r0, _08029B8C @ =gUnk_080CCD88 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _08029B8A: pop {r4, pc} .align 2, 0 _08029B8C: .4byte gUnk_080CCD88 thumb_func_start sub_08029B90 sub_08029B90: @ 0x08029B90 push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_0802A058 ldrb r0, [r4, #0xa] cmp r0, #1 bhi _08029BBA adds r0, r4, #0 movs r1, #0 bl sub_08004260 b _08029BC2 _08029BBA: adds r0, r4, #0 movs r1, #4 bl sub_08004260 _08029BC2: pop {r4, pc} thumb_func_start sub_08029BC4 sub_08029BC4: @ 0x08029BC4 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_0802A18C movs r0, #0x2e ldrsh r5, [r4, r0] movs r0, #0x32 ldrsh r6, [r4, r0] adds r0, r4, #0 bl sub_08029FE4 cmp r0, #0 beq _08029BF2 ldrb r0, [r4, #0xa] movs r2, #4 cmp r0, #1 bhi _08029BE8 movs r2, #0 _08029BE8: ldrb r1, [r4, #0x14] adds r1, r1, r2 adds r0, r4, #0 bl sub_08004260 _08029BF2: movs r0, #0x2e ldrsh r1, [r4, r0] subs r1, r1, r5 movs r0, #0x32 ldrsh r2, [r4, r0] subs r2, r2, r6 adds r0, r4, #0 bl sub_08029FB4 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08029C08 sub_08029C08: @ 0x08029C08 movs r1, #3 strb r1, [r0, #0xc] ldr r2, _08029C28 @ =gUnk_080CCDA0 ldrb r1, [r0, #0xa] adds r1, r1, r2 ldrb r1, [r1] strb r1, [r0, #0xe] adds r2, r0, #0 adds r2, #0x3f movs r1, #0x6b strb r1, [r2] ldr r1, [r0, #0x54] movs r0, #2 strb r0, [r1, #0xc] bx lr .align 2, 0 _08029C28: .4byte gUnk_080CCDA0 thumb_func_start sub_08029C2C sub_08029C2C: @ 0x08029C2C 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 _08029C4E movs r0, #4 strb r0, [r1, #0xc] adds r0, r1, #0 movs r1, #0x7f bl sub_0801D2B4 movs r0, #0x6c bl sub_08004488 _08029C4E: pop {pc} thumb_func_start sub_08029C50 sub_08029C50: @ 0x08029C50 push {lr} adds r1, r0, #0 ldr r0, [r1, #0x50] adds r0, #0x77 ldrb r0, [r0] cmp r0, #0 beq _08029C68 movs r0, #5 strb r0, [r1, #0xc] adds r1, #0x3f movs r0, #0x6a strb r0, [r1] _08029C68: pop {pc} .align 2, 0 thumb_func_start sub_08029C6C sub_08029C6C: @ 0x08029C6C push {r4, lr} adds r4, r0, #0 bl sub_0802A18C adds r0, r4, #0 bl sub_08029BC4 ldr r0, [r4, #0x50] ldrb r0, [r0, #0xc] cmp r0, #3 beq _08029C90 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0x77 bl sub_0801D2B4 b _08029C96 _08029C90: adds r0, r4, #0 bl sub_0802A16C _08029C96: pop {r4, pc} thumb_func_start sub_08029C98 sub_08029C98: @ 0x08029C98 push {r4, lr} adds r4, r0, #0 bl sub_0802A14C cmp r0, #0 beq _08029CB6 adds r0, r4, #0 movs r1, #0x48 movs r2, #0 bl sub_080A29AC adds r0, r4, #0 bl sub_0805E7BC b _08029CC6 _08029CB6: ldr r0, _08029CC8 @ =gUnk_080CCDA8 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _08029CC6: pop {r4, pc} .align 2, 0 _08029CC8: .4byte gUnk_080CCDA8 thumb_func_start sub_08029CCC sub_08029CCC: @ 0x08029CCC push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_0802A058 adds r0, r4, #0 movs r1, #8 bl sub_08004260 pop {r4, pc} thumb_func_start sub_08029CF0 sub_08029CF0: @ 0x08029CF0 push {r4, lr} adds r4, r0, #0 bl sub_08029FE4 cmp r0, #0 beq _08029D06 ldrb r1, [r4, #0x14] adds r1, #8 adds r0, r4, #0 bl sub_08004260 _08029D06: pop {r4, pc} thumb_func_start sub_08029D08 sub_08029D08: @ 0x08029D08 movs r1, #3 strb r1, [r0, #0xc] movs r1, #0x47 strb r1, [r0, #0xe] bx lr .align 2, 0 thumb_func_start sub_08029D14 sub_08029D14: @ 0x08029D14 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08029D42 subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08029D70 ldrb r1, [r4, #0x14] adds r1, #0xc adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 movs r1, #0x7f bl sub_0801D2B4 movs r0, #0x6c bl sub_08004488 b _08029D70 _08029D42: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08029D70 movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x6c strb r0, [r1] ldr r0, _08029D74 @ =gUnk_080FD298 str r0, [r4, #0x48] movs r0, #0x6b bl sub_08004488 _08029D70: pop {r4, pc} .align 2, 0 _08029D74: .4byte gUnk_080FD298 thumb_func_start sub_08029D78 sub_08029D78: @ 0x08029D78 push {r4, lr} adds r4, r0, #0 bl sub_0802A0F8 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08029DA6 movs r0, #5 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x6a strb r0, [r1] ldr r0, _08029DA8 @ =gUnk_080FD2A0 str r0, [r4, #0x48] ldrb r1, [r4, #0x14] adds r1, #0x10 adds r0, r4, #0 bl sub_08004260 _08029DA6: pop {r4, pc} .align 2, 0 _08029DA8: .4byte gUnk_080FD2A0 thumb_func_start sub_08029DAC sub_08029DAC: @ 0x08029DAC push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08029DD8 movs r0, #6 strb r0, [r4, #0xc] ldr r0, [r4, #0x50] adds r0, #0x77 movs r1, #1 strb r1, [r0] ldrb r1, [r4, #0x14] adds r1, #8 adds r0, r4, #0 bl sub_08004260 _08029DD8: pop {r4, pc} .align 2, 0 thumb_func_start sub_08029DDC sub_08029DDC: @ 0x08029DDC movs r1, #7 strb r1, [r0, #0xc] bx lr .align 2, 0 thumb_func_start sub_08029DE4 sub_08029DE4: @ 0x08029DE4 push {r4, lr} adds r4, r0, #0 bl sub_08029CF0 ldr r0, [r4, #0x50] ldrb r0, [r0, #0xc] cmp r0, #3 beq _08029E02 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0x77 bl sub_0801D2B4 b _08029E08 _08029E02: adds r0, r4, #0 bl sub_0802A16C _08029E08: pop {r4, pc} .align 2, 0 thumb_func_start sub_08029E0C sub_08029E0C: @ 0x08029E0C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 adds r5, r0, #0 ldrb r0, [r5, #0x15] lsrs r0, r0, #3 lsls r1, r0, #1 adds r1, r1, r0 ldr r0, _08029EE0 @ =gUnk_080CCDC8 adds r1, r1, r0 str r1, [sp] bl sub_08000E50 movs r1, #1 ands r1, r0 lsls r1, r1, #1 subs r1, #1 mov sl, r1 bl sub_08000E50 adds r1, r0, #0 movs r0, #0xf ands r0, r1 movs r1, #3 bl __modsi3 mov sb, r0 movs r1, #0x2e ldrsh r0, [r5, r1] ldr r3, _08029EE4 @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r0, r0, r1 asrs r0, r0, #4 mov r8, r0 movs r2, #0x3f ands r0, r2 mov r8, r0 movs r1, #0x32 ldrsh r0, [r5, r1] ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 mov r1, r8 orrs r1, r0 mov r8, r1 movs r7, #0 _08029E72: ldr r0, [sp] add r0, sb ldrb r4, [r0] lsrs r0, r4, #3 lsls r0, r0, #1 ldr r1, _08029EE8 @ =gUnk_080B4488 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] add r0, r8 adds r1, r5, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080002E0 adds r6, r5, #0 adds r6, #0x74 cmp r0, #0 bne _08029EA6 str r4, [sp, #4] ldrb r1, [r5, #0x15] ldrb r0, [r6] subs r0, r1, r0 subs r1, r4, r1 cmp r0, r1 bne _08029EBA _08029EA6: mov r0, sb add r0, sl adds r0, #3 movs r1, #3 bl __modsi3 mov sb, r0 adds r7, #1 cmp r7, #2 bls _08029E72 _08029EBA: cmp r7, #3 bne _08029EC0 ldr r4, [sp, #4] _08029EC0: ldrb r1, [r5, #0x15] ldrb r0, [r6] cmp r0, r1 beq _08029ECA strb r1, [r6] _08029ECA: strb r4, [r5, #0x15] adds r0, r5, #0 bl sub_08029F0C 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 _08029EE0: .4byte gUnk_080CCDC8 _08029EE4: .4byte gUnk_03000BF0 _08029EE8: .4byte gUnk_080B4488 thumb_func_start sub_08029EEC sub_08029EEC: @ 0x08029EEC push {lr} adds r3, r0, #0 ldrb r0, [r3, #0x15] adds r2, r3, #0 adds r2, #0x75 lsrs r0, r0, #3 ldrb r2, [r2] adds r1, r0, r2 ldrb r0, [r3, #0x14] cmp r1, r0 beq _08029F0A strb r1, [r3, #0x14] adds r0, r3, #0 bl sub_080042AC _08029F0A: pop {pc} thumb_func_start sub_08029F0C sub_08029F0C: @ 0x08029F0C push {lr} adds r1, r0, #0 ldrb r0, [r1, #0x15] lsrs r0, r0, #3 cmp r0, #1 beq _08029F30 cmp r0, #1 bgt _08029F22 cmp r0, #0 beq _08029F2C b _08029F44 _08029F22: cmp r0, #2 beq _08029F36 cmp r0, #3 beq _08029F3C b _08029F44 _08029F2C: ldrh r0, [r1, #0x32] b _08029F3E _08029F30: ldrh r0, [r1, #0x2e] adds r0, #0x10 b _08029F40 _08029F36: ldrh r0, [r1, #0x32] adds r0, #0x10 b _08029F40 _08029F3C: ldrh r0, [r1, #0x2e] _08029F3E: subs r0, #0x10 _08029F40: adds r1, #0x78 strh r0, [r1] _08029F44: pop {pc} .align 2, 0 thumb_func_start sub_08029F48 sub_08029F48: @ 0x08029F48 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0x15] lsrs r0, r0, #3 cmp r0, #1 beq _08029F78 cmp r0, #1 bgt _08029F5E cmp r0, #0 beq _08029F68 b _08029FB0 _08029F5E: cmp r0, #2 beq _08029F88 cmp r0, #3 beq _08029F9C b _08029FB0 _08029F68: movs r0, #0x32 ldrsh r1, [r2, r0] adds r0, r2, #0 adds r0, #0x78 ldrh r0, [r0] cmp r1, r0 bgt _08029FB0 b _08029F96 _08029F78: movs r0, #0x2e ldrsh r1, [r2, r0] adds r0, r2, #0 adds r0, #0x78 ldrh r0, [r0] cmp r1, r0 blt _08029FB0 b _08029FAA _08029F88: movs r0, #0x32 ldrsh r1, [r2, r0] adds r0, r2, #0 adds r0, #0x78 ldrh r0, [r0] cmp r1, r0 blt _08029FB0 _08029F96: strh r0, [r2, #0x32] movs r0, #1 b _08029FB2 _08029F9C: movs r0, #0x2e ldrsh r1, [r2, r0] adds r0, r2, #0 adds r0, #0x78 ldrh r0, [r0] cmp r1, r0 bgt _08029FB0 _08029FAA: strh r0, [r2, #0x2e] movs r0, #1 b _08029FB2 _08029FB0: movs r0, #0 _08029FB2: pop {pc} thumb_func_start sub_08029FB4 sub_08029FB4: @ 0x08029FB4 push {r4, r5, r6, lr} adds r5, r1, #0 adds r4, r2, #0 ldr r6, [r0, #0x54] adds r6, #0x78 ldr r0, [r0, #0x50] adds r0, #0x7e ldrb r0, [r0] movs r1, #0xe bl __modsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 adds r6, r6, r0 adds r5, #8 movs r0, #0xf ands r5, r0 adds r4, #8 ands r4, r0 lsls r4, r4, #4 orrs r5, r4 strb r5, [r6] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08029FE4 sub_08029FE4: @ 0x08029FE4 push {r4, r5, r6, lr} adds r5, r0, #0 adds r4, r5, #0 adds r4, #0x78 ldr r0, [r5, #0x50] adds r0, #0x7e ldrb r0, [r0] adds r0, #1 movs r1, #0xe bl __modsi3 adds r4, r4, r0 ldrb r1, [r4] movs r0, #0xf ands r0, r1 subs r0, #8 lsrs r1, r1, #4 subs r1, #8 lsls r1, r1, #0x18 lsls r0, r0, #0x18 asrs r4, r0, #0x18 ldrh r0, [r5, #0x2e] adds r0, r0, r4 strh r0, [r5, #0x2e] lsrs r6, r1, #0x18 asrs r1, r1, #0x18 ldrh r0, [r5, #0x32] adds r1, r1, r0 strh r1, [r5, #0x32] adds r0, r5, #0 bl sub_08004274 movs r1, #0xff cmp r4, #0 beq _0802A032 movs r1, #3 cmp r4, #0 ble _0802A032 movs r1, #1 _0802A032: lsls r0, r6, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0802A042 movs r1, #0 cmp r0, #0 ble _0802A042 movs r1, #2 _0802A042: cmp r1, #0xff beq _0802A052 ldrb r0, [r5, #0x14] cmp r1, r0 beq _0802A052 strb r1, [r5, #0x14] movs r0, #1 b _0802A054 _0802A052: movs r0, #0 _0802A054: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0802A058 sub_0802A058: @ 0x0802A058 adds r2, r0, #0 adds r0, #0x78 movs r1, #0x88 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, #1 strb r1, [r0] bx lr .align 2, 0 thumb_func_start sub_0802A098 sub_0802A098: @ 0x0802A098 push {r4, r5, r6, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x7e ldrb r0, [r5] adds r0, #1 strb r0, [r5] ldrb r0, [r5] movs r1, #0xe bl __modsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 bne _0802A0B8 strb r0, [r5] _0802A0B8: movs r0, #0x2e ldrsh r5, [r4, r0] movs r0, #0x32 ldrsh r6, [r4, r0] adds r0, r4, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_08029F48 cmp r0, #0 beq _0802A0E4 adds r0, r4, #0 bl sub_08029E0C adds r0, r4, #0 bl sub_08029EEC movs r0, #0x82 lsls r0, r0, #1 bl sub_08004488 _0802A0E4: movs r0, #0x2e ldrsh r1, [r4, r0] subs r1, r1, r5 movs r0, #0x32 ldrsh r2, [r4, r0] subs r2, r2, r6 adds r0, r4, #0 bl sub_08029FB4 pop {r4, r5, r6, pc} thumb_func_start sub_0802A0F8 sub_0802A0F8: @ 0x0802A0F8 push {r4, lr} adds r3, r0, #0 adds r0, #0x45 ldrb r4, [r0] cmp r4, #0 beq _0802A134 subs r0, #4 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0802A14A adds r1, r3, #0 adds r1, #0x3d movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _0802A14A adds r2, r3, #0 movs r3, #0 adds r4, r1, #0 _0802A122: ldr r2, [r2, #0x54] ldrb r0, [r4] adds r1, r2, #0 adds r1, #0x3d strb r0, [r1] adds r3, #1 cmp r3, #5 bls _0802A122 b _0802A14A _0802A134: ldr r2, [r3, #0x50] ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0x10] ldr r0, [r3, #0x50] adds r0, #0x45 strb r4, [r0] ldr r1, [r3, #0x50] movs r0, #0x69 strb r0, [r1, #0xf] _0802A14A: pop {r4, pc} thumb_func_start sub_0802A14C sub_0802A14C: @ 0x0802A14C push {lr} adds r1, r0, #0 movs r2, #0 ldr r0, [r1, #0x50] adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 beq _0802A166 adds r0, r1, #0 adds r0, #0x86 ldrb r0, [r0] cmp r0, #0 beq _0802A168 _0802A166: movs r2, #1 _0802A168: adds r0, r2, #0 pop {pc} thumb_func_start sub_0802A16C sub_0802A16C: @ 0x0802A16C push {lr} ldr r3, _0802A188 @ =gUnk_080CCDD4 ldr r1, [r0, #0x50] adds r1, #0x7a ldrh r1, [r1] lsrs r1, r1, #2 movs r2, #3 ands r1, r2 lsls r1, r1, #1 adds r1, r1, r3 ldrh r1, [r1] bl sub_0801D2B4 pop {pc} .align 2, 0 _0802A188: .4byte gUnk_080CCDD4 thumb_func_start sub_0802A18C sub_0802A18C: @ 0x0802A18C push {lr} adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0802A234 movs r0, #0x7f ands r0, r1 cmp r0, #0x1e bhi _0802A22C lsls r0, r0, #2 ldr r1, _0802A1AC @ =_0802A1B0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802A1AC: .4byte _0802A1B0 _0802A1B0: @ jump table .4byte _0802A234 @ case 0 .4byte _0802A234 @ case 1 .4byte _0802A234 @ case 2 .4byte _0802A234 @ case 3 .4byte _0802A22C @ case 4 .4byte _0802A22C @ case 5 .4byte _0802A22C @ case 6 .4byte _0802A22C @ case 7 .4byte _0802A22C @ case 8 .4byte _0802A22C @ case 9 .4byte _0802A22C @ case 10 .4byte _0802A22C @ case 11 .4byte _0802A22C @ case 12 .4byte _0802A22C @ case 13 .4byte _0802A22C @ case 14 .4byte _0802A234 @ case 15 .4byte _0802A22C @ case 16 .4byte _0802A22C @ case 17 .4byte _0802A22C @ case 18 .4byte _0802A234 @ case 19 .4byte _0802A22C @ case 20 .4byte _0802A22C @ case 21 .4byte _0802A22C @ case 22 .4byte _0802A22C @ case 23 .4byte _0802A22C @ case 24 .4byte _0802A22C @ case 25 .4byte _0802A22C @ case 26 .4byte _0802A234 @ case 27 .4byte _0802A22C @ case 28 .4byte _0802A22C @ case 29 .4byte _0802A234 @ case 30 _0802A22C: movs r0, #0x97 lsls r0, r0, #1 bl sub_08004488 _0802A234: pop {pc} .align 2, 0 thumb_func_start sub_0802A238 sub_0802A238: @ 0x0802A238 push {lr} ldr r2, _0802A24C @ =gUnk_080CD030 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802A24C: .4byte gUnk_080CD030 thumb_func_start sub_0802A250 sub_0802A250: @ 0x0802A250 push {r4, r5, lr} adds r5, r0, #0 movs r1, #0 movs r0, #1 strb r0, [r5, #0xc] strb r1, [r5, #0xe] ldr r0, _0802A2A8 @ =0xFFFD0000 str r0, [r5, #0x20] bl sub_08000E50 ldr r1, _0802A2AC @ =gUnk_080CD03C movs r4, #3 ands r0, r4 adds r0, r0, r1 ldrb r0, [r0] strh r0, [r5, #0x24] bl sub_08000E50 ldr r1, _0802A2B0 @ =gUnk_080CD040 ands r0, r4 adds r0, r0, r1 ldrb r0, [r0] adds r0, #0x18 strb r0, [r5, #0x15] adds r1, r5, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r5, #0 movs r1, #0 bl sub_08004260 adds r0, r5, #0 bl sub_08016A04 movs r0, #0x66 movs r1, #0 movs r2, #0 bl sub_080A2960 cmp r0, #0 beq _0802A2A6 str r5, [r0, #0x50] _0802A2A6: pop {r4, r5, pc} .align 2, 0 _0802A2A8: .4byte 0xFFFD0000 _0802A2AC: .4byte gUnk_080CD03C _0802A2B0: .4byte gUnk_080CD040 thumb_func_start sub_0802A2B4 sub_0802A2B4: @ 0x0802A2B4 push {r4, lr} adds r4, r0, #0 movs r1, #0xa0 lsls r1, r1, #6 bl sub_08003FC4 cmp r0, #0 bne _0802A2DC movs r0, #2 strb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] movs r0, #0x84 bl sub_08004488 b _0802A2E2 _0802A2DC: adds r0, r4, #0 bl sub_0806F69C _0802A2E2: adds r0, r4, #0 bl sub_0802A39C movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #8 rsbs r0, r0, #0 cmp r1, r0 ble _0802A2FA adds r0, r4, #0 bl sub_0802A334 _0802A2FA: pop {r4, pc} thumb_func_start sub_0802A2FC sub_0802A2FC: @ 0x0802A2FC push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0802A31A adds r0, r4, #0 bl sub_0805E7BC b _0802A332 _0802A31A: movs r0, #1 ands r0, r1 cmp r0, #0 beq _0802A32C ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] b _0802A332 _0802A32C: adds r0, r4, #0 bl sub_0802A39C _0802A332: pop {r4, pc} thumb_func_start sub_0802A334 sub_0802A334: @ 0x0802A334 push {r4, r5, lr} adds r4, r0, #0 movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _0802A380 @ =gUnk_03000BF0 movs r3, #0xa ldrsh r0, [r2, r3] ldr r3, _0802A384 @ =gUnk_03000F50 subs r1, r1, r0 ldrh r5, [r3, #0x16] adds r1, r1, r5 asrs r1, r1, #3 movs r5, #0x32 ldrsh r0, [r4, r5] movs r5, #0xc ldrsh r2, [r2, r5] subs r0, r0, r2 ldrh r3, [r3, #0x18] adds r0, r0, r3 asrs r0, r0, #3 ldr r3, _0802A388 @ =gUnk_02001A40 movs r2, #0x1f ands r1, r2 ands r0, r2 lsls r0, r0, #5 adds r1, r1, r0 movs r0, #0x80 lsls r0, r0, #3 adds r1, r1, r0 lsls r1, r1, #1 adds r1, r1, r3 ldrh r0, [r1] cmp r0, #0 beq _0802A38C adds r1, r4, #0 adds r1, #0x38 movs r0, #2 b _0802A392 .align 2, 0 _0802A380: .4byte gUnk_03000BF0 _0802A384: .4byte gUnk_03000F50 _0802A388: .4byte gUnk_02001A40 _0802A38C: adds r1, r4, #0 adds r1, #0x38 movs r0, #1 _0802A392: strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 pop {r4, r5, pc} thumb_func_start sub_0802A39C sub_0802A39C: @ 0x0802A39C push {r4, r5, r6, lr} adds r5, r0, #0 ldr r4, _0802A3EC @ =gUnk_03001160 movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _0802A3F0 @ =gUnk_03000BF0 movs r3, #0xa ldrsh r0, [r2, r3] ldr r3, _0802A3F4 @ =gUnk_03000F50 subs r1, r1, r0 ldrh r6, [r3, #0x16] adds r1, r1, r6 asrs r1, r1, #3 movs r6, #0x32 ldrsh r0, [r4, r6] movs r4, #0xc ldrsh r2, [r2, r4] subs r0, r0, r2 ldrh r3, [r3, #0x18] adds r0, r0, r3 subs r0, #0xa asrs r0, r0, #3 ldr r3, _0802A3F8 @ =gUnk_02001A40 movs r2, #0x1f ands r1, r2 ands r0, r2 lsls r0, r0, #5 adds r1, r1, r0 movs r6, #0x80 lsls r6, r6, #3 adds r1, r1, r6 lsls r1, r1, #1 adds r1, r1, r3 ldrh r0, [r1] cmp r0, #0 beq _0802A3FC ldrb r1, [r5, #0x10] movs r0, #0x7f ands r0, r1 b _0802A402 .align 2, 0 _0802A3EC: .4byte gUnk_03001160 _0802A3F0: .4byte gUnk_03000BF0 _0802A3F4: .4byte gUnk_03000F50 _0802A3F8: .4byte gUnk_02001A40 _0802A3FC: ldrb r1, [r5, #0x10] movs r0, #0x80 orrs r0, r1 _0802A402: strb r0, [r5, #0x10] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0802A408 sub_0802A408: @ 0x0802A408 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _0802A430 @ =gUnk_080CD07C bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r5 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, r5, pc} .align 2, 0 _0802A430: .4byte gUnk_080CD07C thumb_func_start sub_0802A434 sub_0802A434: @ 0x0802A434 push {r4, lr} adds r4, r0, #0 bl sub_0802A78C ldr r1, _0802A450 @ =gUnk_080CD094 ldrb r0, [r4, #0xc] 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 _0802A450: .4byte gUnk_080CD094 thumb_func_start sub_0802A454 sub_0802A454: @ 0x0802A454 push {r4, lr} adds r4, r0, #0 adds r0, #0x3f ldrb r0, [r0] cmp r0, #0x75 beq _0802A4A8 adds r0, r4, #0 adds r0, #0x41 ldrb r0, [r0] movs r2, #0x7f adds r1, r2, #0 ands r1, r0 cmp r1, #0 beq _0802A474 cmp r1, #0x1e bne _0802A4A8 _0802A474: movs r0, #5 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] adds r0, r2, #0 ands r0, r1 strb r0, [r4, #0x10] ldr r1, _0802A4D8 @ =gUnk_03001160 ldrh r0, [r1, #0x2e] adds r2, r4, #0 adds r2, #0x7e strh r0, [r2] ldrh r2, [r1, #0x32] adds r0, r4, #0 adds r0, #0x80 strh r2, [r0] ldrh r0, [r1, #0x36] adds r1, r4, #0 adds r1, #0x82 strh r0, [r1] ldrb r0, [r4, #0xc] cmp r0, #3 beq _0802A4A8 adds r0, r4, #0 movs r1, #1 bl sub_08004260 _0802A4A8: adds r2, r4, #0 adds r2, #0x42 ldrb r0, [r2] adds r1, r0, #0 cmp r1, #0 beq _0802A4BC cmp r1, #4 bls _0802A4BC subs r0, #4 strb r0, [r2] _0802A4BC: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _0802A4CE adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _0802A4CE: ldr r1, _0802A4DC @ =gUnk_080CD07C adds r0, r4, #0 bl sub_0804AA30 pop {r4, pc} .align 2, 0 _0802A4D8: .4byte gUnk_03001160 _0802A4DC: .4byte gUnk_080CD07C thumb_func_start nullsub_142 nullsub_142: @ 0x0802A4E0 bx lr .align 2, 0 thumb_func_start sub_0802A4E4 sub_0802A4E4: @ 0x0802A4E4 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x38 movs r0, #3 strb r0, [r1] bl sub_08000E50 adds r1, r4, #0 adds r1, #0x7d strb r0, [r1] ldrb r1, [r4, #0xb] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 adds r1, r4, #0 adds r1, #0x7a strh r0, [r1] ldrb r1, [r4, #0xe] adds r0, r4, #0 adds r0, #0x7c strb r1, [r0] ldrb r1, [r4, #0xe] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 adds r1, r4, #0 adds r1, #0x78 strh r0, [r1] adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 bl sub_0802A7D0 pop {r4, pc} thumb_func_start sub_0802A534 sub_0802A534: @ 0x0802A534 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x78 ldrh r0, [r1] cmp r0, #0 beq _0802A548 subs r0, #1 strh r0, [r1] b _0802A5B0 _0802A548: adds r0, r4, #0 adds r0, #0x7a ldrh r0, [r0] cmp r0, #0 bne _0802A5B0 movs r0, #1 bl sub_08049DF4 adds r2, r0, #0 cmp r2, #0 beq _0802A5B0 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x5a strb r0, [r4, #0xe] 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] ldrh r0, [r2, #0x2e] strh r0, [r4, #0x2e] ldrh r0, [r2, #0x32] strh r0, [r4, #0x32] ldr r0, _0802A5B4 @ =0x0000FF80 strh r0, [r4, #0x36] 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] ldrb r1, [r4, #0x18] movs r0, #0x31 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x20 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 bl sub_08004260 adds r0, r4, #0 bl sub_0802A7D0 _0802A5B0: pop {r4, pc} .align 2, 0 _0802A5B4: .4byte 0x0000FF80 thumb_func_start sub_0802A5B8 sub_0802A5B8: @ 0x0802A5B8 push {r4, lr} adds r4, r0, #0 bl sub_0802A7D0 ldrb r0, [r4, #0xe] adds r2, r0, #0 cmp r2, #0 beq _0802A5E8 subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802A60E ldr r0, _0802A5E4 @ =0x0000012D bl sub_08004488 adds r0, r4, #0 movs r1, #0 bl sub_08004260 b _0802A60E .align 2, 0 _0802A5E4: .4byte 0x0000012D _0802A5E8: ldrh r0, [r4, #0x36] adds r0, #3 strh r0, [r4, #0x36] lsls r0, r0, #0x10 cmp r0, #0 blt _0802A60E movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #7 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] strh r2, [r4, #0x36] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _0802A60E: pop {r4, pc} thumb_func_start sub_0802A610 sub_0802A610: @ 0x0802A610 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0802A7D0 adds r3, r4, #0 adds r3, #0x5a ldrb r1, [r3] movs r0, #0x80 ands r0, r1 lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #0 beq _0802A63A movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] b _0802A64C _0802A63A: movs r0, #1 ands r0, r1 cmp r0, #0 beq _0802A64C strb r2, [r3] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x75 strb r0, [r1] _0802A64C: pop {r4, pc} .align 2, 0 thumb_func_start sub_0802A650 sub_0802A650: @ 0x0802A650 push {r4, lr} adds r4, r0, #0 bl sub_0802A7D0 ldrh r0, [r4, #0x36] subs r0, #2 strh r0, [r4, #0x36] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0xa0 rsbs r1, r1, #0 cmp r0, r1 bge _0802A69A movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x74 strb r0, [r1] adds r0, r4, #0 adds r0, #0x7c ldrb r1, [r0] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 adds r1, r4, #0 adds r1, #0x78 strh r0, [r1] _0802A69A: pop {r4, pc} thumb_func_start sub_0802A69C sub_0802A69C: @ 0x0802A69C push {r4, lr} adds r4, r0, #0 bl sub_0802A7D0 ldr r2, _0802A6E4 @ =gUnk_03003F80 ldrb r1, [r2, #0xa] movs r0, #0x80 orrs r1, r0 strb r1, [r2, #0xa] ldrb r1, [r2, #0x1a] orrs r0, r1 strb r0, [r2, #0x1a] ldr r1, _0802A6E8 @ =gUnk_03001160 adds r0, r4, #0 adds r0, #0x7e ldrh r0, [r0] strh r0, [r1, #0x2e] adds r0, r4, #0 adds r0, #0x80 ldrh r0, [r0] strh r0, [r1, #0x32] adds r0, r4, #0 adds r0, #0x82 ldrh r0, [r0] strh r0, [r1, #0x36] lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldrh r2, [r4, #0x36] movs r3, #0x36 ldrsh r1, [r4, r3] cmp r0, r1 beq _0802A6F0 cmp r0, r1 bge _0802A6EC subs r0, r2, #1 b _0802A6EE .align 2, 0 _0802A6E4: .4byte gUnk_03003F80 _0802A6E8: .4byte gUnk_03001160 _0802A6EC: adds r0, r2, #1 _0802A6EE: strh r0, [r4, #0x36] _0802A6F0: adds r0, r4, #0 bl sub_08004274 adds r3, r4, #0 adds r3, #0x5a ldrb r1, [r3] movs r0, #0x80 ands r0, r1 lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #0 beq _0802A712 movs r0, #6 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] b _0802A72E _0802A712: movs r0, #1 ands r0, r1 cmp r0, #0 beq _0802A72E strb r2, [r3] adds r1, r4, #0 adds r1, #0x63 movs r0, #3 strb r0, [r1] ldr r2, _0802A730 @ =gUnk_03001160 ldrb r1, [r2, #0x18] subs r0, #7 ands r0, r1 strb r0, [r2, #0x18] _0802A72E: pop {r4, pc} .align 2, 0 _0802A730: .4byte gUnk_03001160 thumb_func_start sub_0802A734 sub_0802A734: @ 0x0802A734 push {r4, lr} adds r4, r0, #0 bl sub_0802A7D0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802A768 bl sub_0805E5A8 ldr r1, _0802A760 @ =gUnk_0813AB1C ldr r0, _0802A764 @ =gUnk_02033A90 ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl sub_08080840 b _0802A780 .align 2, 0 _0802A760: .4byte gUnk_0813AB1C _0802A764: .4byte gUnk_02033A90 _0802A768: ldr r0, [r4, #0x34] ldr r1, _0802A784 @ =0xFFFE0000 adds r0, r0, r1 str r0, [r4, #0x34] ldr r1, _0802A788 @ =gUnk_03003F80 ldrb r0, [r1, #0xa] movs r2, #0x80 orrs r0, r2 strb r0, [r1, #0xa] ldrb r0, [r1, #0x1a] orrs r0, r2 strb r0, [r1, #0x1a] _0802A780: pop {r4, pc} .align 2, 0 _0802A784: .4byte 0xFFFE0000 _0802A788: .4byte gUnk_03003F80 thumb_func_start sub_0802A78C sub_0802A78C: @ 0x0802A78C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 beq _0802A7CC adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0802A7BC adds r0, r4, #0 adds r0, #0x78 ldrh r0, [r0] cmp r0, #0 bne _0802A7CC adds r1, r4, #0 adds r1, #0x7a ldrh r0, [r1] cmp r0, #0 beq _0802A7CC subs r0, #1 strh r0, [r1] b _0802A7CC _0802A7BC: ldrb r0, [r4, #0xb] lsls r1, r0, #4 subs r1, r1, r0 lsls r1, r1, #2 adds r1, #1 adds r0, r4, #0 adds r0, #0x7a strh r1, [r0] _0802A7CC: pop {r4, pc} .align 2, 0 thumb_func_start sub_0802A7D0 sub_0802A7D0: @ 0x0802A7D0 push {r4, lr} ldr r3, _0802A800 @ =gUnk_080CD0B0 movs r1, #0x7d adds r1, r1, r0 mov ip, r1 ldrb r1, [r1] adds r2, r1, #1 mov r4, ip strb r2, [r4] lsls r1, r1, #0x18 lsrs r1, r1, #0x1b movs r2, #7 ands r1, r2 adds r1, r1, r3 movs r2, #0 ldrsb r2, [r1, r2] movs r1, #0x80 lsls r1, r1, #1 adds r2, r2, r1 adds r1, r2, #0 movs r3, #0 bl sub_0805EC9C pop {r4, pc} .align 2, 0 _0802A800: .4byte gUnk_080CD0B0 thumb_func_start sub_0802A804 sub_0802A804: @ 0x0802A804 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xa] cmp r0, #2 bne _0802A830 adds r0, r5, #0 bl sub_080012DC adds r1, r0, #0 cmp r1, #0 beq _0802A830 ldr r0, _0802A82C @ =gUnk_080012C8 lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r5, #0 bl _call_via_r1 b _0802A844 .align 2, 0 _0802A82C: .4byte gUnk_080012C8 _0802A830: ldr r4, _0802A848 @ =gUnk_080CD0F0 adds r0, r5, #0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 _0802A844: pop {r4, r5, pc} .align 2, 0 _0802A848: .4byte gUnk_080CD0F0 thumb_func_start sub_0802A84C sub_0802A84C: @ 0x0802A84C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #2 beq _0802A878 cmp r0, #3 beq _0802A894 ldr r0, _0802A874 @ =gUnk_080CD108 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0802AD54 b _0802A8A4 .align 2, 0 _0802A874: .4byte gUnk_080CD108 _0802A878: ldr r0, _0802A890 @ =gUnk_080CD120 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0802B048 b _0802A8A4 .align 2, 0 _0802A890: .4byte gUnk_080CD120 _0802A894: ldr r0, _0802A8A8 @ =gUnk_080CD134 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _0802A8A4: pop {r4, pc} .align 2, 0 _0802A8A8: .4byte gUnk_080CD134 thumb_func_start sub_0802A8AC sub_0802A8AC: @ 0x0802A8AC push {lr} adds r1, r0, #0 adds r2, r1, #0 adds r2, #0x81 movs r0, #0 strb r0, [r2] ldrb r0, [r1, #0xa] cmp r0, #1 bhi _0802A8C6 adds r0, r1, #0 movs r1, #0 bl sub_08004260 _0802A8C6: pop {pc} thumb_func_start sub_0802A8C8 sub_0802A8C8: @ 0x0802A8C8 push {lr} ldr r2, _0802A8DC @ =gUnk_080CD140 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802A8DC: .4byte gUnk_080CD140 thumb_func_start sub_0802A8E0 sub_0802A8E0: @ 0x0802A8E0 movs r1, #1 strb r1, [r0, #0xd] movs r1, #0x3c strb r1, [r0, #0x1d] bx lr .align 2, 0 thumb_func_start sub_0802A8EC sub_0802A8EC: @ 0x0802A8EC push {lr} bl sub_0806F4E8 pop {pc} thumb_func_start sub_0802A8F4 sub_0802A8F4: @ 0x0802A8F4 push {lr} bl sub_0806F3E4 pop {pc} thumb_func_start sub_0802A8FC sub_0802A8FC: @ 0x0802A8FC push {lr} adds r2, r0, #0 ldr r0, _0802A914 @ =gUnk_03003F80 ldrb r0, [r0, #0x1c] movs r1, #0xf ands r1, r0 cmp r1, #0 bne _0802A912 adds r0, r2, #0 adds r0, #0x45 strb r1, [r0] _0802A912: pop {pc} .align 2, 0 _0802A914: .4byte gUnk_03003F80 thumb_func_start nullsub_143 nullsub_143: @ 0x0802A918 bx lr .align 2, 0 thumb_func_start sub_0802A91C sub_0802A91C: @ 0x0802A91C adds r0, #0x45 movs r1, #0 strb r1, [r0] bx lr thumb_func_start sub_0802A924 sub_0802A924: @ 0x0802A924 push {r4, r5, r6, r7, lr} adds r7, r0, #0 movs r5, #0 movs r6, #1 movs r0, #1 strb r0, [r7, #0xc] strb r5, [r7, #0xd] strb r5, [r7, #0xe] strb r5, [r7, #0xf] ldr r0, _0802A9A0 @ =gUnk_080CD16C str r0, [r7, #0x48] movs r4, #0 ldr r0, _0802A9A4 @ =0x0000FFD0 strh r0, [r7, #0x36] bl sub_08000E50 ands r0, r6 adds r1, r7, #0 adds r1, #0x80 strb r0, [r1] adds r0, r7, #0 adds r0, #0x82 strh r5, [r0] subs r0, #7 strb r4, [r0] adds r0, #6 strb r4, [r0] subs r0, #7 strb r4, [r0] subs r0, #2 strb r4, [r0] adds r0, #1 strb r4, [r0] subs r1, #0x48 movs r0, #3 strb r0, [r1] ldrb r2, [r7, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 movs r2, #0x40 orrs r0, r2 strb r0, [r7, #0x1b] ldrb r0, [r7, #0x19] ands r1, r0 orrs r1, r2 strb r1, [r7, #0x19] adds r2, r7, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 orrs r0, r6 strb r0, [r2] ldrb r1, [r7, #0xa] adds r1, #1 adds r0, r7, #0 bl sub_08004260 pop {r4, r5, r6, r7, pc} .align 2, 0 _0802A9A0: .4byte gUnk_080CD16C _0802A9A4: .4byte 0x0000FFD0 thumb_func_start sub_0802A9A8 sub_0802A9A8: @ 0x0802A9A8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] cmp r0, #0 beq _0802A9B8 subs r0, #1 strb r0, [r4, #0xf] b _0802AA3E _0802A9B8: ldrb r0, [r4, #0xe] cmp r0, #0 beq _0802A9DE subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0802AA38 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r4, #0xd] movs r0, #0x40 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #8 bl sub_0802ACDC b _0802AA38 _0802A9DE: ldr r0, _0802AA14 @ =gUnk_03000BF0 ldrh r1, [r0] adds r2, r0, #0 cmp r1, #0 bne _0802AA3E ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r1, r4, #0 adds r1, #0x82 movs r0, #1 strh r0, [r1] adds r0, r4, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 beq _0802AA18 ldrh r0, [r2, #0xa] subs r0, #0x10 strh r0, [r4, #0x2e] movs r0, #8 b _0802AA26 .align 2, 0 _0802AA14: .4byte gUnk_03000BF0 _0802AA18: movs r1, #0x80 lsls r1, r1, #1 adds r0, r1, #0 ldrh r1, [r2, #0xa] adds r0, r0, r1 strh r0, [r4, #0x2e] movs r0, #0x18 _0802AA26: strb r0, [r4, #0x15] ldrh r0, [r2, #0xc] adds r0, #0x40 strh r0, [r4, #0x32] movs r0, #0x80 strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_0802ADDC _0802AA38: adds r0, r4, #0 bl sub_0802AC40 _0802AA3E: pop {r4, pc} thumb_func_start sub_0802AA40 sub_0802AA40: @ 0x0802AA40 push {r4, lr} adds r4, r0, #0 bl sub_0802AC40 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0802AA66 adds r0, r4, #0 movs r1, #8 bl sub_0802ACDC adds r1, r4, #0 adds r1, #0x7b ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0802AA66: ldrb r0, [r4, #0xe] cmp r0, #0 beq _0802AA72 subs r0, #1 strb r0, [r4, #0xe] b _0802AABE _0802AA72: ldr r2, [r4, #0x54] cmp r2, #0 beq _0802AABE ldr r0, [r2, #4] cmp r0, #0 bne _0802AA82 str r0, [r4, #0x54] b _0802AABE _0802AA82: adds r0, r4, #0 adds r0, #0x80 ldrb r0, [r0] lsls r0, r0, #4 adds r1, r0, #0 adds r1, #0x18 movs r0, #0x18 ands r1, r0 adds r3, r4, #0 adds r3, #0x7b ldrb r0, [r3] cmp r0, #0x20 bls _0802AA9E strb r1, [r4, #0x15] _0802AA9E: ldrb r0, [r4, #0x15] cmp r0, r1 bne _0802AABE movs r0, #3 strb r0, [r4, #0xc] movs r1, #0 movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r4, #0x24] strb r1, [r3] adds r1, r2, #0 adds r1, #0x80 movs r0, #1 strb r0, [r1] movs r0, #0x96 strb r0, [r2, #0xe] _0802AABE: pop {r4, pc} thumb_func_start sub_0802AAC0 sub_0802AAC0: @ 0x0802AAC0 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_0802AC40 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] movs r6, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _0802AADE adds r0, r4, #0 movs r1, #4 bl sub_0802AD1C _0802AADE: adds r2, r4, #0 adds r2, #0x81 ldrb r5, [r2] cmp r5, #0 beq _0802AB0E ldr r1, [r4, #0x54] cmp r1, #0 bne _0802AAF2 strb r1, [r2] b _0802AB3C _0802AAF2: ldr r0, [r1, #4] cmp r0, #0 bne _0802AAFE strb r0, [r2] str r0, [r4, #0x54] b _0802AB3C _0802AAFE: ldrb r3, [r1, #0xe] cmp r3, #0 bne _0802AB3C ldrb r0, [r1, #0xf] cmp r0, #0x50 bhi _0802AB3C strb r3, [r2] b _0802AB3C _0802AB0E: movs r3, #4 strb r3, [r4, #0xc] movs r0, #0xc0 strb r0, [r4, #0xe] strb r3, [r4, #0xf] adds r2, r4, #0 adds r2, #0x80 ldrb r0, [r2] movs r1, #1 eors r0, r1 strb r0, [r2] adds r0, r4, #0 adds r0, #0x78 strb r5, [r0] adds r0, #1 strb r3, [r0] ldrb r0, [r4, #0x15] orrs r0, r6 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #0 bl sub_08004260 _0802AB3C: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0802AB40 sub_0802AB40: @ 0x0802AB40 push {r4, lr} adds r4, r0, #0 bl sub_0802AC40 adds r3, r4, #0 adds r3, #0x78 ldrb r0, [r3] cmp r0, #1 beq _0802AB94 cmp r0, #1 bgt _0802AB5C cmp r0, #0 beq _0802AB62 b _0802AC04 _0802AB5C: cmp r0, #2 beq _0802ABC2 b _0802AC04 _0802AB62: movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 beq _0802AB86 adds r1, r4, #0 adds r1, #0x79 ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 bne _0802AC04 movs r0, #4 strb r0, [r1] ldrh r0, [r4, #0x36] adds r0, #1 strh r0, [r4, #0x36] b _0802AC04 _0802AB86: movs r0, #1 strb r0, [r3] adds r1, r4, #0 adds r1, #0x79 movs r0, #0x30 strb r0, [r1] b _0802ABB6 _0802AB94: adds r2, r4, #0 adds r2, #0x79 ldrb r0, [r2] subs r1, r0, #1 strb r1, [r2] lsls r0, r1, #0x18 cmp r0, #0 bne _0802ABAE movs r0, #2 strb r0, [r3] movs r0, #4 strb r0, [r2] b _0802AC04 _0802ABAE: movs r0, #7 ands r1, r0 cmp r1, #0 bne _0802AC04 _0802ABB6: adds r0, r4, #0 movs r1, #0 bl sub_08049F84 strb r0, [r4, #0x15] b _0802AC04 _0802ABC2: movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #0x30 rsbs r0, r0, #0 cmp r1, r0 ble _0802ABF2 adds r1, r4, #0 adds r1, #0x79 ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 bne _0802AC04 movs r0, #4 strb r0, [r1] ldrh r0, [r4, #0x36] subs r0, #1 strh r0, [r4, #0x36] adds r0, r4, #0 movs r1, #4 bl sub_0802ACDC b _0802AC04 _0802ABF2: movs r1, #0 movs r0, #5 strb r0, [r4, #0xc] strh r1, [r4, #0x24] ldrb r1, [r4, #0xa] adds r1, #1 adds r0, r4, #0 bl sub_08004260 _0802AC04: pop {r4, pc} .align 2, 0 thumb_func_start sub_0802AC08 sub_0802AC08: @ 0x0802AC08 push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0802AC36 movs r1, #0 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r4, #0xd] movs r0, #0x40 strb r0, [r4, #0xe] movs r0, #0xc0 strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #8 bl sub_0802ACDC adds r0, r4, #0 bl sub_0802ADDC _0802AC36: adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 thumb_func_start sub_0802AC40 sub_0802AC40: @ 0x0802AC40 push {r4, r5, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0806F69C adds r5, r4, #0 adds r5, #0x7a ldrb r0, [r5] cmp r0, #0 beq _0802ACA2 adds r0, r4, #0 bl sub_0802B234 cmp r0, #0 bne _0802AC72 strb r0, [r5] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 b _0802ACD8 _0802AC72: movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 bne _0802AC92 adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x38 ands r0, r1 cmp r0, #8 beq _0802ACDA movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #8 b _0802ACD6 _0802AC92: adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x38 ands r0, r1 cmp r0, #0x18 beq _0802ACDA b _0802ACCE _0802ACA2: adds r0, r4, #0 bl sub_0802B234 cmp r0, #0 beq _0802ACDA movs r0, #1 strb r0, [r5] movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 bne _0802ACC8 adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #8 b _0802ACD6 _0802ACC8: adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] _0802ACCE: movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x18 _0802ACD6: orrs r0, r1 _0802ACD8: strb r0, [r2] _0802ACDA: pop {r4, r5, pc} thumb_func_start sub_0802ACDC sub_0802ACDC: @ 0x0802ACDC push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 beq _0802ACF8 ldr r0, _0802ACF4 @ =gUnk_03000BF0 movs r2, #0xa ldrsh r1, [r0, r2] adds r1, #0x20 b _0802AD00 .align 2, 0 _0802ACF4: .4byte gUnk_03000BF0 _0802ACF8: ldr r0, _0802AD18 @ =gUnk_03000BF0 movs r2, #0xa ldrsh r1, [r0, r2] adds r1, #0xd0 _0802AD00: movs r3, #0xc ldrsh r2, [r0, r3] adds r2, #0x60 adds r0, r4, #0 bl sub_080045B4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 strb r5, [r4, #0xf] pop {r4, r5, pc} .align 2, 0 _0802AD18: .4byte gUnk_03000BF0 thumb_func_start sub_0802AD1C sub_0802AD1C: @ 0x0802AD1C push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 movs r0, #1 bl sub_08049DF4 cmp r0, #0 beq _0802AD48 movs r1, #0x32 ldrsh r2, [r0, r1] subs r2, #0x18 movs r3, #0x2e ldrsh r1, [r0, r3] adds r0, r4, #0 bl sub_080045B4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 strb r5, [r4, #0xf] b _0802AD50 _0802AD48: adds r0, r4, #0 adds r1, r5, #0 bl sub_0802ACDC _0802AD50: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0802AD54 sub_0802AD54: @ 0x0802AD54 push {r4, lr} adds r2, r0, #0 adds r0, #0x82 ldrh r0, [r0] cmp r0, #0 beq _0802ADAE ldr r4, _0802AD7C @ =gUnk_03000BF0 ldrh r0, [r4] cmp r0, #0 beq _0802AD80 ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 bl sub_0805E7BC b _0802ADD8 .align 2, 0 _0802AD7C: .4byte gUnk_03000BF0 _0802AD80: ldrh r1, [r4, #8] movs r0, #0x32 ldrsh r3, [r2, r0] cmp r1, r3 bgt _0802AD94 ldrh r0, [r4, #0x20] adds r0, r1, r0 adds r0, #0x20 cmp r0, r3 bge _0802ADA0 _0802AD94: ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2, #0x18] b _0802ADAE _0802ADA0: ldrb r0, [r2, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 movs r0, #1 orrs r1, r0 strb r1, [r2, #0x18] _0802ADAE: adds r0, r2, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #0 beq _0802ADD8 ldr r0, [r2, #0x54] cmp r0, #0 beq _0802ADC4 ldr r0, [r0, #4] cmp r0, #0 bne _0802ADD8 _0802ADC4: movs r1, #4 strb r1, [r2, #0xc] movs r0, #0xc0 strb r0, [r2, #0xe] strb r1, [r2, #0xf] adds r2, #0x80 ldrb r0, [r2] movs r1, #1 eors r0, r1 strb r0, [r2] _0802ADD8: pop {r4, pc} .align 2, 0 thumb_func_start sub_0802ADDC sub_0802ADDC: @ 0x0802ADDC push {r4, r5, lr} adds r4, r0, #0 ldrb r1, [r4, #0xa] adds r1, #2 movs r0, #0x1b bl sub_0804AA60 adds r5, r0, #0 cmp r5, #0 beq _0802AE20 adds r0, r4, #0 bl sub_0802B234 rsbs r1, r0, #0 orrs r1, r0 lsrs r1, r1, #0x1f strb r1, [r5, #0xb] str r4, [r5, #0x50] str r5, [r4, #0x54] adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA24 adds r1, r4, #0 adds r1, #0x81 movs r0, #1 strb r0, [r1] ldrb r0, [r4, #0xa] cmp r0, #0 bne _0802AE20 subs r1, #7 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0802AE20: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0802AE24 sub_0802AE24: @ 0x0802AE24 push {lr} mov ip, r0 movs r2, #0 movs r3, #1 strb r3, [r0, #0xc] movs r0, #0xf0 mov r1, ip strb r0, [r1, #0xe] movs r0, #0x80 lsls r0, r0, #8 str r0, [r1, #0x20] ldr r0, _0802AE64 @ =gUnk_080CD174 str r0, [r1, #0x48] adds r1, #0x3c movs r0, #3 strb r0, [r1] mov r0, ip strb r2, [r0, #0x16] movs r0, #2 mov r1, ip strb r0, [r1, #0x1c] mov r0, ip adds r0, #0x81 strb r2, [r0] subs r0, #6 strb r3, [r0] mov r0, ip movs r1, #3 bl sub_08004260 pop {pc} .align 2, 0 _0802AE64: .4byte gUnk_080CD174 thumb_func_start sub_0802AE68 sub_0802AE68: @ 0x0802AE68 push {r4, lr} adds r4, r0, #0 bl sub_0802B250 adds r1, r0, #0 cmp r1, #0 bne _0802AE8A movs r0, #3 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x80 movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_0802B264 b _0802AEBA _0802AE8A: adds r0, r1, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #0 beq _0802AEA8 adds r0, r1, #0 adds r1, r4, #0 bl sub_0806FA24 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] b _0802AEBA _0802AEA8: movs r0, #3 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x80 movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_0802B264 _0802AEBA: pop {r4, pc} thumb_func_start sub_0802AEBC sub_0802AEBC: @ 0x0802AEBC push {lr} ldr r2, _0802AED0 @ =gUnk_080CD158 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802AED0: .4byte gUnk_080CD158 thumb_func_start sub_0802AED4 sub_0802AED4: @ 0x0802AED4 push {r4, r5, lr} adds r4, r0, #0 bl sub_08004274 adds r5, r4, #0 adds r5, #0x81 ldrb r0, [r5] cmp r0, #1 bhi _0802AEFC movs r1, #0xa0 lsls r1, r1, #6 adds r0, r4, #0 bl sub_080044EC cmp r0, #1 bne _0802AF0C ldrb r0, [r5] adds r0, #1 strb r0, [r5] b _0802AF0C _0802AEFC: adds r0, r4, #0 bl sub_0800442E cmp r0, #0 bne _0802AF0C adds r0, r4, #0 bl sub_08078930 _0802AF0C: ldrb r0, [r4, #0xb] cmp r0, #0 beq _0802AF24 adds r0, r4, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #0 beq _0802AF24 movs r0, #0 strb r0, [r4, #0xe] movs r0, #1 strb r0, [r4, #0xf] _0802AF24: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0802AF28 sub_0802AF28: @ 0x0802AF28 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xd] adds r0, r4, #0 bl sub_08079BD8 adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x10 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 bl sub_08004274 pop {r4, pc} thumb_func_start sub_0802AF50 sub_0802AF50: @ 0x0802AF50 push {lr} bl sub_08004274 pop {pc} thumb_func_start sub_0802AF58 sub_0802AF58: @ 0x0802AF58 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r4, #0x29 ldrb r1, [r4] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x18 orrs r0, r1 strb r0, [r4] pop {r4, pc} .align 2, 0 thumb_func_start sub_0802AF74 sub_0802AF74: @ 0x0802AF74 push {lr} adds r2, r0, #0 movs r0, #0 movs r1, #3 strb r1, [r2, #0xc] strb r0, [r2, #0xd] ldrb r0, [r2, #0xe] cmp r0, #0x3c bls _0802AF8A movs r0, #0x3c strb r0, [r2, #0xe] _0802AF8A: adds r0, r2, #0 bl sub_08004274 pop {pc} .align 2, 0 thumb_func_start sub_0802AF94 sub_0802AF94: @ 0x0802AF94 push {lr} bl sub_0805E7BC pop {pc} thumb_func_start sub_0802AF9C sub_0802AF9C: @ 0x0802AF9C push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802AFC6 ldr r0, [r4, #0x50] adds r1, r0, #0 adds r1, #0x7a ldrb r0, [r1] cmp r0, #0 beq _0802AFC0 subs r0, #1 strb r0, [r1] _0802AFC0: adds r0, r4, #0 bl sub_0805E7BC _0802AFC6: pop {r4, pc} thumb_func_start sub_0802AFC8 sub_0802AFC8: @ 0x0802AFC8 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] movs r7, #8 cmp r0, #0x28 bhi _0802B022 movs r7, #4 adds r1, r4, #0 adds r1, #0x82 ldrh r2, [r1] movs r0, #0x80 lsls r0, r0, #8 ands r0, r2 cmp r0, #0 beq _0802AFEC adds r0, r2, #0 subs r0, #0x10 b _0802AFF0 _0802AFEC: adds r0, r2, #0 adds r0, #0x10 _0802AFF0: strh r0, [r1] adds r5, r1, #0 ldrh r2, [r5] movs r6, #0xf0 adds r3, r6, #0 ands r3, r2 subs r0, r3, #1 cmp r0, #0x7f bls _0802B00C movs r3, #0x80 lsls r3, r3, #8 adds r0, r3, #0 eors r0, r2 strh r0, [r5] _0802B00C: ldrh r0, [r1] adds r3, r6, #0 ands r3, r0 movs r2, #0x98 lsls r2, r2, #1 subs r2, r2, r3 adds r0, r4, #0 adds r1, r2, #0 movs r3, #0 bl sub_0805EC9C _0802B022: ldrb r0, [r4, #0xf] ands r0, r7 cmp r0, #0 beq _0802B03A ldrb r0, [r4, #0x1a] lsrs r2, r0, #4 movs r1, #0x10 rsbs r1, r1, #0 ands r1, r0 orrs r1, r2 strb r1, [r4, #0x1a] b _0802B044 _0802B03A: ldrb r1, [r4, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x1a] _0802B044: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0802B048 sub_0802B048: @ 0x0802B048 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x7b ldrb r0, [r0] cmp r0, #0 beq _0802B080 ldr r0, _0802B074 @ =gUnk_03000BF0 ldrh r1, [r0, #8] movs r3, #0x32 ldrsh r2, [r4, r3] cmp r1, r2 bgt _0802B06A ldrh r0, [r0, #0x20] adds r0, r1, r0 adds r0, #0x20 cmp r0, r2 bge _0802B078 _0802B06A: ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 b _0802B07E .align 2, 0 _0802B074: .4byte gUnk_03000BF0 _0802B078: ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 _0802B07E: strb r0, [r4, #0x10] _0802B080: ldr r5, [r4, #0x50] cmp r5, #0 beq _0802B0CA ldrb r0, [r4, #0xc] cmp r0, #1 bne _0802B0CA ldrb r1, [r5, #0x19] lsrs r1, r1, #6 lsls r1, r1, #6 ldrb r3, [r4, #0x19] movs r2, #0x3f adds r0, r2, #0 ands r0, r3 orrs r0, r1 strb r0, [r4, #0x19] adds r0, r5, #0 adds r0, #0x29 ldrb r1, [r0] lsls r1, r1, #0x1d movs r0, #0x29 adds r0, r0, r4 mov ip, r0 lsrs r1, r1, #0x1d ldrb r3, [r0] movs r0, #8 rsbs r0, r0, #0 ands r0, r3 orrs r0, r1 mov r1, ip strb r0, [r1] ldrb r0, [r5, #0x1b] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r1, [r4, #0x1b] ands r2, r1 orrs r2, r0 strb r2, [r4, #0x1b] _0802B0CA: ldrb r2, [r4, #0xc] cmp r2, #4 beq _0802B19E adds r0, r4, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 beq _0802B19E ldrb r0, [r4, #0xe] cmp r0, #0 beq _0802B10E subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0802B19E movs r0, #0x50 strb r0, [r4, #0xf] adds r0, r4, #0 adds r0, #0x82 strh r1, [r0] ldrb r0, [r4, #0x19] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x19] movs r2, #0x80 lsls r2, r2, #1 adds r0, r4, #0 adds r1, r2, #0 movs r3, #0 bl sub_0805EC9C b _0802B19E _0802B10E: ldrb r0, [r4, #0xf] cmp r0, #0 beq _0802B19E subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0802B198 cmp r2, #2 bne _0802B12E ldrb r0, [r4, #0xd] cmp r0, #1 bne _0802B12E ldr r0, _0802B188 @ =gUnk_03003F80 strb r1, [r0, #5] _0802B12E: adds r0, r4, #0 bl sub_0805EC60 movs r5, #0 movs r0, #4 strb r0, [r4, #0xc] ldr r0, _0802B18C @ =gUnk_080CD17C str r0, [r4, #0x48] movs r0, #0xf strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #0x13 ands r0, r1 strb r0, [r4, #0x18] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 adds r0, #0x7b strb r5, [r0] adds r0, r4, #0 bl sub_08078954 ldr r1, [r4, #0x50] ldr r0, [r1, #4] cmp r0, #0 beq _0802B16C adds r0, r1, #0 adds r0, #0x81 strb r5, [r0] _0802B16C: adds r0, r4, #0 movs r1, #0x20 movs r2, #0 movs r3, #0 bl sub_080A2988 adds r5, r0, #0 cmp r5, #0 beq _0802B190 adds r1, r4, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] b _0802B19E .align 2, 0 _0802B188: .4byte gUnk_03003F80 _0802B18C: .4byte gUnk_080CD17C _0802B190: adds r0, r4, #0 bl sub_0805E7BC b _0802B19E _0802B198: adds r0, r4, #0 bl sub_0802AFC8 _0802B19E: pop {r4, r5, pc} thumb_func_start sub_0802B1A0 sub_0802B1A0: @ 0x0802B1A0 push {lr} movs r1, #0 movs r2, #1 strb r2, [r0, #0xc] strb r1, [r0, #0xe] movs r1, #0x4f strb r1, [r0, #0xf] adds r1, r0, #0 adds r1, #0x81 strb r2, [r1] movs r1, #0 bl sub_08004260 pop {pc} thumb_func_start sub_0802B1BC sub_0802B1BC: @ 0x0802B1BC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _0802B1CA subs r0, #1 strb r0, [r4, #0xe] _0802B1CA: adds r0, r4, #0 bl sub_0802B250 adds r1, r0, #0 cmp r1, #0 bne _0802B1E2 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0802B264 b _0802B200 _0802B1E2: adds r0, r1, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #0 beq _0802B1F6 adds r0, r1, #0 adds r1, r4, #0 bl sub_0806FA24 b _0802B200 _0802B1F6: movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0802B264 _0802B200: pop {r4, pc} .align 2, 0 thumb_func_start sub_0802B204 sub_0802B204: @ 0x0802B204 push {r4, r5, lr} adds r5, r0, #0 movs r1, #0xa0 lsls r1, r1, #6 bl sub_080044EC cmp r0, #1 bne _0802B232 movs r0, #0x22 movs r1, #1 bl sub_0804AA60 adds r4, r0, #0 cmp r4, #0 beq _0802B22E adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 ldr r0, [r5, #0x50] str r0, [r4, #0x50] _0802B22E: bl sub_0805E780 _0802B232: pop {r4, r5, pc} thumb_func_start sub_0802B234 sub_0802B234: @ 0x0802B234 push {r4, lr} movs r4, #0 bl sub_080002A0 ldr r1, _0802B24C @ =0xFFFFFE3C adds r0, r0, r1 cmp r0, #1 bls _0802B246 movs r4, #1 _0802B246: adds r0, r4, #0 pop {r4, pc} .align 2, 0 _0802B24C: .4byte 0xFFFFFE3C thumb_func_start sub_0802B250 sub_0802B250: @ 0x0802B250 push {lr} ldr r1, [r0, #0x50] cmp r1, #0 beq _0802B260 ldr r0, [r1, #4] cmp r0, #0 bne _0802B260 movs r1, #0 _0802B260: adds r0, r1, #0 pop {pc} thumb_func_start sub_0802B264 sub_0802B264: @ 0x0802B264 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_0802B234 cmp r0, #0 beq _0802B294 adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #0x39 rsbs r1, r1, #0 ands r1, r0 movs r0, #0x18 orrs r1, r0 strb r1, [r2] b _0802B2A2 _0802B294: adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] _0802B2A2: adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 thumb_func_start sub_0802B2AC sub_0802B2AC: @ 0x0802B2AC push {r4, r5, lr} adds r5, r0, #0 ldr r4, _0802B2C4 @ =gUnk_080CD234 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _0802B2C4: .4byte gUnk_080CD234 thumb_func_start sub_0802B2C8 sub_0802B2C8: @ 0x0802B2C8 push {lr} ldr r2, _0802B2DC @ =gUnk_080CD24C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802B2DC: .4byte gUnk_080CD24C thumb_func_start sub_0802B2E0 sub_0802B2E0: @ 0x0802B2E0 push {r4, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0802B334 movs r2, #0x7f adds r0, r2, #0 ands r0, r1 cmp r0, #0x14 bne _0802B334 ldrb r1, [r4, #0x10] adds r0, r2, #0 ands r0, r1 movs r1, #0 strb r0, [r4, #0x10] adds r0, r4, #0 adds r0, #0x3d strb r1, [r0] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _0802B334 str r1, [r4, #0x54] movs r0, #0xe strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_0806FA24 _0802B334: pop {r4, pc} .align 2, 0 thumb_func_start nullsub_15 nullsub_15: @ 0x0802B338 bx lr .align 2, 0 thumb_func_start sub_0802B33C sub_0802B33C: @ 0x0802B33C push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xb] strb r0, [r4, #0x15] movs r0, #0x78 strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #0 bl sub_08004260 pop {r4, pc} .align 2, 0 thumb_func_start sub_0802B35C sub_0802B35C: @ 0x0802B35C push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080AEF88 movs r3, #0 ldrb r0, [r4, #0xa] cmp r0, #0 bne _0802B374 movs r3, #1 _0802B374: ldrh r0, [r4, #0x2a] adds r2, r0, #0 cmp r2, #0 bne _0802B3A4 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 beq _0802B38A b _0802B4A6 _0802B38A: movs r0, #0x78 strb r0, [r4, #0xf] ldrb r0, [r4, #0x15] cmp r3, #0 beq _0802B39A adds r1, r0, #0 adds r1, #8 b _0802B39E _0802B39A: adds r1, r0, #0 adds r1, #0x18 _0802B39E: movs r0, #0x18 ands r0, r1 b _0802B4A4 _0802B3A4: movs r0, #0x78 strb r0, [r4, #0xf] ldrb r0, [r4, #0x15] movs r1, #0x18 ands r1, r0 cmp r1, #8 beq _0802B474 cmp r1, #8 bgt _0802B3BC cmp r1, #0 beq _0802B3C6 b _0802B4A6 _0802B3BC: cmp r1, #0x10 beq _0802B404 cmp r1, #0x18 beq _0802B442 b _0802B4A6 _0802B3C6: movs r0, #0xe ands r0, r2 cmp r0, #0 beq _0802B3D8 movs r0, #8 cmp r3, #0 beq _0802B4A4 movs r0, #0x18 b _0802B4A4 _0802B3D8: movs r0, #0xe0 lsls r0, r0, #8 ands r0, r2 movs r1, #0x80 lsls r1, r1, #7 cmp r0, r1 bne _0802B3EE cmp r3, #0 beq _0802B3EE movs r0, #8 strb r0, [r4, #0x15] _0802B3EE: movs r0, #0xe0 lsls r0, r0, #4 ands r0, r2 movs r1, #0x80 lsls r1, r1, #3 cmp r0, r1 bne _0802B4A6 cmp r3, #0 bne _0802B4A6 movs r0, #0x18 b _0802B4A4 _0802B404: movs r0, #0xe0 ands r0, r2 cmp r0, #0 beq _0802B416 movs r0, #0x18 cmp r3, #0 beq _0802B4A4 movs r0, #8 b _0802B4A4 _0802B416: movs r0, #0xe0 lsls r0, r0, #8 ands r0, r2 movs r1, #0x80 lsls r1, r1, #6 cmp r0, r1 bne _0802B42C cmp r3, #0 bne _0802B42C movs r0, #8 strb r0, [r4, #0x15] _0802B42C: movs r0, #0xe0 lsls r0, r0, #4 ands r0, r2 movs r1, #0x80 lsls r1, r1, #2 cmp r0, r1 bne _0802B4A6 cmp r3, #0 beq _0802B4A6 movs r0, #0x18 b _0802B4A4 _0802B442: movs r1, #0xe0 lsls r1, r1, #4 ands r1, r2 cmp r1, #0 beq _0802B458 rsbs r0, r3, #0 orrs r0, r3 asrs r0, r0, #0x1f movs r1, #0x10 ands r0, r1 b _0802B4A4 _0802B458: movs r0, #0xe ands r0, r2 cmp r0, #4 bne _0802B466 cmp r3, #0 beq _0802B466 strb r1, [r4, #0x15] _0802B466: movs r0, #0xe0 ands r0, r2 cmp r0, #0x40 bne _0802B4A6 cmp r3, #0 bne _0802B4A6 b _0802B4A2 _0802B474: movs r0, #0xe0 lsls r0, r0, #8 ands r0, r2 cmp r0, #0 beq _0802B488 movs r0, #0 cmp r3, #0 bne _0802B4A4 movs r0, #0x10 b _0802B4A4 _0802B488: movs r0, #0xe ands r0, r2 cmp r0, #2 bne _0802B496 cmp r3, #0 bne _0802B496 strb r3, [r4, #0x15] _0802B496: movs r0, #0xe0 ands r0, r2 cmp r0, #0x20 bne _0802B4A6 cmp r3, #0 beq _0802B4A6 _0802B4A2: movs r0, #0x10 _0802B4A4: strb r0, [r4, #0x15] _0802B4A6: pop {r4, pc} thumb_func_start sub_0802B4A8 sub_0802B4A8: @ 0x0802B4A8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802B4D6 adds r0, r4, #0 movs r1, #0 movs r2, #0x60 movs r3, #0 bl sub_080A2988 adds r1, r0, #0 cmp r1, #0 beq _0802B4D0 ldrh r0, [r1, #0x32] subs r0, #4 strh r0, [r1, #0x32] _0802B4D0: adds r0, r4, #0 bl sub_0805E7BC _0802B4D6: pop {r4, pc} thumb_func_start sub_0802B4D8 sub_0802B4D8: @ 0x0802B4D8 push {r4, r5, lr} adds r5, r0, #0 bl sub_080012DC adds r1, r0, #0 cmp r1, #0 beq _0802B4FC ldr r0, _0802B4F8 @ =gUnk_080012C8 lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r5, #0 bl _call_via_r1 b _0802B510 .align 2, 0 _0802B4F8: .4byte gUnk_080012C8 _0802B4FC: ldr r4, _0802B514 @ =gUnk_080CD27C adds r0, r5, #0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 _0802B510: pop {r4, r5, pc} .align 2, 0 _0802B514: .4byte gUnk_080CD27C thumb_func_start sub_0802B518 sub_0802B518: @ 0x0802B518 push {lr} ldr r2, _0802B52C @ =gUnk_080CD298 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802B52C: .4byte gUnk_080CD298 thumb_func_start sub_0802B530 sub_0802B530: @ 0x0802B530 push {lr} movs r1, #1 strb r1, [r0, #0xc] movs r1, #0 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_0802B540 sub_0802B540: @ 0x0802B540 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _0802B550 subs r0, #1 strb r0, [r4, #0xe] b _0802B56A _0802B550: adds r0, r4, #0 movs r1, #1 movs r2, #0xc bl sub_0804A024 adds r1, r0, #0 cmp r1, #0xff beq _0802B56A movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x40 strh r0, [r4, #0x24] strb r1, [r4, #0x15] _0802B56A: pop {r4, pc} thumb_func_start sub_0802B56C sub_0802B56C: @ 0x0802B56C push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0802B586 movs r0, #0x40 strh r0, [r4, #0x24] _0802B586: adds r0, r4, #0 bl sub_080AF038 cmp r0, #0 beq _0802B5B8 adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #1 beq _0802B5A2 adds r0, r4, #0 movs r1, #1 bl sub_08004260 _0802B5A2: ldrh r2, [r4, #0x24] movs r0, #0x24 ldrsh r1, [r4, r0] ldr r0, _0802B5B4 @ =0x0000021F cmp r1, r0 bgt _0802B5C4 adds r0, r2, #4 strh r0, [r4, #0x24] b _0802B5C4 .align 2, 0 _0802B5B4: .4byte 0x0000021F _0802B5B8: movs r0, #3 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_08004260 _0802B5C4: pop {r4, pc} .align 2, 0 thumb_func_start sub_0802B5C8 sub_0802B5C8: @ 0x0802B5C8 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0802B5EE movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0 bl sub_08004260 _0802B5EE: pop {r4, pc} thumb_func_start sub_0802B5F0 sub_0802B5F0: @ 0x0802B5F0 push {r4, lr} adds r4, r0, #0 ldr r1, _0802B60C @ =gUnk_080CD2D8 bl sub_0800129E movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, pc} .align 2, 0 _0802B60C: .4byte gUnk_080CD2D8 thumb_func_start sub_0802B610 sub_0802B610: @ 0x0802B610 push {lr} ldr r2, _0802B624 @ =gUnk_080CD2F0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802B624: .4byte gUnk_080CD2F0 thumb_func_start sub_0802B628 sub_0802B628: @ 0x0802B628 push {r4, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r0, [r0] movs r1, #0x7f ands r1, r0 cmp r1, #0x1d bhi _0802B706 lsls r0, r1, #2 ldr r1, _0802B644 @ =_0802B648 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802B644: .4byte _0802B648 _0802B648: @ jump table .4byte _0802B6C0 @ case 0 .4byte _0802B706 @ case 1 .4byte _0802B6CC @ case 2 .4byte _0802B6CC @ case 3 .4byte _0802B6C0 @ case 4 .4byte _0802B6C0 @ case 5 .4byte _0802B6C0 @ case 6 .4byte _0802B706 @ case 7 .4byte _0802B6C0 @ case 8 .4byte _0802B6C0 @ case 9 .4byte _0802B6C0 @ case 10 .4byte _0802B6C0 @ case 11 .4byte _0802B6C0 @ case 12 .4byte _0802B706 @ case 13 .4byte _0802B706 @ case 14 .4byte _0802B706 @ case 15 .4byte _0802B706 @ case 16 .4byte _0802B706 @ case 17 .4byte _0802B706 @ case 18 .4byte _0802B706 @ case 19 .4byte _0802B706 @ case 20 .4byte _0802B706 @ case 21 .4byte _0802B6CC @ case 22 .4byte _0802B706 @ case 23 .4byte _0802B6CC @ case 24 .4byte _0802B6CC @ case 25 .4byte _0802B6CC @ case 26 .4byte _0802B706 @ case 27 .4byte _0802B706 @ case 28 .4byte _0802B6CC @ case 29 _0802B6C0: ldrb r0, [r4, #0xc] cmp r0, #4 bne _0802B706 movs r0, #1 strb r0, [r4, #0xe] b _0802B706 _0802B6CC: ldrb r0, [r4, #0xc] cmp r0, #5 bhi _0802B706 movs r0, #6 strb r0, [r4, #0xc] movs r0, #0xc0 lsls r0, r0, #9 str r0, [r4, #0x20] movs r1, #0 movs r0, #0xc0 strh r0, [r4, #0x24] adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] strb r0, [r4, #0x15] adds r0, r4, #0 adds r0, #0x42 strb r1, [r0] adds r1, r4, #0 adds r1, #0x3d movs r0, #0xf8 strb r0, [r1] adds r1, #2 movs r0, #0x64 strb r0, [r1] adds r0, r4, #0 movs r1, #9 bl sub_08004260 _0802B706: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _0802B718 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _0802B718: ldr r1, _0802B724 @ =gUnk_080CD2D8 adds r0, r4, #0 bl sub_0804AA30 pop {r4, pc} .align 2, 0 _0802B724: .4byte gUnk_080CD2D8 thumb_func_start nullsub_144 nullsub_144: @ 0x0802B728 bx lr .align 2, 0 thumb_func_start sub_0802B72C sub_0802B72C: @ 0x0802B72C push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r0, #1 strb r0, [r4, #0xe] movs r0, #0xff strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_0802B7A4 pop {r4, pc} thumb_func_start sub_0802B744 sub_0802B744: @ 0x0802B744 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0802B780 adds r0, r4, #0 movs r1, #1 movs r2, #0xc bl sub_0804A024 adds r1, r0, #0 cmp r1, #0xff beq _0802B780 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] movs r0, #0x18 ands r1, r0 strb r1, [r4, #0x15] adds r0, r4, #0 movs r1, #8 bl sub_08004260 b _0802B7A2 _0802B780: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802B794 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x1e b _0802B7A0 _0802B794: adds r0, r4, #0 bl sub_080AEF88 cmp r0, #0 bne _0802B7A2 movs r0, #1 _0802B7A0: strb r0, [r4, #0xe] _0802B7A2: pop {r4, pc} thumb_func_start sub_0802B7A4 sub_0802B7A4: @ 0x0802B7A4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802B7F4 movs r0, #1 strb r0, [r4, #0xc] bl sub_08000E50 ldr r2, _0802B7F8 @ =gUnk_080CD314 movs r1, #3 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r4, #0xe] movs r0, #0x60 strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_0802B960 ldrb r0, [r4, #0x15] lsls r1, r0, #0x18 lsrs r0, r1, #0x18 cmp r0, #0xff beq _0802B7F4 lsrs r2, r1, #0x1b ldrb r0, [r4, #0x14] cmp r2, r0 beq _0802B7F4 movs r1, #3 adds r0, r2, #0 ands r0, r1 strb r0, [r4, #0x14] adds r0, r4, #0 adds r1, r2, #0 bl sub_08004260 _0802B7F4: pop {r4, pc} .align 2, 0 _0802B7F8: .4byte gUnk_080CD314 thumb_func_start sub_0802B7FC sub_0802B7FC: @ 0x0802B7FC push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802B81E movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xe] movs r0, #0xe0 lsls r0, r0, #1 strh r0, [r4, #0x24] _0802B81E: pop {r4, pc} thumb_func_start sub_0802B820 sub_0802B820: @ 0x0802B820 push {r4, lr} adds r4, r0, #0 bl sub_080AEFE0 cmp r0, #0 bne _0802B830 movs r0, #1 strb r0, [r4, #0xe] _0802B830: adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802B84A adds r0, r4, #0 bl sub_0802B9B4 b _0802B87E _0802B84A: adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0802B878 ldrb r1, [r4, #0xe] movs r0, #0xf ands r0, r1 cmp r0, #0 bne _0802B87E ldr r0, _0802B874 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl sub_080045C4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 b _0802B87E .align 2, 0 _0802B874: .4byte gUnk_020000B0 _0802B878: adds r0, r4, #0 bl sub_0802B9B4 _0802B87E: pop {r4, pc} thumb_func_start sub_0802B880 sub_0802B880: @ 0x0802B880 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 _0802B8AC movs r0, #2 strb r0, [r2, #0xc] movs r0, #0x3c strb r0, [r2, #0xe] ldrb r0, [r2, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 asrs r0, r0, #3 strb r0, [r2, #0x14] ldrb r1, [r2, #0x14] adds r0, r2, #0 bl sub_08004260 _0802B8AC: pop {pc} .align 2, 0 thumb_func_start sub_0802B8B0 sub_0802B8B0: @ 0x0802B8B0 push {r4, lr} adds r4, r0, #0 bl sub_080AEFE0 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_080044EC cmp r0, #0 beq _0802B8CC cmp r0, #1 beq _0802B8D4 b _0802B8DA _0802B8CC: movs r0, #7 strb r0, [r4, #0xc] movs r0, #0x96 strb r0, [r4, #0xe] _0802B8D4: ldr r0, _0802B8DC @ =0x0000012B bl sub_08004488 _0802B8DA: pop {r4, pc} .align 2, 0 _0802B8DC: .4byte 0x0000012B thumb_func_start sub_0802B8E0 sub_0802B8E0: @ 0x0802B8E0 push {r4, lr} adds r3, r0, #0 ldrb r0, [r3, #0xe] subs r1, r0, #1 strb r1, [r3, #0xe] lsls r0, r1, #0x18 cmp r0, #0 beq _0802B91C adds r4, r0, #0 lsrs r0, r4, #0x18 cmp r0, #0x3b bhi _0802B940 movs r0, #1 ands r1, r0 cmp r1, #0 beq _0802B940 adds r3, #0x62 ldr r2, _0802B918 @ =gUnk_080CD318 lsrs r0, r4, #0x19 movs r1, #3 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] ldrb r1, [r3] adds r0, r0, r1 strb r0, [r3] b _0802B940 .align 2, 0 _0802B918: .4byte gUnk_080CD318 _0802B91C: movs r0, #8 strb r0, [r3, #0xc] movs r0, #0x80 lsls r0, r0, #9 str r0, [r3, #0x20] movs r0, #0x60 strh r0, [r3, #0x24] adds r1, r3, #0 adds r1, #0x3f movs r0, #0x63 strb r0, [r1] ldrb r1, [r3, #0x14] adds r0, r3, #0 bl sub_08004260 ldr r0, _0802B944 @ =0x0000012B bl sub_08004488 _0802B940: pop {r4, pc} .align 2, 0 _0802B944: .4byte 0x0000012B thumb_func_start sub_0802B948 sub_0802B948: @ 0x0802B948 push {r4, lr} adds r4, r0, #0 movs r1, #0xc0 lsls r1, r1, #5 bl sub_08003FC4 cmp r0, #0 bne _0802B95E movs r0, #1 strb r0, [r4, #0xc] strb r0, [r4, #0xe] _0802B95E: pop {r4, pc} thumb_func_start sub_0802B960 sub_0802B960: @ 0x0802B960 push {r4, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0802B986 bl sub_08000E50 movs r1, #7 ands r1, r0 cmp r1, #0 bne _0802B9A6 adds r0, r4, #0 movs r1, #1 bl sub_08049F84 adds r0, #4 b _0802B9AA _0802B986: adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 bne _0802B9A6 bl sub_08000E50 movs r1, #3 ands r1, r0 cmp r1, #0 bne _0802B9A6 adds r0, r4, #0 bl sub_08049EE4 adds r0, #4 b _0802B9AA _0802B9A6: bl sub_08000E50 _0802B9AA: movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] pop {r4, pc} .align 2, 0 thumb_func_start sub_0802B9B4 sub_0802B9B4: @ 0x0802B9B4 push {lr} movs r1, #5 strb r1, [r0, #0xc] movs r1, #0x3c strb r1, [r0, #0xe] ldrb r1, [r0, #0x15] lsrs r1, r1, #3 movs r2, #3 ands r1, r2 strb r1, [r0, #0x14] ldrb r1, [r0, #0x14] adds r1, #4 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_0802B9D4 sub_0802B9D4: @ 0x0802B9D4 push {lr} ldr r2, _0802B9E8 @ =gUnk_080CD3C4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802B9E8: .4byte gUnk_080CD3C4 thumb_func_start sub_0802B9EC sub_0802B9EC: @ 0x0802B9EC adds r2, r0, #0 movs r0, #1 strb r0, [r2, #0xc] ldr r1, _0802BA14 @ =gUnk_080CD3D4 ldrb r0, [r2, #0xa] lsls r0, r0, #1 adds r0, r0, r1 ldrh r1, [r0] adds r0, r2, #0 adds r0, #0x78 strh r1, [r0] adds r0, #0xc ldrh r1, [r0] subs r0, #8 strh r1, [r0] adds r0, #0xa ldrh r1, [r0] subs r0, #8 strh r1, [r0] bx lr .align 2, 0 _0802BA14: .4byte gUnk_080CD3D4 thumb_func_start sub_0802BA18 sub_0802BA18: @ 0x0802BA18 push {r4, r5, lr} adds r4, r0, #0 movs r1, #1 movs r2, #0xe bl sub_0804A024 adds r5, r0, #0 cmp r5, #0xff beq _0802BA88 adds r0, r4, #0 adds r1, r5, #0 bl sub_0802BB2C cmp r0, #0 bne _0802BA88 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x78 ldrh r0, [r0] strh r0, [r4, #0x24] strb r5, [r4, #0x15] lsrs r0, r5, #3 cmp r0, #1 beq _0802BA60 cmp r0, #1 blo _0802BA58 cmp r0, #2 beq _0802BA6C cmp r0, #3 beq _0802BA78 b _0802BA88 _0802BA58: adds r1, r4, #0 adds r1, #0x7e ldrh r0, [r4, #0x32] b _0802BA7E _0802BA60: adds r0, r4, #0 adds r0, #0x7c ldrh r0, [r0] ldrh r1, [r4, #0x2e] adds r0, r0, r1 b _0802BA82 _0802BA6C: adds r0, r4, #0 adds r0, #0x7e ldrh r0, [r0] ldrh r1, [r4, #0x32] adds r0, r0, r1 b _0802BA82 _0802BA78: adds r1, r4, #0 adds r1, #0x7c ldrh r0, [r4, #0x2e] _0802BA7E: ldrh r1, [r1] subs r0, r0, r1 _0802BA82: adds r1, r4, #0 adds r1, #0x7a strh r0, [r1] _0802BA88: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0802BA8C sub_0802BA8C: @ 0x0802BA8C push {r4, lr} adds r4, r0, #0 bl sub_080AF038 cmp r0, #0 beq _0802BADE ldrb r0, [r4, #0x15] lsrs r0, r0, #3 cmp r0, #1 beq _0802BAC4 cmp r0, #1 bgt _0802BAAA cmp r0, #0 beq _0802BAB4 b _0802BAFA _0802BAAA: cmp r0, #2 beq _0802BAD0 cmp r0, #3 beq _0802BAE6 b _0802BAFA _0802BAB4: adds r0, r4, #0 adds r0, #0x7a ldrh r1, [r0] movs r2, #0x32 ldrsh r0, [r4, r2] cmp r1, r0 blt _0802BAFA b _0802BADE _0802BAC4: adds r0, r4, #0 adds r0, #0x7a ldrh r1, [r0] movs r2, #0x2e ldrsh r0, [r4, r2] b _0802BADA _0802BAD0: adds r0, r4, #0 adds r0, #0x7a ldrh r1, [r0] movs r2, #0x32 ldrsh r0, [r4, r2] _0802BADA: cmp r1, r0 bgt _0802BAFA _0802BADE: adds r0, r4, #0 bl sub_0802BB10 b _0802BAFA _0802BAE6: adds r0, r4, #0 adds r0, #0x7a ldrh r1, [r0] movs r2, #0x2e ldrsh r0, [r4, r2] cmp r1, r0 blt _0802BAFA adds r0, r4, #0 bl sub_0802BB10 _0802BAFA: pop {r4, pc} thumb_func_start sub_0802BAFC sub_0802BAFC: @ 0x0802BAFC push {r4, lr} adds r4, r0, #0 bl sub_080AF038 cmp r0, #0 bne _0802BB0C movs r0, #1 strb r0, [r4, #0xc] _0802BB0C: pop {r4, pc} .align 2, 0 thumb_func_start sub_0802BB10 sub_0802BB10: @ 0x0802BB10 push {lr} movs r1, #3 strb r1, [r0, #0xc] movs r1, #0xc0 strh r1, [r0, #0x24] ldrb r1, [r0, #0x15] movs r2, #0x10 eors r1, r2 strb r1, [r0, #0x15] movs r0, #0x74 bl sub_08004488 pop {pc} .align 2, 0 thumb_func_start sub_0802BB2C sub_0802BB2C: @ 0x0802BB2C push {r4, lr} adds r2, r0, #0 adds r0, #0x38 ldrb r0, [r0] ldr r4, _0802BB60 @ =gUnk_02027EB4 cmp r0, #2 bne _0802BB3C ldr r4, _0802BB64 @ =gUnk_0200D654 _0802BB3C: lsrs r3, r1, #2 ldr r0, _0802BB68 @ =gUnk_080CD3DC adds r3, r3, r0 movs r0, #0x2e ldrsh r1, [r2, r0] movs r0, #0 ldrsb r0, [r3, r0] adds r1, r1, r0 movs r0, #0x32 ldrsh r2, [r2, r0] movs r0, #1 ldrsb r0, [r3, r0] adds r2, r2, r0 adds r0, r4, #0 movs r3, #0 bl sub_080AE4CC pop {r4, pc} .align 2, 0 _0802BB60: .4byte gUnk_02027EB4 _0802BB64: .4byte gUnk_0200D654 _0802BB68: .4byte gUnk_080CD3DC thumb_func_start sub_0802BB6C sub_0802BB6C: @ 0x0802BB6C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 bne _0802BB94 ldr r1, _0802BB90 @ =gUnk_080CD3E4 adds r0, r4, #0 bl sub_0800129E movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC b _0802BBA4 .align 2, 0 _0802BB90: .4byte gUnk_080CD3E4 _0802BB94: ldr r0, _0802BBA8 @ =gUnk_080CD3FC ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _0802BBA4: pop {r4, pc} .align 2, 0 _0802BBA8: .4byte gUnk_080CD3FC thumb_func_start sub_0802BBAC sub_0802BBAC: @ 0x0802BBAC push {lr} ldr r2, _0802BBC0 @ =gUnk_080CD408 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802BBC0: .4byte gUnk_080CD408 thumb_func_start sub_0802BBC4 sub_0802BBC4: @ 0x0802BBC4 push {r4, lr} adds r4, r0, #0 adds r0, #0x3f ldrb r0, [r0] cmp r0, #0x19 beq _0802BBFE adds r0, r4, #0 adds r0, #0x41 ldrb r0, [r0] movs r1, #0x7f ands r1, r0 cmp r1, #0 beq _0802BBEA cmp r1, #0 blt _0802BBFE cmp r1, #3 bgt _0802BBFE cmp r1, #2 blt _0802BBFE _0802BBEA: ldrb r0, [r4, #0xc] cmp r0, #4 bne _0802BBFE adds r1, r4, #0 adds r1, #0x42 movs r0, #0 strb r0, [r1] adds r0, r4, #0 bl sub_0802C218 _0802BBFE: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _0802BC10 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _0802BC10: ldr r1, _0802BC1C @ =gUnk_080CD3E4 adds r0, r4, #0 bl sub_0804AA30 pop {r4, pc} .align 2, 0 _0802BC1C: .4byte gUnk_080CD3E4 thumb_func_start sub_0802BC20 sub_0802BC20: @ 0x0802BC20 push {r4, lr} adds r4, r0, #0 adds r0, #0x3f ldrb r0, [r0] cmp r0, #0x19 beq _0802BC4C adds r0, r4, #0 bl sub_0806F520 cmp r0, #0 beq _0802BC6C ldr r0, _0802BC48 @ =gUnk_080CD42C ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 b _0802BC6C .align 2, 0 _0802BC48: .4byte gUnk_080CD42C _0802BC4C: ldrb r0, [r4, #0xd] cmp r0, #2 bhi _0802BC5C adds r0, r4, #0 bl sub_0806F520 cmp r0, #0 beq _0802BC6C _0802BC5C: ldr r0, _0802BC70 @ =gUnk_080CD438 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _0802BC6C: pop {r4, pc} .align 2, 0 _0802BC70: .4byte gUnk_080CD438 thumb_func_start sub_0802BC74 sub_0802BC74: @ 0x0802BC74 push {r4, lr} adds r4, r0, #0 bl sub_0802C1C0 movs r0, #1 strb r0, [r4, #0xd] movs r0, #0x3c strb r0, [r4, #0x1d] ldr r0, _0802BC9C @ =gUnk_03001160 ldrb r0, [r0, #0x14] lsrs r0, r0, #1 movs r1, #2 eors r0, r1 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 pop {r4, pc} .align 2, 0 _0802BC9C: .4byte gUnk_03001160 thumb_func_start sub_0802BCA0 sub_0802BCA0: @ 0x0802BCA0 push {lr} bl sub_0806F4E8 pop {pc} thumb_func_start sub_0802BCA8 sub_0802BCA8: @ 0x0802BCA8 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x3f ldrb r0, [r1] cmp r0, #0x19 beq _0802BCFA movs r0, #7 strb r0, [r4, #0xc] movs r0, #0x5a strb r0, [r4, #0xe] movs r0, #0xc0 lsls r0, r0, #9 str r0, [r4, #0x20] movs r0, #0x19 strb r0, [r1] adds r2, r4, #0 adds r2, #0x3a ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] movs r0, #0x12 strb r0, [r4, #0x1c] movs r0, #0x20 movs r1, #1 bl sub_0804AA60 adds r1, r0, #0 cmp r1, #0 beq _0802BCF0 ldrb r0, [r4, #0x14] strb r0, [r1, #0x14] adds r0, r4, #0 bl sub_0806FA24 _0802BCF0: ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_08004260 _0802BCFA: pop {r4, pc} thumb_func_start sub_0802BCFC sub_0802BCFC: @ 0x0802BCFC movs r1, #1 strb r1, [r0, #0xd] movs r1, #0x3c strb r1, [r0, #0x1d] bx lr .align 2, 0 thumb_func_start sub_0802BD08 sub_0802BD08: @ 0x0802BD08 push {lr} bl sub_0806F3E4 pop {pc} thumb_func_start sub_0802BD10 sub_0802BD10: @ 0x0802BD10 push {lr} ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] movs r1, #2 bl sub_08004276 pop {pc} .align 2, 0 thumb_func_start nullsub_145 nullsub_145: @ 0x0802BD24 bx lr .align 2, 0 thumb_func_start sub_0802BD28 sub_0802BD28: @ 0x0802BD28 push {lr} adds r2, r0, #0 ldrb r3, [r2, #0x10] movs r0, #0x80 ands r0, r3 lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 beq _0802BD4C movs r0, #0x80 orrs r0, r3 strb r0, [r2, #0x10] adds r2, #0x3a ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] b _0802BD52 _0802BD4C: adds r0, r2, #0 adds r0, #0x45 strb r1, [r0] _0802BD52: pop {pc} thumb_func_start sub_0802BD54 sub_0802BD54: @ 0x0802BD54 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r0, #1 strb r0, [r4, #0xc] bl sub_08000E50 adds r1, r4, #0 adds r1, #0x78 strb r0, [r1] movs r0, #0x3c strb r0, [r4, #0x1d] adds r1, #1 movs r0, #0xff strb r0, [r1] bl sub_08000E50 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] lsrs r0, r0, #3 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 pop {r4, pc} thumb_func_start sub_0802BD8C sub_0802BD8C: @ 0x0802BD8C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _0802BD9C subs r0, #1 strb r0, [r4, #0xe] b _0802BDDE _0802BD9C: adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0802BDCA adds r0, r4, #0 movs r1, #1 movs r2, #0x10 bl sub_0804A024 adds r1, r0, #0 cmp r1, #0xff beq _0802BDCA adds r0, r4, #0 adds r0, #0x79 ldrb r0, [r0] cmp r1, r0 beq _0802BDCA adds r0, r4, #0 bl sub_0802C058 b _0802BDDE _0802BDCA: adds r0, r4, #0 bl sub_0802C020 adds r1, r0, #0 ldrb r0, [r4, #0x15] cmp r1, r0 beq _0802BDDE adds r0, r4, #0 bl sub_0802C058 _0802BDDE: pop {r4, pc} thumb_func_start sub_0802BDE0 sub_0802BDE0: @ 0x0802BDE0 push {r4, lr} adds r4, r0, #0 bl sub_0802C06C cmp r0, #0 beq _0802BDFE movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x79 movs r0, #0xff strb r0, [r1] b _0802BE16 _0802BDFE: movs r0, #1 strb r0, [r4, #0xc] bl sub_08000E50 movs r1, #0xf ands r0, r1 adds r0, #0xf strb r0, [r4, #0xe] ldrb r1, [r4, #0x15] adds r0, r4, #0 adds r0, #0x79 strb r1, [r0] _0802BE16: pop {r4, pc} thumb_func_start sub_0802BE18 sub_0802BE18: @ 0x0802BE18 push {r4, lr} adds r4, r0, #0 movs r1, #2 bl sub_08004276 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802BE3E movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] movs r0, #0xc0 lsls r0, r0, #2 strh r0, [r4, #0x24] b _0802BE44 _0802BE3E: adds r0, r4, #0 bl sub_0802C18C _0802BE44: pop {r4, pc} .align 2, 0 thumb_func_start sub_0802BE48 sub_0802BE48: @ 0x0802BE48 push {r4, lr} adds r4, r0, #0 bl sub_080AEFE0 cmp r0, #0 bne _0802BE64 adds r0, r4, #0 bl sub_0802C218 movs r0, #8 movs r1, #0 bl sub_08080964 b _0802BE7E _0802BE64: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0802C1CC adds r0, r4, #0 bl sub_0802C0E8 cmp r0, #0 beq _0802BE7E movs r0, #5 strb r0, [r4, #0xc] _0802BE7E: pop {r4, pc} thumb_func_start sub_0802BE80 sub_0802BE80: @ 0x0802BE80 push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #0x24] subs r0, #0x20 strh r0, [r4, #0x24] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xff ble _0802BE98 adds r0, r4, #0 bl sub_0802C1CC _0802BE98: movs r1, #0x24 ldrsh r0, [r4, r1] cmp r0, #0 ble _0802BEAE adds r0, r4, #0 bl sub_080AEFE0 adds r0, r4, #0 bl sub_0802C18C b _0802BEBA _0802BEAE: adds r0, r4, #0 bl sub_0802C1C0 ldrb r0, [r4, #0xe] adds r0, #0x1e strb r0, [r4, #0xe] _0802BEBA: pop {r4, pc} thumb_func_start sub_0802BEBC sub_0802BEBC: @ 0x0802BEBC push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0x15] movs r4, #0x10 eors r0, r4 strb r0, [r5, #0x15] adds r0, r5, #0 bl sub_080AEFE0 ldrb r0, [r5, #0x15] eors r0, r4 strb r0, [r5, #0x15] movs r1, #0x80 lsls r1, r1, #6 adds r0, r5, #0 bl sub_080044EC cmp r0, #0 bne _0802BEE8 adds r0, r5, #0 bl sub_0802C1C0 _0802BEE8: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0802BEEC sub_0802BEEC: @ 0x0802BEEC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _0802BF1E subs r0, #1 strb r0, [r4, #0xe] movs r1, #0xff ands r0, r1 movs r1, #0x1f ands r0, r1 cmp r0, #0 bne _0802BF3A ldrb r0, [r4, #0x14] movs r1, #2 eors r0, r1 strb r0, [r4, #0x14] lsls r0, r0, #3 strb r0, [r4, #0x15] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_08004260 b _0802BF3A _0802BF1E: movs r1, #0xe0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _0802BF3A movs r0, #8 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] movs r0, #0x90 lsls r0, r0, #1 strh r0, [r4, #0x24] _0802BF3A: pop {r4, pc} thumb_func_start sub_0802BF3C sub_0802BF3C: @ 0x0802BF3C push {r4, lr} adds r4, r0, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802BF76 movs r0, #0x1e strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_0802C020 strb r0, [r4, #0x15] lsls r0, r0, #0x18 lsrs r0, r0, #0x1b ldrb r1, [r4, #0x14] cmp r0, r1 beq _0802BF76 strb r0, [r4, #0x14] adds r1, r0, #4 adds r0, r4, #0 bl sub_08004260 _0802BF76: pop {r4, pc} thumb_func_start sub_0802BF78 sub_0802BF78: @ 0x0802BF78 push {lr} movs r2, #1 strb r2, [r0, #0xc] adds r3, r0, #0 adds r3, #0x3b movs r1, #4 strb r1, [r3] strb r2, [r0, #0x1c] ldrb r1, [r0, #0x14] lsls r1, r1, #3 strb r1, [r0, #0x15] ldrb r1, [r0, #0x14] adds r1, #8 bl sub_08004260 pop {pc} thumb_func_start sub_0802BF98 sub_0802BF98: @ 0x0802BF98 push {r4, lr} adds r4, r0, #0 bl sub_0806F520 cmp r0, #0 beq _0802BFBC ldr r0, _0802BFB8 @ =gUnk_080CD450 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 b _0802BFCC .align 2, 0 _0802BFB8: .4byte gUnk_080CD450 _0802BFBC: movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] _0802BFCC: pop {r4, pc} .align 2, 0 thumb_func_start sub_0802BFD0 sub_0802BFD0: @ 0x0802BFD0 movs r1, #2 strb r1, [r0, #0xd] bx lr .align 2, 0 thumb_func_start sub_0802BFD8 sub_0802BFD8: @ 0x0802BFD8 push {lr} bl sub_0806F4E8 pop {pc} thumb_func_start sub_0802BFE0 sub_0802BFE0: @ 0x0802BFE0 push {r4, lr} adds r4, r0, #0 bl sub_0806F3E4 cmp r0, #0 beq _0802BFF2 adds r0, r4, #0 bl sub_0805E7BC _0802BFF2: pop {r4, pc} thumb_func_start sub_0802BFF4 sub_0802BFF4: @ 0x0802BFF4 push {lr} adds r3, r0, #0 ldrb r2, [r3, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #1 eors r1, r0 subs r0, #5 ands r0, r2 orrs r0, r1 strb r0, [r3, #0x18] ldrb r0, [r3, #0xe] subs r0, #1 strb r0, [r3, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802C01C adds r0, r3, #0 bl sub_0805E7BC _0802C01C: pop {pc} .align 2, 0 thumb_func_start sub_0802C020 sub_0802C020: @ 0x0802C020 push {r4, r5, r6, lr} adds r5, r0, #0 bl sub_08000E50 adds r4, r0, #0 adds r0, r5, #0 bl sub_08049FA0 cmp r0, #0 bne _0802C03E movs r6, #1 adds r0, r4, #0 ands r0, r6 cmp r0, #0 beq _0802C044 _0802C03E: movs r0, #0x18 ands r0, r4 b _0802C056 _0802C044: adds r0, r5, #0 bl sub_08049EE4 lsrs r1, r4, #0x10 ands r1, r6 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #0x18 ands r0, r1 _0802C056: pop {r4, r5, r6, pc} thumb_func_start sub_0802C058 sub_0802C058: @ 0x0802C058 push {lr} movs r2, #2 strb r2, [r0, #0xc] strb r1, [r0, #0x15] lsrs r1, r1, #3 strb r1, [r0, #0x14] ldrb r1, [r0, #0x14] bl sub_08004260 pop {pc} thumb_func_start sub_0802C06C sub_0802C06C: @ 0x0802C06C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} movs r1, #0x2e ldrsh r2, [r0, r1] ldr r3, [r0, #0x48] movs r1, #0 ldrsb r1, [r3, r1] adds r6, r2, r1 movs r1, #0x32 ldrsh r2, [r0, r1] movs r1, #1 ldrsb r1, [r3, r1] adds r5, r2, r1 ldr r3, _0802C0CC @ =gUnk_080CD45C ldrb r1, [r0, #0x15] lsrs r1, r1, #2 adds r2, r1, r3 ldrb r2, [r2] lsls r2, r2, #0x18 asrs r2, r2, #0x18 mov sb, r2 adds r1, #1 adds r1, r1, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 mov r8, r1 adds r0, #0x38 ldrb r0, [r0] ldr r7, _0802C0D0 @ =gUnk_02027EB4 cmp r0, #2 bne _0802C0B2 ldr r7, _0802C0D4 @ =gUnk_0200D654 _0802C0B2: movs r4, #0 _0802C0B4: add r6, sb add r5, r8 adds r0, r7, #0 adds r1, r6, #0 adds r2, r5, #0 movs r3, #0 bl sub_080AE4CC cmp r0, #0 beq _0802C0D8 movs r0, #0 b _0802C0E0 .align 2, 0 _0802C0CC: .4byte gUnk_080CD45C _0802C0D0: .4byte gUnk_02027EB4 _0802C0D4: .4byte gUnk_0200D654 _0802C0D8: adds r4, #1 cmp r4, #7 bls _0802C0B4 movs r0, #1 _0802C0E0: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0802C0E8 sub_0802C0E8: @ 0x0802C0E8 push {r4, r5, r6, r7, lr} adds r5, r0, #0 ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802C0FC movs r0, #1 b _0802C178 _0802C0FC: ldrb r3, [r5, #0x15] lsrs r3, r3, #2 ldr r0, _0802C17C @ =gUnk_080CD45C adds r3, r3, r0 movs r0, #0x2e ldrsh r2, [r5, r0] ldr r4, [r5, #0x48] movs r0, #0 ldrsb r0, [r4, r0] adds r2, r2, r0 movs r1, #0 ldrsb r1, [r3, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r6, r2, r0 movs r0, #0x32 ldrsh r2, [r5, r0] movs r0, #1 ldrsb r0, [r4, r0] adds r2, r2, r0 movs r1, #1 ldrsb r1, [r3, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r4, r2, r0 adds r0, r5, #0 adds r0, #0x38 ldrb r0, [r0] ldr r7, _0802C180 @ =gUnk_02027EB4 cmp r0, #2 bne _0802C140 ldr r7, _0802C184 @ =gUnk_0200D654 _0802C140: movs r5, #0 ldr r1, _0802C188 @ =gUnk_03000BF0 ldrh r0, [r1, #6] subs r0, r6, r0 asrs r0, r0, #4 movs r2, #0x3f ands r0, r2 ldrh r1, [r1, #8] subs r1, r4, r1 asrs r1, r1, #4 ands r1, r2 lsls r1, r1, #6 orrs r0, r1 movs r1, #9 bl sub_0806FC24 cmp r0, #0 bne _0802C176 adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 movs r3, #0 bl sub_080AE4CC rsbs r1, r0, #0 orrs r1, r0 lsrs r5, r1, #0x1f _0802C176: adds r0, r5, #0 _0802C178: pop {r4, r5, r6, r7, pc} .align 2, 0 _0802C17C: .4byte gUnk_080CD45C _0802C180: .4byte gUnk_02027EB4 _0802C184: .4byte gUnk_0200D654 _0802C188: .4byte gUnk_03000BF0 thumb_func_start sub_0802C18C sub_0802C18C: @ 0x0802C18C push {r4, lr} adds r4, r0, #0 adds r0, #0x78 ldrb r1, [r0] subs r1, #1 strb r1, [r0] movs r0, #7 ands r1, r0 cmp r1, #0 bne _0802C1BC movs r0, #0xf movs r1, #0x11 movs r2, #0x40 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _0802C1BC movs r3, #0x80 lsls r3, r3, #9 adds r0, r4, #0 movs r2, #0 bl sub_0806FA48 _0802C1BC: pop {r4, pc} .align 2, 0 thumb_func_start sub_0802C1C0 sub_0802C1C0: @ 0x0802C1C0 movs r1, #1 strb r1, [r0, #0xc] movs r1, #0x1e strb r1, [r0, #0xe] bx lr .align 2, 0 thumb_func_start sub_0802C1CC sub_0802C1CC: @ 0x0802C1CC push {r4, r5, lr} adds r5, r0, #0 ldrb r4, [r5, #0x14] lsls r4, r4, #2 ldr r0, _0802C214 @ =gUnk_080CD464 adds r4, r4, r0 movs r0, #0x2e ldrsh r2, [r5, r0] movs r0, #0 ldrsb r0, [r4, r0] adds r2, r2, r0 movs r0, #0x32 ldrsh r3, [r5, r0] movs r0, #1 ldrsb r0, [r4, r0] adds r3, r3, r0 adds r0, r5, #0 movs r1, #9 bl sub_08008796 movs r0, #0x2e ldrsh r2, [r5, r0] movs r0, #2 ldrsb r0, [r4, r0] adds r2, r2, r0 movs r0, #0x32 ldrsh r3, [r5, r0] movs r0, #3 ldrsb r0, [r4, r0] adds r3, r3, r0 adds r0, r5, #0 movs r1, #9 bl sub_08008796 pop {r4, r5, pc} .align 2, 0 _0802C214: .4byte gUnk_080CD464 thumb_func_start sub_0802C218 sub_0802C218: @ 0x0802C218 movs r1, #6 strb r1, [r0, #0xc] movs r1, #0xe0 strh r1, [r0, #0x24] movs r1, #0xc0 lsls r1, r1, #9 str r1, [r0, #0x20] bx lr thumb_func_start sub_0802C228 sub_0802C228: @ 0x0802C228 push {lr} ldr r1, _0802C234 @ =gUnk_080CD540 bl sub_0800129E pop {pc} .align 2, 0 _0802C234: .4byte gUnk_080CD540 thumb_func_start sub_0802C238 sub_0802C238: @ 0x0802C238 push {lr} ldr r2, _0802C24C @ =gUnk_080CD558 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802C24C: .4byte gUnk_080CD558 thumb_func_start sub_0802C250 sub_0802C250: @ 0x0802C250 bx lr .align 2, 0 thumb_func_start sub_0802C254 sub_0802C254: @ 0x0802C254 bx lr .align 2, 0 thumb_func_start sub_0802C258 sub_0802C258: @ 0x0802C258 push {r4, r5, lr} adds r4, r0, #0 bl sub_0804A720 movs r0, #0x80 lsls r0, r0, #0xa str r0, [r4, #0x20] movs r0, #2 strb r0, [r4, #0xe] bl sub_08000E50 adds r2, r0, #0 movs r0, #0x70 ands r2, r0 adds r3, r4, #0 adds r3, #0x7a movs r1, #0 strh r2, [r3] ldrb r0, [r4, #0xa] cmp r0, #1 beq _0802C288 cmp r0, #2 beq _0802C290 b _0802C29C _0802C288: movs r0, #0x80 lsls r0, r0, #1 adds r1, r0, #0 b _0802C296 _0802C290: movs r5, #0x80 lsls r5, r5, #2 adds r1, r5, #0 _0802C296: adds r0, r2, #0 orrs r0, r1 strh r0, [r3] _0802C29C: ldrh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x80 movs r2, #0 strh r1, [r0] ldrh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x82 strh r0, [r1] ldr r0, _0802C310 @ =0x0000FFF0 strh r0, [r4, #0x36] subs r1, #0x4a movs r0, #3 strb r0, [r1] ldrb r1, [r4, #0x19] movs r0, #0x3f ands r0, r1 movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x19] adds r3, r4, #0 adds r3, #0x29 ldrb r1, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r3] adds r0, r4, #0 adds r0, #0x7c strh r2, [r0] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _0802C314 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] 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, #0x7e strh r1, [r0] adds r0, r4, #0 bl sub_0802C62C adds r0, r4, #0 bl sub_0802C4B0 pop {r4, r5, pc} .align 2, 0 _0802C310: .4byte 0x0000FFF0 _0802C314: .4byte gUnk_03000BF0 thumb_func_start sub_0802C318 sub_0802C318: @ 0x0802C318 push {lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x7a ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0802C330 movs r0, #2 strb r0, [r2, #0xc] _0802C330: pop {pc} .align 2, 0 thumb_func_start sub_0802C334 sub_0802C334: @ 0x0802C334 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r3, r4, #0 adds r3, #0x7c ldrh r0, [r3] cmp r0, #0 bne _0802C36A ldr r0, _0802C3C4 @ =gUnk_03000BF0 ldrh r1, [r0, #8] ldr r2, _0802C3C8 @ =gUnk_03001160 cmp r2, #0 bne _0802C34E b _0802C4AA _0802C34E: movs r5, #0x32 ldrsh r0, [r2, r5] subs r0, r0, r1 cmp r0, #0x38 bhi _0802C35A b _0802C4AA _0802C35A: movs r0, #1 strh r0, [r3] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] _0802C36A: adds r0, r4, #0 bl sub_08004274 movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _0802C3C4 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] 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, #0x7e strh r1, [r0] adds r0, #6 ldr r1, [r0] adds r0, r4, #0 bl sub_080044EC cmp r0, #1 bne _0802C3CC movs r0, #0xa6 lsls r0, r0, #1 bl sub_08004488 ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x7a movs r0, #0xc strh r0, [r1] adds r0, r4, #0 bl sub_0802C4B0 b _0802C48C .align 2, 0 _0802C3C4: .4byte gUnk_03000BF0 _0802C3C8: .4byte gUnk_03001160 _0802C3CC: adds r0, r4, #0 adds r0, #0x7a ldrh r1, [r0] adds r7, r0, #0 cmp r1, #0 beq _0802C442 subs r0, r1, #1 strh r0, [r7] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0 beq _0802C3EA cmp r0, #8 beq _0802C3F4 b _0802C442 _0802C3EA: ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] b _0802C442 _0802C3F4: ldrb r0, [r4, #0xb] cmp r0, #0 beq _0802C442 adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 bne _0802C442 movs r6, #0 movs r5, #1 _0802C408: adds r0, r4, #0 movs r1, #0x15 movs r2, #0 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _0802C420 ldrh r0, [r2, #0x2e] adds r0, #0xc subs r0, r0, r6 strh r0, [r2, #0x2e] _0802C420: adds r6, #0x18 subs r5, #1 cmp r5, #0 bge _0802C408 adds r0, r4, #0 bl sub_0802C62C bl sub_08000E50 movs r1, #0xff ands r0, r1 movs r2, #0x80 lsls r2, r2, #1 adds r1, r2, #0 orrs r0, r1 strh r0, [r7] b _0802C4AA _0802C442: ldr r0, _0802C45C @ =gUnk_03000BF0 ldrh r1, [r0, #8] ldrh r0, [r0, #0x20] adds r1, r1, r0 movs r5, #0x32 ldrsh r0, [r4, r5] subs r5, r1, r0 cmp r5, #4 ble _0802C460 adds r0, r4, #0 bl sub_080AEFB4 b _0802C48C .align 2, 0 _0802C45C: .4byte gUnk_03000BF0 _0802C460: adds r0, r4, #0 bl sub_0806F69C movs r1, #0x36 ldrsh r0, [r4, r1] subs r0, r0, r5 cmp r0, #0x38 ble _0802C48C adds r0, r4, #0 bl sub_0802C62C bl sub_08000E50 movs r1, #0x7f ands r0, r1 movs r1, #0x80 orrs r0, r1 strh r0, [r7] ldrb r0, [r4, #0xa] cmp r0, #3 bne _0802C48C strb r0, [r4, #0xc] _0802C48C: adds r1, r4, #0 adds r1, #0x38 movs r0, #3 strb r0, [r1] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #0xb ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 bl sub_08016A04 _0802C4AA: pop {r4, r5, r6, r7, pc} thumb_func_start nullsub_148 nullsub_148: @ 0x0802C4AC bx lr .align 2, 0 thumb_func_start sub_0802C4B0 sub_0802C4B0: @ 0x0802C4B0 push {r4, r5, r6, lr} adds r5, r0, #0 adds r0, #0x7e ldrh r0, [r0] adds r1, r5, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080001DA adds r1, r0, #0 ldr r0, _0802C4D8 @ =0x000001AB cmp r1, r0 blo _0802C4E4 adds r0, #4 cmp r1, r0 bls _0802C4DC adds r0, #0x15 cmp r1, r0 beq _0802C4E0 b _0802C4E4 .align 2, 0 _0802C4D8: .4byte 0x000001AB _0802C4DC: movs r6, #8 b _0802C4E6 _0802C4E0: movs r6, #4 b _0802C4E6 _0802C4E4: movs r6, #0 _0802C4E6: bl sub_08000E50 adds r4, r0, #0 movs r0, #7 ands r4, r0 movs r0, #4 ands r0, r4 cmp r0, #0 beq _0802C518 movs r0, #3 ands r4, r0 cmp r4, #0 beq _0802C50C ldr r0, _0802C508 @ =gUnk_080CD568 movs r1, #2 orrs r1, r6 b _0802C532 .align 2, 0 _0802C508: .4byte gUnk_080CD568 _0802C50C: ldr r0, _0802C514 @ =gUnk_080CD568 lsls r1, r6, #1 b _0802C534 .align 2, 0 _0802C514: .4byte gUnk_080CD568 _0802C518: movs r2, #3 ands r4, r2 cmp r4, #0 beq _0802C52C ldr r0, _0802C528 @ =gUnk_080CD568 movs r1, #1 orrs r1, r6 b _0802C532 .align 2, 0 _0802C528: .4byte gUnk_080CD568 _0802C52C: ldr r0, _0802C570 @ =gUnk_080CD568 adds r1, r6, #0 orrs r1, r2 _0802C532: lsls r1, r1, #1 _0802C534: adds r1, r1, r0 ldrh r0, [r1] strh r0, [r5, #0x24] bl sub_08000E50 adds r4, r0, #0 movs r0, #7 ands r4, r0 movs r0, #4 ands r0, r4 cmp r0, #0 beq _0802C584 ldrb r0, [r5, #0xe] cmp r0, #0 beq _0802C55E movs r0, #0 strb r0, [r5, #0xe] adds r0, r5, #0 movs r1, #0 bl sub_08004260 _0802C55E: movs r0, #3 ands r4, r0 cmp r4, #0 beq _0802C578 ldr r0, _0802C574 @ =gUnk_080CD580 movs r1, #1 orrs r1, r6 b _0802C5B2 .align 2, 0 _0802C570: .4byte gUnk_080CD568 _0802C574: .4byte gUnk_080CD580 _0802C578: ldr r0, _0802C580 @ =gUnk_080CD580 adds r0, r6, r0 ldrb r0, [r0] b _0802C5B6 .align 2, 0 _0802C580: .4byte gUnk_080CD580 _0802C584: ldrb r0, [r5, #0xe] cmp r0, #1 beq _0802C596 movs r0, #1 strb r0, [r5, #0xe] adds r0, r5, #0 movs r1, #1 bl sub_08004260 _0802C596: movs r2, #3 ands r4, r2 cmp r4, #0 beq _0802C5AC ldr r0, _0802C5A8 @ =gUnk_080CD580 movs r1, #2 orrs r1, r6 b _0802C5B2 .align 2, 0 _0802C5A8: .4byte gUnk_080CD580 _0802C5AC: ldr r0, _0802C5E4 @ =gUnk_080CD580 adds r1, r6, #0 orrs r1, r2 _0802C5B2: adds r1, r1, r0 ldrb r0, [r1] _0802C5B6: strb r0, [r5, #0x15] bl sub_08000E50 adds r4, r0, #0 movs r0, #7 ands r4, r0 movs r0, #0x80 lsls r0, r0, #0xa str r0, [r5, #0x20] movs r0, #4 ands r0, r4 cmp r0, #0 beq _0802C5FC movs r0, #3 ands r4, r0 cmp r4, #0 beq _0802C5EC adds r2, r5, #0 adds r2, #0x84 ldr r1, _0802C5E8 @ =gUnk_080CD58C movs r0, #1 orrs r6, r0 b _0802C61A .align 2, 0 _0802C5E4: .4byte gUnk_080CD580 _0802C5E8: .4byte gUnk_080CD58C _0802C5EC: adds r2, r5, #0 adds r2, #0x84 ldr r1, _0802C5F8 @ =gUnk_080CD58C orrs r6, r0 b _0802C61A .align 2, 0 _0802C5F8: .4byte gUnk_080CD58C _0802C5FC: movs r0, #3 ands r4, r0 cmp r4, #0 beq _0802C614 adds r2, r5, #0 adds r2, #0x84 ldr r1, _0802C610 @ =gUnk_080CD58C movs r0, #2 orrs r6, r0 b _0802C61A .align 2, 0 _0802C610: .4byte gUnk_080CD58C _0802C614: adds r2, r5, #0 adds r2, #0x84 ldr r1, _0802C628 @ =gUnk_080CD58C _0802C61A: lsls r0, r6, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] str r0, [r2] pop {r4, r5, r6, pc} .align 2, 0 _0802C628: .4byte gUnk_080CD58C thumb_func_start sub_0802C62C sub_0802C62C: @ 0x0802C62C adds r3, r0, #0 movs r2, #0 movs r0, #1 strb r0, [r3, #0xc] adds r0, r3, #0 adds r0, #0x82 ldrh r0, [r0] strh r0, [r3, #0x32] adds r0, r3, #0 adds r0, #0x80 ldrh r0, [r0] strh r0, [r3, #0x2e] ldrb r1, [r3, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r3, #0x18] ldrb r1, [r3, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r3, #0x10] adds r0, r3, #0 adds r0, #0x7c strh r2, [r0] bx lr .align 2, 0 thumb_func_start sub_0802C660 sub_0802C660: @ 0x0802C660 push {lr} ldr r1, _0802C66C @ =gUnk_080CD5D4 bl sub_0800129E pop {pc} .align 2, 0 _0802C66C: .4byte gUnk_080CD5D4 thumb_func_start sub_0802C670 sub_0802C670: @ 0x0802C670 push {lr} ldr r2, _0802C684 @ =gUnk_080CD5EC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802C684: .4byte gUnk_080CD5EC thumb_func_start sub_0802C688 sub_0802C688: @ 0x0802C688 push {r4, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0802C69A b _0802C79E _0802C69A: movs r0, #0x7f ands r0, r1 cmp r0, #0x16 bhi _0802C740 lsls r0, r0, #2 ldr r1, _0802C6AC @ =_0802C6B0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802C6AC: .4byte _0802C6B0 _0802C6B0: @ jump table .4byte _0802C70C @ case 0 .4byte _0802C70C @ case 1 .4byte _0802C740 @ case 2 .4byte _0802C740 @ case 3 .4byte _0802C740 @ case 4 .4byte _0802C740 @ case 5 .4byte _0802C740 @ case 6 .4byte _0802C740 @ case 7 .4byte _0802C740 @ case 8 .4byte _0802C740 @ case 9 .4byte _0802C740 @ case 10 .4byte _0802C740 @ case 11 .4byte _0802C740 @ case 12 .4byte _0802C740 @ case 13 .4byte _0802C72C @ case 14 .4byte _0802C740 @ case 15 .4byte _0802C740 @ case 16 .4byte _0802C740 @ case 17 .4byte _0802C740 @ case 18 .4byte _0802C740 @ case 19 .4byte _0802C72C @ case 20 .4byte _0802C72C @ case 21 .4byte _0802C72C @ case 22 _0802C70C: adds r0, r4, #0 adds r0, #0x82 ldrb r0, [r0] cmp r0, #0 beq _0802C7A6 adds r1, r4, #0 adds r1, #0x42 movs r0, #0 strb r0, [r1] ldr r0, _0802C728 @ =gUnk_03001160 adds r0, #0x42 movs r1, #4 strb r1, [r0] b _0802C7A6 .align 2, 0 _0802C728: .4byte gUnk_03001160 _0802C72C: movs r1, #0 movs r0, #3 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x42 strb r1, [r0] adds r0, r4, #0 bl sub_0802CBC4 b _0802C7A6 _0802C740: adds r2, r4, #0 adds r2, #0x82 ldrb r0, [r2] adds r0, #1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x80 movs r0, #0x1c strb r0, [r1] ldrb r0, [r2] cmp r0, #1 beq _0802C75E cmp r0, #2 beq _0802C770 b _0802C79E _0802C75E: adds r0, r4, #0 bl sub_0802CB68 ldr r0, _0802C76C @ =0x0000014D bl sub_08004488 b _0802C79E .align 2, 0 _0802C76C: .4byte 0x0000014D _0802C770: movs r0, #3 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x6e strb r0, [r1] movs r1, #1 strb r1, [r4, #0xf] movs r0, #0xc0 lsls r0, r0, #9 str r0, [r4, #0x20] movs r0, #0 strh r0, [r4, #0x24] adds r0, r4, #0 adds r0, #0x81 strb r1, [r0] ldrb r1, [r4, #0x15] lsrs r1, r1, #4 movs r0, #6 orrs r1, r0 adds r0, r4, #0 bl sub_08004260 _0802C79E: ldr r1, _0802C7A8 @ =gUnk_080CD5D4 adds r0, r4, #0 bl sub_0804AA30 _0802C7A6: pop {r4, pc} .align 2, 0 _0802C7A8: .4byte gUnk_080CD5D4 thumb_func_start sub_0802C7AC sub_0802C7AC: @ 0x0802C7AC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #2 bhi _0802C7F6 adds r0, r4, #0 bl sub_0806F520 adds r1, r0, #0 cmp r1, #0 bne _0802C7F6 strb r1, [r4, #0xd] movs r0, #1 strb r0, [r4, #0xf] strh r1, [r4, #0x36] adds r0, r4, #0 adds r0, #0x82 ldrb r0, [r0] cmp r0, #2 beq _0802C7E2 movs r1, #0x80 cmp r0, #0 beq _0802C7E0 movs r0, #0x80 lsls r0, r0, #2 adds r1, r0, #0 _0802C7E0: strh r1, [r4, #0x24] _0802C7E2: movs r0, #0xc0 lsls r0, r0, #9 str r0, [r4, #0x20] adds r0, r4, #0 adds r0, #0x83 movs r1, #0 strb r1, [r0] subs r0, #2 strb r1, [r0] b _0802C816 _0802C7F6: ldr r0, _0802C818 @ =0x0000FFFF strh r0, [r4, #0x36] ldr r1, _0802C81C @ =gUnk_080CD600 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, #0xe] cmp r0, #0 beq _0802C816 adds r0, r4, #0 bl sub_08004274 _0802C816: pop {r4, pc} .align 2, 0 _0802C818: .4byte 0x0000FFFF _0802C81C: .4byte gUnk_080CD600 thumb_func_start sub_0802C820 sub_0802C820: @ 0x0802C820 movs r1, #1 strb r1, [r0, #0xd] movs r1, #0x3c strb r1, [r0, #0x1d] bx lr .align 2, 0 thumb_func_start sub_0802C82C sub_0802C82C: @ 0x0802C82C push {lr} bl sub_0806F4E8 pop {pc} thumb_func_start sub_0802C834 sub_0802C834: @ 0x0802C834 push {lr} bl sub_0806F3E4 pop {pc} thumb_func_start sub_0802C83C sub_0802C83C: @ 0x0802C83C push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x82 ldrb r0, [r1] cmp r0, #0 beq _0802C88C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802C884 movs r0, #3 strb r0, [r4, #0xc] ldr r0, _0802C86C @ =gUnk_03001160 ldrb r0, [r0, #0x14] movs r1, #6 ands r1, r0 cmp r1, #2 beq _0802C870 cmp r1, #6 beq _0802C876 b _0802C87C .align 2, 0 _0802C86C: .4byte gUnk_03001160 _0802C870: ldrh r0, [r4, #0x2e] subs r0, #6 b _0802C87A _0802C876: ldrh r0, [r4, #0x2e] adds r0, #6 _0802C87A: strh r0, [r4, #0x2e] _0802C87C: adds r0, r4, #0 bl sub_0802CBC4 b _0802C8B2 _0802C884: adds r0, r4, #0 bl sub_0802CC18 b _0802C8A2 _0802C88C: movs r0, #2 strb r0, [r1] movs r0, #0x78 strb r0, [r4, #0xe] ldrb r1, [r4, #0x15] lsrs r1, r1, #4 movs r0, #6 orrs r1, r0 adds r0, r4, #0 bl sub_08004260 _0802C8A2: ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x6e strb r0, [r1] _0802C8B2: pop {r4, pc} thumb_func_start nullsub_149 nullsub_149: @ 0x0802C8B4 bx lr .align 2, 0 thumb_func_start sub_0802C8B8 sub_0802C8B8: @ 0x0802C8B8 push {lr} movs r1, #3 strb r1, [r0, #0xc] bl sub_0802CBC4 pop {pc} thumb_func_start sub_0802C8C4 sub_0802C8C4: @ 0x0802C8C4 push {r4, lr} adds r4, r0, #0 bl sub_0804A7D4 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] pop {r4, pc} thumb_func_start sub_0802C8D8 sub_0802C8D8: @ 0x0802C8D8 push {r4, r5, lr} adds r5, r0, #0 movs r4, #0 movs r0, #1 strb r0, [r5, #0xc] movs r0, #0x3c strb r0, [r5, #0xe] strb r4, [r5, #0xf] bl sub_08000E50 movs r1, #0x18 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r5, #0x15] strb r4, [r5, #0x16] movs r0, #0x12 strb r0, [r5, #0x1c] adds r0, r5, #0 adds r0, #0x82 strb r4, [r0] adds r0, #1 strb r4, [r0] subs r0, #3 strb r4, [r0] adds r0, #1 strb r4, [r0] ldrb r1, [r5, #0x15] lsrs r1, r1, #4 adds r0, r5, #0 bl sub_08004260 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0802C91C sub_0802C91C: @ 0x0802C91C push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080AEF88 adds r0, r4, #0 adds r0, #0x82 ldrb r0, [r0] cmp r0, #0 beq _0802C97A ldrh r0, [r4, #0x2a] cmp r0, #0 beq _0802C950 adds r1, r0, #0 adds r0, r4, #0 bl sub_0800417E ldrb r1, [r4, #0x15] lsrs r1, r1, #4 movs r0, #2 orrs r1, r0 adds r0, r4, #0 bl sub_08004260 _0802C950: ldrb r0, [r4, #0xe] subs r1, r0, #1 strb r1, [r4, #0xe] lsls r0, r1, #0x18 cmp r0, #0 bne _0802C964 adds r0, r4, #0 bl sub_0802CBC4 b _0802C9B4 _0802C964: movs r0, #0xf ands r1, r0 cmp r1, #8 bne _0802C972 adds r0, r4, #0 bl sub_080A29FC _0802C972: adds r0, r4, #0 bl sub_0802CC18 b _0802C9B4 _0802C97A: ldrh r0, [r4, #0x2a] cmp r0, #0 beq _0802C992 adds r1, r0, #0 adds r0, r4, #0 bl sub_0800417E ldrb r1, [r4, #0x15] lsrs r1, r1, #4 adds r0, r4, #0 bl sub_08004260 _0802C992: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802C9B4 movs r0, #0x3c strb r0, [r4, #0xe] ldrb r1, [r4, #0x15] adds r1, #8 movs r0, #0x1c ands r1, r0 strb r1, [r4, #0x15] lsrs r1, r1, #4 adds r0, r4, #0 bl sub_08004260 _0802C9B4: pop {r4, pc} .align 2, 0 thumb_func_start sub_0802C9B8 sub_0802C9B8: @ 0x0802C9B8 push {lr} ldr r2, _0802C9CC @ =gUnk_080CD618 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802C9CC: .4byte gUnk_080CD618 thumb_func_start sub_0802C9D0 sub_0802C9D0: @ 0x0802C9D0 push {r4, lr} adds r4, r0, #0 movs r2, #1 strb r2, [r4, #0xd] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r3, r4, #0 adds r3, #0x29 ldrb r1, [r3] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r3] adds r0, r4, #0 adds r0, #0x83 strb r2, [r0] adds r0, r4, #0 bl sub_0802CC18 ldrb r1, [r4, #0x15] lsrs r1, r1, #4 movs r0, #6 orrs r1, r0 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08004274 pop {r4, pc} thumb_func_start sub_0802CA10 sub_0802CA10: @ 0x0802CA10 push {r4, lr} adds r4, r0, #0 ldr r0, _0802CA30 @ =gUnk_03003F80 ldrb r0, [r0, #5] cmp r0, #5 beq _0802CA42 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802CA34 adds r0, r4, #0 bl sub_0802CBC4 b _0802CA66 .align 2, 0 _0802CA30: .4byte gUnk_03003F80 _0802CA34: adds r0, r4, #0 bl sub_0802CC18 adds r0, r4, #0 bl sub_08004274 b _0802CA66 _0802CA42: adds r1, r4, #0 adds r1, #0x83 movs r0, #2 strb r0, [r1] ldr r0, _0802CA68 @ =gUnk_03001160 ldrb r0, [r0, #0x14] lsls r0, r0, #2 movs r1, #4 orrs r0, r1 movs r1, #0x1c ands r0, r1 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_0802CC18 adds r0, r4, #0 bl sub_08004274 _0802CA66: pop {r4, pc} .align 2, 0 _0802CA68: .4byte gUnk_03001160 thumb_func_start sub_0802CA6C sub_0802CA6C: @ 0x0802CA6C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802CA84 adds r0, r4, #0 bl sub_0802CBC4 b _0802CA90 _0802CA84: adds r0, r4, #0 bl sub_0802CC18 adds r0, r4, #0 bl sub_08004274 _0802CA90: pop {r4, pc} .align 2, 0 thumb_func_start sub_0802CA94 sub_0802CA94: @ 0x0802CA94 push {lr} adds r3, r0, #0 movs r2, #0 movs r0, #3 strb r0, [r3, #0xc] ldrb r1, [r3, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r3, #0x10] movs r0, #1 strb r0, [r3, #0xf] movs r0, #0x29 adds r0, r0, r3 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] movs r0, #0xc0 lsls r0, r0, #9 str r0, [r3, #0x20] movs r0, #0 strh r2, [r3, #0x24] adds r1, r3, #0 adds r1, #0x83 strb r0, [r1] subs r1, #2 strb r0, [r1] ldr r0, _0802CAF4 @ =gUnk_03001160 ldrb r1, [r0, #0x14] lsls r1, r1, #2 movs r0, #4 orrs r1, r0 movs r0, #0x1c ands r1, r0 strb r1, [r3, #0x15] lsrs r1, r1, #4 movs r0, #6 orrs r1, r0 adds r0, r3, #0 bl sub_08004260 pop {pc} .align 2, 0 _0802CAF4: .4byte gUnk_03001160 thumb_func_start sub_0802CAF8 sub_0802CAF8: @ 0x0802CAF8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802CB10 adds r0, r4, #0 bl sub_0802CBC4 b _0802CB62 _0802CB10: adds r0, r4, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #0 beq _0802CB30 movs r1, #0xa0 lsls r1, r1, #6 adds r0, r4, #0 bl sub_080044EC cmp r0, #1 bne _0802CB30 movs r0, #0x82 lsls r0, r0, #1 bl sub_08004488 _0802CB30: adds r0, r4, #0 bl sub_0802CC18 adds r0, r4, #0 bl sub_08078930 ldrb r0, [r4, #0xf] cmp r0, #0 beq _0802CB5C movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 bne _0802CB5C strb r0, [r4, #0xf] ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r1, r0 strb r1, [r4, #0x10] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x6e strb r0, [r1] _0802CB5C: adds r0, r4, #0 bl sub_08004274 _0802CB62: pop {r4, pc} thumb_func_start nullsub_150 nullsub_150: @ 0x0802CB64 bx lr .align 2, 0 thumb_func_start sub_0802CB68 sub_0802CB68: @ 0x0802CB68 push {r4, r5, lr} adds r5, r0, #0 movs r4, #0 movs r1, #0 movs r0, #1 strb r0, [r5, #0xc] strb r1, [r5, #0xd] bl sub_08000E50 adds r2, r0, #0 movs r0, #0x18 ands r2, r0 movs r0, #4 orrs r2, r0 orrs r2, r4 strb r2, [r5, #0x15] ldrb r0, [r5, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r5, #0x10] adds r0, r5, #0 adds r0, #0x82 ldrb r0, [r0] cmp r0, #0 beq _0802CBB2 movs r0, #0xc8 strb r0, [r5, #0xe] movs r0, #0x80 lsls r0, r0, #2 strh r0, [r5, #0x24] lsrs r1, r2, #4 movs r0, #2 orrs r1, r0 adds r0, r5, #0 bl sub_08004260 b _0802CBC2 _0802CBB2: movs r0, #0x3c strb r0, [r5, #0xe] movs r0, #0x80 strh r0, [r5, #0x24] lsrs r1, r2, #4 adds r0, r5, #0 bl sub_08004260 _0802CBC2: pop {r4, r5, pc} thumb_func_start sub_0802CBC4 sub_0802CBC4: @ 0x0802CBC4 push {r4, lr} adds r4, r0, #0 movs r2, #0 movs r0, #4 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #8 ands r0, r1 strb r0, [r4, #0x18] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 adds r0, #0x45 strb r2, [r0] adds r0, #0x3e ldrb r0, [r0] cmp r0, #0 beq _0802CBF0 bl sub_08079184 _0802CBF0: adds r0, r4, #0 bl sub_08078954 adds r0, r4, #0 movs r1, #0x20 movs r2, #0 movs r3, #0 bl sub_080A2988 adds r2, r0, #0 cmp r2, #0 beq _0802CC14 adds r0, r4, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r2, #0 adds r0, #0x38 strb r1, [r0] _0802CC14: pop {r4, pc} .align 2, 0 thumb_func_start sub_0802CC18 sub_0802CC18: @ 0x0802CC18 push {lr} adds r1, r0, #0 adds r1, #0x80 ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 bne _0802CC34 movs r0, #0x1c strb r0, [r1] ldr r0, _0802CC38 @ =0x0000014D bl sub_08004488 _0802CC34: pop {pc} .align 2, 0 _0802CC38: .4byte 0x0000014D thumb_func_start sub_0802CC3C sub_0802CC3C: @ 0x0802CC3C push {r4, r5, lr} adds r4, r0, #0 ldr r5, _0802CC64 @ =gUnk_080CD6FC bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r5 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, r5, pc} .align 2, 0 _0802CC64: .4byte gUnk_080CD6FC thumb_func_start sub_0802CC68 sub_0802CC68: @ 0x0802CC68 push {lr} ldr r2, _0802CC7C @ =gUnk_080CD714 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802CC7C: .4byte gUnk_080CD714 thumb_func_start sub_0802CC80 sub_0802CC80: @ 0x0802CC80 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r0, [r0] movs r5, #0x7f adds r1, r5, #0 ands r1, r0 cmp r1, #0 blt _0802CCB8 cmp r1, #1 ble _0802CC9A cmp r1, #0x1e bne _0802CCB8 _0802CC9A: movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] adds r0, r5, #0 ands r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #1 bl sub_08004260 ldr r2, _0802CCD4 @ =gUnk_03001160 ldrb r1, [r2, #0x10] adds r0, r5, #0 ands r0, r1 strb r0, [r2, #0x10] _0802CCB8: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _0802CCCA adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _0802CCCA: ldr r1, _0802CCD8 @ =gUnk_080CD6FC adds r0, r4, #0 bl sub_0804AA30 pop {r4, r5, pc} .align 2, 0 _0802CCD4: .4byte gUnk_03001160 _0802CCD8: .4byte gUnk_080CD6FC thumb_func_start nullsub_151 nullsub_151: @ 0x0802CCDC bx lr .align 2, 0 thumb_func_start sub_0802CCE0 sub_0802CCE0: @ 0x0802CCE0 push {r4, r5, lr} adds r4, r0, #0 bl sub_0804A720 movs r5, #0 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] bl sub_08000E50 strb r0, [r4, #0xf] ldrb r1, [r4, #0x18] movs r0, #0x31 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x20 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #0xff strb r0, [r4, #0x14] ldr r0, _0802CD50 @ =0x0000FFFE strh r0, [r4, #0x36] adds r1, r4, #0 adds r1, #0x38 movs r0, #3 strb r0, [r1] bl sub_08000E50 adds r1, r4, #0 adds r1, #0x7a strb r0, [r1] lsrs r0, r0, #8 movs r1, #0x60 ands r0, r1 adds r1, r4, #0 adds r1, #0x7b strb r0, [r1] adds r0, r4, #0 adds r0, #0x7c strh r5, [r0] adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_0802CF64 adds r0, r4, #0 bl sub_0802CFD8 pop {r4, r5, pc} .align 2, 0 _0802CD50: .4byte 0x0000FFFE thumb_func_start sub_0802CD54 sub_0802CD54: @ 0x0802CD54 push {r4, r5, r6, lr} adds r5, r0, #0 bl sub_08004274 adds r0, r5, #0 bl sub_0802CFD8 adds r1, r5, #0 adds r1, #0x7c ldrh r0, [r1] cmp r0, #0 beq _0802CD76 subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0802CDC8 _0802CD76: adds r0, r5, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0802CDC8 adds r6, r5, #0 adds r6, #0x7b ldrb r0, [r6] cmp r0, #0 bne _0802CDC4 movs r0, #2 strb r0, [r5, #0xc] bl sub_08000E50 adds r4, r0, #0 lsrs r0, r4, #0x10 strb r0, [r5, #0xe] movs r0, #0xc0 strh r0, [r5, #0x24] bl sub_08000E50 ldr r2, _0802CDC0 @ =gUnk_080CD728 movs r1, #3 ands r1, r0 lsls r1, r1, #1 adds r1, r1, r2 ldrh r1, [r1] adds r0, r5, #0 adds r0, #0x78 strh r1, [r0] lsrs r4, r4, #0x18 movs r0, #0x60 ands r4, r0 strb r4, [r6] b _0802CDE4 .align 2, 0 _0802CDC0: .4byte gUnk_080CD728 _0802CDC4: subs r0, #1 strb r0, [r6] _0802CDC8: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802CDDE movs r0, #0x3c strb r0, [r5, #0xe] adds r0, r5, #0 bl sub_0802CF64 _0802CDDE: adds r0, r5, #0 bl sub_0806F69C _0802CDE4: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0802CDE8 sub_0802CDE8: @ 0x0802CDE8 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x78 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 beq _0802CE3C adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0802CE3C ldrb r1, [r4, #0xe] adds r0, r1, #1 strb r0, [r4, #0xe] movs r0, #3 ands r0, r1 cmp r0, #0 bne _0802CE2E ldr r0, _0802CE38 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl sub_080045C4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 adds r0, r4, #0 bl sub_0802CF8C _0802CE2E: adds r0, r4, #0 bl sub_0806F69C b _0802CE58 .align 2, 0 _0802CE38: .4byte gUnk_020000B0 _0802CE3C: movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] movs r0, #0x60 strh r0, [r4, #0x24] bl sub_08000E50 movs r1, #0x38 ands r0, r1 adds r0, #0x96 adds r1, r4, #0 adds r1, #0x7c strh r0, [r1] _0802CE58: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0802CFD8 pop {r4, pc} .align 2, 0 thumb_func_start sub_0802CE68 sub_0802CE68: @ 0x0802CE68 push {r4, r5, lr} adds r4, r0, #0 ldr r2, _0802CED4 @ =gUnk_03003F80 ldrb r1, [r2, #0xa] movs r0, #0x80 orrs r1, r0 strb r1, [r2, #0xa] ldrb r1, [r2, #0x1a] orrs r0, r1 strb r0, [r2, #0x1a] ldr r0, [r2, #0x30] movs r1, #0x80 lsls r1, r1, #1 orrs r0, r1 str r0, [r2, #0x30] ldr r5, _0802CED8 @ =gUnk_03001160 movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #0 movs r3, #4 bl sub_0806FCB8 cmp r0, #0 bne _0802CEAC adds r0, r4, #0 adds r1, r5, #0 bl sub_080045C4 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_0806F69C _0802CEAC: adds r0, r4, #0 bl sub_0802CFD8 adds r0, r4, #0 bl sub_08004274 adds r3, r4, #0 adds r3, #0x5a ldrb r1, [r3] movs r0, #0x80 ands r0, r1 lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #0 beq _0802CEDC movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] b _0802CEF0 .align 2, 0 _0802CED4: .4byte gUnk_03003F80 _0802CED8: .4byte gUnk_03001160 _0802CEDC: movs r0, #1 ands r0, r1 cmp r0, #0 beq _0802CEF0 strb r2, [r3] ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r5, #0x18] _0802CEF0: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0802CEF4 sub_0802CEF4: @ 0x0802CEF4 push {r4, lr} adds r4, r0, #0 bl sub_0802CFD8 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802CF28 bl sub_0805E5A8 ldr r1, _0802CF20 @ =gUnk_0813AB1C ldr r0, _0802CF24 @ =gUnk_02033A90 ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl sub_08080840 b _0802CF5A .align 2, 0 _0802CF20: .4byte gUnk_0813AB1C _0802CF24: .4byte gUnk_02033A90 _0802CF28: ldr r0, [r4, #0x34] ldr r1, _0802CF5C @ =0xFFFE0000 adds r0, r0, r1 str r0, [r4, #0x34] movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #0x30 rsbs r0, r0, #0 cmp r1, r0 bge _0802CF4A ldrb r0, [r4, #0x18] movs r1, #0x31 rsbs r1, r1, #0 ands r1, r0 movs r0, #0x10 orrs r1, r0 strb r1, [r4, #0x18] _0802CF4A: ldr r1, _0802CF60 @ =gUnk_03003F80 ldrb r0, [r1, #0xa] movs r2, #0x80 orrs r0, r2 strb r0, [r1, #0xa] ldrb r0, [r1, #0x1a] orrs r0, r2 strb r0, [r1, #0x1a] _0802CF5A: pop {r4, pc} .align 2, 0 _0802CF5C: .4byte 0xFFFE0000 _0802CF60: .4byte gUnk_03003F80 thumb_func_start sub_0802CF64 sub_0802CF64: @ 0x0802CF64 push {r4, lr} adds r4, r0, #0 bl sub_08049FA0 cmp r0, #0 beq _0802CF76 bl sub_08000E50 b _0802CF7E _0802CF76: adds r0, r4, #0 bl sub_08049EE4 adds r0, #2 _0802CF7E: movs r1, #0x1c ands r0, r1 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_0802CF8C pop {r4, pc} thumb_func_start sub_0802CF8C sub_0802CF8C: @ 0x0802CF8C push {r4, lr} adds r3, r0, #0 ldrb r1, [r3, #0x15] adds r2, r1, #2 movs r0, #0x1c ands r2, r0 ldrb r4, [r3, #0x14] lsls r0, r4, #2 subs r0, r2, r0 adds r0, #6 cmp r0, #0xc bls _0802CFA8 lsrs r0, r2, #2 b _0802CFB8 _0802CFA8: adds r0, r1, #1 movs r1, #7 ands r0, r1 cmp r0, #2 ble _0802CFD0 lsrs r0, r2, #2 cmp r0, r4 beq _0802CFD0 _0802CFB8: strb r0, [r3, #0x14] lsrs r0, r2, #3 lsls r0, r0, #2 ldr r1, _0802CFD4 @ =gUnk_080CD730 adds r2, r0, r1 ldrh r1, [r2] adds r0, r3, #0 adds r0, #0x74 strh r1, [r0] ldrh r1, [r2, #2] adds r0, #2 strh r1, [r0] _0802CFD0: pop {r4, pc} .align 2, 0 _0802CFD4: .4byte gUnk_080CD730 thumb_func_start sub_0802CFD8 sub_0802CFD8: @ 0x0802CFD8 push {lr} mov ip, r0 ldr r2, _0802D014 @ =gUnk_080CD740 mov r3, ip adds r3, #0x7a ldrb r0, [r3] adds r1, r0, #1 strb r1, [r3] lsls r0, r0, #0x18 lsrs r0, r0, #0x1b movs r1, #7 ands r0, r1 adds r0, r0, r2 movs r2, #0 ldrsb r2, [r0, r2] mov r0, ip adds r0, #0x74 movs r3, #0 ldrsh r1, [r0, r3] adds r1, r1, r2 movs r0, #0x80 lsls r0, r0, #1 adds r2, r2, r0 mov r0, ip adds r0, #0x76 ldrh r3, [r0] mov r0, ip bl sub_0805EC9C pop {pc} .align 2, 0 _0802D014: .4byte gUnk_080CD740 thumb_func_start sub_0802D018 sub_0802D018: @ 0x0802D018 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _0802D030 @ =gUnk_080CD748 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _0802D030: .4byte gUnk_080CD748 thumb_func_start sub_0802D034 sub_0802D034: @ 0x0802D034 push {r4, r5, lr} adds r4, r0, #0 bl sub_08078B48 ldrb r0, [r4, #0xa] cmp r0, #1 beq _0802D0F4 cmp r0, #1 bgt _0802D04C cmp r0, #0 beq _0802D104 b _0802D148 _0802D04C: cmp r0, #2 bne _0802D148 ldrb r1, [r4, #0xb] cmp r1, #0 bne _0802D090 movs r0, #1 strb r0, [r4, #0xb] strb r1, [r4, #0xe] movs r0, #0x3c strb r0, [r4, #0xf] adds r2, r4, #0 adds r2, #0x74 movs r0, #0x10 strb r0, [r2] adds r0, r4, #0 adds r0, #0x75 strb r1, [r0] ldr r1, _0802D088 @ =gUnk_03000F50 ldrb r2, [r2] adds r0, r1, #0 adds r0, #0x68 strh r2, [r0] adds r1, #0x66 ldr r0, _0802D08C @ =0x00001442 strh r0, [r1] movs r0, #0xf6 bl sub_080A3268 b _0802D148 .align 2, 0 _0802D088: .4byte gUnk_03000F50 _0802D08C: .4byte 0x00001442 _0802D090: ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] movs r1, #0xf ands r0, r1 cmp r0, #0 bne _0802D0D2 adds r3, r4, #0 adds r3, #0x75 ldrb r0, [r3] adds r0, #1 strb r0, [r3] adds r1, r4, #0 adds r1, #0x74 ldrb r0, [r1] subs r0, #1 strb r0, [r1] ldr r2, _0802D0EC @ =gUnk_03000F50 ldrb r1, [r1] ldrb r0, [r3] lsls r0, r0, #8 orrs r1, r0 adds r2, #0x68 strh r1, [r2] movs r0, #0x80 lsls r0, r0, #5 cmp r1, r0 bne _0802D0D2 ldr r0, _0802D0F0 @ =gUnk_03001160 bl sub_0807AABC bl sub_0805E780 _0802D0D2: ldrb r0, [r4, #0xf] cmp r0, #0 beq _0802D148 subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0802D148 movs r0, #0xf7 bl sub_080A3268 b _0802D148 .align 2, 0 _0802D0EC: .4byte gUnk_03000F50 _0802D0F0: .4byte gUnk_03001160 _0802D0F4: movs r0, #0x94 lsls r0, r0, #1 bl sub_080A3268 adds r0, r4, #0 bl sub_0804A7D4 b _0802D148 _0802D104: ldr r5, _0802D14C @ =gUnk_03003F80 movs r0, #1 strb r0, [r5, #0x14] ldr r1, _0802D150 @ =gUnk_03001160 adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] movs r2, #0x3f ands r2, r0 adds r0, r4, #0 bl sub_0806FC80 cmp r0, #0 beq _0802D128 adds r1, r5, #0 adds r1, #0x3f movs r0, #0xfa strb r0, [r1] _0802D128: ldr r1, _0802D154 @ =gUnk_080CD75C ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0802E518 adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] bl sub_0802E7E4 _0802D148: pop {r4, r5, pc} .align 2, 0 _0802D14C: .4byte gUnk_03003F80 _0802D150: .4byte gUnk_03001160 _0802D154: .4byte gUnk_080CD75C thumb_func_start sub_0802D158 sub_0802D158: @ 0x0802D158 push {lr} movs r1, #1 strb r1, [r0, #0xc] ldr r0, _0802D16C @ =gUnk_02034490 strb r1, [r0] movs r0, #7 movs r1, #8 bl sub_08050054 pop {pc} .align 2, 0 _0802D16C: .4byte gUnk_02034490 thumb_func_start sub_0802D170 sub_0802D170: @ 0x0802D170 push {r4, r5, r6, lr} adds r5, r0, #0 ldr r0, _0802D1F0 @ =gUnk_03000FD0 ldrb r3, [r0] cmp r3, #0 bne _0802D216 ldrb r0, [r5, #0xc] cmp r0, #1 bne _0802D1FC adds r4, r5, #0 adds r4, #0x84 ldr r0, [r4] movs r1, #0x10 strb r1, [r0, #1] ldr r0, [r4] strb r1, [r0, #0x19] ldr r0, [r4] movs r1, #0x40 movs r2, #2 bl sub_0802EB08 cmp r0, #0 bne _0802D216 ldr r0, [r4] bl sub_0802EA88 cmp r0, #0 bne _0802D216 movs r0, #2 strb r0, [r5, #0xc] ldr r2, _0802D1F4 @ =gUnk_03001160 ldr r4, _0802D1F8 @ =gUnk_03000BF0 ldrh r0, [r4, #6] adds r0, #0x98 movs r1, #0 strh r0, [r2, #0x2e] ldrh r0, [r4, #8] adds r0, #0xd8 strh r0, [r2, #0x32] strb r1, [r2, #0x14] movs r1, #0x2e ldrsh r0, [r2, r1] ldrh r1, [r4, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r3, #0x3f ands r0, r3 movs r6, #0x32 ldrsh r1, [r2, r6] ldrh r2, [r4, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r3 lsls r1, r1, #6 orrs r0, r1 movs r1, #2 bl sub_0807BA8C str r5, [r4, #0x30] movs r0, #6 movs r1, #8 bl sub_08050054 b _0802D216 .align 2, 0 _0802D1F0: .4byte gUnk_03000FD0 _0802D1F4: .4byte gUnk_03001160 _0802D1F8: .4byte gUnk_03000BF0 _0802D1FC: movs r0, #3 strb r0, [r5, #0xc] adds r0, r5, #0 adds r0, #0x80 strb r3, [r0] adds r2, r5, #0 adds r2, #0x84 ldr r0, [r2] ldr r1, [r0, #0x50] movs r0, #0x18 strb r0, [r1, #0xe] ldr r0, [r2] strb r3, [r0, #0x19] _0802D216: pop {r4, r5, r6, pc} thumb_func_start sub_0802D218 sub_0802D218: @ 0x0802D218 push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x84 ldr r0, [r5] movs r1, #0x40 movs r2, #2 bl sub_0802EB08 adds r1, r0, #0 cmp r1, #0 bne _0802D254 movs r0, #4 strb r0, [r4, #0xc] strb r1, [r4, #0xe] strb r1, [r4, #0xf] adds r2, r4, #0 adds r2, #0x7c movs r0, #0xb4 strh r0, [r2] ldr r0, [r5] ldr r1, [r0, #0x50] movs r0, #0xc strb r0, [r1, #0xe] ldrh r3, [r2] adds r0, r4, #0 movs r1, #0x67 movs r2, #2 bl sub_080A2988 _0802D254: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0802D258 sub_0802D258: @ 0x0802D258 push {r4, r5, lr} adds r5, r0, #0 adds r1, r5, #0 adds r1, #0x7c ldrh r0, [r1] cmp r0, #0 bne _0802D276 adds r0, r5, #0 bl sub_0802E1D0 ldrb r0, [r5, #0xb] cmp r0, #5 bne _0802D288 strb r0, [r5, #0xc] b _0802D334 _0802D276: subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0802D288 adds r0, r5, #0 movs r1, #0x4e bl sub_08004260 _0802D288: ldrb r0, [r5, #0xe] cmp r0, #0 bne _0802D2B4 ldr r1, _0802D2B0 @ =gUnk_080CD774 ldrb r0, [r5, #0xf] adds r0, r0, r1 ldrb r0, [r0] strb r0, [r5, #0xe] ldrb r0, [r5, #0xf] adds r0, #1 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r5, #0x15] ldrb r1, [r5, #0xf] movs r0, #0x3f ands r0, r1 adds r0, #2 strb r0, [r5, #0xf] b _0802D2B8 .align 2, 0 _0802D2B0: .4byte gUnk_080CD774 _0802D2B4: subs r0, #1 strb r0, [r5, #0xe] _0802D2B8: ldrb r0, [r5, #0x15] cmp r0, #1 bhi _0802D2D0 adds r4, r5, #0 adds r4, #0x84 ldr r0, [r4] ldrb r3, [r5, #0x15] movs r1, #5 movs r2, #0x40 bl sub_0802EA48 b _0802D2E4 _0802D2D0: adds r4, r5, #0 adds r4, #0x84 cmp r0, #0xff beq _0802D2E4 ldr r0, [r4] ldrb r3, [r5, #0x15] movs r1, #5 movs r2, #0x40 bl sub_0802EA68 _0802D2E4: ldr r5, _0802D338 @ =gUnk_030010A0 ldr r0, [r5] movs r1, #0x1f ands r0, r1 cmp r0, #0 bne _0802D2F8 movs r0, #0x94 lsls r0, r0, #1 bl sub_080A3268 _0802D2F8: ldr r0, [r5] movs r1, #0xf ands r0, r1 cmp r0, #0 bne _0802D32E bl sub_08000E50 movs r1, #5 ands r1, r0 ldr r0, [r4] lsls r1, r1, #2 adds r0, #0x3c adds r0, r0, r1 ldr r0, [r0] movs r1, #0x48 movs r2, #0 bl sub_080A29AC cmp r0, #0 beq _0802D32E adds r2, r0, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] _0802D32E: ldr r0, [r4] bl sub_0802E768 _0802D334: pop {r4, r5, pc} .align 2, 0 _0802D338: .4byte gUnk_030010A0 thumb_func_start sub_0802D33C sub_0802D33C: @ 0x0802D33C push {r4, r5, r6, r7, lr} adds r0, #0x84 ldr r6, [r0] movs r4, #0 adds r7, r6, #0 adds r7, #0x3c adds r5, r7, #0 _0802D34A: ldm r5!, {r0} bl sub_0805E7BC adds r4, #1 cmp r4, #3 bls _0802D34A lsls r1, r4, #2 adds r1, r7, r1 ldr r0, [r1] adds r0, #0x45 movs r3, #0 strb r3, [r0] ldr r1, [r1] adds r1, #0x6d ldrb r2, [r1] movs r0, #1 orrs r0, r2 strb r0, [r1] ldr r0, [r6, #0x50] adds r0, #0x45 strb r3, [r0] ldr r0, [r6, #0x50] strb r3, [r0, #0xb] ldr r3, [r6, #0x50] ldrb r2, [r3, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #2 rsbs r0, r0, #0 ands r1, r0 subs r0, #2 ands r0, r2 orrs r0, r1 strb r0, [r3, #0x18] bl sub_0805E780 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0802D394 sub_0802D394: @ 0x0802D394 push {r4, lr} adds r4, r0, #0 ldr r1, _0802D3B4 @ =gUnk_080CD7B8 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldrb r0, [r4, #0x19] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x19] pop {r4, pc} .align 2, 0 _0802D3B4: .4byte gUnk_080CD7B8 thumb_func_start sub_0802D3B8 sub_0802D3B8: @ 0x0802D3B8 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 movs r0, #3 bl sub_0807CC30 cmp r0, #0 beq _0802D3DE ldr r2, _0802D3F4 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0802D3F8 @ =0x0000FDFF ands r0, r1 strh r0, [r2] ldr r0, _0802D3FC @ =gUnk_03001160 bl sub_0807AABC bl sub_0805E780 _0802D3DE: movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xa] cmp r0, #6 bls _0802D3EA b _0802D63C _0802D3EA: lsls r0, r0, #2 ldr r1, _0802D400 @ =_0802D404 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802D3F4: .4byte gUnk_03000F50 _0802D3F8: .4byte 0x0000FDFF _0802D3FC: .4byte gUnk_03001160 _0802D400: .4byte _0802D404 _0802D404: @ jump table .4byte _0802D420 @ case 0 .4byte _0802D544 @ case 1 .4byte _0802D58C @ case 2 .4byte _0802D5A8 @ case 3 .4byte _0802D5EC @ case 4 .4byte _0802D5F6 @ case 5 .4byte _0802D61A @ case 6 _0802D420: movs r2, #0 movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r3, r4, #0 adds r3, #0x29 ldrb r0, [r3] movs r1, #7 orrs r0, r1 strb r0, [r3] adds r0, r4, #0 adds r0, #0x75 strb r2, [r0] adds r0, #0xb strb r2, [r0] subs r0, #7 strb r2, [r0] movs r0, #0x96 str r0, [r4, #0x7c] adds r0, r4, #0 bl sub_0802EB9C movs r0, #0x54 bl sub_0801D8E0 adds r1, r4, #0 adds r1, #0x84 str r0, [r1] adds r5, r0, #0 adds r7, r1, #0 cmp r5, #0 bne _0802D470 adds r0, r4, #0 bl sub_0804A7D4 bl sub_0805E780 _0802D470: ldr r0, [r7] str r0, [r4, #0x64] movs r6, #0 movs r0, #0 mov r8, r0 _0802D47A: movs r0, #0x24 movs r1, #1 bl sub_0804AA60 str r0, [r4, #0x54] adds r3, r6, #1 cmp r0, #0 beq _0802D4D6 strb r3, [r0, #0xb] ldr r1, [r4, #0x54] adds r0, r4, #0 adds r0, #0x38 ldrb r0, [r0] adds r1, #0x38 strb r0, [r1] ldr r1, [r4, #0x54] ldrh r0, [r4, #0x2e] strh r0, [r1, #0x2e] ldr r1, [r4, #0x54] lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #2 ldrh r2, [r4, #0x32] adds r0, r0, r2 strh r0, [r1, #0x32] ldr r0, [r4, #0x54] str r4, [r0, #0x50] ldr r0, [r4, #0x54] adds r0, #0x84 ldr r1, [r7] str r1, [r0] lsls r2, r6, #2 adds r0, r5, #0 adds r0, #0x3c adds r0, r0, r2 ldr r1, [r4, #0x54] str r1, [r0] adds r2, r5, r2 movs r0, #0x10 strb r0, [r2, #1] mov r0, r8 strb r0, [r2, #0x19] adds r0, r5, #0 adds r0, #0x35 mov r1, r8 strb r1, [r0] _0802D4D6: adds r6, r3, #0 cmp r6, #4 bls _0802D47A movs r0, #0x24 movs r1, #2 bl sub_0804AA60 adds r2, r0, #0 str r2, [r4, #0x54] cmp r2, #0 beq _0802D52E adds r0, r4, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r2, #0 adds r0, #0x38 strb r1, [r0] ldr r1, [r4, #0x54] ldrh r0, [r4, #0x2e] movs r3, #0 strh r0, [r1, #0x2e] ldr r2, [r4, #0x54] adds r1, r6, #1 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 ldrh r1, [r4, #0x32] adds r0, r0, r1 strh r0, [r2, #0x32] ldr r0, [r4, #0x54] str r4, [r0, #0x50] ldr r0, [r4, #0x54] adds r0, #0x84 ldr r1, [r7] str r1, [r0] ldr r0, [r4, #0x54] str r0, [r5, #0x50] movs r0, #0x10 strb r0, [r5, #0x15] adds r0, r5, #0 adds r0, #0x2d strb r3, [r0] adds r0, #8 strb r3, [r0] _0802D52E: ldr r0, _0802D540 @ =gUnk_03003F80 adds r0, #0x8b movs r1, #3 strb r1, [r0] adds r0, r4, #0 movs r1, #0x4c bl sub_08004260 b _0802D63C .align 2, 0 _0802D540: .4byte gUnk_03003F80 _0802D544: ldrb r0, [r4, #0xb] cmp r0, #1 bne _0802D55C ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r2, r4, #0 adds r2, #0x3b ldrb r0, [r2] orrs r1, r0 strb r1, [r2] _0802D55C: ldr r1, _0802D588 @ =gUnk_080CD7C4 ldrb r0, [r4, #0xb] lsls r0, r0, #2 adds r0, r0, r1 ldrb r0, [r0, #1] adds r3, r4, #0 adds r3, #0x29 movs r1, #7 ands r1, r0 ldrb r2, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] movs r0, #0 strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #0x24 bl sub_08004260 b _0802D63C .align 2, 0 _0802D588: .4byte gUnk_080CD7C4 _0802D58C: adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #8 rsbs r1, r1, #0 ands r1, r0 strb r1, [r2] movs r0, #0 strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #0 bl sub_080042AC b _0802D63C _0802D5A8: ldr r0, _0802D5E8 @ =gUnk_080CD884 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x74 movs r2, #0 strb r1, [r0] adds r0, #1 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, #6 orrs r0, r1 strb r0, [r2] adds r2, #0x12 ldrb r1, [r2] movs r0, #0x80 orrs r0, r1 strb r0, [r2] ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA24 adds r0, r4, #0 movs r1, #0x4f bl sub_08004260 b _0802D63C .align 2, 0 _0802D5E8: .4byte gUnk_080CD884 _0802D5EC: adds r0, r4, #0 movs r1, #0x2c bl sub_080042AC b _0802D63C _0802D5F6: adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA24 adds r0, r4, #0 movs r1, #0x2d bl sub_080042AC b _0802D63C _0802D61A: adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA24 adds r0, r4, #0 movs r1, #0x50 bl sub_08004260 _0802D63C: ldrb r0, [r4, #0xa] cmp r0, #0 beq _0802D648 adds r0, r4, #0 bl sub_0802D86C _0802D648: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0802D650 sub_0802D650: @ 0x0802D650 push {r4, lr} adds r4, r0, #0 ldr r1, _0802D670 @ =gUnk_080CD7E4 ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r4, #0x84 ldr r0, [r4] bl sub_0802E7E4 pop {r4, pc} .align 2, 0 _0802D670: .4byte gUnk_080CD7E4 thumb_func_start sub_0802D674 sub_0802D674: @ 0x0802D674 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldr r0, _0802D6B4 @ =gUnk_02034490 movs r7, #1 strb r7, [r0] ldr r5, _0802D6B8 @ =gUnk_03001160 ldr r6, [r5, #0x34] cmp r6, #0 bne _0802D6EC ldr r0, [r4, #0x7c] cmp r0, #0x96 bne _0802D692 ldr r0, _0802D6BC @ =0x00000127 bl sub_080A3268 _0802D692: ldr r0, [r4, #0x7c] subs r1, r0, #1 str r1, [r4, #0x7c] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 bne _0802D6C4 strb r7, [r4, #0xd] movs r0, #0x5a str r0, [r4, #0x7c] ldr r0, _0802D6C0 @ =gUnk_03000BF0 str r4, [r0, #0x30] ldr r0, _0802D6BC @ =0x00000127 bl sub_080A3268 b _0802D6EC .align 2, 0 _0802D6B4: .4byte gUnk_02034490 _0802D6B8: .4byte gUnk_03001160 _0802D6BC: .4byte 0x00000127 _0802D6C0: .4byte gUnk_03000BF0 _0802D6C4: cmp r1, #0x3c bhi _0802D6DC cmp r1, #0x3c bne _0802D6D8 movs r2, #0x18 rsbs r2, r2, #0 adds r0, r5, #0 movs r1, #0xc bl sub_080A2CFC _0802D6D8: strb r6, [r5, #0x14] b _0802D6EC _0802D6DC: cmp r1, #0x59 bhi _0802D6E4 movs r0, #2 b _0802D6EA _0802D6E4: cmp r1, #0x77 bhi _0802D6EC movs r0, #6 _0802D6EA: strb r0, [r5, #0x14] _0802D6EC: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0802D6F0 sub_0802D6F0: @ 0x0802D6F0 push {lr} adds r2, r0, #0 ldr r0, [r2, #0x7c] subs r0, #1 str r0, [r2, #0x7c] movs r1, #1 rsbs r1, r1, #0 cmp r0, r1 bne _0802D712 movs r0, #2 strb r0, [r2, #0xd] movs r0, #0x5a str r0, [r2, #0x7c] movs r0, #0x96 movs r1, #0 bl sub_08080964 _0802D712: pop {pc} thumb_func_start sub_0802D714 sub_0802D714: @ 0x0802D714 push {r4, r5, lr} adds r4, r0, #0 ldr r0, [r4, #0x7c] subs r0, #1 str r0, [r4, #0x7c] movs r1, #1 rsbs r1, r1, #0 cmp r0, r1 bne _0802D77A adds r0, r4, #0 adds r0, #0x84 ldr r5, [r0] movs r1, #0 movs r3, #0 movs r2, #0x10 adds r0, r5, #0 _0802D734: strh r3, [r0, #0x18] strb r2, [r0, #1] adds r0, #4 adds r1, #1 cmp r1, #5 bls _0802D734 movs r1, #0 movs r0, #3 strb r0, [r4, #0xd] strb r1, [r4, #0xb] ldrb r1, [r4, #0x18] subs r0, #7 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0x4d bl sub_08004260 movs r0, #0x24 movs r1, #5 bl sub_0804AA60 str r0, [r4, #0x54] cmp r0, #0 beq _0802D774 str r4, [r0, #0x50] ldr r0, [r4, #0x54] str r0, [r5, #0x38] adds r0, #0x84 str r5, [r0] _0802D774: ldr r1, [r5, #0x50] movs r0, #0x18 strb r0, [r1, #0xe] _0802D77A: pop {r4, r5, pc} thumb_func_start sub_0802D77C sub_0802D77C: @ 0x0802D77C push {r4, r5, lr} adds r5, r0, #0 ldr r0, _0802D7B0 @ =gUnk_030010A0 ldr r4, [r0] movs r0, #1 ands r4, r0 cmp r4, #0 bne _0802D7AC adds r0, r5, #0 bl sub_0802E430 ldrb r0, [r5, #0xb] cmp r0, #2 bne _0802D7AC strb r4, [r5, #0xf] strb r4, [r5, #0xe] movs r0, #4 strb r0, [r5, #0xd] adds r0, r5, #0 adds r0, #0x84 ldr r0, [r0] ldr r1, [r0, #0x50] movs r0, #0xc strb r0, [r1, #0xe] _0802D7AC: pop {r4, r5, pc} .align 2, 0 _0802D7B0: .4byte gUnk_030010A0 thumb_func_start sub_0802D7B4 sub_0802D7B4: @ 0x0802D7B4 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xe] adds r3, r0, #0 cmp r3, #0 bne _0802D82C ldr r4, _0802D7FC @ =gUnk_080CD7F8 ldrb r2, [r5, #0xf] adds r0, r2, r4 ldrb r1, [r0] adds r0, r1, #0 cmp r0, #0xff bne _0802D810 strb r3, [r5, #0xf] strb r3, [r5, #0xe] movs r2, #1 strb r2, [r5, #0xc] strb r3, [r5, #0xd] adds r0, r5, #0 adds r0, #0x84 ldr r0, [r0] ldr r1, [r0, #0x50] movs r0, #0x18 strb r0, [r1, #0xe] ldr r1, _0802D800 @ =gUnk_03000BF0 ldr r0, _0802D804 @ =gUnk_03001160 str r0, [r1, #0x30] ldr r0, _0802D808 @ =gUnk_03003F80 adds r0, #0x8b strb r2, [r0] ldr r0, _0802D80C @ =gUnk_02034490 strb r3, [r0] movs r0, #0x2e bl sub_080A3268 b _0802D868 .align 2, 0 _0802D7FC: .4byte gUnk_080CD7F8 _0802D800: .4byte gUnk_03000BF0 _0802D804: .4byte gUnk_03001160 _0802D808: .4byte gUnk_03003F80 _0802D80C: .4byte gUnk_02034490 _0802D810: strb r1, [r5, #0xe] adds r0, r2, #1 adds r0, r0, r4 ldrb r0, [r0] strb r0, [r5, #0x15] ldrb r0, [r5, #0xf] adds r0, #2 strb r0, [r5, #0xf] ldr r0, _0802D828 @ =0x00000127 bl sub_080A3268 b _0802D830 .align 2, 0 _0802D828: .4byte 0x00000127 _0802D82C: subs r0, #1 strb r0, [r5, #0xe] _0802D830: ldrb r0, [r5, #0x15] cmp r0, #1 bhi _0802D848 adds r4, r5, #0 adds r4, #0x84 ldr r0, [r4] ldrb r3, [r5, #0x15] movs r1, #5 movs r2, #0x40 bl sub_0802EA48 b _0802D85C _0802D848: adds r4, r5, #0 adds r4, #0x84 cmp r0, #0xff beq _0802D85C ldr r0, [r4] ldrb r3, [r5, #0x15] movs r1, #5 movs r2, #0x40 bl sub_0802EA68 _0802D85C: ldr r0, [r4] bl sub_0802E768 adds r0, r5, #0 bl sub_0802E518 _0802D868: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0802D86C sub_0802D86C: @ 0x0802D86C push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #6 bls _0802D878 b _0802DB7E _0802D878: lsls r0, r0, #2 ldr r1, _0802D884 @ =_0802D888 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802D884: .4byte _0802D888 _0802D888: @ jump table .4byte _0802DB64 @ case 0 .4byte _0802D8A4 @ case 1 .4byte _0802D8CE @ case 2 .4byte _0802DA54 @ case 3 .4byte _0802D94C @ case 4 .4byte _0802D9A2 @ case 5 .4byte _0802D9F8 @ case 6 _0802D8A4: ldrb r0, [r4, #0xb] cmp r0, #1 bne _0802D8CE ldr r0, [r4, #0x50] adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 bne _0802D8BE ldrb r0, [r4, #0x18] lsls r0, r0, #0x1e lsrs r0, r0, #0x1e cmp r0, #1 beq _0802D8C6 _0802D8BE: ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 b _0802D8CC _0802D8C6: ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 _0802D8CC: strb r0, [r4, #0x10] _0802D8CE: ldrb r0, [r4, #0x18] lsls r0, r0, #0x1e lsrs r0, r0, #0x1e movs r1, #1 ands r0, r1 cmp r0, #0 bne _0802D8DE b _0802DB7E _0802D8DE: ldr r0, [r4, #0x50] adds r0, #0x3d ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x3d strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 bne _0802D918 ldrb r0, [r4, #0xf] cmp r0, #0 bne _0802D906 adds r0, r4, #0 bl sub_0801D230 adds r0, r4, #0 movs r1, #0xc9 bl sub_0801D040 b _0802D918 _0802D906: subs r0, #1 strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_0801D230 adds r0, r4, #0 movs r1, #0xca bl sub_0801D040 _0802D918: ldr r0, [r4, #0x50] adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 bne _0802D924 b _0802DB7E _0802D924: ldr r1, _0802D944 @ =gUnk_03001160 adds r0, r4, #0 movs r2, #8 movs r3, #8 bl sub_080041A0 cmp r0, #0 bne _0802D936 b _0802DB7E _0802D936: ldr r0, _0802D948 @ =gUnk_03003F80 movs r1, #1 strb r1, [r0, #0x14] adds r0, #0x3f movs r1, #0xfc strb r1, [r0] b _0802DB7E .align 2, 0 _0802D944: .4byte gUnk_03001160 _0802D948: .4byte gUnk_03003F80 _0802D94C: adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] cmp r0, #0 bne _0802D95E adds r0, r4, #0 bl sub_080042B8 b _0802DB7E _0802D95E: movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 adds r2, r0, #0 cmp r2, #0 beq _0802D970 b _0802DB7E _0802D970: ldr r0, [r4, #0x50] adds r0, #0x7b movs r1, #1 strb r1, [r0] strb r2, [r4, #0xe] _0802D97A: ldrb r3, [r4, #0xe] adds r0, r4, #0 movs r1, #0x67 movs r2, #0 bl sub_080A2988 ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #7 bls _0802D97A movs r0, #0xa8 lsls r0, r0, #1 bl sub_080A3268 _0802D99C: bl sub_0805E780 b _0802DB7E _0802D9A2: ldr r0, _0802D9F4 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #1 ands r0, r1 cmp r0, #0 beq _0802D9B8 ldr r0, [r4, #0x50] ldrb r0, [r0, #0xc] cmp r0, #2 bne _0802D9B8 b _0802DB7E _0802D9B8: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0802D9CE b _0802DB7E _0802D9CE: movs r0, #0x24 movs r1, #6 bl sub_0804AA60 adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 beq _0802D99C ldr r0, [r4, #0x50] str r0, [r1, #0x50] adds r2, r4, #0 adds r2, #0x84 ldr r1, [r2] ldr r0, [r4, #0x54] str r0, [r1, #0x38] adds r0, #0x84 ldr r1, [r2] str r1, [r0] b _0802D99C .align 2, 0 _0802D9F4: .4byte gUnk_030010A0 _0802D9F8: ldr r0, _0802DA50 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #1 ands r0, r1 cmp r0, #0 beq _0802DA0E ldr r0, [r4, #0x50] ldrb r0, [r0, #0xc] cmp r0, #2 bne _0802DA0E b _0802DB7E _0802DA0E: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0802DA24 b _0802DB7E _0802DA24: movs r0, #0x24 movs r1, #3 bl sub_0804AA60 adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 beq _0802D99C ldr r0, [r4, #0x50] str r0, [r1, #0x50] adds r1, r4, #0 adds r1, #0x84 ldr r0, [r1] ldrb r0, [r0, #1] strb r0, [r4, #0xe] ldr r2, [r1] ldr r0, [r4, #0x54] str r0, [r2, #0x38] adds r0, #0x84 ldr r1, [r1] str r1, [r0] b _0802D99C .align 2, 0 _0802DA50: .4byte gUnk_030010A0 _0802DA54: adds r0, r4, #0 adds r0, #0x74 ldrb r1, [r0] adds r6, r0, #0 cmp r1, #0 beq _0802DA96 subs r0, r1, #1 strb r0, [r6] lsls r0, r0, #0x18 cmp r0, #0 bne _0802DA96 adds r5, r4, #0 adds r5, #0x75 ldrb r0, [r5] adds r0, #2 strb r0, [r5] ldr r7, _0802DAD4 @ =gUnk_080CD884 ldrb r0, [r5] adds r0, r0, r7 ldrb r0, [r0] strb r0, [r6] cmp r0, #0 beq _0802DA96 adds r0, r4, #0 bl sub_0801D230 ldrb r0, [r5] adds r0, #1 adds r0, r0, r7 ldrb r1, [r0] adds r0, r4, #0 bl sub_0801D040 _0802DA96: adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0802DAD8 ldrb r2, [r6] cmp r2, #0 bne _0802DAD8 movs r0, #0x7f ands r0, r1 cmp r0, #0x1d bne _0802DB20 movs r0, #0xc0 lsls r0, r0, #0xa str r0, [r4, #0x20] ldr r1, [r4, #0x50] movs r0, #4 strb r0, [r1, #0xd] ldr r0, [r4, #0x50] strb r2, [r0, #0xb] ldr r0, [r4, #0x50] adds r0, #0x7b strb r2, [r0] movs r0, #0x86 lsls r0, r0, #1 bl sub_080A3268 b _0802DB20 .align 2, 0 _0802DAD4: .4byte gUnk_080CD884 _0802DAD8: adds r0, r4, #0 adds r0, #0x84 ldr r2, [r0] ldrb r1, [r4, #0xe] adds r3, r0, #0 ldrb r0, [r2, #1] cmp r1, r0 beq _0802DB20 adds r0, r1, #0 ldrb r1, [r2, #1] subs r0, r0, r1 movs r1, #0x1f ands r0, r1 cmp r0, #0x10 ble _0802DB08 ldrb r0, [r4, #0x1e] adds r0, #1 strb r0, [r4, #0x1e] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x30 bls _0802DB1A movs r0, #0x28 b _0802DB18 _0802DB08: ldrb r0, [r4, #0x1e] subs r0, #1 strb r0, [r4, #0x1e] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x27 bhi _0802DB1A movs r0, #0x30 _0802DB18: strb r0, [r4, #0x1e] _0802DB1A: ldr r0, [r3] ldrb r0, [r0, #1] strb r0, [r4, #0xe] _0802DB20: ldr r0, [r4, #0x20] cmp r0, #0 ble _0802DB7E movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 ldr r0, [r4, #0x20] cmp r0, #0 bgt _0802DB7E movs r0, #0x24 movs r1, #4 bl sub_0804AA60 adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 beq _0802DB7E ldr r0, [r4, #0x50] str r0, [r1, #0x50] adds r2, r4, #0 adds r2, #0x84 ldr r1, [r2] ldr r0, [r4, #0x54] str r0, [r1, #0x38] adds r0, #0x84 ldr r1, [r2] str r1, [r0] ldr r1, [r4, #0x54] adds r0, r4, #0 bl sub_0806FA24 b _0802D99C _0802DB64: ldr r1, _0802DB80 @ =gUnk_080CD810 ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] bl sub_0802E7E4 _0802DB7E: pop {r4, r5, r6, r7, pc} .align 2, 0 _0802DB80: .4byte gUnk_080CD810 thumb_func_start sub_0802DB84 sub_0802DB84: @ 0x0802DB84 push {r4, r5, lr} adds r5, r0, #0 ldr r1, _0802DBB0 @ =gUnk_03001160 bl sub_080045C4 strb r0, [r5, #0x15] adds r1, r5, #0 adds r1, #0x84 ldr r2, [r1] ldrb r1, [r2, #1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r1, r0 bne _0802DBB4 movs r0, #1 strb r0, [r5, #0xd] adds r1, r5, #0 adds r1, #0x78 movs r0, #0 strb r0, [r1] b _0802DC1A .align 2, 0 _0802DBB0: .4byte gUnk_03001160 _0802DBB4: ldrb r0, [r2, #1] ldrb r1, [r5, #0x15] subs r0, r0, r1 movs r1, #0x1f ands r0, r1 cmp r0, #0x10 ble _0802DBCE movs r3, #0 ldrb r1, [r5, #0xe] movs r0, #0xfe ands r0, r1 strb r0, [r5, #0xe] b _0802DBD2 _0802DBCE: movs r3, #1 strb r3, [r5, #0xe] _0802DBD2: adds r0, r5, #0 adds r0, #0x79 ldrb r0, [r0] cmp r0, #1 beq _0802DBF0 cmp r0, #1 bgt _0802DBE6 cmp r0, #0 beq _0802DBEC b _0802DBF8 _0802DBE6: cmp r0, #2 beq _0802DBF4 b _0802DBF8 _0802DBEC: movs r0, #0x30 b _0802DBF6 _0802DBF0: movs r0, #0x40 b _0802DBF6 _0802DBF4: movs r0, #0x50 _0802DBF6: strh r0, [r5, #0x24] _0802DBF8: adds r4, r5, #0 adds r4, #0x84 ldr r0, [r4] movs r1, #0x24 ldrsh r2, [r5, r1] movs r1, #5 bl sub_0802EA48 ldr r0, [r4] bl sub_0802E768 adds r0, r5, #0 bl sub_0802E518 adds r0, r5, #0 bl sub_0802EBC4 _0802DC1A: pop {r4, r5, pc} thumb_func_start sub_0802DC1C sub_0802DC1C: @ 0x0802DC1C push {r4, r5, r6, lr} adds r5, r0, #0 ldr r1, _0802DC40 @ =gUnk_03001160 bl sub_080045C4 adds r3, r0, #0 adds r1, r5, #0 adds r1, #0x84 ldr r0, [r1] ldrb r0, [r0, #1] subs r3, r0, r3 movs r0, #0x1f ands r3, r0 cmp r3, #0x10 bls _0802DC44 cmp r3, #0x1d bhi _0802DC54 b _0802DC48 .align 2, 0 _0802DC40: .4byte gUnk_03001160 _0802DC44: cmp r3, #2 bls _0802DC54 _0802DC48: movs r0, #0 strb r0, [r5, #0xd] ldr r1, [r1] ldr r1, [r1, #0x50] strb r0, [r1, #0xe] b _0802DCDE _0802DC54: adds r0, r5, #0 adds r0, #0x78 ldrb r1, [r0] adds r6, r0, #0 cmp r1, #0 beq _0802DC6A subs r0, r1, #1 strb r0, [r6] adds r4, r5, #0 adds r4, #0x84 b _0802DCC6 _0802DC6A: ldrb r0, [r5, #0xe] movs r3, #0 cmp r0, #1 bne _0802DC74 movs r3, #1 _0802DC74: adds r4, r5, #0 adds r4, #0x84 ldr r0, [r4] movs r1, #5 movs r2, #0x20 bl sub_0802EA48 ldr r1, [r4] ldrh r0, [r1] ldrh r1, [r1, #0x14] movs r2, #4 bl sub_0802EA18 cmp r0, #0 beq _0802DCC6 ldrb r0, [r5, #0xe] cmp r0, #1 bne _0802DCAC ldr r2, [r4] ldrb r0, [r2, #1] subs r0, #4 movs r1, #0x1f ands r0, r1 lsls r0, r0, #8 movs r1, #0xff orrs r0, r1 strh r0, [r2, #0x14] b _0802DCBA _0802DCAC: ldr r0, [r4] ldrb r1, [r0, #1] adds r1, #4 movs r2, #0x1f ands r1, r2 lsls r1, r1, #8 strh r1, [r0, #0x14] _0802DCBA: ldrb r0, [r5, #0xe] movs r1, #1 eors r0, r1 strb r0, [r5, #0xe] movs r0, #0xc strb r0, [r6] _0802DCC6: adds r0, r5, #0 bl sub_0802E9B0 ldr r0, [r4] bl sub_0802E768 adds r0, r5, #0 bl sub_0802E518 adds r0, r5, #0 bl sub_0802EBC4 _0802DCDE: pop {r4, r5, r6, pc} thumb_func_start sub_0802DCE0 sub_0802DCE0: @ 0x0802DCE0 push {r4, r5, r6, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x84 ldr r0, [r5] ldr r1, [r0, #0x50] ldrb r0, [r1, #0xe] cmp r0, #0xc beq _0802DD44 ldr r1, _0802DD1C @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] ldr r2, [r5] ldrb r1, [r2, #0x15] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r1, r0 bne _0802DD20 ldr r1, [r2, #0x50] movs r0, #0xc strb r0, [r1, #0xe] adds r1, r4, #0 adds r1, #0x82 movs r0, #4 strb r0, [r1] movs r0, #0 strb r0, [r4, #0xf] b _0802DDD0 .align 2, 0 _0802DD1C: .4byte gUnk_03001160 _0802DD20: ldrb r0, [r2, #0x15] ldrb r1, [r4, #0x15] subs r0, r0, r1 movs r1, #0x1f ands r0, r1 movs r3, #1 cmp r0, #0x10 ble _0802DD32 movs r3, #0 _0802DD32: adds r0, r2, #0 movs r1, #5 movs r2, #0x20 bl sub_0802EA48 ldr r0, [r5] bl sub_0802E768 b _0802DDD0 _0802DD44: ldrb r0, [r4, #0xf] cmp r0, #5 bhi _0802DD74 adds r1, r4, #0 adds r1, #0x82 ldrb r0, [r1] cmp r0, #0 bne _0802DD6E movs r2, #4 strb r2, [r1] ldr r1, [r5] ldrb r0, [r4, #0xf] lsls r0, r0, #2 adds r1, #0x3c adds r1, r1, r0 ldr r0, [r1] strb r2, [r0, #0xf] ldrb r0, [r4, #0xf] adds r0, #1 strb r0, [r4, #0xf] b _0802DDD0 _0802DD6E: subs r0, #1 strb r0, [r1] b _0802DDD0 _0802DD74: ldrb r6, [r1, #0xf] cmp r6, #0 bne _0802DDD0 adds r0, r4, #0 movs r1, #0xa movs r2, #0 bl sub_0804A98C adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 beq _0802DDB2 ldr r0, [r5] ldrb r0, [r0, #0x15] strb r0, [r1, #0x15] ldr r2, [r4, #0x54] ldr r0, [r5] ldr r0, [r0, #0x50] adds r0, #0x5a ldrb r1, [r0] movs r0, #0xf ands r0, r1 strb r0, [r2, #0xb] ldr r1, [r4, #0x54] ldr r0, [r5] ldr r0, [r0, #0x50] str r0, [r1, #0x50] ldr r1, [r4, #0x54] ldr r0, [r5] ldr r0, [r0, #0x3c] str r0, [r1, #0x54] _0802DDB2: ldr r0, [r5] ldr r0, [r0, #0x50] strb r6, [r0, #0xe] adds r1, r4, #0 adds r1, #0x74 ldrb r0, [r1] cmp r0, #0 bne _0802DDC8 movs r0, #1 strb r0, [r1] b _0802DDD0 _0802DDC8: strb r6, [r4, #0xd] adds r0, r4, #0 bl sub_0802EB9C _0802DDD0: adds r0, r4, #0 bl sub_0802E518 pop {r4, r5, r6, pc} thumb_func_start sub_0802DDD8 sub_0802DDD8: @ 0x0802DDD8 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r0, #0x76 ldrb r0, [r0] movs r7, #4 cmp r0, #0 beq _0802DE06 movs r7, #6 adds r0, r5, #0 adds r0, #0x79 ldrb r0, [r0] cmp r0, #2 bne _0802DE06 bl sub_08000E50 movs r1, #1 ands r1, r0 cmp r1, #0 bne _0802DE06 movs r7, #0xc _0802DE06: ldrb r0, [r5, #0xb] cmp r0, #0 beq _0802DE2E cmp r0, #0 bge _0802DE12 b _0802DF9A _0802DE12: cmp r0, #2 ble _0802DE18 b _0802DF9A _0802DE18: adds r6, r5, #0 adds r6, #0x84 cmp r0, #1 beq _0802DEFE adds r0, r5, #0 adds r0, #0x76 ldrb r1, [r0] mov sb, r0 cmp r1, #0 bne _0802DE76 b _0802DE6C _0802DE2E: adds r6, r5, #0 adds r6, #0x84 ldr r0, [r6] bl sub_0802EA88 cmp r0, #0 beq _0802DE3E b _0802DF9A _0802DE3E: movs r4, #1 strb r4, [r5, #0xb] strb r0, [r5, #0xf] bl sub_08000E50 ands r0, r4 cmp r0, #0 bne _0802DE58 strb r0, [r5, #0x15] ldr r0, [r6] ldrb r0, [r0, #1] adds r0, r0, r7 b _0802DE60 _0802DE58: strb r4, [r5, #0x15] ldr r0, [r6] ldrb r0, [r0, #1] subs r0, r0, r7 _0802DE60: movs r1, #0x1f ands r0, r1 adds r1, r5, #0 adds r1, #0x7a strb r0, [r1] b _0802DF9A _0802DE6C: movs r2, #1 movs r0, #2 mov r8, r0 movs r4, #1 b _0802DE7E _0802DE76: movs r2, #2 movs r1, #6 mov r8, r1 movs r4, #0 _0802DE7E: adds r1, r5, #0 adds r1, #0x84 ldr r0, [r1] ldr r0, [r0, #0x50] ldrb r0, [r0, #0xf] adds r6, r1, #0 cmp r0, #1 bne _0802DEC4 adds r0, r5, #0 movs r1, #0xa bl sub_0804A98C adds r1, r0, #0 str r1, [r5, #0x54] cmp r1, #0 beq _0802DEC4 ldr r0, [r6] ldrb r0, [r0, #0x15] strb r0, [r1, #0x15] ldr r2, [r5, #0x54] ldr r0, [r6] ldr r0, [r0, #0x50] adds r0, #0x5a ldrb r1, [r0] movs r0, #0xf ands r0, r1 strb r0, [r2, #0xb] ldr r1, [r5, #0x54] ldr r0, [r6] ldr r0, [r0, #0x50] str r0, [r1, #0x50] ldr r1, [r5, #0x54] ldr r0, [r6] ldr r0, [r0, #0x3c] str r0, [r1, #0x54] _0802DEC4: adds r1, r5, #0 adds r1, #0x74 ldrb r0, [r1] adds r2, r0, #0 cmp r2, #0 bne _0802DEF4 strb r4, [r1] ldr r1, [r6] ldrb r0, [r5, #0xf] lsls r0, r0, #2 adds r1, #0x3c adds r1, r1, r0 ldr r0, [r1] mov r1, r8 strb r1, [r0, #0xf] ldrb r0, [r5, #0xf] adds r0, #1 strb r0, [r5, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #5 bls _0802DEF8 strb r2, [r5, #0xf] b _0802DEF8 _0802DEF4: subs r0, #1 strb r0, [r1] _0802DEF8: ldrb r0, [r5, #0xb] cmp r0, #1 bne _0802DF0C _0802DEFE: ldr r0, [r6] ldrb r3, [r5, #0x15] movs r1, #5 movs r2, #0x40 bl sub_0802EA48 b _0802DF2E _0802DF0C: mov r1, sb ldrb r0, [r1] cmp r0, #0 bne _0802DF22 ldr r0, [r6] ldrb r3, [r5, #0x15] movs r1, #5 movs r2, #0x20 bl sub_0802EA48 b _0802DF2E _0802DF22: ldr r0, [r6] ldrb r3, [r5, #0x15] movs r1, #5 movs r2, #0x10 bl sub_0802EA48 _0802DF2E: adds r4, r6, #0 ldr r0, [r4] bl sub_0802E768 adds r2, r5, #0 adds r2, #0x7a ldr r1, [r4] ldrb r0, [r2] ldrb r1, [r1, #0x15] cmp r0, r1 bne _0802DF9A ldrb r0, [r5, #0xb] cmp r0, #1 bne _0802DF8A movs r0, #2 strb r0, [r5, #0xb] ldrb r0, [r5, #0x15] movs r1, #1 eors r0, r1 strb r0, [r5, #0x15] adds r3, r0, #0 cmp r3, #1 bne _0802DF6C lsls r0, r7, #1 ldrb r1, [r2] subs r1, r1, r0 movs r0, #0x1f ands r1, r0 strb r1, [r2] strb r3, [r5, #0xe] b _0802DF80 _0802DF6C: lsls r0, r7, #1 ldrb r1, [r2] adds r0, r0, r1 movs r1, #0x1f ands r0, r1 strb r0, [r2] ldrb r1, [r5, #0xe] movs r0, #0xfe ands r0, r1 strb r0, [r5, #0xe] _0802DF80: ldr r0, [r6] ldr r1, [r0, #0x50] movs r0, #0xc strb r0, [r1, #0xe] b _0802DF9A _0802DF8A: movs r0, #0 strb r0, [r5, #0xd] ldr r1, [r6] ldr r1, [r1, #0x50] strb r0, [r1, #0xe] adds r0, r5, #0 bl sub_0802EB9C _0802DF9A: adds r0, r5, #0 bl sub_0802E518 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0802DFA8 sub_0802DFA8: @ 0x0802DFA8 push {lr} ldr r2, _0802DFBC @ =gUnk_080CD828 ldrb r1, [r0, #0xb] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802DFBC: .4byte gUnk_080CD828 thumb_func_start sub_0802DFC0 sub_0802DFC0: @ 0x0802DFC0 push {r4, r5, lr} adds r5, r0, #0 adds r4, r5, #0 adds r4, #0x84 ldr r2, [r4] ldrb r0, [r2, #1] movs r1, #7 ands r1, r0 cmp r1, #0 beq _0802DFF8 cmp r1, #4 bls _0802DFDC movs r0, #0 b _0802DFDE _0802DFDC: movs r0, #1 _0802DFDE: strb r0, [r5, #0x15] adds r4, r5, #0 adds r4, #0x84 ldr r0, [r4] ldrb r3, [r5, #0x15] movs r1, #0 movs r2, #0x20 bl sub_0802EA48 ldr r0, [r4] bl sub_0802EA88 b _0802E026 _0802DFF8: adds r0, r2, #0 bl sub_0802EA88 cmp r0, #0 bne _0802E026 adds r0, r5, #0 adds r0, #0x7b ldrb r0, [r0] cmp r0, #0 beq _0802E026 ldrb r1, [r5, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r5, #0x10] movs r0, #1 strb r0, [r5, #0xb] ldr r0, [r4] ldr r1, [r0, #0x50] movs r0, #0x18 strb r0, [r1, #0xe] ldr r0, _0802E030 @ =0x00000127 bl sub_080A3268 _0802E026: adds r0, r5, #0 bl sub_0802E518 pop {r4, r5, pc} .align 2, 0 _0802E030: .4byte 0x00000127 thumb_func_start sub_0802E034 sub_0802E034: @ 0x0802E034 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x84 ldr r5, [r0] ldrb r0, [r4, #0xb] cmp r0, #1 bne _0802E04A movs r0, #2 strb r0, [r4, #0x15] movs r0, #0 b _0802E058 _0802E04A: movs r0, #3 strb r0, [r4, #0x15] ldr r1, _0802E078 @ =gUnk_080CD840 ldrb r0, [r5, #1] lsrs r0, r0, #3 adds r0, r0, r1 ldrb r0, [r0] _0802E058: ldrb r1, [r5, #0x19] cmp r0, r1 beq _0802E07C ldrb r3, [r4, #0x15] adds r0, r5, #0 movs r1, #0 movs r2, #0x40 bl sub_0802EA68 adds r0, r5, #0 movs r1, #0x40 movs r2, #2 bl sub_0802EB08 b _0802E0B0 .align 2, 0 _0802E078: .4byte gUnk_080CD840 _0802E07C: adds r0, r5, #0 movs r1, #0x80 movs r2, #2 bl sub_0802EB08 cmp r0, #0 bne _0802E0B0 ldrb r0, [r4, #0xb] cmp r0, #2 bne _0802E0A6 adds r1, r4, #0 adds r1, #0x7c movs r2, #0 movs r0, #0xb4 lsls r0, r0, #1 strh r0, [r1] adds r1, #4 movs r0, #1 strb r0, [r1] ldr r0, [r5, #0x50] strb r2, [r0, #0xe] _0802E0A6: ldrb r0, [r4, #0xb] adds r0, #1 strb r0, [r4, #0xb] movs r0, #1 strb r0, [r5, #0x19] _0802E0B0: adds r0, r4, #0 bl sub_0802E518 pop {r4, r5, pc} thumb_func_start sub_0802E0B8 sub_0802E0B8: @ 0x0802E0B8 push {r4, r5, r6, lr} adds r4, r0, #0 ldrh r0, [r4, #0x32] subs r0, #4 strh r0, [r4, #0x32] adds r0, r4, #0 bl sub_0800445C ldrh r0, [r4, #0x32] adds r0, #4 strh r0, [r4, #0x32] adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] movs r2, #0x3f ands r2, r0 cmp r2, #0 beq _0802E0F4 ldr r1, _0802E128 @ =gUnk_03001160 adds r0, r4, #0 bl sub_0806FC80 cmp r0, #0 beq _0802E0F4 ldr r0, _0802E12C @ =gUnk_03003F80 movs r1, #1 strb r1, [r0, #0x14] adds r0, #0x3f movs r1, #0xfa strb r1, [r0] _0802E0F4: ldr r0, _0802E130 @ =gUnk_080CD844 adds r3, r4, #0 adds r3, #0x79 ldrb r5, [r3] movs r6, #0x7f adds r1, r6, #0 ands r1, r5 adds r1, r1, r0 adds r2, r4, #0 adds r2, #0x45 ldrb r0, [r1] ldrb r1, [r2] cmp r0, r1 blo _0802E158 cmp r5, #1 bls _0802E134 movs r0, #0 strb r0, [r2] strb r0, [r4, #0xc] bl sub_08078B48 movs r0, #0x94 lsls r0, r0, #1 bl sub_080A3268 b _0802E1CA .align 2, 0 _0802E128: .4byte gUnk_03001160 _0802E12C: .4byte gUnk_03003F80 _0802E130: .4byte gUnk_080CD844 _0802E134: ldrb r1, [r4, #0x10] adds r0, r6, #0 ands r0, r1 strb r0, [r4, #0x10] ldrb r0, [r3] adds r0, #1 movs r1, #0x80 orrs r0, r1 strb r0, [r3] movs r0, #0xff strb r0, [r2] adds r1, r4, #0 adds r1, #0x7c ldrh r0, [r1] cmp r0, #0x78 bls _0802E158 movs r0, #0x78 strh r0, [r1] _0802E158: adds r0, r4, #0 adds r0, #0x7c ldrh r1, [r0] subs r1, #1 strh r1, [r0] lsls r1, r1, #0x10 ldr r2, _0802E18C @ =0xFFFF0000 adds r5, r0, #0 cmp r1, r2 bne _0802E190 ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x62 movs r0, #0 strb r0, [r1] movs r0, #4 strb r0, [r4, #0xb] adds r0, r4, #0 movs r1, #0x4e bl sub_08004260 b _0802E1C4 .align 2, 0 _0802E18C: .4byte 0xFFFF0000 _0802E190: adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0802E1B2 adds r0, r4, #0 adds r0, #0x3d ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0802E1B2 ldr r0, _0802E1CC @ =0x00000127 bl sub_080A3268 _0802E1B2: ldrh r0, [r5] cmp r0, #0x77 bhi _0802E1C4 adds r2, r4, #0 adds r2, #0x62 ldrb r0, [r2] movs r1, #1 eors r0, r1 strb r0, [r2] _0802E1C4: adds r0, r4, #0 bl sub_0802E518 _0802E1CA: pop {r4, r5, r6, pc} .align 2, 0 _0802E1CC: .4byte 0x00000127 thumb_func_start sub_0802E1D0 sub_0802E1D0: @ 0x0802E1D0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r5, r0, #0 adds r0, #0x84 ldr r0, [r0] mov r8, r0 adds r4, r5, #0 adds r4, #0x5a ldrb r1, [r4] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0802E1F6 adds r0, r5, #0 bl sub_08004274 _0802E1F6: ldrb r0, [r4] movs r2, #0x3f ands r2, r0 cmp r2, #0 beq _0802E218 ldr r1, _0802E280 @ =gUnk_03001160 adds r0, r5, #0 bl sub_0806FC80 cmp r0, #0 beq _0802E218 ldr r0, _0802E284 @ =gUnk_03003F80 movs r1, #1 strb r1, [r0, #0x14] adds r0, #0x3f movs r1, #0xfa strb r1, [r0] _0802E218: adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _0802E2F0 movs r4, #0 mov r2, r8 adds r2, #0x30 adds r7, r5, #0 adds r7, #0x7c ldr r0, _0802E288 @ =gUnk_03000F50 mov sb, r0 movs r1, #0x66 add r1, sb mov sl, r1 _0802E23A: adds r1, r2, r4 ldrb r0, [r1] cmp r0, #0 beq _0802E2EA subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r6, r0, #0x18 cmp r6, #0 bne _0802E2F0 mov r1, r8 ldr r0, [r1, #0x3c] movs r1, #0xc movs r2, #0 bl sub_080A29AC movs r0, #0x92 lsls r0, r0, #1 bl sub_080A3268 cmp r4, #5 bne _0802E2F0 adds r0, r5, #0 adds r0, #0x79 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0802E28C movs r0, #0xf0 strh r0, [r7] movs r1, #0 bl sub_08080964 b _0802E2E4 .align 2, 0 _0802E280: .4byte gUnk_03001160 _0802E284: .4byte gUnk_03003F80 _0802E288: .4byte gUnk_03000F50 _0802E28C: adds r4, r7, #0 strh r6, [r4] movs r0, #0x7c adds r0, r0, r5 mov r8, r0 adds r6, r5, #0 adds r6, #0x74 adds r7, r5, #0 adds r7, #0x75 _0802E29E: ldrh r3, [r4] adds r0, r5, #0 movs r1, #0x67 movs r2, #1 bl sub_080A2988 ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #3 bls _0802E29E movs r0, #0 strb r0, [r6] movs r0, #0x10 strb r0, [r7] movs r0, #0xb mov r1, r8 strh r0, [r1] ldrb r1, [r6] ldrb r0, [r7] lsls r0, r0, #8 orrs r1, r0 mov r0, sb adds r0, #0x68 strh r1, [r0] movs r0, #0x90 lsls r0, r0, #2 mov r1, sl strh r0, [r1] movs r0, #0x1e movs r1, #0 bl sub_08080964 _0802E2E4: movs r0, #5 strb r0, [r5, #0xb] b _0802E2F0 _0802E2EA: adds r4, #1 cmp r4, #5 bls _0802E23A _0802E2F0: adds r0, r5, #0 bl sub_0802E518 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0802E300 sub_0802E300: @ 0x0802E300 push {r4, r5, r6, lr} adds r4, r0, #0 adds r0, #0x79 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0802E31E adds r1, r4, #0 adds r1, #0x7c ldrh r0, [r1] subs r0, #1 strh r0, [r1] adds r5, r1, #0 b _0802E35E _0802E31E: adds r1, r4, #0 adds r1, #0x74 ldrb r0, [r1] adds r5, r4, #0 adds r5, #0x7c cmp r0, #0x10 beq _0802E35E ldrh r0, [r5] cmp r0, #0 beq _0802E364 subs r0, #1 strh r0, [r5] lsls r0, r0, #0x10 cmp r0, #0 bne _0802E40C movs r0, #0xb strh r0, [r5] adds r3, r4, #0 adds r3, #0x75 ldrb r0, [r3] subs r0, #1 strb r0, [r3] ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r2, _0802E3A0 @ =gUnk_03000F50 ldrb r1, [r1] ldrb r0, [r3] lsls r0, r0, #8 orrs r1, r0 adds r2, #0x68 strh r1, [r2] _0802E35E: ldrh r0, [r5] cmp r0, #0 bne _0802E40C _0802E364: adds r2, r4, #0 adds r2, #0x79 ldrb r1, [r2] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0802E3A4 adds r3, r4, #0 adds r3, #0x75 ldrb r0, [r3] cmp r0, #0x10 beq _0802E3A4 movs r0, #0xb strh r0, [r5] ldrb r0, [r3] adds r0, #1 strb r0, [r3] adds r1, r4, #0 adds r1, #0x74 ldrb r0, [r1] subs r0, #1 strb r0, [r1] ldr r2, _0802E3A0 @ =gUnk_03000F50 ldrb r1, [r1] ldrb r0, [r3] lsls r0, r0, #8 orrs r1, r0 adds r2, #0x68 strh r1, [r2] b _0802E428 .align 2, 0 _0802E3A0: .4byte gUnk_03000F50 _0802E3A4: ldrb r1, [r2] movs r0, #0x7f ands r0, r1 strb r0, [r2] adds r0, r4, #0 adds r0, #0x84 ldr r5, [r0] ldr r1, _0802E408 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 lsls r0, r0, #3 movs r2, #0 adds r6, r4, #0 adds r6, #0x80 movs r3, #0 adds r1, r5, #0 _0802E3CA: strh r3, [r1, #0x18] strb r0, [r1, #1] adds r1, #4 adds r2, #1 cmp r2, #5 bls _0802E3CA movs r1, #0 movs r0, #5 strb r0, [r4, #0xd] strb r1, [r4, #0xb] strb r1, [r6] adds r0, r4, #0 movs r1, #0x4d bl sub_08004260 movs r0, #0x24 movs r1, #5 bl sub_0804AA60 str r0, [r4, #0x54] cmp r0, #0 beq _0802E400 str r4, [r0, #0x50] ldr r0, [r4, #0x54] str r0, [r5, #0x38] adds r0, #0x84 str r5, [r0] _0802E400: ldr r1, [r5, #0x50] movs r0, #0x18 strb r0, [r1, #0xe] b _0802E422 .align 2, 0 _0802E408: .4byte gUnk_03001160 _0802E40C: ldr r0, _0802E42C @ =gUnk_030010A0 ldr r0, [r0] movs r1, #0xf ands r0, r1 cmp r0, #0 bne _0802E422 adds r0, r4, #0 movs r1, #0xa movs r2, #3 bl sub_0804A98C _0802E422: adds r0, r4, #0 bl sub_0802E518 _0802E428: pop {r4, r5, r6, pc} .align 2, 0 _0802E42C: .4byte gUnk_030010A0 thumb_func_start sub_0802E430 sub_0802E430: @ 0x0802E430 push {lr} ldr r2, _0802E444 @ =gUnk_080CD848 ldrb r1, [r0, #0xb] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802E444: .4byte gUnk_080CD848 thumb_func_start sub_0802E448 sub_0802E448: @ 0x0802E448 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r0, #0x84 ldr r6, [r0] movs r5, #5 _0802E452: adds r0, r6, #0 adds r0, #0x30 adds r4, r0, r5 ldrb r0, [r4] cmp r0, #0 bne _0802E46E ldr r0, [r6, #0x3c] movs r1, #0xc movs r2, #0 bl sub_080A29AC movs r0, #0x7d bl sub_080A3268 _0802E46E: ldrb r0, [r4] cmp r0, #0xa beq _0802E48A adds r0, #1 strb r0, [r4] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xa bne _0802E490 cmp r5, #0 bne _0802E490 movs r0, #1 strb r0, [r7, #0xb] b _0802E490 _0802E48A: subs r5, #1 cmp r5, #0 bge _0802E452 _0802E490: adds r0, r6, #0 adds r0, #0x2d ldrb r0, [r0] cmp r0, #9 bhi _0802E4A6 adds r0, r6, #0 movs r1, #5 movs r2, #0x40 movs r3, #3 bl sub_0802EA68 _0802E4A6: adds r0, r7, #0 bl sub_08004274 adds r0, r7, #0 adds r0, #0x84 ldr r0, [r0] bl sub_0802E768 adds r0, r7, #0 bl sub_0802E518 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0802E4C0 sub_0802E4C0: @ 0x0802E4C0 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0802E510 ldrb r0, [r4, #0xc] cmp r0, #2 beq _0802E50A adds r0, r4, #0 adds r0, #0x74 movs r2, #0 strb r2, [r0] adds r1, r4, #0 adds r1, #0x75 movs r0, #8 strb r0, [r1] adds r0, r4, #0 adds r0, #0x79 ldrb r0, [r0] cmp r0, #0 beq _0802E502 adds r0, r4, #0 adds r0, #0x76 strb r2, [r0] adds r1, #2 movs r0, #3 strb r0, [r1] _0802E502: adds r0, r4, #0 bl sub_0802EBC4 b _0802E510 _0802E50A: ldrb r0, [r4, #0xb] adds r0, #1 strb r0, [r4, #0xb] _0802E510: adds r0, r4, #0 bl sub_0802E518 pop {r4, pc} thumb_func_start sub_0802E518 sub_0802E518: @ 0x0802E518 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0xc str r0, [sp] adds r0, #0x84 ldr r0, [r0] mov sb, r0 ldr r1, [r0, #0x3c] ldr r0, [r1, #0x50] bl sub_0806FA24 mov r0, sb ldr r1, [r0, #0x3c] ldrb r0, [r0, #1] strb r0, [r1, #0x15] mov r1, sb ldrb r6, [r1, #1] cmp r6, #0x10 bls _0802E54C movs r0, #0xf eors r6, r0 adds r6, #1 ands r6, r0 _0802E54C: cmp r6, #0x10 bne _0802E552 movs r6, #0xf _0802E552: mov r2, sb ldr r1, [r2, #0x3c] movs r0, #0xf eors r6, r0 adds r0, r6, #0 adds r0, #0x12 lsls r0, r0, #8 strh r0, [r1, #0x24] ldr r0, [r2, #0x3c] bl sub_0806F69C movs r6, #0 movs r0, #0x3c add r0, sb mov sl, r0 mov r1, sb adds r1, #0x30 str r1, [sp, #4] ldr r2, [sp] adds r2, #0x80 str r2, [sp, #8] movs r7, #0x80 lsls r7, r7, #1 _0802E580: lsls r0, r6, #2 add r0, sl ldr r0, [r0] adds r1, r6, #1 mov r8, r1 lsls r4, r1, #2 mov r2, sl adds r5, r2, r4 ldr r1, [r5] bl sub_0806FA24 add r4, sb ldrb r0, [r4, #0x19] lsls r0, r0, #4 ldr r1, _0802E644 @ =gUnk_080C9160 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] ldr r1, [sp, #4] adds r6, r1, r6 ldrb r1, [r6] lsls r1, r1, #0x18 asrs r1, r1, #0x10 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r7, #0 bl sub_0806FA04 adds r1, r0, #0 ldrb r0, [r4, #1] lsls r0, r0, #4 ldr r2, _0802E644 @ =gUnk_080C9160 adds r0, r0, r2 movs r2, #0 ldrsh r0, [r0, r2] lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r7, #0 bl sub_0806FA04 ldr r2, [r5] lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r2, #0x2c] adds r1, r1, r0 str r1, [r2, #0x2c] ldrb r0, [r4, #0x19] lsls r0, r0, #4 adds r0, #0x80 ldr r1, _0802E644 @ =gUnk_080C9160 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] ldrb r1, [r6] lsls r1, r1, #0x18 asrs r1, r1, #0x10 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r7, #0 bl sub_0806FA04 ldr r2, [r5] lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r2, #0x30] subs r1, r1, r0 str r1, [r2, #0x30] mov r6, r8 cmp r6, #4 bls _0802E580 mov r1, sb ldr r0, [r1, #0x50] ldrb r1, [r0, #0xe] adds r2, r0, #0 cmp r1, #0x18 bne _0802E662 mov r1, sb ldrb r0, [r1, #0x15] lsrs r0, r0, #3 lsls r7, r0, #2 mov r0, sb adds r0, #0x2d ldrb r0, [r0] lsls r1, r0, #0x18 lsrs r0, r1, #0x18 cmp r0, #0xc bls _0802E648 adds r7, #3 b _0802E64C .align 2, 0 _0802E644: .4byte gUnk_080C9160 _0802E648: lsrs r0, r1, #0x1a adds r7, r7, r0 _0802E64C: adds r0, r2, #0 adds r0, #0x58 ldrb r0, [r0] adds r1, r7, #0 adds r1, #0x18 cmp r0, r1 beq _0802E6E8 adds r0, r2, #0 bl sub_080042AC b _0802E6E8 _0802E662: ldr r2, [sp, #8] ldrb r0, [r2] cmp r0, #0 bne _0802E688 mov r0, sb movs r1, #5 movs r2, #0 movs r3, #0 bl sub_0802E7CC mov r0, sb ldr r2, [r0, #0x50] ldrb r1, [r2, #0x14] lsrs r0, r1, #1 adds r7, r1, r0 lsrs r0, r7, #2 ldrb r2, [r2, #0xe] adds r7, r0, r2 b _0802E6CA _0802E688: ldr r0, [sp] adds r0, #0x3d ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0802E6C0 ldr r0, [sp] adds r0, #0x58 ldrb r3, [r0] mov r1, sb ldrb r0, [r1, #0x15] lsrs r2, r0, #3 adds r0, r2, #0 adds r0, #0x2f cmp r3, r0 bne _0802E6BA ldr r0, [sp] adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 adds r7, r3, #0 cmp r0, #0 beq _0802E6CA _0802E6BA: adds r7, r2, #0 adds r7, #0x28 b _0802E6CA _0802E6C0: mov r2, sb ldrb r0, [r2, #0x15] lsrs r0, r0, #3 adds r7, r0, #0 adds r7, #0x2f _0802E6CA: mov r0, sb ldr r1, [r0, #0x50] adds r0, r1, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, r7 beq _0802E6E2 adds r0, r1, #0 adds r1, r7, #0 bl sub_080042AC b _0802E6E8 _0802E6E2: adds r0, r1, #0 bl sub_080042B8 _0802E6E8: movs r6, #0 _0802E6EA: ldr r1, [sp, #8] ldrb r0, [r1] cmp r0, #0 bne _0802E72E lsls r1, r6, #0x18 lsrs r1, r1, #0x18 mov r0, sb movs r2, #0 movs r3, #0 bl sub_0802E7CC lsls r5, r6, #2 mov r2, sl adds r0, r2, r5 ldr r0, [r0] ldrb r1, [r0, #0x14] lsrs r0, r1, #1 adds r7, r1, r0 lsrs r7, r7, #2 adds r4, r6, #1 lsls r0, r4, #2 add r0, sb ldrb r0, [r0, #0x19] movs r1, #3 bl __divsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #2 adds r7, r7, r1 adds r1, r5, #0 b _0802E73E _0802E72E: lsls r1, r6, #2 mov r2, sb adds r0, r2, r1 ldrb r0, [r0, #1] lsrs r0, r0, #3 adds r7, r0, #0 adds r7, #0x48 adds r4, r6, #1 _0802E73E: mov r2, sl adds r0, r2, r1 ldr r1, [r0] adds r0, r1, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, r7 beq _0802E756 adds r0, r1, #0 adds r1, r7, #0 bl sub_08004260 _0802E756: adds r6, r4, #0 cmp r6, #4 bls _0802E6EA add sp, #0xc pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0802E768 sub_0802E768: @ 0x0802E768 push {r4, r5, r6, lr} adds r4, r0, #0 movs r2, #0 movs r6, #0x1f _0802E770: lsls r3, r2, #2 adds r0, r4, r3 ldrb r1, [r0, #1] adds r2, #1 lsls r0, r2, #2 adds r0, r4, r0 ldrb r0, [r0, #1] subs r0, r1, r0 ands r0, r6 adds r5, r2, #0 cmp r0, #0x10 ble _0802E790 cmp r0, #0x1e bgt _0802E798 adds r1, #1 b _0802E796 _0802E790: cmp r0, #1 ble _0802E798 subs r1, #1 _0802E796: ands r1, r6 _0802E798: adds r0, r4, r3 strb r1, [r0, #1] ldrb r1, [r0, #0x19] lsls r0, r5, #2 adds r0, r4, r0 ldrb r0, [r0, #0x19] subs r0, r1, r0 movs r2, #0x1f ands r0, r2 cmp r0, #0x10 ble _0802E7B6 cmp r0, #0x1d bgt _0802E7BE adds r1, #1 b _0802E7BC _0802E7B6: cmp r0, #2 ble _0802E7BE subs r1, #1 _0802E7BC: ands r1, r2 _0802E7BE: adds r0, r4, r3 strb r1, [r0, #0x19] adds r2, r5, #0 cmp r2, #4 bls _0802E770 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0802E7CC sub_0802E7CC: @ 0x0802E7CC lsls r1, r1, #0x18 lsrs r1, r1, #0x16 adds r2, r0, #0 adds r2, #0x3c adds r2, r2, r1 ldr r3, [r2] adds r0, r0, r1 ldrb r0, [r0, #1] strb r0, [r3, #0x14] ldr r0, [r2] ldrb r0, [r0, #0x14] bx lr thumb_func_start sub_0802E7E4 sub_0802E7E4: @ 0x0802E7E4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} mov ip, r0 ldr r0, [r0, #0x50] adds r0, #0x5a ldrb r1, [r0] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _0802E8D0 movs r6, #0 movs r5, #0 mov r7, ip adds r7, #0x3c movs r0, #0x30 add r0, ip mov r8, r0 movs r1, #8 rsbs r1, r1, #0 mov sl, r1 movs r2, #4 rsbs r2, r2, #0 mov sb, r2 _0802E818: lsls r0, r5, #2 adds r4, r7, r0 ldr r3, [r4] adds r3, #0x29 movs r1, #7 ands r1, r6 ldrb r2, [r3] mov r0, sl ands r0, r2 orrs r0, r1 strb r0, [r3] adds r6, #1 mov r1, r8 adds r0, r1, r5 ldrb r0, [r0] cmp r0, #0 bne _0802E852 ldr r3, [r4] ldrb r2, [r3, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #2 rsbs r0, r0, #0 ands r1, r0 mov r0, sb ands r0, r2 orrs r0, r1 strb r0, [r3, #0x18] b _0802E860 _0802E852: ldr r2, [r4] ldrb r1, [r2, #0x18] mov r0, sb ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] _0802E860: adds r5, #1 cmp r5, #5 bls _0802E818 movs r5, #0 movs r2, #7 mov sb, r2 movs r0, #8 rsbs r0, r0, #0 mov r8, r0 _0802E872: lsls r1, r5, #2 mov r2, ip adds r0, r2, r1 ldrb r0, [r0, #1] subs r0, #8 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 adds r5, #1 cmp r0, #0x10 bhi _0802E8BA adds r0, r7, r1 ldr r3, [r0] adds r3, #0x29 ldrb r4, [r3] lsls r0, r4, #0x1d lsrs r6, r0, #0x1d lsls r2, r5, #2 adds r2, r7, r2 ldr r0, [r2] adds r0, #0x29 ldrb r1, [r0] lsls r1, r1, #0x1d lsrs r1, r1, #0x1d mov r0, r8 ands r0, r4 orrs r0, r1 strb r0, [r3] ldr r1, [r2] adds r1, #0x29 mov r0, sb ands r6, r0 ldrb r2, [r1] mov r0, r8 ands r0, r2 orrs r0, r6 strb r0, [r1] _0802E8BA: cmp r5, #4 bls _0802E872 mov r1, ip ldr r0, [r1, #0x38] adds r0, #0x29 ldrb r2, [r0] movs r1, #8 rsbs r1, r1, #0 ands r1, r2 strb r1, [r0] b _0802E9A4 _0802E8D0: movs r6, #5 movs r5, #0 mov r7, ip adds r7, #0x3c movs r2, #0x30 add r2, ip mov r8, r2 movs r0, #8 rsbs r0, r0, #0 mov sl, r0 movs r1, #4 rsbs r1, r1, #0 mov sb, r1 _0802E8EA: lsls r0, r5, #2 adds r4, r7, r0 ldr r3, [r4] adds r3, #0x29 movs r1, #7 ands r1, r6 ldrb r2, [r3] mov r0, sl ands r0, r2 orrs r0, r1 strb r0, [r3] subs r6, #1 mov r2, r8 adds r0, r2, r5 ldrb r0, [r0] cmp r0, #0 bne _0802E924 ldr r3, [r4] ldrb r2, [r3, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #2 rsbs r0, r0, #0 ands r1, r0 mov r0, sb ands r0, r2 orrs r0, r1 strb r0, [r3, #0x18] b _0802E932 _0802E924: ldr r2, [r4] ldrb r1, [r2, #0x18] mov r0, sb ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] _0802E932: adds r5, #1 cmp r5, #5 bls _0802E8EA movs r5, #0 movs r0, #7 mov sb, r0 movs r1, #8 rsbs r1, r1, #0 mov r8, r1 _0802E944: lsls r1, r5, #2 mov r2, ip adds r0, r2, r1 ldrb r0, [r0, #1] subs r0, #8 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 adds r5, #1 cmp r0, #0x10 bls _0802E98C adds r0, r7, r1 ldr r3, [r0] adds r3, #0x29 ldrb r4, [r3] lsls r0, r4, #0x1d lsrs r6, r0, #0x1d lsls r2, r5, #2 adds r2, r7, r2 ldr r0, [r2] adds r0, #0x29 ldrb r1, [r0] lsls r1, r1, #0x1d lsrs r1, r1, #0x1d mov r0, r8 ands r0, r4 orrs r0, r1 strb r0, [r3] ldr r1, [r2] adds r1, #0x29 mov r0, sb ands r6, r0 ldrb r2, [r1] mov r0, r8 ands r0, r2 orrs r0, r6 strb r0, [r1] _0802E98C: cmp r5, #4 bls _0802E944 mov r1, ip ldr r2, [r1, #0x38] adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] _0802E9A4: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0802E9B0 sub_0802E9B0: @ 0x0802E9B0 push {r4, lr} adds r4, r0, #0 ldr r0, _0802E9D0 @ =gUnk_03001160 movs r2, #0x2e ldrsh r1, [r0, r2] movs r3, #0x32 ldrsh r2, [r0, r3] adds r0, r4, #0 bl sub_080041DC lsrs r2, r0, #4 cmp r2, #0x5f bgt _0802E9D4 movs r2, #0xa b _0802E9EA .align 2, 0 _0802E9D0: .4byte gUnk_03001160 _0802E9D4: adds r1, r2, #0 subs r1, #0x60 cmp r1, #0 bge _0802E9DE adds r1, #3 _0802E9DE: asrs r1, r1, #2 movs r0, #0xa subs r2, r0, r1 cmp r2, #3 bgt _0802E9EA movs r2, #4 _0802E9EA: adds r0, r4, #0 adds r0, #0x84 ldr r3, [r0] adds r0, r3, #0 adds r0, #0x2d ldrb r0, [r0] cmp r2, r0 beq _0802EA10 cmp r2, r0 ble _0802EA04 ldrh r0, [r3, #0x2c] adds r0, #0x20 b _0802EA08 _0802EA04: ldrh r0, [r3, #0x2c] subs r0, #0x20 _0802EA08: ldr r2, _0802EA14 @ =0x00001FFF adds r1, r2, #0 ands r0, r1 strh r0, [r3, #0x2c] _0802EA10: pop {r4, pc} .align 2, 0 _0802EA14: .4byte 0x00001FFF thumb_func_start sub_0802EA18 sub_0802EA18: @ 0x0802EA18 push {lr} adds r3, r2, #0 movs r2, #0x80 lsls r2, r2, #5 adds r1, r1, r2 subs r1, r1, r0 ldr r0, _0802EA40 @ =0x00001FFF ands r1, r0 lsls r3, r3, #8 subs r2, r2, r3 cmp r1, r2 blo _0802EA44 movs r2, #0x80 lsls r2, r2, #5 adds r0, r3, r2 cmp r1, r0 bhi _0802EA44 movs r0, #0 b _0802EA46 .align 2, 0 _0802EA40: .4byte 0x00001FFF _0802EA44: movs r0, #1 _0802EA46: pop {pc} thumb_func_start sub_0802EA48 sub_0802EA48: @ 0x0802EA48 push {r4, lr} adds r4, r0, #0 cmp r3, #1 bne _0802EA52 rsbs r2, r2, #0 _0802EA52: lsls r0, r1, #2 adds r0, r4, r0 ldrh r1, [r0] adds r1, r1, r2 ldr r3, _0802EA64 @ =0x00001FFF adds r2, r3, #0 ands r1, r2 strh r1, [r0] pop {r4, pc} .align 2, 0 _0802EA64: .4byte 0x00001FFF thumb_func_start sub_0802EA68 sub_0802EA68: @ 0x0802EA68 push {r4, lr} adds r4, r0, #0 cmp r3, #2 bne _0802EA72 rsbs r2, r2, #0 _0802EA72: lsls r0, r1, #2 adds r0, r4, r0 ldrh r1, [r0, #0x18] adds r1, r1, r2 ldr r3, _0802EA84 @ =0x00001FFF adds r2, r3, #0 ands r1, r2 strh r1, [r0, #0x18] pop {r4, pc} .align 2, 0 _0802EA84: .4byte 0x00001FFF thumb_func_start sub_0802EA88 sub_0802EA88: @ 0x0802EA88 push {r4, r5, r6, lr} adds r5, r0, #0 movs r6, #0 movs r3, #0 _0802EA90: lsls r0, r3, #2 adds r4, r5, r0 adds r2, r3, #1 lsls r0, r2, #2 adds r1, r5, r0 ldrb r0, [r4, #1] ldrb r3, [r1, #1] cmp r0, r3 beq _0802EAC2 movs r6, #1 ldrb r0, [r1, #1] ldrb r1, [r4, #1] subs r0, r0, r1 movs r1, #0x1f ands r0, r1 movs r3, #1 cmp r0, #0x10 ble _0802EAB6 movs r3, #0 _0802EAB6: adds r0, r5, #0 adds r1, r2, #0 movs r2, #0x20 bl sub_0802EA48 b _0802EAC8 _0802EAC2: adds r3, r2, #0 cmp r3, #4 bls _0802EA90 _0802EAC8: movs r3, #0 movs r4, #0x1f _0802EACC: adds r2, r3, #1 lsls r0, r2, #2 adds r0, r5, r0 ldrb r1, [r0, #1] lsls r0, r3, #2 adds r0, r5, r0 ldrb r0, [r0, #1] subs r0, r1, r0 ands r0, r4 adds r3, r1, #0 adds r1, r2, #0 cmp r0, #0x10 ble _0802EAEE cmp r0, #0x1e bgt _0802EAF6 adds r3, #1 b _0802EAF4 _0802EAEE: cmp r0, #1 ble _0802EAF6 subs r3, #1 _0802EAF4: ands r3, r4 _0802EAF6: lsls r0, r1, #2 adds r0, r5, r0 strb r3, [r0, #1] adds r3, r1, #0 cmp r3, #4 bls _0802EACC adds r0, r6, #0 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0802EB08 sub_0802EB08: @ 0x0802EB08 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 adds r6, r1, #0 adds r7, r2, #0 movs r0, #0 mov r8, r0 movs r3, #0 _0802EB1A: lsls r0, r3, #2 adds r4, r5, r0 adds r2, r3, #1 lsls r0, r2, #2 adds r1, r5, r0 ldrb r0, [r4, #0x19] ldrb r3, [r1, #0x19] cmp r0, r3 beq _0802EB4E movs r0, #1 mov r8, r0 ldrb r0, [r1, #0x19] ldrb r1, [r4, #0x19] subs r0, r0, r1 movs r1, #0x1f ands r0, r1 movs r3, #2 cmp r0, #0x10 ble _0802EB42 movs r3, #3 _0802EB42: adds r0, r5, #0 adds r1, r2, #0 adds r2, r6, #0 bl sub_0802EA68 b _0802EB54 _0802EB4E: adds r3, r2, #0 cmp r3, #4 bls _0802EB1A _0802EB54: movs r3, #0 movs r4, #0x1f rsbs r6, r7, #0 ands r6, r4 _0802EB5C: adds r2, r3, #1 lsls r0, r2, #2 adds r0, r5, r0 ldrb r1, [r0, #0x19] lsls r0, r3, #2 adds r0, r5, r0 ldrb r0, [r0, #0x19] subs r0, r1, r0 ands r0, r4 adds r3, r1, #0 adds r1, r2, #0 cmp r0, #0x10 ble _0802EB7E cmp r6, r0 ble _0802EB86 adds r3, #1 b _0802EB84 _0802EB7E: cmp r7, r0 bge _0802EB86 subs r3, #1 _0802EB84: ands r3, r4 _0802EB86: lsls r0, r1, #2 adds r0, r5, r0 strb r3, [r0, #0x19] adds r3, r1, #0 cmp r3, #4 bls _0802EB5C mov r0, r8 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0802EB9C sub_0802EB9C: @ 0x0802EB9C push {r4, lr} adds r4, r0, #0 ldr r0, _0802EBBC @ =gUnk_080CD850 bl sub_080028F4 ldr r1, _0802EBC0 @ =gUnk_080CD854 adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x74 strb r1, [r0] adds r4, #0x75 ldrb r0, [r4] adds r0, #1 strb r0, [r4] pop {r4, pc} .align 2, 0 _0802EBBC: .4byte gUnk_080CD850 _0802EBC0: .4byte gUnk_080CD854 thumb_func_start sub_0802EBC4 sub_0802EBC4: @ 0x0802EBC4 push {r4, r5, r6, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x74 ldrb r0, [r1] adds r6, r0, #0 cmp r6, #0 bne _0802EC66 ldr r1, _0802EC18 @ =gUnk_080CD86C adds r5, r4, #0 adds r5, #0x79 ldrb r0, [r5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl sub_080028F4 ldr r2, _0802EC1C @ =gUnk_080CD878 ldrb r1, [r5] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] adds r1, r1, r0 adds r2, r4, #0 adds r2, #0x75 ldrb r0, [r1] ldrb r1, [r2] cmp r0, r1 bhs _0802EC60 strb r6, [r2] ldrb r1, [r5] cmp r1, #0 bne _0802EC20 adds r0, r4, #0 adds r0, #0x76 strb r1, [r0] adds r1, r4, #0 adds r1, #0x77 movs r0, #3 strb r0, [r1] b _0802EC56 .align 2, 0 _0802EC18: .4byte gUnk_080CD86C _0802EC1C: .4byte gUnk_080CD878 _0802EC20: bl sub_08000E50 adds r1, r0, #0 movs r5, #1 ands r1, r5 adds r3, r4, #0 adds r3, #0x76 ldrb r0, [r3] cmp r1, r0 beq _0802EC3E strb r1, [r3] adds r0, r4, #0 adds r0, #0x77 strb r5, [r0] b _0802EC56 _0802EC3E: adds r2, r4, #0 adds r2, #0x77 ldrb r0, [r2] adds r0, #1 strb r0, [r2] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #2 bls _0802EC54 eors r1, r5 strb r5, [r2] _0802EC54: strb r1, [r3] _0802EC56: movs r1, #0 movs r0, #3 strb r0, [r4, #0xd] strb r1, [r4, #0xb] b _0802EC6A _0802EC60: movs r0, #2 strb r0, [r4, #0xd] b _0802EC6A _0802EC66: subs r0, #1 strb r0, [r1] _0802EC6A: pop {r4, r5, r6, pc} thumb_func_start sub_0802EC6C sub_0802EC6C: @ 0x0802EC6C push {r4, r5, lr} adds r4, r0, #0 ldr r5, _0802EC94 @ =gUnk_080CDE34 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r5 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, r5, pc} .align 2, 0 _0802EC94: .4byte gUnk_080CDE34 thumb_func_start sub_0802EC98 sub_0802EC98: @ 0x0802EC98 push {r4, lr} adds r4, r0, #0 ldr r1, _0802ECBC @ =gUnk_080CDE4C ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldrb r0, [r4, #0xa] cmp r0, #1 bhi _0802ECB8 adds r0, r4, #0 bl sub_0802EF90 _0802ECB8: pop {r4, pc} .align 2, 0 _0802ECBC: .4byte gUnk_080CDE4C thumb_func_start sub_0802ECC0 sub_0802ECC0: @ 0x0802ECC0 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 bne _0802ED2A adds r0, r4, #0 adds r0, #0x45 ldrb r1, [r0] adds r5, r0, #0 ldr r3, _0802ED00 @ =gUnk_030010A0 cmp r1, #0 bne _0802ECEE adds r2, r3, #0 adds r2, #0x39 adds r0, r3, #0 adds r0, #0x3c ldrb r0, [r0] adds r0, #2 movs r1, #1 lsls r1, r0 ldrb r0, [r2] bics r0, r1 strb r0, [r2] _0802ECEE: ldr r0, _0802ED04 @ =gUnk_03000BF0 ldrb r0, [r0, #5] cmp r0, #0 bne _0802ED08 ldrb r1, [r5] adds r0, r3, #0 adds r0, #0x3a b _0802ED0E .align 2, 0 _0802ED00: .4byte gUnk_030010A0 _0802ED04: .4byte gUnk_03000BF0 _0802ED08: ldrb r1, [r5] adds r0, r3, #0 adds r0, #0x3b _0802ED0E: strb r1, [r0] adds r6, r4, #0 adds r6, #0x79 ldrb r0, [r6] ldrb r1, [r5] cmp r0, r1 beq _0802ED24 movs r0, #0xbd lsls r0, r0, #1 bl sub_08004488 _0802ED24: ldrb r0, [r5] strb r0, [r6] b _0802ED52 _0802ED2A: cmp r0, #1 bne _0802ED52 adds r1, r4, #0 adds r1, #0x3d movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _0802ED3E rsbs r0, r0, #0 strb r0, [r1] _0802ED3E: adds r5, r4, #0 adds r5, #0x45 ldrb r0, [r5] cmp r0, #0xff beq _0802ED4E movs r0, #0xe5 bl sub_08004488 _0802ED4E: movs r0, #0xff strb r0, [r5] _0802ED52: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _0802ED64 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _0802ED64: ldr r1, _0802ED70 @ =gUnk_080CDE34 adds r0, r4, #0 bl sub_0804AA30 pop {r4, r5, r6, pc} .align 2, 0 _0802ED70: .4byte gUnk_080CDE34 thumb_func_start sub_0802ED74 sub_0802ED74: @ 0x0802ED74 push {lr} ldr r2, _0802ED88 @ =gUnk_080CDE5C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802ED88: .4byte gUnk_080CDE5C thumb_func_start sub_0802ED8C sub_0802ED8C: @ 0x0802ED8C push {r4, lr} adds r4, r0, #0 ldr r0, _0802EDD0 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x46 bhi _0802EE0A bl sub_0805E8D4 adds r1, r0, #0 cmp r1, #0 beq _0802EE0A movs r0, #9 strb r0, [r1, #8] movs r0, #0x34 strb r0, [r1, #9] str r4, [r1, #0x14] adds r0, r1, #0 movs r1, #8 bl sub_0805EA2C movs r0, #0x25 movs r1, #2 bl sub_0804AA60 str r4, [r0, #0x50] movs r0, #1 strb r0, [r4, #0xc] ldr r0, _0802EDD4 @ =gUnk_03000BF0 ldrb r0, [r0, #5] cmp r0, #0 bne _0802EDDC ldr r0, _0802EDD8 @ =gUnk_030010A0 adds r0, #0x3a b _0802EDE0 .align 2, 0 _0802EDD0: .4byte gUnk_03003DBC _0802EDD4: .4byte gUnk_03000BF0 _0802EDD8: .4byte gUnk_030010A0 _0802EDDC: ldr r0, _0802EE0C @ =gUnk_030010A0 adds r0, #0x3b _0802EDE0: ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x45 strb r0, [r1] adds r1, #0x34 strb r0, [r1] bl sub_08000E50 adds r1, r4, #0 adds r1, #0x78 strb r0, [r1] adds r0, r4, #0 bl sub_0802EFB8 adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_0802EF58 _0802EE0A: pop {r4, pc} .align 2, 0 _0802EE0C: .4byte gUnk_030010A0 thumb_func_start sub_0802EE10 sub_0802EE10: @ 0x0802EE10 push {r4, lr} adds r4, r0, #0 bl sub_0802F04C adds r0, r4, #0 bl sub_08004274 pop {r4, pc} thumb_func_start sub_0802EE20 sub_0802EE20: @ 0x0802EE20 push {lr} ldr r2, _0802EE34 @ =gUnk_080CDE64 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802EE34: .4byte gUnk_080CDE64 thumb_func_start sub_0802EE38 sub_0802EE38: @ 0x0802EE38 push {r4, r5, lr} adds r5, r0, #0 ldr r0, _0802EE84 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x46 bhi _0802EE82 movs r0, #0x25 movs r1, #3 bl sub_0804AA60 str r5, [r0, #0x50] movs r0, #1 strb r0, [r5, #0xc] bl sub_08000E50 adds r4, r0, #0 movs r1, #3 ands r0, r1 adds r0, #1 strb r0, [r5, #0xe] bl sub_08000E50 lsrs r0, r0, #8 adds r1, r5, #0 adds r1, #0x78 strb r0, [r1] ldr r1, _0802EE88 @ =gUnk_080CDE6C lsrs r4, r4, #0x10 movs r0, #3 ands r4, r0 adds r4, r4, r1 ldrb r0, [r4] strb r0, [r5, #0x15] adds r0, r5, #0 movs r1, #1 bl sub_08004260 _0802EE82: pop {r4, r5, pc} .align 2, 0 _0802EE84: .4byte gUnk_03003DBC _0802EE88: .4byte gUnk_080CDE6C thumb_func_start sub_0802EE8C sub_0802EE8C: @ 0x0802EE8C push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldr r2, [r0, #4] cmp r2, #0 bne _0802EEA8 ldrb r0, [r4, #0x10] movs r1, #0x7f ands r1, r0 strb r1, [r4, #0x10] adds r0, r4, #0 adds r0, #0x45 strb r2, [r0] b _0802EEB4 _0802EEA8: adds r0, r4, #0 bl sub_0802F04C adds r0, r4, #0 bl sub_08004274 _0802EEB4: pop {r4, pc} .align 2, 0 thumb_func_start sub_0802EEB8 sub_0802EEB8: @ 0x0802EEB8 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldr r0, [r0, #4] cmp r0, #0 bne _0802EEC8 bl sub_0805E780 _0802EEC8: ldrb r0, [r4, #0xc] cmp r0, #0 bne _0802EED6 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0xff strb r0, [r4, #0x14] _0802EED6: ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA6C ldr r1, _0802EF14 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 adds r0, #1 movs r1, #0x1e ands r0, r1 ldr r1, _0802EF18 @ =gUnk_080CDE70 adds r0, r0, r1 ldrb r2, [r0] ldrb r1, [r4, #0x1e] cmp r2, r1 beq _0802EF00 ldrb r0, [r0, #1] cmp r0, r1 beq _0802EF00 strb r2, [r4, #0x1e] _0802EF00: ldrh r0, [r4, #0x32] adds r0, #1 strh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x63 ldrb r0, [r1] subs r0, #1 strb r0, [r1] pop {r4, pc} .align 2, 0 _0802EF14: .4byte gUnk_03001160 _0802EF18: .4byte gUnk_080CDE70 thumb_func_start sub_0802EF1C sub_0802EF1C: @ 0x0802EF1C push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldr r0, [r0, #4] cmp r0, #0 bne _0802EF2C bl sub_0805E780 _0802EF2C: ldrb r0, [r4, #0xc] cmp r0, #0 bne _0802EF4A movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x11 strb r0, [r4, #0x1e] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #0x19 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] _0802EF4A: ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA6C movs r0, #0 strh r0, [r4, #0x36] pop {r4, pc} thumb_func_start sub_0802EF58 sub_0802EF58: @ 0x0802EF58 push {r4, r5, r6, lr} adds r6, r0, #0 movs r5, #0 _0802EF5E: movs r0, #0x25 movs r1, #1 bl sub_0804AA60 adds r4, r0, #0 cmp r4, #0 beq _0802EF86 strb r5, [r4, #0xb] adds r1, r4, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] str r6, [r4, #0x50] adds r0, r4, #0 bl sub_08016A04 adds r0, r6, #0 adds r1, r4, #0 bl sub_0806FA24 _0802EF86: adds r5, #1 cmp r5, #6 bls _0802EF5E pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0802EF90 sub_0802EF90: @ 0x0802EF90 push {r4, lr} ldr r4, _0802EFB4 @ =gUnk_080CDE90 adds r3, r0, #0 adds r3, #0x78 ldrb r1, [r3] adds r2, r1, #1 strb r2, [r3] lsls r1, r1, #0x18 lsrs r1, r1, #0x1b movs r2, #7 ands r1, r2 adds r1, r1, r4 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 strh r1, [r0, #0x36] pop {r4, pc} .align 2, 0 _0802EFB4: .4byte gUnk_080CDE90 thumb_func_start sub_0802EFB8 sub_0802EFB8: @ 0x0802EFB8 push {r4, r5, r6, r7, lr} adds r4, r0, #0 bl sub_08000E50 adds r6, r0, #0 lsrs r0, r6, #0x10 movs r1, #3 ands r0, r1 cmp r0, #0 beq _0802EFD2 movs r5, #0x18 ands r5, r6 b _0802EFE0 _0802EFD2: ldr r0, _0802F01C @ =gUnk_03001160 adds r1, r4, #0 bl sub_080045C4 adds r5, r0, #4 movs r0, #0x18 ands r5, r0 _0802EFE0: movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _0802F020 @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r3, #0x3f ands r0, r3 movs r7, #0x32 ldrsh r1, [r4, r7] ldrh r2, [r2, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r3 lsls r1, r1, #6 orrs r0, r1 ldr r2, _0802F024 @ =gUnk_080B4488 lsrs r1, r5, #2 adds r1, r1, r2 movs r2, #0 ldrsh r1, [r1, r2] adds r0, r0, r1 movs r1, #1 bl sub_080002E0 cmp r0, #0 beq _0802F028 movs r0, #0xff strb r0, [r4, #0x15] b _0802F044 .align 2, 0 _0802F01C: .4byte gUnk_03001160 _0802F020: .4byte gUnk_03000BF0 _0802F024: .4byte gUnk_080B4488 _0802F028: movs r1, #3 adds r0, r6, #0 ands r0, r1 adds r0, #1 strb r0, [r4, #0xe] strb r5, [r4, #0x15] ldr r2, _0802F048 @ =gUnk_080CDE98 lsrs r0, r6, #0x18 movs r1, #3 ands r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] strh r0, [r4, #0x24] _0802F044: pop {r4, r5, r6, r7, pc} .align 2, 0 _0802F048: .4byte gUnk_080CDE98 thumb_func_start sub_0802F04C sub_0802F04C: @ 0x0802F04C push {r4, r5, r6, lr} adds r4, r0, #0 movs r0, #0x2e ldrsh r5, [r4, r0] movs r1, #0x32 ldrsh r6, [r4, r1] adds r0, r4, #0 bl sub_080AEF88 cmp r0, #0 bne _0802F06A adds r0, r4, #0 bl sub_0802EFB8 b _0802F112 _0802F06A: ldrb r0, [r4, #0x15] lsrs r0, r0, #3 cmp r0, #1 beq _0802F098 cmp r0, #1 bgt _0802F07C cmp r0, #0 beq _0802F082 b _0802F0DC _0802F07C: cmp r0, #2 beq _0802F0AE b _0802F0DC _0802F082: movs r2, #0xf adds r0, r6, #0 ands r0, r2 cmp r0, #8 ble _0802F102 ldrh r1, [r4, #0x32] adds r0, r2, #0 ands r0, r1 cmp r0, #8 bgt _0802F102 b _0802F0C2 _0802F098: movs r2, #0xf adds r0, r5, #0 ands r0, r2 cmp r0, #7 bgt _0802F102 ldrh r1, [r4, #0x2e] adds r0, r2, #0 ands r0, r1 cmp r0, #7 ble _0802F102 b _0802F0F0 _0802F0AE: movs r2, #0xf adds r0, r6, #0 ands r0, r2 cmp r0, #7 bgt _0802F102 ldrh r1, [r4, #0x32] adds r0, r2, #0 ands r0, r1 cmp r0, #7 ble _0802F102 _0802F0C2: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r1, #0x32 ldrsh r0, [r4, r1] ldr r1, _0802F0D8 @ =0x0000FFF0 ands r0, r1 adds r6, r0, #0 adds r6, #8 b _0802F102 .align 2, 0 _0802F0D8: .4byte 0x0000FFF0 _0802F0DC: movs r2, #0xf adds r0, r5, #0 ands r0, r2 cmp r0, #8 ble _0802F102 ldrh r1, [r4, #0x2e] adds r0, r2, #0 ands r0, r1 cmp r0, #8 bgt _0802F102 _0802F0F0: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r1, #0x2e ldrsh r0, [r4, r1] ldr r1, _0802F114 @ =0x0000FFF0 ands r0, r1 adds r5, r0, #0 adds r5, #8 _0802F102: ldrb r0, [r4, #0xe] cmp r0, #0 bne _0802F112 strh r5, [r4, #0x2e] strh r6, [r4, #0x32] adds r0, r4, #0 bl sub_0802EFB8 _0802F112: pop {r4, r5, r6, pc} .align 2, 0 _0802F114: .4byte 0x0000FFF0 thumb_func_start sub_0802F118 sub_0802F118: @ 0x0802F118 push {r4, lr} adds r4, r0, #0 ldr r1, _0802F134 @ =gUnk_080CDED0 bl sub_0800129E movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, pc} .align 2, 0 _0802F134: .4byte gUnk_080CDED0 thumb_func_start sub_0802F138 sub_0802F138: @ 0x0802F138 push {lr} ldr r2, _0802F14C @ =gUnk_080CDEE8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802F14C: .4byte gUnk_080CDEE8 thumb_func_start sub_0802F150 sub_0802F150: @ 0x0802F150 push {r4, lr} adds r4, r0, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _0802F164 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _0802F164: ldr r1, _0802F18C @ =gUnk_080CDED0 adds r0, r4, #0 bl sub_0804AA30 adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0802F1E8 movs r0, #0x3f ands r0, r1 cmp r0, #0x14 beq _0802F196 cmp r0, #0x14 bgt _0802F190 cmp r0, #0xe beq _0802F1E0 b _0802F1E8 .align 2, 0 _0802F18C: .4byte gUnk_080CDED0 _0802F190: cmp r0, #0x15 beq _0802F1E0 b _0802F1E8 _0802F196: movs r0, #0 movs r1, #1 strb r1, [r4, #0xc] strb r0, [r4, #0xd] ldrb r0, [r4, #0xa] cmp r0, #0 beq _0802F1A8 movs r0, #0xc0 b _0802F1B6 _0802F1A8: bl sub_08000E50 ldr r2, _0802F1DC @ =gUnk_080CDEF8 movs r1, #3 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] _0802F1B6: strb r0, [r4, #0xe] movs r1, #0 strb r1, [r4, #0xf] adds r0, r4, #0 adds r0, #0x7c strb r1, [r0] movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 beq _0802F1CE ldr r0, [r4, #0x20] asrs r0, r0, #2 _0802F1CE: str r0, [r4, #0x20] adds r0, r4, #0 movs r1, #0 bl sub_08004260 b _0802F1E8 .align 2, 0 _0802F1DC: .4byte gUnk_080CDEF8 _0802F1E0: adds r1, r4, #0 adds r1, #0x45 movs r0, #0 strb r0, [r1] _0802F1E8: pop {r4, pc} .align 2, 0 thumb_func_start nullsub_16 nullsub_16: @ 0x0802F1EC bx lr .align 2, 0 thumb_func_start sub_0802F1F0 sub_0802F1F0: @ 0x0802F1F0 push {r4, lr} adds r4, r0, #0 bl sub_08001242 movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 beq _0802F20C adds r0, r4, #0 adds r0, #0x80 ldrh r1, [r0] adds r0, r4, #0 bl sub_08003FC4 _0802F20C: pop {r4, pc} .align 2, 0 thumb_func_start sub_0802F210 sub_0802F210: @ 0x0802F210 push {r4, r5, lr} adds r5, r0, #0 bl sub_0804A720 movs r4, #0 movs r0, #1 strb r0, [r5, #0xc] strb r4, [r5, #0xd] bl sub_08000E50 ldr r2, _0802F280 @ =gUnk_080CDEF8 movs r1, #3 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r5, #0xe] bl sub_08000E50 movs r1, #0x1f ands r0, r1 ldrb r1, [r5, #0xe] adds r0, r0, r1 strb r0, [r5, #0xe] strb r4, [r5, #0xf] adds r0, r5, #0 adds r0, #0x7c strb r4, [r0] ldrb r0, [r5, #0xa] movs r2, #0xa0 lsls r2, r2, #6 adds r1, r2, #0 cmp r0, #0 bne _0802F258 movs r0, #0xc0 lsls r0, r0, #5 adds r1, r0, #0 _0802F258: adds r0, r5, #0 adds r0, #0x80 strh r1, [r0] ldrb r0, [r5, #0xa] movs r2, #0xc0 lsls r2, r2, #6 adds r1, r2, #0 cmp r0, #0 bne _0802F270 movs r0, #0xa0 lsls r0, r0, #6 adds r1, r0, #0 _0802F270: adds r0, r5, #0 adds r0, #0x82 strh r1, [r0] adds r0, r5, #0 movs r1, #0 bl sub_08004260 pop {r4, r5, pc} .align 2, 0 _0802F280: .4byte gUnk_080CDEF8 thumb_func_start sub_0802F284 sub_0802F284: @ 0x0802F284 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0x60 bls _0802F298 adds r0, r4, #0 movs r1, #2 bl sub_08004276 b _0802F29E _0802F298: adds r0, r4, #0 bl sub_08004274 _0802F29E: ldrb r0, [r4, #0xe] cmp r0, #0 beq _0802F2AA subs r0, #1 strb r0, [r4, #0xe] b _0802F2FE _0802F2AA: ldrb r0, [r4, #0xf] cmp r0, #0 beq _0802F2E4 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0802F2FE movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x10 strb r0, [r4, #0xe] ldrb r0, [r4, #0xa] strb r0, [r4, #0xf] adds r0, r4, #0 adds r0, #0x82 ldrh r0, [r0] lsls r0, r0, #4 str r0, [r4, #0x20] adds r0, r4, #0 bl sub_0802F45C adds r0, r4, #0 movs r1, #2 bl sub_08004260 b _0802F2FE _0802F2E4: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0802F2FE movs r0, #0x40 strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _0802F2FE: pop {r4, pc} thumb_func_start sub_0802F300 sub_0802F300: @ 0x0802F300 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080AEF88 movs r0, #0x36 ldrsh r6, [r4, r0] bl sub_08000E50 adds r5, r0, #0 movs r0, #0xf ands r5, r0 adds r0, r4, #0 adds r0, #0x80 ldrh r1, [r0] adds r0, r4, #0 bl sub_080044EC cmp r0, #1 bne _0802F364 movs r0, #0 movs r2, #3 strb r2, [r4, #0xc] strb r0, [r4, #0xd] ldrb r0, [r4, #0xa] cmp r0, #0 beq _0802F33C movs r5, #0 _0802F33C: cmp r5, #0 bne _0802F344 movs r0, #0xc0 b _0802F350 _0802F344: ldr r0, _0802F360 @ =gUnk_080CDEF8 adds r1, r5, #0 ands r1, r2 adds r1, r1, r0 ldrb r0, [r1] adds r0, r0, r5 _0802F350: strb r0, [r4, #0xe] movs r0, #0 strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #3 bl sub_08004260 b _0802F3F0 .align 2, 0 _0802F360: .4byte gUnk_080CDEF8 _0802F364: ldrh r0, [r4, #0x2a] cmp r0, #0 beq _0802F374 adds r1, r0, #0 adds r0, r4, #0 bl sub_0800417E b _0802F38C _0802F374: adds r0, r4, #0 bl sub_080002B8 movs r1, #0xf0 ands r1, r0 cmp r1, #0x50 bne _0802F38C ldrb r0, [r4, #0x15] adds r0, #0x10 movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] _0802F38C: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802F3AC movs r0, #0x10 strb r0, [r4, #0xe] ldrb r0, [r4, #0xf] cmp r0, #0 beq _0802F3AC subs r0, #1 strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_0802F45C _0802F3AC: ldrb r0, [r4, #0xd] cmp r0, #0 bne _0802F3C6 movs r1, #0x36 ldrsh r0, [r4, r1] cmp r6, r0 bge _0802F3C6 adds r0, r4, #0 movs r1, #4 bl sub_08004260 movs r0, #1 strb r0, [r4, #0xd] _0802F3C6: movs r0, #0xc rsbs r0, r0, #0 cmp r6, r0 bge _0802F3DA ldrb r2, [r4, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 movs r2, #0x40 b _0802F3E4 _0802F3DA: ldrb r2, [r4, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 movs r2, #0x80 _0802F3E4: orrs r0, r2 strb r0, [r4, #0x19] ldrb r0, [r4, #0x1b] ands r1, r0 orrs r1, r2 strb r1, [r4, #0x1b] _0802F3F0: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0802F3F4 sub_0802F3F4: @ 0x0802F3F4 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0802F45A adds r0, r4, #0 adds r0, #0x7c ldrb r1, [r0] adds r2, r0, #0 cmp r1, #1 bhi _0802F44C ldrb r0, [r4, #0xa] movs r1, #1 ands r0, r1 cmp r0, #0 beq _0802F44C movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x10 strb r0, [r4, #0xe] ldrb r0, [r4, #0xa] strb r0, [r4, #0xf] adds r0, r4, #0 adds r0, #0x82 ldrh r0, [r0] lsls r0, r0, #4 str r0, [r4, #0x20] ldrb r0, [r2] adds r0, #1 strb r0, [r2] adds r0, r4, #0 bl sub_0802F45C adds r0, r4, #0 movs r1, #2 bl sub_08004260 b _0802F45A _0802F44C: movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] strb r1, [r2] adds r0, r4, #0 bl sub_08004260 _0802F45A: pop {r4, pc} thumb_func_start sub_0802F45C sub_0802F45C: @ 0x0802F45C push {r4, lr} adds r4, r0, #0 bl sub_08049FA0 cmp r0, #0 bne _0802F472 adds r0, r4, #0 bl sub_08049EE4 strb r0, [r4, #0x15] b _0802F49E _0802F472: adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0802F48A adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] b _0802F49E _0802F48A: bl sub_08000E50 movs r1, #0xf ands r1, r0 adds r1, #0x18 ldrb r0, [r4, #0x15] adds r1, r1, r0 movs r0, #0x1f ands r1, r0 strb r1, [r4, #0x15] _0802F49E: pop {r4, pc} thumb_func_start sub_0802F4A0 sub_0802F4A0: @ 0x0802F4A0 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _0802F4C8 @ =gUnk_080CDF50 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r5 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, r5, pc} .align 2, 0 _0802F4C8: .4byte gUnk_080CDF50 thumb_func_start sub_0802F4CC sub_0802F4CC: @ 0x0802F4CC push {lr} ldr r2, _0802F4E0 @ =gUnk_080CDF68 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802F4E0: .4byte gUnk_080CDF68 thumb_func_start sub_0802F4E4 sub_0802F4E4: @ 0x0802F4E4 push {r4, lr} adds r4, r0, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _0802F4F8 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _0802F4F8: ldr r1, _0802F558 @ =gUnk_080CDF50 adds r0, r4, #0 bl sub_0804AA30 adds r0, r4, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x87 bne _0802F536 movs r0, #0x2a movs r1, #3 movs r2, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _0802F536 adds r3, r2, #0 adds r3, #0x29 ldrb r1, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r3] adds r1, r2, #0 adds r1, #0x63 movs r0, #0xfc strb r0, [r1] str r4, [r2, #0x50] _0802F536: adds r0, r4, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _0802F556 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x84 ldrh r1, [r1] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E _0802F556: pop {r4, pc} .align 2, 0 _0802F558: .4byte gUnk_080CDF50 thumb_func_start sub_0802F55C sub_0802F55C: @ 0x0802F55C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xb] cmp r0, #0 beq _0802F594 movs r0, #3 strb r0, [r4, #0xc] movs r2, #0 movs r0, #0xc0 strh r0, [r4, #0x24] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 adds r0, #0x80 strb r2, [r0] ldrb r0, [r4, #0xe] bl sub_0804B128 str r0, [r4, #0x54] adds r0, r4, #0 bl sub_0802FA48 adds r0, r4, #0 bl sub_0802FA88 b _0802F5B8 _0802F594: adds r0, r4, #0 bl sub_0804A720 movs r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x82 movs r0, #0xff strb r0, [r1] subs r1, #1 movs r0, #0x28 strb r0, [r1] strb r0, [r4, #0xe] movs r0, #0x60 strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_0802F888 _0802F5B8: adds r0, r4, #0 movs r1, #7 movs r2, #0 bl sub_0804A98C adds r1, r0, #0 cmp r1, #0 beq _0802F5D0 str r1, [r4, #0x50] str r4, [r1, #0x50] ldrb r0, [r4, #0x15] strb r0, [r1, #0x15] _0802F5D0: ldrb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 bl sub_08004260 pop {r4, pc} thumb_func_start sub_0802F5DC sub_0802F5DC: @ 0x0802F5DC push {r4, r5, lr} adds r5, r0, #0 adds r2, r5, #0 adds r2, #0x82 ldrb r3, [r2] cmp r3, #1 beq _0802F62A cmp r3, #1 bgt _0802F5F4 cmp r3, #0 beq _0802F60A b _0802F660 _0802F5F4: cmp r3, #0xff bne _0802F660 ldrb r0, [r5, #0xf] subs r0, #1 strb r0, [r5, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 bne _0802F660 strb r0, [r2] b _0802F660 _0802F60A: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802F660 ldrb r0, [r2] adds r0, #1 strb r0, [r2] movs r0, #0x10 strb r0, [r5, #0xe] ldrb r0, [r5, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r5, #0x10] b _0802F660 _0802F62A: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0802F660 movs r0, #2 strb r0, [r5, #0xc] strb r1, [r2] movs r0, #0x28 strb r0, [r5, #0xe] ldrb r1, [r5, #0x15] lsrs r1, r1, #3 ldr r2, [r5, #0x50] movs r4, #1 strb r3, [r2, #0xe] ldrb r3, [r2, #0x18] subs r0, #0x2c ands r0, r3 orrs r0, r4 strb r0, [r2, #0x18] movs r0, #4 orrs r1, r0 adds r0, r5, #0 bl sub_08004260 _0802F660: adds r0, r5, #0 bl sub_0802F9C8 pop {r4, r5, pc} thumb_func_start sub_0802F668 sub_0802F668: @ 0x0802F668 push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x82 ldrb r0, [r2] cmp r0, #1 beq _0802F6F0 cmp r0, #1 bgt _0802F680 cmp r0, #0 beq _0802F68A b _0802F7A2 _0802F680: cmp r0, #2 beq _0802F742 cmp r0, #3 beq _0802F76C b _0802F7A2 _0802F68A: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 beq _0802F69E cmp r1, #8 beq _0802F6B6 b _0802F7A2 _0802F69E: ldrb r0, [r2] adds r0, #1 strb r0, [r2] movs r0, #0x38 strb r0, [r4, #0xe] strb r1, [r4, #0xf] ldr r2, [r4, #0x50] ldrb r1, [r2, #0x18] subs r0, #0x3c ands r0, r1 strb r0, [r2, #0x18] b _0802F7A2 _0802F6B6: ldr r1, _0802F6EC @ =gUnk_03001160 adds r0, r4, #0 movs r2, #0xa0 movs r3, #0xa0 bl sub_080041A0 cmp r0, #0 beq _0802F7A2 adds r0, r4, #0 bl sub_080040A8 cmp r0, #0 beq _0802F7A2 adds r0, r4, #0 movs r1, #7 movs r2, #1 bl sub_0804A98C adds r2, r0, #0 cmp r2, #0 beq _0802F7A2 ldrb r1, [r4, #0x15] movs r0, #0x18 ands r0, r1 strb r0, [r2, #0x15] b _0802F7A2 .align 2, 0 _0802F6EC: .4byte gUnk_03001160 _0802F6F0: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r3, r0, #0x18 cmp r3, #0 bne _0802F7A2 ldrb r0, [r2] adds r0, #1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x81 movs r0, #0x28 strb r0, [r1] strb r0, [r4, #0xe] strb r3, [r4, #0xf] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r0, #0xab lsls r0, r0, #1 bl sub_08004488 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x84 ldrh r1, [r1] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E ldrb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 bl sub_08004260 b _0802F7A2 _0802F742: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802F7A2 ldrb r0, [r2] adds r0, #1 strb r0, [r2] bl sub_08000E50 movs r1, #0x3f ands r0, r1 adds r0, #0x20 strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] b _0802F7A2 _0802F76C: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0802F7A2 movs r0, #1 strb r0, [r4, #0xc] strb r1, [r2] adds r1, r4, #0 adds r1, #0x81 movs r0, #0x28 strb r0, [r1] strb r0, [r4, #0xe] movs r0, #0xab lsls r0, r0, #1 bl sub_08004488 adds r0, r4, #0 bl sub_0802F8E4 ldrb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 bl sub_08004260 _0802F7A2: adds r0, r4, #0 bl sub_0802F9C8 pop {r4, pc} .align 2, 0 thumb_func_start sub_0802F7AC sub_0802F7AC: @ 0x0802F7AC push {r4, r5, lr} adds r4, r0, #0 bl sub_0802FA88 adds r0, r4, #0 bl sub_0802F9C8 ldr r5, [r4, #0x50] adds r0, r4, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #0 bne _0802F86E adds r2, r4, #0 adds r2, #0x82 ldrb r1, [r2] cmp r1, #1 beq _0802F7EA cmp r1, #1 bgt _0802F7DA cmp r1, #0 beq _0802F7E0 b _0802F884 _0802F7DA: cmp r1, #2 beq _0802F818 b _0802F884 _0802F7E0: movs r0, #1 strb r0, [r2] movs r0, #0x40 strb r0, [r4, #0xe] b _0802F884 _0802F7EA: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802F884 ldrb r0, [r2] adds r0, #1 strb r0, [r2] movs r0, #0x28 strb r0, [r4, #0xe] movs r2, #1 strb r1, [r5, #0xe] ldrb r1, [r5, #0x18] subs r0, #0x2c ands r0, r1 orrs r0, r2 strb r0, [r5, #0x18] ldrb r1, [r4, #0x14] lsrs r1, r1, #1 movs r0, #4 orrs r1, r0 b _0802F844 _0802F818: ldrb r0, [r4, #0xe] subs r1, r0, #1 strb r1, [r4, #0xe] lsls r0, r1, #0x18 cmp r0, #0 bne _0802F84C ldrb r0, [r2] adds r0, #1 strb r0, [r2] bl sub_08000E50 movs r1, #0x1f ands r0, r1 adds r0, #0x30 strb r0, [r4, #0xe] ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r5, #0x18] ldrb r1, [r4, #0x14] lsrs r1, r1, #1 _0802F844: adds r0, r4, #0 bl sub_08004260 b _0802F884 _0802F84C: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #8 bne _0802F884 adds r0, r4, #0 movs r1, #7 movs r2, #1 bl sub_0804A98C adds r5, r0, #0 cmp r5, #0 beq _0802F884 ldrb r1, [r4, #0x15] movs r0, #0x18 ands r0, r1 strb r0, [r5, #0x15] b _0802F884 _0802F86E: adds r1, r4, #0 adds r1, #0x82 ldrb r0, [r1] cmp r0, #0 beq _0802F884 movs r0, #0 strb r0, [r1] ldrb r1, [r5, #0x18] subs r0, #4 ands r0, r1 strb r0, [r5, #0x18] _0802F884: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0802F888 sub_0802F888: @ 0x0802F888 push {r4, r5, r6, lr} adds r4, r0, #0 movs r1, #3 bl sub_08049F84 adds r0, #4 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _0802F8DC @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r5, r4, #0 adds r5, #0x84 strh r1, [r5] ldrh r0, [r5] adds r6, r4, #0 adds r6, #0x38 ldrb r1, [r6] bl sub_080001DA adds r4, #0x86 strh r0, [r4] ldr r0, _0802F8E0 @ =0x00004071 ldrh r1, [r5] ldrb r2, [r6] bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 _0802F8DC: .4byte gUnk_03000BF0 _0802F8E0: .4byte 0x00004071 thumb_func_start sub_0802F8E4 sub_0802F8E4: @ 0x0802F8E4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x14 adds r7, r0, #0 ldrb r0, [r7, #0xb] cmp r0, #0 bne _0802F9AE movs r0, #1 str r0, [sp] adds r1, r7, #0 adds r1, #0x70 str r1, [sp, #0xc] adds r2, r7, #0 adds r2, #0x6e str r2, [sp, #4] adds r0, r7, #0 adds r0, #0x72 str r0, [sp, #0x10] subs r1, #1 str r1, [sp, #8] movs r2, #0x38 adds r2, r2, r7 mov r8, r2 movs r0, #8 mov sl, r0 ldr r1, _0802F9BC @ =gUnk_03000BF0 mov sb, r1 _0802F920: bl sub_08000E50 adds r4, r0, #0 ldr r2, [sp, #0xc] ldrh r5, [r2] ldr r1, _0802F9C0 @ =0x00007FF0 ands r0, r1 ldr r2, [sp, #4] ldrb r1, [r2] lsls r1, r1, #3 bl __modsi3 adds r6, r5, r0 mov r0, sl orrs r6, r0 lsrs r4, r4, #0x10 ldr r1, [sp, #0x10] ldrh r5, [r1] ldr r2, _0802F9C0 @ =0x00007FF0 ands r4, r2 ldr r0, [sp, #8] ldrb r1, [r0] lsls r1, r1, #3 adds r0, r4, #0 bl __modsi3 adds r5, r5, r0 mov r1, sl orrs r5, r1 mov r2, sb ldrh r0, [r2, #6] subs r0, r6, r0 lsrs r4, r0, #4 movs r1, #0x3f ands r4, r1 ldrh r0, [r2, #8] subs r0, r5, r0 lsrs r0, r0, #4 ands r0, r1 lsls r0, r0, #6 orrs r4, r0 mov r0, r8 ldrb r1, [r0] adds r0, r4, #0 bl sub_080002E0 cmp r0, #0 bne _0802F9A2 mov r2, r8 ldrb r1, [r2] adds r0, r4, #0 bl sub_080001DA ldr r1, _0802F9C4 @ =0x00004071 cmp r0, r1 beq _0802F9A2 strh r6, [r7, #0x2e] strh r5, [r7, #0x32] adds r0, r7, #0 bl sub_08049FA0 cmp r0, #0 beq _0802F9A2 movs r0, #0 str r0, [sp] _0802F9A2: ldr r1, [sp] cmp r1, #0 bne _0802F920 adds r0, r7, #0 bl sub_0802F888 _0802F9AE: add sp, #0x14 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _0802F9BC: .4byte gUnk_03000BF0 _0802F9C0: .4byte 0x00007FF0 _0802F9C4: .4byte 0x00004071 thumb_func_start sub_0802F9C8 sub_0802F9C8: @ 0x0802F9C8 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] cmp r0, #0 bne _0802FA44 adds r5, r4, #0 adds r5, #0x81 ldrb r0, [r5] adds r6, r5, #0 cmp r0, #0 beq _0802FA20 subs r0, #1 strb r0, [r5] movs r1, #0xff ands r0, r1 movs r2, #1 ands r0, r2 cmp r0, #0 beq _0802F9F8 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 b _0802FA02 _0802F9F8: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 _0802FA02: strb r0, [r4, #0x18] ldrb r0, [r4, #0xb] cmp r0, #0 beq _0802FA3E adds r0, r4, #0 bl sub_0806F69C ldrb r0, [r6] cmp r0, #0 bne _0802FA3E ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] b _0802FA3E _0802FA20: ldrb r0, [r4, #0xb] cmp r0, #0 beq _0802FA3E adds r0, r4, #0 bl sub_080AEF88 ldrh r0, [r4, #0x2a] cmp r0, #0 beq _0802FA3E ldrb r0, [r4, #0x10] movs r1, #0x7f ands r1, r0 strb r1, [r4, #0x10] movs r0, #0x28 strb r0, [r5] _0802FA3E: adds r0, r4, #0 bl sub_08004274 _0802FA44: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0802FA48 sub_0802FA48: @ 0x0802FA48 push {r4, lr} mov ip, r0 ldr r4, [r0, #0x54] mov r2, ip adds r2, #0x80 ldrb r0, [r2] lsls r0, r0, #2 adds r3, r4, r0 ldrh r1, [r3] ldr r0, _0802FA80 @ =0x0000FFFF cmp r1, r0 bne _0802FA66 movs r0, #0 strb r0, [r2] adds r3, r4, #0 _0802FA66: ldr r2, _0802FA84 @ =gUnk_03000BF0 ldrh r0, [r3] ldrh r1, [r2, #6] adds r0, r0, r1 mov r1, ip adds r1, #0x78 strh r0, [r1] ldrh r0, [r3, #2] ldrh r2, [r2, #8] adds r0, r0, r2 adds r1, #2 strh r0, [r1] pop {r4, pc} .align 2, 0 _0802FA80: .4byte 0x0000FFFF _0802FA84: .4byte gUnk_03000BF0 thumb_func_start sub_0802FA88 sub_0802FA88: @ 0x0802FA88 push {r4, r5, r6, r7, lr} adds r4, r0, #0 movs r7, #0 adds r5, r4, #0 adds r5, #0x78 ldrh r1, [r5] adds r6, r4, #0 adds r6, #0x7a ldrh r2, [r6] movs r3, #2 bl sub_0806FCB8 cmp r0, #0 beq _0802FAF6 adds r1, r4, #0 adds r1, #0x80 ldrb r0, [r1] adds r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_0802FA48 movs r1, #0x2e ldrsh r0, [r4, r1] movs r2, #0x32 ldrsh r1, [r4, r2] ldrh r2, [r5] ldrh r3, [r6] bl sub_080045D4 adds r2, r0, #0 strb r2, [r4, #0x15] adds r0, r2, #4 movs r1, #0x18 ands r0, r1 lsrs r0, r0, #2 strb r0, [r4, #0x14] ldr r0, [r4, #0x50] ldrb r0, [r0, #0x18] lsls r0, r0, #0x1e cmp r0, #0 beq _0802FAEA lsrs r1, r2, #3 movs r0, #4 orrs r1, r0 adds r0, r4, #0 bl sub_08004260 b _0802FAF2 _0802FAEA: lsrs r1, r2, #3 adds r0, r4, #0 bl sub_08004260 _0802FAF2: movs r7, #1 b _0802FB2A _0802FAF6: movs r1, #0x2e ldrsh r0, [r4, r1] movs r2, #0x32 ldrsh r1, [r4, r2] ldrh r2, [r5] ldrh r3, [r6] bl sub_080045D4 adds r2, r0, #0 adds r0, r4, #0 adds r1, r2, #0 bl sub_08004596 ldrb r0, [r4, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 asrs r2, r0, #2 ldrb r0, [r4, #0x14] cmp r2, r0 beq _0802FB2A strb r2, [r4, #0x14] lsrs r1, r2, #1 adds r0, r4, #0 bl sub_08004260 _0802FB2A: adds r0, r7, #0 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0802FB30 sub_0802FB30: @ 0x0802FB30 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _0802FB58 @ =gUnk_080CDFC4 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r5 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, r5, pc} .align 2, 0 _0802FB58: .4byte gUnk_080CDFC4 thumb_func_start sub_0802FB5C sub_0802FB5C: @ 0x0802FB5C push {lr} ldr r2, _0802FB70 @ =gUnk_080CDFDC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802FB70: .4byte gUnk_080CDFDC thumb_func_start sub_0802FB74 sub_0802FB74: @ 0x0802FB74 push {r4, lr} adds r4, r0, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _0802FB88 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _0802FB88: ldr r1, _0802FBB4 @ =gUnk_080CDFC4 adds r0, r4, #0 bl sub_0804AA30 adds r0, r4, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _0802FBB0 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x84 ldrh r1, [r1] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E _0802FBB0: pop {r4, pc} .align 2, 0 _0802FBB4: .4byte gUnk_080CDFC4 thumb_func_start sub_0802FBB8 sub_0802FBB8: @ 0x0802FBB8 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x82 movs r0, #0xff strb r0, [r1] subs r1, #1 movs r0, #0x28 strb r0, [r1] strb r0, [r4, #0xe] movs r0, #0x60 strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_0802F888 adds r0, r4, #0 movs r1, #8 movs r2, #0 bl sub_0804A98C adds r1, r0, #0 cmp r1, #0 beq _0802FBF6 str r1, [r4, #0x54] str r4, [r1, #0x50] ldrb r0, [r4, #0x15] strb r0, [r1, #0x15] _0802FBF6: ldrb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 bl sub_08004260 pop {r4, pc} .align 2, 0 thumb_func_start sub_0802FC04 sub_0802FC04: @ 0x0802FC04 push {r4, r5, lr} adds r5, r0, #0 adds r2, r5, #0 adds r2, #0x82 ldrb r3, [r2] cmp r3, #1 beq _0802FC52 cmp r3, #1 bgt _0802FC1C cmp r3, #0 beq _0802FC32 b _0802FC88 _0802FC1C: cmp r3, #0xff bne _0802FC88 ldrb r0, [r5, #0xf] subs r0, #1 strb r0, [r5, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 bne _0802FC88 strb r0, [r2] b _0802FC88 _0802FC32: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802FC88 ldrb r0, [r2] adds r0, #1 strb r0, [r2] movs r0, #0xe strb r0, [r5, #0xe] ldrb r0, [r5, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r5, #0x10] b _0802FC88 _0802FC52: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0802FC88 movs r0, #2 strb r0, [r5, #0xc] strb r1, [r2] movs r0, #0x20 strb r0, [r5, #0xe] ldrb r1, [r5, #0x15] lsrs r1, r1, #3 ldr r2, [r5, #0x54] movs r4, #1 strb r3, [r2, #0xe] ldrb r3, [r2, #0x18] subs r0, #0x24 ands r0, r3 orrs r0, r4 strb r0, [r2, #0x18] movs r0, #4 orrs r1, r0 adds r0, r5, #0 bl sub_08004260 _0802FC88: adds r0, r5, #0 bl sub_0802F9C8 pop {r4, r5, pc} thumb_func_start sub_0802FC90 sub_0802FC90: @ 0x0802FC90 push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x82 ldrb r0, [r2] cmp r0, #1 beq _0802FD18 cmp r0, #1 bgt _0802FCA8 cmp r0, #0 beq _0802FCB2 b _0802FDCA _0802FCA8: cmp r0, #2 beq _0802FD6A cmp r0, #3 beq _0802FD94 b _0802FDCA _0802FCB2: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 beq _0802FCC6 cmp r1, #6 beq _0802FCDE b _0802FDCA _0802FCC6: ldrb r0, [r2] adds r0, #1 strb r0, [r2] movs r0, #0x38 strb r0, [r4, #0xe] strb r1, [r4, #0xf] ldr r2, [r4, #0x54] ldrb r1, [r2, #0x18] subs r0, #0x3c ands r0, r1 strb r0, [r2, #0x18] b _0802FDCA _0802FCDE: ldr r1, _0802FD14 @ =gUnk_03001160 adds r0, r4, #0 movs r2, #0xa0 movs r3, #0xa0 bl sub_080041A0 cmp r0, #0 beq _0802FDCA adds r0, r4, #0 bl sub_080040A8 cmp r0, #0 beq _0802FDCA adds r0, r4, #0 movs r1, #8 movs r2, #1 bl sub_0804A98C adds r2, r0, #0 cmp r2, #0 beq _0802FDCA ldrb r1, [r4, #0x15] movs r0, #0x18 ands r0, r1 strb r0, [r2, #0x15] b _0802FDCA .align 2, 0 _0802FD14: .4byte gUnk_03001160 _0802FD18: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r3, r0, #0x18 cmp r3, #0 bne _0802FDCA ldrb r0, [r2] adds r0, #1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x81 movs r0, #0x28 strb r0, [r1] strb r0, [r4, #0xe] strb r3, [r4, #0xf] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x84 ldrh r1, [r1] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E movs r0, #0xab lsls r0, r0, #1 bl sub_08004488 ldrb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 bl sub_08004260 b _0802FDCA _0802FD6A: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802FDCA ldrb r0, [r2] adds r0, #1 strb r0, [r2] bl sub_08000E50 movs r1, #0x3f ands r0, r1 adds r0, #0x1c strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] b _0802FDCA _0802FD94: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0802FDCA movs r0, #1 strb r0, [r4, #0xc] strb r1, [r2] adds r1, r4, #0 adds r1, #0x81 movs r0, #0x28 strb r0, [r1] strb r0, [r4, #0xe] movs r0, #0xab lsls r0, r0, #1 bl sub_08004488 adds r0, r4, #0 bl sub_0802F8E4 ldrb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 bl sub_08004260 _0802FDCA: adds r0, r4, #0 bl sub_0802F9C8 pop {r4, pc} .align 2, 0 thumb_func_start sub_0802FDD4 sub_0802FDD4: @ 0x0802FDD4 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _0802FDFC @ =gUnk_080CE074 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r5 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, r5, pc} .align 2, 0 _0802FDFC: .4byte gUnk_080CE074 thumb_func_start sub_0802FE00 sub_0802FE00: @ 0x0802FE00 push {lr} ldr r2, _0802FE14 @ =gUnk_080CE08C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0802FE14: .4byte gUnk_080CE08C thumb_func_start sub_0802FE18 sub_0802FE18: @ 0x0802FE18 push {r4, lr} adds r4, r0, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _0802FE2C adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _0802FE2C: ldr r1, _0802FE8C @ =gUnk_080CE074 adds r0, r4, #0 bl sub_0804AA30 adds r0, r4, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x87 bne _0802FE6A movs r0, #0x2a movs r1, #3 movs r2, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _0802FE6A adds r3, r2, #0 adds r3, #0x29 ldrb r1, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r3] adds r1, r2, #0 adds r1, #0x63 movs r0, #0xfc strb r0, [r1] str r4, [r2, #0x50] _0802FE6A: adds r0, r4, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _0802FE8A adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x84 ldrh r1, [r1] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E _0802FE8A: pop {r4, pc} .align 2, 0 _0802FE8C: .4byte gUnk_080CE074 thumb_func_start sub_0802FE90 sub_0802FE90: @ 0x0802FE90 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x82 movs r0, #0xff strb r0, [r1] subs r1, #1 movs r0, #0x28 strb r0, [r1] strb r0, [r4, #0xe] movs r0, #0x60 strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_0802F888 adds r0, r4, #0 movs r1, #9 movs r2, #0 bl sub_0804A98C adds r1, r0, #0 cmp r1, #0 beq _0802FECE str r1, [r4, #0x54] str r4, [r1, #0x50] ldrb r0, [r4, #0x15] strb r0, [r1, #0x15] _0802FECE: ldrb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 bl sub_08004260 pop {r4, pc} .align 2, 0 thumb_func_start sub_0802FEDC sub_0802FEDC: @ 0x0802FEDC push {r4, r5, lr} adds r5, r0, #0 adds r2, r5, #0 adds r2, #0x82 ldrb r3, [r2] cmp r3, #1 beq _0802FF2A cmp r3, #1 bgt _0802FEF4 cmp r3, #0 beq _0802FF0A b _0802FF60 _0802FEF4: cmp r3, #0xff bne _0802FF60 ldrb r0, [r5, #0xf] subs r0, #1 strb r0, [r5, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 bne _0802FF60 strb r0, [r2] b _0802FF60 _0802FF0A: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802FF60 ldrb r0, [r2] adds r0, #1 strb r0, [r2] movs r0, #0xc strb r0, [r5, #0xe] ldrb r0, [r5, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r5, #0x10] b _0802FF60 _0802FF2A: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0802FF60 movs r0, #2 strb r0, [r5, #0xc] strb r1, [r2] movs r0, #0x20 strb r0, [r5, #0xe] ldrb r1, [r5, #0x15] lsrs r1, r1, #3 ldr r2, [r5, #0x54] movs r4, #1 strb r3, [r2, #0xe] ldrb r3, [r2, #0x18] subs r0, #0x24 ands r0, r3 orrs r0, r4 strb r0, [r2, #0x18] movs r0, #4 orrs r1, r0 adds r0, r5, #0 bl sub_08004260 _0802FF60: adds r0, r5, #0 bl sub_0802F9C8 pop {r4, r5, pc} thumb_func_start sub_0802FF68 sub_0802FF68: @ 0x0802FF68 push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x82 ldrb r0, [r2] cmp r0, #1 beq _0802FFF0 cmp r0, #1 bgt _0802FF80 cmp r0, #0 beq _0802FF8A b _080300A2 _0802FF80: cmp r0, #2 beq _08030042 cmp r0, #3 beq _0803006C b _080300A2 _0802FF8A: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 beq _0802FF9E cmp r1, #0xa beq _0802FFB6 b _080300A2 _0802FF9E: ldrb r0, [r2] adds r0, #1 strb r0, [r2] movs r0, #0x38 strb r0, [r4, #0xe] strb r1, [r4, #0xf] ldr r2, [r4, #0x54] ldrb r1, [r2, #0x18] subs r0, #0x3c ands r0, r1 strb r0, [r2, #0x18] b _080300A2 _0802FFB6: ldr r1, _0802FFEC @ =gUnk_03001160 adds r0, r4, #0 movs r2, #0xa0 movs r3, #0xa0 bl sub_080041A0 cmp r0, #0 beq _080300A2 adds r0, r4, #0 bl sub_080040A8 cmp r0, #0 beq _080300A2 adds r0, r4, #0 movs r1, #9 movs r2, #1 bl sub_0804A98C adds r2, r0, #0 cmp r2, #0 beq _080300A2 ldrb r1, [r4, #0x15] movs r0, #0x18 ands r0, r1 strb r0, [r2, #0x15] b _080300A2 .align 2, 0 _0802FFEC: .4byte gUnk_03001160 _0802FFF0: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r3, r0, #0x18 cmp r3, #0 bne _080300A2 ldrb r0, [r2] adds r0, #1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x81 movs r0, #0x28 strb r0, [r1] strb r0, [r4, #0xe] strb r3, [r4, #0xf] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x84 ldrh r1, [r1] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E movs r0, #0xab lsls r0, r0, #1 bl sub_08004488 ldrb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 bl sub_08004260 b _080300A2 _08030042: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080300A2 ldrb r0, [r2] adds r0, #1 strb r0, [r2] bl sub_08000E50 movs r1, #0x3f ands r0, r1 adds r0, #0x18 strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] b _080300A2 _0803006C: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _080300A2 movs r0, #1 strb r0, [r4, #0xc] strb r1, [r2] adds r1, r4, #0 adds r1, #0x81 movs r0, #0x28 strb r0, [r1] strb r0, [r4, #0xe] movs r0, #0xab lsls r0, r0, #1 bl sub_08004488 adds r0, r4, #0 bl sub_0802F8E4 ldrb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 bl sub_08004260 _080300A2: adds r0, r4, #0 bl sub_0802F9C8 pop {r4, pc} .align 2, 0 thumb_func_start sub_080300AC sub_080300AC: @ 0x080300AC push {r4, lr} ldr r4, _080300C0 @ =gUnk_0300110C adds r0, r4, #0 movs r1, #0x44 bl sub_0801D630 adds r4, #0x42 movs r0, #0xff strh r0, [r4] pop {r4, pc} .align 2, 0 _080300C0: .4byte gUnk_0300110C thumb_func_start sub_080300C4 sub_080300C4: @ 0x080300C4 push {lr} ldr r2, _080300E4 @ =gUnk_030010A0 adds r0, r2, #0 adds r0, #0xae ldrh r0, [r0] cmp r0, #0xff bne _080300E2 adds r0, r2, #0 adds r0, #0xac movs r1, #0 strh r1, [r0] subs r0, #0x40 movs r1, #0x40 bl sub_0801D630 _080300E2: pop {pc} .align 2, 0 _080300E4: .4byte gUnk_030010A0 thumb_func_start sub_080300E8 sub_080300E8: @ 0x080300E8 push {lr} ldr r1, _08030110 @ =gUnk_030010A0 adds r3, r1, #0 adds r3, #0xae ldrh r0, [r3] cmp r0, #0xff beq _0803010C lsls r0, r0, #2 adds r1, #0x6c adds r0, r0, r1 ldr r2, _08030114 @ =gUnk_03001160 ldrh r1, [r0] strh r1, [r2, #0x2e] ldrh r0, [r0, #2] adds r0, #0xc strh r0, [r2, #0x32] movs r0, #0xff strh r0, [r3] _0803010C: pop {pc} .align 2, 0 _08030110: .4byte gUnk_030010A0 _08030114: .4byte gUnk_03001160 thumb_func_start sub_08030118 sub_08030118: @ 0x08030118 push {lr} adds r2, r0, #0 ldr r0, _0803013C @ =gUnk_030010A0 adds r0, #0xac ldrh r0, [r0] asrs r0, r2 movs r1, #1 ands r0, r1 cmp r0, #0 beq _08030140 movs r0, #0xc0 lsls r0, r0, #2 adds r1, r2, #0 adds r1, #0x67 bl sub_0807CC9C b _0803014C .align 2, 0 _0803013C: .4byte gUnk_030010A0 _08030140: movs r0, #0xc0 lsls r0, r0, #2 adds r1, r2, #0 adds r1, #0x67 bl sub_0807CD20 _0803014C: pop {pc} .align 2, 0 thumb_func_start sub_08030150 sub_08030150: @ 0x08030150 push {r4, r5, lr} mov ip, r0 ldr r2, _08030194 @ =gUnk_030010A0 adds r5, r2, #0 adds r5, #0xac mov r3, ip adds r3, #0x80 ldrb r4, [r3] movs r0, #1 lsls r0, r4 ldrh r1, [r5] bics r1, r0 mov r0, ip adds r0, #0x84 ldr r0, [r0] lsls r0, r4 orrs r1, r0 strh r1, [r5] ldrb r0, [r3] lsls r0, r0, #2 adds r2, #0x6c adds r0, r0, r2 mov r4, ip ldrh r1, [r4, #0x2e] strh r1, [r0] ldrb r0, [r3] lsls r0, r0, #1 adds r0, #1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r1, [r4, #0x32] strh r1, [r0] pop {r4, r5, pc} .align 2, 0 _08030194: .4byte gUnk_030010A0 thumb_func_start sub_08030198 sub_08030198: @ 0x08030198 push {r4, lr} adds r4, r0, #0 ldr r1, _080301B8 @ =gUnk_080CE124 bl sub_0800129E movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC adds r0, r4, #0 bl sub_08030150 pop {r4, pc} .align 2, 0 _080301B8: .4byte gUnk_080CE124 thumb_func_start sub_080301BC sub_080301BC: @ 0x080301BC push {lr} ldr r2, _080301D0 @ =gUnk_080CE13C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080301D0: .4byte gUnk_080CE13C thumb_func_start sub_080301D4 sub_080301D4: @ 0x080301D4 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 bne _080301EE ldr r1, [r4, #0x4c] ldr r0, _08030238 @ =gUnk_03001160 cmp r1, r0 bne _080301EE adds r1, r4, #0 adds r1, #0x3d movs r0, #0xe2 strb r0, [r1] _080301EE: adds r0, r4, #0 adds r0, #0x45 ldrb r1, [r0] adds r6, r0, #0 adds r5, r4, #0 adds r5, #0x81 cmp r1, #0 beq _08030216 ldrb r0, [r5] cmp r1, r0 beq _08030216 movs r0, #8 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #6 bl sub_080309C8 adds r0, r4, #0 bl sub_080309E8 _08030216: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _08030228 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _08030228: ldrb r0, [r6] strb r0, [r5] ldr r1, _0803023C @ =gUnk_080CE124 adds r0, r4, #0 bl sub_0804AA30 pop {r4, r5, r6, pc} .align 2, 0 _08030238: .4byte gUnk_03001160 _0803023C: .4byte gUnk_080CE124 thumb_func_start sub_08030240 sub_08030240: @ 0x08030240 push {r4, lr} adds r4, r0, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #6 bne _08030260 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _08030260 adds r0, r4, #0 bl sub_08004274 _08030260: adds r0, r4, #0 bl sub_08001242 pop {r4, pc} thumb_func_start nullsub_17 nullsub_17: @ 0x08030268 bx lr .align 2, 0 thumb_func_start sub_0803026C sub_0803026C: @ 0x0803026C push {r4, r5, lr} adds r4, r0, #0 bl sub_0804A720 ldrb r0, [r4, #0xe] adds r3, r4, #0 adds r3, #0x80 strb r0, [r3] ldrb r2, [r3] lsls r0, r2, #2 ldr r5, _080302A8 @ =gUnk_0300110C adds r0, r0, r5 ldrh r1, [r0] cmp r1, #0 beq _080302AC strh r1, [r4, #0x2e] ldrh r0, [r0, #2] strh r0, [r4, #0x32] adds r2, r4, #0 adds r2, #0x84 adds r0, r5, #0 adds r0, #0x40 ldrh r0, [r0] ldrb r3, [r3] asrs r0, r3 movs r1, #1 ands r0, r1 str r0, [r2] b _080302BA .align 2, 0 _080302A8: .4byte gUnk_0300110C _080302AC: adds r0, r4, #0 adds r0, #0x84 ldr r1, _08030304 @ =0x0000047D asrs r1, r2 movs r2, #1 ands r1, r2 str r1, [r0] _080302BA: ldrb r0, [r4, #0xb] cmp r0, #0 beq _080302C6 bl sub_0804B128 str r0, [r4, #0x7c] _080302C6: adds r0, r4, #0 adds r0, #0x45 ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x81 strb r0, [r1] adds r0, r4, #0 bl sub_08030580 adds r0, r4, #0 bl sub_080307EC adds r0, r4, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #2 bne _08030302 ldr r0, _08030308 @ =gUnk_03000BF0 ldrh r0, [r0, #8] adds r0, #0x80 movs r2, #0x32 ldrsh r1, [r4, r2] cmp r0, r1 bge _08030302 movs r0, #7 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #7 bl sub_080309C8 _08030302: pop {r4, r5, pc} .align 2, 0 _08030304: .4byte 0x0000047D _08030308: .4byte gUnk_03000BF0 thumb_func_start sub_0803030C sub_0803030C: @ 0x0803030C push {r4, r5, lr} adds r4, r0, #0 bl sub_0803086C adds r5, r0, #0 cmp r5, #0 bne _08030334 adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] cmp r0, #0 beq _08030334 adds r0, r4, #0 bl sub_08030650 cmp r0, #0 beq _08030334 movs r0, #2 strb r0, [r4, #0xc] strb r5, [r4, #0xd] _08030334: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08030338 sub_08030338: @ 0x08030338 push {r4, lr} adds r4, r0, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #2 beq _0803034C adds r0, r4, #0 bl sub_080309A8 b _08030368 _0803034C: adds r0, r4, #0 movs r1, #3 bl sub_08004276 adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] cmp r0, #0 beq _08030368 ldrb r0, [r4, #0x1e] cmp r0, #0x25 bne _08030368 movs r0, #0x19 strb r0, [r4, #0x1e] _08030368: adds r3, r4, #0 adds r3, #0x5a ldrb r2, [r3] adds r1, r2, #0 cmp r1, #1 bne _0803039C ldrb r0, [r4, #0xd] cmp r0, #0 bne _0803037C strb r1, [r4, #0xd] _0803037C: ldrb r0, [r4, #0xe] adds r2, r0, #1 strb r2, [r4, #0xe] ands r1, r2 cmp r1, #0 beq _0803042C ldr r1, _08030398 @ =gUnk_080CE160 movs r0, #6 ands r2, r0 lsrs r0, r2, #1 adds r0, r0, r1 ldrb r1, [r0] b _08030426 .align 2, 0 _08030398: .4byte gUnk_080CE160 _0803039C: cmp r1, #2 bne _080303D4 movs r0, #0 strb r0, [r3] adds r0, r4, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #2 beq _080303C0 adds r1, r4, #0 adds r1, #0x3b movs r0, #0xb strb r0, [r1] adds r1, #4 movs r0, #8 strb r0, [r1] ldr r0, _080303D0 @ =gUnk_080FD2F0 str r0, [r4, #0x48] _080303C0: adds r0, r4, #0 bl sub_08030834 movs r0, #0x95 lsls r0, r0, #1 bl sub_08004488 b _0803042C .align 2, 0 _080303D0: .4byte gUnk_080FD2F0 _080303D4: movs r0, #0x80 ands r0, r2 lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 beq _08030426 adds r0, r4, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #2 beq _08030412 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0xff strb r0, [r4, #0x14] adds r2, r4, #0 adds r2, #0x7a movs r1, #0 movs r0, #0x96 lsls r0, r0, #2 strh r0, [r2] adds r0, r4, #0 adds r0, #0x82 strb r1, [r0] adds r0, r4, #0 bl sub_080306C4 adds r0, r4, #0 bl sub_080309E8 b _0803042C _08030412: movs r0, #6 strb r0, [r4, #0xc] movs r0, #0x1a strb r0, [r4, #0xe] movs r0, #0xc0 lsls r0, r0, #2 strh r0, [r4, #0x24] movs r0, #0x10 strb r0, [r4, #0x15] b _0803042C _08030426: adds r0, r4, #0 adds r0, #0x62 strb r1, [r0] _0803042C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08030430 sub_08030430: @ 0x08030430 push {r4, lr} adds r4, r0, #0 bl sub_08030A04 movs r0, #0x24 ldrsh r1, [r4, r0] movs r0, #0x80 lsls r0, r0, #1 cmp r1, r0 ble _0803044A adds r0, r4, #0 bl sub_08004274 _0803044A: adds r0, r4, #0 bl sub_080309A8 adds r1, r4, #0 adds r1, #0x7a ldrh r0, [r1] cmp r0, #0 beq _0803045E subs r0, #1 strh r0, [r1] _0803045E: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08030470 adds r0, r4, #0 bl sub_080306C4 _08030470: pop {r4, pc} .align 2, 0 thumb_func_start sub_08030474 sub_08030474: @ 0x08030474 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803049C movs r0, #3 strb r0, [r4, #0xc] movs r0, #1 strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x7a movs r0, #0x3c strh r0, [r1] adds r0, r4, #0 bl sub_080309E8 b _080304BA _0803049C: adds r0, r4, #0 bl sub_080305BC cmp r0, #0 beq _080304AE adds r0, r4, #0 bl sub_08030590 b _080304BA _080304AE: adds r0, r4, #0 bl sub_080307D4 adds r0, r4, #0 bl sub_080309A8 _080304BA: pop {r4, pc} thumb_func_start sub_080304BC sub_080304BC: @ 0x080304BC push {r4, lr} adds r4, r0, #0 bl sub_080309A8 adds r3, r4, #0 adds r3, #0x5a ldrb r1, [r3] movs r0, #0x80 ands r0, r1 lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #0 beq _080304DE adds r0, r4, #0 bl sub_08030580 b _080304F0 _080304DE: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bne _080304F0 strb r2, [r3] movs r0, #0x95 lsls r0, r0, #1 bl sub_08004488 _080304F0: pop {r4, pc} .align 2, 0 thumb_func_start sub_080304F4 sub_080304F4: @ 0x080304F4 push {r4, lr} adds r4, r0, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_080309A8 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08030520 movs r0, #7 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #5 bl sub_080309C8 adds r0, r4, #0 bl sub_080307EC _08030520: pop {r4, pc} .align 2, 0 thumb_func_start sub_08030524 sub_08030524: @ 0x08030524 push {lr} adds r2, r0, #0 adds r3, r2, #0 adds r3, #0x5a ldrb r1, [r3] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0803053E adds r0, r2, #0 bl sub_080309A8 b _08030552 _0803053E: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bne _08030552 movs r0, #0 strb r0, [r3] movs r0, #0x95 lsls r0, r0, #1 bl sub_08004488 _08030552: pop {pc} thumb_func_start sub_08030554 sub_08030554: @ 0x08030554 push {r4, lr} adds r4, r0, #0 bl sub_080309A8 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803057C movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_080309C8 adds r0, r4, #0 bl sub_080306C4 _0803057C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08030580 sub_08030580: @ 0x08030580 push {lr} movs r1, #1 strb r1, [r0, #0xc] movs r1, #4 bl sub_080309C8 pop {pc} .align 2, 0 thumb_func_start sub_08030590 sub_08030590: @ 0x08030590 push {r4, lr} adds r4, r0, #0 movs r0, #5 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x3b movs r0, #1 strb r0, [r1] adds r1, #4 strb r0, [r1] ldr r0, _080305B8 @ =gUnk_080FD2F8 str r0, [r4, #0x48] adds r0, r4, #0 movs r1, #5 bl sub_080309C8 adds r0, r4, #0 bl sub_080307EC pop {r4, pc} .align 2, 0 _080305B8: .4byte gUnk_080FD2F8 thumb_func_start sub_080305BC sub_080305BC: @ 0x080305BC push {r4, lr} adds r4, r0, #0 ldrh r1, [r4, #0x2e] movs r2, #0xf adds r0, r2, #0 ands r0, r1 movs r3, #0 cmp r0, #8 bne _080305D0 movs r3, #1 _080305D0: ldrh r0, [r4, #0x32] ands r2, r0 cmp r2, #8 bne _080305DC movs r0, #2 orrs r3, r0 _080305DC: cmp r3, #3 bne _080305E4 movs r0, #1 b _0803064C _080305E4: ldrb r1, [r4, #0x15] movs r0, #8 ands r0, r1 cmp r0, #0 beq _0803061E movs r0, #1 ands r0, r3 cmp r0, #0 bne _08030608 adds r0, r4, #0 bl sub_080AEF88 cmp r0, #0 bne _0803064A ldrb r0, [r4, #0x15] movs r1, #0x10 eors r0, r1 b _08030648 _08030608: cmp r2, #8 ble _08030610 movs r0, #0x10 b _08030612 _08030610: movs r0, #0 _08030612: strb r0, [r4, #0x15] ldrb r1, [r4, #0x15] movs r0, #8 ands r0, r1 cmp r0, #0 bne _0803064A _0803061E: movs r0, #2 ands r3, r0 cmp r3, #0 bne _08030638 adds r0, r4, #0 bl sub_080AEF88 cmp r0, #0 bne _0803064A ldrb r0, [r4, #0x15] movs r1, #0x10 eors r0, r1 b _08030648 _08030638: ldrh r1, [r4, #0x2e] movs r0, #0xf ands r0, r1 cmp r0, #8 ble _08030646 movs r0, #8 b _08030648 _08030646: movs r0, #0x18 _08030648: strb r0, [r4, #0x15] _0803064A: movs r0, #0 _0803064C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08030650 sub_08030650: @ 0x08030650 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 bne _08030668 adds r0, r4, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x80 bne _080306B6 _08030664: movs r0, #1 b _080306B8 _08030668: adds r0, r4, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #2 beq _08030698 adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _080306B6 ldr r0, _08030694 @ =gUnk_020000B0 ldr r0, [r0] movs r1, #0x2e ldrsh r0, [r0, r1] movs r2, #0x2e ldrsh r1, [r4, r2] subs r0, r0, r1 adds r0, #0x10 cmp r0, #0x20 bhi _080306B6 b _08030664 .align 2, 0 _08030694: .4byte gUnk_020000B0 _08030698: adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _080306B6 ldr r0, _080306BC @ =gUnk_020000B0 ldr r0, [r0] movs r2, #0x2e ldrsh r1, [r0, r2] ldr r0, _080306C0 @ =gUnk_03000BF0 ldrh r0, [r0, #6] adds r0, #0xa8 cmp r1, r0 blt _08030664 _080306B6: movs r0, #0 _080306B8: pop {r4, pc} .align 2, 0 _080306BC: .4byte gUnk_020000B0 _080306C0: .4byte gUnk_03000BF0 thumb_func_start sub_080306C4 sub_080306C4: @ 0x080306C4 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _080307C0 adds r0, r4, #0 adds r0, #0x7a ldrh r0, [r0] cmp r0, #0 beq _080307C0 movs r0, #0x18 strb r0, [r4, #0xe] ldr r0, _080307B0 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl sub_0800132C adds r5, r0, #0 cmp r5, #0xff beq _080307CC movs r0, #0 mov r8, r0 bl sub_08000E50 movs r1, #7 ands r1, r0 cmp r1, #0 bne _0803070E ldrb r0, [r4, #0x14] adds r6, r4, #0 adds r6, #0x82 cmp r0, #0xff bne _0803072A _0803070E: adds r2, r4, #0 adds r2, #0x82 ldrb r1, [r2] movs r0, #3 ands r0, r1 adds r6, r2, #0 cmp r0, #3 beq _0803072A adds r0, r5, #4 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] movs r1, #1 mov r8, r1 _0803072A: mov r7, r8 cmp r7, #0 bne _08030746 bl sub_08000E50 movs r1, #2 ands r1, r0 subs r1, #1 lsls r1, r1, #3 adds r1, #4 adds r1, r5, r1 movs r0, #0x18 ands r1, r0 strb r1, [r4, #0x15] _08030746: adds r0, r4, #0 adds r0, #0x38 ldrb r0, [r0] ldr r1, _080307B4 @ =gUnk_02027EB4 mov ip, r1 cmp r0, #2 bne _08030758 ldr r7, _080307B8 @ =gUnk_0200D654 mov ip, r7 _08030758: movs r0, #0x2e ldrsh r1, [r4, r0] ldr r3, _080307BC @ =gUnk_080CE164 ldrb r0, [r4, #0x15] lsrs r0, r0, #2 adds r2, r0, r3 ldrb r2, [r2] lsls r2, r2, #0x18 asrs r2, r2, #0x18 adds r1, r1, r2 movs r7, #0x32 ldrsh r2, [r4, r7] adds r0, #1 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r2, r2, r0 mov r0, ip movs r3, #0 bl sub_080AE4CC cmp r0, #0 beq _0803079E movs r0, #4 adds r1, r5, #0 ands r1, r0 eors r1, r0 lsls r1, r1, #1 movs r0, #0x10 ands r5, r0 orrs r1, r5 strb r1, [r4, #0x15] movs r0, #0 mov r8, r0 _0803079E: adds r0, r4, #0 bl sub_080307D4 ldrb r0, [r6] lsls r0, r0, #1 mov r1, r8 orrs r0, r1 strb r0, [r6] b _080307CC .align 2, 0 _080307B0: .4byte gUnk_020000B0 _080307B4: .4byte gUnk_02027EB4 _080307B8: .4byte gUnk_0200D654 _080307BC: .4byte gUnk_080CE164 _080307C0: movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xe] movs r0, #0xa0 strh r0, [r4, #0x24] _080307CC: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080307D4 sub_080307D4: @ 0x080307D4 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0x15] lsrs r1, r0, #3 ldrb r0, [r2, #0x14] cmp r1, r0 beq _080307EA strb r1, [r2, #0x14] adds r0, r2, #0 bl sub_080309C8 _080307EA: pop {pc} thumb_func_start sub_080307EC sub_080307EC: @ 0x080307EC push {r4, r5, r6, lr} adds r5, r0, #0 movs r0, #0x2e ldrsh r4, [r5, r0] ldr r1, _0803082C @ =gUnk_03000BF0 ldrh r0, [r1, #6] subs r4, r4, r0 asrs r4, r4, #4 movs r2, #0x3f ands r4, r2 movs r3, #0x32 ldrsh r0, [r5, r3] ldrh r1, [r1, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r4, r0 adds r6, r5, #0 adds r6, #0x38 ldrb r1, [r6] adds r0, r4, #0 bl sub_080001DA adds r5, #0x78 strh r0, [r5] ldr r0, _08030830 @ =0x00004022 ldrb r2, [r6] adds r1, r4, #0 bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 _0803082C: .4byte gUnk_03000BF0 _08030830: .4byte 0x00004022 thumb_func_start sub_08030834 sub_08030834: @ 0x08030834 push {r4, r5, r6, lr} adds r1, r0, #0 adds r1, #0x78 ldrh r5, [r1] movs r2, #0x2e ldrsh r1, [r0, r2] ldr r3, _08030868 @ =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, [r0, r6] ldrh r3, [r3, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r4 lsls r2, r2, #6 orrs r1, r2 adds r0, #0x38 ldrb r2, [r0] adds r0, r5, #0 bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 _08030868: .4byte gUnk_03000BF0 thumb_func_start sub_0803086C sub_0803086C: @ 0x0803086C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r5, r0, #0 ldr r0, [r5, #0x7c] cmp r0, #0 bne _08030880 b _0803099C _08030880: ldr r0, _08030928 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _0803088E b _0803098A _0803088E: ldr r0, _0803092C @ =gUnk_03000BF0 mov sb, r0 ldrh r0, [r5, #0x2e] mov r2, sb ldrh r1, [r2, #6] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 ldrh r0, [r5, #0x32] ldrh r1, [r2, #8] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 movs r3, #0x2e ldrsh r0, [r5, r3] ldrh r1, [r2, #6] subs r0, r0, r1 asrs r4, r0, #4 movs r2, #0x3f ands r4, r2 movs r1, #0x32 ldrsh r0, [r5, r1] mov r3, sb ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r4, r0 movs r0, #0x38 adds r0, r0, r5 mov r8, r0 ldrb r1, [r0] adds r0, r4, #0 bl sub_080002B0 ldr r1, _08030930 @ =0x00004049 mov sl, r1 cmp r0, sl bne _08030950 adds r0, r7, #0 adds r1, r6, #0 movs r2, #2 movs r3, #0xc bl sub_0800293E cmp r0, #0 beq _0803093C subs r1, r6, #4 adds r0, r7, #0 movs r2, #2 movs r3, #4 bl sub_0800293E cmp r0, #0 beq _0803098A ldr r2, _08030934 @ =gUnk_03001160 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] ldr r0, [r5, #0x7c] bl sub_08080840 ldr r0, _08030938 @ =gUnk_030010A0 adds r1, r5, #0 adds r1, #0x80 ldrb r1, [r1] adds r0, #0xae strh r1, [r0] movs r0, #1 b _0803099E .align 2, 0 _08030928: .4byte gUnk_03003F80 _0803092C: .4byte gUnk_03000BF0 _08030930: .4byte 0x00004049 _08030934: .4byte gUnk_03001160 _08030938: .4byte gUnk_030010A0 _0803093C: ldr r0, _0803094C @ =0x00004022 mov r3, r8 ldrb r2, [r3] adds r1, r4, #0 bl sub_0800015E b _0803098A .align 2, 0 _0803094C: .4byte 0x00004022 _08030950: adds r1, r6, #6 adds r0, r7, #0 movs r2, #2 movs r3, #5 bl sub_0800293E cmp r0, #0 beq _0803098A movs r4, #0x2e ldrsh r1, [r5, r4] mov r2, sb ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r4, #0x32 ldrsh r0, [r5, r4] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 mov r0, r8 ldrb r2, [r0] mov r0, sl bl sub_0800015E _0803098A: 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] _0803099C: movs r0, #0 _0803099E: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} thumb_func_start sub_080309A8 sub_080309A8: @ 0x080309A8 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] cmp r0, #0 beq _080309C4 ldrb r0, [r4, #0x1e] cmp r0, #0x25 bne _080309C4 movs r0, #0x19 strb r0, [r4, #0x1e] _080309C4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080309C8 sub_080309C8: @ 0x080309C8 push {r4, lr} adds r4, r0, #0 bl sub_08004260 adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] cmp r0, #0 beq _080309E4 ldrb r0, [r4, #0x1e] cmp r0, #0x25 bne _080309E4 movs r0, #0x19 strb r0, [r4, #0x1e] _080309E4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080309E8 sub_080309E8: @ 0x080309E8 push {lr} adds r1, r0, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #4 bhi _080309FA movs r0, #0x90 lsls r0, r0, #1 b _08030A00 _080309FA: cmp r0, #8 bhi _08030A02 movs r0, #0xe0 _08030A00: strh r0, [r1, #0x24] _08030A02: pop {pc} thumb_func_start sub_08030A04 sub_08030A04: @ 0x08030A04 push {r4, lr} adds r4, r0, #0 bl sub_080AEF88 adds r4, #0x5a ldrb r1, [r4] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08030A24 movs r0, #0xfe ands r0, r1 strb r0, [r4] ldr r0, _08030A28 @ =0x00000101 bl sub_08004488 _08030A24: pop {r4, pc} .align 2, 0 _08030A28: .4byte 0x00000101 thumb_func_start sub_08030A2C sub_08030A2C: @ 0x08030A2C push {lr} ldr r1, _08030A38 @ =gUnk_080CE288 bl sub_0800129E pop {pc} .align 2, 0 _08030A38: .4byte gUnk_080CE288 thumb_func_start sub_08030A3C sub_08030A3C: @ 0x08030A3C push {lr} ldr r2, _08030A50 @ =gUnk_080CE2A0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08030A50: .4byte gUnk_080CE2A0 thumb_func_start sub_08030A54 sub_08030A54: @ 0x08030A54 push {r4, r5, r6, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r6, [r0] cmp r6, #0x95 beq _08030A68 adds r5, r4, #0 adds r5, #0x45 cmp r6, #0x8e bne _08030B0E _08030A68: ldr r2, [r4, #0x4c] ldrb r0, [r2, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 movs r1, #0x10 eors r0, r1 asrs r0, r0, #3 adds r5, r4, #0 adds r5, #0x45 ldrb r1, [r4, #0x14] cmp r0, r1 bne _08030B0E movs r3, #1 ands r3, r0 cmp r3, #0 beq _08030AC0 movs r3, #0x32 ldrsh r0, [r2, r3] movs r3, #0x36 ldrsh r1, [r2, r3] adds r0, r0, r1 movs r2, #0x32 ldrsh r1, [r4, r2] movs r3, #0x36 ldrsh r2, [r4, r3] adds r1, r1, r2 subs r0, r0, r1 adds r0, #0x14 cmp r0, #0x10 bhi _08030B0E cmp r6, #0x8e bne _08030AAE movs r0, #0 b _08030AB2 _08030AAE: ldrb r0, [r5] subs r0, #1 _08030AB2: strb r0, [r5] adds r1, r4, #0 adds r1, #0x3d movs r0, #0x10 strb r0, [r1] movs r0, #0xfe b _08030AE0 _08030AC0: movs r1, #0x2e ldrsh r0, [r2, r1] movs r2, #0x2e ldrsh r1, [r4, r2] subs r0, r0, r1 adds r0, #8 cmp r0, #0x10 bhi _08030B0E ldrb r0, [r4, #0xc] cmp r0, #1 bne _08030AEC adds r0, r4, #0 bl sub_08031320 movs r0, #0x86 lsls r0, r0, #1 _08030AE0: bl sub_08004488 adds r0, r4, #0 bl sub_08031344 b _08030B0E _08030AEC: cmp r6, #0x8e bne _08030AF4 strb r3, [r5] b _08030AFA _08030AF4: ldrb r0, [r5] subs r0, #1 strb r0, [r5] _08030AFA: adds r1, r4, #0 adds r1, #0x3d movs r0, #0xf strb r0, [r1] movs r0, #0xfe bl sub_08004488 adds r0, r4, #0 bl sub_08031344 _08030B0E: ldrb r0, [r5] cmp r0, #0 bne _08030B24 ldrb r0, [r4, #0x10] movs r1, #0x7f ands r1, r0 strb r1, [r4, #0x10] adds r1, r4, #0 adds r1, #0x3d movs r0, #0x78 strb r0, [r1] _08030B24: ldr r1, _08030B30 @ =gUnk_080CE288 adds r0, r4, #0 bl sub_0804AA30 pop {r4, r5, r6, pc} .align 2, 0 _08030B30: .4byte gUnk_080CE288 thumb_func_start sub_08030B34 sub_08030B34: @ 0x08030B34 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x7e ldrb r0, [r1] cmp r0, #0 beq _08030B52 subs r0, #1 strb r0, [r1] movs r1, #0xe0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 b _08030B70 _08030B52: adds r0, r4, #0 adds r0, #0x3a ldrb r1, [r0] movs r0, #2 ands r0, r1 cmp r0, #0 bne _08030B6A adds r0, r4, #0 movs r1, #0x51 movs r2, #0 bl sub_080A29AC _08030B6A: adds r0, r4, #0 bl sub_0804A7D4 _08030B70: pop {r4, pc} .align 2, 0 thumb_func_start nullsub_18 nullsub_18: @ 0x08030B74 bx lr .align 2, 0 thumb_func_start sub_08030B78 sub_08030B78: @ 0x08030B78 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r0, #1 strb r0, [r4, #0xc] movs r0, #2 strb r0, [r4, #0x14] ldrh r2, [r4, #0x2e] movs r1, #0x10 rsbs r1, r1, #0 adds r0, r1, #0 ands r0, r2 strh r0, [r4, #0x2e] ldrh r0, [r4, #0x32] ands r1, r0 adds r1, #0xc strh r1, [r4, #0x32] adds r2, r4, #0 adds r2, #0x6d ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] ldrh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x74 strh r1, [r0] ldrh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x76 strh r0, [r1] adds r1, #8 movs r0, #0x3c strb r0, [r1] adds r0, r4, #0 bl sub_08030F00 adds r0, r4, #0 adds r0, #0x7c ldrh r0, [r0] cmp r0, #0 beq _08030BE0 ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #0xa bl sub_08004260 b _08030BE8 _08030BE0: adds r0, r4, #0 movs r1, #0xe bl sub_08004260 _08030BE8: pop {r4, pc} .align 2, 0 thumb_func_start sub_08030BEC sub_08030BEC: @ 0x08030BEC push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x7c ldrh r0, [r1] cmp r0, #0 beq _08030C08 bl sub_0807CBE4 cmp r0, #0 beq _08030C08 adds r0, r4, #0 bl sub_08031320 _08030C08: pop {r4, pc} .align 2, 0 thumb_func_start sub_08030C0C sub_08030C0C: @ 0x08030C0C push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08030C1C subs r0, #1 strb r0, [r4, #0xe] b _08030C68 _08030C1C: adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _08030C68 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, [r4, #0x48] movs r1, #0 ldrsb r1, [r2, r1] adds r0, r0, r1 movs r3, #0x32 ldrsh r1, [r4, r3] ldrb r2, [r2, #1] lsls r2, r2, #0x18 asrs r2, r2, #0x18 adds r1, r1, r2 ldr r2, _08030C6C @ =gUnk_020000B0 ldr r3, [r2] movs r5, #0x2e ldrsh r2, [r3, r5] movs r5, #0x32 ldrsh r3, [r3, r5] bl sub_080045D4 adds r0, #4 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #0xa bl sub_08004260 _08030C68: pop {r4, r5, pc} .align 2, 0 _08030C6C: .4byte gUnk_020000B0 thumb_func_start sub_08030C70 sub_08030C70: @ 0x08030C70 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08030C98 ldr r2, _08030C94 @ =gUnk_080CE2BC subs r0, #1 strb r0, [r4, #0xe] movs r1, #0xff ands r0, r1 movs r1, #3 ands r0, r1 adds r0, r0, r2 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x62 strb r1, [r0] b _08030CCC .align 2, 0 _08030C94: .4byte gUnk_080CE2BC _08030C98: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08030CCC ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r1, r0 strb r1, [r4, #0x10] movs r0, #2 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_08030E58 adds r0, r4, #0 movs r1, #2 bl sub_08004260 adds r0, r4, #0 bl sub_08030FB4 _08030CCC: pop {r4, pc} .align 2, 0 thumb_func_start sub_08030CD0 sub_08030CD0: @ 0x08030CD0 push {r4, r5, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #7 ands r0, r1 cmp r0, #1 beq _08030D0C cmp r0, #2 beq _08030D1A movs r5, #0x80 adds r0, r5, #0 ands r0, r1 cmp r0, #0 beq _08030D66 ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 adds r0, #0x79 ldrb r1, [r0] adds r0, r5, #0 ands r0, r1 cmp r0, #0 beq _08030D66 b _08030D5A _08030D0C: adds r0, r4, #0 bl sub_08031024 adds r0, r4, #0 bl sub_08030E3C b _08030D66 _08030D1A: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08030D34 adds r0, r4, #0 adds r0, #0x7f ldrb r0, [r0] strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_08004260 _08030D34: adds r0, r4, #0 adds r0, #0x7a ldrb r0, [r0] cmp r0, #0 beq _08030D44 adds r0, r4, #0 bl sub_08031250 _08030D44: movs r1, #0xe0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08030D66 adds r0, r4, #0 bl sub_08030E70 b _08030D66 _08030D5A: movs r0, #0 movs r1, #5 strb r1, [r4, #0xc] adds r1, r4, #0 adds r1, #0x7a strb r0, [r1] _08030D66: pop {r4, r5, pc} thumb_func_start sub_08030D68 sub_08030D68: @ 0x08030D68 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #7 ands r0, r1 cmp r0, #1 beq _08030DA0 cmp r0, #2 beq _08030DC4 movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08030E1C ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _08030DFC b _08030DF4 _08030DA0: ldrb r0, [r4, #0x14] adds r1, r0, #0 cmp r1, #2 beq _08030DBC cmp r1, #2 bls _08030DB0 subs r0, #1 b _08030DB2 _08030DB0: adds r0, #1 _08030DB2: movs r1, #3 ands r0, r1 adds r1, r4, #0 adds r1, #0x7f strb r0, [r1] _08030DBC: adds r0, r4, #0 bl sub_08030E3C b _08030E1C _08030DC4: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08030DDE adds r0, r4, #0 adds r0, #0x7f ldrb r0, [r0] strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_08004260 _08030DDE: movs r1, #0xe0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08030E1C adds r0, r4, #0 bl sub_08030E70 b _08030E1C _08030DF4: adds r0, r4, #0 bl sub_08030E58 b _08030E1C _08030DFC: ldrb r0, [r4, #0x14] cmp r0, #2 bne _08030E1C movs r0, #6 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #0xe bl sub_08004260 adds r0, r4, #0 bl sub_08030F00 _08030E1C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08030E20 sub_08030E20: @ 0x08030E20 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08030E3A movs r0, #2 strb r0, [r4, #0xc] _08030E3A: pop {r4, pc} thumb_func_start sub_08030E3C sub_08030E3C: @ 0x08030E3C push {lr} adds r2, r0, #0 adds r2, #0x5a movs r1, #0 strb r1, [r2] movs r1, #0x8c lsls r1, r1, #9 str r1, [r0, #0x20] ldr r0, _08030E54 @ =0x00000157 bl sub_08004488 pop {pc} .align 2, 0 _08030E54: .4byte 0x00000157 thumb_func_start sub_08030E58 sub_08030E58: @ 0x08030E58 adds r2, r0, #0 movs r0, #0 movs r1, #4 strb r1, [r2, #0xc] adds r1, r2, #0 adds r1, #0x7a strb r0, [r1] subs r1, #1 strb r0, [r1] subs r1, #1 strb r0, [r1] bx lr thumb_func_start sub_08030E70 sub_08030E70: @ 0x08030E70 push {lr} bl sub_08030E80 movs r0, #0xac lsls r0, r0, #1 bl sub_08004488 pop {pc} thumb_func_start sub_08030E80 sub_08030E80: @ 0x08030E80 push {r4, r5, r6, lr} adds r6, r0, #0 ldrb r0, [r6, #0x14] lsls r5, r0, #2 movs r0, #0xf movs r1, #2 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08030EC0 adds r0, r6, #0 adds r1, r4, #0 bl sub_0806FA24 ldr r1, _08030EFC @ =gUnk_080CE2F4 adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r2, [r4, #0x2e] adds r0, r0, r2 strh r0, [r4, #0x2e] adds r0, r5, #1 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r4, #0x32] adds r0, r0, r1 strh r0, [r4, #0x32] _08030EC0: movs r0, #0xf movs r1, #2 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08030EFA adds r0, r6, #0 adds r1, r4, #0 bl sub_0806FA24 ldr r1, _08030EFC @ =gUnk_080CE2F4 adds r0, r5, #2 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r2, [r4, #0x2e] adds r0, r0, r2 strh r0, [r4, #0x2e] adds r0, r5, #3 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r4, #0x32] adds r0, r0, r1 strh r0, [r4, #0x32] _08030EFA: pop {r4, r5, r6, pc} .align 2, 0 _08030EFC: .4byte gUnk_080CE2F4 thumb_func_start sub_08030F00 sub_08030F00: @ 0x08030F00 push {r4, r5, r6, lr} mov r6, sl mov r5, sb mov r4, r8 push {r4, r5, r6} adds r5, r0, #0 movs r0, #0x2e ldrsh r4, [r5, r0] ldr r1, _08030FAC @ =gUnk_03000BF0 ldrh r0, [r1, #6] adds r0, #8 subs r4, r4, r0 asrs r4, r4, #4 movs r2, #0x3f ands r4, r2 movs r3, #0x32 ldrsh r0, [r5, r3] ldrh r1, [r1, #8] adds r1, #0x14 subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r4, r0 adds r6, r5, #0 adds r6, #0x38 ldrb r1, [r6] adds r0, r4, #0 bl sub_080001DA adds r1, r5, #0 adds r1, #0x80 strh r0, [r1] adds r0, r4, #1 mov sl, r0 ldrb r1, [r6] bl sub_080001DA adds r1, r5, #0 adds r1, #0x82 strh r0, [r1] movs r3, #0x40 adds r3, r3, r4 mov sb, r3 ldrb r1, [r6] mov r0, sb bl sub_080001DA adds r1, r5, #0 adds r1, #0x84 strh r0, [r1] movs r0, #0x41 adds r0, r0, r4 mov r8, r0 ldrb r1, [r6] bl sub_080001DA adds r1, r5, #0 adds r1, #0x86 strh r0, [r1] ldr r5, _08030FB0 @ =0x00004022 ldrb r2, [r6] adds r0, r5, #0 adds r1, r4, #0 bl sub_0800015E ldrb r2, [r6] adds r0, r5, #0 mov r1, sl bl sub_0800015E ldrb r2, [r6] adds r0, r5, #0 mov r1, sb bl sub_0800015E ldrb r2, [r6] adds r0, r5, #0 mov r1, r8 bl sub_0800015E pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, pc} .align 2, 0 _08030FAC: .4byte gUnk_03000BF0 _08030FB0: .4byte 0x00004022 thumb_func_start sub_08030FB4 sub_08030FB4: @ 0x08030FB4 push {r4, r5, r6, lr} adds r6, r0, #0 movs r0, #0x2e ldrsh r4, [r6, r0] ldr r1, _08031020 @ =gUnk_03000BF0 ldrh r0, [r1, #6] adds r0, #8 subs r4, r4, r0 asrs r4, r4, #4 movs r2, #0x3f ands r4, r2 movs r3, #0x32 ldrsh r0, [r6, r3] ldrh r1, [r1, #8] adds r1, #0x14 subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r4, r0 adds r0, r6, #0 adds r0, #0x80 ldrh r0, [r0] adds r5, r6, #0 adds r5, #0x38 ldrb r2, [r5] adds r1, r4, #0 bl sub_0800015E adds r0, r6, #0 adds r0, #0x82 ldrh r0, [r0] adds r1, r4, #1 ldrb r2, [r5] bl sub_0800015E adds r0, r6, #0 adds r0, #0x84 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x40 ldrb r2, [r5] bl sub_0800015E adds r0, r6, #0 adds r0, #0x86 ldrh r0, [r0] adds r4, #0x41 ldrb r2, [r5] adds r1, r4, #0 bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 _08031020: .4byte gUnk_03000BF0 thumb_func_start sub_08031024 sub_08031024: @ 0x08031024 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r7, r0, #0 movs r1, #1 bl sub_08049FDC rsbs r1, r0, #0 orrs r1, r0 lsrs r1, r1, #0x1f adds r2, r7, #0 adds r2, #0x79 ldrb r0, [r2] cmp r0, #0 bne _08031084 cmp r1, #0 beq _08031074 movs r1, #0x2e ldrsh r0, [r7, r1] ldr r2, [r7, #0x48] movs r1, #0 ldrsb r1, [r2, r1] adds r0, r0, r1 movs r3, #0x32 ldrsh r1, [r7, r3] ldrb r2, [r2, #1] lsls r2, r2, #0x18 asrs r2, r2, #0x18 adds r1, r1, r2 ldr r2, _08031070 @ =gUnk_020000B0 ldr r3, [r2] movs r4, #0x2e ldrsh r2, [r3, r4] movs r4, #0x32 ldrsh r3, [r3, r4] b _080311E8 .align 2, 0 _08031070: .4byte gUnk_020000B0 _08031074: movs r0, #1 strb r0, [r2] adds r0, r7, #0 adds r0, #0x78 strb r1, [r0] movs r1, #0x2e ldrsh r0, [r7, r1] b _080311D8 _08031084: cmp r1, #0 beq _0803108E movs r0, #0 strb r0, [r2] b _080311EE _0803108E: adds r0, r7, #0 adds r0, #0x78 ldrb r2, [r0] adds r1, r2, #0 mov sl, r0 cmp r1, #0 bne _0803109E b _080311D4 _0803109E: cmp r1, #1 bne _080310E2 movs r0, #0x80 orrs r0, r2 mov r3, sl strb r0, [r3] movs r4, #0x2e ldrsh r0, [r7, r4] movs r2, #0x32 ldrsh r1, [r7, r2] adds r2, r7, #0 adds r2, #0x74 ldrh r2, [r2] adds r3, r7, #0 adds r3, #0x76 ldrh r3, [r3] bl sub_080045D4 strb r0, [r7, #0x15] adds r0, #4 movs r2, #0x18 ands r0, r2 adds r1, r7, #0 adds r1, #0x7b strb r0, [r1] ldrb r3, [r7, #0x15] cmp r0, r3 bhs _080310DC adds r0, #8 ands r0, r2 b _080310F0 _080310DC: subs r0, #8 ands r0, r2 b _080310F0 _080310E2: movs r0, #2 ands r0, r2 cmp r0, #0 beq _080310F2 ldrb r0, [r7, #0x15] movs r1, #0x10 eors r0, r1 _080310F0: strb r0, [r7, #0x15] _080310F2: mov r4, sl ldrb r2, [r4] movs r0, #0x70 ands r0, r2 lsls r0, r0, #0x18 cmp r0, #0 beq _08031120 lsrs r0, r0, #0x19 movs r1, #0x8f ands r1, r2 orrs r0, r1 strb r0, [r4] movs r1, #0x10 ands r0, r1 cmp r0, #0 beq _080311EE adds r0, r7, #0 adds r0, #0x7b ldrb r0, [r0] strb r0, [r7, #0x15] movs r0, #0 strb r0, [r4] b _080311EE _08031120: movs r0, #0x7b adds r0, r0, r7 mov sb, r0 ldrb r4, [r0] lsrs r4, r4, #1 movs r1, #0x2e ldrsh r0, [r7, r1] ldr r5, _080311B4 @ =gUnk_080CE2C0 adds r1, r4, r5 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r0, r0, r1 movs r2, #0x32 ldrsh r1, [r7, r2] adds r2, r4, #1 adds r2, r2, r5 ldrb r2, [r2] lsls r2, r2, #0x18 asrs r2, r2, #0x18 adds r1, r1, r2 movs r3, #0x38 adds r3, r3, r7 mov r8, r3 ldrb r2, [r3] bl sub_080002A4 adds r6, r0, #0 movs r1, #0x2e ldrsh r0, [r7, r1] adds r1, r4, #2 adds r1, r1, r5 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r0, r0, r1 movs r2, #0x32 ldrsh r1, [r7, r2] adds r4, #3 adds r4, r4, r5 movs r2, #0 ldrsb r2, [r4, r2] adds r1, r1, r2 mov r3, r8 ldrb r2, [r3] bl sub_080002A4 adds r1, r0, #0 ldr r2, _080311B8 @ =gUnk_080B3E80 adds r6, r6, r2 ldrb r0, [r6] mov r3, sb cmp r0, #0 bne _08031194 adds r0, r1, r2 ldrb r0, [r0] cmp r0, #0 beq _080311C8 _08031194: movs r0, #1 cmp r0, #0 beq _080311C8 ldrb r0, [r7, #0x15] lsrs r0, r0, #3 ldrb r4, [r7, #0x14] cmp r0, r4 bne _080311BC mov r0, sl ldrb r1, [r0] movs r0, #0x20 orrs r0, r1 mov r1, sl strb r0, [r1] b _080311EE .align 2, 0 _080311B4: .4byte gUnk_080CE2C0 _080311B8: .4byte gUnk_080B3E80 _080311BC: mov r2, sl ldrb r1, [r2] movs r0, #0x40 orrs r0, r1 strb r0, [r2] b _080311EE _080311C8: ldrb r0, [r3] movs r1, #0 strb r0, [r7, #0x15] mov r3, sl strb r1, [r3] b _080311EE _080311D4: movs r4, #0x2e ldrsh r0, [r7, r4] _080311D8: movs r2, #0x32 ldrsh r1, [r7, r2] adds r2, r7, #0 adds r2, #0x74 ldrh r2, [r2] adds r3, r7, #0 adds r3, #0x76 ldrh r3, [r3] _080311E8: bl sub_080045D4 strb r0, [r7, #0x15] _080311EE: ldrb r0, [r7, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 asrs r0, r0, #3 ldrb r3, [r7, #0x14] cmp r0, r3 bne _0803120C adds r1, r7, #0 adds r1, #0x7a movs r0, #1 strb r0, [r1] ldrb r0, [r7, #0x14] adds r1, #5 b _08031232 _0803120C: adds r1, r7, #0 adds r1, #0x7a movs r0, #0 strb r0, [r1] ldrb r0, [r7, #0x15] ldrb r2, [r7, #0x14] lsls r1, r2, #3 subs r0, r0, r1 movs r1, #0x1f ands r0, r1 cmp r0, #0x10 bls _08031228 subs r0, r2, #1 b _0803122A _08031228: adds r0, r2, #1 _0803122A: movs r1, #3 ands r0, r1 adds r1, r7, #0 adds r1, #0x7f _08031232: strb r0, [r1] ldrb r0, [r7, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 movs r1, #0 strb r0, [r7, #0x15] strh r1, [r7, #0x2c] strh r1, [r7, #0x30] pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08031250 sub_08031250: @ 0x08031250 push {r4, r5, r6, lr} adds r6, r0, #0 ldrb r4, [r6, #0x14] lsls r4, r4, #2 movs r0, #0x2e ldrsh r2, [r6, r0] ldr r5, _0803130C @ =gUnk_080CE2C0 adds r0, r4, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r2, r2, r0 movs r1, #0x32 ldrsh r3, [r6, r1] adds r0, r4, #1 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r3, r3, r0 adds r0, r6, #0 movs r1, #9 bl sub_08008796 movs r0, #0x2e ldrsh r2, [r6, r0] adds r0, r4, #2 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r2, r2, r0 movs r1, #0x32 ldrsh r3, [r6, r1] adds r4, #3 adds r4, r4, r5 movs r0, #0 ldrsb r0, [r4, r0] adds r3, r3, r0 adds r0, r6, #0 movs r1, #9 bl sub_08008796 adds r2, r6, #0 adds r2, #0x79 ldrb r0, [r2] cmp r0, #0 beq _08031316 movs r3, #0 movs r1, #0x2e ldrsh r0, [r6, r1] adds r1, r6, #0 adds r1, #0x74 ldrh r1, [r1] subs r0, r0, r1 adds r0, #2 cmp r0, #4 bhi _080312C8 strh r1, [r6, #0x2e] movs r3, #0x80 _080312C8: movs r1, #0x32 ldrsh r0, [r6, r1] adds r1, r6, #0 adds r1, #0x76 ldrh r1, [r1] subs r0, r0, r1 adds r0, #2 cmp r0, #4 bhi _080312E2 strh r1, [r6, #0x32] ldrb r0, [r2] orrs r3, r0 strb r3, [r2] _080312E2: ldrb r1, [r2] movs r4, #0x80 adds r0, r4, #0 ands r0, r1 cmp r0, #0 bne _0803131C adds r0, r6, #0 bl sub_080AEF88 cmp r0, #0 bne _0803131C adds r2, r6, #0 adds r2, #0x78 ldrb r1, [r2] adds r0, r4, #0 ands r0, r1 cmp r0, #0 beq _08031310 movs r0, #0x82 strb r0, [r2] b _0803131C .align 2, 0 _0803130C: .4byte gUnk_080CE2C0 _08031310: movs r0, #1 strb r0, [r2] b _0803131C _08031316: adds r0, r6, #0 bl sub_080AEF88 _0803131C: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08031320 sub_08031320: @ 0x08031320 push {lr} movs r1, #2 strb r1, [r0, #0xc] ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] movs r1, #0x1e strb r1, [r0, #0xe] ldr r1, _08031340 @ =gUnk_080FD308 str r1, [r0, #0x48] movs r1, #0xa bl sub_08004260 pop {pc} .align 2, 0 _08031340: .4byte gUnk_080FD308 thumb_func_start sub_08031344 sub_08031344: @ 0x08031344 push {lr} adds r1, r0, #0 ldr r0, [r1, #0x4c] bl sub_08017A90 adds r3, r0, #0 cmp r3, #0 beq _0803136C ldrb r0, [r3, #0x14] lsls r0, r0, #1 ldr r1, _08031370 @ =gUnk_080CE304 adds r0, r0, r1 ldrb r1, [r0] adds r2, r3, #0 adds r2, #0x62 strb r1, [r2] ldrb r1, [r0, #1] adds r0, r3, #0 adds r0, #0x63 strb r1, [r0] _0803136C: pop {pc} .align 2, 0 _08031370: .4byte gUnk_080CE304 thumb_func_start sub_08031374 sub_08031374: @ 0x08031374 push {r4, lr} adds r4, r0, #0 ldr r1, _08031390 @ =gUnk_080CE448 bl sub_0800129E movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, pc} .align 2, 0 _08031390: .4byte gUnk_080CE448 thumb_func_start sub_08031394 sub_08031394: @ 0x08031394 push {lr} ldr r2, _080313A8 @ =gUnk_080CE460 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080313A8: .4byte gUnk_080CE460 thumb_func_start sub_080313AC sub_080313AC: @ 0x080313AC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #3 bne _080313C8 movs r0, #0x1e strb r0, [r4, #0xf] adds r1, r4, #0 adds r1, #0x78 movs r0, #0x3c strb r0, [r1] adds r0, r4, #0 bl sub_08031600 _080313C8: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _080313DA adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _080313DA: ldr r1, _080313E4 @ =gUnk_080CE448 adds r0, r4, #0 bl sub_0804AA30 pop {r4, pc} .align 2, 0 _080313E4: .4byte gUnk_080CE448 thumb_func_start sub_080313E8 sub_080313E8: @ 0x080313E8 push {r4, lr} adds r4, r0, #0 bl sub_0806F520 cmp r0, #0 beq _08031404 ldr r0, _08031408 @ =gUnk_080CE470 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _08031404: pop {r4, pc} .align 2, 0 _08031408: .4byte gUnk_080CE470 thumb_func_start sub_0803140C sub_0803140C: @ 0x0803140C movs r1, #1 strb r1, [r0, #0xd] movs r1, #0x3c strb r1, [r0, #0x1d] bx lr .align 2, 0 thumb_func_start sub_08031418 sub_08031418: @ 0x08031418 push {lr} bl sub_0806F4E8 pop {pc} thumb_func_start sub_08031420 sub_08031420: @ 0x08031420 push {r4, lr} adds r4, r0, #0 bl sub_0806F3E4 cmp r0, #0 beq _08031432 adds r0, r4, #0 bl sub_0804A7D4 _08031432: pop {r4, pc} thumb_func_start sub_08031434 sub_08031434: @ 0x08031434 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r0, #1 rsbs r0, r0, #0 adds r3, r0, #0 movs r0, #0xff strb r0, [r4, #0x14] movs r2, #1 strb r2, [r4, #0x1c] ldrh r0, [r4, #0x24] adds r1, r4, #0 adds r1, #0x7a strh r0, [r1] ldrb r0, [r4, #0xa] cmp r0, #0 bne _08031460 adds r0, r4, #0 bl sub_08031600 b _0803147A _08031460: strb r2, [r4, #0xc] movs r0, #0 strb r0, [r4, #0xd] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] ldr r0, _0803147C @ =0x0000FF80 strh r0, [r4, #0x36] ldrb r0, [r4, #0x1e] orrs r0, r3 strb r0, [r4, #0x1e] _0803147A: pop {r4, pc} .align 2, 0 _0803147C: .4byte 0x0000FF80 thumb_func_start sub_08031480 sub_08031480: @ 0x08031480 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #0 bne _080314CC ldrb r0, [r4, #0xe] cmp r0, #0 beq _08031496 subs r0, #1 strb r0, [r4, #0xe] b _080314FA _08031496: adds r0, r4, #0 bl sub_08031600 movs r0, #1 strb r0, [r4, #0xc] strb r0, [r4, #0xd] ldrb r0, [r4, #0x18] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x18] 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] ldr r0, _080314C8 @ =0x0000012D bl sub_080A3268 b _080314FA .align 2, 0 _080314C8: .4byte 0x0000012D _080314CC: movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _080314FA movs r0, #2 strb r0, [r4, #0xc] movs r0, #0xf strb r0, [r4, #0xf] ldrb r1, [r4, #0x18] subs r0, #0x13 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_08016A04 movs r0, #0x84 bl sub_08004488 _080314FA: pop {r4, pc} thumb_func_start sub_080314FC sub_080314FC: @ 0x080314FC push {r4, r5, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xf] cmp r0, #0 beq _08031510 subs r0, #1 strb r0, [r4, #0xf] b _080315BA _08031510: adds r5, r4, #0 adds r5, #0x78 ldrb r0, [r5] cmp r0, #0 beq _0803151E subs r0, #1 strb r0, [r5] _0803151E: adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 beq _08031578 ldrb r0, [r5] cmp r0, #0 bne _080315A2 adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _080315A2 ldr r0, _08031574 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 movs r2, #0xc bl sub_0804A044 adds r1, r0, #0 cmp r1, #0xff beq _080315A2 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] movs r0, #0xd0 lsls r0, r0, #1 strh r0, [r4, #0x24] adds r2, r4, #0 adds r2, #0x7a strh r0, [r2] strb r1, [r4, #0x15] lsls r0, r1, #0x18 lsrs r0, r0, #0x1b strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_08004260 b _080315BA .align 2, 0 _08031574: .4byte gUnk_020000B0 _08031578: bl sub_08000E50 movs r1, #1 ands r1, r0 cmp r1, #0 beq _080315A2 adds r0, r4, #0 bl sub_08049EE4 adds r0, #4 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] lsrs r1, r0, #3 ldrb r0, [r4, #0x14] cmp r1, r0 beq _080315A2 strb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 _080315A2: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080315B4 adds r0, r4, #0 bl sub_08031600 _080315B4: adds r0, r4, #0 bl sub_0803163C _080315BA: pop {r4, r5, pc} thumb_func_start sub_080315BC sub_080315BC: @ 0x080315BC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _080315D4 subs r0, #1 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #2 bl sub_08004276 b _080315FC _080315D4: adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 beq _080315EE adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0803163C cmp r0, #0 bne _080315FC _080315EE: adds r1, r4, #0 adds r1, #0x78 movs r0, #0x1e strb r0, [r1] adds r0, r4, #0 bl sub_08031600 _080315FC: pop {r4, pc} .align 2, 0 thumb_func_start sub_08031600 sub_08031600: @ 0x08031600 push {r4, lr} adds r4, r0, #0 movs r0, #2 strb r0, [r4, #0xc] bl sub_08000E50 movs r1, #0x30 ands r0, r1 adds r0, #0x3c strb r0, [r4, #0xe] movs r0, #0x80 strh r0, [r4, #0x24] adds r1, r4, #0 adds r1, #0x7a strh r0, [r1] bl sub_08000E50 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] lsrs r1, r0, #3 ldrb r0, [r4, #0x14] cmp r1, r0 beq _08031638 strb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 _08031638: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803163C sub_0803163C: @ 0x0803163C push {r4, lr} adds r4, r0, #0 bl sub_080002B8 cmp r0, #0x13 bne _08031652 adds r0, r4, #0 adds r0, #0x7a ldrh r0, [r0] lsrs r0, r0, #1 b _08031658 _08031652: adds r0, r4, #0 adds r0, #0x7a ldrh r0, [r0] _08031658: strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_080AEF88 pop {r4, pc} .align 2, 0 thumb_func_start sub_08031664 sub_08031664: @ 0x08031664 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _0803167C @ =gUnk_080CE530 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _0803167C: .4byte gUnk_080CE530 thumb_func_start sub_08031680 sub_08031680: @ 0x08031680 push {lr} ldr r2, _08031694 @ =gUnk_080CE548 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08031694: .4byte gUnk_080CE548 thumb_func_start nullsub_152 nullsub_152: @ 0x08031698 bx lr .align 2, 0 thumb_func_start sub_0803169C sub_0803169C: @ 0x0803169C push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0806F520 cmp r0, #0 bne _080316C4 movs r2, #1 strb r2, [r4, #0xc] strb r0, [r4, #0xd] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] movs r0, #0x40 strh r0, [r4, #0x24] strb r2, [r4, #0xf] b _080316D4 _080316C4: ldr r0, _080316D8 @ =gUnk_080CE554 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _080316D4: pop {r4, pc} .align 2, 0 _080316D8: .4byte gUnk_080CE554 thumb_func_start sub_080316DC sub_080316DC: @ 0x080316DC movs r1, #1 strb r1, [r0, #0xd] movs r1, #0x3c strb r1, [r0, #0x1d] bx lr .align 2, 0 thumb_func_start sub_080316E8 sub_080316E8: @ 0x080316E8 push {lr} bl sub_0806F4E8 pop {pc} thumb_func_start sub_080316F0 sub_080316F0: @ 0x080316F0 push {r4, lr} adds r4, r0, #0 bl sub_0806F3E4 cmp r0, #0 beq _08031702 adds r0, r4, #0 bl sub_0804A7D4 _08031702: pop {r4, pc} thumb_func_start sub_08031704 sub_08031704: @ 0x08031704 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 adds r0, r4, #0 bl sub_080317F8 pop {r4, pc} thumb_func_start sub_08031714 sub_08031714: @ 0x08031714 push {r4, lr} adds r4, r0, #0 bl sub_080317B4 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0803176E bl sub_08000E50 movs r1, #0xf ands r0, r1 adds r0, #0x10 strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 bne _08031750 ldrb r1, [r4, #0xf] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08031750 adds r0, r4, #0 bl sub_08049EE4 b _08031766 _08031750: ldrb r0, [r4, #0x15] adds r0, #0x18 strb r0, [r4, #0x15] bl sub_08000E50 movs r1, #0xe ands r0, r1 ldrb r1, [r4, #0x15] adds r0, r0, r1 movs r1, #0x1f ands r0, r1 _08031766: strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_080317E0 _0803176E: pop {r4, pc} thumb_func_start sub_08031770 sub_08031770: @ 0x08031770 push {r4, lr} adds r1, r0, #0 adds r4, r1, #0 adds r4, #0x80 ldrh r0, [r4] cmp r0, #0 beq _08031790 subs r0, #1 strh r0, [r4] lsls r0, r0, #0x10 cmp r0, #0 bne _080317B2 adds r0, r1, #0 bl sub_08031840 b _080317B2 _08031790: ldr r0, [r1, #0x54] cmp r0, #0 bne _080317AA bl sub_08000E50 movs r1, #0x7f ands r0, r1 movs r2, #0x80 lsls r2, r2, #2 adds r1, r2, #0 orrs r0, r1 strh r0, [r4] b _080317B2 _080317AA: ldr r0, [r0, #4] cmp r0, #0 bne _080317B2 str r0, [r1, #0x54] _080317B2: pop {r4, pc} thumb_func_start sub_080317B4 sub_080317B4: @ 0x080317B4 push {r4, lr} adds r4, r0, #0 bl sub_08000E50 movs r1, #0x30 ands r1, r0 movs r2, #0xd rsbs r2, r2, #0 adds r0, r2, #0 cmp r1, #0 beq _080317D0 movs r1, #0xc rsbs r1, r1, #0 adds r0, r1, #0 _080317D0: strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_08004274 pop {r4, pc} thumb_func_start sub_080317E0 sub_080317E0: @ 0x080317E0 push {lr} ldrb r1, [r0, #0x15] adds r1, #2 movs r2, #0x1c ands r1, r2 lsrs r1, r1, #2 strb r1, [r0, #0x14] ldrb r1, [r0, #0x14] bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_080317F8 sub_080317F8: @ 0x080317F8 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_08000E50 movs r1, #0x18 ands r0, r1 movs r5, #1 strb r5, [r4, #0xc] movs r6, #0 ldr r1, _08031838 @ =0x0000FFF4 strh r1, [r4, #0x36] adds r1, r4, #0 adds r1, #0x38 strb r5, [r1] adds r3, r4, #0 adds r3, #0x3c ldrb r2, [r3] movs r1, #0x10 orrs r1, r2 strb r1, [r3] strb r5, [r4, #0x1c] strb r0, [r4, #0x15] ldr r0, _0803183C @ =gUnk_080CE560 str r0, [r4, #0x48] adds r0, r4, #0 bl sub_080317E0 strb r6, [r4, #0xe] movs r0, #0x20 strb r0, [r4, #0xf] pop {r4, r5, r6, pc} .align 2, 0 _08031838: .4byte 0x0000FFF4 _0803183C: .4byte gUnk_080CE560 thumb_func_start sub_08031840 sub_08031840: @ 0x08031840 push {r4, r5, lr} adds r5, r0, #0 ldrb r1, [r5, #0xa] movs r0, #0x2d bl sub_0804AA60 adds r4, r0, #0 cmp r4, #0 beq _08031862 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 str r5, [r4, #0x50] str r4, [r5, #0x54] movs r0, #1 strb r0, [r4, #0xb] _08031862: pop {r4, r5, pc} thumb_func_start sub_08031864 sub_08031864: @ 0x08031864 push {r4, r5, lr} adds r5, r0, #0 bl sub_080012DC adds r4, r0, #0 cmp r4, #0 beq _0803189C adds r0, r5, #0 adds r0, #0x3a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 bne _08031886 adds r0, r5, #0 bl sub_08032338 _08031886: ldr r0, _08031898 @ =gUnk_080012C8 lsls r1, r4, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r5, #0 bl _call_via_r1 b _080318BE .align 2, 0 _08031898: .4byte gUnk_080012C8 _0803189C: ldr r4, _080318C0 @ =gUnk_080CE56C adds r0, r5, #0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 movs r3, #0x10 rsbs r3, r3, #0 adds r0, r5, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC _080318BE: pop {r4, r5, pc} .align 2, 0 _080318C0: .4byte gUnk_080CE56C thumb_func_start sub_080318C4 sub_080318C4: @ 0x080318C4 push {lr} ldr r2, _080318D8 @ =gUnk_080CE584 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080318D8: .4byte gUnk_080CE584 thumb_func_start sub_080318DC sub_080318DC: @ 0x080318DC 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 adds r0, #0x41 ldrb r0, [r0] adds r0, #0x80 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _080318FA b _08031A36 _080318FA: ldrb r0, [r4, #0xa] adds r5, r4, #0 adds r5, #0x42 cmp r0, #1 bne _080319DE ldrb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x45 str r1, [sp] cmp r0, #6 bhi _080319AC ldrb r0, [r5] cmp r0, #0 beq _080319AC ldr r3, [r4, #0x54] movs r0, #0x29 adds r0, r0, r4 mov sb, r0 movs r1, #0x3e adds r1, r1, r4 mov sl, r1 cmp r3, #0 beq _08031960 ldr r0, [r4, #0x50] str r0, [r3, #0x50] movs r0, #5 mov ip, r0 movs r1, #0x39 rsbs r1, r1, #0 mov r8, r1 movs r7, #8 movs r6, #0xf4 _0803193A: mov r0, ip strb r0, [r3, #0xc] adds r2, r3, #0 adds r2, #0x29 ldrb r0, [r2] mov r1, r8 ands r1, r0 orrs r1, r7 strb r1, [r2] adds r1, r3, #0 adds r1, #0x3d movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bne _0803195A strb r6, [r1] _0803195A: ldr r3, [r3, #0x54] cmp r3, #0 bne _0803193A _08031960: ldr r1, [r4, #0x50] cmp r1, #0 beq _0803196C ldr r0, [r4, #0x54] str r0, [r1, #0x54] b _08031974 _0803196C: ldr r0, [r4, #0x54] cmp r0, #0 beq _08031974 str r4, [r4, #0x50] _08031974: movs r0, #9 strb r0, [r4, #0xc] mov r0, sb ldrb r1, [r0] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #8 orrs r0, r1 mov r1, sb strb r0, [r1] mov r1, sl ldrb r0, [r1] cmp r0, #0xf bhi _0803199C ldrb r1, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 b _080319A2 _0803199C: ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 _080319A2: strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0xe bl sub_08004260 _080319AC: ldr r1, [sp] ldrb r0, [r1] cmp r0, #0 bne _080319DE bl sub_08000E50 adds r2, r4, #0 adds r2, #0x3e movs r1, #7 ands r0, r1 ldrb r1, [r2] adds r0, r0, r1 subs r0, #4 movs r1, #0x1f ands r0, r1 strb r0, [r2] ldrb r1, [r4, #0xb] lsls r0, r1, #1 adds r0, r0, r1 ldrb r1, [r5] adds r0, r0, r1 strb r0, [r5] adds r0, r4, #0 bl sub_08032338 _080319DE: ldrb r0, [r5] cmp r0, #0 beq _08031A36 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08031A36 ldrb r0, [r4, #0xa] cmp r0, #0 bne _080319FC movs r0, #8 b _080319FE _080319FC: movs r0, #9 _080319FE: strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] cmp r0, #0xf bhi _08031A14 ldrb r1, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 b _08031A1A _08031A14: ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 _08031A1A: strb r0, [r4, #0x18] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #0x39 rsbs r1, r1, #0 ands r1, r0 movs r0, #8 orrs r1, r0 strb r1, [r2] adds r0, r4, #0 movs r1, #0xe bl sub_08004260 _08031A36: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _08031A48 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _08031A48: ldr r1, _08031A5C @ =gUnk_080CE56C adds r0, r4, #0 bl sub_0804AA30 add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _08031A5C: .4byte gUnk_080CE56C thumb_func_start sub_08031A60 sub_08031A60: @ 0x08031A60 push {r4, lr} adds r4, r0, #0 adds r0, #0x3d ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08031A7A movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 _08031A7A: adds r0, r4, #0 bl sub_08001324 thumb_func_start nullsub_153 nullsub_153: @ 0x08031A80 pop {r4, pc} .align 2, 0 thumb_func_start nullsub_154 nullsub_154: @ 0x08031A84 bx lr .align 2, 0 thumb_func_start sub_08031A88 sub_08031A88: @ 0x08031A88 push {lr} ldr r2, _08031A9C @ =gUnk_080CE58C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08031A9C: .4byte gUnk_080CE58C thumb_func_start sub_08031AA0 sub_08031AA0: @ 0x08031AA0 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r0, #1 strb r0, [r4, #0xc] ldrh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x74 strh r1, [r0] ldrh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x76 strh r0, [r1] bl sub_08000E50 adds r4, #0x79 strb r0, [r4] pop {r4, pc} .align 2, 0 thumb_func_start sub_08031AC8 sub_08031AC8: @ 0x08031AC8 push {r4, r5, r6, r7, lr} adds r6, r0, #0 ldrb r0, [r6, #0xe] cmp r0, #0 beq _08031AD8 subs r0, #1 strb r0, [r6, #0xe] b _08031B44 _08031AD8: adds r0, r6, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _08031B44 bl sub_08000E50 adds r5, r0, #0 adds r0, r6, #0 adds r0, #0x74 ldrh r4, [r0] adds r0, r5, #0 movs r1, #5 bl __modsi3 lsls r0, r0, #4 adds r4, r4, r0 adds r7, r4, #0 subs r7, #0x20 adds r0, r6, #0 adds r0, #0x76 ldrh r4, [r0] lsrs r5, r5, #4 adds r0, r5, #0 movs r1, #5 bl __modsi3 lsls r0, r0, #4 adds r4, r4, r0 subs r4, #0x20 adds r0, r6, #0 adds r0, #0x38 ldrb r2, [r0] adds r0, r7, #0 adds r1, r4, #0 bl sub_080002D4 cmp r0, #0 bne _08031B44 movs r0, #2 strb r0, [r6, #0xc] ldrb r1, [r6, #0x18] subs r0, #6 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r6, #0x18] strh r7, [r6, #0x2e] strh r4, [r6, #0x32] adds r0, r6, #0 movs r1, #0 bl sub_08004260 _08031B44: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08031B48 sub_08031B48: @ 0x08031B48 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08031B6C movs r0, #0 strb r0, [r2] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] b _08031B90 _08031B6C: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08031B90 movs r0, #3 strb r0, [r4, #0xc] bl sub_08000E50 ldr r2, _08031B94 @ =gUnk_080CE5B0 movs r1, #7 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _08031B90: pop {r4, pc} .align 2, 0 _08031B94: .4byte gUnk_080CE5B0 thumb_func_start sub_08031B98 sub_08031B98: @ 0x08031B98 push {r4, lr} adds r4, r0, #0 bl sub_08031E04 cmp r0, #0 beq _08031BDA movs r0, #5 strb r0, [r4, #0xc] ldr r0, _08031BC4 @ =gUnk_020000B0 ldr r0, [r0] movs r2, #0x2e ldrsh r1, [r4, r2] movs r2, #0x2e ldrsh r0, [r0, r2] cmp r1, r0 ble _08031BC8 ldrb r1, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 b _08031BCE .align 2, 0 _08031BC4: .4byte gUnk_020000B0 _08031BC8: ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 _08031BCE: strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #3 bl sub_08004260 b _08031C1A _08031BDA: adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08031BFA ldrb r0, [r4, #0xe] cmp r0, #0 beq _08031BFA movs r0, #0xfe ands r0, r1 strb r0, [r2] ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] _08031BFA: adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0xe] cmp r0, #0 bne _08031C1A movs r0, #4 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #2 bl sub_08004260 _08031C1A: pop {r4, pc} thumb_func_start sub_08031C1C sub_08031C1C: @ 0x08031C1C push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08031C50 movs r0, #1 strb r0, [r4, #0xc] bl sub_08000E50 ldr r2, _08031C54 @ =gUnk_080CE5B8 movs r1, #7 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] _08031C50: pop {r4, pc} .align 2, 0 _08031C54: .4byte gUnk_080CE5B8 thumb_func_start sub_08031C58 sub_08031C58: @ 0x08031C58 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r7, r0, #0 bl sub_08004274 adds r3, r7, #0 adds r3, #0x5a ldrb r1, [r3] movs r0, #0x80 ands r0, r1 lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #0 beq _08031D54 ldr r0, _08031D50 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x42 bhi _08031D66 bl sub_08000E50 adds r6, r0, #0 movs r0, #3 mov sb, r0 ands r6, r0 movs r0, #0x2e movs r1, #1 bl sub_0804AA60 adds r4, r0, #0 movs r0, #0 mov r8, r0 mov r0, r8 strb r0, [r4, #0xb] mov r0, r8 str r0, [r4, #0x50] adds r0, r4, #0 adds r0, #0x74 strb r6, [r0] adds r0, r7, #0 adds r1, r4, #0 bl sub_08031E48 movs r0, #0x2e movs r1, #1 bl sub_0804AA60 adds r5, r0, #0 str r5, [r4, #0x54] movs r0, #1 strb r0, [r5, #0xb] str r4, [r5, #0x50] adds r0, r5, #0 adds r0, #0x74 strb r6, [r0] adds r0, r7, #0 adds r1, r5, #0 bl sub_08031E48 movs r0, #0x2e movs r1, #1 bl sub_0804AA60 adds r4, r0, #0 str r4, [r5, #0x54] movs r0, #2 strb r0, [r4, #0xb] str r5, [r4, #0x50] adds r0, r4, #0 adds r0, #0x74 strb r6, [r0] adds r0, r7, #0 adds r1, r4, #0 bl sub_08031E48 movs r0, #0x2e movs r1, #1 bl sub_0804AA60 adds r5, r0, #0 str r5, [r4, #0x54] mov r0, sb strb r0, [r5, #0xb] str r4, [r5, #0x50] adds r0, r5, #0 adds r0, #0x74 strb r6, [r0] adds r0, r7, #0 adds r1, r5, #0 bl sub_08031E48 movs r0, #0x2e movs r1, #1 bl sub_0804AA60 adds r1, r0, #0 str r1, [r5, #0x54] movs r0, #4 strb r0, [r1, #0xb] str r5, [r1, #0x50] mov r0, r8 str r0, [r1, #0x54] adds r0, r1, #0 adds r0, #0x74 strb r6, [r0] adds r0, r7, #0 bl sub_08031E48 movs r0, #6 strb r0, [r7, #0xc] movs r0, #0x14 strb r0, [r7, #0xe] adds r2, r7, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] adds r0, r7, #0 movs r1, #7 bl sub_08004260 b _08031D66 .align 2, 0 _08031D50: .4byte gUnk_03003DBC _08031D54: movs r0, #1 ands r0, r1 cmp r0, #0 beq _08031D66 strb r2, [r3] ldrb r1, [r7, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r7, #0x10] _08031D66: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08031D70 sub_08031D70: @ 0x08031D70 push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08031D9C movs r0, #7 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r0, #5 strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #9 ands r0, r1 strb r0, [r4, #0x18] _08031D9C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08031DA0 sub_08031DA0: @ 0x08031DA0 push {lr} adds r1, r0, #0 ldrb r2, [r1, #0xe] movs r0, #0xf ands r0, r2 cmp r0, #0 bne _08031DC2 cmp r2, #0x50 bne _08031DBA adds r0, r1, #0 bl sub_0805E7BC b _08031DC2 _08031DBA: movs r0, #1 strb r0, [r1, #0xc] movs r0, #0xb4 strb r0, [r1, #0xe] _08031DC2: pop {pc} thumb_func_start sub_08031DC4 sub_08031DC4: @ 0x08031DC4 push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x5a ldrb r1, [r5] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08031DE8 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0xb4 strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #0xb8 ands r0, r1 strb r0, [r4, #0x18] b _08031E00 _08031DE8: adds r0, r4, #0 bl sub_08004274 ldrb r1, [r5] movs r0, #0xf ands r0, r1 cmp r0, #2 bne _08031E00 ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] _08031E00: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08031E04 sub_08031E04: @ 0x08031E04 push {r4, lr} adds r4, r0, #0 movs r0, #1 bl sub_08049DF4 adds r2, r0, #0 cmp r2, #0 beq _08031E44 adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] movs r3, #6 ands r3, r0 ldr r0, _08031E40 @ =gUnk_080CE5C0 adds r3, r3, r0 movs r0, #0x2e ldrsh r1, [r2, r0] movs r0, #0 ldrsb r0, [r3, r0] adds r1, r1, r0 movs r0, #0x32 ldrsh r2, [r2, r0] movs r0, #1 ldrsb r0, [r3, r0] adds r2, r2, r0 adds r0, r4, #0 movs r3, #0x50 bl sub_0806FCB8 b _08031E46 .align 2, 0 _08031E40: .4byte gUnk_080CE5C0 _08031E44: movs r0, #0 _08031E46: pop {r4, pc} thumb_func_start sub_08031E48 sub_08031E48: @ 0x08031E48 push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 bl sub_0806FA24 adds r0, r5, #0 adds r0, #0x6c ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x6c strb r1, [r0] adds r0, r5, #0 adds r0, #0x70 ldrh r1, [r0] adds r0, r4, #0 adds r0, #0x70 strh r1, [r0] adds r0, r5, #0 adds r0, #0x72 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x72 strh r0, [r1] adds r0, r5, #0 adds r0, #0x6e ldrb r0, [r0] subs r1, #4 strb r0, [r1] adds r0, r5, #0 adds r0, #0x6f ldrb r0, [r0] adds r1, #1 strb r0, [r1] str r5, [r4, #0x7c] pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08031E90 sub_08031E90: @ 0x08031E90 push {lr} ldr r2, _08031EA4 @ =gUnk_080CE5C8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08031EA4: .4byte gUnk_080CE5C8 thumb_func_start sub_08031EA8 sub_08031EA8: @ 0x08031EA8 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #0x3a ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r2] movs r0, #0x80 lsls r0, r0, #0xb str r0, [r4, #0x20] ldrb r0, [r4, #0xb] movs r1, #4 subs r1, r1, r0 lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #1 strh r0, [r4, #0x36] bl sub_08000E50 adds r1, r4, #0 adds r1, #0x79 strb r0, [r1] adds r0, r4, #0 movs r1, #4 bl sub_08004260 pop {r4, pc} thumb_func_start sub_08031EE8 sub_08031EE8: @ 0x08031EE8 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x34] ldr r1, [r4, #0x20] subs r0, r0, r1 str r0, [r4, #0x34] ldr r0, _08031F4C @ =0xFFFFE800 adds r1, r1, r0 str r1, [r4, #0x20] movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 bgt _08031F1E ldrb r0, [r4, #0x18] lsls r0, r0, #0x1e cmp r0, #0 bne _08031F10 ldr r0, _08031F50 @ =0x0000012B bl sub_08004488 _08031F10: ldrb r0, [r4, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 movs r0, #1 orrs r1, r0 strb r1, [r4, #0x18] _08031F1E: ldrb r0, [r4, #0x18] lsls r0, r0, #0x1e lsrs r0, r0, #0x1e cmp r0, #1 bne _08031F2E adds r0, r4, #0 bl sub_08004274 _08031F2E: ldr r0, [r4, #0x20] cmp r0, #0 bgt _08031F48 movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #5 bl sub_08004260 _08031F48: pop {r4, pc} .align 2, 0 _08031F4C: .4byte 0xFFFFE800 _08031F50: .4byte 0x0000012B thumb_func_start sub_08031F54 sub_08031F54: @ 0x08031F54 push {r4, lr} adds r4, r0, #0 ldr r1, _08031FAC @ =gUnk_080CE5F0 ldrb r0, [r4, #0xb] lsls r0, r0, #1 adds r0, r0, r1 ldrh r1, [r0] adds r0, r4, #0 bl sub_08003FC4 ldrb r1, [r4, #0xb] lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #1 rsbs r0, r0, #0 movs r2, #0x36 ldrsh r1, [r4, r2] cmp r0, r1 bgt _08031FAA movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x14 strb r0, [r4, #0xe] ldrb r1, [r4, #0xb] lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #1 rsbs r0, r0, #0 strh r0, [r4, #0x36] ldr r0, [r4, #0x50] cmp r0, #0 beq _08031FA2 adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] _08031FA2: adds r0, r4, #0 movs r1, #6 bl sub_08004260 _08031FAA: pop {r4, pc} .align 2, 0 _08031FAC: .4byte gUnk_080CE5F0 thumb_func_start sub_08031FB0 sub_08031FB0: @ 0x08031FB0 push {r4, r5, lr} adds r5, r0, #0 bl sub_08004274 adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08032006 ldr r0, [r5, #0x50] cmp r0, #0 bne _08031FD8 ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08032006 _08031FD8: movs r4, #0 movs r0, #4 strb r0, [r5, #0xc] adds r0, r5, #0 movs r1, #1 bl sub_08049F84 strb r0, [r5, #0x15] adds r0, r5, #0 adds r0, #0x76 strb r4, [r0] ldr r0, [r5, #0x54] cmp r0, #0 beq _08031FFE adds r0, r5, #0 movs r1, #9 bl sub_08004260 b _08032006 _08031FFE: adds r0, r5, #0 movs r1, #8 bl sub_08004260 _08032006: pop {r4, r5, pc} thumb_func_start sub_08032008 sub_08032008: @ 0x08032008 push {r4, r5, r6, r7, lr} adds r4, r0, #0 bl sub_080322A4 adds r7, r0, #0 cmp r7, #0 beq _08032018 b _08032144 _08032018: ldr r5, [r4, #0x50] cmp r5, #0 bne _080320D4 adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _08032060 adds r1, r4, #0 adds r1, #0x79 ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r1, #0xff ands r0, r1 movs r1, #7 ands r0, r1 cmp r0, #0 bne _08032052 ldr r0, _0803205C @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl sub_080045C4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 _08032052: adds r0, r4, #0 adds r0, #0x76 strb r7, [r0] b _080320AC .align 2, 0 _0803205C: .4byte gUnk_020000B0 _08032060: adds r1, r4, #0 adds r1, #0x76 ldrb r0, [r1] cmp r0, #0 beq _0803207C subs r0, #1 strb r0, [r1] adds r0, r4, #0 adds r0, #0x7a ldrb r1, [r0] adds r0, r4, #0 bl sub_08004596 b _080320AC _0803207C: movs r0, #0x10 strb r0, [r1] adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 bne _0803209E bl sub_08000E50 movs r1, #1 ands r1, r0 cmp r1, #0 beq _0803209E adds r0, r4, #0 bl sub_08049EE4 b _080320A6 _0803209E: bl sub_08000E50 movs r1, #0x1e ands r0, r1 _080320A6: adds r1, r4, #0 adds r1, #0x7a strb r0, [r1] _080320AC: ldrb r1, [r4, #0x15] movs r0, #0xf ands r0, r1 cmp r0, #0 beq _080320CC lsrs r1, r1, #4 movs r0, #1 eors r1, r0 ands r1, r0 lsls r1, r1, #6 ldrb r2, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] _080320CC: adds r0, r4, #0 bl sub_080AEF88 b _0803213E _080320D4: adds r6, r4, #0 adds r6, #0x77 ldrb r0, [r6] cmp r0, #0 bne _0803210E movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #0 movs r3, #1 bl sub_0806FCB8 cmp r0, #0 bne _0803213E movs r0, #1 strb r0, [r6] adds r0, r4, #0 adds r1, r5, #0 bl sub_080045C4 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_080322E8 adds r0, r4, #0 bl sub_0806F69C b _0803213E _0803210E: adds r0, r4, #0 adds r1, r5, #0 bl sub_080045C4 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_080322E8 adds r0, r4, #0 bl sub_0806F69C movs r2, #0x2e ldrsh r1, [r4, r2] movs r2, #0x2e ldrsh r0, [r5, r2] cmp r1, r0 bne _0803213E movs r0, #0x32 ldrsh r1, [r4, r0] movs r2, #0x32 ldrsh r0, [r5, r2] cmp r1, r0 bne _0803213E strb r7, [r6] _0803213E: adds r0, r4, #0 bl sub_08004274 _08032144: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08032148 sub_08032148: @ 0x08032148 push {r4, lr} adds r4, r0, #0 movs r1, #0x80 lsls r1, r1, #6 bl sub_08003FC4 cmp r0, #0 bne _0803215E adds r0, r4, #0 bl sub_08032290 _0803215E: pop {r4, pc} thumb_func_start sub_08032160 sub_08032160: @ 0x08032160 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 bne _080321C2 movs r0, #7 strb r0, [r4, #0xc] ldr r2, _08032190 @ =gUnk_080CE5FA adds r0, r4, #0 adds r0, #0x74 ldrb r1, [r0] lsls r0, r1, #2 adds r0, r0, r1 ldrb r1, [r4, #0xb] adds r0, r0, r1 adds r0, r0, r2 ldrb r0, [r0] strb r0, [r4, #0x15] cmp r0, #0xf bls _08032194 ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 b _0803219C .align 2, 0 _08032190: .4byte gUnk_080CE5FA _08032194: ldrb r1, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 _0803219C: strb r0, [r4, #0x18] movs r0, #0xf0 strh r0, [r4, #0x24] movs r0, #0x90 lsls r0, r0, #9 str r0, [r4, #0x20] 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 r0, r4, #0 movs r1, #0xc bl sub_08004260 _080321C2: ldr r0, [r4, #0x54] cmp r0, #0 bne _080321E6 ldr r1, [r4, #0x50] cmp r1, #0 beq _080321E2 movs r2, #0 _080321D0: adds r0, r1, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 beq _080321DC strb r2, [r1, #0xe] _080321DC: ldr r1, [r1, #0x50] cmp r1, #0 bne _080321D0 _080321E2: movs r0, #0 strb r0, [r4, #0xe] _080321E6: pop {r4, pc} thumb_func_start sub_080321E8 sub_080321E8: @ 0x080321E8 push {r4, lr} adds r4, r0, #0 bl sub_080AEFE0 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_080044EC cmp r0, #0 bne _08032202 movs r0, #8 strb r0, [r4, #0xc] _08032202: pop {r4, pc} thumb_func_start sub_08032204 sub_08032204: @ 0x08032204 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08032230 movs r0, #0 strb r0, [r2] bl sub_08000E50 movs r1, #0x30 ands r0, r1 adds r0, #0x1e adds r1, r4, #0 adds r1, #0x59 strb r0, [r1] b _08032244 _08032230: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08032244 movs r0, #9 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0xd bl sub_08004260 _08032244: pop {r4, pc} .align 2, 0 thumb_func_start sub_08032248 sub_08032248: @ 0x08032248 push {r4, r5, lr} adds r4, r0, #0 movs r1, #0xc0 lsls r1, r1, #5 bl sub_08003FC4 cmp r0, #0 bne _0803228E adds r5, r4, #0 adds r5, #0x5a ldrb r1, [r5] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08032276 ldr r1, [r4, #0x7c] ldrb r0, [r1, #0xe] subs r0, #1 strb r0, [r1, #0xe] adds r0, r4, #0 bl sub_0805E7BC b _0803228E _08032276: adds r0, r4, #0 bl sub_08004274 ldrb r1, [r5] movs r0, #0xf ands r0, r1 cmp r0, #2 bne _0803228E ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] _0803228E: pop {r4, r5, pc} thumb_func_start sub_08032290 sub_08032290: @ 0x08032290 push {lr} movs r1, #6 strb r1, [r0, #0xc] movs r1, #0xc strb r1, [r0, #0xe] movs r1, #0xb bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_080322A4 sub_080322A4: @ 0x080322A4 push {r4, lr} adds r2, r0, #0 ldr r3, [r2, #0x54] cmp r3, #0 beq _080322E2 movs r1, #0x36 ldrsh r0, [r3, r1] adds r0, #8 movs r4, #0x36 ldrsh r1, [r2, r4] cmp r0, r1 blt _080322E2 adds r0, r1, #0 cmp r0, #0 beq _080322D8 movs r0, #5 strb r0, [r2, #0xc] ldrh r0, [r3, #0x36] adds r0, #8 strh r0, [r2, #0x36] adds r0, r2, #0 movs r1, #0xb bl sub_08004260 movs r0, #1 b _080322E4 _080322D8: adds r0, r2, #0 bl sub_08032290 movs r0, #1 b _080322E4 _080322E2: movs r0, #0 _080322E4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080322E8 sub_080322E8: @ 0x080322E8 push {lr} adds r3, r0, #0 adds r2, r3, #0 adds r2, #0x78 ldrb r0, [r2] cmp r0, #0 beq _08032316 subs r0, #1 strb r0, [r2] lsls r0, r0, #0x18 cmp r0, #0 bne _08032334 ldrb r2, [r3, #0x18] lsls r1, r2, #0x19 lsrs r1, r1, #0x1f movs r0, #1 eors r1, r0 lsls r1, r1, #6 subs r0, #0x42 ands r0, r2 orrs r0, r1 strb r0, [r3, #0x18] b _08032334 _08032316: ldrb r1, [r3, #0x15] movs r0, #0xf ands r0, r1 cmp r0, #0 beq _08032334 lsrs r1, r1, #4 movs r0, #1 eors r1, r0 ldrb r0, [r3, #0x18] lsls r0, r0, #0x19 lsrs r0, r0, #0x1f cmp r1, r0 beq _08032334 movs r0, #6 strb r0, [r2] _08032334: pop {pc} .align 2, 0 thumb_func_start sub_08032338 sub_08032338: @ 0x08032338 push {lr} adds r2, r0, #0 ldr r1, [r2, #0x7c] ldrb r0, [r1, #0xe] adds r0, #0xf strb r0, [r1, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x50 beq _08032354 adds r1, r2, #0 adds r1, #0x6c movs r0, #0 strb r0, [r1] _08032354: pop {pc} .align 2, 0 thumb_func_start sub_08032358 sub_08032358: @ 0x08032358 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0803237C movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xa] bl sub_0804B128 str r0, [r4, #0x54] adds r1, r4, #0 adds r1, #0x54 adds r2, r4, #0 adds r2, #0x74 adds r0, r4, #0 bl sub_080A2CC0 _0803237C: ldrb r1, [r4, #0x15] movs r6, #0x80 adds r0, r6, #0 ands r0, r1 cmp r0, #0 bne _0803238E adds r0, r4, #0 bl sub_0806F69C _0803238E: adds r5, r4, #0 adds r5, #0x74 ldrh r0, [r5] subs r0, #1 strh r0, [r5] lsls r0, r0, #0x10 cmp r0, #0 bne _080323BA ldrb r1, [r4, #0x15] adds r0, r6, #0 ands r0, r1 cmp r0, #0 bne _080323AE movs r0, #0x74 bl sub_08004488 _080323AE: adds r1, r4, #0 adds r1, #0x54 adds r0, r4, #0 adds r2, r5, #0 bl sub_080A2CC0 _080323BA: pop {r4, r5, r6, pc} thumb_func_start sub_080323BC sub_080323BC: @ 0x080323BC push {r4, lr} adds r4, r0, #0 ldr r1, _080323D8 @ =gUnk_080CE7B0 bl sub_0800129E movs r3, #0x12 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, pc} .align 2, 0 _080323D8: .4byte gUnk_080CE7B0 thumb_func_start sub_080323DC sub_080323DC: @ 0x080323DC push {lr} ldr r2, _080323F0 @ =gUnk_080CE7C8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080323F0: .4byte gUnk_080CE7C8 thumb_func_start sub_080323F4 sub_080323F4: @ 0x080323F4 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] subs r0, #3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bls _0803242C movs r0, #3 strb r0, [r4, #0xc] movs r0, #0xc strb r0, [r4, #0xe] adds r0, r4, #0 adds r0, #0x3e ldrb r1, [r0] adds r1, #4 movs r0, #0x18 ands r1, r0 movs r0, #0x10 eors r1, r0 strb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 bl sub_080042AC adds r5, r4, #0 adds r5, #0x43 b _08032446 _0803242C: adds r0, r4, #0 adds r0, #0x41 ldrb r0, [r0] adds r5, r4, #0 adds r5, #0x43 cmp r0, #0xcc bne _08032446 ldrb r0, [r5] cmp r0, #0 bne _0803244C adds r0, r4, #0 bl sub_0803275C _08032446: ldrb r0, [r5] cmp r0, #0 beq _08032454 _0803244C: adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _08032454: ldr r1, _08032460 @ =gUnk_080CE7B0 adds r0, r4, #0 bl sub_0804AA30 pop {r4, r5, pc} .align 2, 0 _08032460: .4byte gUnk_080CE7B0 thumb_func_start nullsub_155 nullsub_155: @ 0x08032464 bx lr .align 2, 0 thumb_func_start sub_08032468 sub_08032468: @ 0x08032468 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r0, #0 strb r0, [r4, #0x14] adds r0, r4, #0 movs r1, #0 bl sub_080042AC adds r0, r4, #0 bl sub_080326FC adds r0, r4, #0 bl sub_08032740 pop {r4, pc} .align 2, 0 thumb_func_start sub_0803248C sub_0803248C: @ 0x0803248C push {r4, lr} adds r4, r0, #0 bl sub_080325E8 cmp r0, #0 bne _080324C8 adds r0, r4, #0 bl sub_0803271C cmp r0, #0 bne _080324C8 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080324B4 adds r0, r4, #0 bl sub_08032650 _080324B4: adds r0, r4, #0 bl sub_080AEF88 cmp r0, #0 bne _080324C2 movs r0, #1 strb r0, [r4, #0xe] _080324C2: adds r0, r4, #0 bl sub_080042B8 _080324C8: pop {r4, pc} .align 2, 0 thumb_func_start sub_080324CC sub_080324CC: @ 0x080324CC push {r4, lr} adds r4, r0, #0 bl sub_080325E8 cmp r0, #0 bne _080324F8 adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080324F8 adds r0, r4, #0 bl sub_080326FC adds r0, r4, #0 bl sub_08032740 _080324F8: pop {r4, pc} .align 2, 0 thumb_func_start sub_080324FC sub_080324FC: @ 0x080324FC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08032524 subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08032572 movs r0, #0x1e strb r0, [r4, #0xf] ldrb r0, [r4, #0x15] lsrs r0, r0, #3 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_080042AC _08032524: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_080042B8 ldrb r0, [r4, #0xf] subs r1, r0, #1 strb r1, [r4, #0xf] lsls r0, r1, #0x18 lsrs r3, r0, #0x18 cmp r3, #0 bne _08032564 movs r0, #4 strb r0, [r4, #0xc] movs r1, #0 movs r0, #0xf0 lsls r0, r0, #1 strh r0, [r4, #0x24] adds r2, r4, #0 adds r2, #0x76 movs r0, #0x46 strh r0, [r2] adds r0, r4, #0 adds r0, #0x78 strh r3, [r0] adds r0, #3 strb r1, [r0] adds r0, r4, #0 bl sub_080327C8 b _08032572 _08032564: movs r0, #3 ands r1, r0 cmp r1, #0 bne _08032572 adds r0, r4, #0 bl sub_08032794 _08032572: pop {r4, pc} thumb_func_start sub_08032574 sub_08032574: @ 0x08032574 push {r4, r5, lr} adds r4, r0, #0 ldr r0, [r4, #0x54] cmp r0, #0 beq _0803258A adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080325A4 _0803258A: adds r5, r4, #0 adds r5, #0x76 ldrh r0, [r5] subs r0, #1 strh r0, [r5] lsls r0, r0, #0x10 cmp r0, #0 beq _080325A4 adds r0, r4, #0 bl sub_080AEFE0 cmp r0, #0 bne _080325AC _080325A4: adds r0, r4, #0 bl sub_0803275C b _080325C2 _080325AC: adds r0, r4, #0 bl sub_080042B8 ldrh r1, [r5] movs r0, #7 ands r0, r1 cmp r0, #0 bne _080325C2 adds r0, r4, #0 bl sub_08032794 _080325C2: pop {r4, r5, pc} thumb_func_start sub_080325C4 sub_080325C4: @ 0x080325C4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080325E4 adds r0, r4, #0 bl sub_080325E8 cmp r0, #0 bne _080325E4 adds r0, r4, #0 bl sub_08032784 _080325E4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080325E8 sub_080325E8: @ 0x080325E8 push {r4, r5, lr} adds r4, r0, #0 bl sub_08049FA0 cmp r0, #0 beq _0803264C adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0803264C ldr r5, _08032648 @ =gUnk_020000B0 ldr r1, [r5] adds r0, r4, #0 movs r2, #0x68 movs r3, #0x40 bl sub_080041A0 cmp r0, #0 beq _0803264C ldr r1, [r5] adds r0, r4, #0 bl sub_080045C4 adds r3, r4, #0 adds r3, #0x5a ldrb r2, [r3] movs r5, #0x18 adds r1, r5, #0 ands r1, r2 subs r0, r0, r1 adds r0, #2 movs r1, #0x1f ands r0, r1 cmp r0, #4 bhi _0803264C movs r0, #3 strb r0, [r4, #0xc] movs r0, #0xc strb r0, [r4, #0xe] ldrb r1, [r3] adds r0, r5, #0 ands r0, r1 strb r0, [r4, #0x15] movs r0, #1 b _0803264E .align 2, 0 _08032648: .4byte gUnk_020000B0 _0803264C: movs r0, #0 _0803264E: pop {r4, r5, pc} thumb_func_start sub_08032650 sub_08032650: @ 0x08032650 push {r4, r5, lr} adds r4, r0, #0 bl sub_08000E50 adds r5, r0, #0 ldr r1, _08032680 @ =gUnk_080CE7E0 movs r0, #0xf ands r0, r5 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 bne _0803267A lsrs r0, r5, #8 movs r1, #1 ands r0, r1 cmp r0, #0 beq _08032684 _0803267A: lsrs r0, r5, #0x10 b _0803268C .align 2, 0 _08032680: .4byte gUnk_080CE7E0 _08032684: adds r0, r4, #0 bl sub_08049EE4 adds r0, #4 _0803268C: movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] ldrb r1, [r4, #0x15] adds r0, r4, #0 bl sub_0803269C pop {r4, r5, pc} thumb_func_start sub_0803269C sub_0803269C: @ 0x0803269C push {lr} adds r3, r0, #0 adds r2, r1, #0 subs r0, r2, #3 movs r1, #7 ands r0, r1 cmp r0, #2 bhi _080326D6 adds r0, r2, #4 movs r1, #0x18 ands r0, r1 lsrs r2, r0, #3 ldrb r0, [r3, #0x14] subs r0, r0, r2 movs r1, #3 ands r0, r1 cmp r0, #1 bls _080326F8 strb r2, [r3, #0x14] adds r0, r3, #0 adds r0, #0x58 ldrb r0, [r0] movs r1, #0xfc ands r1, r0 adds r1, r1, r2 adds r0, r3, #0 bl sub_080042AC b _080326F8 _080326D6: adds r0, r2, #4 movs r1, #0x18 ands r0, r1 lsrs r2, r0, #3 ldrb r0, [r3, #0x14] cmp r2, r0 beq _080326F8 strb r2, [r3, #0x14] adds r0, r3, #0 adds r0, #0x58 ldrb r0, [r0] movs r1, #0xfc ands r1, r0 adds r1, r1, r2 adds r0, r3, #0 bl sub_080042AC _080326F8: pop {pc} .align 2, 0 thumb_func_start sub_080326FC sub_080326FC: @ 0x080326FC push {r4, lr} adds r4, r0, #0 bl sub_08000E50 ldr r2, _08032718 @ =gUnk_080CE7F0 movs r1, #0xf ands r1, r0 lsls r1, r1, #1 adds r1, r1, r2 ldrh r0, [r1] adds r4, #0x74 strh r0, [r4] pop {r4, pc} .align 2, 0 _08032718: .4byte gUnk_080CE7F0 thumb_func_start sub_0803271C sub_0803271C: @ 0x0803271C push {lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x74 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 beq _08032734 movs r0, #0 b _0803273C _08032734: adds r0, r2, #0 bl sub_08032784 movs r0, #1 _0803273C: pop {pc} .align 2, 0 thumb_func_start sub_08032740 sub_08032740: @ 0x08032740 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x80 strh r0, [r4, #0x24] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08032650 pop {r4, pc} thumb_func_start sub_0803275C sub_0803275C: @ 0x0803275C push {r4, lr} adds r4, r0, #0 movs r0, #5 strb r0, [r4, #0xc] movs r0, #0x2d strb r0, [r4, #0xe] movs r0, #0x80 strh r0, [r4, #0x24] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_080042AC ldrb r1, [r4, #0x15] adds r0, r4, #0 bl sub_0803269C adds r0, r4, #0 bl sub_080327E0 pop {r4, pc} thumb_func_start sub_08032784 sub_08032784: @ 0x08032784 push {lr} movs r1, #2 strb r1, [r0, #0xc] ldrb r1, [r0, #0x14] adds r1, #8 bl sub_080042AC pop {pc} thumb_func_start sub_08032794 sub_08032794: @ 0x08032794 push {r4, r5, lr} adds r4, r0, #0 movs r1, #0x11 movs r2, #0x40 bl sub_080A29AC adds r5, r0, #0 cmp r5, #0 beq _080327C2 ldrb r0, [r4, #0x14] lsls r0, r0, #1 ldr r1, _080327C4 @ =gUnk_080CE810 adds r0, r0, r1 movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #0x10 movs r3, #1 ldrsb r3, [r0, r3] lsls r3, r3, #0x10 adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA48 _080327C2: pop {r4, r5, pc} .align 2, 0 _080327C4: .4byte gUnk_080CE810 thumb_func_start sub_080327C8 sub_080327C8: @ 0x080327C8 push {r4, lr} adds r4, r0, #0 movs r1, #0xb movs r2, #0 bl sub_0804A98C cmp r0, #0 beq _080327DC str r4, [r0, #0x50] str r0, [r4, #0x54] _080327DC: pop {r4, pc} .align 2, 0 thumb_func_start sub_080327E0 sub_080327E0: @ 0x080327E0 push {lr} adds r2, r0, #0 ldr r1, [r2, #0x54] cmp r1, #0 beq _080327F0 movs r0, #0 str r0, [r1, #0x50] str r0, [r2, #0x54] _080327F0: pop {pc} .align 2, 0 thumb_func_start sub_080327F4 sub_080327F4: @ 0x080327F4 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _0803280C @ =gUnk_080CE978 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _0803280C: .4byte gUnk_080CE978 thumb_func_start sub_08032810 sub_08032810: @ 0x08032810 push {r4, lr} adds r4, r0, #0 ldr r0, _08032840 @ =gUnk_080CE990 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 ldrb r0, [r4, #0xf] cmp r0, #0 beq _0803283C subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0803283C ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x10] _0803283C: pop {r4, pc} .align 2, 0 _08032840: .4byte gUnk_080CE990 thumb_func_start sub_08032844 sub_08032844: @ 0x08032844 push {r4, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r2, #0x80 adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _080328AE movs r0, #0x3f ands r0, r1 cmp r0, #0 bne _08032896 ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r3, #0x10 strb r3, [r4, #0xf] ldrb r2, [r4, #0x15] adds r0, r2, #4 movs r1, #8 ands r0, r1 cmp r0, #0 bne _08032886 adds r0, r2, #0 ands r0, r3 cmp r0, #0 beq _08032882 adds r0, r2, #2 b _08032884 _08032882: subs r0, r2, #2 _08032884: strb r0, [r4, #0x15] _08032886: ldrb r1, [r4, #0x15] movs r0, #0x20 subs r0, r0, r1 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_08032AF4 b _080328AE _08032896: adds r0, r4, #0 adds r0, #0x3d ldrb r1, [r0] adds r0, r2, #0 ands r0, r1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 bne _080328AE adds r1, r4, #0 adds r1, #0x45 strb r0, [r1] _080328AE: adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 thumb_func_start sub_080328B8 sub_080328B8: @ 0x080328B8 push {r4, lr} adds r4, r0, #0 ldr r0, _080328FC @ =gUnk_080CE9A4 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0806F520 cmp r0, #0 bne _080328F8 movs r1, #2 strb r1, [r4, #0xc] strb r0, [r4, #0xd] adds r0, r4, #0 adds r0, #0x84 strb r1, [r0] movs r0, #8 strb r0, [r4, #0xe] movs r0, #0xe0 lsls r0, r0, #1 strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_08032AF4 _080328F8: pop {r4, pc} .align 2, 0 _080328FC: .4byte gUnk_080CE9A4 thumb_func_start sub_08032900 sub_08032900: @ 0x08032900 movs r1, #1 strb r1, [r0, #0xd] movs r1, #0x3c strb r1, [r0, #0x1d] bx lr .align 2, 0 thumb_func_start sub_0803290C sub_0803290C: @ 0x0803290C push {lr} bl sub_0806F4E8 pop {pc} thumb_func_start sub_08032914 sub_08032914: @ 0x08032914 push {r4, lr} adds r4, r0, #0 bl sub_0806F3E4 cmp r0, #0 beq _08032926 adds r0, r4, #0 bl sub_0804A7D4 _08032926: pop {r4, pc} thumb_func_start sub_08032928 sub_08032928: @ 0x08032928 push {r4, r5, r6, lr} adds r6, r0, #0 bl sub_0804A720 movs r4, #0 movs r5, #1 strb r5, [r6, #0xc] strb r4, [r6, #0xf] adds r0, r6, #0 movs r1, #1 bl sub_08049F84 strb r0, [r6, #0x15] adds r0, r6, #0 adds r0, #0x80 strb r4, [r0] adds r0, #1 strb r4, [r0] strb r5, [r6, #0x1c] adds r2, r6, #0 adds r2, #0x3c ldrb r1, [r2] movs r0, #0x10 orrs r0, r1 strb r0, [r2] adds r1, r6, #0 adds r1, #0x38 movs r0, #3 strb r0, [r1] ldrb r1, [r6, #0x1b] movs r0, #0x3f ands r0, r1 movs r1, #0x40 orrs r0, r1 strb r0, [r6, #0x1b] ldrh r1, [r6, #0x2e] adds r0, r6, #0 adds r0, #0x78 strh r1, [r0] ldrh r0, [r6, #0x32] adds r1, r6, #0 adds r1, #0x7a strh r0, [r1] adds r0, r6, #0 bl sub_08016A04 adds r0, r6, #0 bl sub_08032AF4 pop {r4, r5, r6, pc} thumb_func_start sub_0803298C sub_0803298C: @ 0x0803298C push {r4, r5, lr} adds r4, r0, #0 bl sub_08032AB0 adds r0, r4, #0 bl sub_08004274 movs r0, #1 bl sub_08049DF4 cmp r0, #0 beq _080329E2 ldr r5, _080329E4 @ =gUnk_020000B0 ldr r1, [r5] adds r0, r4, #0 movs r2, #0x88 movs r3, #0x50 bl sub_080041A0 cmp r0, #0 beq _080329E2 ldr r0, [r5] movs r2, #0x32 ldrsh r1, [r0, r2] movs r2, #0x32 ldrsh r0, [r4, r2] adds r0, #8 cmp r1, r0 ble _080329E2 movs r1, #0 movs r2, #2 strb r2, [r4, #0xc] adds r0, r4, #0 adds r0, #0x84 strb r1, [r0] movs r0, #0x10 strb r0, [r4, #0xe] adds r0, r4, #0 adds r0, #0x81 strb r2, [r0] adds r0, r4, #0 bl sub_08032AF4 _080329E2: pop {r4, r5, pc} .align 2, 0 _080329E4: .4byte gUnk_020000B0 thumb_func_start sub_080329E8 sub_080329E8: @ 0x080329E8 push {lr} bl sub_08032B38 pop {pc} thumb_func_start sub_080329F0 sub_080329F0: @ 0x080329F0 push {r4, lr} adds r4, r0, #0 bl sub_080040A8 cmp r0, #0 bne _08032A3A movs r0, #4 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #8 ands r0, r1 strb r0, [r4, #0x18] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 adds r0, #0x78 ldrh r0, [r0] strh r0, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x7a ldrh r0, [r0] strh r0, [r4, #0x32] ldrh r0, [r4, #0x36] adds r0, #8 strh r0, [r4, #0x36] 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] b _08032A46 _08032A3A: adds r0, r4, #0 bl sub_08032B10 adds r0, r4, #0 bl sub_08004274 _08032A46: pop {r4, pc} thumb_func_start sub_08032A48 sub_08032A48: @ 0x08032A48 push {r4, r5, lr} adds r4, r0, #0 bl sub_080040A8 adds r5, r0, #0 cmp r5, #0 bne _08032AAE movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r0, #8 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] adds r0, r4, #0 adds r0, #0x80 strb r5, [r0] 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] adds r0, r4, #0 adds r0, #0x81 strb r5, [r0] adds r1, r4, #0 adds r1, #0x38 movs r0, #3 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 bl sub_08032AF4 _08032AAE: pop {r4, r5, pc} thumb_func_start sub_08032AB0 sub_08032AB0: @ 0x08032AB0 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08032AF0 ldrb r0, [r4, #0x15] adds r5, r4, #0 adds r5, #0x80 strb r0, [r5] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 cmp r0, #0xff beq _08032AD6 strb r0, [r4, #0x15] _08032AD6: movs r0, #8 strb r0, [r4, #0xe] ldrb r2, [r5] movs r0, #0x10 adds r1, r0, #0 ands r1, r2 ldrb r2, [r4, #0x15] ands r0, r2 cmp r1, r0 beq _08032AF0 adds r0, r4, #0 bl sub_08032AF4 _08032AF0: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08032AF4 sub_08032AF4: @ 0x08032AF4 push {lr} ldrb r2, [r0, #0x15] movs r1, #0x10 ands r1, r2 lsls r1, r1, #0x18 lsrs r1, r1, #0x1c adds r2, r0, #0 adds r2, #0x81 ldrb r2, [r2] adds r1, r1, r2 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_08032B10 sub_08032B10: @ 0x08032B10 push {r4, lr} adds r4, r0, #0 bl sub_0806F69C 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] pop {r4, pc} thumb_func_start sub_08032B38 sub_08032B38: @ 0x08032B38 push {r4, r5, r6, lr} adds r5, r0, #0 adds r2, r5, #0 adds r2, #0x84 ldrb r0, [r2] cmp r0, #1 beq _08032B88 cmp r0, #1 bgt _08032B50 cmp r0, #0 beq _08032B56 b _08032C6A _08032B50: cmp r0, #2 beq _08032BB2 b _08032C6A _08032B56: ldrb r1, [r5, #0xe] movs r3, #1 adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _08032B68 ldrh r0, [r5, #0x36] subs r0, #1 strh r0, [r5, #0x36] _08032B68: subs r0, r1, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08032C6A strb r3, [r2] movs r0, #0x18 strb r0, [r5, #0xe] ldrb r0, [r5, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r5, #0x10] adds r1, r5, #0 adds r1, #0x81 movs r0, #2 b _08032BA8 _08032B88: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08032C6A movs r0, #2 strb r0, [r2] movs r0, #8 strb r0, [r5, #0xe] movs r0, #0xe0 lsls r0, r0, #1 strh r0, [r5, #0x24] adds r1, r5, #0 adds r1, #0x81 movs r0, #4 _08032BA8: strb r0, [r1] adds r0, r5, #0 bl sub_08032AF4 b _08032C6A _08032BB2: adds r1, r5, #0 adds r1, #0x82 ldrh r0, [r1] subs r0, #1 movs r3, #0 strh r0, [r1] lsls r0, r0, #0x10 adds r6, r1, #0 cmp r0, #0 bne _08032BF4 movs r0, #3 strb r0, [r5, #0xc] strb r3, [r2] strb r3, [r5, #0xe] movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r5, #0x24] ldrb r2, [r5, #0x15] adds r0, r2, #0 adds r0, #0x18 movs r1, #0x10 ands r0, r1 cmp r0, #0 beq _08032BEC movs r0, #0x10 subs r0, r0, r2 movs r1, #0x1f ands r0, r1 strb r0, [r5, #0x15] _08032BEC: adds r0, r5, #0 bl sub_08032AF4 b _08032C64 _08032BF4: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08032C64 movs r0, #8 strb r0, [r5, #0xe] ldrb r0, [r5, #0x15] adds r4, r5, #0 adds r4, #0x80 strb r0, [r4] adds r0, r5, #0 movs r1, #1 bl sub_08049F84 adds r1, r0, #0 adds r0, r5, #0 bl sub_08004596 ldrb r3, [r5, #0x15] adds r0, r3, #0 adds r0, #0x18 movs r1, #0x10 ands r0, r1 cmp r0, #0 beq _08032C46 ldrb r0, [r4] cmp r0, #0x10 bne _08032C3E ands r3, r0 cmp r3, #0 beq _08032C3A movs r0, #0x12 b _08032C3C _08032C3A: movs r0, #0xe _08032C3C: strb r0, [r4] _08032C3E: ldrb r0, [r4] strb r0, [r5, #0x15] movs r0, #1 strh r0, [r6] _08032C46: ldrb r2, [r4] movs r0, #0x10 adds r1, r0, #0 ands r1, r2 lsls r1, r1, #0x18 ldrb r2, [r5, #0x15] ands r0, r2 lsls r0, r0, #0x18 lsrs r2, r0, #0x1c cmp r1, r0 beq _08032C64 adds r1, r2, #4 adds r0, r5, #0 bl sub_08004260 _08032C64: adds r0, r5, #0 bl sub_08032B10 _08032C6A: adds r0, r5, #0 bl sub_08004274 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08032C74 sub_08032C74: @ 0x08032C74 push {r4, lr} adds r4, r0, #0 ldr r1, _08032C90 @ =gUnk_080CEA1C bl sub_0800129E movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, pc} .align 2, 0 _08032C90: .4byte gUnk_080CEA1C thumb_func_start sub_08032C94 sub_08032C94: @ 0x08032C94 push {lr} ldr r2, _08032CA8 @ =gUnk_080CEA34 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08032CA8: .4byte gUnk_080CEA34 thumb_func_start sub_08032CAC sub_08032CAC: @ 0x08032CAC push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _08032CC0 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _08032CC0: ldr r1, _08032D18 @ =gUnk_080CEA1C adds r0, r4, #0 bl sub_0804AA30 adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08032D3A movs r0, #0x3f ands r0, r1 cmp r0, #3 bgt _08032D2C cmp r0, #2 blt _08032D2C movs r0, #6 strb r0, [r4, #0xc] ldrb r0, [r4, #0xa] movs r1, #0xc8 cmp r0, #0 beq _08032CF0 movs r1, #0x5a _08032CF0: strb r1, [r4, #0xe] movs r0, #2 strb r0, [r4, #0xf] adds r1, r4, #0 adds r1, #0x80 movs r0, #3 strb r0, [r1] adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] strb r0, [r4, #0x15] ldrb r5, [r4, #0x15] bl sub_08000E50 movs r1, #0x40 ands r1, r0 cmp r1, #0 beq _08032D1C adds r2, r5, #4 b _08032D20 .align 2, 0 _08032D18: .4byte gUnk_080CEA1C _08032D1C: adds r2, r5, #0 adds r2, #0x1c _08032D20: movs r1, #0 movs r0, #0x1f ands r0, r2 strb r0, [r4, #0x15] strh r1, [r4, #0x24] b _08032D3A _08032D2C: movs r0, #5 strb r0, [r4, #0xc] movs r0, #4 strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_08033174 _08032D3A: pop {r4, r5, pc} thumb_func_start sub_08032D3C sub_08032D3C: @ 0x08032D3C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08032D66 movs r0, #2 strb r0, [r4, #0xf] ldrb r0, [r4, #0x14] adds r0, #1 movs r1, #7 ands r0, r1 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_08032F24 adds r0, r4, #0 bl sub_080331E8 _08032D66: adds r0, r4, #0 bl sub_08001324 thumb_func_start nullsub_156 nullsub_156: @ 0x08032D6C pop {r4, pc} .align 2, 0 thumb_func_start nullsub_157 nullsub_157: @ 0x08032D70 bx lr .align 2, 0 thumb_func_start sub_08032D74 sub_08032D74: @ 0x08032D74 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 adds r0, r4, #0 bl sub_08033058 pop {r4, pc} thumb_func_start sub_08032D84 sub_08032D84: @ 0x08032D84 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08032D9C adds r0, r4, #0 bl sub_080330C0 b _08032DAC _08032D9C: adds r0, r4, #0 bl sub_08033364 cmp r0, #0 beq _08032DAC adds r0, r4, #0 bl sub_08033100 _08032DAC: adds r0, r4, #0 bl sub_08032F64 pop {r4, pc} thumb_func_start sub_08032DB4 sub_08032DB4: @ 0x08032DB4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08032DCA adds r0, r4, #0 bl sub_08033058 _08032DCA: adds r0, r4, #0 bl sub_08032F48 pop {r4, pc} .align 2, 0 thumb_func_start sub_08032DD4 sub_08032DD4: @ 0x08032DD4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08032E3C movs r0, #4 strb r0, [r4, #0xc] movs r0, #8 strb r0, [r4, #0xf] movs r0, #0xf0 lsls r0, r0, #1 strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_080331B4 adds r2, r4, #0 adds r2, #0x82 ldrb r1, [r2] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08032E18 ldrb r0, [r4, #0x15] adds r0, #0x1c movs r1, #0x1c ands r0, r1 strb r0, [r4, #0x15] ldrb r1, [r2] movs r0, #0x7f ands r0, r1 b _08032E28 _08032E18: ldrb r0, [r4, #0x15] adds r0, #4 movs r1, #0x1c ands r0, r1 strb r0, [r4, #0x15] ldrb r0, [r2] movs r1, #0x80 orrs r0, r1 _08032E28: strb r0, [r2] ldrb r0, [r4, #0x15] lsrs r0, r0, #2 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_08004260 b _08032E4E _08032E3C: adds r0, r4, #0 bl sub_08032F90 adds r0, r4, #0 bl sub_080331E8 adds r0, r4, #0 bl sub_08032F64 _08032E4E: pop {r4, pc} thumb_func_start sub_08032E50 sub_08032E50: @ 0x08032E50 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08032E70 movs r0, #5 strb r0, [r4, #0xc] movs r0, #4 strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_08033174 b _08032E82 _08032E70: adds r0, r4, #0 bl sub_08033000 adds r0, r4, #0 bl sub_080331E8 adds r0, r4, #0 bl sub_08032F64 _08032E82: pop {r4, pc} thumb_func_start sub_08032E84 sub_08032E84: @ 0x08032E84 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r1, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _08032EA4 adds r0, r4, #0 bl sub_08033320 adds r0, r4, #0 bl sub_080330C0 b _08032EC0 _08032EA4: ldrb r0, [r4, #0xa] cmp r0, #0 bne _08032EC0 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] ands r0, r1 cmp r0, #0 bne _08032EC0 movs r0, #4 strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_080332A8 _08032EC0: adds r0, r4, #0 bl sub_080331E8 adds r0, r4, #0 bl sub_080AEF88 pop {r4, pc} .align 2, 0 thumb_func_start sub_08032ED0 sub_08032ED0: @ 0x08032ED0 push {r4, r5, lr} adds r4, r0, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_08032F48 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] movs r5, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _08032F06 movs r0, #2 strb r0, [r4, #0xf] ldrb r0, [r4, #0x14] adds r0, #1 movs r1, #7 ands r0, r1 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_08032F24 adds r0, r4, #0 bl sub_080331E8 _08032F06: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] ands r0, r5 cmp r0, #0 bne _08032F20 movs r0, #5 strb r0, [r4, #0xc] movs r0, #4 strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_08033174 _08032F20: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08032F24 sub_08032F24: @ 0x08032F24 push {lr} adds r2, r0, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 bne _08032F38 movs r1, #0 ldrb r0, [r2, #0x14] lsrs r0, r0, #1 b _08032F3C _08032F38: movs r1, #4 ldrb r0, [r2, #0x14] _08032F3C: adds r1, r1, r0 adds r0, r2, #0 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_08032F48 sub_08032F48: @ 0x08032F48 push {r4, lr} adds r4, r0, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #2 bne _08032F5A adds r0, r4, #0 bl sub_08004274 _08032F5A: adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 thumb_func_start sub_08032F64 sub_08032F64: @ 0x08032F64 push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #0x2a] cmp r0, #0 beq _08032F82 adds r1, r0, #0 adds r0, r4, #0 bl sub_0800417E ldrb r0, [r4, #0x15] lsrs r0, r0, #2 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_08032F24 _08032F82: adds r0, r4, #0 bl sub_08032F48 adds r0, r4, #0 bl sub_080AEF88 pop {r4, pc} thumb_func_start sub_08032F90 sub_08032F90: @ 0x08032F90 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xa] cmp r0, #0 bne _08032FC0 ldrb r0, [r2, #0xe] cmp r0, #0x10 bne _08032FA8 adds r1, r2, #0 adds r1, #0x80 movs r0, #2 strb r0, [r1] _08032FA8: ldrb r0, [r2, #0xf] subs r0, #1 strb r0, [r2, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08032FFE movs r0, #8 strb r0, [r2, #0xf] adds r0, r2, #0 bl sub_08033280 b _08032FFE _08032FC0: ldrb r0, [r2, #0xf] subs r0, #1 strb r0, [r2, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08032FFE movs r0, #4 strb r0, [r2, #0xf] adds r0, r2, #0 adds r0, #0x82 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08032FE4 ldrb r0, [r2, #0x15] adds r0, #0x1c b _08032FE8 _08032FE4: ldrb r0, [r2, #0x15] adds r0, #4 _08032FE8: movs r1, #0x1c ands r0, r1 strb r0, [r2, #0x15] ldrb r0, [r2, #0x15] lsrs r0, r0, #2 strb r0, [r2, #0x14] ldrb r1, [r2, #0x14] adds r1, #4 adds r0, r2, #0 bl sub_08004260 _08032FFE: pop {pc} thumb_func_start sub_08033000 sub_08033000: @ 0x08033000 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xf] subs r0, #1 strb r0, [r2, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08033056 movs r0, #0x10 strb r0, [r2, #0xf] adds r3, r2, #0 adds r3, #0x82 ldrb r1, [r3] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08033034 ldrb r0, [r2, #0x15] adds r0, #0x18 movs r1, #0x1c ands r0, r1 strb r0, [r2, #0x15] ldrb r1, [r3] movs r0, #0x7f ands r0, r1 b _08033044 _08033034: ldrb r0, [r2, #0x15] adds r0, #8 movs r1, #0x1c ands r0, r1 strb r0, [r2, #0x15] ldrb r0, [r3] movs r1, #0x80 orrs r0, r1 _08033044: strb r0, [r3] ldrb r0, [r2, #0x15] lsrs r0, r0, #2 strb r0, [r2, #0x14] ldrb r1, [r2, #0x14] adds r1, #4 adds r0, r2, #0 bl sub_08004260 _08033056: pop {pc} thumb_func_start sub_08033058 sub_08033058: @ 0x08033058 push {r4, r5, r6, lr} adds r5, r0, #0 movs r6, #1 strb r6, [r5, #0xc] adds r0, #0x80 strb r6, [r0] bl sub_08000E50 ldr r1, _080330A0 @ =gUnk_080CEA50 movs r4, #3 ands r0, r4 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r5, #0xe] adds r0, r5, #0 bl sub_08049FA0 cmp r0, #0 bne _080330A8 bl sub_08000E50 ands r0, r4 cmp r0, #0 beq _080330A8 adds r0, r5, #0 bl sub_08049EE4 adds r4, r0, #0 bl sub_08000E50 ldr r1, _080330A4 @ =gUnk_080CEA54 ands r0, r6 adds r0, r0, r1 ldrb r0, [r0] adds r0, r0, r4 b _080330AC .align 2, 0 _080330A0: .4byte gUnk_080CEA50 _080330A4: .4byte gUnk_080CEA54 _080330A8: bl sub_08000E50 _080330AC: movs r1, #0x18 ands r0, r1 strb r0, [r5, #0x15] ldrb r0, [r5, #0x15] lsrs r0, r0, #2 strb r0, [r5, #0x14] adds r0, r5, #0 bl sub_08032F24 pop {r4, r5, r6, pc} thumb_func_start sub_080330C0 sub_080330C0: @ 0x080330C0 push {r4, lr} adds r4, r0, #0 movs r1, #0 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x80 strb r1, [r0] ldrb r0, [r4, #0xa] cmp r0, #0 bne _080330E2 bl sub_08000E50 movs r1, #0x38 ands r0, r1 adds r0, #0x18 b _080330E4 _080330E2: movs r0, #6 _080330E4: strb r0, [r4, #0xe] movs r0, #0x60 strh r0, [r4, #0x24] ldrb r0, [r4, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] lsrs r0, r0, #2 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_08032F24 pop {r4, pc} thumb_func_start sub_08033100 sub_08033100: @ 0x08033100 push {r4, lr} adds r4, r0, #0 movs r0, #3 strb r0, [r4, #0xc] ldrb r2, [r4, #0xa] cmp r2, #0 bne _08033132 adds r1, r4, #0 adds r1, #0x80 movs r0, #1 strb r0, [r1] movs r0, #0x30 strb r0, [r4, #0xe] movs r0, #8 strb r0, [r4, #0xf] strh r2, [r4, #0x24] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 adds r0, #2 movs r1, #0x1c ands r0, r1 strb r0, [r4, #0x15] b _08033150 _08033132: adds r1, r4, #0 adds r1, #0x80 movs r0, #2 strb r0, [r1] adds r0, r4, #0 bl sub_080331B4 ldrb r0, [r4, #0xe] adds r0, #0x10 strb r0, [r4, #0xe] movs r0, #4 strb r0, [r4, #0xf] movs r0, #0xb0 lsls r0, r0, #1 strh r0, [r4, #0x24] _08033150: adds r1, r4, #0 adds r1, #0x83 movs r0, #0 strb r0, [r1] bl sub_08000E50 movs r1, #0x80 ands r0, r1 adds r1, r4, #0 adds r1, #0x82 strb r0, [r1] ldrb r0, [r4, #0x15] lsrs r0, r0, #2 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_08032F24 pop {r4, pc} thumb_func_start sub_08033174 sub_08033174: @ 0x08033174 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x80 movs r2, #0 movs r0, #1 strb r0, [r1] ldrb r0, [r4, #0x15] adds r1, #1 strb r0, [r1] adds r0, r4, #0 adds r0, #0x82 strb r2, [r0] adds r0, #1 strb r2, [r0] ldrb r0, [r4, #0xa] cmp r0, #0 bne _080331A4 bl sub_08000E50 movs r1, #0x18 ands r0, r1 adds r0, #0x18 b _080331A6 _080331A4: movs r0, #0xc _080331A6: strb r0, [r4, #0xe] movs r0, #0xa0 strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_08032F24 pop {r4, pc} thumb_func_start sub_080331B4 sub_080331B4: @ 0x080331B4 push {r4, lr} adds r4, r0, #0 bl sub_08000E50 adds r1, r0, #0 movs r0, #0xf0 ands r1, r0 movs r2, #0x1e movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080331D0 movs r2, #0x3c b _080331E4 _080331D0: movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _080331DA movs r2, #0x2d _080331DA: movs r0, #0x20 ands r1, r0 cmp r1, #0 beq _080331E4 movs r2, #0x4b _080331E4: strb r2, [r4, #0xe] pop {r4, pc} thumb_func_start sub_080331E8 sub_080331E8: @ 0x080331E8 push {r4, r5, r6, lr} adds r5, r0, #0 movs r3, #0 ldrb r0, [r5, #0xc] cmp r0, #5 beq _08033220 adds r1, r5, #0 adds r1, #0x83 ldrb r0, [r1] adds r2, r0, #1 strb r2, [r1] adds r0, r5, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #2 beq _0803320C movs r0, #0xf b _0803320E _0803320C: movs r0, #7 _0803320E: ands r2, r0 strb r2, [r1] ldrb r0, [r1] cmp r0, #0 bne _08033238 movs r3, #1 ldrb r0, [r5, #0x14] lsls r6, r0, #1 b _08033238 _08033220: adds r2, r5, #0 adds r2, #0x83 ldrb r0, [r2] adds r0, #1 movs r1, #0xf ands r0, r1 strb r0, [r2] cmp r0, #0 bne _08033238 movs r3, #1 ldrb r0, [r5, #0x15] lsrs r6, r0, #1 _08033238: cmp r3, #0 beq _08033278 adds r0, r5, #0 movs r1, #2 movs r2, #0x40 bl sub_080A29AC adds r4, r0, #0 cmp r4, #0 beq _08033278 ldr r2, _0803327C @ =gUnk_080CEA56 adds r2, r6, r2 adds r3, r5, #0 adds r3, #0x5a ldrb r0, [r3] movs r1, #0x20 eors r0, r1 strb r0, [r3] movs r0, #0 ldrsb r0, [r2, r0] ldrh r1, [r4, #0x2e] adds r0, r0, r1 strh r0, [r4, #0x2e] movs r0, #1 ldrsb r0, [r2, r0] ldrh r1, [r4, #0x32] adds r0, r0, r1 strh r0, [r4, #0x32] movs r0, #0x86 lsls r0, r0, #1 bl sub_08004488 _08033278: pop {r4, r5, r6, pc} .align 2, 0 _0803327C: .4byte gUnk_080CEA56 thumb_func_start sub_08033280 sub_08033280: @ 0x08033280 push {r4, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049F84 adds r0, #2 movs r1, #0x1c ands r0, r1 strb r0, [r4, #0x15] lsrs r0, r0, #2 ldrb r1, [r4, #0x14] cmp r0, r1 beq _080332A4 strb r0, [r4, #0x14] adds r1, r0, #4 adds r0, r4, #0 bl sub_08004260 _080332A4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080332A8 sub_080332A8: @ 0x080332A8 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r6, [r4, #0x15] adds r5, r4, #0 adds r5, #0x81 ldrb r0, [r5] strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 ldrb r0, [r4, #0x15] strb r0, [r5] strb r6, [r4, #0x15] ldrb r0, [r5] adds r0, #2 movs r1, #0x1c ands r0, r1 asrs r6, r0, #2 ldrb r0, [r4, #0x14] cmp r6, r0 beq _080332E4 adds r0, r4, #0 adds r1, r6, #0 bl sub_080332E8 _080332E4: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080332E8 sub_080332E8: @ 0x080332E8 push {r4, lr} adds r4, r0, #0 adds r3, r4, #0 adds r3, #0x82 movs r0, #0 strb r0, [r3] ldrb r0, [r4, #0x14] subs r2, r1, r0 cmp r2, #0 ble _08033304 cmp r2, #4 bgt _08033310 movs r0, #1 b _08033312 _08033304: movs r0, #4 rsbs r0, r0, #0 cmp r2, r0 bge _08033310 movs r0, #1 b _08033312 _08033310: movs r0, #2 _08033312: strb r0, [r3] strb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_08004260 pop {r4, pc} thumb_func_start sub_08033320 sub_08033320: @ 0x08033320 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0x14] lsls r5, r0, #2 movs r0, #4 ands r0, r5 cmp r0, #0 beq _08033360 adds r0, r4, #0 adds r0, #0x82 ldrb r0, [r0] movs r1, #3 ands r1, r0 cmp r1, #1 beq _08033350 cmp r1, #2 beq _08033354 bl sub_08000E50 movs r1, #0x10 ands r1, r0 movs r0, #0x1c cmp r1, #0 beq _08033356 _08033350: movs r0, #4 b _08033356 _08033354: movs r0, #0x1c _08033356: adds r0, r0, r5 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] b _08033362 _08033360: strb r5, [r4, #0x15] _08033362: pop {r4, r5, pc} thumb_func_start sub_08033364 sub_08033364: @ 0x08033364 push {r4, lr} adds r4, r0, #0 movs r0, #1 bl sub_08049DF4 adds r1, r0, #0 cmp r1, #0 beq _080333B4 ldrb r0, [r4, #0xa] movs r3, #0x38 cmp r0, #0 beq _0803337E movs r3, #0x48 _0803337E: adds r0, r4, #0 adds r2, r3, #0 bl sub_080041A0 cmp r0, #0 beq _080333B4 ldrb r0, [r4, #0xa] cmp r0, #0 bne _080333AA ldr r0, _080333B0 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl sub_080045C4 adds r1, r0, #0 adds r1, #2 movs r0, #0x1c ands r1, r0 lsrs r1, r1, #2 ldrb r0, [r4, #0x14] cmp r0, r1 bne _080333B4 _080333AA: movs r0, #1 b _080333B6 .align 2, 0 _080333B0: .4byte gUnk_020000B0 _080333B4: movs r0, #0 _080333B6: pop {r4, pc} thumb_func_start sub_080333B8 sub_080333B8: @ 0x080333B8 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080333D0 @ =gUnk_080CEB38 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080333D0: .4byte gUnk_080CEB38 thumb_func_start sub_080333D4 sub_080333D4: @ 0x080333D4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0803340E movs r0, #1 strb r0, [r4, #0xc] bl sub_08000E50 movs r1, #0xf ands r0, r1 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0 bl sub_08004260 ldrb r0, [r4, #0xa] cmp r0, #0 beq _0803340E bl sub_0804B128 str r0, [r4, #0x54] adds r1, r4, #0 adds r1, #0x54 adds r2, r4, #0 adds r2, #0x76 adds r0, r4, #0 bl sub_080A2CC0 _0803340E: ldr r2, _08033444 @ =gUnk_080CEB50 ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x1c movs r1, #7 ands r0, r1 ldrb r1, [r4, #0xb] lsls r1, r1, #3 adds r0, r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0xa] cmp r0, #0 beq _08033440 adds r0, r4, #0 bl sub_0803350C _08033440: pop {r4, pc} .align 2, 0 _08033444: .4byte gUnk_080CEB50 thumb_func_start sub_08033448 sub_08033448: @ 0x08033448 push {r4, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 subs r0, #1 cmp r0, #0x1d bhi _080334E0 lsls r0, r0, #2 ldr r1, _08033464 @ =_08033468 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08033464: .4byte _08033468 _08033468: @ jump table .4byte _080334FA @ case 0 .4byte _080334E0 @ case 1 .4byte _080334E0 @ case 2 .4byte _080334E0 @ case 3 .4byte _080334E0 @ case 4 .4byte _080334E0 @ case 5 .4byte _080334E0 @ case 6 .4byte _080334E0 @ case 7 .4byte _080334E0 @ case 8 .4byte _080334E0 @ case 9 .4byte _080334E0 @ case 10 .4byte _080334E0 @ case 11 .4byte _080334E0 @ case 12 .4byte _080334E0 @ case 13 .4byte _080334FA @ case 14 .4byte _080334E0 @ case 15 .4byte _080334E0 @ case 16 .4byte _080334E0 @ case 17 .4byte _080334FA @ case 18 .4byte _080334E0 @ case 19 .4byte _080334E0 @ case 20 .4byte _080334E0 @ case 21 .4byte _080334E0 @ case 22 .4byte _080334E0 @ case 23 .4byte _080334E0 @ case 24 .4byte _080334E0 @ case 25 .4byte _080334FA @ case 26 .4byte _080334E0 @ case 27 .4byte _080334FA @ case 28 .4byte _080334FA @ case 29 _080334E0: movs r0, #0x20 movs r1, #0 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _080334F6 adds r0, r4, #0 bl sub_0806FA24 _080334F6: bl sub_0805E780 _080334FA: ldr r1, _08033504 @ =gUnk_080CEB38 adds r0, r4, #0 bl sub_0804AA30 pop {r4, pc} .align 2, 0 _08033504: .4byte gUnk_080CEB38 thumb_func_start nullsub_158 nullsub_158: @ 0x08033508 bx lr .align 2, 0 thumb_func_start sub_0803350C sub_0803350C: @ 0x0803350C push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x15] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _08033520 adds r0, r4, #0 bl sub_0806F69C _08033520: adds r2, r4, #0 adds r2, #0x76 ldrh r0, [r2] subs r0, #1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 bne _0803353A adds r1, r4, #0 adds r1, #0x54 adds r0, r4, #0 bl sub_080A2CC0 _0803353A: pop {r4, pc} thumb_func_start sub_0803353C sub_0803353C: @ 0x0803353C push {lr} ldr r1, _08033548 @ =gUnk_080CEB74 bl sub_0800129E pop {pc} .align 2, 0 _08033548: .4byte gUnk_080CEB74 thumb_func_start sub_0803354C sub_0803354C: @ 0x0803354C push {lr} ldr r2, _08033560 @ =gUnk_080CEB8C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08033560: .4byte gUnk_080CEB8C thumb_func_start sub_08033564 sub_08033564: @ 0x08033564 push {r4, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08033628 movs r0, #0x3f ands r0, r1 cmp r0, #0xe beq _080335E4 cmp r0, #0xe bgt _08033586 cmp r0, #0 beq _08033590 b _08033628 _08033586: cmp r0, #0x14 beq _080335EE cmp r0, #0x15 beq _080335E4 b _08033628 _08033590: movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #6 ands r0, r1 strb r0, [r4, #0x18] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x7c movs r0, #0x9f lsls r0, r0, #2 strh r0, [r1] ldr r2, _080335DC @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x80 lsls r1, r1, #7 orrs r0, r1 str r0, [r2, #0x30] ldr r1, _080335E0 @ =gUnk_02002A40 ldrb r2, [r4, #0xa] adds r0, r2, #1 adds r3, r1, #0 adds r3, #0xba strb r0, [r3] adds r1, #0xc8 movs r0, #0x96 lsls r0, r0, #2 strh r0, [r1] lsls r2, r2, #0x18 cmp r2, #0 beq _08033628 bl sub_0805E780 b _08033628 .align 2, 0 _080335DC: .4byte gUnk_03003F80 _080335E0: .4byte gUnk_02002A40 _080335E4: adds r1, r4, #0 adds r1, #0x45 movs r0, #0 strb r0, [r1] b _08033628 _080335EE: ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 movs r1, #0 strb r0, [r4, #0x10] adds r0, r4, #0 adds r0, #0x3d strb r1, [r0] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _08033624 str r1, [r4, #0x54] movs r0, #0xe strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_0806FA24 _08033624: bl sub_0805E780 _08033628: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803362C sub_0803362C: @ 0x0803362C push {r4, lr} adds r4, r0, #0 bl sub_0806F520 cmp r0, #0 beq _08033648 ldr r0, _0803364C @ =gUnk_080CEB98 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _08033648: pop {r4, pc} .align 2, 0 _0803364C: .4byte gUnk_080CEB98 thumb_func_start sub_08033650 sub_08033650: @ 0x08033650 movs r1, #2 strb r1, [r0, #0xd] bx lr .align 2, 0 thumb_func_start sub_08033658 sub_08033658: @ 0x08033658 push {lr} bl sub_0806F4E8 pop {pc} thumb_func_start sub_08033660 sub_08033660: @ 0x08033660 push {r4, lr} adds r4, r0, #0 bl sub_0806F3E4 cmp r0, #0 beq _08033672 adds r0, r4, #0 bl sub_0804A7D4 _08033672: pop {r4, pc} thumb_func_start sub_08033674 sub_08033674: @ 0x08033674 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r0, #0 strb r0, [r4, #0xe] movs r0, #1 strb r0, [r4, #0xc] strb r0, [r4, #0x1c] ldrh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x80 strh r1, [r0] ldrh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x82 strh r0, [r1] adds r0, r4, #0 bl sub_08033744 ldrb r1, [r4, #0xb] adds r0, r4, #0 bl sub_08004260 pop {r4, pc} .align 2, 0 thumb_func_start sub_080336A8 sub_080336A8: @ 0x080336A8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080336C0 adds r0, r4, #0 bl sub_08033744 b _080336CE _080336C0: ldrh r0, [r4, #0x2a] cmp r0, #0 beq _080336CE adds r1, r0, #0 adds r0, r4, #0 bl sub_0800417E _080336CE: adds r0, r4, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_08004274 pop {r4, pc} thumb_func_start sub_080336DC sub_080336DC: @ 0x080336DC push {lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x7c ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xc beq _0803371E cmp r0, #0xc bgt _080336FC cmp r0, #0 beq _0803372E b _08033740 _080336FC: cmp r0, #0x18 beq _08033716 cmp r0, #0x24 bne _08033740 adds r0, r2, #0 adds r0, #0x80 ldrh r0, [r0] strh r0, [r2, #0x2e] adds r0, r2, #0 adds r0, #0x82 ldrh r0, [r0] strh r0, [r2, #0x32] b _08033740 _08033716: adds r0, r2, #0 bl sub_080A29BC b _08033740 _0803371E: ldrb r0, [r2, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 movs r0, #1 orrs r1, r0 strb r1, [r2, #0x18] b _08033740 _0803372E: movs r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x10] adds r0, r2, #0 bl sub_08033744 _08033740: pop {pc} .align 2, 0 thumb_func_start sub_08033744 sub_08033744: @ 0x08033744 push {r4, r5, r6, lr} adds r6, r0, #0 bl sub_08000E50 adds r5, r0, #0 movs r0, #0xff ands r5, r0 ldr r1, _0803378C @ =gUnk_080CEBA4 movs r0, #0x70 ands r0, r5 lsrs r0, r0, #4 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r6, #0xe] movs r0, #0xc ands r0, r5 lsls r4, r0, #1 adds r0, r6, #0 bl sub_08049FA0 cmp r0, #0 bne _08033796 movs r0, #3 ands r0, r5 cmp r0, #0 beq _08033796 adds r0, r6, #0 bl sub_08049EE4 adds r4, r0, #0 movs r0, #0x80 ands r5, r0 cmp r5, #0 beq _08033790 adds r4, #4 b _08033792 .align 2, 0 _0803378C: .4byte gUnk_080CEBA4 _08033790: adds r4, #0x1c _08033792: movs r0, #0x18 ands r4, r0 _08033796: strb r4, [r6, #0x15] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0803379C sub_0803379C: @ 0x0803379C push {r4, lr} adds r4, r0, #0 ldr r1, _080337B8 @ =gUnk_080CEBEC bl sub_0800129E movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, pc} .align 2, 0 _080337B8: .4byte gUnk_080CEBEC thumb_func_start sub_080337BC sub_080337BC: @ 0x080337BC push {lr} ldr r2, _080337D0 @ =gUnk_080CEC04 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080337D0: .4byte gUnk_080CEC04 thumb_func_start sub_080337D4 sub_080337D4: @ 0x080337D4 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _080337E8 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _080337E8: ldr r1, _08033868 @ =gUnk_080CEBEC adds r0, r4, #0 bl sub_0804AA30 adds r2, r4, #0 adds r2, #0x41 ldrb r1, [r2] movs r0, #0x80 ands r0, r1 adds r5, r2, #0 cmp r0, #0 beq _08033864 adds r0, r4, #0 adds r0, #0x3d ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0803381A ldr r0, [r4, #0x54] cmp r0, #0 beq _0803381A adds r0, r4, #0 bl sub_08033E1C _0803381A: ldrb r1, [r5] movs r0, #0x3f ands r0, r1 cmp r0, #0x14 bne _08033864 ldrb r0, [r4, #0xc] cmp r0, #5 beq _08033864 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x5a strb r0, [r4, #0xe] movs r0, #0x10 strb r0, [r4, #0xf] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #0x49 ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 adds r0, #4 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_08033D78 adds r0, r4, #0 movs r1, #3 bl sub_08004260 _08033864: pop {r4, r5, pc} .align 2, 0 _08033868: .4byte gUnk_080CEBEC thumb_func_start nullsub_159 nullsub_159: @ 0x0803386C bx lr .align 2, 0 thumb_func_start sub_08033870 sub_08033870: @ 0x08033870 push {r4, lr} adds r4, r0, #0 bl sub_08001242 ldrb r0, [r4, #0xc] cmp r0, #5 beq _0803388E adds r0, r4, #0 bl sub_08033DF0 cmp r0, #0 beq _0803388E adds r0, r4, #0 bl sub_08033E1C _0803388E: pop {r4, pc} thumb_func_start sub_08033890 sub_08033890: @ 0x08033890 push {r4, r5, r6, lr} adds r6, r0, #0 movs r1, #0 movs r0, #1 strb r0, [r6, #0xc] strb r1, [r6, #0xe] strb r1, [r6, #0xf] ldr r0, [r6, #0x2c] ldr r3, _0803394C @ =0xFFF00000 ands r0, r3 movs r2, #0x80 lsls r2, r2, #0xc orrs r0, r2 str r0, [r6, #0x7c] adds r4, r6, #0 adds r4, #0x80 ldr r0, [r6, #0x30] ands r0, r3 orrs r0, r2 str r0, [r4] ldr r0, [r6, #0x7c] str r0, [r6, #0x2c] ldr r0, [r4] str r0, [r6, #0x30] adds r0, r6, #0 adds r0, #0x79 strb r1, [r0] adds r0, #1 strb r1, [r0] subs r0, #2 strb r1, [r0] adds r0, #3 strb r1, [r0] movs r0, #0x2e ldrsh r1, [r6, r0] ldr r2, _08033950 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r4, #0x32 ldrsh r0, [r6, r4] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r4, r6, #0 adds r4, #0x74 strh r1, [r4] ldrh r0, [r4] adds r5, r6, #0 adds r5, #0x38 ldrb r1, [r5] bl sub_080001DA adds r1, r6, #0 adds r1, #0x76 strh r0, [r1] ldr r0, _08033954 @ =0x00004022 ldrh r1, [r4] ldrb r2, [r5] bl sub_0800015E ldrb r1, [r6, #0xa] movs r0, #0x7d movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 bne _08033928 bl sub_0805E780 _08033928: adds r0, r6, #0 adds r1, r4, #0 bl sub_0806FA24 str r4, [r6, #0x54] str r6, [r4, #0x50] ldrb r0, [r6, #0xa] cmp r0, #1 bne _08033940 adds r0, r6, #0 bl sub_08033EA8 _08033940: adds r0, r6, #0 movs r1, #0 bl sub_08004260 pop {r4, r5, r6, pc} .align 2, 0 _0803394C: .4byte 0xFFF00000 _08033950: .4byte gUnk_03000BF0 _08033954: .4byte 0x00004022 thumb_func_start sub_08033958 sub_08033958: @ 0x08033958 push {r4, r5, lr} adds r4, r0, #0 bl sub_08033DF0 cmp r0, #0 beq _08033982 adds r0, r4, #0 bl sub_08033E1C adds r0, r4, #0 adds r0, #0x76 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x74 ldrh r1, [r1] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0807B9B8 b _08033A72 _08033982: adds r1, r4, #0 adds r1, #0x7b ldrb r0, [r1] cmp r0, #0 beq _08033992 subs r0, #1 strb r0, [r1] b _08033A72 _08033992: ldr r0, [r4, #0x7c] str r0, [r4, #0x2c] adds r0, r4, #0 adds r0, #0x80 ldr r0, [r0] str r0, [r4, #0x30] adds r0, r4, #0 movs r1, #1 movs r2, #0x10 bl sub_0804A024 adds r5, r0, #0 cmp r5, #0x10 beq _080339E0 cmp r5, #0x10 bhi _080339BC cmp r5, #0 beq _080339C6 cmp r5, #8 beq _080339F0 b _08033A10 _080339BC: cmp r5, #0x18 beq _08033A00 cmp r5, #0xff bne _08033A10 b _08033A72 _080339C6: adds r0, r4, #0 adds r0, #0x78 ldrb r0, [r0] cmp r0, #0 beq _08033A72 movs r1, #0x32 ldrsh r0, [r4, r1] ldr r1, _080339DC @ =gUnk_03001160 movs r2, #0x32 ldrsh r1, [r1, r2] b _08033A0A .align 2, 0 _080339DC: .4byte gUnk_03001160 _080339E0: ldr r0, _080339EC @ =gUnk_03001160 movs r1, #0x32 ldrsh r0, [r0, r1] movs r2, #0x32 ldrsh r1, [r4, r2] b _08033A0A .align 2, 0 _080339EC: .4byte gUnk_03001160 _080339F0: ldr r0, _080339FC @ =gUnk_03001160 movs r1, #0x2e ldrsh r0, [r0, r1] movs r2, #0x2e ldrsh r1, [r4, r2] b _08033A0A .align 2, 0 _080339FC: .4byte gUnk_03001160 _08033A00: movs r1, #0x2e ldrsh r0, [r4, r1] ldr r1, _08033A74 @ =gUnk_03001160 movs r2, #0x2e ldrsh r1, [r1, r2] _08033A0A: subs r0, r0, r1 cmp r0, #0x30 bgt _08033A72 _08033A10: ldr r0, [r4, #0x54] cmp r0, #0 beq _08033A1E bl sub_0806F520 cmp r0, #0 bne _08033A72 _08033A1E: adds r1, r4, #0 adds r1, #0x78 ldrb r0, [r1] cmp r0, #0 bne _08033A2C movs r0, #1 strb r0, [r1] _08033A2C: movs r0, #2 strb r0, [r4, #0xc] strb r5, [r4, #0x15] ldrb r1, [r4, #0x18] subs r0, #6 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldr r0, [r4, #0x30] ldr r1, _08033A78 @ =0xFFF00000 ands r0, r1 movs r1, #0xc0 lsls r1, r1, #0xc orrs r0, r1 str r0, [r4, #0x30] adds r0, r4, #0 adds r0, #0x76 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x74 ldrh r1, [r1] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0807B9B8 adds r0, r4, #0 movs r1, #2 bl sub_08004260 _08033A72: pop {r4, r5, pc} .align 2, 0 _08033A74: .4byte gUnk_03001160 _08033A78: .4byte 0xFFF00000 thumb_func_start sub_08033A7C sub_08033A7C: @ 0x08033A7C push {r4, lr} adds r4, r0, #0 bl sub_08033DF0 cmp r0, #0 beq _08033A90 adds r0, r4, #0 bl sub_08033E1C b _08033AC8 _08033A90: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08033AC8 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xe] movs r0, #0x20 strb r0, [r4, #0xf] 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] adds r0, r4, #0 movs r1, #3 bl sub_08004260 _08033AC8: pop {r4, pc} .align 2, 0 thumb_func_start sub_08033ACC sub_08033ACC: @ 0x08033ACC push {r4, lr} adds r4, r0, #0 bl sub_08033DF0 cmp r0, #0 beq _08033AE0 adds r0, r4, #0 bl sub_08033E1C b _08033B42 _08033AE0: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0xf] cmp r0, #0 beq _08033AF8 subs r0, #1 strb r0, [r4, #0xf] b _08033B42 _08033AF8: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08033B3C movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xe] ldr r2, [r4, #0x2c] ldr r1, _08033B38 @ =0xFFF00000 ands r2, r1 movs r0, #0x80 lsls r0, r0, #0xc orrs r2, r0 str r2, [r4, #0x2c] ldr r0, [r4, #0x30] ands r0, r1 movs r1, #0xc0 lsls r1, r1, #0xc orrs r0, r1 str r0, [r4, #0x30] str r2, [r4, #0x7c] adds r1, r4, #0 adds r1, #0x80 str r0, [r1] adds r0, r4, #0 movs r1, #4 bl sub_08004260 b _08033B42 .align 2, 0 _08033B38: .4byte 0xFFF00000 _08033B3C: adds r0, r4, #0 bl sub_08033D78 _08033B42: pop {r4, pc} thumb_func_start sub_08033B44 sub_08033B44: @ 0x08033B44 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0xc adds r4, r0, #0 bl sub_08033DF0 cmp r0, #0 beq _08033B62 adds r0, r4, #0 bl sub_08033E1C b _08033C82 _08033B62: adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 beq _08033B76 b _08033C82 _08033B76: movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 strb r0, [r4, #0x18] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r0, #0 mov r8, r0 adds r1, r4, #0 adds r1, #0x80 str r1, [sp, #4] adds r6, r4, #0 adds r6, #0x29 adds r2, r4, #0 adds r2, #0x7b str r2, [sp] adds r5, r4, #0 adds r5, #0x74 adds r3, r4, #0 adds r3, #0x38 str r3, [sp, #8] movs r7, #0x76 adds r7, r7, r4 mov sl, r7 ldr r0, _08033C20 @ =gUnk_03000BF0 mov sb, r0 _08033BB2: ldr r1, [r4, #0x2c] ldr r3, _08033C24 @ =0xFFF00000 ands r1, r3 movs r2, #0x80 lsls r2, r2, #0xc orrs r1, r2 str r1, [r4, #0x2c] ldr r0, [r4, #0x30] ands r0, r3 orrs r0, r2 str r0, [r4, #0x30] str r1, [r4, #0x7c] ldr r1, [sp, #4] str r0, [r1] ldrb r0, [r6] movs r2, #0x39 rsbs r2, r2, #0 adds r1, r2, #0 ands r0, r1 strb r0, [r6] movs r0, #0x78 ldr r3, [sp] strb r0, [r3] movs r7, #0x2e ldrsh r2, [r4, r7] mov r1, sb ldrh r0, [r1, #6] subs r2, r2, r0 asrs r2, r2, #4 movs r3, #0x3f ands r2, r3 movs r7, #0x32 ldrsh r0, [r4, r7] ldrh r1, [r1, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r2, r0 strh r2, [r5] ldrh r0, [r5] ldr r2, [sp, #8] ldrb r1, [r2] bl sub_080001DA mov r3, sl strh r0, [r3] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r7, _08033C28 @ =0x00004022 cmp r0, r7 beq _08033C2C movs r0, #1 add r8, r0 b _08033C68 .align 2, 0 _08033C20: .4byte gUnk_03000BF0 _08033C24: .4byte 0xFFF00000 _08033C28: .4byte 0x00004022 _08033C2C: ldrb r1, [r4, #0x15] movs r0, #0x18 ands r0, r1 lsrs r0, r0, #2 cmp r0, #2 beq _08033C54 cmp r0, #2 bgt _08033C42 cmp r0, #0 beq _08033C4C b _08033C68 _08033C42: cmp r0, #4 beq _08033C5A cmp r0, #6 beq _08033C62 b _08033C68 _08033C4C: ldrh r0, [r4, #0x32] adds r0, #0x10 strh r0, [r4, #0x32] b _08033C68 _08033C54: ldrh r0, [r4, #0x2e] subs r0, #0x10 b _08033C66 _08033C5A: ldrh r0, [r4, #0x32] subs r0, #0x10 strh r0, [r4, #0x32] b _08033C68 _08033C62: ldrh r0, [r4, #0x2e] adds r0, #0x10 _08033C66: strh r0, [r4, #0x2e] _08033C68: mov r1, r8 cmp r1, #0 beq _08033BB2 ldr r0, _08033C90 @ =0x00004022 ldrh r1, [r5] ldr r3, [sp, #8] ldrb r2, [r3] bl sub_0800015E adds r0, r4, #0 movs r1, #0 bl sub_08004260 _08033C82: add sp, #0xc pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _08033C90: .4byte 0x00004022 thumb_func_start sub_08033C94 sub_08033C94: @ 0x08033C94 push {r4, lr} adds r4, r0, #0 movs r1, #3 bl sub_08004276 adds r1, r4, #0 adds r1, #0x79 ldrb r0, [r1] cmp r0, #1 beq _08033CD2 cmp r0, #1 bgt _08033CB2 cmp r0, #0 beq _08033CB8 b _08033D76 _08033CB2: cmp r0, #2 beq _08033D18 b _08033D76 _08033CB8: movs r0, #1 strb r0, [r1] ldrb r1, [r4, #0x18] lsls r0, r1, #0x1e lsrs r0, r0, #0x1e cmp r0, #1 beq _08033CD2 movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] _08033CD2: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #0 bne _08033D76 adds r1, r4, #0 adds r1, #0x79 movs r0, #2 strb r0, [r1] movs r0, #0x78 strb r0, [r4, #0xe] adds r0, r4, #0 adds r0, #0x63 strb r2, [r0] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 adds r0, #0x14 strb r0, [r4, #0x15] bl sub_08000E50 adds r1, r0, #0 movs r0, #3 ands r1, r0 cmp r1, #0 beq _08033D12 cmp r1, #2 beq _08033D68 b _08033D6E _08033D12: ldrb r0, [r4, #0x15] adds r0, #8 b _08033D6C _08033D18: ldrb r0, [r4, #0xf] cmp r0, #0 beq _08033D24 subs r0, #1 strb r0, [r4, #0xf] b _08033D2A _08033D24: adds r0, r4, #0 bl sub_08033D78 _08033D2A: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08033D76 bl sub_08000E50 movs r1, #0x1f ands r0, r1 adds r0, #0x20 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 adds r0, #0x14 strb r0, [r4, #0x15] bl sub_08000E50 adds r1, r0, #0 movs r0, #3 ands r1, r0 cmp r1, #1 beq _08033D62 cmp r1, #3 beq _08033D68 b _08033D6E _08033D62: ldrb r0, [r4, #0x15] adds r0, #8 b _08033D6C _08033D68: ldrb r0, [r4, #0x15] adds r0, #0x18 _08033D6C: strb r0, [r4, #0x15] _08033D6E: ldrb r1, [r4, #0x15] movs r0, #0x18 ands r0, r1 strb r0, [r4, #0x15] _08033D76: pop {r4, pc} thumb_func_start sub_08033D78 sub_08033D78: @ 0x08033D78 push {r4, r5, r6, lr} adds r6, r0, #0 ldrb r0, [r6, #0x15] movs r2, #0x18 ands r2, r0 lsrs r2, r2, #2 ldr r0, _08033DE4 @ =gUnk_080CEC1C adds r2, r2, r0 movs r1, #0x2e ldrsh r0, [r6, r1] movs r1, #0 ldrsb r1, [r2, r1] adds r0, r0, r1 ldr r4, _08033DE8 @ =gUnk_03000BF0 ldrh r1, [r4, #6] subs r0, r0, r1 asrs r5, r0, #4 movs r3, #0x3f ands r5, r3 movs r1, #0x32 ldrsh r0, [r6, r1] movs r1, #1 ldrsb r1, [r2, r1] adds r0, r0, r1 ldrh r1, [r4, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r5, r0 adds r4, r6, #0 adds r4, #0x38 ldrb r1, [r4] adds r0, r5, #0 bl sub_080002B0 adds r1, r0, #0 ldr r0, _08033DEC @ =0x000001C5 cmp r1, r0 bhi _08033DCE subs r0, #1 cmp r1, r0 bhs _08033DE2 _08033DCE: ldrb r1, [r4] adds r0, r5, #0 bl sub_080002E0 subs r0, #1 cmp r0, #0x3e bls _08033DE2 adds r0, r6, #0 bl sub_080AEF88 _08033DE2: pop {r4, r5, r6, pc} .align 2, 0 _08033DE4: .4byte gUnk_080CEC1C _08033DE8: .4byte gUnk_03000BF0 _08033DEC: .4byte 0x000001C5 thumb_func_start sub_08033DF0 sub_08033DF0: @ 0x08033DF0 push {lr} movs r2, #0 ldr r1, [r0, #0x54] cmp r1, #0 beq _08033E16 ldrb r0, [r1, #0xc] cmp r0, #3 beq _08033E10 cmp r0, #3 bgt _08033E0A cmp r0, #2 beq _08033E16 b _08033E18 _08033E0A: cmp r0, #4 bne _08033E18 b _08033E16 _08033E10: ldrb r0, [r1, #0xd] cmp r0, #1 bls _08033E18 _08033E16: movs r2, #1 _08033E18: adds r0, r2, #0 pop {pc} thumb_func_start sub_08033E1C sub_08033E1C: @ 0x08033E1C push {r4, lr} adds r4, r0, #0 movs r2, #0 movs r3, #5 movs r0, #5 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x79 strb r2, [r0] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] movs r0, #0x29 adds r0, r0, r4 mov ip, r0 ldrb r1, [r0] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 orrs r0, r3 mov r1, ip strb r0, [r1] ldr r0, [r4, #0x30] ldr r1, _08033EA4 @ =0xFFF00000 ands r0, r1 movs r1, #0xc0 lsls r1, r1, #0xc orrs r0, r1 str r0, [r4, #0x30] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x19 strb r0, [r1] mov r0, ip 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] movs r0, #0x30 strb r0, [r4, #0xe] strb r2, [r4, #0xf] adds r0, #0xd0 strh r0, [r4, #0x24] str r2, [r4, #0x54] adds r0, r4, #0 movs r1, #3 bl sub_08004260 movs r2, #0xc rsbs r2, r2, #0 adds r0, r4, #0 movs r1, #0xa bl sub_080A2CFC pop {r4, pc} .align 2, 0 _08033EA4: .4byte 0xFFF00000 thumb_func_start sub_08033EA8 sub_08033EA8: @ 0x08033EA8 push {lr} adds r2, r0, #0 ldr r0, _08033EC4 @ =gUnk_03003F80 adds r0, #0xac ldrh r1, [r0] movs r0, #8 ands r0, r1 cmp r0, #0 beq _08033EC8 adds r1, r2, #0 adds r1, #0x3f movs r0, #0x95 b _08033ECE .align 2, 0 _08033EC4: .4byte gUnk_03003F80 _08033EC8: adds r1, r2, #0 adds r1, #0x3f movs r0, #0x63 _08033ECE: strb r0, [r1] pop {pc} .align 2, 0 thumb_func_start sub_08033ED4 sub_08033ED4: @ 0x08033ED4 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _08033EEC @ =gUnk_080CEC88 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _08033EEC: .4byte gUnk_080CEC88 thumb_func_start sub_08033EF0 sub_08033EF0: @ 0x08033EF0 push {lr} ldr r2, _08033F04 @ =gUnk_080CECA0 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08033F04: .4byte gUnk_080CECA0 thumb_func_start sub_08033F08 sub_08033F08: @ 0x08033F08 push {lr} ldr r1, _08033F14 @ =gUnk_080CEC88 bl sub_0804AA30 pop {pc} .align 2, 0 _08033F14: .4byte gUnk_080CEC88 thumb_func_start nullsub_160 nullsub_160: @ 0x08033F18 bx lr .align 2, 0 thumb_func_start sub_08033F1C sub_08033F1C: @ 0x08033F1C push {r4, lr} adds r4, r0, #0 ldr r1, _08033F38 @ =gUnk_080CECB4 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0803499C pop {r4, pc} .align 2, 0 _08033F38: .4byte gUnk_080CECB4 thumb_func_start sub_08033F3C sub_08033F3C: @ 0x08033F3C push {r4, r5, lr} adds r4, r0, #0 ldr r0, _08033F64 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x42 bhi _08033FFA ldr r0, _08033F68 @ =gUnk_030010A0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #0 beq _08033F6C adds r0, r4, #0 bl sub_08034420 adds r1, r4, #0 adds r1, #0x81 movs r0, #1 strb r0, [r1] b _08033F70 .align 2, 0 _08033F64: .4byte gUnk_03003DBC _08033F68: .4byte gUnk_030010A0 _08033F6C: movs r0, #1 strb r0, [r4, #0xc] _08033F70: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r3, r4, #0 adds r3, #0x6d ldrb r0, [r3] movs r2, #0 orrs r1, r0 strb r1, [r3] adds r0, r4, #0 adds r0, #0x80 strb r2, [r0] adds r0, r4, #0 movs r1, #0 bl sub_08004260 movs r0, #0x36 movs r1, #1 bl sub_0804AA60 adds r5, r0, #0 str r4, [r5, #0x50] movs r0, #0x7e movs r1, #0 movs r2, #0 bl sub_080A2960 str r4, [r0, #0x50] ldr r0, _08033FD0 @ =gUnk_030010A0 adds r0, #0x39 ldrb r1, [r0] cmp r1, #0 bne _08033FD4 movs r0, #0xd strb r0, [r4, #0xc] strb r1, [r4, #0xd] movs r0, #0xfc strb r0, [r4, #0xe] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] b _08033FFA .align 2, 0 _08033FD0: .4byte gUnk_030010A0 _08033FD4: movs r0, #0x44 movs r1, #0 bl sub_0804AA60 str r4, [r0, #0x50] str r4, [r0, #0x78] str r0, [r4, #0x74] movs r0, #0x44 movs r1, #1 bl sub_0804AA60 str r4, [r0, #0x50] str r5, [r0, #0x78] str r0, [r4, #0x78] movs r0, #0x36 movs r1, #4 bl sub_0804AA60 str r4, [r0, #0x50] _08033FFA: pop {r4, r5, pc} thumb_func_start sub_08033FFC sub_08033FFC: @ 0x08033FFC push {r4, lr} adds r3, r0, #0 ldrb r0, [r3, #0xd] cmp r0, #7 bls _08034008 b _08034114 _08034008: lsls r0, r0, #2 ldr r1, _08034014 @ =_08034018 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08034014: .4byte _08034018 _08034018: @ jump table .4byte _0803413E @ case 0 .4byte _08034038 @ case 1 .4byte _0803413E @ case 2 .4byte _08034056 @ case 3 .4byte _08034068 @ case 4 .4byte _0803413E @ case 5 .4byte _08034090 @ case 6 .4byte _080340C4 @ case 7 _08034038: movs r0, #2 strb r0, [r3, #0xd] movs r0, #0x1e strb r0, [r3, #0xe] ldr r0, [r3, #0x74] ldr r2, [r0, #0x74] movs r1, #1 strb r1, [r2, #0xd] ldr r0, [r3, #0x78] ldr r2, [r0, #0x74] strb r1, [r2, #0xd] adds r0, r3, #0 bl sub_0801D230 b _0803413E _08034056: ldrb r0, [r3, #0xe] subs r0, #1 strb r0, [r3, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803413E movs r0, #4 strb r0, [r3, #0xd] b _0803413E _08034068: ldr r0, [r3, #0x34] ldr r1, _0803408C @ =0xFFFF8000 adds r0, r0, r1 str r0, [r3, #0x34] movs r0, #0x36 ldrsh r1, [r3, r0] movs r0, #0xa rsbs r0, r0, #0 cmp r1, r0 bne _0803413E movs r0, #5 strb r0, [r3, #0xd] adds r1, r3, #0 adds r1, #0x81 movs r0, #1 strb r0, [r1] b _0803413E .align 2, 0 _0803408C: .4byte 0xFFFF8000 _08034090: movs r1, #0 movs r0, #7 strb r0, [r3, #0xd] strb r1, [r3, #0xe] ldr r2, [r3, #0x74] movs r1, #1 strb r1, [r2, #0xd] ldr r2, [r2, #0x74] movs r0, #4 strb r0, [r2, #0xd] ldr r2, [r3, #0x78] strb r1, [r2, #0xd] ldr r2, [r2, #0x74] strb r0, [r2, #0xd] ldr r1, _080340C0 @ =gUnk_03000F50 adds r2, r1, #0 adds r2, #0x66 movs r0, #0xf4 lsls r0, r0, #4 strh r0, [r2] adds r1, #0x68 adds r0, #0xc0 strh r0, [r1] b _0803413E .align 2, 0 _080340C0: .4byte gUnk_03000F50 _080340C4: ldrb r1, [r3, #0xe] adds r1, #1 strb r1, [r3, #0xe] lsls r2, r1, #0x18 lsrs r2, r2, #0x19 ldr r4, _08034110 @ =gUnk_03000F50 movs r0, #0x10 subs r0, r0, r2 lsls r0, r0, #8 orrs r2, r0 adds r0, r4, #0 adds r0, #0x68 strh r2, [r0] lsls r1, r1, #0x18 lsrs r1, r1, #0x18 cmp r1, #0x1f bls _0803413E movs r0, #8 strb r0, [r3, #0xd] ldr r2, [r3, #0x74] movs r1, #3 strb r1, [r2, #0xd] ldr r2, [r2, #0x74] movs r0, #6 strb r0, [r2, #0xd] ldr r2, [r3, #0x78] strb r1, [r2, #0xd] ldr r2, [r2, #0x74] strb r0, [r2, #0xd] ldrb r1, [r3, #0x19] subs r0, #0x13 ands r0, r1 strb r0, [r3, #0x19] adds r1, r4, #0 adds r1, #0x66 movs r0, #0 strh r0, [r1] b _0803413E .align 2, 0 _08034110: .4byte gUnk_03000F50 _08034114: ldr r0, [r3, #0x74] ldrb r1, [r0, #0x10] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803413E ldr r1, _08034140 @ =gUnk_03000BF0 ldr r0, _08034144 @ =gUnk_03001160 str r0, [r1, #0x30] adds r0, r3, #0 bl sub_08034420 ldr r0, _08034148 @ =gUnk_03003F80 adds r0, #0x8b movs r1, #1 strb r1, [r0] bl sub_080791D0 movs r0, #0x2e bl sub_080A3268 _0803413E: pop {r4, pc} .align 2, 0 _08034140: .4byte gUnk_03000BF0 _08034144: .4byte gUnk_03001160 _08034148: .4byte gUnk_03003F80 thumb_func_start sub_0803414C sub_0803414C: @ 0x0803414C push {r4, r5, lr} adds r4, r0, #0 ldr r1, _08034194 @ =gUnk_03000BF0 ldrh r0, [r1, #6] adds r2, r0, #0 adds r2, #0xb8 ldrh r0, [r1, #8] adds r3, r0, #0 adds r3, #0x48 movs r1, #0x2e ldrsh r0, [r4, r1] subs r0, r0, r2 adds r0, #1 cmp r0, #2 bhi _080341A2 movs r5, #0x32 ldrsh r0, [r4, r5] subs r0, r0, r3 adds r0, #1 cmp r0, #2 bhi _080341A2 adds r0, r4, #0 bl sub_080349D8 cmp r0, #0 beq _080341B6 ldrb r0, [r4, #0xd] cmp r0, #0 beq _08034198 movs r0, #0 strb r0, [r4, #0xd] adds r0, r4, #0 movs r1, #0x1e bl sub_0803442C b _080341B6 .align 2, 0 _08034194: .4byte gUnk_03000BF0 _08034198: adds r0, r4, #0 movs r1, #0x5a bl sub_0803442C b _080341B6 _080341A2: movs r1, #0x2e ldrsh r0, [r4, r1] movs r5, #0x32 ldrsh r1, [r4, r5] bl sub_080045D4 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_0806F69C _080341B6: pop {r4, r5, pc} thumb_func_start sub_080341B8 sub_080341B8: @ 0x080341B8 push {r4, lr} adds r4, r0, #0 bl sub_080349D8 cmp r0, #0 beq _080341CC adds r0, r4, #0 movs r1, #0x2d bl sub_0803442C _080341CC: pop {r4, pc} .align 2, 0 thumb_func_start sub_080341D0 sub_080341D0: @ 0x080341D0 push {lr} adds r2, r0, #0 adds r0, #0x80 ldrb r1, [r0] movs r0, #3 ands r0, r1 cmp r0, #3 beq _080341F2 ldrb r0, [r2, #0xe] subs r0, #1 strb r0, [r2, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080341F2 adds r0, r2, #0 bl sub_0803443C _080341F2: pop {pc} thumb_func_start sub_080341F4 sub_080341F4: @ 0x080341F4 push {r4, lr} adds r4, r0, #0 bl sub_080347B4 adds r0, r4, #0 bl sub_080349D8 cmp r0, #0 beq _0803420C adds r0, r4, #0 bl sub_08034420 _0803420C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08034210 sub_08034210: @ 0x08034210 push {r4, lr} adds r4, r0, #0 bl sub_080347B4 adds r0, r4, #0 adds r0, #0x7d ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08034238 adds r0, r4, #0 bl sub_080349D8 cmp r0, #0 beq _08034238 adds r0, r4, #0 bl sub_08034420 b _0803423E _08034238: adds r0, r4, #0 bl sub_08034830 _0803423E: pop {r4, pc} thumb_func_start sub_08034240 sub_08034240: @ 0x08034240 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x7e ldrh r0, [r1] cmp r0, #0 beq _08034260 subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x95 bhi _08034260 adds r0, r4, #0 bl sub_0803473C _08034260: adds r0, r4, #0 bl sub_080349D8 cmp r0, #0 beq _08034270 adds r0, r4, #0 bl sub_08034420 _08034270: pop {r4, pc} .align 2, 0 thumb_func_start sub_08034274 sub_08034274: @ 0x08034274 push {r4, lr} adds r4, r0, #0 bl sub_080349D8 cmp r0, #0 beq _08034288 adds r0, r4, #0 bl sub_08034420 b _0803429E _08034288: adds r0, r4, #0 bl sub_0803473C adds r0, r4, #0 bl sub_08034A10 cmp r0, #0 beq _0803429E adds r0, r4, #0 bl sub_080347FC _0803429E: pop {r4, pc} thumb_func_start sub_080342A0 sub_080342A0: @ 0x080342A0 push {r4, lr} adds r4, r0, #0 bl sub_080349D8 cmp r0, #0 beq _080342B2 adds r0, r4, #0 bl sub_08034420 _080342B2: pop {r4, pc} thumb_func_start sub_080342B4 sub_080342B4: @ 0x080342B4 push {lr} adds r1, r0, #0 adds r0, #0x7e ldrh r0, [r0] cmp r0, #0xff bne _080342C6 adds r0, r1, #0 bl sub_08034420 _080342C6: pop {pc} thumb_func_start sub_080342C8 sub_080342C8: @ 0x080342C8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] adds r1, r0, #0 cmp r1, #0 beq _08034304 subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080342E4 ldr r0, _080342FC @ =0x00000115 bl sub_080A3268 _080342E4: ldr r2, _08034300 @ =gUnk_080CECEC ldrb r0, [r4, #0xe] lsrs r0, r0, #1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x62 strb r1, [r0] b _08034340 .align 2, 0 _080342FC: .4byte 0x00000115 _08034300: .4byte gUnk_080CECEC _08034304: adds r0, r4, #0 adds r0, #0x62 strb r1, [r0] movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08034340 movs r0, #0xc strb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x7e movs r1, #0 movs r0, #0xe1 lsls r0, r0, #3 strh r0, [r2] adds r0, r4, #0 adds r0, #0x7d strb r1, [r0] adds r0, #4 strb r1, [r0] movs r0, #0x1e movs r1, #0 bl sub_08080964 ldr r0, _08034344 @ =0x000001A1 bl sub_080A3268 _08034340: pop {r4, pc} .align 2, 0 _08034344: .4byte 0x000001A1 thumb_func_start sub_08034348 sub_08034348: @ 0x08034348 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x7e ldrh r0, [r1] cmp r0, #0 beq _0803435C subs r0, #1 strh r0, [r1] b _08034388 _0803435C: ldrh r2, [r4, #0x36] movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #0xa rsbs r0, r0, #0 cmp r1, r0 ble _08034370 subs r0, r2, #1 strh r0, [r4, #0x36] b _08034388 _08034370: adds r0, r4, #0 bl sub_080349D8 cmp r0, #0 beq _08034388 adds r1, r4, #0 adds r1, #0x81 movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_08034420 _08034388: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803438C sub_0803438C: @ 0x0803438C push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xe] adds r1, r0, #0 cmp r1, #0 bne _080343A0 adds r0, r5, #0 adds r0, #0x45 strb r1, [r0] b _08034414 _080343A0: subs r2, r0, #1 strb r2, [r5, #0xe] lsls r0, r2, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xc0 bls _080343C4 ldr r0, _080343C0 @ =gUnk_080CED06 movs r1, #3 ands r2, r1 adds r0, r2, r0 ldrb r1, [r0] adds r0, r5, #0 adds r0, #0x62 strb r1, [r0] b _08034414 .align 2, 0 _080343C0: .4byte gUnk_080CED06 _080343C4: movs r0, #0x1f ands r2, r0 cmp r2, #0 bne _08034414 ldr r4, _08034418 @ =gUnk_080CED02 bl sub_08000E50 movs r1, #3 ands r1, r0 adds r1, r1, r4 ldrb r1, [r1] adds r0, r5, #0 movs r2, #0 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _08034414 ldrb r1, [r5, #0xe] lsrs r1, r1, #4 ldr r0, _0803441C @ =gUnk_080CECF4 adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] ldrh r3, [r2, #0x2e] adds r0, r0, r3 strh r0, [r2, #0x2e] movs r0, #1 ldrsb r0, [r1, r0] ldrh r1, [r2, #0x32] adds r0, r0, r1 strh r0, [r2, #0x32] 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] _08034414: pop {r4, r5, pc} .align 2, 0 _08034418: .4byte gUnk_080CED02 _0803441C: .4byte gUnk_080CECF4 thumb_func_start sub_08034420 sub_08034420: @ 0x08034420 movs r1, #2 strb r1, [r0, #0xc] adds r0, #0x7d movs r1, #3 strb r1, [r0] bx lr thumb_func_start sub_0803442C sub_0803442C: @ 0x0803442C movs r2, #4 strb r2, [r0, #0xc] strb r1, [r0, #0xe] adds r0, #0x7d movs r1, #3 strb r1, [r0] bx lr .align 2, 0 thumb_func_start sub_0803443C sub_0803443C: @ 0x0803443C push {lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x7d movs r0, #0 strb r0, [r1] ldr r0, _0803445C @ =gUnk_030010A0 adds r0, #0x39 ldrb r0, [r0] cmp r0, #0x1e bhi _08034460 adds r0, r2, #0 bl sub_080344BC b _08034472 .align 2, 0 _0803445C: .4byte gUnk_030010A0 _08034460: cmp r0, #0x3c bhi _0803446C adds r0, r2, #0 bl sub_08034498 b _08034472 _0803446C: adds r0, r2, #0 bl sub_08034474 _08034472: pop {pc} thumb_func_start sub_08034474 sub_08034474: @ 0x08034474 push {r4, lr} ldr r2, _08034494 @ =gUnk_080CED0C adds r4, r0, #0 adds r4, #0x7c ldrb r1, [r4] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 ldrb r0, [r4] adds r0, #1 movs r1, #7 ands r0, r1 strb r0, [r4] pop {r4, pc} .align 2, 0 _08034494: .4byte gUnk_080CED0C thumb_func_start sub_08034498 sub_08034498: @ 0x08034498 push {r4, lr} ldr r2, _080344B8 @ =gUnk_080CED2C adds r4, r0, #0 adds r4, #0x7c ldrb r1, [r4] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 ldrb r0, [r4] adds r0, #1 movs r1, #7 ands r0, r1 strb r0, [r4] pop {r4, pc} .align 2, 0 _080344B8: .4byte gUnk_080CED2C thumb_func_start sub_080344BC sub_080344BC: @ 0x080344BC push {r4, lr} ldr r2, _080344DC @ =gUnk_080CED4C adds r4, r0, #0 adds r4, #0x7c ldrb r1, [r4] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 ldrb r0, [r4] adds r0, #1 movs r1, #7 ands r0, r1 strb r0, [r4] pop {r4, pc} .align 2, 0 _080344DC: .4byte gUnk_080CED4C thumb_func_start sub_080344E0 sub_080344E0: @ 0x080344E0 push {r4, lr} adds r4, r0, #0 adds r0, #0x80 ldrb r1, [r0] movs r0, #5 ands r0, r1 cmp r0, #0 beq _080344F8 adds r0, r4, #0 bl sub_080345A0 b _0803451A _080344F8: movs r0, #0xa ands r0, r1 cmp r0, #0 bne _0803450C bl sub_08000E50 movs r1, #1 ands r1, r0 cmp r1, #0 beq _08034514 _0803450C: adds r0, r4, #0 bl sub_080345B8 b _0803451A _08034514: adds r0, r4, #0 bl sub_080345A0 _0803451A: pop {r4, pc} thumb_func_start sub_0803451C sub_0803451C: @ 0x0803451C push {r4, lr} adds r4, r0, #0 adds r0, #0x80 ldrb r1, [r0] movs r0, #5 ands r0, r1 cmp r0, #0 bne _08034548 movs r0, #0xa ands r0, r1 cmp r0, #0 beq _0803453C adds r0, r4, #0 bl sub_08034638 b _08034556 _0803453C: bl sub_08000E50 movs r1, #1 ands r1, r0 cmp r1, #0 beq _08034550 _08034548: adds r0, r4, #0 bl sub_08034618 b _08034556 _08034550: adds r0, r4, #0 bl sub_08034638 _08034556: pop {r4, pc} thumb_func_start sub_08034558 sub_08034558: @ 0x08034558 push {r4, lr} adds r4, r0, #0 bl sub_08000E50 movs r1, #1 ands r1, r0 cmp r1, #0 beq _08034570 adds r0, r4, #0 bl sub_08034658 b _08034576 _08034570: adds r0, r4, #0 bl sub_0803467C _08034576: pop {r4, pc} thumb_func_start sub_08034578 sub_08034578: @ 0x08034578 push {r4, lr} adds r4, r0, #0 movs r1, #0 movs r0, #3 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x7d strb r1, [r0] ldr r1, [r4, #0x74] adds r0, r4, #0 movs r2, #0 bl sub_080348A4 ldr r1, [r4, #0x78] adds r0, r4, #0 movs r2, #0 bl sub_080348A4 pop {r4, pc} .align 2, 0 thumb_func_start sub_080345A0 sub_080345A0: @ 0x080345A0 push {lr} movs r1, #5 strb r1, [r0, #0xc] adds r2, r0, #0 adds r2, #0x7d movs r1, #1 strb r1, [r2] ldr r1, [r0, #0x78] movs r2, #1 bl sub_080348A4 pop {pc} thumb_func_start sub_080345B8 sub_080345B8: @ 0x080345B8 push {lr} movs r1, #5 strb r1, [r0, #0xc] adds r2, r0, #0 adds r2, #0x7d movs r1, #2 strb r1, [r2] ldr r1, [r0, #0x74] movs r2, #1 bl sub_080348A4 pop {pc} thumb_func_start sub_080345D0 sub_080345D0: @ 0x080345D0 push {r4, lr} adds r4, r0, #0 movs r0, #6 strb r0, [r4, #0xc] bl sub_08000E50 movs r1, #1 ands r1, r0 cmp r1, #0 beq _080345FE ldr r1, [r4, #0x74] adds r0, r4, #0 movs r2, #2 bl sub_080348A4 cmp r0, #0 bne _08034616 ldr r1, [r4, #0x78] adds r0, r4, #0 movs r2, #2 bl sub_080348A4 b _08034616 _080345FE: ldr r1, [r4, #0x78] adds r0, r4, #0 movs r2, #2 bl sub_080348A4 cmp r0, #0 bne _08034616 ldr r1, [r4, #0x74] adds r0, r4, #0 movs r2, #2 bl sub_080348A4 _08034616: pop {r4, pc} thumb_func_start sub_08034618 sub_08034618: @ 0x08034618 push {lr} movs r1, #7 strb r1, [r0, #0xc] adds r2, r0, #0 adds r2, #0x7d movs r1, #1 strb r1, [r2] adds r2, #1 movs r1, #0xb4 strh r1, [r2] ldr r1, [r0, #0x78] movs r2, #3 bl sub_080348A4 pop {pc} .align 2, 0 thumb_func_start sub_08034638 sub_08034638: @ 0x08034638 push {lr} movs r1, #7 strb r1, [r0, #0xc] adds r2, r0, #0 adds r2, #0x7d movs r1, #2 strb r1, [r2] adds r2, #1 movs r1, #0xb4 strh r1, [r2] ldr r1, [r0, #0x74] movs r2, #3 bl sub_080348A4 pop {pc} .align 2, 0 thumb_func_start sub_08034658 sub_08034658: @ 0x08034658 push {r4, lr} movs r2, #0 movs r1, #8 strb r1, [r0, #0xc] adds r4, r0, #0 adds r4, #0x7d strb r2, [r4] ldr r1, [r0, #0x78] movs r2, #4 bl sub_080348A4 cmp r0, #0 bne _0803467A ldrb r0, [r4] movs r1, #0x40 orrs r0, r1 strb r0, [r4] _0803467A: pop {r4, pc} thumb_func_start sub_0803467C sub_0803467C: @ 0x0803467C push {r4, lr} movs r2, #0 movs r1, #8 strb r1, [r0, #0xc] adds r4, r0, #0 adds r4, #0x7d strb r2, [r4] ldr r1, [r0, #0x74] movs r2, #4 bl sub_080348A4 cmp r0, #0 bne _0803469E ldrb r0, [r4] movs r1, #0x40 orrs r0, r1 strb r0, [r4] _0803469E: pop {r4, pc} thumb_func_start sub_080346A0 sub_080346A0: @ 0x080346A0 push {r4, lr} adds r4, r0, #0 movs r1, #0 movs r0, #9 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x7d strb r1, [r0] ldr r1, [r4, #0x74] adds r0, r4, #0 movs r2, #6 bl sub_080348A4 ldr r1, [r4, #0x78] adds r0, r4, #0 movs r2, #6 bl sub_080348A4 pop {r4, pc} .align 2, 0 thumb_func_start sub_080346C8 sub_080346C8: @ 0x080346C8 push {r4, lr} adds r4, r0, #0 movs r1, #0 movs r0, #0xa strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x7e strh r1, [r0] bl sub_08000E50 movs r1, #1 ands r1, r0 cmp r1, #0 beq _0803470C ldr r1, [r4, #0x74] adds r0, r4, #0 movs r2, #8 bl sub_080348A4 cmp r0, #0 beq _080346F6 ldr r1, [r4, #0x78] b _0803471C _080346F6: ldr r1, [r4, #0x74] adds r0, r4, #0 movs r2, #7 bl sub_080348A4 ldr r1, [r4, #0x78] adds r0, r4, #0 movs r2, #8 bl sub_080348A4 b _0803473A _0803470C: ldr r1, [r4, #0x78] adds r0, r4, #0 movs r2, #8 bl sub_080348A4 cmp r0, #0 beq _08034726 ldr r1, [r4, #0x74] _0803471C: adds r0, r4, #0 movs r2, #7 bl sub_080348A4 b _0803473A _08034726: ldr r1, [r4, #0x74] adds r0, r4, #0 movs r2, #8 bl sub_080348A4 ldr r1, [r4, #0x78] adds r0, r4, #0 movs r2, #7 bl sub_080348A4 _0803473A: pop {r4, pc} thumb_func_start sub_0803473C sub_0803473C: @ 0x0803473C push {r4, r5, lr} adds r3, r0, #0 adds r0, #0x7d ldrb r1, [r0] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08034764 ldr r0, [r3, #0x74] ldrb r0, [r0, #0xc] cmp r0, #0x28 bhi _080347B0 ldr r0, _08034760 @ =gUnk_03001160 movs r1, #0x2e ldrsh r0, [r0, r1] adds r2, r0, #0 subs r2, #0x60 b _08034776 .align 2, 0 _08034760: .4byte gUnk_03001160 _08034764: ldr r0, [r3, #0x78] ldrb r0, [r0, #0xc] cmp r0, #0x28 bhi _080347B0 ldr r0, _08034790 @ =gUnk_03001160 movs r5, #0x2e ldrsh r0, [r0, r5] adds r2, r0, #0 adds r2, #0x60 _08034776: ldr r0, _08034794 @ =gUnk_03000BF0 ldrh r4, [r0, #6] subs r0, r2, #4 movs r5, #0x2e ldrsh r1, [r3, r5] cmp r0, r1 bls _08034798 adds r0, r4, #0 adds r0, #0xe0 cmp r0, r1 blo _080347B0 movs r0, #8 b _080347A8 .align 2, 0 _08034790: .4byte gUnk_03001160 _08034794: .4byte gUnk_03000BF0 _08034798: adds r0, r2, #4 cmp r0, r1 bhs _080347B0 adds r0, r4, #0 adds r0, #0x90 cmp r0, r1 bhi _080347B0 movs r0, #0x18 _080347A8: strb r0, [r3, #0x15] adds r0, r3, #0 bl sub_0806F69C _080347B0: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080347B4 sub_080347B4: @ 0x080347B4 push {r4, r5, lr} adds r2, r0, #0 ldr r0, _080347D8 @ =gUnk_03001160 movs r1, #0x2e ldrsh r3, [r0, r1] ldr r0, _080347DC @ =gUnk_03000BF0 ldrh r4, [r0, #6] subs r0, r3, #4 movs r5, #0x2e ldrsh r1, [r2, r5] cmp r0, r1 bls _080347E0 adds r0, r4, #0 adds r0, #0xe0 cmp r0, r1 blo _080347F8 movs r0, #8 b _080347F0 .align 2, 0 _080347D8: .4byte gUnk_03001160 _080347DC: .4byte gUnk_03000BF0 _080347E0: adds r0, r3, #4 cmp r0, r1 bhs _080347F8 adds r0, r4, #0 adds r0, #0x90 cmp r0, r1 bhi _080347F8 movs r0, #0x18 _080347F0: strb r0, [r2, #0x15] adds r0, r2, #0 bl sub_0806F69C _080347F8: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080347FC sub_080347FC: @ 0x080347FC push {r4, lr} adds r4, r0, #0 adds r0, #0x7d ldrb r1, [r0] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08034818 ldr r1, [r4, #0x78] adds r0, r4, #0 movs r2, #5 bl sub_080348A4 b _08034822 _08034818: ldr r1, [r4, #0x74] adds r0, r4, #0 movs r2, #5 bl sub_080348A4 _08034822: adds r2, r4, #0 adds r2, #0x7d ldrb r1, [r2] movs r0, #0x20 orrs r0, r1 strb r0, [r2] pop {r4, pc} thumb_func_start sub_08034830 sub_08034830: @ 0x08034830 push {r4, lr} adds r4, r0, #0 bl sub_080349D8 cmp r0, #0 beq _0803484C adds r1, r4, #0 adds r1, #0x7d movs r0, #0x80 strb r0, [r1] adds r0, r4, #0 bl sub_080345D0 b _080348A0 _0803484C: adds r0, r4, #0 bl sub_08034A10 cmp r0, #0 beq _080348A0 adds r0, r4, #0 adds r0, #0x80 ldrb r1, [r0] movs r0, #0xf ands r0, r1 cmp r0, #0 beq _08034876 adds r0, r4, #0 bl sub_080349D8 cmp r0, #0 beq _080348A0 adds r0, r4, #0 bl sub_08034420 b _080348A0 _08034876: adds r2, r4, #0 adds r2, #0x7d ldrb r0, [r2] movs r1, #0x20 orrs r1, r0 strb r1, [r2] movs r0, #0x10 ands r1, r0 cmp r1, #0 beq _08034896 ldr r1, [r4, #0x78] adds r0, r4, #0 movs r2, #2 bl sub_080348A4 b _080348A0 _08034896: ldr r1, [r4, #0x74] adds r0, r4, #0 movs r2, #2 bl sub_080348A4 _080348A0: pop {r4, pc} .align 2, 0 thumb_func_start sub_080348A4 sub_080348A4: @ 0x080348A4 push {r4, r5, lr} adds r4, r0, #0 adds r3, r1, #0 adds r5, r2, #0 ldrb r0, [r3, #0xa] cmp r0, #0 bne _080348C6 movs r2, #5 movs r0, #0x7d adds r0, r0, r4 mov ip, r0 ldrb r1, [r0] movs r0, #0x10 orrs r0, r1 mov r1, ip strb r0, [r1] b _080348C8 _080348C6: movs r2, #0xa _080348C8: adds r0, r4, #0 adds r0, #0x80 ldrb r0, [r0] ands r0, r2 cmp r0, #0 beq _080348F0 adds r0, r4, #0 adds r0, #0x7d ldrb r2, [r0] ldrb r1, [r3, #0xa] adds r3, r0, #0 cmp r1, #0 bne _080348E6 movs r0, #1 b _080348E8 _080348E6: movs r0, #2 _080348E8: orrs r0, r2 strb r0, [r3] movs r0, #0 b _08034998 _080348F0: cmp r5, #8 bhi _08034996 lsls r0, r5, #2 ldr r1, _08034900 @ =_08034904 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08034900: .4byte _08034904 _08034904: @ jump table .4byte _08034928 @ case 0 .4byte _0803492E @ case 1 .4byte _0803493C @ case 2 .4byte _0803494A @ case 3 .4byte _0803493C @ case 4 .4byte _08034958 @ case 5 .4byte _08034966 @ case 6 .4byte _0803496C @ case 7 .4byte _08034982 @ case 8 _08034928: movs r0, #3 strb r0, [r3, #0xc] b _08034996 _0803492E: movs r0, #4 strb r0, [r3, #0xc] adds r1, r3, #0 adds r1, #0x7c movs r0, #3 strb r0, [r1] b _08034996 _0803493C: movs r0, #4 strb r0, [r3, #0xc] adds r1, r3, #0 adds r1, #0x7c movs r0, #1 strb r0, [r1] b _08034996 _0803494A: movs r0, #0xf strb r0, [r3, #0xc] adds r1, r3, #0 adds r1, #0x7e movs r0, #0xb4 strh r0, [r1] b _08034996 _08034958: movs r0, #0xf strb r0, [r3, #0xc] adds r1, r3, #0 adds r1, #0x7e movs r0, #1 strh r0, [r1] b _08034996 _08034966: movs r0, #0x1e strb r0, [r3, #0xc] b _08034996 _0803496C: movs r0, #0x1b strb r0, [r3, #0xc] ldrb r1, [r3, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r3, #0x10] adds r0, r3, #0 movs r1, #5 bl sub_08004260 b _08034996 _08034982: ldrb r0, [r3, #0xa] adds r2, r0, #2 movs r0, #0x36 adds r1, r2, #0 bl sub_0804AA60 adds r3, r0, #0 cmp r3, #0 beq _08034996 str r4, [r3, #0x50] _08034996: movs r0, #1 _08034998: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0803499C sub_0803499C: @ 0x0803499C push {lr} adds r3, r0, #0 adds r0, #0x80 ldrb r1, [r0] movs r0, #0xc ands r0, r1 cmp r0, #0xc beq _080349D0 adds r0, r3, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #0 beq _080349D0 ldr r2, _080349D4 @ =gUnk_080CED6C ldrb r0, [r3, #0xf] adds r0, #1 strb r0, [r3, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x1c movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r3, #0x36] _080349D0: pop {pc} .align 2, 0 _080349D4: .4byte gUnk_080CED6C thumb_func_start sub_080349D8 sub_080349D8: @ 0x080349D8 push {lr} adds r2, r0, #0 adds r0, #0x7d ldrb r0, [r0] movs r1, #3 ands r1, r0 cmp r1, #3 beq _08034A08 cmp r1, #1 bne _080349F6 adds r0, r2, #0 adds r0, #0x80 ldrb r1, [r0] movs r0, #0xa b _08034A02 _080349F6: cmp r1, #2 bne _08034A0C adds r0, r2, #0 adds r0, #0x80 ldrb r1, [r0] movs r0, #5 _08034A02: ands r0, r1 cmp r0, #0 beq _08034A0C _08034A08: movs r0, #1 b _08034A0E _08034A0C: movs r0, #0 _08034A0E: pop {pc} thumb_func_start sub_08034A10 sub_08034A10: @ 0x08034A10 push {r4, lr} adds r1, r0, #0 adds r3, r1, #0 adds r3, #0x7d ldrb r2, [r3] movs r0, #0x60 ands r0, r2 cmp r0, #0x40 beq _08034A52 movs r0, #0x10 ands r0, r2 cmp r0, #0 beq _08034A56 adds r4, r1, #0 adds r4, #0x80 ldrb r1, [r4] movs r0, #5 ands r0, r1 cmp r0, #0 beq _08034A3E movs r0, #0x40 orrs r0, r2 strb r0, [r3] _08034A3E: ldrb r1, [r4] movs r0, #0xa ands r0, r1 cmp r0, #0 beq _08034A7E ldrb r1, [r3] movs r0, #3 ands r0, r1 cmp r0, #1 bne _08034A7E _08034A52: movs r0, #1 b _08034A80 _08034A56: adds r4, r1, #0 adds r4, #0x80 ldrb r1, [r4] movs r0, #0xa ands r0, r1 cmp r0, #0 beq _08034A6A movs r0, #0x40 orrs r0, r2 strb r0, [r3] _08034A6A: ldrb r1, [r4] movs r0, #5 ands r0, r1 cmp r0, #0 beq _08034A7E ldrb r1, [r3] movs r0, #3 ands r0, r1 cmp r0, #2 beq _08034A52 _08034A7E: movs r0, #0 _08034A80: pop {r4, pc} .align 2, 0 thumb_func_start sub_08034A84 sub_08034A84: @ 0x08034A84 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldr r0, [r0, #4] cmp r0, #0 bne _08034A98 adds r0, r4, #0 bl sub_0805E7BC b _08034AC2 _08034A98: ldrb r0, [r4, #0xc] cmp r0, #0 bne _08034ABA movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0 bl sub_08004260 _08034ABA: ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA6C _08034AC2: pop {r4, pc} thumb_func_start sub_08034AC4 sub_08034AC4: @ 0x08034AC4 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] movs r3, #0x80 lsls r3, r3, #9 adds r1, r4, #0 movs r2, #0 bl sub_0806FA48 ldr r1, _08034AE8 @ =gUnk_080CED74 ldrb r0, [r4, #0xc] 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 _08034AE8: .4byte gUnk_080CED74 thumb_func_start sub_08034AEC sub_08034AEC: @ 0x08034AEC push {lr} movs r1, #1 strb r1, [r0, #0xc] movs r1, #0x1e strb r1, [r0, #0xe] ldrb r1, [r0, #0xa] adds r1, #1 bl sub_08004260 ldr r0, _08034B08 @ =0x00000151 bl sub_080A3268 pop {pc} .align 2, 0 _08034B08: .4byte 0x00000151 thumb_func_start sub_08034B0C sub_08034B0C: @ 0x08034B0C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08034B1A subs r0, #1 b _08034B34 _08034B1A: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08034B36 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x50 _08034B34: strb r0, [r4, #0xe] _08034B36: pop {r4, pc} thumb_func_start sub_08034B38 sub_08034B38: @ 0x08034B38 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08034B58 movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0xa] adds r1, #3 adds r0, r4, #0 bl sub_08004260 b _08034B9A _08034B58: movs r0, #0xe bl sub_080A7EE0 adds r5, r0, #0 cmp r5, #0 beq _08034B9A ldrb r0, [r4, #0xa] subs r0, #2 strb r0, [r5, #0xa] lsls r0, r0, #0x18 cmp r0, #0 bne _08034B78 ldrb r1, [r4, #0xe] movs r0, #0xa8 subs r0, r0, r1 b _08034B7C _08034B78: ldrb r0, [r4, #0xe] adds r0, #0x58 _08034B7C: strb r0, [r5, #0x15] ldrb r0, [r5, #0xa] lsls r0, r0, #1 ldr r1, _08034B9C @ =gUnk_080CED84 adds r0, r0, r1 movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #0x10 movs r3, #1 ldrsb r3, [r0, r3] lsls r3, r3, #0x10 adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA48 _08034B9A: pop {r4, r5, pc} .align 2, 0 _08034B9C: .4byte gUnk_080CED84 thumb_func_start sub_08034BA0 sub_08034BA0: @ 0x08034BA0 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08034BC4 ldr r0, [r4, #0x50] adds r0, #0x7e movs r1, #0xff strh r1, [r0] adds r0, r4, #0 bl sub_0805E7BC _08034BC4: pop {r4, pc} .align 2, 0 thumb_func_start sub_08034BC8 sub_08034BC8: @ 0x08034BC8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08034BDE movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _08034BDE: ldr r0, [r4, #0x50] adds r1, r4, #0 movs r2, #0 movs r3, #1 bl sub_0806FA90 adds r0, r4, #0 bl sub_0800445C movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 bne _08034BFE adds r0, r4, #0 bl sub_08034C00 _08034BFE: pop {r4, pc} thumb_func_start sub_08034C00 sub_08034C00: @ 0x08034C00 push {r4, lr} adds r3, r0, #0 ldr r0, _08034C44 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _08034C5A movs r1, #0x2e ldrsh r0, [r3, r1] ldr r2, _08034C48 @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r0, r0, r1 movs r4, #0x32 ldrsh r1, [r3, r4] ldrh r2, [r2, #8] subs r1, r1, r2 adds r1, #0xd movs r2, #3 movs r3, #3 bl sub_0800293E cmp r0, #0 beq _08034C5A ldr r0, _08034C4C @ =gUnk_030010A0 adds r0, #0x39 ldrb r0, [r0] cmp r0, #0x3c bls _08034C54 ldr r0, _08034C50 @ =gUnk_080CED88 bl sub_08080840 b _08034C5A .align 2, 0 _08034C44: .4byte gUnk_03003F80 _08034C48: .4byte gUnk_03000BF0 _08034C4C: .4byte gUnk_030010A0 _08034C50: .4byte gUnk_080CED88 _08034C54: ldr r0, _08034C5C @ =gUnk_080CED9C bl sub_08080840 _08034C5A: pop {r4, pc} .align 2, 0 _08034C5C: .4byte gUnk_080CED9C thumb_func_start sub_08034C60 sub_08034C60: @ 0x08034C60 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _08034C78 @ =gUnk_080CEE90 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _08034C78: .4byte gUnk_080CEE90 thumb_func_start sub_08034C7C sub_08034C7C: @ 0x08034C7C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xa] cmp r0, #2 beq _08034C9C ldr r0, _08034C98 @ =gUnk_080CEEA4 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 b _08034CA2 .align 2, 0 _08034C98: .4byte gUnk_080CEEA4 _08034C9C: adds r0, r2, #0 bl sub_08034E18 _08034CA2: pop {pc} thumb_func_start sub_08034CA4 sub_08034CA4: @ 0x08034CA4 push {r4, lr} adds r4, r0, #0 bl sub_08034FA0 ldr r1, _08034CB8 @ =gUnk_080CEE90 adds r0, r4, #0 bl sub_0804AA30 pop {r4, pc} .align 2, 0 _08034CB8: .4byte gUnk_080CEE90 thumb_func_start sub_08034CBC sub_08034CBC: @ 0x08034CBC push {lr} bl sub_0804A7D4 pop {pc} thumb_func_start sub_08034CC4 sub_08034CC4: @ 0x08034CC4 push {r4, r5, r6, lr} adds r5, r0, #0 bl sub_08035084 cmp r0, #0 beq _08034D42 ldrb r0, [r5, #0xa] adds r0, #1 movs r1, #0 strb r0, [r5, #0xc] strb r1, [r5, #0xf] adds r2, r5, #0 adds r2, #0x6d ldrb r1, [r2] movs r0, #1 orrs r0, r1 strb r0, [r2] adds r1, r5, #0 adds r1, #0x78 movs r0, #0x96 lsls r0, r0, #3 strh r0, [r1] adds r0, r5, #0 bl sub_08034F70 ldrb r1, [r5, #0xa] adds r0, r5, #0 bl sub_08004260 ldr r0, _08034D44 @ =0x00004022 movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _08034D48 @ =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 movs r0, #0x37 movs r1, #2 bl sub_0804AA60 adds r1, r0, #0 cmp r1, #0 beq _08034D42 str r1, [r5, #0x54] str r5, [r1, #0x50] adds r0, r5, #0 bl sub_0806FA24 _08034D42: pop {r4, r5, r6, pc} .align 2, 0 _08034D44: .4byte 0x00004022 _08034D48: .4byte gUnk_03000BF0 thumb_func_start sub_08034D4C sub_08034D4C: @ 0x08034D4C push {r4, r5, r6, lr} adds r5, r0, #0 bl sub_08004274 adds r6, r5, #0 adds r6, #0x78 ldrh r0, [r6] subs r0, #1 strh r0, [r6] lsls r0, r0, #0x10 cmp r0, #0 bne _08034DC4 ldrb r0, [r5, #0xf] cmp r0, #7 bhi _08034DBC movs r0, #0x4b movs r1, #0 bl sub_0804AA60 adds r4, r0, #0 cmp r4, #0 beq _08034DBC bl sub_08000E50 movs r1, #5 bl __modsi3 adds r0, #0xc strb r0, [r4, #0x15] ldr r1, _08034DB8 @ =gUnk_03000BF0 ldrh r0, [r1, #0x1e] lsrs r0, r0, #1 ldrh r2, [r1, #6] adds r0, r0, r2 strh r0, [r4, #0x2e] ldrh r0, [r1, #8] adds r0, #8 strh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x38 movs r0, #3 strb r0, [r1] str r5, [r4, #0x50] adds r0, r4, #0 bl sub_08016A04 movs r0, #0x96 lsls r0, r0, #2 strh r0, [r6] ldrb r0, [r5, #0xf] adds r0, #1 strb r0, [r5, #0xf] b _08034DC4 .align 2, 0 _08034DB8: .4byte gUnk_03000BF0 _08034DBC: adds r1, r5, #0 adds r1, #0x78 movs r0, #0x78 strh r0, [r1] _08034DC4: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08034DC8 sub_08034DC8: @ 0x08034DC8 push {r4, r5, lr} adds r4, r0, #0 ldr r0, _08034E10 @ =gUnk_030010A0 adds r0, #0x39 ldrb r0, [r0] cmp r0, #0 bne _08034E0E adds r0, r4, #0 movs r1, #0x51 movs r2, #0 bl sub_080A29AC movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _08034E14 @ =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 bl sub_0805E780 _08034E0E: pop {r4, r5, pc} .align 2, 0 _08034E10: .4byte gUnk_030010A0 _08034E14: .4byte gUnk_03000BF0 thumb_func_start sub_08034E18 sub_08034E18: @ 0x08034E18 push {lr} ldr r2, _08034E2C @ =gUnk_080CEEB0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08034E2C: .4byte gUnk_080CEEB0 thumb_func_start sub_08034E30 sub_08034E30: @ 0x08034E30 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldrb r0, [r0, #0xa] adds r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r2, r4, #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] adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 movs r1, #2 bl sub_08004260 pop {r4, pc} .align 2, 0 thumb_func_start sub_08034E68 sub_08034E68: @ 0x08034E68 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldr r0, [r0, #4] cmp r0, #0 bne _08034EBC ldrb r1, [r4, #0x18] lsls r0, r1, #0x1e cmp r0, #0 beq _08034E8A movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_08035120 _08034E8A: ldr r0, _08034EB0 @ =gUnk_030010A0 adds r0, #0x39 ldrb r0, [r0] cmp r0, #0 bne _08034EB8 bl sub_08079F8C cmp r0, #0 beq _08034EBC movs r0, #3 strb r0, [r4, #0xc] ldr r1, _08034EB4 @ =gUnk_08012E20 adds r0, r4, #0 bl sub_0807DAD0 adds r1, r4, #0 adds r1, #0x84 str r0, [r1] b _08034EBC .align 2, 0 _08034EB0: .4byte gUnk_030010A0 _08034EB4: .4byte gUnk_08012E20 _08034EB8: bl sub_0805E780 _08034EBC: pop {r4, pc} .align 2, 0 thumb_func_start sub_08034EC0 sub_08034EC0: @ 0x08034EC0 push {lr} adds r1, r0, #0 ldr r0, [r1, #0x50] ldr r0, [r0, #4] cmp r0, #0 bne _08034ED6 adds r0, r1, #0 bl sub_08035120 bl sub_0805E780 _08034ED6: pop {pc} thumb_func_start sub_08034ED8 sub_08034ED8: @ 0x08034ED8 push {lr} movs r1, #0 bl sub_0807DDAC pop {pc} .align 2, 0 thumb_func_start sub_08034EE4 sub_08034EE4: @ 0x08034EE4 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xe] adds r0, #1 strb r0, [r5, #0xe] movs r1, #0xff ands r0, r1 movs r1, #0xf ands r0, r1 cmp r0, #0 bne _08034F46 bl sub_08000E50 adds r4, r0, #0 ldr r0, _08034F50 @ =gUnk_080CEEC8 movs r1, #3 ands r1, r4 adds r1, r1, r0 ldrb r1, [r1] adds r0, r5, #0 movs r2, #0 bl sub_080A29AC adds r3, r0, #0 cmp r3, #0 beq _08034F46 lsrs r1, r4, #2 movs r0, #0x77 ands r1, r0 lsls r1, r1, #1 adds r1, #1 ldr r2, _08034F54 @ =gUnk_03000BF0 ldrh r0, [r2, #0xa] adds r0, r0, r1 strh r0, [r3, #0x2e] lsrs r1, r4, #9 movs r0, #0x7e ands r1, r0 adds r1, #1 ldrh r0, [r2, #0xc] adds r0, r0, r1 strh r0, [r3, #0x32] adds r1, r3, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r3, #0 bl sub_08016A04 _08034F46: adds r0, r5, #0 movs r1, #0 bl sub_0807DDAC pop {r4, r5, pc} .align 2, 0 _08034F50: .4byte gUnk_080CEEC8 _08034F54: .4byte gUnk_03000BF0 thumb_func_start sub_08034F58 sub_08034F58: @ 0x08034F58 push {r4, lr} adds r4, r0, #0 ldr r0, _08034F6C @ =gUnk_0813ABA8 bl sub_08080840 adds r0, r4, #0 bl sub_0805E7BC pop {r4, pc} .align 2, 0 _08034F6C: .4byte gUnk_0813ABA8 thumb_func_start sub_08034F70 sub_08034F70: @ 0x08034F70 push {lr} adds r2, r0, #0 ldr r0, _08034F8C @ =gUnk_030010A0 adds r0, #0x39 ldrb r0, [r0] adds r1, r2, #0 adds r1, #0x45 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x3c bls _08034F90 movs r0, #0 b _08034F9A .align 2, 0 _08034F8C: .4byte gUnk_030010A0 _08034F90: cmp r0, #0x1e bls _08034F98 movs r0, #1 b _08034F9A _08034F98: movs r0, #2 _08034F9A: strb r0, [r2, #0xb] pop {pc} .align 2, 0 thumb_func_start sub_08034FA0 sub_08034FA0: @ 0x08034FA0 push {r4, r5, r6, lr} adds r4, r0, #0 adds r0, #0x3d ldrb r1, [r0] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08034FC0 ldr r0, [r4, #0x54] adds r0, #0x3d strb r1, [r0] movs r0, #0xc movs r1, #1 bl sub_08080964 _08034FC0: ldrb r0, [r4, #0xb] cmp r0, #0 beq _08035008 cmp r0, #1 beq _08035020 adds r0, r4, #0 adds r0, #0x45 ldrb r1, [r0] adds r5, r0, #0 cmp r1, #0 bne _08035040 movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _08035004 @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r3, #0x3f ands r0, r3 movs r6, #0x32 ldrsh r1, [r4, r6] 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 _08035040 .align 2, 0 _08035004: .4byte gUnk_03000BF0 _08035008: adds r0, r4, #0 adds r0, #0x45 ldrb r1, [r0] adds r5, r0, #0 cmp r1, #0x3b bhi _08035040 ldr r0, _0803501C @ =gUnk_030010A0 adds r0, #0x39 movs r1, #0x3c b _08035032 .align 2, 0 _0803501C: .4byte gUnk_030010A0 _08035020: adds r0, r4, #0 adds r0, #0x45 ldrb r1, [r0] adds r5, r0, #0 cmp r1, #0x1d bhi _08035040 ldr r0, _0803503C @ =gUnk_030010A0 adds r0, #0x39 movs r1, #0x1e _08035032: strb r1, [r0] adds r0, r4, #0 bl sub_08035050 b _08035048 .align 2, 0 _0803503C: .4byte gUnk_030010A0 _08035040: ldr r0, _0803504C @ =gUnk_030010A0 ldrb r1, [r5] adds r0, #0x39 strb r1, [r0] _08035048: pop {r4, r5, r6, pc} .align 2, 0 _0803504C: .4byte gUnk_030010A0 thumb_func_start sub_08035050 sub_08035050: @ 0x08035050 push {r4, lr} ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 movs r4, #0 strb r1, [r0, #0x10] adds r0, #0x45 strb r4, [r0] movs r0, #0x4b movs r1, #0 bl sub_0804AA60 adds r2, r0, #0 cmp r2, #0 beq _08035082 movs r0, #1 strb r0, [r2, #0xb] adds r1, r2, #0 adds r1, #0x38 movs r0, #3 strb r0, [r1] str r4, [r2, #0x50] adds r0, r2, #0 bl sub_08016A04 _08035082: pop {r4, pc} thumb_func_start sub_08035084 sub_08035084: @ 0x08035084 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} mov r8, r0 ldrb r0, [r0, #0xa] cmp r0, #0 bne _08035118 ldr r0, _080350A0 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x42 bls _080350A4 movs r0, #0 b _0803511A .align 2, 0 _080350A0: .4byte gUnk_03003DBC _080350A4: ldr r4, _080350D8 @ =gUnk_030010D8 _080350A6: bl sub_08000E50 movs r1, #6 bl __modsi3 adds r6, r0, #0 ldrb r0, [r4] lsrs r0, r0, #4 cmp r6, r0 beq _080350A6 ldr r2, _080350DC @ =gUnk_030010A0 adds r2, #0x38 ldrb r1, [r2] movs r0, #0xf ands r0, r1 lsls r1, r6, #4 orrs r0, r1 strb r0, [r2] movs r5, #0 ldr r4, _080350E0 @ =gUnk_080CEECC ldr r7, _080350E4 @ =gUnk_03000BF0 _080350D0: cmp r5, r6 bne _080350E8 mov r2, r8 b _080350F2 .align 2, 0 _080350D8: .4byte gUnk_030010D8 _080350DC: .4byte gUnk_030010A0 _080350E0: .4byte gUnk_080CEECC _080350E4: .4byte gUnk_03000BF0 _080350E8: movs r0, #0x37 movs r1, #1 bl sub_0804AA60 adds r2, r0, #0 _080350F2: ldrh r0, [r7, #6] ldrb r1, [r4] adds r0, r0, r1 strh r0, [r2, #0x2e] ldrh r0, [r7, #8] ldrb r1, [r4, #1] adds r0, r0, r1 strh r0, [r2, #0x32] adds r1, r2, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] adds r0, r2, #0 bl sub_08016A04 adds r5, #1 adds r4, #2 cmp r5, #5 bls _080350D0 _08035118: movs r0, #1 _0803511A: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08035120 sub_08035120: @ 0x08035120 push {r4, r5, r6, lr} movs r2, #0x2e ldrsh r1, [r0, r2] ldr r3, _0803515C @ =gUnk_03000BF0 ldrh r2, [r3, #6] subs r1, r1, r2 asrs r4, r1, #4 movs r2, #0x3f ands r4, r2 movs r1, #0x32 ldrsh r0, [r0, r1] ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r4, r0 movs r6, #0 ldr r5, _08035160 @ =gUnk_080CEED8 _08035146: movs r2, #0 ldrsh r0, [r5, r2] adds r0, r4, r0 bl sub_0807B600 adds r5, #2 adds r6, #1 cmp r6, #0x17 bls _08035146 pop {r4, r5, r6, pc} .align 2, 0 _0803515C: .4byte gUnk_03000BF0 _08035160: .4byte gUnk_080CEED8 thumb_func_start sub_08035164 sub_08035164: @ 0x08035164 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0803518C movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0xa] ands r1, r2 lsls r1, r1, #6 ldrb r2, [r4, #0x18] subs r0, #0x42 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0 bl sub_080042AC _0803518C: adds r0, r4, #0 bl sub_08035194 pop {r4, pc} thumb_func_start sub_08035194 sub_08035194: @ 0x08035194 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xa] cmp r0, #0 bne _080351A8 ldr r0, _080351A4 @ =gUnk_080CEF34 b _080351AA .align 2, 0 _080351A4: .4byte gUnk_080CEF34 _080351A8: ldr r0, _080351B8 @ =gUnk_080CEF58 _080351AA: ldrb r1, [r2, #0x1e] lsls r1, r1, #2 adds r1, r1, r0 ldr r0, [r1] str r0, [r2, #0x48] pop {pc} .align 2, 0 _080351B8: .4byte gUnk_080CEF58 thumb_func_start sub_080351BC sub_080351BC: @ 0x080351BC push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080351D4 @ =gUnk_080CF040 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080351D4: .4byte gUnk_080CF040 thumb_func_start sub_080351D8 sub_080351D8: @ 0x080351D8 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xa] cmp r1, #0 bne _08035204 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r4, #0xd] adds r0, r4, #0 adds r0, #0x42 strb r1, [r0] adds r1, r4, #0 adds r1, #0x45 movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_080368D8 adds r0, r4, #0 bl sub_0803520C b _08035208 _08035204: bl sub_0805E780 _08035208: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803520C sub_0803520C: @ 0x0803520C push {r4, lr} adds r4, r0, #0 adds r0, #0x7c ldrb r0, [r0] cmp r0, #0 bne _08035238 ldrb r0, [r4, #0xd] cmp r0, #3 beq _0803524C ldr r2, _08035234 @ =gUnk_03000BF0 adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] ldr r0, [r1, #0xc] str r0, [r2, #0x30] movs r0, #0x5a strb r0, [r1, #7] bl sub_08078B48 b _0803524C .align 2, 0 _08035234: .4byte gUnk_03000BF0 _08035238: adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] ldrb r0, [r1, #7] cmp r0, #0 beq _0803524C subs r0, #1 strb r0, [r1, #7] bl sub_08078B48 _0803524C: ldr r1, _08035284 @ =gUnk_080CF054 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, #3 bls _08035266 bl sub_08078B48 _08035266: adds r0, r4, #0 bl sub_0800445C adds r0, r4, #0 adds r0, #0x76 ldrh r1, [r0] subs r0, #2 ldrh r2, [r0] adds r0, #6 ldrh r3, [r0] adds r0, r4, #0 bl sub_0805EC9C pop {r4, pc} .align 2, 0 _08035284: .4byte gUnk_080CF054 thumb_func_start sub_08035288 sub_08035288: @ 0x08035288 push {r4, lr} adds r2, r0, #0 adds r0, #0x76 movs r4, #0 movs r1, #0xa0 strh r1, [r0] subs r0, #2 strh r1, [r0] adds r3, r2, #0 adds r3, #0x84 ldr r0, [r3] strb r4, [r0, #6] adds r0, r2, #0 adds r0, #0x7c ldrb r1, [r0] adds r0, r1, #0 cmp r0, #4 bne _080352C8 strb r0, [r2, #0xd] ldr r0, _080352C4 @ =gUnk_02034490 movs r1, #1 strb r1, [r0] bl sub_08078B48 movs r0, #0x94 lsls r0, r0, #1 bl sub_080A3268 b _080352FA .align 2, 0 _080352C4: .4byte gUnk_02034490 _080352C8: movs r0, #1 ands r0, r1 cmp r0, #0 bne _080352DA strb r4, [r2, #0xb] adds r1, r2, #0 adds r1, #0x79 movs r0, #0x3c b _080352F4 _080352DA: ldr r1, [r3] ldrb r0, [r1, #1] cmp r0, #3 bls _080352E6 subs r0, #1 strb r0, [r1, #1] _080352E6: ldr r0, [r3] ldr r0, [r0, #0xc] adds r0, #0x7d strb r4, [r0] adds r1, r2, #0 adds r1, #0x79 movs r0, #0x78 _080352F4: strb r0, [r1] movs r0, #1 strb r0, [r2, #0xd] _080352FA: pop {r4, pc} thumb_func_start sub_080352FC sub_080352FC: @ 0x080352FC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r5, r0, #0 adds r0, #0x7c ldrb r0, [r0] movs r6, #1 adds r4, r6, #0 ands r4, r0 cmp r4, #0 bne _080353EC adds r0, r5, #0 adds r0, #0x84 ldr r1, [r0] ldr r1, [r1, #0xc] adds r1, #0x7d ldrb r2, [r1] mov sb, r0 cmp r2, #0 beq _0803532C subs r0, r2, #1 strb r0, [r1] _0803532C: ldr r3, _0803538C @ =gUnk_03000BF0 movs r0, #0x84 lsls r0, r0, #1 adds r1, r0, #0 ldrh r2, [r3, #6] adds r1, r1, r2 ldrh r0, [r5, #0x2e] subs r1, r1, r0 adds r1, #4 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 ldrh r0, [r3, #8] ldrh r2, [r5, #0x32] subs r0, r0, r2 adds r0, #0x8c lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r1, #8 bhi _08035356 cmp r0, #8 bls _08035394 _08035356: mov r1, sb ldr r0, [r1] strb r6, [r0, #2] ldrh r0, [r3, #6] movs r2, #0x2e ldrsh r1, [r5, r2] ldr r2, _08035390 @ =0xFFFFFEF8 adds r1, r1, r2 subs r0, r0, r1 ldrh r1, [r3, #8] movs r3, #0x32 ldrsh r2, [r5, r3] subs r2, #0x88 subs r1, r1, r2 bl sub_080045DA asrs r0, r0, #3 strb r0, [r5, #0x15] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r5, #0x24] adds r0, r5, #0 bl sub_080AEF88 adds r7, r5, #0 adds r7, #0x79 b _08035456 .align 2, 0 _0803538C: .4byte gUnk_03000BF0 _08035390: .4byte 0xFFFFFEF8 _08035394: ldrb r0, [r5, #0xb] cmp r0, #0 bne _080353D8 adds r0, r5, #0 movs r1, #0x87 movs r2, #5 movs r3, #0 bl sub_080A2988 adds r0, r5, #0 movs r1, #0x87 movs r2, #5 movs r3, #1 bl sub_080A2988 adds r0, r5, #0 movs r1, #0x87 movs r2, #5 movs r3, #2 bl sub_080A2988 adds r0, r5, #0 movs r1, #0x87 movs r2, #5 movs r3, #3 bl sub_080A2988 adds r0, r5, #0 movs r1, #0x87 movs r2, #5 movs r3, #4 bl sub_080A2988 strb r6, [r5, #0xb] _080353D8: mov r1, sb ldr r0, [r1] strb r4, [r0, #2] adds r1, r5, #0 adds r1, #0x79 ldrb r0, [r1] subs r0, #1 strb r0, [r1] adds r7, r1, #0 b _08035456 _080353EC: adds r0, r5, #0 adds r0, #0x84 ldr r1, [r0] ldrb r1, [r1, #1] subs r4, r1, #1 mov sb, r0 adds r7, r5, #0 adds r7, #0x79 cmp r4, #0 beq _08035438 mov ip, sb movs r2, #1 mov sl, r2 lsls r0, r4, #2 subs r6, r0, #4 movs r3, #3 mov r8, r3 _0803540E: mov r1, ip ldr r0, [r1] adds r0, #0xc adds r0, r0, r6 ldr r3, [r0] ldrb r2, [r3, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e mov r0, sl orrs r1, r0 mov r0, r8 ands r1, r0 movs r0, #4 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3, #0x18] subs r6, #4 subs r4, #1 cmp r4, #0 bne _0803540E _08035438: ldr r1, _080354AC @ =gUnk_030010A0 ldr r0, [r1] movs r1, #2 ands r0, r1 cmp r0, #0 beq _08035450 adds r0, r5, #0 movs r1, #0x87 movs r2, #6 movs r3, #0 bl sub_080A2988 _08035450: ldrb r0, [r7] subs r0, #1 strb r0, [r7] _08035456: ldrb r0, [r7] cmp r0, #0 bne _080354E8 movs r0, #2 strb r0, [r5, #0xd] adds r4, r5, #0 adds r4, #0x7c ldrb r0, [r4] adds r0, #1 strb r0, [r4] adds r0, r5, #0 bl sub_080AE068 ldrb r1, [r4] movs r0, #1 ands r0, r1 cmp r0, #0 bne _080354B0 adds r1, r5, #0 adds r1, #0x3f movs r0, #0x5f strb r0, [r1] movs r1, #0x84 lsls r1, r1, #1 adds r0, r5, #0 bl sub_080ADF80 adds r0, r5, #0 movs r1, #0xef bl sub_0801D2B4 adds r0, r5, #0 movs r1, #0xef bl sub_08036F14 mov r2, sb ldr r0, [r2] ldr r0, [r0, #0xc] movs r1, #1 bl sub_080042AC b _080354DC .align 2, 0 _080354AC: .4byte gUnk_030010A0 _080354B0: adds r1, r5, #0 adds r1, #0x3f movs r0, #0x61 strb r0, [r1] ldr r1, _080354F4 @ =0x00000109 adds r0, r5, #0 bl sub_080ADF80 adds r0, r5, #0 movs r1, #0xf0 bl sub_0801D2B4 adds r0, r5, #0 movs r1, #0xf3 bl sub_08036F14 mov r3, sb ldr r0, [r3] ldr r0, [r0, #0xc] movs r1, #2 bl sub_080042AC _080354DC: adds r0, r5, #0 movs r1, #0x87 movs r2, #8 movs r3, #0 bl sub_080A2988 _080354E8: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _080354F4: .4byte 0x00000109 thumb_func_start sub_080354F8 sub_080354F8: @ 0x080354F8 push {lr} adds r1, r0, #0 adds r0, #0x84 ldr r0, [r0] ldr r0, [r0, #0xc] adds r2, r0, #0 adds r2, #0x7d ldrb r0, [r2] cmp r0, #0x80 beq _08035512 adds r0, #1 strb r0, [r2] b _08035522 _08035512: movs r0, #3 strb r0, [r1, #0xd] adds r1, #0x79 movs r0, #0x96 strb r0, [r1] ldr r1, _08035524 @ =gUnk_03000BF0 ldr r0, _08035528 @ =gUnk_03001160 str r0, [r1, #0x30] _08035522: pop {pc} .align 2, 0 _08035524: .4byte gUnk_03000BF0 _08035528: .4byte gUnk_03001160 thumb_func_start sub_0803552C sub_0803552C: @ 0x0803552C push {lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x79 ldrb r0, [r1] subs r0, #1 movs r3, #0 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _08035570 ldr r1, _08035574 @ =gUnk_080CF070 adds r0, r2, #0 adds r0, #0x7c ldrb r0, [r0] adds r0, r0, r1 ldrb r0, [r0] adds r1, r2, #0 adds r1, #0x45 strb r0, [r1] ldrb r0, [r2, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r2, #0x10] movs r0, #1 strb r0, [r2, #0xc] strb r3, [r2, #0xd] adds r0, r2, #0 adds r0, #0x7e strb r3, [r0] adds r0, r2, #0 bl sub_08036DA0 _08035570: pop {pc} .align 2, 0 _08035574: .4byte gUnk_080CF070 thumb_func_start sub_08035578 sub_08035578: @ 0x08035578 push {lr} movs r1, #5 strb r1, [r0, #0xd] movs r1, #0x87 movs r2, #9 movs r3, #0 bl sub_080A2988 adds r1, r0, #0 cmp r1, #0 beq _08035592 ldr r0, _08035594 @ =gUnk_03000BF0 str r1, [r0, #0x30] _08035592: pop {pc} .align 2, 0 _08035594: .4byte gUnk_03000BF0 thumb_func_start sub_08035598 sub_08035598: @ 0x08035598 adds r2, r0, #0 movs r1, #0 movs r0, #6 strb r0, [r2, #0xd] adds r3, r2, #0 adds r3, #0x79 movs r0, #0x78 strb r0, [r3] adds r0, r2, #0 adds r0, #0x80 strb r1, [r0] adds r0, #2 strb r1, [r0] bx lr thumb_func_start sub_080355B4 sub_080355B4: @ 0x080355B4 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r7, r0, #0 adds r1, r7, #0 adds r1, #0x7b ldrb r0, [r1] subs r0, #4 strb r0, [r1] adds r1, #6 ldrb r0, [r1] adds r0, #8 strb r0, [r1] adds r4, r7, #0 adds r4, #0x80 ldrb r1, [r4] movs r5, #0x80 adds r0, r5, #0 ands r0, r1 cmp r0, #0 beq _080355FA bl sub_08000E50 movs r1, #3 ands r0, r1 ldrb r1, [r4] subs r1, r1, r0 strb r1, [r4] ands r1, r5 lsls r1, r1, #0x18 lsrs r1, r1, #0x18 cmp r1, #0 bne _08035616 b _08035614 _080355FA: bl sub_08000E50 movs r1, #3 ands r0, r1 ldrb r2, [r4] adds r1, r0, r2 strb r1, [r4] lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x18 bls _08035616 movs r0, #0x80 orrs r1, r0 _08035614: strb r1, [r4] _08035616: ldr r0, _080356E4 @ =gUnk_080C9160 mov r8, r0 movs r1, #0x81 adds r1, r1, r7 mov sb, r1 ldrb r0, [r1] lsls r0, r0, #1 add r0, r8 movs r2, #0 ldrsh r0, [r0, r2] adds r6, r7, #0 adds r6, #0x80 ldrb r2, [r6] movs r4, #0x7f adds r1, r4, #0 ands r1, r2 lsls r1, r1, #8 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r5, #0x80 lsls r5, r5, #1 adds r1, r5, #0 bl sub_0806FA04 lsrs r0, r0, #8 adds r1, r7, #0 adds r1, #0x62 strb r0, [r1] mov r1, sb ldrb r0, [r1] adds r0, #0x40 lsls r0, r0, #1 add r0, r8 movs r2, #0 ldrsh r0, [r0, r2] ldrb r1, [r6] ands r4, r1 lsls r4, r4, #8 adds r1, r4, #0 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r5, #0 bl sub_0806FA04 lsls r0, r0, #0x10 asrs r0, r0, #8 rsbs r0, r0, #0 asrs r0, r0, #0x10 adds r1, r7, #0 adds r1, #0x63 strb r0, [r1] adds r1, #0x16 ldrb r0, [r1] cmp r0, #0 bne _080356EC ldr r0, _080356E8 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #0xf ands r0, r1 cmp r0, #0 bne _080356B2 adds r0, r7, #0 movs r1, #0x48 movs r2, #0 bl sub_080A29AC adds r0, r7, #0 adds r0, #0x84 ldr r0, [r0] ldr r0, [r0, #0x20] movs r1, #0x48 movs r2, #0 bl sub_080A29AC _080356B2: adds r1, r7, #0 adds r1, #0x82 ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x79 bne _080356F0 adds r0, r7, #0 adds r0, #0x84 ldr r0, [r0] ldr r0, [r0, #8] adds r0, #0x45 movs r1, #1 strb r1, [r0] movs r0, #0x94 lsls r0, r0, #1 bl sub_080A3268 adds r0, r7, #0 bl sub_0804A7D4 b _080356F0 .align 2, 0 _080356E4: .4byte gUnk_080C9160 _080356E8: .4byte gUnk_030010A0 _080356EC: subs r0, #1 strb r0, [r1] _080356F0: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} thumb_func_start sub_080356F8 sub_080356F8: @ 0x080356F8 push {r4, lr} adds r4, r0, #0 ldr r1, _08035718 @ =gUnk_080CF078 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldrb r0, [r4, #0x19] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x19] pop {r4, pc} .align 2, 0 _08035718: .4byte gUnk_080CF078 thumb_func_start sub_0803571C sub_0803571C: @ 0x0803571C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0x18] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x18] ldrb r0, [r4, #0xa] cmp r0, #6 bls _0803573A b _08035974 _0803573A: lsls r0, r0, #2 ldr r1, _08035744 @ =_08035748 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08035744: .4byte _08035748 _08035748: @ jump table .4byte _08035764 @ case 0 .4byte _080358D8 @ case 1 .4byte _080358D8 @ case 2 .4byte _080358D8 @ case 3 .4byte _080358D8 @ case 4 .4byte _08035920 @ case 5 .4byte _08035940 @ case 6 _08035764: 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 r0, r4, #0 adds r0, #0x7c movs r5, #0 strb r5, [r0] movs r0, #1 strb r0, [r4, #0xe] movs r0, #0x30 bl sub_0801D8E0 adds r2, r0, #0 adds r0, r4, #0 adds r0, #0x84 str r2, [r0] mov r8, r0 cmp r2, #0 bne _0803579E adds r0, r4, #0 bl sub_0804A7D4 b _080359A6 _0803579E: str r2, [r4, #0x64] mov r1, r8 ldr r0, [r1] strb r5, [r0, #6] ldr r1, [r1] movs r0, #2 strb r0, [r1] mov r2, r8 ldr r0, [r2] strb r5, [r0, #2] ldr r1, [r2] movs r0, #5 strb r0, [r1, #1] ldrb r0, [r4, #0x19] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x19] adds r2, r4, #0 adds r2, #0x6d ldrb r0, [r2] movs r1, #1 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 adds r0, #0x76 movs r1, #0xa0 strh r1, [r0] subs r0, #2 strh r1, [r0] adds r0, #6 strh r5, [r0] movs r5, #0 movs r0, #0x79 adds r0, r0, r4 mov sb, r0 mov r7, r8 _080357E6: adds r6, r5, #1 movs r0, #0x39 adds r1, r6, #0 bl sub_0804AA60 adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 beq _08035816 adds r0, r4, #0 bl sub_0806FA24 ldr r0, [r4, #0x54] str r4, [r0, #0x50] ldr r0, [r4, #0x54] adds r0, #0x84 ldr r1, [r7] str r1, [r0] ldr r1, [r7] lsls r0, r5, #2 adds r1, #0x20 adds r1, r1, r0 ldr r0, [r4, #0x54] str r0, [r1] _08035816: adds r5, r6, #0 cmp r5, #3 bls _080357E6 movs r0, #0x39 movs r1, #5 bl sub_0804AA60 adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 beq _08035840 adds r0, r4, #0 bl sub_0806FA24 ldr r0, [r4, #0x54] str r4, [r0, #0x50] ldr r0, [r4, #0x54] adds r0, #0x84 mov r2, r8 ldr r1, [r2] str r1, [r0] _08035840: movs r0, #0x39 movs r1, #6 bl sub_0804AA60 adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 beq _0803586A adds r0, r4, #0 bl sub_0806FA24 ldr r0, [r4, #0x54] str r4, [r0, #0x50] ldr r0, [r4, #0x54] adds r0, #0x84 mov r2, r8 ldr r1, [r2] str r1, [r0] ldr r1, [r2] ldr r0, [r4, #0x54] str r0, [r1, #0xc] _0803586A: movs r5, #0 mov r7, r8 _0803586E: movs r0, #0x39 movs r1, #7 bl sub_0804AA60 str r0, [r4, #0x54] adds r6, r5, #1 cmp r0, #0 beq _080358A0 strb r5, [r0, #0xb] ldr r1, [r4, #0x54] adds r0, r4, #0 bl sub_0806FA24 ldr r0, [r4, #0x54] str r4, [r0, #0x50] ldr r0, [r4, #0x54] adds r0, #0x84 ldr r1, [r7] str r1, [r0] ldr r1, [r7] lsls r0, r6, #2 adds r1, #0xc adds r1, r1, r0 ldr r0, [r4, #0x54] str r0, [r1] _080358A0: adds r5, r6, #0 cmp r5, #3 bls _0803586E movs r1, #0 movs r0, #3 strb r0, [r4, #0xc] strb r1, [r4, #0xd] movs r0, #0x3c mov r1, sb strb r0, [r1] ldr r1, _080358D0 @ =gUnk_03001160 ldrb r2, [r1, #0x18] subs r0, #0x40 ands r0, r2 strb r0, [r1, #0x18] ldrh r0, [r4, #0x2e] strh r0, [r1, #0x2e] ldrh r0, [r4, #0x32] subs r0, #0xa0 strh r0, [r1, #0x32] ldr r0, _080358D4 @ =gUnk_03000BF0 str r4, [r0, #0x30] b _08035974 .align 2, 0 _080358D0: .4byte gUnk_03001160 _080358D4: .4byte gUnk_03000BF0 _080358D8: movs r1, #0 movs r0, #0x10 strb r0, [r4, #0xe] adds r0, r4, #0 adds r0, #0x79 strb r1, [r0] ldrb r1, [r4, #0xa] movs r2, #2 adds r0, r2, #0 ands r0, r1 cmp r0, #0 bne _080358F4 strb r2, [r4, #0xf] b _080358F8 _080358F4: movs r0, #0xfe strb r0, [r4, #0xf] _080358F8: adds r0, r4, #0 adds r0, #0x74 movs r2, #0x80 lsls r2, r2, #1 strh r2, [r0] ldrb r1, [r4, #0xa] movs r0, #1 ands r0, r1 cmp r0, #0 bne _08035918 adds r1, r4, #0 adds r1, #0x76 movs r0, #0xff lsls r0, r0, #8 strh r0, [r1] b _08035974 _08035918: adds r0, r4, #0 adds r0, #0x76 strh r2, [r0] b _08035974 _08035920: adds r0, r4, #0 adds r0, #0x76 movs r1, #0x80 lsls r1, r1, #1 strh r1, [r0] subs r0, #2 strh r1, [r0] adds r1, r4, #0 adds r1, #0x79 movs r0, #0x1c strb r0, [r1] adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] str r4, [r0, #8] b _08035974 _08035940: adds r0, r4, #0 adds r0, #0x76 movs r2, #0 movs r1, #0x80 lsls r1, r1, #1 strh r1, [r0] subs r0, #2 strh r1, [r0] adds r3, r4, #0 adds r3, #0x29 ldrb r1, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 strb r0, [r3] adds r0, r4, #0 adds r0, #0x79 strb r2, [r0] movs r0, #0x10 strb r0, [r4, #0xe] movs r0, #1 strb r0, [r4, #0xf] adds r1, r4, #0 adds r1, #0x7d movs r0, #0x80 strb r0, [r1] _08035974: ldrb r0, [r4, #0xa] cmp r0, #6 beq _08035990 ldr r0, _0803598C @ =gUnk_080CF08C ldrb r1, [r4, #0xa] lsls r1, r1, #2 adds r1, r1, r0 ldrb r1, [r1] adds r0, r4, #0 bl sub_08004260 b _080359A0 .align 2, 0 _0803598C: .4byte gUnk_080CF08C _08035990: ldr r0, _080359B0 @ =gUnk_080CF08C ldrb r1, [r4, #0xa] lsls r1, r1, #2 adds r1, r1, r0 ldrb r1, [r1] adds r0, r4, #0 bl sub_080042AC _080359A0: adds r0, r4, #0 bl sub_08035B94 _080359A6: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _080359B0: .4byte gUnk_080CF08C thumb_func_start sub_080359B4 sub_080359B4: @ 0x080359B4 push {r4, lr} adds r4, r0, #0 bl sub_08078B48 ldr r1, _080359F0 @ =gUnk_02034490 movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_08036F60 ldr r1, _080359F4 @ =gUnk_080CF0AC ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 adds r0, #0x76 ldrh r1, [r0] subs r0, #2 ldrh r2, [r0] adds r0, #6 ldrh r3, [r0] adds r0, r4, #0 bl sub_0805EC9C pop {r4, pc} .align 2, 0 _080359F0: .4byte gUnk_02034490 _080359F4: .4byte gUnk_080CF0AC thumb_func_start sub_080359F8 sub_080359F8: @ 0x080359F8 push {lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x79 ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _08035A22 movs r0, #1 strb r0, [r2, #0xd] adds r1, #9 adds r0, #0xff strh r0, [r1] adds r0, r2, #0 adds r0, #0x84 ldr r1, [r0] movs r0, #2 strb r0, [r1] _08035A22: pop {pc} thumb_func_start sub_08035A24 sub_08035A24: @ 0x08035A24 push {r4, lr} adds r4, r0, #0 adds r0, #0x7b ldrb r0, [r0] cmp r0, #0x80 bne _08035A54 adds r2, r4, #0 adds r2, #0x79 movs r1, #0 movs r0, #0x3c strb r0, [r2] movs r0, #2 strb r0, [r4, #0xd] adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] strb r1, [r0] ldr r0, _08035A50 @ =0x00000159 bl sub_080A3268 b _08035A64 .align 2, 0 _08035A50: .4byte 0x00000159 _08035A54: adds r1, r4, #0 adds r1, #0x7a adds r0, r4, #0 adds r0, #0x82 ldrh r0, [r0] ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] _08035A64: adds r0, r4, #0 movs r1, #0xf bl sub_08036FAC pop {r4, pc} .align 2, 0 thumb_func_start sub_08035A70 sub_08035A70: @ 0x08035A70 push {r4, lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x79 ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _08035AA8 movs r0, #3 strb r0, [r2, #0xd] movs r0, #0x3c strb r0, [r1] ldr r2, _08035AAC @ =gUnk_03001160 ldrb r3, [r2, #0x18] lsls r1, r3, #0x1e lsrs r1, r1, #0x1e movs r4, #1 orrs r1, r4 subs r0, #0x40 ands r0, r3 orrs r0, r1 strb r0, [r2, #0x18] ldr r0, _08035AB0 @ =gUnk_03000BF0 str r2, [r0, #0x30] strb r4, [r0, #0xe] _08035AA8: pop {r4, pc} .align 2, 0 _08035AAC: .4byte gUnk_03001160 _08035AB0: .4byte gUnk_03000BF0 thumb_func_start sub_08035AB4 sub_08035AB4: @ 0x08035AB4 push {r4, r5, r6, lr} adds r6, r0, #0 adds r5, r6, #0 adds r5, #0x79 ldrb r0, [r5] subs r0, #1 strb r0, [r5] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _08035AE4 ldr r1, _08035AE8 @ =gUnk_03001160 movs r0, #0x10 strb r0, [r1, #0x15] movs r4, #4 strb r4, [r1, #0x14] movs r0, #0x1e movs r1, #0 movs r2, #0 bl sub_08078AC0 movs r0, #0x3c strb r0, [r5] strb r4, [r6, #0xd] _08035AE4: pop {r4, r5, r6, pc} .align 2, 0 _08035AE8: .4byte gUnk_03001160 thumb_func_start sub_08035AEC sub_08035AEC: @ 0x08035AEC push {lr} adds r3, r0, #0 adds r2, r3, #0 adds r2, #0x79 ldrb r0, [r2] subs r1, r0, #1 strb r1, [r2] lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _08035B18 movs r0, #5 strb r0, [r3, #0xd] movs r0, #0x2d strb r0, [r2] ldr r1, _08035B14 @ =gUnk_03001160 movs r0, #0 strb r0, [r1, #0x14] b _08035B2C .align 2, 0 _08035B14: .4byte gUnk_03001160 _08035B18: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x1e bne _08035B2C ldr r0, _08035B30 @ =gUnk_03001160 movs r2, #0x18 rsbs r2, r2, #0 movs r1, #0xc bl sub_080A2CFC _08035B2C: pop {pc} .align 2, 0 _08035B30: .4byte gUnk_03001160 thumb_func_start sub_08035B34 sub_08035B34: @ 0x08035B34 push {r4, r5, lr} adds r3, r0, #0 ldr r2, _08035B70 @ =gUnk_03001160 ldrb r5, [r2, #0x14] cmp r5, #4 bne _08035B7C adds r2, r3, #0 adds r2, #0x79 ldrb r0, [r2] adds r1, r0, #1 strb r1, [r2] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x1e bls _08035B92 movs r4, #0 movs r0, #1 strb r0, [r3, #0xc] strb r4, [r3, #0xd] ldr r0, _08035B74 @ =gUnk_03000BF0 strb r5, [r0, #0xe] adds r0, r3, #0 bl sub_08036C90 ldr r0, _08035B78 @ =gUnk_02034490 strb r4, [r0] movs r0, #0x2e bl sub_080A3268 b _08035B92 .align 2, 0 _08035B70: .4byte gUnk_03001160 _08035B74: .4byte gUnk_03000BF0 _08035B78: .4byte gUnk_02034490 _08035B7C: adds r1, r3, #0 adds r1, #0x79 ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _08035B92 movs r0, #4 strb r0, [r2, #0x14] _08035B92: pop {r4, r5, pc} thumb_func_start sub_08035B94 sub_08035B94: @ 0x08035B94 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 ldrb r0, [r5, #0xa] cmp r0, #0 beq _08035BAE ldr r0, [r5, #0x50] adds r0, #0x3d ldrb r0, [r0] adds r1, r5, #0 adds r1, #0x3d strb r0, [r1] _08035BAE: ldrb r0, [r5, #0xa] cmp r0, #7 bls _08035BB6 b _08035F6C _08035BB6: lsls r0, r0, #2 ldr r1, _08035BC0 @ =_08035BC4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08035BC0: .4byte _08035BC4 _08035BC4: @ jump table .4byte _08035F16 @ case 0 .4byte _08035BE4 @ case 1 .4byte _08035BE4 @ case 2 .4byte _08035BE4 @ case 3 .4byte _08035BE4 @ case 4 .4byte _08035E78 @ case 5 .4byte _08035DB0 @ case 6 .4byte _08035D14 @ case 7 _08035BE4: ldr r0, [r5, #0x50] adds r0, #0x6d ldrb r1, [r0] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08035BF6 bl sub_0805E780 _08035BF6: adds r1, r5, #0 adds r1, #0x84 ldr r0, [r1] ldr r0, [r0, #8] adds r0, #0x45 ldrb r0, [r0] adds r6, r1, #0 adds r7, r5, #0 adds r7, #0x76 movs r1, #0x74 adds r1, r1, r5 mov r8, r1 cmp r0, #1 bne _08035C42 ldrh r1, [r7] movs r2, #0 ldrsh r0, [r7, r2] cmp r0, #0 bge _08035C20 subs r0, r1, #4 b _08035C22 _08035C20: adds r0, r1, #4 _08035C22: strh r0, [r7] adds r0, r5, #0 adds r0, #0x74 ldrh r2, [r0] movs r3, #0 ldrsh r1, [r0, r3] mov r8, r0 cmp r1, #0 bge _08035C3C subs r0, r2, #4 mov r1, r8 strh r0, [r1] b _08035C42 _08035C3C: adds r0, r2, #4 mov r2, r8 strh r0, [r2] _08035C42: ldr r0, [r5, #0x50] adds r1, r5, #0 bl sub_0806FAD8 ldr r0, [r6] ldrb r0, [r0, #2] cmp r0, #0 bne _08035C66 ldr r1, [r5, #0x50] ldrb r0, [r1, #0xc] cmp r0, #3 beq _08035C66 ldrb r0, [r1, #0xd] subs r0, #3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bls _08035C82 _08035C66: movs r0, #0xf ldrsb r0, [r5, r0] cmp r0, #0 bge _08035C76 ldr r0, [r6] ldrb r0, [r0] rsbs r0, r0, #0 b _08035C7A _08035C76: ldr r0, [r6] ldrb r0, [r0] _08035C7A: strb r0, [r5, #0xf] adds r0, r5, #0 bl sub_08036998 _08035C82: ldr r4, [r5, #0x50] adds r0, r4, #0 adds r0, #0x76 ldrh r1, [r0] movs r0, #0x80 lsls r0, r0, #9 bl __divsi3 adds r3, r0, #0 lsls r0, r3, #0xd lsrs r3, r0, #8 ldr r0, _08035CB0 @ =0xFFFFE000 adds r3, r3, r0 ldr r0, [r6] ldr r0, [r0, #8] adds r0, #0x45 ldrb r0, [r0] cmp r0, #1 bne _08035CB4 movs r1, #0x88 lsls r1, r1, #6 adds r3, r3, r1 b _08035CBC .align 2, 0 _08035CB0: .4byte 0xFFFFE000 _08035CB4: lsrs r0, r3, #1 movs r2, #0x88 lsls r2, r2, #6 adds r3, r0, r2 _08035CBC: adds r2, r4, #0 adds r2, #0x7b ldr r1, _08035D0C @ =gUnk_080CF0D8 ldrb r0, [r5, #0xa] subs r0, #1 adds r0, r0, r1 ldrb r0, [r0] ldrb r2, [r2] adds r0, r0, r2 rsbs r0, r0, #0 lsls r0, r0, #0x18 lsrs r1, r0, #0x18 adds r0, r5, #0 adds r2, r3, #0 bl sub_08036914 ldr r2, [r5, #0x50] adds r2, #0x7b ldr r1, _08035D10 @ =gUnk_080CF0DC ldrb r0, [r5, #0xa] subs r0, #1 adds r0, r0, r1 ldrb r1, [r0] ldrb r2, [r2] adds r1, r1, r2 adds r0, r5, #0 adds r0, #0x79 ldrb r0, [r0] adds r0, r0, r1 adds r1, r5, #0 adds r1, #0x7b strb r0, [r1] ldrh r1, [r7] mov r3, r8 ldrh r2, [r3] adds r0, r5, #0 adds r0, #0x7a ldrh r3, [r0] b _08035E70 .align 2, 0 _08035D0C: .4byte gUnk_080CF0D8 _08035D10: .4byte gUnk_080CF0DC _08035D14: adds r4, r5, #0 adds r4, #0x84 ldr r0, [r4] ldr r0, [r0, #8] adds r0, #0x45 ldrb r0, [r0] cmp r0, #1 bhi _08035D28 bl sub_0805E780 _08035D28: ldr r0, [r4] ldrb r0, [r0, #1] subs r0, #2 ldrb r1, [r5, #0xb] cmp r0, r1 bge _08035D38 bl sub_0805E780 _08035D38: ldr r0, [r5, #0x50] adds r1, r5, #0 bl sub_0806FAB0 ldr r0, [r4] ldrb r0, [r0, #1] subs r0, #2 ldrb r2, [r5, #0xb] cmp r0, r2 bne _08035D8A ldr r0, [r5, #0x50] adds r1, r5, #0 bl sub_0806FAB0 ldr r4, [r5, #0x50] adds r0, r4, #0 adds r0, #0x74 ldrh r1, [r0] movs r0, #0x80 lsls r0, r0, #9 bl __divsi3 adds r3, r0, #0 lsls r0, r3, #0xd lsrs r3, r0, #8 adds r4, #0x7b ldrb r0, [r4] rsbs r0, r0, #0 lsls r0, r0, #0x18 lsrs r1, r0, #0x18 adds r0, r5, #0 adds r2, r3, #0 bl sub_08036914 ldr r0, [r5, #0x50] adds r0, #0x7b ldrb r0, [r0] rsbs r0, r0, #0 adds r1, r5, #0 adds r1, #0x7b strb r0, [r1] _08035D8A: ldr r0, [r5, #0x50] adds r0, #0x7c ldrb r1, [r0] movs r3, #1 adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _08035D9C b _08035F6C _08035D9C: ldrb r2, [r5, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e orrs r1, r3 movs r0, #4 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r5, #0x18] b _08035F6C _08035DB0: adds r6, r5, #0 adds r6, #0x84 ldr r0, [r6] ldr r0, [r0, #8] adds r0, #0x45 ldrb r0, [r0] cmp r0, #1 bhi _08035DC4 bl sub_0805E780 _08035DC4: adds r0, r5, #0 bl sub_080042B8 ldr r0, [r5, #0x50] adds r0, #0x7c ldrb r1, [r0] movs r3, #1 adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _08035E24 adds r0, r5, #0 adds r0, #0x7d ldrb r1, [r0] adds r0, r5, #0 movs r2, #0x10 bl sub_08036AF0 adds r2, r5, #0 adds r2, #0x41 ldrb r1, [r2] movs r3, #0x7f adds r0, r3, #0 ands r0, r1 adds r4, r2, #0 cmp r0, #7 bne _08035E56 ldrb r1, [r5, #0x10] adds r0, r3, #0 ands r0, r1 strb r0, [r5, #0x10] adds r0, r5, #0 movs r1, #0x87 movs r2, #0 movs r3, #0 bl sub_080A2988 adds r1, r0, #0 str r1, [r5, #0x54] cmp r1, #0 beq _08035E56 ldr r0, [r5, #0x50] str r0, [r1, #0x50] ldr r0, [r5, #0x54] adds r0, #0x84 ldr r1, [r6] str r1, [r0] b _08035E56 _08035E24: ldrb r1, [r5, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r5, #0x10] ldrb r2, [r5, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e orrs r1, r3 movs r0, #4 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r5, #0x18] adds r0, r5, #0 bl sub_08036998 adds r0, r5, #0 adds r0, #0x7d ldrb r1, [r0] adds r0, r5, #0 movs r2, #4 bl sub_080369D0 adds r4, r5, #0 adds r4, #0x41 _08035E56: movs r0, #0 strb r0, [r4] adds r0, r5, #0 adds r0, #0x76 ldrh r1, [r0] subs r0, #2 ldrh r2, [r0] adds r0, #6 ldrh r3, [r0] rsbs r3, r3, #0 movs r0, #0x80 lsls r0, r0, #8 eors r3, r0 _08035E70: adds r0, r5, #0 bl sub_0805EC9C b _08035F6C _08035E78: adds r4, r5, #0 adds r4, #0x45 ldrb r0, [r4] cmp r0, #1 bne _08035E88 movs r0, #0 strb r0, [r4] b _08035F6C _08035E88: ldr r0, [r5, #0x50] adds r1, r5, #0 bl sub_0806FAD8 ldr r0, [r5, #0x50] ldrb r0, [r0, #0xd] adds r7, r5, #0 adds r7, #0x76 adds r6, r5, #0 adds r6, #0x79 cmp r0, #4 beq _08035EC2 ldrb r0, [r4] cmp r0, #1 beq _08035EC2 ldrb r0, [r6] cmp r0, #0x1c bls _08035EB0 subs r0, #1 strb r0, [r6] _08035EB0: ldrh r0, [r7] movs r1, #0x80 lsls r1, r1, #1 cmp r0, r1 bls _08035EC0 subs r0, #1 strh r0, [r7] b _08035EC2 _08035EC0: strh r1, [r7] _08035EC2: ldr r4, [r5, #0x50] adds r0, r4, #0 adds r0, #0x74 ldrh r1, [r0] movs r0, #0x80 lsls r0, r0, #9 bl __divsi3 adds r3, r0, #0 ldrb r0, [r6] lsls r0, r0, #8 muls r0, r3, r0 lsrs r3, r0, #8 adds r4, #0x7b ldrb r0, [r4] adds r0, #0x80 rsbs r0, r0, #0 lsls r0, r0, #0x18 lsrs r1, r0, #0x18 adds r0, r5, #0 adds r2, r3, #0 bl sub_08036914 ldr r0, [r5, #0x50] adds r0, #0x7b ldrb r0, [r0] adds r1, r5, #0 adds r1, #0x7b strb r0, [r1] ldrh r1, [r7] adds r0, r5, #0 adds r0, #0x74 ldrh r2, [r0] adds r0, #6 ldrh r3, [r0] adds r0, r5, #0 bl sub_0805EC9C adds r0, r5, #0 bl sub_0800445C b _08035F6C _08035F16: adds r0, r5, #0 bl sub_0800445C adds r0, r5, #0 bl sub_08036F60 adds r0, r5, #0 adds r0, #0x84 ldr r1, [r0] ldrb r0, [r1, #6] cmp r0, #0 beq _08035F48 subs r0, #1 strb r0, [r1, #6] ldr r0, _08035F74 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #3 ands r0, r1 cmp r0, #0 bne _08035F48 adds r0, r5, #0 movs r1, #0xf movs r2, #3 bl sub_0804A98C _08035F48: ldr r1, _08035F78 @ =gUnk_080CF0C4 ldrb r0, [r5, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 adds r0, r5, #0 adds r0, #0x76 ldrh r1, [r0] subs r0, #2 ldrh r2, [r0] adds r0, #6 ldrh r3, [r0] adds r0, r5, #0 bl sub_0805EC9C _08035F6C: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08035F74: .4byte gUnk_030010A0 _08035F78: .4byte gUnk_080CF0C4 thumb_func_start sub_08035F7C sub_08035F7C: @ 0x08035F7C push {r4, r5, lr} adds r4, r0, #0 ldr r2, _08035FD0 @ =gUnk_03001160 ldr r0, [r2, #0x2c] ldr r1, [r4, #0x2c] subs r0, r0, r1 ldr r1, [r2, #0x30] ldr r2, [r4, #0x30] subs r1, r1, r2 bl sub_080045DA adds r1, r4, #0 adds r1, #0x7b ldrb r1, [r1] rsbs r1, r1, #0 movs r2, #0x80 eors r1, r2 subs r0, r0, r1 lsls r0, r0, #0x18 lsrs r2, r0, #0x18 adds r0, r4, #0 adds r0, #0x7c ldrb r1, [r0] movs r0, #1 ands r0, r1 movs r1, #0x20 cmp r0, #0 bne _08035FB6 movs r1, #8 _08035FB6: cmn r2, r1 ble _08035FEE cmp r2, r1 bge _08035FEE adds r0, r4, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #0xff beq _08035FD4 adds r0, r4, #0 bl sub_08036C90 b _08036074 .align 2, 0 _08035FD0: .4byte gUnk_03001160 _08035FD4: adds r0, r4, #0 adds r0, #0x78 ldrb r0, [r0] cmp r0, #0 bne _08035FE6 adds r0, r4, #0 bl sub_08036E00 b _08036028 _08035FE6: adds r0, r4, #0 bl sub_08036D70 b _08036028 _08035FEE: cmp r2, #0x80 bls _0803600E adds r2, r4, #0 adds r2, #0x7a adds r0, r4, #0 adds r0, #0x82 ldrh r0, [r0] ldrh r1, [r2] adds r0, r0, r1 movs r1, #0 strh r0, [r2] adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] strb r1, [r0, #4] b _08036028 _0803600E: adds r2, r4, #0 adds r2, #0x7a adds r1, r4, #0 adds r1, #0x82 ldrh r0, [r2] ldrh r1, [r1] subs r0, r0, r1 strh r0, [r2] adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] movs r0, #1 strb r0, [r1, #4] _08036028: adds r0, r4, #0 adds r0, #0x7b ldrb r0, [r0] rsbs r0, r0, #0 movs r1, #0x80 eors r0, r1 lsls r0, r0, #0x18 lsrs r0, r0, #0x1b strb r0, [r4, #0x15] adds r5, r4, #0 adds r5, #0x7c ldrb r1, [r5] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0803606C adds r3, r4, #0 adds r3, #0x82 ldrh r2, [r3] ldr r0, _08036060 @ =0x0000027F cmp r2, r0 bhi _0803606C ldrb r1, [r5] cmp r1, #1 beq _08036064 cmp r1, #3 beq _08036068 b _0803606C .align 2, 0 _08036060: .4byte 0x0000027F _08036064: adds r0, r2, #1 b _0803606A _08036068: adds r0, r2, #2 _0803606A: strh r0, [r3] _0803606C: adds r0, r4, #0 movs r1, #0x1f bl sub_08036FAC _08036074: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08036078 sub_08036078: @ 0x08036078 push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x79 ldrb r0, [r5] subs r0, #1 strb r0, [r5] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff beq _080360A0 adds r0, r4, #0 adds r0, #0x7c ldrb r1, [r0] cmp r1, #0 beq _080360A0 movs r0, #1 ands r0, r1 cmp r0, #0 beq _080360B2 _080360A0: adds r1, r4, #0 adds r1, #0x78 ldrb r0, [r1] subs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_08036D4C b _080360BE _080360B2: adds r0, r4, #0 bl sub_080AEF88 cmp r0, #0 bne _080360BE strb r0, [r5] _080360BE: adds r0, r4, #0 movs r1, #0x1f bl sub_08036FAC pop {r4, r5, pc} thumb_func_start sub_080360C8 sub_080360C8: @ 0x080360C8 push {lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x79 ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _080360E4 adds r0, r2, #0 bl sub_08036DA0 _080360E4: pop {pc} .align 2, 0 thumb_func_start sub_080360E8 sub_080360E8: @ 0x080360E8 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x79 ldrb r0, [r1] cmp r0, #0 bne _08036178 adds r0, r4, #0 bl sub_080AEF88 movs r2, #0 ldrb r0, [r4, #0x15] cmp r0, #0 beq _08036116 cmp r0, #0x10 beq _08036116 ldrh r0, [r4, #0x2a] movs r1, #0xee lsls r1, r1, #8 ands r1, r0 rsbs r0, r1, #0 orrs r0, r1 lsrs r2, r0, #0x1f _08036116: ldrb r0, [r4, #0x15] cmp r0, #0x18 beq _0803612C cmp r0, #8 beq _0803612C ldrh r1, [r4, #0x2a] movs r0, #0xee ands r0, r1 cmp r0, #0 beq _0803612C movs r2, #1 _0803612C: cmp r2, #0 beq _0803617C adds r1, r4, #0 adds r1, #0x42 movs r0, #0x20 strb r0, [r1] adds r1, #4 movs r0, #0x80 lsls r0, r0, #2 strh r0, [r1] ldrb r0, [r4, #0x15] movs r1, #0x10 eors r0, r1 adds r1, r4, #0 adds r1, #0x3e strb r0, [r1] adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] ldrb r0, [r1, #6] adds r0, #0x3c strb r0, [r1, #6] adds r0, r4, #0 bl sub_08036C90 movs r0, #0x3c movs r1, #0 bl sub_08080964 movs r0, #0xac lsls r0, r0, #1 bl sub_080A3268 movs r0, #0xa6 lsls r0, r0, #1 bl sub_080A3268 b _0803617C _08036178: subs r0, #1 strb r0, [r1] _0803617C: adds r0, r4, #0 movs r1, #0xf bl sub_08036FAC pop {r4, pc} .align 2, 0 thumb_func_start sub_08036188 sub_08036188: @ 0x08036188 push {r4, r5, lr} adds r5, r0, #0 ldr r1, _080361EC @ =gUnk_080CF0E0 ldrb r0, [r5, #0xb] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 adds r0, r5, #0 bl sub_08036FE4 adds r0, r5, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 beq _080361EA ldr r4, _080361F0 @ =gUnk_03001160 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] bl sub_08078B48 bl sub_08077B20 str r5, [r4, #0x50] adds r0, r5, #0 adds r0, #0x7b ldrb r1, [r0] adds r1, #0x80 rsbs r1, r1, #0 lsls r1, r1, #0x18 lsrs r1, r1, #0x18 movs r2, #0xe0 lsls r2, r2, #6 adds r0, r4, #0 bl sub_08036914 _080361EA: pop {r4, r5, pc} .align 2, 0 _080361EC: .4byte gUnk_080CF0E0 _080361F0: .4byte gUnk_03001160 thumb_func_start sub_080361F4 sub_080361F4: @ 0x080361F4 push {lr} adds r2, r0, #0 adds r0, #0x7d ldrb r0, [r0] cmp r0, #4 bne _08036208 adds r0, r2, #0 bl sub_08036D4C b _08036236 _08036208: adds r1, r2, #0 adds r1, #0x82 movs r0, #0x80 lsls r0, r0, #1 strh r0, [r1] movs r0, #1 strb r0, [r2, #0xb] subs r1, #6 ldrb r1, [r1] ands r0, r1 cmp r0, #0 bne _08036228 adds r1, r2, #0 adds r1, #0x79 movs r0, #0x16 b _0803622E _08036228: adds r1, r2, #0 adds r1, #0x79 movs r0, #0 _0803622E: strb r0, [r1] ldr r0, _08036238 @ =0x00000155 bl sub_080A3268 _08036236: pop {pc} .align 2, 0 _08036238: .4byte 0x00000155 thumb_func_start sub_0803623C sub_0803623C: @ 0x0803623C push {lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x74 ldrh r0, [r1] cmp r0, #0xbf bhi _08036250 adds r0, #1 strh r0, [r1] b _080362A0 _08036250: adds r3, r2, #0 adds r3, #0x79 ldrb r0, [r3] subs r0, #1 strb r0, [r3] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _080362A0 adds r0, r2, #0 adds r0, #0x7d ldrb r1, [r0] cmp r1, #1 bne _08036292 movs r0, #3 strb r0, [r2, #0xb] adds r0, r2, #0 adds r0, #0x7c ldrb r0, [r0] ands r1, r0 cmp r1, #0 beq _08036280 movs r0, #0x3c b _08036282 _08036280: movs r0, #0x78 _08036282: strb r0, [r3] adds r0, r2, #0 adds r0, #0x84 ldr r1, [r0] subs r0, #9 ldrb r0, [r0] strb r0, [r1, #3] b _0803629A _08036292: movs r0, #2 strb r0, [r2, #0xb] movs r0, #0x2d strb r0, [r3] _0803629A: ldr r0, _080362A4 @ =0x00000155 bl sub_080A3268 _080362A0: pop {pc} .align 2, 0 _080362A4: .4byte 0x00000155 thumb_func_start sub_080362A8 sub_080362A8: @ 0x080362A8 push {r4, lr} adds r2, r0, #0 movs r0, #0x79 adds r0, r0, r2 mov ip, r0 ldrb r0, [r0] cmp r0, #0 bne _080362FA adds r4, r2, #0 adds r4, #0x76 adds r1, r2, #0 adds r1, #0x74 ldrh r3, [r1] ldrh r0, [r4] cmp r0, r3 bhs _080362D0 adds r0, r3, #0 subs r0, #8 strh r0, [r1] b _08036300 _080362D0: movs r0, #3 strb r0, [r2, #0xb] ldrh r0, [r4] strh r0, [r1] adds r0, r2, #0 adds r0, #0x7d ldrb r0, [r0] cmp r0, #2 beq _080362E6 movs r0, #0x3c b _080362FC _080362E6: movs r0, #0 mov r1, ip strb r0, [r1] adds r0, r2, #0 movs r1, #0x87 movs r2, #4 movs r3, #0 bl sub_080A2988 b _08036300 _080362FA: subs r0, #1 _080362FC: mov r1, ip strb r0, [r1] _08036300: pop {r4, pc} .align 2, 0 thumb_func_start sub_08036304 sub_08036304: @ 0x08036304 push {lr} mov ip, r0 ldr r0, _08036328 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #2 ands r0, r1 cmp r0, #0 beq _0803632C mov r2, ip adds r2, #0x84 ldr r0, [r2] ldr r1, [r0, #8] adds r1, #0x76 ldrh r0, [r1] subs r0, #8 strh r0, [r1] b _08036350 .align 2, 0 _08036328: .4byte gUnk_030010A0 _0803632C: mov r2, ip adds r2, #0x84 ldr r0, [r2] ldr r1, [r0, #8] adds r1, #0x76 ldrh r0, [r1] adds r0, #8 strh r0, [r1] ldr r0, [r2] ldr r0, [r0, #8] adds r3, r0, #0 adds r3, #0x76 ldrh r0, [r3] movs r1, #0xc0 lsls r1, r1, #1 cmp r0, r1 bls _08036350 strh r1, [r3] _08036350: mov r0, ip adds r0, #0x7d ldrb r1, [r0] adds r3, r0, #0 cmp r1, #1 beq _0803637A ldr r0, [r2] ldr r0, [r0, #8] adds r1, r0, #0 adds r1, #0x79 ldrb r0, [r1] cmp r0, #0x1f bhi _0803637A adds r0, #1 strb r0, [r1] ldr r0, [r2] ldr r1, [r0, #8] adds r1, #0x76 ldrh r0, [r1] adds r0, #8 strh r0, [r1] _0803637A: ldr r0, _0803638C @ =gUnk_080CF0F0 ldrb r1, [r3] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] mov r0, ip bl _call_via_r1 pop {pc} .align 2, 0 _0803638C: .4byte gUnk_080CF0F0 thumb_func_start sub_08036390 sub_08036390: @ 0x08036390 push {r4, lr} adds r4, r0, #0 movs r1, #0xf movs r2, #0 bl sub_0804A98C str r0, [r4, #0x54] cmp r0, #0 beq _080363B4 str r4, [r0, #0x50] ldr r0, [r4, #0x54] adds r1, r4, #0 adds r1, #0x7b ldrb r1, [r1] rsbs r1, r1, #0 movs r2, #0x80 eors r1, r2 strb r1, [r0, #0x15] _080363B4: adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] ldr r1, [r0, #8] adds r1, #0x79 ldrb r0, [r1] adds r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_08036C90 pop {r4, pc} thumb_func_start sub_080363CC sub_080363CC: @ 0x080363CC push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 adds r7, r4, #0 adds r7, #0x80 ldrb r2, [r7] cmp r2, #0 bne _080364CC ldr r5, _08036498 @ =gUnk_03001160 ldr r0, [r5, #0x2c] ldr r1, [r4, #0x2c] subs r0, r0, r1 ldr r1, [r5, #0x30] ldr r2, [r4, #0x30] subs r1, r1, r2 bl sub_080045DA strb r0, [r4, #0x15] adds r2, r4, #0 adds r2, #0x7b ldrb r0, [r2] adds r0, #0x80 rsbs r0, r0, #0 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 ldrb r1, [r4, #0x15] subs r3, r0, r1 mov r8, r2 cmp r3, #0 bge _0803640C rsbs r3, r3, #0 _0803640C: adds r6, r4, #0 adds r6, #0x79 cmp r3, #0xf bgt _080364AA adds r0, r4, #0 adds r1, r5, #0 movs r2, #0xf0 bl sub_0806FC80 cmp r0, #0 beq _080364AA ldr r2, _0803649C @ =gUnk_03003F80 ldr r1, [r2, #0x30] movs r0, #0x80 lsls r0, r0, #4 ands r0, r1 cmp r0, #0 bne _080364A4 ldrb r1, [r5, #0x10] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080364AA movs r1, #0xa0 lsls r1, r1, #2 mov r0, r8 ldrb r2, [r0] rsbs r2, r2, #0 adds r0, r5, #0 bl sub_0806F62C adds r0, r4, #0 adds r1, r5, #0 movs r2, #0x48 bl sub_0806FC80 cmp r0, #0 beq _080364AA movs r0, #1 strb r0, [r7] movs r0, #2 strb r0, [r6] ldr r2, _080364A0 @ =gUnk_03000BF0 ldrh r0, [r2, #6] movs r1, #0x84 lsls r1, r1, #1 adds r0, r0, r1 lsls r0, r0, #0x10 ldr r1, [r4, #0x2c] subs r0, r0, r1 ldrh r1, [r2, #8] adds r1, #0x88 lsls r1, r1, #0x10 ldr r2, [r4, #0x30] subs r1, r1, r2 bl sub_080045DA adds r2, r4, #0 adds r2, #0x84 ldr r1, [r2] strb r0, [r1, #3] ldr r1, [r2] ldrb r0, [r1, #3] adds r0, #0x80 rsbs r0, r0, #0 strb r0, [r1, #3] movs r0, #0xed bl sub_080A3268 b _080364AA .align 2, 0 _08036498: .4byte gUnk_03001160 _0803649C: .4byte gUnk_03003F80 _080364A0: .4byte gUnk_03000BF0 _080364A4: ldr r0, _080364C4 @ =0xFFFFF7FF ands r1, r0 str r1, [r2, #0x30] _080364AA: ldr r0, _080364C8 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #3 ands r0, r1 cmp r0, #0 bne _0803657A adds r0, r4, #0 movs r1, #0x87 movs r2, #2 movs r3, #0 bl sub_080A2988 b _0803657A .align 2, 0 _080364C4: .4byte 0xFFFFF7FF _080364C8: .4byte gUnk_030010A0 _080364CC: adds r0, r4, #0 adds r0, #0x7c ldrb r1, [r0] movs r5, #1 adds r0, r5, #0 ands r0, r1 adds r3, r4, #0 adds r3, #0x84 cmp r0, #0 bne _080364F0 ldr r0, [r3] adds r1, r4, #0 adds r1, #0x7b ldrb r0, [r0, #3] mov r8, r1 ldrb r6, [r1] cmp r0, r6 bne _08036570 _080364F0: cmp r2, #1 bne _08036510 movs r0, #2 strb r0, [r7] strb r0, [r4, #0xb] adds r1, r4, #0 adds r1, #0x79 movs r0, #0x2d strb r0, [r1] adds r1, #9 movs r2, #0 adds r0, #0xd3 strh r0, [r1] ldr r0, [r3] strb r2, [r0, #2] b _08036652 _08036510: movs r0, #0 strb r0, [r7] adds r1, r4, #0 adds r1, #0x82 movs r0, #0x80 lsls r0, r0, #1 strh r0, [r1] ldr r0, [r3] ldr r1, [r0, #8] adds r1, #0x79 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r1, _0803656C @ =gUnk_03001160 ldrb r2, [r1, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r2 movs r2, #1 orrs r0, r2 strb r0, [r1, #0x18] ldrb r2, [r1, #0x10] movs r0, #0x7f ands r0, r2 strb r0, [r1, #0x10] adds r1, #0x38 strb r5, [r1] movs r0, #0x80 lsls r0, r0, #3 adds r1, r4, #0 adds r1, #0x7b ldrb r1, [r1] adds r1, #0x80 rsbs r1, r1, #0 lsls r1, r1, #0x18 lsrs r1, r1, #0x1b movs r2, #0x30 bl sub_080792BC adds r0, r4, #0 bl sub_08036C90 movs r0, #0xef bl sub_080A3268 b _08036652 .align 2, 0 _0803656C: .4byte gUnk_03001160 _08036570: adds r1, r4, #0 adds r1, #0x79 movs r0, #2 strb r0, [r1] adds r6, r1, #0 _0803657A: ldrb r0, [r6] cmp r0, #0 bne _08036598 adds r0, r4, #0 adds r0, #0x76 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x74 movs r2, #0 strh r0, [r1] strb r2, [r4, #0xb] adds r0, r4, #0 bl sub_08036C90 b _08036652 _08036598: subs r2, r0, #1 strb r2, [r6] ldr r0, _080365E4 @ =gUnk_03003F80 ldr r1, [r0, #0x30] movs r0, #0x80 lsls r0, r0, #4 cmp r1, r0 bne _080365F8 lsls r0, r2, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x3c bne _080365F8 ldr r2, _080365E8 @ =gUnk_03001160 ldr r0, [r2, #0x2c] ldr r1, [r4, #0x2c] subs r0, r0, r1 ldr r1, [r2, #0x30] ldr r2, [r4, #0x30] subs r1, r1, r2 bl sub_080045DA adds r3, r0, #0 mov r7, r8 ldrb r2, [r7] rsbs r0, r2, #0 movs r1, #0x80 eors r0, r1 subs r0, r3, r0 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x80 bls _080365EC adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] adds r0, r2, #0 adds r0, #0x30 b _080365F6 .align 2, 0 _080365E4: .4byte gUnk_03003F80 _080365E8: .4byte gUnk_03001160 _080365EC: adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] adds r0, r2, #0 subs r0, #0x30 _080365F6: strb r0, [r1, #3] _080365F8: adds r0, r4, #0 adds r0, #0x7c ldrb r0, [r0] movs r5, #1 adds r2, r5, #0 ands r2, r0 cmp r2, #0 bne _08036652 adds r3, r4, #0 adds r3, #0x84 ldr r1, [r3] ldrb r0, [r1, #3] mov r6, r8 ldrb r6, [r6] cmp r0, r6 beq _08036650 strb r5, [r1, #2] ldr r0, [r3] ldrb r0, [r0, #3] mov r7, r8 ldrb r1, [r7] subs r0, r0, r1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x80 bls _0803663E adds r2, r4, #0 adds r2, #0x7a adds r0, r4, #0 adds r0, #0x82 ldrh r1, [r2] ldrh r0, [r0] subs r1, r1, r0 strh r1, [r2] b _08036652 _0803663E: adds r1, r4, #0 adds r1, #0x7a adds r0, r4, #0 adds r0, #0x82 ldrh r0, [r0] ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] b _08036652 _08036650: strb r2, [r1, #2] _08036652: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08036658 sub_08036658: @ 0x08036658 push {r4, r5, lr} adds r5, r0, #0 adds r4, r5, #0 adds r4, #0x79 ldrb r1, [r4] adds r0, r1, #0 cmp r0, #0xff bne _08036678 movs r0, #0 strb r0, [r5, #0xb] adds r0, r5, #0 bl sub_08036C90 movs r0, #0x78 strb r0, [r4] b _080366AC _08036678: adds r0, r1, #1 strb r0, [r4] movs r0, #1 rsbs r0, r0, #0 bl sub_0805308C ldr r0, _080366B0 @ =gUnk_030010A0 ldr r1, [r0] movs r0, #3 ands r0, r1 cmp r0, #0 bne _080366AC movs r0, #7 ands r1, r0 cmp r1, #0 bne _080366A0 movs r0, #0x92 lsls r0, r0, #1 bl sub_080A3268 _080366A0: adds r0, r5, #0 movs r1, #0x87 movs r2, #3 movs r3, #0 bl sub_080A2988 _080366AC: pop {r4, r5, pc} .align 2, 0 _080366B0: .4byte gUnk_030010A0 thumb_func_start sub_080366B4 sub_080366B4: @ 0x080366B4 push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x79 ldrb r0, [r2] adds r1, r0, #0 cmp r1, #0 bne _080366D4 adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] strb r1, [r0, #2] adds r0, r4, #0 bl sub_08036C90 b _08036706 _080366D4: subs r0, #1 strb r0, [r2] ldr r0, _08036708 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #3 ands r0, r1 cmp r0, #0 bne _08036706 adds r0, r4, #0 movs r1, #0xf movs r2, #2 bl sub_0804A98C str r0, [r4, #0x54] cmp r0, #0 beq _08036706 str r4, [r0, #0x50] ldr r2, [r4, #0x54] adds r0, r4, #0 adds r0, #0x7b ldrb r0, [r0] rsbs r0, r0, #0 movs r1, #0x80 eors r0, r1 strb r0, [r2, #0x15] _08036706: pop {r4, pc} .align 2, 0 _08036708: .4byte gUnk_030010A0 thumb_func_start sub_0803670C sub_0803670C: @ 0x0803670C push {r4, lr} adds r4, r0, #0 ldr r1, _0803675C @ =gUnk_080CF100 ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] ldrb r0, [r1, #6] cmp r0, #0 beq _08036746 subs r0, #1 strb r0, [r1, #6] ldr r0, _08036760 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #7 ands r0, r1 cmp r0, #0 bne _08036746 adds r0, r4, #0 movs r1, #0xf movs r2, #3 bl sub_0804A98C _08036746: adds r0, r4, #0 adds r0, #0x76 ldrh r1, [r0] subs r0, #2 ldrh r2, [r0] adds r0, #6 ldrh r3, [r0] adds r0, r4, #0 bl sub_0805EC9C pop {r4, pc} .align 2, 0 _0803675C: .4byte gUnk_080CF100 _08036760: .4byte gUnk_030010A0 thumb_func_start sub_08036764 sub_08036764: @ 0x08036764 push {r4, lr} adds r4, r0, #0 movs r1, #0 movs r0, #1 strb r0, [r4, #0xd] movs r0, #0x80 lsls r0, r0, #2 strh r0, [r4, #0x24] strh r1, [r4, #0x2a] adds r0, r4, #0 adds r0, #0x7b ldrb r0, [r0] rsbs r0, r0, #0 movs r1, #0x80 eors r0, r1 lsls r0, r0, #0x18 lsrs r0, r0, #0x1b strb r0, [r4, #0x15] adds r1, r4, #0 adds r1, #0x79 movs r0, #0x78 strb r0, [r1] adds r1, #9 movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r1] adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] movs r0, #4 strb r0, [r1] adds r0, r4, #0 bl sub_080368D8 adds r0, r4, #0 bl sub_080367B0 pop {r4, pc} thumb_func_start sub_080367B0 sub_080367B0: @ 0x080367B0 push {r4, r5, lr} adds r4, r0, #0 bl sub_080AEF88 ldrh r0, [r4, #0x2a] cmp r0, #0 beq _0803683A movs r0, #2 strb r0, [r4, #0xd] adds r3, r4, #0 adds r3, #0x84 ldr r1, [r3] adds r0, r4, #0 adds r0, #0x7b ldrb r0, [r0] strb r0, [r1, #3] ldrh r1, [r4, #0x2a] movs r0, #0xee lsls r0, r0, #8 ands r0, r1 cmp r0, #0 beq _080367E4 ldr r1, [r3] ldrb r0, [r1, #3] rsbs r0, r0, #0 strb r0, [r1, #3] _080367E4: ldrh r1, [r4, #0x2a] movs r0, #0xee ands r0, r1 cmp r0, #0 beq _080367FE ldr r0, [r3] ldrb r1, [r0, #3] rsbs r1, r1, #0 movs r5, #0x80 rsbs r5, r5, #0 adds r2, r5, #0 eors r1, r2 strb r1, [r0, #3] _080367FE: adds r1, r4, #0 adds r1, #0x42 movs r0, #0x18 strb r0, [r1] adds r1, #4 movs r0, #0x80 lsls r0, r0, #2 strh r0, [r1] ldrb r0, [r4, #0x15] movs r1, #0x10 eors r0, r1 adds r1, r4, #0 adds r1, #0x3e strb r0, [r1] ldr r1, [r3] ldrb r0, [r1, #6] adds r0, #0x1e strb r0, [r1, #6] movs r0, #0x1e movs r1, #0 bl sub_08080964 movs r0, #0xac lsls r0, r0, #1 bl sub_080A3268 movs r0, #0xa6 lsls r0, r0, #1 bl sub_080A3268 _0803683A: adds r1, r4, #0 adds r1, #0x79 ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _08036852 subs r1, #0x34 movs r0, #0 strb r0, [r1] _08036852: ldr r0, _08036868 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #0x1f ands r0, r1 cmp r0, #0 bne _08036864 ldr r0, _0803686C @ =0x00000159 bl sub_080A3268 _08036864: pop {r4, r5, pc} .align 2, 0 _08036868: .4byte gUnk_030010A0 _0803686C: .4byte 0x00000159 thumb_func_start sub_08036870 sub_08036870: @ 0x08036870 push {lr} adds r3, r0, #0 adds r0, #0x84 ldr r0, [r0] ldrb r1, [r0, #3] movs r0, #0x7b adds r0, r0, r3 mov ip, r0 ldrb r0, [r0] subs r1, r1, r0 adds r0, r1, #7 cmp r0, #0xe bhi _080368AA movs r2, #0 movs r0, #1 strb r0, [r3, #0xd] mov r1, ip ldrb r0, [r1] rsbs r0, r0, #0 movs r1, #0x80 eors r0, r1 lsls r0, r0, #0x18 lsrs r0, r0, #0x1b strb r0, [r3, #0x15] strh r2, [r3, #0x2a] adds r0, r3, #0 bl sub_080AEF88 b _080368D4 _080368AA: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x80 bls _080368C4 adds r2, r3, #0 adds r2, #0x7a adds r0, r3, #0 adds r0, #0x82 ldrh r1, [r2] ldrh r0, [r0] subs r1, r1, r0 strh r1, [r2] b _080368D4 _080368C4: adds r1, r3, #0 adds r1, #0x7a adds r0, r3, #0 adds r0, #0x82 ldrh r0, [r0] ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] _080368D4: pop {pc} .align 2, 0 thumb_func_start sub_080368D8 sub_080368D8: @ 0x080368D8 push {lr} adds r3, r0, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 beq _08036902 ldr r2, _08036910 @ =gUnk_03001160 ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] ldrb r1, [r2, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x10] adds r2, #0x38 movs r0, #1 strb r0, [r2] _08036902: adds r0, r3, #0 adds r0, #0x76 movs r1, #0xa0 strh r1, [r0] subs r0, #2 strh r1, [r0] pop {pc} .align 2, 0 _08036910: .4byte gUnk_03001160 thumb_func_start sub_08036914 sub_08036914: @ 0x08036914 push {r4, r5, r6, lr} mov r6, sb mov r5, r8 push {r5, r6} adds r5, r0, #0 adds r4, r1, #0 adds r6, r2, #0 ldr r0, _08036994 @ =gUnk_080C9160 mov sb, r0 lsls r0, r4, #1 add r0, sb movs r1, #0 ldrsh r0, [r0, r1] lsls r6, r6, #0x10 asrs r6, r6, #0x10 adds r1, r6, #0 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x80 lsls r1, r1, #1 mov r8, r1 bl sub_0806FA04 ldr r1, [r5, #0x50] lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r1, #0x2c] adds r1, r1, r0 str r1, [r5, #0x2c] adds r4, #0x40 lsls r4, r4, #1 add r4, sb movs r1, #0 ldrsh r0, [r4, r1] adds r1, r6, #0 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r1, r8 bl sub_0806FA04 ldr r2, [r5, #0x50] lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r2, #0x30] subs r1, r1, r0 str r1, [r5, #0x30] adds r2, #0x62 ldrb r0, [r2] adds r1, r5, #0 adds r1, #0x62 strb r0, [r1] ldr r0, [r5, #0x50] adds r0, #0x63 ldrb r0, [r0] adds r5, #0x63 strb r0, [r5] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, pc} .align 2, 0 _08036994: .4byte gUnk_080C9160 thumb_func_start sub_08036998 sub_08036998: @ 0x08036998 push {r4, lr} adds r2, r0, #0 adds r3, r2, #0 adds r3, #0x79 ldrb r0, [r2, #0xf] ldrb r4, [r3] adds r1, r0, r4 strb r1, [r3] ldrb r4, [r2, #0xf] movs r0, #0xf ldrsb r0, [r2, r0] cmp r0, #0 bge _080369BE ldrb r0, [r2, #0xe] lsls r1, r1, #0x18 lsls r0, r0, #0x18 cmn r1, r0 bge _080369CC b _080369C8 _080369BE: movs r0, #0 ldrsb r0, [r3, r0] ldrb r1, [r2, #0xe] cmp r0, r1 ble _080369CC _080369C8: rsbs r0, r4, #0 strb r0, [r2, #0xf] _080369CC: pop {r4, pc} .align 2, 0 thumb_func_start sub_080369D0 sub_080369D0: @ 0x080369D0 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} mov ip, r1 adds r6, r2, #0 adds r1, r0, #0 adds r1, #0x84 ldr r4, [r1] ldr r2, [r4, #0xc] ldrb r1, [r4, #1] subs r1, #1 lsls r1, r1, #2 adds r3, r4, #0 adds r3, #0xc adds r1, r3, r1 ldr r1, [r1] adds r1, #0x7b adds r0, #0x79 ldrb r0, [r0] ldrb r1, [r1] adds r0, r0, r1 adds r2, #0x7b strb r0, [r2] ldrb r0, [r4, #1] movs r2, #0 cmp r0, #1 beq _08036A58 adds r5, r3, #0 lsls r0, r6, #0x18 lsrs r0, r0, #0x18 mov r8, r0 rsbs r0, r6, #0 lsls r0, r0, #0x18 asrs r7, r0, #0x18 _08036A16: lsls r0, r2, #2 adds r0, r5, r0 ldr r1, [r0] adds r1, #0x7b adds r2, #1 lsls r0, r2, #2 adds r0, r5, r0 ldr r0, [r0] adds r3, r0, #0 adds r3, #0x7b ldrb r1, [r1] ldrb r0, [r3] cmp r1, r0 beq _08036A4C subs r0, r0, r1 lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08036A44 cmp r0, r8 ble _08036A4C adds r0, r1, r6 b _08036A4A _08036A44: cmp r0, r7 bge _08036A4C subs r0, r1, r6 _08036A4A: strb r0, [r3] _08036A4C: ldrb r0, [r4, #1] subs r0, #1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r2, r0 blo _08036A16 _08036A58: ldrb r0, [r4, #1] subs r2, r0, #1 cmp r2, #0 beq _08036AE4 ldr r0, _08036AEC @ =gUnk_080C9160 mov sb, r0 movs r1, #0x80 mov r8, r1 mov r1, ip lsls r0, r1, #0x14 asrs r6, r0, #0x10 lsls r0, r2, #2 adds r0, #8 adds r5, r0, r4 movs r7, #0x80 lsls r7, r7, #1 _08036A78: subs r4, r2, #1 ldr r0, [r5] adds r0, #0x7b ldrb r0, [r0] mov r1, r8 eors r0, r1 lsls r0, r0, #1 add r0, sb movs r1, #0 ldrsh r0, [r0, r1] adds r1, r6, #0 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r7, #0 bl sub_0806FA04 ldr r2, [r5] ldr r1, [r5, #4] lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r1, #0x2c] adds r1, r1, r0 str r1, [r2, #0x2c] ldr r0, [r5] adds r0, #0x7b ldrb r0, [r0] mov r1, r8 eors r0, r1 adds r0, #0x40 lsls r0, r0, #1 add r0, sb movs r1, #0 ldrsh r0, [r0, r1] adds r1, r6, #0 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r7, #0 bl sub_0806FA04 ldr r2, [r5] ldr r1, [r5, #4] lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r1, #0x30] subs r1, r1, r0 str r1, [r2, #0x30] subs r5, #4 adds r2, r4, #0 cmp r2, #0 bne _08036A78 _08036AE4: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _08036AEC: .4byte gUnk_080C9160 thumb_func_start sub_08036AF0 sub_08036AF0: @ 0x08036AF0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0xc str r1, [sp] mov r8, r2 adds r0, #0x84 ldr r0, [r0] str r0, [sp, #4] ldrb r0, [r0, #1] subs r4, r0, #1 cmp r4, #0 bne _08036B10 b _08036C80 _08036B10: ldr r0, [sp, #4] adds r0, #0xc str r0, [sp, #8] lsls r0, r1, #0x14 asrs r0, r0, #0x10 mov sl, r0 _08036B1C: mov r1, r8 cmp r1, #0 bne _08036BC0 lsls r0, r4, #2 ldr r2, [sp, #8] adds r6, r2, r0 ldr r0, [r6] subs r4, #1 lsls r1, r4, #2 adds r5, r2, r1 ldr r2, [r5] movs r3, #0x2e ldrsh r1, [r2, r3] movs r3, #0x32 ldrsh r2, [r2, r3] bl sub_080041DC mov sb, r4 ldr r1, [sp] cmp r1, r0 blo _08036B48 b _08036C78 _08036B48: ldr r2, [r5] ldr r3, [r6] ldr r0, [r2, #0x2c] ldr r1, [r3, #0x2c] subs r0, r0, r1 ldr r1, [r2, #0x30] ldr r2, [r3, #0x30] subs r1, r1, r2 bl sub_080045DA ldr r1, [r5] adds r1, #0x7b strb r0, [r1] ldr r0, [r5] adds r0, #0x7b ldrb r0, [r0] lsls r0, r0, #1 ldr r2, _08036BBC @ =gUnk_080C9160 adds r0, r0, r2 movs r3, #0 ldrsh r0, [r0, r3] mov r1, sl bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x80 lsls r1, r1, #1 bl sub_0806FA04 ldr r2, [r5] ldr r1, [r6] lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r1, #0x2c] adds r1, r1, r0 str r1, [r2, #0x2c] ldr r0, [r5] adds r0, #0x7b ldrb r0, [r0] adds r0, #0x40 lsls r0, r0, #1 ldr r1, _08036BBC @ =gUnk_080C9160 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] mov r1, sl bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x80 lsls r1, r1, #1 bl sub_0806FA04 ldr r2, [r5] ldr r1, [r6] b _08036C6E .align 2, 0 _08036BBC: .4byte gUnk_080C9160 _08036BC0: subs r2, r4, #1 lsls r0, r2, #2 ldr r3, [sp, #8] adds r0, r3, r0 ldr r0, [r0] adds r5, r0, #0 adds r5, #0x7b lsls r1, r4, #2 adds r0, r3, r1 ldr r0, [r0] adds r0, #0x7b ldrb r4, [r5] ldrb r3, [r0] adds r7, r1, #0 ldr r6, [sp, #4] adds r6, #0xc mov sb, r2 cmp r4, r3 beq _08036C0E subs r0, r3, r4 lsls r0, r0, #0x18 asrs r1, r0, #0x18 cmp r1, #0 ble _08036BFE mov r2, r8 lsls r0, r2, #0x18 lsrs r0, r0, #0x18 cmp r1, r0 ble _08036C0E subs r0, r3, r2 b _08036C0C _08036BFE: mov r2, r8 rsbs r0, r2, #0 lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bge _08036C0E adds r0, r3, r2 _08036C0C: strb r0, [r5] _08036C0E: mov r3, sb lsls r4, r3, #2 adds r4, r6, r4 ldr r0, [r4] adds r0, #0x7b ldrb r0, [r0] lsls r0, r0, #1 ldr r1, _08036C8C @ =gUnk_080C9160 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] mov r1, sl bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x80 lsls r1, r1, #1 bl sub_0806FA04 ldr r2, [r4] adds r5, r6, r7 ldr r1, [r5] lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r1, #0x2c] adds r1, r1, r0 str r1, [r2, #0x2c] ldr r0, [r4] adds r0, #0x7b ldrb r0, [r0] adds r0, #0x40 lsls r0, r0, #1 ldr r3, _08036C8C @ =gUnk_080C9160 adds r0, r0, r3 movs r1, #0 ldrsh r0, [r0, r1] mov r1, sl bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x80 lsls r1, r1, #1 bl sub_0806FA04 ldr r2, [r4] ldr r1, [r5] _08036C6E: lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r1, #0x30] subs r1, r1, r0 str r1, [r2, #0x30] _08036C78: mov r4, sb cmp r4, #0 beq _08036C80 b _08036B1C _08036C80: add sp, #0xc pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _08036C8C: .4byte gUnk_080C9160 thumb_func_start sub_08036C90 sub_08036C90: @ 0x08036C90 push {r4, lr} adds r4, r0, #0 adds r0, #0x7c ldrb r2, [r0] cmp r2, #4 bne _08036CDC adds r3, r4, #0 adds r3, #0x81 ldrb r0, [r3] cmp r0, #0xff beq _08036CDC movs r1, #0 strb r2, [r4, #0xd] strb r1, [r4, #0xb] adds r0, r4, #0 adds r0, #0x80 strb r1, [r0] ldr r1, _08036CFC @ =gUnk_080CF124 ldrb r0, [r3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] adds r2, r4, #0 adds r2, #0x7e ldrb r1, [r2] adds r0, r0, r1 ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x7d strb r0, [r1] ldrb r0, [r2] adds r0, #1 strb r0, [r2] ldrb r0, [r1] cmp r0, #5 bne _08036D42 movs r0, #0xff strb r0, [r3] _08036CDC: movs r0, #3 strb r0, [r4, #0xd] adds r2, r4, #0 adds r2, #0x7c ldrb r1, [r2] movs r3, #1 adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _08036D14 ldrb r1, [r2] cmp r1, #1 beq _08036D00 cmp r1, #3 beq _08036D0A b _08036D42 .align 2, 0 _08036CFC: .4byte gUnk_080CF124 _08036D00: adds r1, r4, #0 adds r1, #0x79 movs r0, #0x1e strb r0, [r1] b _08036D42 _08036D0A: adds r1, r4, #0 adds r1, #0x79 movs r0, #0xa strb r0, [r1] b _08036D42 _08036D14: ldr r0, _08036D2C @ =gUnk_02034350 movs r2, #0xc ldrsh r1, [r0, r2] movs r0, #0x80 lsls r0, r0, #1 cmp r1, r0 beq _08036D30 adds r0, r4, #0 adds r0, #0x79 strb r3, [r0] b _08036D42 .align 2, 0 _08036D2C: .4byte gUnk_02034350 _08036D30: ldr r0, _08036D44 @ =gUnk_080CF10C bl sub_080028F4 ldr r1, _08036D48 @ =gUnk_080CF110 adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x79 strb r1, [r0] _08036D42: pop {r4, pc} .align 2, 0 _08036D44: .4byte gUnk_080CF10C _08036D48: .4byte gUnk_080CF110 thumb_func_start sub_08036D4C sub_08036D4C: @ 0x08036D4C mov ip, r0 mov r1, ip adds r1, #0x82 movs r3, #0 movs r0, #0x80 lsls r0, r0, #1 strh r0, [r1] mov r2, ip adds r2, #0x84 ldr r1, [r2] movs r0, #2 strb r0, [r1] ldr r1, [r2] movs r0, #0xff strb r0, [r1, #4] mov r0, ip strb r3, [r0, #0xd] bx lr thumb_func_start sub_08036D70 sub_08036D70: @ 0x08036D70 push {r4, lr} adds r4, r0, #0 movs r1, #1 strb r1, [r4, #0xd] movs r0, #0xc0 strh r0, [r4, #0x24] adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] strb r1, [r0] ldr r0, _08036D98 @ =gUnk_080CF134 bl sub_080028F4 ldr r1, _08036D9C @ =gUnk_080CF138 adds r0, r0, r1 ldrb r0, [r0] adds r4, #0x79 strb r0, [r4] pop {r4, pc} .align 2, 0 _08036D98: .4byte gUnk_080CF134 _08036D9C: .4byte gUnk_080CF138 thumb_func_start sub_08036DA0 sub_08036DA0: @ 0x08036DA0 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x81 movs r0, #0xff strb r0, [r1] adds r0, r4, #0 adds r0, #0x7c ldrb r0, [r0] movs r2, #1 ands r2, r0 cmp r2, #0 bne _08036DF0 ldr r0, _08036DD0 @ =gUnk_02034350 movs r3, #0xc ldrsh r1, [r0, r3] movs r0, #0x80 lsls r0, r0, #1 cmp r1, r0 beq _08036DD4 adds r0, r4, #0 adds r0, #0x78 strb r2, [r0] b _08036DF8 .align 2, 0 _08036DD0: .4byte gUnk_02034350 _08036DD4: ldr r0, _08036DE8 @ =gUnk_080CF13C bl sub_080028F4 ldr r1, _08036DEC @ =gUnk_080CF13F adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x78 strb r1, [r0] b _08036DF8 .align 2, 0 _08036DE8: .4byte gUnk_080CF13C _08036DEC: .4byte gUnk_080CF13F _08036DF0: adds r1, r4, #0 adds r1, #0x78 movs r0, #0 strb r0, [r1] _08036DF8: adds r0, r4, #0 bl sub_08036D4C pop {r4, pc} thumb_func_start sub_08036E00 sub_08036E00: @ 0x08036E00 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #4 adds r4, r0, #0 movs r2, #0 movs r0, #4 strb r0, [r4, #0xd] strb r2, [r4, #0xb] adds r7, r4, #0 adds r7, #0x81 movs r0, #0xff strb r0, [r7] adds r0, r4, #0 adds r0, #0x80 strb r2, [r0] adds r6, r4, #0 adds r6, #0x84 ldr r0, [r6] strb r2, [r0, #2] movs r0, #0x7c adds r0, r0, r4 mov r8, r0 ldrb r5, [r0] cmp r5, #0 bne _08036E3E adds r0, r4, #0 adds r0, #0x7d strb r2, [r0] b _08036F00 _08036E3E: cmp r5, #4 bne _08036ECC str r2, [sp] bl sub_08000E50 movs r1, #3 mov sb, r1 ands r0, r1 ldr r2, [sp] cmp r0, #0 beq _08036E62 ldr r0, _08036E84 @ =gUnk_02034350 movs r3, #0xc ldrsh r1, [r0, r3] movs r0, #0x80 lsls r0, r0, #1 cmp r1, r0 beq _08036E8C _08036E62: movs r0, #2 strb r0, [r4, #0xd] movs r0, #0x80 lsls r0, r0, #2 strh r0, [r4, #0x24] adds r1, r4, #0 adds r1, #0x79 movs r0, #0x3c strb r0, [r1] strh r2, [r4, #0x2a] ldr r0, [r6] strb r5, [r0] ldr r0, _08036E88 @ =0x00000159 bl sub_080A3268 b _08036F00 .align 2, 0 _08036E84: .4byte gUnk_02034350 _08036E88: .4byte 0x00000159 _08036E8C: mov r1, r8 ldrb r0, [r1] cmp r0, #4 bne _08036ECC adds r0, r4, #0 adds r0, #0x7e strb r2, [r0] bl sub_08000E50 adds r1, r0, #0 mov r3, sb ands r1, r3 ldr r0, [r6] ldrb r0, [r0, #5] cmp r0, r1 beq _08036EB0 strb r1, [r7] b _08036EB8 _08036EB0: adds r0, #1 movs r1, #3 ands r0, r1 strb r0, [r7] _08036EB8: adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] subs r0, #3 ldrb r0, [r0] strb r0, [r1, #5] adds r0, r4, #0 bl sub_08036C90 b _08036F00 _08036ECC: adds r0, r4, #0 adds r0, #0x7c ldrb r1, [r0] movs r0, #1 ands r0, r1 ldr r1, _08036F0C @ =gUnk_080CF147 cmp r0, #0 bne _08036EDE ldr r1, _08036F10 @ =gUnk_080CF142 _08036EDE: adds r2, r4, #0 adds r2, #0x7e ldrb r0, [r2] adds r0, r1, r0 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x7d strb r1, [r0] ldrb r0, [r2] adds r0, #1 strb r0, [r2] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #4 bls _08036F00 movs r0, #0 strb r0, [r2] _08036F00: add sp, #4 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _08036F0C: .4byte gUnk_080CF147 _08036F10: .4byte gUnk_080CF142 thumb_func_start sub_08036F14 sub_08036F14: @ 0x08036F14 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r6, r1, #0 adds r4, #0x84 ldr r0, [r4] ldr r0, [r0, #8] bl sub_0801D2B4 movs r5, #0 adds r7, r4, #0 _08036F28: ldr r0, [r7] lsls r1, r5, #2 adds r0, #0x20 adds r0, r0, r1 ldr r0, [r0] adds r1, r6, #0 bl sub_0801D2B4 adds r5, #1 cmp r5, #3 bls _08036F28 ldr r0, [r4] ldrb r0, [r0, #1] subs r5, r0, #1 cmp r5, #0 beq _08036F5E _08036F48: ldr r0, [r4] lsls r1, r5, #2 adds r0, #0xc adds r0, r0, r1 ldr r0, [r0] adds r1, r6, #0 bl sub_0801D2B4 subs r5, #1 cmp r5, #0 bne _08036F48 _08036F5E: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08036F60 sub_08036F60: @ 0x08036F60 push {r4, r5, lr} adds r2, r0, #0 ldrb r0, [r2, #0xd] cmp r0, #4 beq _08036FA8 adds r0, r2, #0 adds r0, #0x7c ldrb r1, [r0] movs r4, #1 adds r0, r4, #0 ands r0, r1 cmp r0, #0 bne _08036FA8 adds r3, r2, #0 adds r3, #0x76 movs r0, #0xe ldrsb r0, [r2, r0] ldrh r1, [r3] adds r0, r0, r1 strh r0, [r3] adds r1, r2, #0 adds r1, #0x74 movs r0, #0xe ldrsb r0, [r2, r0] ldrh r5, [r1] adds r0, r0, r5 strh r0, [r1] ldrh r0, [r3] cmp r0, #0x9b bhi _08036FA0 strb r4, [r2, #0xe] b _08036FA8 _08036FA0: cmp r0, #0xa4 bls _08036FA8 movs r0, #0xff strb r0, [r2, #0xe] _08036FA8: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08036FAC sub_08036FAC: @ 0x08036FAC push {lr} adds r2, r0, #0 ldr r0, _08036FD0 @ =gUnk_030010A0 ldr r0, [r0] ands r0, r1 cmp r0, #0 bne _08036FDE adds r0, r2, #0 adds r0, #0x7c ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 bne _08036FD8 ldr r0, _08036FD4 @ =0x00000163 bl sub_080A3268 b _08036FDE .align 2, 0 _08036FD0: .4byte gUnk_030010A0 _08036FD4: .4byte 0x00000163 _08036FD8: ldr r0, _08036FE0 @ =0x000001B1 bl sub_080A3268 _08036FDE: pop {pc} .align 2, 0 _08036FE0: .4byte 0x000001B1 thumb_func_start sub_08036FE4 sub_08036FE4: @ 0x08036FE4 push {r4, r5, lr} adds r2, r0, #0 adds r0, #0x7c ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08037048 adds r0, r2, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 bne _08037048 adds r0, r2, #0 adds r0, #0x82 ldrh r3, [r0] adds r4, r0, #0 cmp r3, #0 beq _08037048 adds r0, #2 ldr r0, [r0] ldrb r0, [r0, #4] cmp r0, #0xff beq _0803702C cmp r0, #0 bne _08037022 adds r1, r2, #0 adds r1, #0x7a ldrh r5, [r1] adds r0, r3, r5 b _0803702A _08037022: adds r1, r2, #0 adds r1, #0x7a ldrh r0, [r1] subs r0, r0, r3 _0803702A: strh r0, [r1] _0803702C: adds r0, r2, #0 adds r0, #0x7c ldrb r0, [r0] cmp r0, #1 beq _0803703C cmp r0, #3 beq _08037042 b _08037048 _0803703C: ldrh r0, [r4] subs r0, #1 b _08037046 _08037042: ldrh r0, [r4] subs r0, #2 _08037046: strh r0, [r4] _08037048: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0803704C sub_0803704C: @ 0x0803704C push {r4, r5, lr} adds r5, r0, #0 bl sub_080012DC adds r1, r0, #0 cmp r1, #0 beq _08037070 ldr r0, _0803706C @ =gUnk_080012C8 lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r5, #0 bl _call_via_r1 b _08037084 .align 2, 0 _0803706C: .4byte gUnk_080012C8 _08037070: ldr r4, _08037088 @ =gUnk_080CF244 adds r0, r5, #0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 _08037084: pop {r4, r5, pc} .align 2, 0 _08037088: .4byte gUnk_080CF244 thumb_func_start sub_0803708C sub_0803708C: @ 0x0803708C push {lr} ldr r2, _080370A0 @ =gUnk_080CF25C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080370A0: .4byte gUnk_080CF25C thumb_func_start sub_080370A4 sub_080370A4: @ 0x080370A4 push {r4, r5, r6, lr} adds r5, r0, #0 bl sub_08037418 adds r0, r5, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x9d bne _08037110 movs r0, #6 strb r0, [r5, #0xc] ldrb r1, [r5, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r5, #0x10] movs r0, #0xa8 lsls r0, r0, #0xa str r0, [r5, #0x20] adds r2, r5, #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 r0, r5, #0 adds r0, #0x74 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _0803710C @ =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 b _0803711E .align 2, 0 _0803710C: .4byte gUnk_03000BF0 _08037110: movs r1, #0x36 ldrsh r0, [r5, r1] cmp r0, #0 beq _0803711E adds r0, r5, #0 bl sub_08037408 _0803711E: ldr r1, _08037128 @ =gUnk_080CF244 adds r0, r5, #0 bl sub_0804AA30 pop {r4, r5, r6, pc} .align 2, 0 _08037128: .4byte gUnk_080CF244 thumb_func_start sub_0803712C sub_0803712C: @ 0x0803712C push {lr} ldr r2, _08037140 @ =gUnk_080CF278 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08037140: .4byte gUnk_080CF278 thumb_func_start sub_08037144 sub_08037144: @ 0x08037144 push {r4, lr} adds r4, r0, #0 bl sub_08037418 movs r1, #0 movs r0, #1 strb r0, [r4, #0xd] strb r1, [r4, #0xe] movs r0, #0x30 strb r0, [r4, #0x1d] pop {r4, pc} .align 2, 0 thumb_func_start sub_0803715C sub_0803715C: @ 0x0803715C push {r4, lr} adds r4, r0, #0 bl sub_08037418 adds r0, r4, #0 bl sub_0806F520 cmp r0, #0 beq _08037176 adds r0, r4, #0 bl sub_0806F4E8 b _0803718A _08037176: adds r1, r4, #0 adds r1, #0x62 strb r0, [r1] movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 beq _0803718A adds r0, r4, #0 bl sub_08037408 _0803718A: pop {r4, pc} thumb_func_start sub_0803718C sub_0803718C: @ 0x0803718C push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r4, [r5, #0xe] cmp r4, #0 bne _080371DA bl sub_08037418 movs r0, #1 strb r0, [r5, #0xe] ldrb r1, [r5, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r5, #0x10] adds r0, r5, #0 adds r0, #0x62 strb r4, [r0] adds r0, #0x12 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _080371EC @ =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 _080371DA: adds r0, r5, #0 bl sub_0806F520 cmp r0, #0 beq _080371F0 adds r0, r5, #0 bl sub_0806F3E4 b _080371F6 .align 2, 0 _080371EC: .4byte gUnk_03000BF0 _080371F0: adds r0, r5, #0 bl sub_08037408 _080371F6: pop {r4, r5, r6, pc} thumb_func_start sub_080371F8 sub_080371F8: @ 0x080371F8 push {lr} adds r2, r0, #0 ldr r0, _08037210 @ =gUnk_03003F80 ldrb r1, [r0, #0x1c] movs r0, #0xf ands r0, r1 cmp r0, #0 bne _0803720E adds r0, r2, #0 bl sub_08037408 _0803720E: pop {pc} .align 2, 0 _08037210: .4byte gUnk_03003F80 thumb_func_start nullsub_161 nullsub_161: @ 0x08037214 bx lr .align 2, 0 thumb_func_start sub_08037218 sub_08037218: @ 0x08037218 push {lr} bl sub_08037408 pop {pc} thumb_func_start sub_08037220 sub_08037220: @ 0x08037220 push {r4, r5, r6, lr} adds r5, r0, #0 movs r0, #1 strb r0, [r5, #0xc] movs r0, #2 strb r0, [r5, #0x1c] ldrh r0, [r5, #0x32] adds r0, #3 strh r0, [r5, #0x32] movs r0, #0x2e ldrsh r4, [r5, r0] ldr r1, _0803727C @ =gUnk_03000BF0 ldrh r0, [r1, #6] subs r4, r4, r0 asrs r4, r4, #4 movs r2, #0x3f ands r4, r2 movs r3, #0x32 ldrsh r0, [r5, r3] ldrh r1, [r1, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r4, r0 adds r6, r5, #0 adds r6, #0x38 ldrb r1, [r6] adds r0, r4, #0 bl sub_080001DA adds r1, r5, #0 adds r1, #0x74 strh r0, [r1] movs r0, #0x80 lsls r0, r0, #7 ldrb r2, [r6] adds r1, r4, #0 bl sub_0800015E adds r0, r5, #0 movs r1, #5 bl sub_08004260 pop {r4, r5, r6, pc} .align 2, 0 _0803727C: .4byte gUnk_03000BF0 thumb_func_start sub_08037280 sub_08037280: @ 0x08037280 push {r4, r5, r6, lr} adds r5, r0, #0 bl sub_08037418 adds r0, r5, #0 bl sub_080002A0 movs r1, #0x80 lsls r1, r1, #7 cmp r0, r1 beq _080372CC adds r0, r5, #0 adds r0, #0x74 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _080372E4 @ =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 adds r0, r5, #0 bl sub_08037408 _080372CC: adds r0, r5, #0 movs r1, #1 movs r2, #0x40 bl sub_08049F64 cmp r0, #0 beq _080372E2 movs r0, #2 strb r0, [r5, #0xc] movs r0, #0x1e strb r0, [r5, #0xe] _080372E2: pop {r4, r5, r6, pc} .align 2, 0 _080372E4: .4byte gUnk_03000BF0 thumb_func_start sub_080372E8 sub_080372E8: @ 0x080372E8 push {r4, r5, r6, lr} adds r5, r0, #0 bl sub_08037418 adds r3, r5, #0 adds r3, #0x62 ldr r2, _08037370 @ =gUnk_080CF290 ldrb r1, [r5, #0xe] movs r6, #3 adds r0, r6, #0 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] ldrb r1, [r3] adds r0, r0, r1 strb r0, [r3] ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 lsrs r4, r0, #0x18 cmp r4, #0 bne _0803736E strb r6, [r5, #0xc] adds r2, r5, #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] strb r4, [r3] adds r1, r5, #0 adds r1, #0x3f movs r0, #0xa0 strb r0, [r1] subs r1, #4 movs r0, #0xf strb r0, [r1] ldr r0, _08037374 @ =gUnk_080FD34C str r0, [r5, #0x48] adds r0, r5, #0 adds r0, #0x74 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _08037378 @ =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 _0803736E: pop {r4, r5, r6, pc} .align 2, 0 _08037370: .4byte gUnk_080CF290 _08037374: .4byte gUnk_080FD34C _08037378: .4byte gUnk_03000BF0 thumb_func_start sub_0803737C sub_0803737C: @ 0x0803737C push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x34] ldr r1, _080373A8 @ =0xFFFF0000 adds r0, r0, r1 str r0, [r4, #0x34] movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #6 rsbs r0, r0, #0 cmp r1, r0 bgt _080373A6 movs r0, #4 strb r0, [r4, #0xc] movs r0, #0xa strb r0, [r4, #0xe] ldr r1, _080373AC @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] _080373A6: pop {r4, pc} .align 2, 0 _080373A8: .4byte 0xFFFF0000 _080373AC: .4byte gUnk_03001160 thumb_func_start sub_080373B0 sub_080373B0: @ 0x080373B0 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 _080373C4 movs r0, #5 strb r0, [r1, #0xc] _080373C4: pop {pc} .align 2, 0 thumb_func_start sub_080373C8 sub_080373C8: @ 0x080373C8 push {r4, lr} adds r4, r0, #0 bl sub_080AEFE0 ldrh r0, [r4, #0x2a] cmp r0, #0 beq _080373DC adds r0, r4, #0 bl sub_08037408 _080373DC: pop {r4, pc} .align 2, 0 thumb_func_start sub_080373E0 sub_080373E0: @ 0x080373E0 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x20] cmp r0, #0 bge _080373F2 ldrb r0, [r4, #0x18] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x18] _080373F2: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08037406 adds r0, r4, #0 bl sub_08037408 _08037406: pop {r4, pc} thumb_func_start sub_08037408 sub_08037408: @ 0x08037408 push {lr} movs r1, #5 movs r2, #0 bl sub_080A29AC bl sub_0805E780 pop {pc} thumb_func_start sub_08037418 sub_08037418: @ 0x08037418 push {r4, r5, r6, lr} adds r5, r0, #0 movs r1, #0x2e ldrsh r0, [r5, r1] ldr r3, _08037464 @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r0, r0, r1 asrs r4, r0, #4 movs r2, #0x3f ands r4, r2 movs r1, #0x32 ldrsh r0, [r5, r1] ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r4, r0 adds r6, r5, #0 adds r6, #0x38 ldrb r1, [r6] adds r0, r4, #0 bl sub_080001DA ldr r1, _08037468 @ =0x00004067 cmp r0, r1 bne _08037460 adds r0, r5, #0 adds r0, #0x74 ldrh r0, [r0] ldrb r2, [r6] adds r1, r4, #0 bl sub_0800015E bl sub_0805E780 _08037460: pop {r4, r5, r6, pc} .align 2, 0 _08037464: .4byte gUnk_03000BF0 _08037468: .4byte 0x00004067 thumb_func_start sub_0803746C sub_0803746C: @ 0x0803746C push {r4, lr} adds r4, r0, #0 ldr r1, _08037488 @ =gUnk_080CF294 bl sub_0800129E movs r3, #0x15 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, pc} .align 2, 0 _08037488: .4byte gUnk_080CF294 thumb_func_start sub_0803748C sub_0803748C: @ 0x0803748C push {lr} ldr r2, _080374A0 @ =gUnk_080CF2AC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080374A0: .4byte gUnk_080CF2AC thumb_func_start sub_080374A4 sub_080374A4: @ 0x080374A4 push {r4, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r2, [r0] cmp r2, #0x87 bne _080374D4 ldrb r0, [r4, #0xc] cmp r0, #6 bne _080374BC adds r0, r4, #0 bl sub_08037ACC _080374BC: movs r0, #8 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 bl sub_08037B48 b _08037534 _080374D4: ldrb r0, [r4, #0xc] adds r1, r0, #0 cmp r1, #6 beq _0803752E adds r0, r4, #0 adds r0, #0x3f ldrb r0, [r0] cmp r0, #0x27 bne _080374F2 cmp r2, #0x80 bne _080374F2 adds r0, r4, #0 bl sub_08037A14 b _08037534 _080374F2: subs r0, r1, #1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _08037534 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] movs r1, #0x10 eors r0, r1 adds r0, #4 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] lsrs r0, r0, #3 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 bl sub_08037810 cmp r0, #0 beq _08037534 movs r0, #4 strb r0, [r4, #0xe] b _08037534 _0803752E: adds r0, r4, #0 bl sub_08037A58 _08037534: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _08037546 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _08037546: ldr r1, _08037550 @ =gUnk_080CF294 adds r0, r4, #0 bl sub_0804AA30 pop {r4, pc} .align 2, 0 _08037550: .4byte gUnk_080CF294 thumb_func_start nullsub_162 nullsub_162: @ 0x08037554 bx lr .align 2, 0 thumb_func_start sub_08037558 sub_08037558: @ 0x08037558 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 bl sub_08000E50 movs r1, #3 ands r0, r1 movs r1, #0 strb r0, [r4, #0x14] adds r0, r4, #0 adds r0, #0x76 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, r4, #0 bl sub_08037794 pop {r4, pc} .align 2, 0 thumb_func_start sub_08037580 sub_08037580: @ 0x08037580 push {r4, lr} adds r4, r0, #0 bl sub_08037810 cmp r0, #0 bne _080375A2 adds r1, r4, #0 adds r1, #0x74 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _080375A2 adds r0, r4, #0 bl sub_080377B0 _080375A2: pop {r4, pc} thumb_func_start sub_080375A4 sub_080375A4: @ 0x080375A4 push {r4, lr} adds r4, r0, #0 bl sub_080378B0 cmp r0, #0 bne _080375F4 adds r0, r4, #0 bl sub_08037810 cmp r0, #0 bne _080375F4 adds r1, r4, #0 adds r1, #0x74 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _080375D2 adds r0, r4, #0 bl sub_08037794 b _080375F4 _080375D2: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_080AEF88 cmp r0, #0 bne _080375F4 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _080375F4 adds r0, r4, #0 bl sub_080379BC _080375F4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080375F8 sub_080375F8: @ 0x080375F8 push {r4, lr} adds r4, r0, #0 bl sub_080378B0 cmp r0, #0 bne _08037622 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08037622 movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x18 strb r0, [r4, #0xe] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_080042AC _08037622: pop {r4, pc} thumb_func_start sub_08037624 sub_08037624: @ 0x08037624 push {r4, lr} adds r4, r0, #0 bl sub_080378B0 cmp r0, #0 bne _0803768E adds r0, r4, #0 bl sub_08037914 cmp r0, #0 bne _0803768E adds r1, r4, #0 adds r1, #0x74 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08037652 adds r0, r4, #0 bl sub_08037794 b _0803768E _08037652: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_080AEF88 cmp r0, #0 bne _0803767C ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0803768E adds r0, r4, #0 bl sub_080379BC b _0803768E _0803767C: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803768E adds r0, r4, #0 bl sub_0803797C _0803768E: pop {r4, pc} thumb_func_start sub_08037690 sub_08037690: @ 0x08037690 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 _080376B6 adds r1, r4, #0 adds r1, #0x77 movs r0, #0x14 strb r0, [r1] adds r0, r4, #0 bl sub_08037794 b _080376CC _080376B6: movs r0, #1 ands r0, r1 cmp r0, #0 beq _080376CC adds r1, r4, #0 adds r1, #0x3f movs r0, #0x27 strb r0, [r1] adds r0, r4, #0 bl sub_080AEF88 _080376CC: pop {r4, pc} .align 2, 0 thumb_func_start sub_080376D0 sub_080376D0: @ 0x080376D0 push {r4, lr} adds r4, r0, #0 bl sub_080379EC cmp r0, #0 bne _0803773A bl sub_08077B2C ldr r2, _08037724 @ =gUnk_03003F80 ldrb r1, [r2, #0x1a] movs r0, #0x80 orrs r1, r0 strb r1, [r2, #0x1a] ldrb r1, [r2, #0xa] orrs r0, r1 strb r0, [r2, #0xa] ldr r0, _08037728 @ =gUnk_03001160 adds r1, r4, #0 bl sub_0806FA6C adds r0, r4, #0 bl sub_080042B8 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0803773A adds r1, r4, #0 adds r1, #0x7c ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 bne _0803772C adds r0, r4, #0 bl sub_08037A58 b _0803773A .align 2, 0 _08037724: .4byte gUnk_03003F80 _08037728: .4byte gUnk_03001160 _0803772C: ldrb r0, [r2] movs r1, #1 eors r0, r1 strb r0, [r2] adds r0, r4, #0 bl sub_08037B10 _0803773A: pop {r4, pc} thumb_func_start sub_0803773C sub_0803773C: @ 0x0803773C 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 _08037758 adds r0, r4, #0 bl sub_08037794 _08037758: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803775C sub_0803775C: @ 0x0803775C push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08037790 movs r0, #0x42 movs r1, #0 bl sub_0804AA60 adds r4, r0, #0 cmp r4, #0 beq _0803778A adds r0, r5, #0 adds r1, r4, #0 bl sub_0804A4E4 adds r0, r5, #0 adds r1, r4, #0 bl sub_08037C0C _0803778A: adds r0, r5, #0 bl sub_0805E7BC _08037790: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08037794 sub_08037794: @ 0x08037794 push {lr} movs r1, #1 strb r1, [r0, #0xc] adds r2, r0, #0 adds r2, #0x74 movs r1, #0x1e strh r1, [r2] subs r2, #0x35 movs r1, #0x26 strb r1, [r2] ldrb r1, [r0, #0x14] bl sub_080042AC pop {pc} thumb_func_start sub_080377B0 sub_080377B0: @ 0x080377B0 push {r4, r5, lr} adds r4, r0, #0 movs r0, #2 strb r0, [r4, #0xc] movs r0, #8 strb r0, [r4, #0xf] bl sub_08000E50 movs r1, #0x38 ands r0, r1 adds r0, #0x78 adds r1, r4, #0 adds r1, #0x74 strh r0, [r1] movs r0, #0x40 strh r0, [r4, #0x24] bl sub_08000E50 adds r5, r0, #0 adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 bne _080377F8 movs r0, #3 ands r0, r5 cmp r0, #0 beq _080377F8 adds r0, r4, #0 bl sub_08049EE4 adds r0, #4 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] b _080377FE _080377F8: movs r0, #0x18 ands r5, r0 strb r5, [r4, #0x15] _080377FE: ldrb r0, [r4, #0x15] lsrs r0, r0, #3 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_080042AC pop {r4, r5, pc} thumb_func_start sub_08037810 sub_08037810: @ 0x08037810 push {r4, r5, r6, lr} adds r5, r0, #0 adds r1, r5, #0 adds r1, #0x76 ldrb r0, [r1] cmp r0, #0 bne _080378A8 adds r0, r5, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _080378AC ldr r6, _080378A4 @ =gUnk_020000B0 ldr r0, [r6] movs r2, #0x2e ldrsh r1, [r0, r2] movs r3, #0x32 ldrsh r2, [r0, r3] adds r0, r5, #0 movs r3, #0x40 bl sub_0806FCB8 cmp r0, #0 beq _080378AC ldr r1, [r6] adds r0, r5, #0 bl sub_080045C4 ldrb r1, [r5, #0x15] subs r0, r0, r1 adds r0, #6 movs r1, #0x1f ands r0, r1 cmp r0, #0xc bhi _080378AC movs r0, #3 strb r0, [r5, #0xc] movs r4, #0x18 movs r0, #0x18 strb r0, [r5, #0xe] movs r0, #8 strb r0, [r5, #0xf] movs r0, #0xc0 strh r0, [r5, #0x24] ldr r1, [r6] adds r0, r5, #0 bl sub_080045C4 adds r0, #4 ands r0, r4 strb r0, [r5, #0x15] lsrs r0, r0, #3 strb r0, [r5, #0x14] adds r1, r5, #0 adds r1, #0x74 movs r0, #0x96 lsls r0, r0, #1 strh r0, [r1] ldr r2, [r6] ldrh r1, [r2, #0x2e] adds r0, r5, #0 adds r0, #0x78 strh r1, [r0] ldrh r0, [r2, #0x32] adds r3, r5, #0 adds r3, #0x7a strh r0, [r3] ldrb r1, [r5, #0x14] adds r0, r5, #0 bl sub_080042AC movs r0, #1 b _080378AE .align 2, 0 _080378A4: .4byte gUnk_020000B0 _080378A8: subs r0, #1 strb r0, [r1] _080378AC: movs r0, #0 _080378AE: pop {r4, r5, r6, pc} thumb_func_start sub_080378B0 sub_080378B0: @ 0x080378B0 push {r4, r5, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x77 ldrb r0, [r1] cmp r0, #0 bne _0803790C movs r0, #1 bl sub_08049DF4 cmp r0, #0 beq _08037910 ldr r5, _08037908 @ =gUnk_020000B0 ldr r1, [r5] adds r0, r4, #0 movs r2, #0xa bl sub_0804A044 ldrb r1, [r4, #0x15] cmp r0, r1 bne _08037910 ldr r0, [r5] movs r2, #0x2e ldrsh r1, [r0, r2] movs r3, #0x32 ldrsh r2, [r0, r3] adds r0, r4, #0 movs r3, #0x18 bl sub_0806FCB8 cmp r0, #0 beq _08037910 movs r0, #5 strb r0, [r4, #0xc] adds r0, #0xfb strh r0, [r4, #0x24] ldrb r1, [r4, #0x14] adds r1, #8 adds r0, r4, #0 bl sub_080042AC movs r0, #1 b _08037912 .align 2, 0 _08037908: .4byte gUnk_020000B0 _0803790C: subs r0, #1 strb r0, [r1] _08037910: movs r0, #0 _08037912: pop {r4, r5, pc} thumb_func_start sub_08037914 sub_08037914: @ 0x08037914 push {r4, r5, r6, r7, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _08037970 ldr r7, _08037950 @ =gUnk_020000B0 ldr r0, [r7] adds r5, r4, #0 adds r5, #0x78 ldrh r1, [r5] adds r6, r4, #0 adds r6, #0x7a ldrh r2, [r6] movs r3, #0x28 bl sub_0806FCB8 cmp r0, #0 bne _08037954 ldr r0, [r7] ldrh r1, [r0, #0x2e] strh r1, [r5] ldrh r0, [r0, #0x32] strh r0, [r6] adds r0, r4, #0 bl sub_0803797C movs r0, #0 b _08037978 .align 2, 0 _08037950: .4byte gUnk_020000B0 _08037954: ldrh r1, [r5] ldrh r2, [r6] adds r0, r4, #0 movs r3, #8 bl sub_0806FCB8 cmp r0, #0 bne _08037968 movs r0, #0 b _08037978 _08037968: adds r1, r4, #0 adds r1, #0x76 movs r0, #0x3c strb r0, [r1] _08037970: adds r0, r4, #0 bl sub_08037794 movs r0, #1 _08037978: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0803797C sub_0803797C: @ 0x0803797C push {r4, r5, lr} adds r5, r0, #0 movs r4, #0x18 movs r0, #0x18 strb r0, [r5, #0xe] movs r0, #8 strb r0, [r5, #0xf] movs r1, #0x2e ldrsh r0, [r5, r1] movs r2, #0x32 ldrsh r1, [r5, r2] adds r2, r5, #0 adds r2, #0x78 ldrh r2, [r2] adds r3, r5, #0 adds r3, #0x7a ldrh r3, [r3] bl sub_080045D4 adds r0, #4 ands r0, r4 strb r0, [r5, #0x15] lsrs r0, r0, #3 ldrb r1, [r5, #0x14] cmp r0, r1 beq _080379BA strb r0, [r5, #0x14] adds r1, r0, #4 adds r0, r5, #0 bl sub_080042AC _080379BA: pop {r4, r5, pc} thumb_func_start sub_080379BC sub_080379BC: @ 0x080379BC push {r4, lr} adds r4, r0, #0 movs r0, #0x18 strb r0, [r4, #0xe] movs r0, #8 strb r0, [r4, #0xf] bl sub_08000E50 movs r1, #2 ands r0, r1 ldrb r1, [r4, #0x14] adds r1, r1, r0 subs r1, #1 movs r0, #3 ands r1, r0 strb r1, [r4, #0x14] lsls r1, r1, #3 strb r1, [r4, #0x15] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_080042AC pop {r4, pc} thumb_func_start sub_080379EC sub_080379EC: @ 0x080379EC push {r4, lr} adds r4, r0, #0 bl sub_0807953C cmp r0, #0 beq _08037A0E ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08037A0E adds r0, r4, #0 bl sub_08037A58 movs r0, #1 b _08037A10 _08037A0E: movs r0, #0 _08037A10: pop {r4, pc} .align 2, 0 thumb_func_start sub_08037A14 sub_08037A14: @ 0x08037A14 push {r4, lr} adds r4, r0, #0 movs r0, #6 strb r0, [r4, #0xc] movs r0, #0x18 strb r0, [r4, #0xe] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #0x20 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r2] adds r2, #0x12 ldrb r1, [r2] movs r0, #0xfe ands r0, r1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x7c movs r0, #5 strb r0, [r1] ldr r1, [r4, #0x4c] adds r0, r4, #0 bl sub_0806FA24 ldrb r1, [r4, #0x14] adds r1, #0xc adds r0, r4, #0 bl sub_080042AC pop {r4, pc} .align 2, 0 thumb_func_start sub_08037A58 sub_08037A58: @ 0x08037A58 push {r4, lr} adds r4, r0, #0 bl sub_08037ACC movs r0, #7 strb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #0xf ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2] adds r3, r4, #0 adds r3, #0x3d movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 bne _08037A84 movs r0, #0xec strb r0, [r3] _08037A84: adds r1, r4, #0 adds r1, #0x3f movs r0, #0x26 strb r0, [r1] adds r2, r4, #0 adds r2, #0x3b ldrb r0, [r2] movs r1, #1 orrs r0, r1 strb r0, [r2] movs r0, #0xf4 strb r0, [r3] ldrb r0, [r4, #0x14] lsls r0, r0, #3 movs r1, #0x10 eors r0, r1 adds r1, r4, #0 adds r1, #0x3e strb r0, [r1] adds r1, #4 movs r0, #8 strb r0, [r1] adds r1, #4 movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r1] adds r1, #0x30 movs r0, #0x3c strb r0, [r1] ldrb r1, [r4, #0x14] adds r1, #0x10 adds r0, r4, #0 bl sub_080042AC pop {r4, pc} .align 2, 0 thumb_func_start sub_08037ACC sub_08037ACC: @ 0x08037ACC ldr r3, _08037B04 @ =gUnk_03003F80 ldr r1, [r3, #0x30] ldr r2, _08037B08 @ =0xFFFFFEFF ands r1, r2 str r1, [r3, #0x30] ldr r3, _08037B0C @ =gUnk_03001160 ldrb r2, [r3, #0x10] movs r1, #0x80 orrs r1, r2 strb r1, [r3, #0x10] adds r2, r3, #0 adds r2, #0x3d movs r1, #0x1e strb r1, [r2] ldrb r0, [r0, #0x14] lsls r0, r0, #3 adds r1, r3, #0 adds r1, #0x3e strb r0, [r1] adds r1, #4 movs r0, #4 strb r0, [r1] adds r1, #4 movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r1] bx lr .align 2, 0 _08037B04: .4byte gUnk_03003F80 _08037B08: .4byte 0xFFFFFEFF _08037B0C: .4byte gUnk_03001160 thumb_func_start sub_08037B10 sub_08037B10: @ 0x08037B10 push {r4, r5, r6, lr} adds r6, r0, #0 ldr r5, _08037B44 @ =gUnk_03001160 adds r1, r5, #0 adds r1, #0x3d movs r0, #0xc strb r0, [r1] subs r0, #0x14 bl sub_080526A0 adds r4, r0, #0 adds r0, r5, #0 movs r1, #0x7a bl sub_0800449C cmp r4, #0 bne _08037B40 adds r0, r6, #0 bl sub_08037A58 adds r1, r6, #0 adds r1, #0x76 movs r0, #0xf0 strb r0, [r1] _08037B40: pop {r4, r5, r6, pc} .align 2, 0 _08037B44: .4byte gUnk_03001160 thumb_func_start sub_08037B48 sub_08037B48: @ 0x08037B48 push {r4, lr} adds r4, r0, #0 movs r0, #0x2a movs r1, #3 movs r2, #0 bl sub_080A2960 adds r3, r0, #0 cmp r3, #0 beq _08037B88 ldrb r0, [r4, #0xe] movs r2, #0 strb r0, [r3, #0xb] movs r0, #0x29 adds r0, r0, r3 mov ip, r0 ldrb r1, [r0] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 orrs r0, r1 mov r1, ip strb r0, [r1] adds r0, r3, #0 adds r0, #0x62 strb r2, [r0] adds r1, r3, #0 adds r1, #0x63 movs r0, #0xfc strb r0, [r1] str r4, [r3, #0x50] _08037B88: adds r0, r4, #0 adds r0, #0x80 str r3, [r0] movs r0, #0x2a movs r1, #3 movs r2, #0 bl sub_080A2960 adds r3, r0, #0 cmp r3, #0 beq _08037BCA ldrb r0, [r4, #0xe] strb r0, [r3, #0xb] movs r0, #0x29 adds r0, r0, r3 mov ip, r0 ldrb r1, [r0] movs r2, #8 rsbs r2, r2, #0 adds r0, r2, #0 ands r0, r1 movs r1, #3 orrs r0, r1 mov r1, ip strb r0, [r1] adds r1, r3, #0 adds r1, #0x62 movs r0, #0xfd strb r0, [r1] adds r0, r3, #0 adds r0, #0x63 strb r2, [r0] str r4, [r3, #0x50] _08037BCA: adds r0, r4, #0 adds r0, #0x84 str r3, [r0] movs r0, #0x2a movs r1, #3 movs r2, #0 bl sub_080A2960 adds r3, r0, #0 cmp r3, #0 beq _08037C06 ldrb r0, [r4, #0xe] strb r0, [r3, #0xb] adds r2, r3, #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] adds r1, r3, #0 adds r1, #0x62 movs r0, #5 strb r0, [r1] adds r1, #1 movs r0, #0xf5 strb r0, [r1] str r4, [r3, #0x50] _08037C06: str r3, [r4, #0x54] pop {r4, pc} .align 2, 0 thumb_func_start sub_08037C0C sub_08037C0C: @ 0x08037C0C push {lr} adds r3, r0, #0 adds r0, #0x80 ldr r2, [r0] cmp r2, #0 beq _08037C1E movs r0, #0xf strb r0, [r2, #0xe] str r1, [r2, #0x50] _08037C1E: adds r0, r3, #0 adds r0, #0x84 ldr r2, [r0] cmp r2, #0 beq _08037C2E movs r0, #0xf strb r0, [r2, #0xe] str r1, [r2, #0x50] _08037C2E: ldr r2, [r3, #0x54] cmp r2, #0 beq _08037C3A movs r0, #0xf strb r0, [r2, #0xe] str r1, [r2, #0x50] _08037C3A: pop {pc} thumb_func_start sub_08037C3C sub_08037C3C: @ 0x08037C3C push {r4, r5, lr} adds r5, r0, #0 bl sub_080012DC cmp r0, #0 beq _08037C5C ldr r0, _08037C58 @ =gUnk_080012C8 lsls r1, r4, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r5, #0 bl _call_via_r1 b _08037C7E .align 2, 0 _08037C58: .4byte gUnk_080012C8 _08037C5C: ldr r4, _08037C80 @ =gUnk_080CF46C adds r0, r5, #0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 movs r3, #0x10 rsbs r3, r3, #0 adds r0, r5, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC _08037C7E: pop {r4, r5, pc} .align 2, 0 _08037C80: .4byte gUnk_080CF46C thumb_func_start sub_08037C84 sub_08037C84: @ 0x08037C84 push {lr} ldr r2, _08037C98 @ =gUnk_080CF484 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08037C98: .4byte gUnk_080CF484 thumb_func_start sub_08037C9C sub_08037C9C: @ 0x08037C9C push {r4, lr} adds r4, r0, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _08037CB0 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _08037CB0: ldr r1, _08037CBC @ =gUnk_080CF46C adds r0, r4, #0 bl sub_0804AA30 pop {r4, pc} .align 2, 0 _08037CBC: .4byte gUnk_080CF46C thumb_func_start sub_08037CC0 sub_08037CC0: @ 0x08037CC0 push {r4, lr} adds r4, r0, #0 adds r0, #0x3a ldrb r1, [r0] movs r0, #2 ands r0, r1 cmp r0, #0 bne _08037CD6 ldrb r0, [r4, #0xb] bl sub_0807CD04 _08037CD6: adds r0, r4, #0 movs r1, #0xff movs r2, #0x58 bl sub_0804A7E0 pop {r4, pc} .align 2, 0 thumb_func_start sub_08037CE4 sub_08037CE4: @ 0x08037CE4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xb] bl sub_0807CC30 cmp r0, #0 beq _08037CF6 bl sub_0805E780 _08037CF6: adds r0, r4, #0 bl sub_0804A720 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0xff strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_08037E14 pop {r4, pc} thumb_func_start sub_08037D0C sub_08037D0C: @ 0x08037D0C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] cmp r0, #0 beq _08037D1C subs r0, #1 strb r0, [r4, #0xf] b _08037D26 _08037D1C: adds r0, r4, #0 bl sub_08037E90 cmp r0, #0 bne _08037D52 _08037D26: adds r0, r4, #0 movs r1, #2 bl sub_08004276 adds r0, r4, #0 bl sub_080AEF88 cmp r0, #0 bne _08037D40 adds r0, r4, #0 bl sub_08037E14 b _08037D52 _08037D40: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08037D52 adds r0, r4, #0 bl sub_08037E14 _08037D52: pop {r4, pc} thumb_func_start sub_08037D54 sub_08037D54: @ 0x08037D54 push {r4, lr} adds r4, r0, #0 movs r1, #2 bl sub_08004276 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r3, #1 adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _08037DC4 movs r0, #2 eors r0, r1 strb r0, [r2] movs r1, #2 ands r0, r1 cmp r0, #0 beq _08037E0C adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_0804A98C adds r2, r0, #0 cmp r2, #0 beq _08037E0C ldrb r0, [r4, #0x15] strb r0, [r2, #0x15] ldrb r1, [r4, #0x15] lsrs r1, r1, #2 ldr r0, _08037DBC @ =gUnk_080CF490 adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] ldrh r3, [r2, #0x2e] adds r0, r0, r3 strh r0, [r2, #0x2e] movs r0, #1 ldrsb r0, [r1, r0] ldrh r1, [r2, #0x32] adds r0, r0, r1 strh r0, [r2, #0x32] ldr r0, _08037DC0 @ =0x0000FFFD strh r0, [r2, #0x36] movs r0, #0x92 lsls r0, r0, #1 bl sub_08004488 b _08037E0C .align 2, 0 _08037DBC: .4byte gUnk_080CF490 _08037DC0: .4byte 0x0000FFFD _08037DC4: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08037E0C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r1, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _08037DEE strb r3, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xf] ldrb r0, [r4, #0x14] orrs r0, r1 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_08037E14 b _08037E0C _08037DEE: ldr r1, _08037E10 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 adds r0, #4 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] lsrs r0, r0, #3 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_08004260 _08037E0C: pop {r4, pc} .align 2, 0 _08037E10: .4byte gUnk_03001160 thumb_func_start sub_08037E14 sub_08037E14: @ 0x08037E14 push {r4, r5, r6, lr} adds r5, r0, #0 movs r0, #8 strb r0, [r5, #0xe] ldr r1, _08037E6C @ =gUnk_03001160 adds r0, r5, #0 bl sub_080045C4 adds r4, r0, #4 movs r0, #0x18 ands r4, r0 adds r0, r5, #0 adds r0, #0x38 ldrb r0, [r0] bl sub_0808094C ldr r1, _08037E70 @ =0x00002004 adds r0, r0, r1 lsrs r3, r4, #2 ldr r1, _08037E74 @ =gUnk_080CF498 adds r3, r3, r1 movs r2, #0x2e ldrsh r1, [r5, r2] movs r2, #0 ldrsb r2, [r3, r2] adds r1, r1, r2 movs r6, #0x32 ldrsh r2, [r5, r6] ldrb r3, [r3, #1] lsls r3, r3, #0x18 asrs r3, r3, #0x18 adds r2, r2, r3 movs r3, #0 bl sub_080AE4CC cmp r0, #0 beq _08037E78 bl sub_08000E50 movs r1, #0x18 ands r0, r1 strb r0, [r5, #0x15] b _08037E7A .align 2, 0 _08037E6C: .4byte gUnk_03001160 _08037E70: .4byte 0x00002004 _08037E74: .4byte gUnk_080CF498 _08037E78: strb r4, [r5, #0x15] _08037E7A: ldrb r0, [r5, #0x15] lsrs r4, r0, #3 ldrb r0, [r5, #0x14] cmp r4, r0 beq _08037E8E strb r4, [r5, #0x14] adds r0, r5, #0 adds r1, r4, #0 bl sub_08004260 _08037E8E: pop {r4, r5, r6, pc} thumb_func_start sub_08037E90 sub_08037E90: @ 0x08037E90 push {r4, lr} adds r4, r0, #0 ldr r1, _08037EA8 @ =gUnk_03001160 movs r2, #8 bl sub_0804A044 adds r1, r0, #0 cmp r1, #0xff bne _08037EAC movs r0, #0 b _08037EC6 .align 2, 0 _08037EA8: .4byte gUnk_03001160 _08037EAC: movs r0, #2 strb r0, [r4, #0xc] movs r0, #3 strb r0, [r4, #0xe] strb r1, [r4, #0x15] lsrs r0, r1, #3 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_08004260 movs r0, #1 _08037EC6: pop {r4, pc} thumb_func_start sub_08037EC8 sub_08037EC8: @ 0x08037EC8 push {r4, lr} adds r4, r0, #0 ldr r1, _08037EE4 @ =gUnk_080CF4A0 bl sub_0800129E movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, pc} .align 2, 0 _08037EE4: .4byte gUnk_080CF4A0 thumb_func_start sub_08037EE8 sub_08037EE8: @ 0x08037EE8 push {lr} ldr r2, _08037EFC @ =gUnk_080CF4B8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08037EFC: .4byte gUnk_080CF4B8 thumb_func_start sub_08037F00 sub_08037F00: @ 0x08037F00 push {r4, lr} adds r4, r0, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _08037F14 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _08037F14: ldr r1, _08037F54 @ =gUnk_080CF4A0 adds r0, r4, #0 bl sub_0804AA30 adds r0, r4, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x94 bne _08037F50 movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0xd] movs r0, #0x14 strb r0, [r4, #0xe] strb r1, [r4, #0xf] adds r0, r4, #0 adds r0, #0x80 strb r1, [r0] movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 beq _08037F46 ldr r0, [r4, #0x20] asrs r0, r0, #2 _08037F46: str r0, [r4, #0x20] adds r0, r4, #0 movs r1, #0 bl sub_08004260 _08037F50: pop {r4, pc} .align 2, 0 _08037F54: .4byte gUnk_080CF4A0 thumb_func_start sub_08037F58 sub_08037F58: @ 0x08037F58 push {r4, lr} adds r4, r0, #0 adds r0, #0x3a ldrb r1, [r0] movs r0, #2 ands r0, r1 cmp r0, #0 bne _08037F6E ldrb r0, [r4, #0xb] bl sub_0807CD04 _08037F6E: ldrb r0, [r4, #0xa] movs r2, #0x58 cmp r0, #0 beq _08037F78 movs r2, #0x59 _08037F78: adds r0, r4, #0 movs r1, #0xff bl sub_0804A7E0 pop {r4, pc} .align 2, 0 thumb_func_start sub_08037F84 sub_08037F84: @ 0x08037F84 push {r4, lr} adds r4, r0, #0 bl sub_08001242 movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 beq _08037F9E movs r1, #0xc0 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 _08037F9E: pop {r4, pc} thumb_func_start sub_08037FA0 sub_08037FA0: @ 0x08037FA0 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xb] bl sub_0807CC30 cmp r0, #0 beq _08037FB2 bl sub_0805E780 _08037FB2: adds r0, r5, #0 bl sub_0804A720 movs r4, #0 movs r0, #1 strb r0, [r5, #0xc] strb r4, [r5, #0xd] bl sub_08000E50 movs r1, #0x1f ands r0, r1 adds r0, #0x20 strb r0, [r5, #0xe] strb r4, [r5, #0xf] adds r0, r5, #0 adds r0, #0x80 strb r4, [r0] adds r0, r5, #0 movs r1, #0 bl sub_08004260 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08037FE0 sub_08037FE0: @ 0x08037FE0 push {r4, lr} adds r4, r0, #0 movs r1, #2 bl sub_08004276 ldrb r0, [r4, #0xe] adds r2, r0, #0 cmp r2, #0 beq _08037FF8 subs r0, #1 strb r0, [r4, #0xe] b _08038046 _08037FF8: ldrb r0, [r4, #0xf] cmp r0, #0 beq _0803802C adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08038046 movs r0, #2 strb r0, [r4, #0xc] movs r0, #6 strb r0, [r4, #0xe] strb r2, [r4, #0xf] movs r0, #0xe0 lsls r0, r0, #0xa str r0, [r4, #0x20] adds r0, r4, #0 bl sub_08038168 adds r0, r4, #0 movs r1, #2 bl sub_08004260 b _08038046 _0803802C: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08038046 movs r0, #0x40 strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _08038046: pop {r4, pc} thumb_func_start sub_08038048 sub_08038048: @ 0x08038048 push {r4, r5, r6, lr} adds r4, r0, #0 movs r1, #2 bl sub_08004276 adds r0, r4, #0 bl sub_080AEF88 movs r0, #0x36 ldrsh r6, [r4, r0] bl sub_08000E50 adds r5, r0, #0 movs r0, #0xf ands r5, r0 movs r1, #0xc0 lsls r1, r1, #6 adds r0, r4, #0 bl sub_080044EC cmp r0, #1 bne _08038088 movs r0, #0 movs r1, #3 strb r1, [r4, #0xc] strb r0, [r4, #0xd] movs r0, #0x14 strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_08004260 b _0803810C _08038088: ldrh r0, [r4, #0x2a] cmp r0, #0 beq _08038098 adds r1, r0, #0 adds r0, r4, #0 bl sub_0800417E b _080380B0 _08038098: adds r0, r4, #0 bl sub_080002B8 movs r1, #0xf0 ands r1, r0 cmp r1, #0x50 bne _080380B0 ldrb r0, [r4, #0x15] adds r0, #0x10 movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] _080380B0: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080380C8 adds r0, r5, #0 adds r0, #0x10 strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_08038168 _080380C8: ldrb r0, [r4, #0xd] cmp r0, #0 bne _080380E2 movs r1, #0x36 ldrsh r0, [r4, r1] cmp r6, r0 bge _080380E2 adds r0, r4, #0 movs r1, #4 bl sub_08004260 movs r0, #1 strb r0, [r4, #0xd] _080380E2: movs r0, #0xc rsbs r0, r0, #0 cmp r6, r0 bge _080380F6 ldrb r2, [r4, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 movs r2, #0x40 b _08038100 _080380F6: ldrb r2, [r4, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 movs r2, #0x80 _08038100: orrs r0, r2 strb r0, [r4, #0x19] ldrb r0, [r4, #0x1b] ands r1, r0 orrs r1, r2 strb r1, [r4, #0x1b] _0803810C: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08038110 sub_08038110: @ 0x08038110 push {r4, lr} adds r4, r0, #0 movs r1, #2 bl sub_08004276 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08038164 adds r2, r4, #0 adds r2, #0x80 ldrb r0, [r2] cmp r0, #4 bhi _08038150 movs r0, #2 strb r0, [r4, #0xc] movs r0, #8 strb r0, [r4, #0xe] movs r0, #0xe0 lsls r0, r0, #0xa str r0, [r4, #0x20] adds r0, r4, #0 bl sub_08038168 adds r0, r4, #0 movs r1, #2 bl sub_08004260 b _08038164 _08038150: movs r0, #0 movs r1, #1 strb r1, [r4, #0xc] strb r0, [r2] movs r0, #0xc0 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0 bl sub_08004260 _08038164: pop {r4, pc} .align 2, 0 thumb_func_start sub_08038168 sub_08038168: @ 0x08038168 push {r4, lr} adds r4, r0, #0 bl sub_08049FA0 cmp r0, #0 bne _0803817E adds r0, r4, #0 bl sub_08049EE4 strb r0, [r4, #0x15] b _080381AA _0803817E: adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _08038196 adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] b _080381AA _08038196: bl sub_08000E50 movs r1, #0xf ands r1, r0 adds r1, #0x18 ldrb r0, [r4, #0x15] adds r1, r1, r0 movs r0, #0x1f ands r1, r0 strb r1, [r4, #0x15] _080381AA: pop {r4, pc} thumb_func_start sub_080381AC sub_080381AC: @ 0x080381AC push {r4, r5, lr} adds r5, r0, #0 bl sub_080012DC adds r1, r0, #0 cmp r1, #0 beq _080381D0 ldr r0, _080381CC @ =gUnk_080012C8 lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r5, #0 bl _call_via_r1 b _080381F2 .align 2, 0 _080381CC: .4byte gUnk_080012C8 _080381D0: ldr r4, _080381F4 @ =gUnk_080CF4C8 adds r0, r5, #0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 movs r3, #0x10 rsbs r3, r3, #0 adds r0, r5, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC _080381F2: pop {r4, r5, pc} .align 2, 0 _080381F4: .4byte gUnk_080CF4C8 thumb_func_start sub_080381F8 sub_080381F8: @ 0x080381F8 push {lr} ldr r2, _0803820C @ =gUnk_080CF4E0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0803820C: .4byte gUnk_080CF4E0 thumb_func_start sub_08038210 sub_08038210: @ 0x08038210 push {r4, lr} adds r4, r0, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _08038224 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _08038224: ldr r1, _08038230 @ =gUnk_080CF4C8 adds r0, r4, #0 bl sub_0804AA30 pop {r4, pc} .align 2, 0 _08038230: .4byte gUnk_080CF4C8 thumb_func_start sub_08038234 sub_08038234: @ 0x08038234 push {r4, lr} adds r4, r0, #0 adds r0, #0x3a ldrb r1, [r0] movs r0, #2 ands r0, r1 cmp r0, #0 bne _0803824A ldrb r0, [r4, #0xb] bl sub_0807CD04 _0803824A: adds r0, r4, #0 movs r1, #0xff movs r2, #0x58 bl sub_0804A7E0 pop {r4, pc} .align 2, 0 thumb_func_start sub_08038258 sub_08038258: @ 0x08038258 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xb] bl sub_0807CC30 cmp r0, #0 beq _0803826A bl sub_0805E780 _0803826A: adds r0, r4, #0 bl sub_0804A720 movs r0, #0xff strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_080383AC pop {r4, pc} thumb_func_start sub_0803827C sub_0803827C: @ 0x0803827C push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] cmp r0, #0 beq _0803828C subs r0, #1 strb r0, [r4, #0xf] b _080382BC _0803828C: ldr r5, _080382B8 @ =gUnk_03001160 adds r0, r4, #0 adds r1, r5, #0 movs r2, #8 bl sub_0804A044 cmp r0, #0xff bne _080382B0 movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #0 movs r3, #0x24 bl sub_0806FCB8 cmp r0, #0 beq _080382BC _080382B0: adds r0, r4, #0 bl sub_080383E4 b _080382E8 .align 2, 0 _080382B8: .4byte gUnk_03001160 _080382BC: adds r0, r4, #0 movs r1, #2 bl sub_08004276 adds r0, r4, #0 bl sub_080AEF88 cmp r0, #0 bne _080382D6 adds r0, r4, #0 bl sub_080383AC b _080382E8 _080382D6: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080382E8 adds r0, r4, #0 bl sub_080383AC _080382E8: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080382EC sub_080382EC: @ 0x080382EC 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 _08038300 movs r0, #3 strb r0, [r1, #0xc] _08038300: pop {pc} .align 2, 0 thumb_func_start sub_08038304 sub_08038304: @ 0x08038304 push {r4, r5, r6, lr} adds r4, r0, #0 movs r1, #2 bl sub_08004276 adds r0, r4, #0 bl sub_080AEF88 cmp r0, #0 bne _08038334 adds r0, r4, #0 adds r0, #0x78 ldrb r0, [r0] ldrb r1, [r4, #0x15] cmp r0, r1 bne _08038330 movs r0, #0x5a strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_080383AC b _080383AA _08038330: strb r0, [r4, #0x15] b _080383AA _08038334: ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #0xa bl __modsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 bne _080383AA strb r0, [r4, #0xe] adds r0, r4, #0 adds r0, #0x78 ldrb r0, [r0] ldrb r3, [r4, #0x15] cmp r0, r3 bne _08038398 bl sub_08000E50 movs r1, #2 ands r1, r0 subs r1, #1 lsls r1, r1, #0x1b lsrs r1, r1, #0x18 adds r0, r4, #0 adds r0, #0x79 lsls r5, r1, #0x18 lsrs r3, r5, #0x18 adds r2, r0, #0 movs r6, #0x7a adds r6, r6, r4 mov ip, r6 ldrb r0, [r2] cmp r3, r0 bne _08038388 ldrb r6, [r6] cmp r3, r6 bne _08038388 rsbs r0, r5, #0 lsrs r1, r0, #0x18 _08038388: ldrb r0, [r2] mov r3, ip strb r0, [r3] strb r1, [r2] ldrb r0, [r4, #0x15] adds r0, r0, r1 movs r1, #0x18 ands r0, r1 _08038398: strb r0, [r4, #0x15] ldrb r0, [r4, #0x15] lsrs r0, r0, #3 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_08004260 _080383AA: pop {r4, r5, r6, pc} thumb_func_start sub_080383AC sub_080383AC: @ 0x080383AC push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] movs r0, #8 strb r0, [r4, #0xe] adds r0, #0xf8 strh r0, [r4, #0x24] ldr r1, _080383E0 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 adds r0, #4 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] lsrs r1, r0, #3 ldrb r0, [r4, #0x14] cmp r1, r0 beq _080383DC strb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 _080383DC: pop {r4, pc} .align 2, 0 _080383E0: .4byte gUnk_03001160 thumb_func_start sub_080383E4 sub_080383E4: @ 0x080383E4 push {r4, lr} adds r4, r0, #0 movs r0, #2 strb r0, [r4, #0xc] movs r0, #8 strb r0, [r4, #0xe] movs r0, #0xa0 lsls r0, r0, #2 strh r0, [r4, #0x24] ldr r1, _0803842C @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 adds r0, #4 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] adds r1, r4, #0 adds r1, #0x78 strb r0, [r1] ldrb r0, [r4, #0x15] lsrs r0, r0, #3 strb r0, [r4, #0x14] adds r1, #1 movs r0, #0xff strb r0, [r1] adds r1, #1 movs r0, #1 rsbs r0, r0, #0 strb r0, [r1] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_08004260 pop {r4, pc} .align 2, 0 _0803842C: .4byte gUnk_03001160 thumb_func_start sub_08038430 sub_08038430: @ 0x08038430 push {r4, lr} adds r4, r0, #0 ldr r1, _0803844C @ =gUnk_080CF4F0 bl sub_0800129E movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, pc} .align 2, 0 _0803844C: .4byte gUnk_080CF4F0 thumb_func_start sub_08038450 sub_08038450: @ 0x08038450 push {lr} ldr r2, _08038464 @ =gUnk_080CF508 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08038464: .4byte gUnk_080CF508 thumb_func_start sub_08038468 sub_08038468: @ 0x08038468 push {r4, lr} adds r4, r0, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _0803847C adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _0803847C: ldr r1, _080384B0 @ =gUnk_080CF4F0 adds r0, r4, #0 bl sub_0804AA30 adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080384D8 adds r0, r4, #0 adds r0, #0x3f ldrb r0, [r0] cmp r0, #0x5a bne _080384CA movs r0, #0x3f ands r0, r1 cmp r0, #0x14 beq _080384BA cmp r0, #0x14 bgt _080384B4 cmp r0, #0xe beq _080384C0 b _080384D8 .align 2, 0 _080384B0: .4byte gUnk_080CF4F0 _080384B4: cmp r0, #0x15 beq _080384C0 b _080384D8 _080384BA: movs r0, #5 strb r0, [r4, #0xc] b _080384D8 _080384C0: adds r1, r4, #0 adds r1, #0x45 movs r0, #0 strb r0, [r1] b _080384D8 _080384CA: movs r0, #0x3f ands r0, r1 cmp r0, #0x1d bne _080384D8 adds r0, r4, #0 bl sub_08038754 _080384D8: pop {r4, pc} .align 2, 0 thumb_func_start nullsub_163 nullsub_163: @ 0x080384DC bx lr .align 2, 0 thumb_func_start sub_080384E0 sub_080384E0: @ 0x080384E0 push {r4, r5, r6, lr} adds r6, r0, #0 bl sub_0804A720 movs r4, #0 movs r5, #1 movs r0, #1 strb r0, [r6, #0xc] bl sub_08000E50 movs r1, #0x1c ands r0, r1 strb r0, [r6, #0x15] lsrs r0, r0, #2 strb r0, [r6, #0x14] ldrb r1, [r6, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r6, #0x10] strb r4, [r6, #0xe] movs r0, #0x20 strb r0, [r6, #0xf] adds r0, r6, #0 adds r0, #0x82 strb r4, [r0] bl sub_08000E50 ands r0, r5 adds r1, r6, #0 adds r1, #0x80 strb r0, [r1] adds r0, r6, #0 adds r0, #0x81 strb r4, [r0] subs r1, #0x41 movs r0, #0x72 strb r0, [r1] ldrb r1, [r6, #0x14] adds r0, r6, #0 bl sub_08004260 pop {r4, r5, r6, pc} thumb_func_start sub_08038534 sub_08038534: @ 0x08038534 push {r4, lr} adds r4, r0, #0 bl sub_080387F0 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 bne _08038594 strb r0, [r4, #0xe] movs r0, #0x20 strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 beq _08038578 ldrb r1, [r4, #0x14] adds r0, r4, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 beq _0803856A adds r1, #7 b _0803856C _0803856A: adds r1, #1 _0803856C: movs r0, #7 ands r0, r1 strb r0, [r4, #0x14] lsls r0, r0, #2 strb r0, [r4, #0x15] b _0803858A _08038578: adds r0, r4, #0 bl sub_08049EE4 adds r0, #2 movs r1, #0x1c ands r0, r1 strb r0, [r4, #0x15] lsrs r0, r0, #2 strb r0, [r4, #0x14] _0803858A: ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 b _080385C8 _08038594: ldrb r0, [r4, #0xe] cmp r0, #0 bne _080385C8 adds r0, r4, #0 movs r1, #0x80 bl sub_0803872C cmp r0, #0 beq _080385C8 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x10 strb r0, [r4, #0xf] movs r0, #0x40 strh r0, [r4, #0x24] ldr r1, [r4, #0x54] adds r0, r4, #0 bl sub_0806FCAC strb r0, [r4, #0x14] lsls r0, r0, #2 strb r0, [r4, #0x15] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 _080385C8: pop {r4, pc} .align 2, 0 thumb_func_start sub_080385CC sub_080385CC: @ 0x080385CC push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_080387F0 adds r0, r4, #0 movs r1, #0x60 bl sub_0803872C cmp r0, #0 beq _08038604 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0xc strb r0, [r4, #0xf] movs r0, #0x80 strh r0, [r4, #0x24] ldr r1, [r4, #0x54] adds r0, r4, #0 bl sub_0806FCAC strb r0, [r4, #0x14] lsls r0, r0, #2 strb r0, [r4, #0x15] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 b _08038648 _08038604: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08038648 movs r6, #0x10 strb r6, [r4, #0xf] ldr r1, [r4, #0x54] cmp r1, #0 beq _08038622 adds r0, r4, #0 bl sub_0806FCAC b _08038638 _08038622: ldrb r5, [r4, #0x14] bl sub_08000E50 ands r0, r6 cmp r0, #0 beq _08038632 adds r1, r5, #2 b _08038634 _08038632: adds r1, r5, #6 _08038634: movs r0, #7 ands r0, r1 _08038638: strb r0, [r4, #0x14] ldrb r0, [r4, #0x14] lsls r0, r0, #2 strb r0, [r4, #0x15] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 _08038648: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0803864C sub_0803864C: @ 0x0803864C push {r4, lr} adds r4, r0, #0 bl sub_080387F0 adds r0, r4, #0 movs r1, #0x14 bl sub_0803872C cmp r0, #0 beq _08038668 adds r0, r4, #0 bl sub_08038754 b _080386B4 _08038668: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _080386B4 movs r0, #0xa strb r0, [r4, #0xf] adds r2, r4, #0 adds r2, #0x81 ldrb r0, [r2] cmp r0, #0 bne _08038698 ldrh r0, [r4, #0x24] adds r0, #0x40 strh r0, [r4, #0x24] lsls r0, r0, #0x10 movs r1, #0x80 lsls r1, r1, #0x12 cmp r0, r1 ble _080386B4 movs r0, #1 strb r0, [r2] b _080386B4 _08038698: ldrh r2, [r4, #0x24] movs r0, #0x24 ldrsh r1, [r4, r0] movs r0, #0x80 lsls r0, r0, #1 cmp r1, r0 ble _080386AE adds r0, r2, #0 subs r0, #0x50 strh r0, [r4, #0x24] b _080386B4 _080386AE: adds r0, r4, #0 bl sub_08038754 _080386B4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080386B8 sub_080386B8: @ 0x080386B8 push {r4, lr} adds r4, r0, #0 bl sub_080387F0 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_080044EC adds r1, r0, #0 cmp r1, #1 bne _08038720 strb r1, [r4, #0xc] adds r2, r4, #0 adds r2, #0x3f movs r0, #0x72 strb r0, [r2] strb r1, [r4, #0xe] movs r0, #0x80 strb r0, [r4, #0xf] strh r0, [r4, #0x24] subs r2, #0x16 ldrb r1, [r2] subs r0, #0xb9 ands r0, r1 movs r1, #0x10 orrs r0, r1 strb r0, [r2] movs r0, #0x92 lsls r0, r0, #1 bl sub_08004488 adds r0, r4, #0 movs r1, #0x70 bl sub_0801D2B4 ldrb r1, [r4, #0x15] lsrs r1, r1, #2 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _08038720 adds r0, r4, #0 bl sub_0806FAB0 _08038720: pop {r4, pc} .align 2, 0 thumb_func_start sub_08038724 sub_08038724: @ 0x08038724 push {lr} bl sub_08038754 pop {pc} thumb_func_start sub_0803872C sub_0803872C: @ 0x0803872C push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 movs r0, #1 bl sub_08049DF4 adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 beq _08038750 adds r0, r4, #0 adds r2, r5, #0 bl sub_0806FC80 cmp r0, #0 beq _08038750 movs r0, #1 b _08038752 _08038750: movs r0, #0 _08038752: pop {r4, r5, pc} thumb_func_start sub_08038754 sub_08038754: @ 0x08038754 push {r4, lr} adds r4, r0, #0 movs r0, #4 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x5a strb r0, [r1] movs r1, #0 movs r0, #0xc0 strh r0, [r4, #0x24] movs r0, #0x80 lsls r0, r0, #0xa str r0, [r4, #0x20] adds r0, r4, #0 adds r0, #0x81 strb r1, [r0] 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] ldr r0, _080387C0 @ =0x0000012B bl sub_08004488 adds r0, r4, #0 movs r1, #0x71 bl sub_0801D2B4 ldrb r2, [r4, #0x15] movs r0, #0xf ands r0, r2 cmp r0, #0 beq _080387C4 movs r1, #0x10 ands r1, r2 lsls r1, r1, #0x18 lsrs r1, r1, #0x1b lsls r1, r1, #0x18 lsrs r1, r1, #0x18 adds r1, #9 adds r0, r4, #0 bl sub_08004260 b _080387D8 .align 2, 0 _080387C0: .4byte 0x0000012B _080387C4: movs r1, #0x10 ands r1, r2 lsls r1, r1, #0x18 lsrs r1, r1, #0x1b lsls r1, r1, #0x18 lsrs r1, r1, #0x18 adds r1, #8 adds r0, r4, #0 bl sub_08004260 _080387D8: adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _080387EE adds r0, r4, #0 bl sub_0806FAB0 _080387EE: pop {r4, pc} thumb_func_start sub_080387F0 sub_080387F0: @ 0x080387F0 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #4 beq _08038890 adds r5, r4, #0 adds r5, #0x82 ldrb r0, [r5] cmp r0, #0 bne _08038890 movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _08038868 @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r3, #0x3f ands r0, r3 movs r6, #0x32 ldrsh r1, [r4, r6] 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_080002E0 cmp r0, #0xf beq _08038836 cmp r0, #0x2a bne _0803883A _08038836: movs r0, #0x20 strb r0, [r5] _0803883A: ldrb r0, [r4, #0x15] lsrs r0, r0, #1 ldr r1, _0803886C @ =gUnk_080CF520 adds r0, r0, r1 ldrb r5, [r4, #0x15] movs r1, #0 ldrsb r1, [r0, r1] movs r2, #1 ldrsb r2, [r0, r2] adds r0, r4, #0 bl sub_080002CC cmp r0, #0xf beq _0803885A cmp r0, #0x2a bne _08038870 _0803885A: ldrb r0, [r4, #0x15] adds r0, #0x10 movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] b _0803887E .align 2, 0 _08038868: .4byte gUnk_03000BF0 _0803886C: .4byte gUnk_080CF520 _08038870: ldrh r0, [r4, #0x2a] cmp r0, #0 beq _0803887E adds r1, r0, #0 adds r0, r4, #0 bl sub_0800417E _0803887E: ldrb r0, [r4, #0x15] cmp r5, r0 beq _08038890 lsrs r0, r0, #2 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 _08038890: adds r0, r4, #0 bl sub_08004274 adds r1, r4, #0 adds r1, #0x82 ldrb r0, [r1] cmp r0, #0 bne _080388A8 adds r0, r4, #0 bl sub_080AEF88 b _080388B2 _080388A8: subs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_0806F69C _080388B2: pop {r4, r5, r6, pc} thumb_func_start sub_080388B4 sub_080388B4: @ 0x080388B4 push {r4, lr} adds r4, r0, #0 ldr r1, _080388D0 @ =gUnk_080CF600 bl sub_0800129E movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, pc} .align 2, 0 _080388D0: .4byte gUnk_080CF600 thumb_func_start sub_080388D4 sub_080388D4: @ 0x080388D4 push {lr} ldr r2, _080388E8 @ =gUnk_080CF618 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080388E8: .4byte gUnk_080CF618 thumb_func_start sub_080388EC sub_080388EC: @ 0x080388EC push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r4, #0 adds r6, #0x43 ldrb r0, [r6] cmp r0, #0 beq _08038902 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _08038902: ldr r1, _08038948 @ =gUnk_080CF600 adds r0, r4, #0 bl sub_0804AA30 adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803897E ldrb r0, [r4, #0xc] cmp r0, #4 beq _0803897E ldr r5, [r4, #0x54] adds r0, r4, #0 adds r0, #0x3d ldrb r0, [r0] adds r1, r5, #0 adds r1, #0x3d strb r0, [r1] adds r2, r4, #0 adds r2, #0x3e ldrb r1, [r2] adds r0, r5, #0 adds r0, #0x3e strb r1, [r0] ldrb r0, [r6] cmp r0, #0 beq _0803894C ldrb r1, [r5, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r5, #0x10] b _0803897E .align 2, 0 _08038948: .4byte gUnk_080CF600 _0803894C: ldrb r0, [r4, #0xc] cmp r0, #1 bne _0803897E adds r0, r1, #0 adds r0, #0x12 movs r1, #0x1c ands r0, r1 strb r0, [r5, #0x15] lsrs r0, r0, #2 strb r0, [r5, #0x14] ldrb r0, [r2] adds r0, #0x14 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] lsrs r0, r0, #2 strb r0, [r4, #0x14] adds r0, r4, #0 movs r1, #0 bl sub_08038C84 adds r0, r5, #0 movs r1, #1 bl sub_08038C84 _0803897E: pop {r4, r5, r6, pc} thumb_func_start nullsub_164 nullsub_164: @ 0x08038980 bx lr .align 2, 0 thumb_func_start sub_08038984 sub_08038984: @ 0x08038984 push {r4, r5, r6, lr} adds r5, r0, #0 movs r0, #0x13 bl sub_080A7EE0 adds r6, r0, #0 cmp r6, #0 beq _080389E6 adds r0, r5, #0 bl sub_0804A720 movs r4, #0 movs r2, #1 movs r0, #1 strb r0, [r5, #0xc] ldrb r1, [r5, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r5, #0x18] ldrb r1, [r5, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r5, #0x10] str r6, [r5, #0x54] bl sub_08000E50 movs r1, #6 ands r0, r1 strb r0, [r5, #0x14] adds r0, r5, #0 adds r0, #0x80 movs r1, #0 strh r4, [r0] subs r0, #6 strb r1, [r0] str r5, [r6, #0x50] strb r1, [r6, #0xa] movs r0, #0xff strb r0, [r6, #0x14] adds r0, r5, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r6, #0 adds r0, #0x38 strb r1, [r0] adds r0, r5, #0 bl sub_08038BA8 _080389E6: pop {r4, r5, r6, pc} thumb_func_start sub_080389E8 sub_080389E8: @ 0x080389E8 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r6, [r4, #0x54] adds r1, r4, #0 adds r1, #0x80 ldrh r0, [r1] cmp r0, #0 beq _08038A08 subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08038A68 movs r0, #0x80 strh r0, [r4, #0x24] b _08038A68 _08038A08: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08038A22 adds r0, r4, #0 bl sub_08038BA8 adds r0, r6, #0 bl sub_08038C2C b _08038A68 _08038A22: ldrb r0, [r4, #0xe] cmp r0, #0 beq _08038A2E subs r0, #1 strb r0, [r4, #0xe] b _08038A68 _08038A2E: ldrh r0, [r4, #0x2a] cmp r0, #0 beq _08038A68 movs r0, #0xc strb r0, [r4, #0xe] ldrb r1, [r6, #0x14] movs r0, #1 ands r0, r1 cmp r0, #0 bne _08038A5C ldrb r5, [r6, #0x14] bl sub_08000E50 movs r1, #0x20 ands r1, r0 cmp r1, #0 beq _08038A54 adds r1, r5, #1 b _08038A56 _08038A54: adds r1, r5, #7 _08038A56: movs r0, #7 ands r0, r1 strb r0, [r6, #0x14] _08038A5C: adds r0, r4, #0 bl sub_08038BA8 adds r0, r6, #0 bl sub_08038C2C _08038A68: adds r0, r4, #0 bl sub_08038B90 pop {r4, r5, r6, pc} thumb_func_start sub_08038A70 sub_08038A70: @ 0x08038A70 push {r4, r5, r6, r7, lr} adds r5, r0, #0 ldr r6, [r5, #0x54] adds r1, r5, #0 adds r1, #0x80 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r7, r0, #0x10 cmp r7, #0 bne _08038AC0 movs r1, #3 strb r1, [r5, #0xc] adds r2, r5, #0 adds r2, #0x82 movs r0, #4 strb r0, [r2] movs r0, #0x80 strh r0, [r5, #0x24] movs r4, #0x20 strb r4, [r5, #0xf] strb r1, [r6, #0xc] adds r1, r6, #0 adds r1, #0x82 movs r0, #2 strb r0, [r1] movs r0, #0xff strb r0, [r6, #0x14] adds r0, r5, #0 movs r1, #0 bl sub_08038C84 adds r0, r6, #0 bl sub_08038C2C strb r4, [r6, #0xf] str r7, [r6, #0x50] str r5, [r6, #0x54] b _08038AFE _08038AC0: ldrb r0, [r5, #0xf] subs r0, #1 strb r0, [r5, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08038AFE movs r0, #0x10 strb r0, [r5, #0xf] adds r0, r5, #0 movs r1, #0 bl sub_08049F84 strb r0, [r5, #0x15] ldrb r0, [r5, #0x15] adds r0, #4 movs r1, #0x1c ands r0, r1 lsrs r1, r0, #2 strb r1, [r6, #0x14] movs r1, #0x18 ands r0, r1 lsrs r0, r0, #2 strb r0, [r5, #0x14] adds r0, r5, #0 movs r1, #0 bl sub_08038C84 adds r0, r6, #0 movs r1, #1 bl sub_08038C84 _08038AFE: adds r0, r5, #0 bl sub_08038B90 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08038B08 sub_08038B08: @ 0x08038B08 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] cmp r0, #0 beq _08038B18 subs r0, #1 strb r0, [r4, #0xf] b _08038B5E _08038B18: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r2, #0x80 adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _08038B5E movs r0, #4 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x82 movs r0, #3 strb r0, [r1] movs r0, #0x32 strb r0, [r4, #0xe] movs r0, #2 strb r0, [r4, #0xf] ldrb r0, [r4, #0x14] lsls r0, r0, #2 adds r0, #0x10 movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] strh r2, [r4, #0x24] adds r0, r4, #0 movs r1, #0 bl sub_08038C84 ldr r0, _08038B60 @ =0x0000015B bl sub_08004488 _08038B5E: pop {r4, pc} .align 2, 0 _08038B60: .4byte 0x0000015B thumb_func_start sub_08038B64 sub_08038B64: @ 0x08038B64 push {r4, lr} adds r4, r0, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_080042B8 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08038B8C movs r0, #2 strb r0, [r4, #0xf] ldrb r0, [r4, #0x15] adds r0, #0x1f movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] _08038B8C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08038B90 sub_08038B90: @ 0x08038B90 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_0800445C pop {r4, pc} .align 2, 0 thumb_func_start sub_08038BA8 sub_08038BA8: @ 0x08038BA8 push {r4, r5, lr} adds r4, r0, #0 bl sub_08000E50 ldr r1, _08038BEC @ =gUnk_080CF62C movs r5, #7 ands r0, r5 adds r0, r0, r1 ldrb r0, [r0] movs r1, #0 strb r0, [r4, #0xf] adds r0, r4, #0 adds r0, #0x82 movs r3, #1 strb r3, [r0] ldr r0, [r4, #0x54] adds r0, #0x82 strb r1, [r0] adds r1, r4, #0 adds r1, #0x7a ldrb r0, [r1] cmp r0, #0 bne _08038BF0 adds r0, #1 strb r0, [r1] ldrb r0, [r4, #0x14] lsls r0, r0, #2 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #0 bl sub_08038C84 b _08038C2A .align 2, 0 _08038BEC: .4byte gUnk_080CF62C _08038BF0: ldr r2, [r4, #0x54] ldrb r1, [r2, #0x14] adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _08038C14 ldrb r2, [r2, #0x14] ldrb r1, [r4, #0x14] adds r0, r1, #1 ands r0, r5 movs r3, #6 cmp r2, r0 bne _08038C0C movs r3, #2 _08038C0C: adds r3, r3, r1 movs r0, #6 ands r3, r0 b _08038C18 _08038C14: ldrb r3, [r2, #0x14] ldrb r1, [r4, #0x14] _08038C18: cmp r3, r1 beq _08038C2A strb r3, [r4, #0x14] lsls r0, r3, #2 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #0 bl sub_08038C84 _08038C2A: pop {r4, r5, pc} thumb_func_start sub_08038C2C sub_08038C2C: @ 0x08038C2C push {r4, r5, r6, lr} adds r5, r0, #0 bl sub_08000E50 ldr r1, _08038C58 @ =gUnk_080CF634 movs r6, #7 ands r0, r6 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r5, #0xf] ldr r0, [r5, #0x50] ldrb r4, [r0, #0x14] ldrb r0, [r5, #0x14] cmp r0, #0xff bne _08038C5C strb r4, [r5, #0x14] adds r0, r5, #0 movs r1, #1 bl sub_08038C84 b _08038C7C .align 2, 0 _08038C58: .4byte gUnk_080CF634 _08038C5C: bl sub_08000E50 ldr r1, _08038C80 @ =gUnk_080CF63C ands r0, r6 adds r0, r0, r1 ldrb r0, [r0] adds r4, r0, r4 ands r4, r6 ldrb r0, [r5, #0x14] cmp r4, r0 beq _08038C7C strb r4, [r5, #0x14] adds r0, r5, #0 movs r1, #1 bl sub_08038C84 _08038C7C: pop {r4, r5, r6, pc} .align 2, 0 _08038C80: .4byte gUnk_080CF63C thumb_func_start sub_08038C84 sub_08038C84: @ 0x08038C84 push {lr} adds r3, r0, #0 ldrb r2, [r3, #0x14] adds r0, #0x82 ldrb r0, [r0] lsls r0, r0, #3 orrs r2, r0 cmp r1, #0 bne _08038C98 lsrs r2, r2, #1 _08038C98: adds r0, r3, #0 adds r1, r2, #0 bl sub_080042AC pop {pc} .align 2, 0 thumb_func_start sub_08038CA4 sub_08038CA4: @ 0x08038CA4 push {r4, r5, lr} adds r5, r0, #0 bl sub_080012DC adds r1, r0, #0 cmp r1, #0 beq _08038CC8 ldr r0, _08038CC4 @ =gUnk_080012C8 lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r5, #0 bl _call_via_r1 b _08038CF0 .align 2, 0 _08038CC4: .4byte gUnk_080012C8 _08038CC8: ldr r4, _08038CF4 @ =gUnk_080CF778 adds r0, r5, #0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 movs r3, #0x10 rsbs r3, r3, #0 adds r0, r5, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC adds r0, r5, #0 bl sub_080391B4 _08038CF0: pop {r4, r5, pc} .align 2, 0 _08038CF4: .4byte gUnk_080CF778 thumb_func_start sub_08038CF8 sub_08038CF8: @ 0x08038CF8 push {lr} ldr r2, _08038D0C @ =gUnk_080CF790 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08038D0C: .4byte gUnk_080CF790 thumb_func_start sub_08038D10 sub_08038D10: @ 0x08038D10 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #2 beq _08038D52 adds r5, r4, #0 adds r5, #0x7a ldrb r0, [r5] cmp r0, #0 bne _08038D3E movs r0, #1 bl sub_0807CC3C cmp r0, #0 bne _08038D3E adds r0, r4, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0xbf bhi _08038D46 movs r0, #1 strb r0, [r5] b _08038D46 _08038D3E: adds r1, r4, #0 adds r1, #0x45 movs r0, #0xff strb r0, [r1] _08038D46: adds r0, r4, #0 bl sub_08039218 adds r0, r4, #0 bl sub_08039260 _08038D52: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _08038D64 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _08038D64: ldr r1, _08038D70 @ =gUnk_080CF778 adds r0, r4, #0 bl sub_0804AA30 pop {r4, r5, pc} .align 2, 0 _08038D70: .4byte gUnk_080CF778 thumb_func_start nullsub_165 nullsub_165: @ 0x08038D74 bx lr .align 2, 0 thumb_func_start sub_08038D78 sub_08038D78: @ 0x08038D78 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 ldrb r0, [r4, #0xa] cmp r0, #2 beq _08038D96 movs r0, #0 strb r0, [r4, #0xb] movs r0, #0x30 strb r0, [r4, #0x16] adds r0, r4, #0 bl sub_08039120 b _08038D9C _08038D96: adds r0, r4, #0 bl sub_08039140 _08038D9C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08038DA0 sub_08038DA0: @ 0x08038DA0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08038DB6 adds r0, r4, #0 bl sub_0803901C _08038DB6: adds r0, r4, #0 bl sub_08039298 pop {r4, pc} .align 2, 0 thumb_func_start sub_08038DC0 sub_08038DC0: @ 0x08038DC0 push {lr} ldr r2, _08038DD4 @ =gUnk_080CF7AC ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08038DD4: .4byte gUnk_080CF7AC thumb_func_start sub_08038DD8 sub_08038DD8: @ 0x08038DD8 push {lr} movs r1, #1 strb r1, [r0, #0xd] movs r1, #0x10 strb r1, [r0, #0xe] ldr r2, _08038E10 @ =gUnk_080CF7BC ldrb r1, [r0, #0xa] adds r1, r1, r2 ldrb r1, [r1] strb r1, [r0, #0xf] ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] adds r3, r0, #0 adds r3, #0x29 ldrb r2, [r3] movs r1, #0x39 rsbs r1, r1, #0 ands r1, r2 strb r1, [r3] movs r1, #4 bl sub_08004260 ldr r0, _08038E14 @ =0x000001D9 bl sub_08004488 pop {pc} .align 2, 0 _08038E10: .4byte gUnk_080CF7BC _08038E14: .4byte 0x000001D9 thumb_func_start sub_08038E18 sub_08038E18: @ 0x08038E18 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] cmp r0, #0 beq _08038E70 subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08038E70 bl sub_08079184 adds r0, r4, #0 bl sub_08039218 ldrb r0, [r4, #0x10] movs r1, #0x80 orrs 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 movs r1, #8 orrs r0, r1 movs r1, #8 rsbs r1, r1, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2] bl sub_08000E50 movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_08016A04 _08038E70: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08038EA2 movs r0, #0x10 strb r0, [r4, #0xe] bl sub_08000E50 ldrb r3, [r4, #0x18] lsls r2, r3, #0x19 lsrs r2, r2, #0x1f movs r1, #1 ands r1, r0 eors r2, r1 lsls r2, r2, #6 movs r0, #0x41 rsbs r0, r0, #0 ands r0, r3 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_08039260 _08038EA2: adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 thumb_func_start sub_08038EAC sub_08038EAC: @ 0x08038EAC 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 movs r1, #8 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 bl sub_080390F8 adds r0, r4, #0 bl sub_08004274 pop {r4, pc} thumb_func_start sub_08038ED0 sub_08038ED0: @ 0x08038ED0 push {lr} ldrb r2, [r0, #0x10] movs r1, #0x80 orrs r1, r2 strb r1, [r0, #0x10] bl sub_08039218 pop {pc} thumb_func_start sub_08038EE0 sub_08038EE0: @ 0x08038EE0 push {r4, lr} adds r4, r0, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_08039298 movs r1, #0xe0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08038F1C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08038F16 adds r0, r4, #0 bl sub_0803901C b _08038F1C _08038F16: movs r0, #0x80 lsls r0, r0, #8 str r0, [r4, #0x20] _08038F1C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08038F20 sub_08038F20: @ 0x08038F20 push {r4, lr} adds r4, r0, #0 bl sub_08039298 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08038F42 adds r0, r4, #0 bl sub_0803901C _08038F42: pop {r4, pc} thumb_func_start sub_08038F44 sub_08038F44: @ 0x08038F44 push {r4, lr} adds r4, r0, #0 ldr r0, _08038F8C @ =gUnk_03001160 adds r1, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_080390F8 adds r0, r4, #0 bl sub_080AEF88 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_080044EC adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_08039298 adds r1, r4, #0 adds r1, #0x78 ldrh r0, [r1] subs r2, r0, #1 strh r2, [r1] lsls r0, r2, #0x10 cmp r0, #0 bne _08038F90 adds r0, r4, #0 bl sub_08039120 b _08038F9E .align 2, 0 _08038F8C: .4byte gUnk_03001160 _08038F90: movs r0, #0x1f ands r2, r0 cmp r2, #0 bne _08038F9E adds r0, r4, #0 bl sub_08039260 _08038F9E: pop {r4, pc} thumb_func_start sub_08038FA0 sub_08038FA0: @ 0x08038FA0 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xe] adds r0, r1, #1 strb r0, [r4, #0xe] movs r0, #0x1f ands r0, r1 cmp r0, #0 bne _08038FB8 adds r0, r4, #0 bl sub_08039260 _08038FB8: adds r2, r4, #0 adds r2, #0x78 ldrh r1, [r2] cmp r1, #0 beq _08038FFC ldr r3, _08038FF4 @ =0x0000FFFF adds r0, r1, r3 strh r0, [r2] movs r0, #7 ands r0, r1 cmp r0, #0 bne _08038FE0 ldr r1, _08038FF8 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 _08038FE0: adds r0, r4, #0 bl sub_080390F8 adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_08004274 b _08039018 .align 2, 0 _08038FF4: .4byte 0x0000FFFF _08038FF8: .4byte gUnk_03001160 _08038FFC: adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0803917C cmp r0, #0 beq _08039018 adds r0, r4, #0 bl sub_0805E7BC _08039018: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803901C sub_0803901C: @ 0x0803901C push {r4, r5, lr} adds r4, r0, #0 bl sub_08000E50 adds r3, r0, #0 movs r5, #3 ands r5, r3 cmp r3, #3 bne _08039042 ldrb r0, [r4, #0xc] cmp r0, #3 beq _0803903C cmp r0, #4 beq _08039040 movs r5, #0 b _08039042 _0803903C: movs r5, #1 b _08039042 _08039040: movs r5, #2 _08039042: cmp r5, #1 beq _0803906C cmp r5, #2 beq _080390AA movs r0, #1 strb r0, [r4, #0xc] ldr r2, _08039068 @ =gUnk_080CF7BE lsrs r0, r3, #0x10 movs r1, #3 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0 bl sub_08004260 b _080390BC .align 2, 0 _08039068: .4byte gUnk_080CF7BE _0803906C: movs r1, #3 movs r0, #3 strb r0, [r4, #0xc] lsrs r0, r3, #8 ands r0, r1 adds r0, #2 strb r0, [r4, #0xe] movs r0, #0x80 lsls r0, r0, #8 str r0, [r4, #0x20] adds r0, r4, #0 bl sub_080390C0 adds r0, r4, #0 movs r1, #1 bl sub_08004260 bl sub_08000E50 ands r0, r5 cmp r0, #0 beq _080390BC bl sub_08000E50 ands r5, r0 movs r1, #0xeb lsls r1, r1, #1 adds r0, r5, r1 bl sub_08004488 b _080390BC _080390AA: movs r0, #4 strb r0, [r4, #0xc] lsrs r1, r3, #0x10 movs r0, #1 ands r1, r0 adds r1, #2 adds r0, r4, #0 bl sub_08004260 _080390BC: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080390C0 sub_080390C0: @ 0x080390C0 push {r4, r5, lr} adds r4, r0, #0 bl sub_08000E50 adds r5, r0, #0 adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 beq _080390E0 movs r0, #1 ands r0, r5 cmp r0, #0 beq _080390E0 lsrs r0, r5, #0x10 b _080390E8 _080390E0: adds r0, r4, #0 bl sub_08049EE4 adds r0, #2 _080390E8: movs r1, #0x1c ands r0, r1 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_080390F8 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080390F8 sub_080390F8: @ 0x080390F8 push {lr} adds r3, r0, #0 ldrb r1, [r3, #0x15] movs r0, #0xf ands r0, r1 cmp r0, #0 beq _0803911C lsrs r1, r1, #4 movs r0, #1 eors r1, r0 ands r1, r0 lsls r1, r1, #6 ldrb r2, [r3, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3, #0x18] _0803911C: pop {pc} .align 2, 0 thumb_func_start sub_08039120 sub_08039120: @ 0x08039120 push {lr} ldr r2, _0803913C @ =gUnk_080CF7C2 ldrb r1, [r0, #0xa] adds r1, r1, r2 ldrb r1, [r1] movs r2, #0 strh r1, [r0, #0x24] adds r1, r0, #0 adds r1, #0x7a strb r2, [r1] bl sub_0803901C pop {pc} .align 2, 0 _0803913C: .4byte gUnk_080CF7C2 thumb_func_start sub_08039140 sub_08039140: @ 0x08039140 push {r4, lr} adds r4, r0, #0 movs r0, #6 strb r0, [r4, #0xc] bl sub_08000E50 strb r0, [r4, #0xe] ldr r1, _08039174 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] ldr r0, _08039178 @ =0x0000FFFC strh r0, [r4, #0x36] adds r1, r4, #0 adds r1, #0x78 movs r0, #0xb4 strh r0, [r1] adds r0, r4, #0 bl sub_080390F8 adds r0, r4, #0 movs r1, #4 bl sub_08004260 pop {r4, pc} .align 2, 0 _08039174: .4byte gUnk_03001160 _08039178: .4byte 0x0000FFFC thumb_func_start sub_0803917C sub_0803917C: @ 0x0803917C push {r4, lr} adds r2, r0, #0 movs r1, #0x2e ldrsh r0, [r2, r1] ldr r3, _080391AC @ =gUnk_03000BF0 movs r4, #0xa ldrsh r1, [r3, r4] adds r1, #0xc subs r0, r0, r1 movs r1, #0x84 lsls r1, r1, #1 cmp r0, r1 bhi _080391B0 movs r0, #0x32 ldrsh r1, [r2, r0] movs r2, #0xc ldrsh r0, [r3, r2] adds r0, #0xc subs r1, r1, r0 cmp r1, #0xb8 bhi _080391B0 movs r0, #0 b _080391B2 .align 2, 0 _080391AC: .4byte gUnk_03000BF0 _080391B0: movs r0, #1 _080391B2: pop {r4, pc} thumb_func_start sub_080391B4 sub_080391B4: @ 0x080391B4 push {r4, r5, lr} adds r5, r0, #0 adds r0, #0x7a ldrb r0, [r0] cmp r0, #0 beq _0803920C adds r2, r5, #0 adds r2, #0x7b ldrb r1, [r2] adds r0, r1, #1 strb r0, [r2] movs r0, #0x1f ands r0, r1 cmp r0, #0 bne _0803920C movs r0, #0x41 movs r1, #2 bl sub_0804AA60 adds r4, r0, #0 cmp r4, #0 beq _0803920C bl sub_08000E50 movs r1, #0x17 ands r1, r0 lsls r1, r1, #2 ldr r0, _08039210 @ =gUnk_080CF7C4 adds r1, r1, r0 ldr r2, _08039214 @ =gUnk_03000BF0 ldrh r0, [r1] ldrh r3, [r2, #0xa] adds r0, r0, r3 strh r0, [r4, #0x2e] ldrh r0, [r1, #2] ldrh r2, [r2, #0xc] adds r0, r0, r2 strh r0, [r4, #0x32] adds r0, r5, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] _0803920C: pop {r4, r5, pc} .align 2, 0 _08039210: .4byte gUnk_080CF7C4 _08039214: .4byte gUnk_03000BF0 thumb_func_start sub_08039218 sub_08039218: @ 0x08039218 push {lr} adds r2, r0, #0 movs r0, #5 strb r0, [r2, #0xc] ldr r1, _08039254 @ =gUnk_080CF824 ldrb r0, [r2, #0xa] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r2, #0x24] ldr r1, _08039258 @ =gUnk_080CF828 ldrb r0, [r2, #0xa] lsls r0, r0, #1 adds r0, r0, r1 ldrh r1, [r0] adds r0, r2, #0 adds r0, #0x78 strh r1, [r0] subs r0, #0x20 ldrb r0, [r0] cmp r0, #4 beq _0803924C adds r0, r2, #0 movs r1, #4 bl sub_08004260 _0803924C: ldr r0, _0803925C @ =0x000001D9 bl sub_08004488 pop {pc} .align 2, 0 _08039254: .4byte gUnk_080CF824 _08039258: .4byte gUnk_080CF828 _0803925C: .4byte 0x000001D9 thumb_func_start sub_08039260 sub_08039260: @ 0x08039260 push {r4, lr} adds r4, r0, #0 ldr r0, _08039290 @ =gUnk_080CF82E ldrb r1, [r4, #0xa] adds r1, r1, r0 ldrb r1, [r1] adds r0, r4, #0 movs r2, #0 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _0803928E ldr r0, _08039294 @ =gUnk_080CF82C ldrb r1, [r4, #0x18] lsls r1, r1, #0x19 lsrs r1, r1, #0x1f adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] ldrh r1, [r2, #0x2e] adds r0, r0, r1 strh r0, [r2, #0x2e] _0803928E: pop {r4, pc} .align 2, 0 _08039290: .4byte gUnk_080CF82E _08039294: .4byte gUnk_080CF82C thumb_func_start sub_08039298 sub_08039298: @ 0x08039298 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xb] cmp r0, #0 bne _080392A8 adds r0, r1, #0 bl sub_08078930 _080392A8: pop {pc} .align 2, 0 thumb_func_start sub_080392AC sub_080392AC: @ 0x080392AC push {r4, lr} adds r4, r0, #0 ldr r1, _080392C8 @ =gUnk_080CF8A4 bl sub_0800129E movs r3, #0x12 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, pc} .align 2, 0 _080392C8: .4byte gUnk_080CF8A4 thumb_func_start sub_080392CC sub_080392CC: @ 0x080392CC push {r4, lr} adds r4, r0, #0 ldr r0, _080392FC @ =gUnk_080CF8BC ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r1, r4, #0 adds r1, #0x7c ldrb r0, [r1] cmp r0, #0 beq _0803930C subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 beq _08039300 subs r1, #0x3d movs r0, #0x45 b _0803930A .align 2, 0 _080392FC: .4byte gUnk_080CF8BC _08039300: adds r0, r4, #0 adds r0, #0x7d ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x3f _0803930A: strb r0, [r1] _0803930C: movs r0, #0x36 ldrsh r1, [r4, r0] cmp r1, #0 beq _0803933A movs r0, #8 rsbs r0, r0, #0 cmp r1, r0 bge _08039334 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] b _0803933A _08039334: adds r0, r4, #0 bl sub_08016A04 _0803933A: pop {r4, pc} thumb_func_start sub_0803933C sub_0803933C: @ 0x0803933C push {r4, r5, lr} adds r5, r0, #0 adds r0, #0x3f ldrb r0, [r0] cmp r0, #0x44 bne _08039390 adds r0, r5, #0 adds r0, #0x41 ldrb r0, [r0] movs r1, #0x7f ands r1, r0 cmp r1, #6 bgt _08039390 cmp r1, #4 blt _08039390 adds r0, r5, #0 adds r0, #0x3d ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bgt _08039390 movs r0, #4 strb r0, [r5, #0xc] adds r0, r5, #0 adds r0, #0x3e ldrb r0, [r0] strb r0, [r5, #0x15] ldrb r0, [r5, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 movs r1, #0x10 eors r0, r1 asrs r0, r0, #3 strb r0, [r5, #0x14] movs r0, #0x90 lsls r0, r0, #1 strh r0, [r5, #0x24] adds r0, r5, #0 bl sub_0803981C _08039390: adds r0, r5, #0 adds r0, #0x41 ldrb r2, [r0] cmp r2, #0x9d bne _080393F8 ldr r1, [r5, #0x54] cmp r1, #0 bne _080393CA ldrb r0, [r5, #0xc] cmp r0, #8 bhi _080393EC adds r0, r5, #0 movs r1, #0x10 movs r2, #1 bl sub_0804A98C adds r1, r0, #0 cmp r1, #0 beq _080393DC ldrb r0, [r5, #0x14] lsls r0, r0, #1 strb r0, [r1, #0x1e] movs r0, #2 strb r0, [r1, #0xb] movs r0, #0xc3 lsls r0, r0, #1 bl sub_08004488 b _080393DC _080393CA: adds r0, r1, #0 adds r0, #0x41 movs r4, #0 strb r2, [r0] movs r0, #0xc3 lsls r0, r0, #1 bl sub_08004488 str r4, [r5, #0x54] _080393DC: adds r0, r5, #0 bl sub_08039A48 adds r1, r5, #0 adds r1, #0x78 ldrh r0, [r1] adds r0, #0x5a strh r0, [r1] _080393EC: adds r2, r5, #0 adds r2, #0x3b ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] _080393F8: adds r0, r5, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _0803940A adds r0, r5, #0 movs r1, #0x1c bl sub_0804A9FC _0803940A: ldr r1, _08039414 @ =gUnk_080CF8A4 adds r0, r5, #0 bl sub_0804AA30 pop {r4, r5, pc} .align 2, 0 _08039414: .4byte gUnk_080CF8A4 thumb_func_start sub_08039418 sub_08039418: @ 0x08039418 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xa] cmp r0, #0 bne _0803942E adds r0, r1, #0 movs r1, #0xf3 movs r2, #0 bl sub_0804A7E0 b _08039434 _0803942E: adds r0, r1, #0 bl sub_0804A7D4 _08039434: pop {pc} .align 2, 0 thumb_func_start sub_08039438 sub_08039438: @ 0x08039438 push {r4, lr} adds r4, r0, #0 bl sub_0806F520 cmp r0, #0 beq _08039454 ldr r0, _08039458 @ =gUnk_080CF8EC ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _08039454: pop {r4, pc} .align 2, 0 _08039458: .4byte gUnk_080CF8EC thumb_func_start sub_0803945C sub_0803945C: @ 0x0803945C movs r1, #1 strb r1, [r0, #0xd] movs r1, #0x5a strb r1, [r0, #0x1d] bx lr .align 2, 0 thumb_func_start sub_08039468 sub_08039468: @ 0x08039468 push {lr} bl sub_0806F4E8 pop {pc} thumb_func_start sub_08039470 sub_08039470: @ 0x08039470 push {r4, lr} adds r4, r0, #0 ldr r2, [r4, #0x54] cmp r2, #0 bne _08039494 movs r1, #0x10 movs r2, #1 bl sub_0804A98C adds r2, r0, #0 cmp r2, #0 beq _0803949C ldrb r0, [r4, #0x14] lsls r0, r0, #1 strb r0, [r2, #0x1e] movs r0, #1 strb r0, [r2, #0xb] b _0803949C _08039494: ldrb r1, [r2, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x10] _0803949C: movs r0, #0 str r0, [r4, #0x54] adds r3, r4, #0 adds r3, #0x3a ldrb r2, [r3] movs r1, #0xfb adds r0, r1, #0 ands r0, r2 strb r0, [r3] adds r2, r4, #0 adds r2, #0x3b ldrb r0, [r2] ands r1, r0 strb r1, [r2] adds r0, r4, #0 bl sub_08039A48 adds r1, r4, #0 adds r1, #0x78 ldrh r0, [r1] adds r0, #0x5a strh r0, [r1] pop {r4, pc} .align 2, 0 thumb_func_start sub_080394CC sub_080394CC: @ 0x080394CC push {r4, lr} adds r4, r0, #0 bl sub_0804A720 bl sub_08000E50 movs r1, #3 ands r0, r1 movs r1, #0 strb r0, [r4, #0x14] adds r0, r4, #0 adds r0, #0x7b strb r1, [r0] adds r0, #1 strb r1, [r0] subs r0, #0x3d ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x7d strb r0, [r1] adds r0, r4, #0 movs r1, #0 bl sub_08039A00 ldrb r0, [r4, #0xb] cmp r0, #0 bne _0803950A adds r0, r4, #0 bl sub_0803998C b _0803952A _0803950A: movs r0, #4 strb r0, [r4, #0xc] movs r0, #0xff strb r0, [r4, #0x15] ldr r1, _0803952C @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 adds r0, #4 movs r1, #0x18 ands r0, r1 lsrs r0, r0, #3 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_0803981C _0803952A: pop {r4, pc} .align 2, 0 _0803952C: .4byte gUnk_03001160 thumb_func_start sub_08039530 sub_08039530: @ 0x08039530 push {r4, lr} adds r4, r0, #0 movs r1, #0xc0 lsls r1, r1, #5 bl sub_08003FC4 cmp r0, #0 bne _08039568 adds r0, r4, #0 bl sub_08039758 cmp r0, #0 bne _08039568 adds r1, r4, #0 adds r1, #0x78 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08039568 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0xa strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_08039858 _08039568: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803956C sub_0803956C: @ 0x0803956C push {r4, lr} adds r4, r0, #0 bl sub_08039758 cmp r0, #0 bne _0803958A ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803958A adds r0, r4, #0 bl sub_0803992C _0803958A: pop {r4, pc} thumb_func_start sub_0803958C sub_0803958C: @ 0x0803958C push {r4, lr} adds r4, r0, #0 bl sub_08039758 cmp r0, #0 bne _080395D4 adds r0, r4, #0 bl sub_080AEF88 cmp r0, #0 beq _080395C0 adds r0, r4, #0 bl sub_080042B8 adds r1, r4, #0 adds r1, #0x78 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _080395D4 adds r0, r4, #0 bl sub_0803998C b _080395D4 _080395C0: adds r2, r4, #0 adds r2, #0x7b ldrb r0, [r2] lsls r0, r0, #1 movs r1, #1 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 bl sub_0803998C _080395D4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080395D8 sub_080395D8: @ 0x080395D8 push {r4, lr} adds r4, r0, #0 bl sub_080AEFE0 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08039602 adds r0, r4, #0 bl sub_0803998C adds r1, r4, #0 adds r1, #0x7c movs r0, #0x5a strb r0, [r1] movs r0, #0x7d bl sub_08004488 _08039602: pop {r4, pc} thumb_func_start sub_08039604 sub_08039604: @ 0x08039604 push {r4, lr} adds r4, r0, #0 bl sub_080AEFE0 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 ldr r0, [r4, #0x20] cmp r0, #0 bge _08039624 movs r0, #6 strb r0, [r4, #0xc] movs r0, #0xf strb r0, [r4, #0xe] _08039624: pop {r4, pc} .align 2, 0 thumb_func_start sub_08039628 sub_08039628: @ 0x08039628 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xe] adds r1, r0, #0 cmp r1, #0 beq _0803963A subs r0, #1 strb r0, [r2, #0xe] b _0803966A _0803963A: ldrh r0, [r2, #0x36] adds r0, #4 strh r0, [r2, #0x36] lsls r0, r0, #0x10 cmp r0, #0 blt _0803966A movs r0, #7 strb r0, [r2, #0xc] movs r0, #0xa strb r0, [r2, #0xe] strh r1, [r2, #0x36] adds r1, r2, #0 adds r1, #0x7a movs r0, #0x78 strb r0, [r1] adds r1, #2 movs r0, #0x3c strb r0, [r1] adds r0, r2, #0 bl sub_080399C4 ldr r0, _0803966C @ =0x0000014B bl sub_08004488 _0803966A: pop {pc} .align 2, 0 _0803966C: .4byte 0x0000014B thumb_func_start sub_08039670 sub_08039670: @ 0x08039670 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 _08039686 adds r0, r1, #0 bl sub_0803998C _08039686: pop {pc} thumb_func_start sub_08039688 sub_08039688: @ 0x08039688 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 ldrb r0, [r4, #0xe] subs r1, r0, #1 strb r1, [r4, #0xe] lsls r0, r1, #0x18 cmp r0, #0 bne _080396AC adds r0, r4, #0 movs r1, #0x3c bl sub_08039A00 adds r0, r4, #0 bl sub_0803998C b _080396BA _080396AC: movs r0, #0x1f ands r1, r0 cmp r1, #0 bne _080396BA adds r0, r4, #0 bl sub_08039A20 _080396BA: pop {r4, pc} thumb_func_start sub_080396BC sub_080396BC: @ 0x080396BC push {r4, lr} adds r4, r0, #0 movs r1, #0xc0 lsls r1, r1, #5 bl sub_08003FC4 cmp r0, #0 bne _080396E2 adds r1, r4, #0 adds r1, #0x78 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _080396E2 adds r0, r4, #0 bl sub_08039A70 _080396E2: pop {r4, pc} thumb_func_start sub_080396E4 sub_080396E4: @ 0x080396E4 push {r4, lr} adds r4, r0, #0 bl sub_080AEFE0 adds r0, r4, #0 bl sub_080042B8 adds r1, r4, #0 adds r1, #0x78 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08039708 adds r0, r4, #0 bl sub_08039AD4 _08039708: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803970C sub_0803970C: @ 0x0803970C 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 _08039756 ldrb r0, [r4, #0xb] cmp r0, #1 bne _0803973A adds r0, r4, #0 bl sub_0803998C ldr r0, [r4, #0x54] bl sub_0805E7BC movs r0, #0 str r0, [r4, #0x54] b _08039740 _0803973A: adds r0, r4, #0 bl sub_08039A48 _08039740: adds r2, r4, #0 adds r2, #0x3b ldrb r1, [r2] movs r0, #4 orrs r0, r1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x78 ldrh r0, [r1] adds r0, #0x3c strh r0, [r1] _08039756: pop {r4, pc} thumb_func_start sub_08039758 sub_08039758: @ 0x08039758 push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x7a ldrb r0, [r5] cmp r0, #0 beq _0803976A subs r0, #1 strb r0, [r5] _0803976A: adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _08039818 ldrb r0, [r5] cmp r0, #0 bne _08039818 ldrb r0, [r4, #0xa] cmp r0, #0 bne _080397DC ldr r5, _080397D8 @ =gUnk_020000B0 ldr r0, [r5] movs r2, #0x2e ldrsh r1, [r0, r2] movs r3, #0x32 ldrsh r2, [r0, r3] adds r0, r4, #0 movs r3, #0x24 bl sub_0806FCB8 cmp r0, #0 beq _08039818 movs r0, #5 strb r0, [r4, #0xc] movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r4, #0x24] ldr r1, [r5] adds r0, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] ldrb r0, [r4, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 asrs r0, r0, #3 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_0803981C adds r1, r4, #0 adds r1, #0x3f movs r0, #0x46 strb r0, [r1] adds r1, #0x3e strb r0, [r1] movs r0, #0xa0 lsls r0, r0, #0xa str r0, [r4, #0x20] movs r0, #1 b _0803981A .align 2, 0 _080397D8: .4byte gUnk_020000B0 _080397DC: ldr r5, _08039814 @ =gUnk_020000B0 ldr r0, [r5] movs r2, #0x2e ldrsh r1, [r0, r2] movs r3, #0x32 ldrsh r2, [r0, r3] adds r0, r4, #0 movs r3, #0x48 bl sub_0806FCB8 cmp r0, #0 beq _08039818 movs r0, #8 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] ldr r1, [r5] adds r0, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] ldrb r1, [r4, #0x14] adds r1, #0xc adds r0, r4, #0 bl sub_080042AC movs r0, #1 b _0803981A .align 2, 0 _08039814: .4byte gUnk_020000B0 _08039818: movs r0, #0 _0803981A: pop {r4, r5, pc} thumb_func_start sub_0803981C sub_0803981C: @ 0x0803981C push {lr} adds r2, r0, #0 movs r0, #0x80 lsls r0, r0, #0xa str r0, [r2, #0x20] adds r1, r2, #0 adds r1, #0x3d movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bne _08039836 movs r0, #0xf4 strb r0, [r1] _08039836: adds r1, r2, #0 adds r1, #0x3f movs r0, #0x45 strb r0, [r1] adds r1, #0x3e strb r0, [r1] ldrb r1, [r2, #0x14] adds r1, #8 adds r0, r2, #0 bl sub_080042AC ldr r0, _08039854 @ =0x0000012B bl sub_08004488 pop {pc} .align 2, 0 _08039854: .4byte 0x0000012B thumb_func_start sub_08039858 sub_08039858: @ 0x08039858 push {r4, r5, r6, lr} adds r5, r0, #0 bl sub_080398C0 adds r6, r0, #0 ldrb r0, [r5, #0x14] lsls r4, r0, #3 adds r0, r6, #4 movs r1, #0x18 ands r0, r1 cmp r0, r4 bne _0803988C adds r1, r5, #0 adds r1, #0x7b ldrb r0, [r1] cmp r0, #3 bne _080398B8 movs r0, #0 strb r0, [r1] bl sub_08000E50 movs r1, #2 ands r1, r0 subs r1, #1 lsls r1, r1, #3 adds r6, r6, r1 _0803988C: subs r0, r6, r4 movs r1, #0x1f ands r0, r1 lsrs r4, r0, #4 movs r0, #1 eors r4, r0 ldr r1, _080398BC @ =gUnk_080CF8F8 ldrb r0, [r5, #0x14] lsls r0, r0, #1 adds r0, r0, r4 adds r0, r0, r1 ldrb r1, [r0] adds r0, r5, #0 bl sub_080042AC lsls r0, r4, #1 ldrb r1, [r5, #0x14] adds r0, r0, r1 subs r0, #1 movs r1, #3 ands r0, r1 strb r0, [r5, #0x14] _080398B8: pop {r4, r5, r6, pc} .align 2, 0 _080398BC: .4byte gUnk_080CF8F8 thumb_func_start sub_080398C0 sub_080398C0: @ 0x080398C0 push {r4, r5, lr} adds r4, r0, #0 bl sub_08000E50 adds r5, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 bne _08039908 adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _08039908 ldr r0, _08039900 @ =gUnk_020000B0 ldr r0, [r0] movs r2, #0x2e ldrsh r1, [r0, r2] movs r3, #0x32 ldrsh r2, [r0, r3] adds r0, r4, #0 movs r3, #0x58 bl sub_0806FCB8 cmp r0, #0 beq _08039908 ldr r1, _08039904 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 b _08039928 .align 2, 0 _08039900: .4byte gUnk_020000B0 _08039904: .4byte gUnk_03001160 _08039908: adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 bne _08039922 movs r0, #7 ands r0, r5 cmp r0, #0 beq _08039922 adds r0, r4, #0 bl sub_08049EE4 b _08039928 _08039922: lsrs r0, r5, #0x10 movs r1, #0x18 ands r0, r1 _08039928: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0803992C sub_0803992C: @ 0x0803992C push {r4, lr} adds r4, r0, #0 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0xe0 strh r0, [r4, #0x24] ldrb r0, [r4, #0x14] lsls r0, r0, #3 strb r0, [r4, #0x15] bl sub_08000E50 ldr r2, _08039978 @ =gUnk_080CF900 movs r1, #0xf ands r1, r0 adds r1, r1, r2 ldrb r1, [r1] adds r0, r4, #0 adds r0, #0x78 strh r1, [r0] ldrb r1, [r4, #0x15] adds r0, r4, #0 movs r2, #0 bl sub_080AE58C ldr r1, _0803997C @ =gUnk_080CF910 ldrb r2, [r4, #0x14] lsls r0, r2, #1 adds r0, r0, r1 ldrh r1, [r0] ldrh r0, [r4, #0x2a] ands r0, r1 cmp r0, #0 beq _08039980 adds r0, r4, #0 adds r1, r2, #0 bl sub_080042AC b _08039988 .align 2, 0 _08039978: .4byte gUnk_080CF900 _0803997C: .4byte gUnk_080CF910 _08039980: adds r1, r2, #4 adds r0, r4, #0 bl sub_080042AC _08039988: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803998C sub_0803998C: @ 0x0803998C push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x44 strb r0, [r1] adds r1, #0x3e strb r0, [r1] bl sub_08000E50 ldr r2, _080399C0 @ =gUnk_080CF918 movs r1, #0xf ands r1, r0 adds r1, r1, r2 ldrb r1, [r1] adds r0, r4, #0 adds r0, #0x78 strh r1, [r0] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_080042AC pop {r4, pc} .align 2, 0 _080399C0: .4byte gUnk_080CF918 thumb_func_start sub_080399C4 sub_080399C4: @ 0x080399C4 push {r4, lr} adds r4, r0, #0 movs r1, #0x11 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _080399E2 ldrh r0, [r1, #0x2e] subs r0, #4 strh r0, [r1, #0x2e] ldrh r0, [r1, #0x32] adds r0, #2 strh r0, [r1, #0x32] _080399E2: adds r0, r4, #0 movs r1, #0x11 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _080399FE ldrh r0, [r1, #0x2e] adds r0, #4 strh r0, [r1, #0x2e] ldrh r0, [r1, #0x32] adds r0, #2 strh r0, [r1, #0x32] _080399FE: pop {r4, pc} thumb_func_start sub_08039A00 sub_08039A00: @ 0x08039A00 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 bl sub_08000E50 ldr r2, _08039A1C @ =gUnk_080CF928 movs r1, #3 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] adds r0, r0, r5 adds r4, #0x7a strb r0, [r4] pop {r4, r5, pc} .align 2, 0 _08039A1C: .4byte gUnk_080CF928 thumb_func_start sub_08039A20 sub_08039A20: @ 0x08039A20 push {r4, lr} adds r4, r0, #0 movs r1, #2 movs r2, #0 bl sub_0804A98C adds r1, r0, #0 cmp r1, #0 beq _08039A44 ldrb r0, [r4, #0x15] strb r0, [r1, #0x15] adds r1, r4, #0 adds r1, #0x7c movs r0, #0x3c strb r0, [r1] movs r0, #0xfb bl sub_08004488 _08039A44: pop {r4, pc} .align 2, 0 thumb_func_start sub_08039A48 sub_08039A48: @ 0x08039A48 push {lr} adds r2, r0, #0 movs r0, #9 strb r0, [r2, #0xc] adds r1, r2, #0 adds r1, #0x3f movs r0, #0x47 strb r0, [r1] adds r1, #0x3e strb r0, [r1] subs r1, #5 movs r0, #0xa strh r0, [r1] ldrb r1, [r2, #0x14] adds r1, #0x10 adds r0, r2, #0 bl sub_080042AC pop {pc} .align 2, 0 thumb_func_start sub_08039A70 sub_08039A70: @ 0x08039A70 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0xa strb r0, [r5, #0xc] movs r0, #0xe0 strh r0, [r5, #0x24] bl sub_08000E50 adds r4, r0, #0 ldr r1, _08039AB8 @ =gUnk_080CF92C movs r0, #3 ands r0, r4 adds r0, r0, r1 ldrb r1, [r0] adds r0, r5, #0 adds r0, #0x78 strh r1, [r0] lsrs r4, r4, #0x10 adds r0, r5, #0 bl sub_08049FA0 cmp r0, #0 bne _08039ABC movs r0, #7 ands r0, r4 cmp r0, #0 beq _08039ABC adds r0, r5, #0 bl sub_08049EE4 adds r0, #4 movs r1, #0x18 ands r0, r1 strb r0, [r5, #0x15] b _08039AC2 .align 2, 0 _08039AB8: .4byte gUnk_080CF92C _08039ABC: movs r0, #0x18 ands r4, r0 strb r4, [r5, #0x15] _08039AC2: ldrb r0, [r5, #0x15] lsrs r0, r0, #3 strb r0, [r5, #0x14] ldrb r1, [r5, #0x14] adds r1, #0x14 adds r0, r5, #0 bl sub_080042AC pop {r4, r5, pc} thumb_func_start sub_08039AD4 sub_08039AD4: @ 0x08039AD4 push {r4, r5, lr} adds r4, r0, #0 bl sub_08039B28 adds r5, r0, #0 ldr r0, _08039B18 @ =0x0000FFFF cmp r5, r0 beq _08039B20 ldrb r2, [r4, #0xb] adds r0, r4, #0 movs r1, #0x10 bl sub_0804A98C adds r1, r0, #0 cmp r1, #0 beq _08039B20 str r4, [r1, #0x50] movs r0, #0xb strb r0, [r4, #0xc] str r1, [r4, #0x54] ldrb r1, [r4, #0x14] adds r1, #0x18 adds r0, r4, #0 bl sub_080042AC ldr r0, _08039B1C @ =0x00004067 adds r1, r4, #0 adds r1, #0x38 ldrb r2, [r1] adds r1, r5, #0 bl sub_0800015E b _08039B26 .align 2, 0 _08039B18: .4byte 0x0000FFFF _08039B1C: .4byte 0x00004067 _08039B20: adds r0, r4, #0 bl sub_08039A48 _08039B26: pop {r4, r5, pc} thumb_func_start sub_08039B28 sub_08039B28: @ 0x08039B28 push {r4, r5, r6, lr} adds r6, r0, #0 ldr r0, [r6, #0x54] cmp r0, #0 bne _08039B84 ldrb r2, [r6, #0x14] lsls r2, r2, #1 ldr r0, _08039B88 @ =gUnk_080CF930 adds r2, r2, r0 movs r1, #0x2e ldrsh r0, [r6, r1] movs r1, #0 ldrsb r1, [r2, r1] adds r0, r0, r1 ldr r4, _08039B8C @ =gUnk_03000BF0 ldrh r1, [r4, #6] subs r0, r0, r1 asrs r5, r0, #4 movs r3, #0x3f ands r5, r3 movs r1, #0x32 ldrsh r0, [r6, r1] movs r1, #1 ldrsb r1, [r2, r1] adds r0, r0, r1 ldrh r1, [r4, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r5, r0 adds r0, r6, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r5, #0 bl sub_080002B0 adds r2, r0, #0 ldr r1, _08039B90 @ =gUnk_080CF938 _08039B76: ldrh r0, [r1] cmp r0, r2 beq _08039B98 adds r1, #4 ldrh r0, [r1] cmp r0, #0 bne _08039B76 _08039B84: ldr r0, _08039B94 @ =0x0000FFFF b _08039B9E .align 2, 0 _08039B88: .4byte gUnk_080CF930 _08039B8C: .4byte gUnk_03000BF0 _08039B90: .4byte gUnk_080CF938 _08039B94: .4byte 0x0000FFFF _08039B98: ldrh r0, [r1, #2] strb r0, [r6, #0xb] adds r0, r5, #0 _08039B9E: pop {r4, r5, r6, pc} thumb_func_start sub_08039BA0 sub_08039BA0: @ 0x08039BA0 push {r4, r5, lr} adds r5, r0, #0 bl sub_080012DC adds r1, r0, #0 cmp r1, #0 beq _08039BC4 ldr r0, _08039BC0 @ =gUnk_080012C8 lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r5, #0 bl _call_via_r1 b _08039BD8 .align 2, 0 _08039BC0: .4byte gUnk_080012C8 _08039BC4: ldr r4, _08039BDC @ =gUnk_080CFB84 adds r0, r5, #0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 _08039BD8: pop {r4, r5, pc} .align 2, 0 _08039BDC: .4byte gUnk_080CFB84 thumb_func_start sub_08039BE0 sub_08039BE0: @ 0x08039BE0 push {lr} ldr r2, _08039BF4 @ =gUnk_080CFB9C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08039BF4: .4byte gUnk_080CFB9C thumb_func_start sub_08039BF8 sub_08039BF8: @ 0x08039BF8 push {r4, r5, r6, lr} adds r5, r0, #0 bl sub_0803A100 adds r0, r5, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x9d bne _08039C64 movs r0, #7 strb r0, [r5, #0xc] ldrb r1, [r5, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r5, #0x10] movs r0, #0xa8 lsls r0, r0, #0xa str r0, [r5, #0x20] adds r2, r5, #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 r0, r5, #0 adds r0, #0x74 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _08039C60 @ =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 b _08039C72 .align 2, 0 _08039C60: .4byte gUnk_03000BF0 _08039C64: movs r1, #0x36 ldrsh r0, [r5, r1] cmp r0, #0 beq _08039C72 adds r0, r5, #0 bl sub_0803A0E0 _08039C72: ldr r1, _08039C7C @ =gUnk_080CFB84 adds r0, r5, #0 bl sub_0804AA30 pop {r4, r5, r6, pc} .align 2, 0 _08039C7C: .4byte gUnk_080CFB84 thumb_func_start sub_08039C80 sub_08039C80: @ 0x08039C80 push {lr} ldr r2, _08039C94 @ =gUnk_080CFBBC ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08039C94: .4byte gUnk_080CFBBC thumb_func_start sub_08039C98 sub_08039C98: @ 0x08039C98 push {r4, lr} adds r4, r0, #0 bl sub_0803A100 movs r1, #0 movs r0, #1 strb r0, [r4, #0xd] strb r1, [r4, #0xe] movs r0, #0x30 strb r0, [r4, #0x1d] pop {r4, pc} .align 2, 0 thumb_func_start sub_08039CB0 sub_08039CB0: @ 0x08039CB0 push {r4, lr} adds r4, r0, #0 bl sub_0803A100 adds r0, r4, #0 bl sub_0806F520 cmp r0, #0 beq _08039CCA adds r0, r4, #0 bl sub_0806F4E8 b _08039CDE _08039CCA: adds r1, r4, #0 adds r1, #0x62 strb r0, [r1] movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 beq _08039CDE adds r0, r4, #0 bl sub_0803A0E0 _08039CDE: pop {r4, pc} thumb_func_start sub_08039CE0 sub_08039CE0: @ 0x08039CE0 push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r4, [r5, #0xe] cmp r4, #0 bne _08039D2A bl sub_0803A100 movs r0, #1 strb r0, [r5, #0xe] ldr r0, _08039D3C @ =0x0000FFFF strh r0, [r5, #0x36] adds r0, r5, #0 adds r0, #0x62 strb r4, [r0] adds r0, #0x12 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _08039D40 @ =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 _08039D2A: adds r0, r5, #0 bl sub_0806F520 cmp r0, #0 beq _08039D44 adds r0, r5, #0 bl sub_0806F3E4 b _08039D4A .align 2, 0 _08039D3C: .4byte 0x0000FFFF _08039D40: .4byte gUnk_03000BF0 _08039D44: adds r0, r5, #0 bl sub_0803A0E0 _08039D4A: pop {r4, r5, r6, pc} thumb_func_start sub_08039D4C sub_08039D4C: @ 0x08039D4C push {lr} adds r2, r0, #0 ldr r0, _08039D64 @ =gUnk_03003F80 ldrb r1, [r0, #0x1c] movs r0, #0xf ands r0, r1 cmp r0, #0 bne _08039D62 adds r0, r2, #0 bl sub_0803A0E0 _08039D62: pop {pc} .align 2, 0 _08039D64: .4byte gUnk_03003F80 thumb_func_start nullsub_166 nullsub_166: @ 0x08039D68 bx lr .align 2, 0 thumb_func_start sub_08039D6C sub_08039D6C: @ 0x08039D6C push {lr} bl sub_0803A0E0 pop {pc} thumb_func_start sub_08039D74 sub_08039D74: @ 0x08039D74 push {r4, r5, r6, lr} adds r5, r0, #0 movs r1, #0 movs r0, #1 strb r0, [r5, #0xc] movs r0, #2 strb r0, [r5, #0x1c] strb r1, [r5, #0x16] ldrh r0, [r5, #0x32] adds r0, #3 strh r0, [r5, #0x32] movs r0, #0x2e ldrsh r4, [r5, r0] ldr r1, _08039DD0 @ =gUnk_03000BF0 ldrh r0, [r1, #6] subs r4, r4, r0 asrs r4, r4, #4 movs r2, #0x3f ands r4, r2 movs r3, #0x32 ldrsh r0, [r5, r3] ldrh r1, [r1, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r4, r0 adds r6, r5, #0 adds r6, #0x38 ldrb r1, [r6] adds r0, r4, #0 bl sub_080001DA adds r1, r5, #0 adds r1, #0x74 strh r0, [r1] ldr r0, _08039DD4 @ =0x00004060 ldrb r2, [r6] adds r1, r4, #0 bl sub_0800015E adds r0, r5, #0 movs r1, #0 bl sub_08004260 pop {r4, r5, r6, pc} .align 2, 0 _08039DD0: .4byte gUnk_03000BF0 _08039DD4: .4byte 0x00004060 thumb_func_start sub_08039DD8 sub_08039DD8: @ 0x08039DD8 push {r4, r5, r6, lr} adds r5, r0, #0 bl sub_0803A100 ldrb r0, [r5, #0xa] cmp r0, #0 bne _08039E38 adds r0, r5, #0 bl sub_080002A0 ldr r1, _08039E30 @ =0x00004073 cmp r0, r1 bne _08039E28 adds r0, r5, #0 adds r0, #0x74 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _08039E34 @ =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 adds r0, r5, #0 bl sub_0803A0E0 _08039E28: adds r0, r5, #0 bl sub_08078930 b _08039EC6 .align 2, 0 _08039E30: .4byte 0x00004073 _08039E34: .4byte gUnk_03000BF0 _08039E38: ldr r0, _08039E6C @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08039EC6 ldr r2, _08039E70 @ =gUnk_03001160 movs r0, #0x2e ldrsh r1, [r2, r0] movs r6, #0x32 ldrsh r2, [r2, r6] adds r0, r5, #0 movs r3, #0x30 bl sub_0806FCB8 cmp r0, #0 beq _08039EC6 ldrb r0, [r5, #0xa] cmp r0, #1 bne _08039E74 movs r0, #3 strb r0, [r5, #0xc] movs r0, #0x1e strb r0, [r5, #0xe] b _08039EC6 .align 2, 0 _08039E6C: .4byte gUnk_03003F80 _08039E70: .4byte gUnk_03001160 _08039E74: ldrb r1, [r5, #0xa] subs r1, #2 movs r0, #0x42 bl sub_0804AA60 adds r2, r0, #0 cmp r2, #0 beq _08039EC6 movs r0, #1 strb r0, [r2, #0xb] adds r0, r5, #0 adds r1, r2, #0 bl sub_0806FA24 adds r0, r5, #0 adds r0, #0x74 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _08039EC8 @ =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 adds r0, r5, #0 bl sub_0805E7BC _08039EC6: pop {r4, r5, r6, pc} .align 2, 0 _08039EC8: .4byte gUnk_03000BF0 thumb_func_start sub_08039ECC sub_08039ECC: @ 0x08039ECC push {lr} ldr r2, _08039EE0 @ =gUnk_080CFBD4 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08039EE0: .4byte gUnk_080CFBD4 thumb_func_start sub_08039EE4 sub_08039EE4: @ 0x08039EE4 push {r4, r5, r6, lr} mov ip, r0 movs r2, #0 movs r0, #1 mov r1, ip strb r0, [r1, #0xd] ldrb r1, [r1, #0x10] movs r0, #0x7f ands r0, r1 mov r3, ip strb r0, [r3, #0x10] strh r2, [r3, #0x2a] ldr r0, _08039F40 @ =gUnk_080FD340 str r0, [r3, #0x48] ldr r0, _08039F44 @ =gUnk_03001160 ldrb r0, [r0, #0x14] mov r1, ip adds r1, #0x76 strb r0, [r1] mov r0, ip adds r0, #0x74 ldrh r0, [r0] movs r5, #0x2e ldrsh r1, [r3, r5] ldr r3, _08039F48 @ =gUnk_03000BF0 ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 movs r4, #0x3f ands r1, r4 mov r6, ip movs r5, #0x32 ldrsh r2, [r6, r5] ldrh r3, [r3, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r4 lsls r2, r2, #6 orrs r1, r2 mov r2, ip adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 _08039F40: .4byte gUnk_080FD340 _08039F44: .4byte gUnk_03001160 _08039F48: .4byte gUnk_03000BF0 thumb_func_start sub_08039F4C sub_08039F4C: @ 0x08039F4C push {lr} adds r3, r0, #0 ldr r0, _08039F74 @ =gUnk_03001160 movs r1, #0x76 adds r1, r1, r3 mov ip, r1 ldrb r2, [r0, #0x14] ldrb r0, [r1] cmp r2, r0 beq _08039F70 subs r0, r2, r0 ldrb r1, [r3, #0x1e] adds r0, r0, r1 movs r1, #6 ands r0, r1 strb r0, [r3, #0x1e] mov r0, ip strb r2, [r0] _08039F70: pop {pc} .align 2, 0 _08039F74: .4byte gUnk_03001160 thumb_func_start sub_08039F78 sub_08039F78: @ 0x08039F78 push {lr} adds r2, r0, #0 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] movs r1, #0x36 ldrsh r0, [r2, r1] cmp r0, #0 beq _08039F9C ldrh r0, [r2, #0x2a] cmp r0, #0 beq _08039FA2 _08039F9C: adds r0, r2, #0 bl sub_0803A0E0 _08039FA2: pop {pc} thumb_func_start sub_08039FA4 sub_08039FA4: @ 0x08039FA4 push {lr} bl sub_0803A0E0 pop {pc} thumb_func_start sub_08039FAC sub_08039FAC: @ 0x08039FAC push {r4, r5, r6, lr} adds r5, r0, #0 bl sub_0803A100 adds r3, r5, #0 adds r3, #0x62 ldr r2, _0803A03C @ =gUnk_080CFBE4 ldrb r1, [r5, #0xe] movs r0, #3 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] ldrb r1, [r3] adds r0, r0, r1 strb r0, [r3] ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 lsrs r4, r0, #0x18 cmp r4, #0 bne _0803A03A movs r0, #4 strb r0, [r5, #0xc] 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, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r2] strb r4, [r3] adds r1, r5, #0 adds r1, #0x3f movs r0, #0xa0 strb r0, [r1] subs r1, #4 movs r0, #0xf strb r0, [r1] ldr r0, _0803A040 @ =gUnk_080FD34C str r0, [r5, #0x48] adds r0, r5, #0 adds r0, #0x74 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _0803A044 @ =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 _0803A03A: pop {r4, r5, r6, pc} .align 2, 0 _0803A03C: .4byte gUnk_080CFBE4 _0803A040: .4byte gUnk_080FD34C _0803A044: .4byte gUnk_03000BF0 thumb_func_start sub_0803A048 sub_0803A048: @ 0x0803A048 push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldr r0, [r4, #0x34] ldr r1, _0803A078 @ =0xFFFF0000 adds r0, r0, r1 str r0, [r4, #0x34] movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #6 rsbs r0, r0, #0 cmp r1, r0 bgt _0803A076 movs r0, #5 strb r0, [r4, #0xc] movs r0, #0xa strb r0, [r4, #0xe] ldr r1, _0803A07C @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] _0803A076: pop {r4, pc} .align 2, 0 _0803A078: .4byte 0xFFFF0000 _0803A07C: .4byte gUnk_03001160 thumb_func_start sub_0803A080 sub_0803A080: @ 0x0803A080 push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803A098 movs r0, #6 strb r0, [r4, #0xc] _0803A098: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803A09C sub_0803A09C: @ 0x0803A09C push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080AEFE0 ldrh r0, [r4, #0x2a] cmp r0, #0 beq _0803A0B6 adds r0, r4, #0 bl sub_0803A0E0 _0803A0B6: pop {r4, pc} thumb_func_start sub_0803A0B8 sub_0803A0B8: @ 0x0803A0B8 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x20] cmp r0, #0 bge _0803A0CA ldrb r0, [r4, #0x18] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x18] _0803A0CA: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _0803A0DE adds r0, r4, #0 bl sub_0803A0E0 _0803A0DE: pop {r4, pc} thumb_func_start sub_0803A0E0 sub_0803A0E0: @ 0x0803A0E0 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xb] movs r2, #0 movs r3, #0 bl sub_0808288C adds r2, r0, #0 adds r0, r4, #0 movs r1, #0x3c bl sub_080A29AC bl sub_0805E780 pop {r4, pc} .align 2, 0 thumb_func_start sub_0803A100 sub_0803A100: @ 0x0803A100 push {r4, r5, r6, lr} adds r5, r0, #0 movs r1, #0x2e ldrsh r0, [r5, r1] ldr r3, _0803A14C @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r0, r0, r1 asrs r4, r0, #4 movs r2, #0x3f ands r4, r2 movs r1, #0x32 ldrsh r0, [r5, r1] ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r4, r0 adds r6, r5, #0 adds r6, #0x38 ldrb r1, [r6] adds r0, r4, #0 bl sub_080001DA ldr r1, _0803A150 @ =0x00004067 cmp r0, r1 bne _0803A148 adds r0, r5, #0 adds r0, #0x74 ldrh r0, [r0] ldrb r2, [r6] adds r1, r4, #0 bl sub_0800015E bl sub_0805E780 _0803A148: pop {r4, r5, r6, pc} .align 2, 0 _0803A14C: .4byte gUnk_03000BF0 _0803A150: .4byte 0x00004067 thumb_func_start sub_0803A154 sub_0803A154: @ 0x0803A154 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _0803A16C @ =gUnk_080CFC14 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _0803A16C: .4byte gUnk_080CFC14 thumb_func_start sub_0803A170 sub_0803A170: @ 0x0803A170 push {lr} ldr r2, _0803A184 @ =gUnk_080CFC2C ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0803A184: .4byte gUnk_080CFC2C thumb_func_start sub_0803A188 sub_0803A188: @ 0x0803A188 push {r4, r5, lr} adds r4, r0, #0 ldrb r3, [r4, #0xa] cmp r3, #1 bhi _0803A23E ldrb r0, [r4, #0xc] cmp r0, #0x2b beq _0803A210 adds r0, r4, #0 adds r0, #0x3d movs r1, #0 ldrsb r1, [r0, r1] adds r5, r0, #0 cmp r1, #0 ble _0803A23E adds r0, #4 ldrb r0, [r0] cmp r0, #0x95 beq _0803A1B2 cmp r0, #0x8e bne _0803A23E _0803A1B2: movs r0, #0x28 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldr r2, [r4, #0x50] adds r0, r2, #0 adds r0, #0x7d ldrb r1, [r0] cmp r3, #0 bne _0803A1CE movs r0, #1 b _0803A1D0 _0803A1CE: movs r0, #2 _0803A1D0: orrs r1, r0 adds r0, r2, #0 adds r0, #0x7d strb r1, [r0] adds r0, #3 ldrb r2, [r0] ldrb r1, [r4, #0xa] adds r3, r0, #0 cmp r1, #0 bne _0803A1E8 movs r0, #1 b _0803A1EA _0803A1E8: movs r0, #2 _0803A1EA: orrs r0, r2 strb r0, [r3] ldr r2, [r4, #0x54] ldrb r1, [r5] adds r0, r2, #0 adds r0, #0x3d strb r1, [r0] ldr r2, [r4, #0x74] ldrb r1, [r5] adds r0, r2, #0 adds r0, #0x3d strb r1, [r0] ldr r0, _0803A20C @ =0x00000127 bl sub_080A3268 b _0803A23E .align 2, 0 _0803A20C: .4byte 0x00000127 _0803A210: ldr r2, [r4, #0x54] adds r3, r4, #0 adds r3, #0x3d ldrb r1, [r3] adds r0, r2, #0 adds r0, #0x3d strb r1, [r0] ldr r2, [r4, #0x74] ldrb r1, [r3] adds r0, r2, #0 adds r0, #0x3d strb r1, [r0] adds r0, r4, #0 movs r1, #0x18 bl sub_08004260 ldr r0, [r4, #0x54] movs r1, #9 bl sub_080042AC ldr r0, _0803A248 @ =0x00000127 bl sub_080A3268 _0803A23E: ldr r1, _0803A24C @ =gUnk_080CFC14 adds r0, r4, #0 bl sub_0804AA30 pop {r4, r5, pc} .align 2, 0 _0803A248: .4byte 0x00000127 _0803A24C: .4byte gUnk_080CFC14 thumb_func_start nullsub_167 nullsub_167: @ 0x0803A250 bx lr .align 2, 0 thumb_func_start sub_0803A254 sub_0803A254: @ 0x0803A254 push {r4, lr} adds r4, r0, #0 ldr r1, _0803A270 @ =gUnk_080CFC3C ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0803B538 pop {r4, pc} .align 2, 0 _0803A270: .4byte gUnk_080CFC3C thumb_func_start sub_0803A274 sub_0803A274: @ 0x0803A274 push {r4, lr} adds r4, r0, #0 ldr r0, _0803A2C8 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x44 bhi _0803A360 ldrb r0, [r4, #0xa] cmp r0, #0 bne _0803A2CC movs r0, #0x38 movs r1, #0 bl sub_0804AA60 adds r1, r0, #0 str r4, [r1, #0x50] str r1, [r4, #0x54] movs r0, #0x44 movs r1, #2 bl sub_0804AA60 adds r1, r0, #0 str r4, [r1, #0x50] str r1, [r4, #0x74] movs r0, #0x7e movs r1, #1 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 str r4, [r1, #0x50] ldr r0, [r4, #0x54] str r0, [r1, #0x54] ldr r0, [r4, #0x50] movs r2, #0x80 lsls r2, r2, #0xd movs r3, #0x80 lsls r3, r3, #0xe adds r1, r4, #0 bl sub_0806FA48 b _0803A310 .align 2, 0 _0803A2C8: .4byte gUnk_03003DBC _0803A2CC: movs r0, #0x38 movs r1, #1 bl sub_0804AA60 adds r1, r0, #0 str r4, [r1, #0x50] str r1, [r4, #0x54] movs r0, #0x44 movs r1, #3 bl sub_0804AA60 adds r1, r0, #0 str r4, [r1, #0x50] str r1, [r4, #0x74] movs r0, #0x7e movs r1, #2 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 str r4, [r1, #0x50] ldr r0, [r4, #0x54] str r0, [r1, #0x54] ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x18] ldr r0, [r4, #0x50] ldr r2, _0803A34C @ =0xFFF00000 movs r3, #0x80 lsls r3, r3, #0xe adds r1, r4, #0 bl sub_0806FA48 _0803A310: ldr r0, _0803A350 @ =gUnk_030010A0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #0 beq _0803A354 movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldrb r2, [r4, #0x18] movs r1, #4 rsbs r1, r1, #0 adds r0, r1, #0 ands r0, r2 movs r3, #1 orrs r0, r3 strb r0, [r4, #0x18] ldr r2, [r4, #0x54] ldrb r0, [r2, #0x18] ands r1, r0 orrs r1, r3 strb r1, [r2, #0x18] adds r0, r4, #0 movs r1, #0x10 bl sub_08004260 b _0803A360 .align 2, 0 _0803A34C: .4byte 0xFFF00000 _0803A350: .4byte gUnk_030010A0 _0803A354: movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #4 bl sub_08004260 _0803A360: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803A364 sub_0803A364: @ 0x0803A364 push {r4, lr} adds r4, r0, #0 ldr r2, _0803A3A0 @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] ldrb r0, [r4, #0xd] movs r1, #0x7f ands r1, r0 cmp r1, #0xb bls _0803A394 b _0803A52C _0803A394: lsls r0, r1, #2 ldr r1, _0803A3A4 @ =_0803A3A8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803A3A0: .4byte gUnk_080CED6C _0803A3A4: .4byte _0803A3A8 _0803A3A8: @ jump table .4byte _0803A546 @ case 0 .4byte _0803A3D8 @ case 1 .4byte _0803A546 @ case 2 .4byte _0803A3FA @ case 3 .4byte _0803A418 @ case 4 .4byte _0803A434 @ case 5 .4byte _0803A44E @ case 6 .4byte _0803A468 @ case 7 .4byte _0803A49A @ case 8 .4byte _0803A4B2 @ case 9 .4byte _0803A4CC @ case 10 .4byte _0803A4FA @ case 11 _0803A3D8: movs r0, #2 strb r0, [r4, #0xd] ldr r2, [r4, #0x54] ldrb r1, [r2, #0x18] subs r0, #6 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] ldrb r1, [r2, #0x19] movs r0, #0xd rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2, #0x19] b _0803A546 _0803A3FA: movs r0, #4 strb r0, [r4, #0xd] ldrb r1, [r4, #0x18] subs r0, #8 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] ldr r2, [r4, #0x54] ldrb r1, [r2, #0x19] movs r0, #0xd rsbs r0, r0, #0 ands r0, r1 strb r0, [r2, #0x19] b _0803A546 _0803A418: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0803A42E b _0803A546 _0803A42E: movs r0, #5 strb r0, [r4, #0xd] b _0803A546 _0803A434: adds r0, r4, #0 bl sub_0803B4E4 cmp r0, #0 bne _0803A446 adds r0, r4, #0 bl sub_0806F69C b _0803A546 _0803A446: movs r0, #0 strb r0, [r4, #0xb] movs r0, #6 b _0803A516 _0803A44E: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803A546 movs r0, #7 strb r0, [r4, #0xd] adds r0, r4, #0 movs r1, #5 bl sub_08004260 b _0803A546 _0803A468: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803A546 movs r0, #8 strb r0, [r4, #0xd] ldrb r1, [r4, #0x18] subs r0, #0xc ands r0, r1 strb r0, [r4, #0x18] ldr r0, [r4, #0x54] movs r1, #8 bl sub_080042AC movs r0, #0xb7 lsls r0, r0, #1 bl sub_080A3268 b _0803A546 _0803A49A: adds r0, r4, #0 bl sub_0803B55C ldr r0, [r4, #0x54] adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803A546 movs r0, #9 b _0803A516 _0803A4B2: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803A546 movs r0, #0xa strb r0, [r4, #0xd] ldr r0, [r4, #0x54] movs r1, #6 bl sub_080042AC b _0803A546 _0803A4CC: adds r0, r4, #0 bl sub_0803B55C ldr r0, [r4, #0x54] adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803A546 movs r0, #0xb strb r0, [r4, #0xd] ldrb r1, [r4, #0x18] subs r0, #0xf ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 bl sub_08004260 b _0803A546 _0803A4FA: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803A546 ldrb r0, [r4, #0xb] cmp r0, #0 beq _0803A51E movs r0, #0xc _0803A516: strb r0, [r4, #0xd] movs r0, #0x1e strb r0, [r4, #0xe] b _0803A546 _0803A51E: movs r0, #1 strb r0, [r4, #0xb] movs r0, #6 strb r0, [r4, #0xd] movs r0, #0xa strb r0, [r4, #0xe] b _0803A546 _0803A52C: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803A546 ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 bl sub_0803B4D4 _0803A546: pop {r4, pc} thumb_func_start sub_0803A548 sub_0803A548: @ 0x0803A548 push {r4, lr} adds r4, r0, #0 bl sub_0803B5C0 adds r0, r4, #0 bl sub_080042B8 ldr r2, _0803A588 @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_0803B4E4 cmp r0, #0 bne _0803A586 adds r0, r4, #0 bl sub_0806F69C _0803A586: pop {r4, pc} .align 2, 0 _0803A588: .4byte gUnk_080CED6C thumb_func_start sub_0803A58C sub_0803A58C: @ 0x0803A58C push {r4, lr} adds r4, r0, #0 ldr r2, _0803A5C4 @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_0803B4E4 cmp r0, #0 beq _0803A5C8 adds r0, r4, #0 bl sub_0803B59C b _0803A5CE .align 2, 0 _0803A5C4: .4byte gUnk_080CED6C _0803A5C8: adds r0, r4, #0 bl sub_0806F69C _0803A5CE: pop {r4, pc} thumb_func_start sub_0803A5D0 sub_0803A5D0: @ 0x0803A5D0 push {lr} movs r1, #5 strb r1, [r0, #0xc] ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] ldr r3, _0803A608 @ =gUnk_080CED6C ldr r1, [r0, #0x50] ldrb r1, [r1, #0xf] lsrs r1, r1, #4 adds r1, #3 ldrb r2, [r0, #0xa] lsls r2, r2, #1 adds r1, r1, r2 movs r2, #7 ands r1, r2 adds r1, r1, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r1, #4 strh r1, [r0, #0x36] movs r1, #5 bl sub_08004260 pop {pc} .align 2, 0 _0803A608: .4byte gUnk_080CED6C thumb_func_start sub_0803A60C sub_0803A60C: @ 0x0803A60C push {r4, lr} adds r4, r0, #0 ldr r2, _0803A65C @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803A658 movs r0, #6 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #0xa ands r0, r1 strb r0, [r4, #0x18] ldr r0, [r4, #0x54] movs r1, #8 bl sub_080042AC _0803A658: pop {r4, pc} .align 2, 0 _0803A65C: .4byte gUnk_080CED6C thumb_func_start sub_0803A660 sub_0803A660: @ 0x0803A660 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r0, [r4, #0x54] adds r5, r0, #0 adds r5, #0x5a ldrb r1, [r5] movs r6, #0x80 adds r0, r6, #0 ands r0, r1 cmp r0, #0 beq _0803A6A8 ldrh r2, [r4, #0x36] movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #0x50 rsbs r0, r0, #0 cmp r1, r0 ble _0803A688 subs r0, r2, #2 b _0803A6DC _0803A688: movs r1, #0 movs r0, #7 strb r0, [r4, #0xc] strb r1, [r4, #0xe] ldr r1, _0803A6A4 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] movs r0, #0xa0 lsls r0, r0, #2 strh r0, [r4, #0x24] b _0803A6DE .align 2, 0 _0803A6A4: .4byte gUnk_03001160 _0803A6A8: adds r0, r4, #0 bl sub_0803B55C ldrb r1, [r5] adds r0, r6, #0 ands r0, r1 cmp r0, #0 beq _0803A6BE ldr r0, _0803A6E0 @ =0x00000157 bl sub_080A3268 _0803A6BE: ldr r2, _0803A6E4 @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 _0803A6DC: strh r0, [r4, #0x36] _0803A6DE: pop {r4, r5, r6, pc} .align 2, 0 _0803A6E0: .4byte 0x00000157 _0803A6E4: .4byte gUnk_080CED6C thumb_func_start sub_0803A6E8 sub_0803A6E8: @ 0x0803A6E8 push {r4, lr} adds r4, r0, #0 bl sub_0803B610 cmp r0, #0 beq _0803A6FE movs r0, #8 strb r0, [r4, #0xc] movs r0, #0xa strb r0, [r4, #0xe] b _0803A71E _0803A6FE: adds r0, r4, #0 bl sub_0803B63C adds r0, r4, #0 bl sub_0806F69C ldr r0, [r4, #0x50] movs r1, #0x32 ldrsh r0, [r0, r1] adds r1, r0, #0 adds r1, #8 movs r2, #0x32 ldrsh r0, [r4, r2] cmp r1, r0 ble _0803A71E strh r1, [r4, #0x32] _0803A71E: pop {r4, pc} thumb_func_start sub_0803A720 sub_0803A720: @ 0x0803A720 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 _0803A73C movs r0, #9 strb r0, [r1, #0xc] adds r0, r1, #0 movs r1, #0x16 bl sub_0803B8E8 _0803A73C: pop {pc} .align 2, 0 thumb_func_start sub_0803A740 sub_0803A740: @ 0x0803A740 push {lr} adds r3, r0, #0 ldrh r0, [r3, #0x36] adds r0, #4 strh r0, [r3, #0x36] lsls r0, r0, #0x10 cmp r0, #0 blt _0803A77E movs r0, #0 strh r0, [r3, #0x36] movs r0, #0xa strb r0, [r3, #0xc] strb r0, [r3, #0xe] ldr r1, [r3, #0x50] adds r1, #0x7d ldrb r2, [r1] movs r0, #0x40 orrs r0, r2 strb r0, [r1] adds r0, r3, #0 movs r1, #0x13 bl sub_0803B8E8 movs r0, #0xa movs r1, #0 bl sub_08080964 movs r0, #0xac lsls r0, r0, #1 bl sub_080A3268 _0803A77E: pop {pc} thumb_func_start sub_0803A780 sub_0803A780: @ 0x0803A780 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xe] subs r0, #1 strb r0, [r2, #0xe] movs r3, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _0803A7AA adds r1, r2, #0 adds r1, #0x7c ldrb r0, [r1] subs r0, #1 strb r0, [r1] ands r0, r3 cmp r0, #0 beq _0803A7A6 movs r0, #6 b _0803A7A8 _0803A7A6: movs r0, #0xb _0803A7A8: strb r0, [r2, #0xc] _0803A7AA: pop {pc} thumb_func_start sub_0803A7AC sub_0803A7AC: @ 0x0803A7AC push {lr} adds r2, r0, #0 ldrh r3, [r2, #0x36] movs r0, #0x36 ldrsh r1, [r2, r0] movs r0, #6 rsbs r0, r0, #0 cmp r1, r0 ble _0803A7C4 subs r0, r3, #1 strh r0, [r2, #0x36] b _0803A7C8 _0803A7C4: movs r0, #0xc strb r0, [r2, #0xc] _0803A7C8: pop {pc} .align 2, 0 thumb_func_start sub_0803A7CC sub_0803A7CC: @ 0x0803A7CC push {r4, lr} adds r4, r0, #0 ldr r2, _0803A808 @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_0803B4E4 cmp r0, #0 beq _0803A80C movs r0, #0xd strb r0, [r4, #0xc] ldr r0, [r4, #0x54] movs r1, #6 bl sub_080042AC b _0803A812 .align 2, 0 _0803A808: .4byte gUnk_080CED6C _0803A80C: adds r0, r4, #0 bl sub_0806F69C _0803A812: pop {r4, pc} thumb_func_start sub_0803A814 sub_0803A814: @ 0x0803A814 push {r4, lr} adds r4, r0, #0 ldr r2, _0803A868 @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_0803B55C ldr r0, [r4, #0x54] adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803A864 movs r0, #0xe strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #0x12 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 bl sub_08004260 _0803A864: pop {r4, pc} .align 2, 0 _0803A868: .4byte gUnk_080CED6C thumb_func_start sub_0803A86C sub_0803A86C: @ 0x0803A86C push {r4, lr} adds r4, r0, #0 ldr r2, _0803A8B4 @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803A8B2 ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 bl sub_0803B59C _0803A8B2: pop {r4, pc} .align 2, 0 _0803A8B4: .4byte gUnk_080CED6C thumb_func_start sub_0803A8B8 sub_0803A8B8: @ 0x0803A8B8 push {r4, lr} adds r4, r0, #0 movs r1, #0 movs r0, #0x10 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] strb r1, [r4, #0x15] movs r0, #0x80 strh r0, [r4, #0x24] ldr r2, _0803A904 @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] adds r0, r4, #0 movs r1, #6 bl sub_08004260 ldr r0, [r4, #0x54] movs r1, #1 bl sub_080042AC ldr r0, _0803A908 @ =0x00000153 bl sub_080A3268 pop {r4, pc} .align 2, 0 _0803A904: .4byte gUnk_080CED6C _0803A908: .4byte 0x00000153 thumb_func_start sub_0803A90C sub_0803A90C: @ 0x0803A90C push {r4, lr} adds r4, r0, #0 ldr r2, _0803A974 @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0803B55C adds r0, r4, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803A970 movs r0, #0x11 strb r0, [r4, #0xc] ldrb r0, [r4, #0xa] lsls r0, r0, #4 adds r0, #8 strb r0, [r4, #0x15] movs r0, #0x80 lsls r0, r0, #2 strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #7 bl sub_08004260 ldr r0, [r4, #0x54] movs r1, #2 bl sub_080042AC _0803A970: pop {r4, pc} .align 2, 0 _0803A974: .4byte gUnk_080CED6C thumb_func_start sub_0803A978 sub_0803A978: @ 0x0803A978 push {r4, lr} adds r4, r0, #0 ldr r2, _0803A9FC @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0803B55C ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] movs r1, #0xff ands r0, r1 movs r1, #3 ands r0, r1 cmp r0, #0 bne _0803A9C2 adds r0, r4, #0 movs r1, #0x10 bl sub_08004596 _0803A9C2: adds r0, r4, #0 bl sub_0806F69C ldrb r0, [r4, #0x15] cmp r0, #0x10 bne _0803A9F8 movs r0, #0x12 strb r0, [r4, #0xc] movs r0, #3 strb r0, [r4, #0xe] ldrb r2, [r4, #0x10] movs r1, #0x7f adds r0, r1, #0 ands r0, r2 strb r0, [r4, #0x10] ldr r2, [r4, #0x74] ldrb r0, [r2, #0x10] ands r1, r0 strb r1, [r2, #0x10] adds r0, r4, #0 movs r1, #8 bl sub_08004260 ldr r0, [r4, #0x54] movs r1, #3 bl sub_080042AC _0803A9F8: pop {r4, pc} .align 2, 0 _0803A9FC: .4byte gUnk_080CED6C thumb_func_start sub_0803AA00 sub_0803AA00: @ 0x0803AA00 push {r4, r5, lr} adds r4, r0, #0 ldr r2, _0803AA90 @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_0803B870 cmp r0, #0 bne _0803AA8E ldrb r1, [r4, #0xa] movs r0, #1 eors r0, r1 lsls r0, r0, #4 adds r5, r0, #0 adds r5, #8 ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] movs r1, #0xff ands r0, r1 movs r1, #3 ands r0, r1 cmp r0, #0 bne _0803AA54 adds r0, r4, #0 adds r1, r5, #0 bl sub_08004596 _0803AA54: adds r0, r4, #0 bl sub_0806F69C ldrb r0, [r4, #0x15] cmp r0, r5 beq _0803AA6E ldr r0, _0803AA94 @ =gUnk_03001160 movs r2, #0x32 ldrsh r1, [r4, r2] movs r2, #0x32 ldrsh r0, [r0, r2] cmp r1, r0 blt _0803AA8E _0803AA6E: movs r0, #0x13 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #0x17 ands r0, r1 strb r0, [r4, #0x18] strb r5, [r4, #0x15] ldr r0, _0803AA94 @ =gUnk_03001160 ldrh r1, [r0, #0x2e] adds r0, r4, #0 adds r0, #0x80 strh r1, [r0] ldr r0, [r4, #0x54] movs r1, #4 bl sub_080042AC _0803AA8E: pop {r4, r5, pc} .align 2, 0 _0803AA90: .4byte gUnk_080CED6C _0803AA94: .4byte gUnk_03001160 thumb_func_start sub_0803AA98 sub_0803AA98: @ 0x0803AA98 push {r4, lr} adds r4, r0, #0 ldr r2, _0803AB0C @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_0803B870 cmp r0, #0 bne _0803AB0A adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_0803B6F4 cmp r0, #0 beq _0803AB0A movs r0, #0x14 strb r0, [r4, #0xc] movs r0, #0x40 strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #0xa bl sub_08004260 ldr r2, [r4, #0x74] ldrb r1, [r2, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x10] ldr r2, [r4, #0x54] adds r1, r2, #0 adds r1, #0x3f movs r0, #0x13 strb r0, [r1] adds r0, r2, #0 movs r1, #5 bl sub_080042AC movs r0, #0xb7 lsls r0, r0, #1 bl sub_080A3268 _0803AB0A: pop {r4, pc} .align 2, 0 _0803AB0C: .4byte gUnk_080CED6C thumb_func_start sub_0803AB10 sub_0803AB10: @ 0x0803AB10 push {r4, lr} adds r4, r0, #0 ldr r2, _0803AB58 @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_0803B55C ldr r0, [r4, #0x54] adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803AB56 movs r0, #0x15 strb r0, [r4, #0xc] movs r0, #0xf strb r0, [r4, #0xe] _0803AB56: pop {r4, pc} .align 2, 0 _0803AB58: .4byte gUnk_080CED6C thumb_func_start sub_0803AB5C sub_0803AB5C: @ 0x0803AB5C push {r4, lr} adds r4, r0, #0 ldr r2, _0803ABB0 @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803ABAC movs r0, #0x16 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #0x1a ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0xb bl sub_08004260 ldr r0, [r4, #0x54] movs r1, #6 bl sub_080042AC _0803ABAC: pop {r4, pc} .align 2, 0 _0803ABB0: .4byte gUnk_080CED6C thumb_func_start sub_0803ABB4 sub_0803ABB4: @ 0x0803ABB4 push {r4, lr} adds r4, r0, #0 ldr r2, _0803AC18 @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0803B55C ldr r0, [r4, #0x54] adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803AC14 movs r0, #0x17 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #0x10 bl sub_08004260 ldr r0, [r4, #0x54] movs r1, #0 bl sub_080042AC _0803AC14: pop {r4, pc} .align 2, 0 _0803AC18: .4byte gUnk_080CED6C thumb_func_start sub_0803AC1C sub_0803AC1C: @ 0x0803AC1C push {r4, lr} adds r4, r0, #0 ldr r2, _0803AC54 @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_0803B4E4 cmp r0, #0 beq _0803AC58 adds r0, r4, #0 bl sub_0803B59C b _0803AC5E .align 2, 0 _0803AC54: .4byte gUnk_080CED6C _0803AC58: adds r0, r4, #0 bl sub_0806F69C _0803AC5E: pop {r4, pc} thumb_func_start sub_0803AC60 sub_0803AC60: @ 0x0803AC60 push {r4, lr} adds r4, r0, #0 ldr r2, _0803ACA8 @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0xe] cmp r0, #0 bne _0803ACB4 adds r0, r4, #0 bl sub_0803B4E4 cmp r0, #0 beq _0803ACAC movs r0, #0x19 strb r0, [r4, #0xc] movs r0, #0 strb r0, [r4, #0xd] movs r0, #0x1e b _0803ACB6 .align 2, 0 _0803ACA8: .4byte gUnk_080CED6C _0803ACAC: adds r0, r4, #0 bl sub_0806F69C b _0803ACB8 _0803ACB4: subs r0, #1 _0803ACB6: strb r0, [r4, #0xe] _0803ACB8: adds r0, r4, #0 bl sub_0803B824 pop {r4, pc} thumb_func_start sub_0803ACC0 sub_0803ACC0: @ 0x0803ACC0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] subs r0, #1 cmp r0, #4 bhi _0803ACF0 lsls r0, r0, #2 ldr r1, _0803ACD8 @ =_0803ACDC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803ACD8: .4byte _0803ACDC _0803ACDC: @ jump table .4byte _0803AD02 @ case 0 .4byte _0803AD1A @ case 1 .4byte _0803AD4A @ case 2 .4byte _0803AD5C @ case 3 .4byte _0803AD74 @ case 4 _0803ACF0: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803ADA4 movs r0, #1 strb r0, [r4, #0xd] b _0803ADA4 _0803AD02: ldrh r0, [r4, #0x36] subs r0, #1 strh r0, [r4, #0x36] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x20 rsbs r1, r1, #0 cmp r0, r1 bge _0803ADA4 movs r0, #2 strb r0, [r4, #0xd] b _0803ADA4 _0803AD1A: ldrh r0, [r4, #0x36] adds r0, #4 strh r0, [r4, #0x36] lsls r0, r0, #0x10 cmp r0, #0 blt _0803ADA4 movs r0, #0 strh r0, [r4, #0x36] movs r0, #0xc strb r0, [r4, #0xe] movs r0, #3 strb r0, [r4, #0xd] movs r0, #8 movs r1, #0 bl sub_08080964 movs r0, #0xac lsls r0, r0, #1 bl sub_080A3268 adds r0, r4, #0 bl sub_0803B804 b _0803ADA4 _0803AD4A: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803ADA4 movs r0, #4 strb r0, [r4, #0xd] b _0803ADA4 _0803AD5C: ldrh r0, [r4, #0x36] subs r0, #2 strh r0, [r4, #0x36] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x28 rsbs r1, r1, #0 cmp r0, r1 bge _0803ADA4 movs r0, #5 strb r0, [r4, #0xd] b _0803ADA4 _0803AD74: ldrh r0, [r4, #0x36] adds r0, #4 strh r0, [r4, #0x36] lsls r0, r0, #0x10 cmp r0, #0 blt _0803ADA4 movs r0, #0 strh r0, [r4, #0x36] movs r0, #0x1a strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] movs r0, #0x1e movs r1, #0 bl sub_08080964 movs r0, #0xac lsls r0, r0, #1 bl sub_080A3268 adds r0, r4, #0 bl sub_0803B804 b _0803ADAA _0803ADA4: adds r0, r4, #0 bl sub_0803B824 _0803ADAA: pop {r4, pc} thumb_func_start sub_0803ADAC sub_0803ADAC: @ 0x0803ADAC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803ADEC movs r0, #0x16 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #0x1a ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] ldr r2, [r4, #0x74] ldrb r0, [r2, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r2, #0x10] adds r0, r4, #0 movs r1, #0xb bl sub_08004260 ldr r0, [r4, #0x54] movs r1, #6 bl sub_080042AC bl sub_0803B798 b _0803ADF2 _0803ADEC: adds r0, r4, #0 bl sub_0803B824 _0803ADF2: pop {r4, pc} thumb_func_start sub_0803ADF4 sub_0803ADF4: @ 0x0803ADF4 push {r4, lr} adds r4, r0, #0 ldr r2, _0803AE44 @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803AE42 movs r0, #0x1c strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #0x22 ands r0, r1 strb r0, [r4, #0x18] _0803AE42: pop {r4, pc} .align 2, 0 _0803AE44: .4byte gUnk_080CED6C thumb_func_start sub_0803AE48 sub_0803AE48: @ 0x0803AE48 push {r4, lr} adds r4, r0, #0 ldr r2, _0803AEAC @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_080042B8 ldrb r0, [r4, #0xe] cmp r0, #0 beq _0803AE82 subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803AEB0 _0803AE82: ldr r0, [r4, #0x50] adds r0, #0x7d ldrb r1, [r0] movs r0, #3 ands r0, r1 cmp r0, #0 beq _0803AEB0 movs r0, #0x1d strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #0x21 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 bl sub_08004260 b _0803AEC0 .align 2, 0 _0803AEAC: .4byte gUnk_080CED6C _0803AEB0: adds r0, r4, #0 bl sub_0803B4E4 cmp r0, #0 bne _0803AEC0 adds r0, r4, #0 bl sub_0806F69C _0803AEC0: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803AEC4 sub_0803AEC4: @ 0x0803AEC4 push {r4, lr} adds r4, r0, #0 ldr r2, _0803AF14 @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803AF10 ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 bl sub_0803B59C _0803AF10: pop {r4, pc} .align 2, 0 _0803AF14: .4byte gUnk_080CED6C thumb_func_start sub_0803AF18 sub_0803AF18: @ 0x0803AF18 push {r4, lr} adds r4, r0, #0 movs r0, #0x1f strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #5 bl sub_08004260 ldr r2, _0803AF4C @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] pop {r4, pc} .align 2, 0 _0803AF4C: .4byte gUnk_080CED6C thumb_func_start sub_0803AF50 sub_0803AF50: @ 0x0803AF50 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803AF7A movs r0, #0x20 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #0x24 ands r0, r1 strb r0, [r4, #0x18] ldr r0, [r4, #0x54] movs r1, #8 bl sub_080042AC _0803AF7A: pop {r4, pc} thumb_func_start sub_0803AF7C sub_0803AF7C: @ 0x0803AF7C push {r4, lr} adds r4, r0, #0 bl sub_0803B55C ldr r0, [r4, #0x54] adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803AF9A movs r0, #0x21 strb r0, [r4, #0xc] movs r0, #0xf strb r0, [r4, #0xe] _0803AF9A: pop {r4, pc} thumb_func_start sub_0803AF9C sub_0803AF9C: @ 0x0803AF9C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xe] cmp r0, #0 beq _0803AFAA subs r0, #1 b _0803AFC4 _0803AFAA: ldrh r3, [r2, #0x36] movs r0, #0x36 ldrsh r1, [r2, r0] movs r0, #0x20 rsbs r0, r0, #0 cmp r1, r0 ble _0803AFBE subs r0, r3, #2 strh r0, [r2, #0x36] b _0803AFC6 _0803AFBE: movs r0, #0x22 strb r0, [r2, #0xc] movs r0, #0xa _0803AFC4: strb r0, [r2, #0xe] _0803AFC6: pop {pc} thumb_func_start sub_0803AFC8 sub_0803AFC8: @ 0x0803AFC8 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 _0803AFDC movs r0, #0x23 strb r0, [r1, #0xc] _0803AFDC: pop {pc} .align 2, 0 thumb_func_start sub_0803AFE0 sub_0803AFE0: @ 0x0803AFE0 push {lr} adds r3, r0, #0 ldrh r1, [r3, #0x36] movs r2, #0x36 ldrsh r0, [r3, r2] cmp r0, #0 bge _0803AFF4 adds r0, r1, #4 strh r0, [r3, #0x36] b _0803B018 _0803AFF4: movs r2, #0 movs r0, #0x24 strb r0, [r3, #0xc] movs r0, #0xf0 strb r0, [r3, #0xe] adds r1, r3, #0 adds r1, #0x84 movs r0, #3 strb r0, [r1] strh r2, [r3, #0x36] movs r0, #0xa0 movs r1, #0 bl sub_08080964 movs r0, #0xac lsls r0, r0, #1 bl sub_080A3268 _0803B018: pop {pc} .align 2, 0 thumb_func_start sub_0803B01C sub_0803B01C: @ 0x0803B01C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xe] subs r1, r0, #1 strb r1, [r2, #0xe] lsls r0, r1, #0x18 cmp r0, #0 bne _0803B032 movs r0, #0x25 strb r0, [r2, #0xc] b _0803B048 _0803B032: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x46 bls _0803B048 movs r0, #0xf ands r1, r0 cmp r1, #0 bne _0803B048 adds r0, r2, #0 bl sub_0803B724 _0803B048: pop {pc} .align 2, 0 thumb_func_start sub_0803B04C sub_0803B04C: @ 0x0803B04C push {lr} adds r2, r0, #0 ldrh r3, [r2, #0x36] movs r0, #0x36 ldrsh r1, [r2, r0] movs r0, #6 rsbs r0, r0, #0 cmp r1, r0 ble _0803B064 subs r0, r3, #1 strh r0, [r2, #0x36] b _0803B070 _0803B064: movs r0, #0x26 strb r0, [r2, #0xc] ldr r0, [r2, #0x54] movs r1, #6 bl sub_080042AC _0803B070: pop {pc} .align 2, 0 thumb_func_start sub_0803B074 sub_0803B074: @ 0x0803B074 push {r4, lr} adds r4, r0, #0 ldr r2, _0803B0D0 @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_0803B55C ldr r0, [r4, #0x54] adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803B0CC movs r0, #0x27 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #0x2b ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 bl sub_08004260 ldr r0, [r4, #0x54] movs r1, #0 bl sub_080042AC _0803B0CC: pop {r4, pc} .align 2, 0 _0803B0D0: .4byte gUnk_080CED6C thumb_func_start sub_0803B0D4 sub_0803B0D4: @ 0x0803B0D4 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803B0FE ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 bl sub_0803B59C _0803B0FE: pop {r4, pc} thumb_func_start sub_0803B100 sub_0803B100: @ 0x0803B100 push {lr} adds r2, r0, #0 movs r0, #0x29 strb r0, [r2, #0xc] movs r0, #0xa0 lsls r0, r0, #9 str r0, [r2, #0x20] ldrb r0, [r2, #0xa] cmp r0, #0 bne _0803B11C ldr r0, _0803B118 @ =gUnk_080FD364 b _0803B11E .align 2, 0 _0803B118: .4byte gUnk_080FD364 _0803B11C: ldr r0, _0803B13C @ =gUnk_080FD374 _0803B11E: str r0, [r2, #0x48] ldr r0, [r2, #0x74] movs r1, #3 strb r1, [r0, #0xc] adds r0, #0x74 movs r1, #0x20 strb r1, [r0] ldr r0, [r2, #0x54] movs r1, #9 bl sub_080042AC ldr r0, _0803B140 @ =0x0000014F bl sub_080A3268 pop {pc} .align 2, 0 _0803B13C: .4byte gUnk_080FD374 _0803B140: .4byte 0x0000014F thumb_func_start sub_0803B144 sub_0803B144: @ 0x0803B144 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x54] bl sub_080042B8 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _0803B178 movs r0, #0x2a strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0x16 bl sub_08004260 adds r0, r4, #0 movs r1, #0x14 bl sub_0803B8E8 movs r0, #8 movs r1, #0 bl sub_08080964 _0803B178: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803B17C sub_0803B17C: @ 0x0803B17C push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803B1B4 movs r0, #0x2b strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x18 strb r0, [r1] adds r1, #6 movs r0, #0xff strb r0, [r1] adds r1, #0x39 movs r0, #0x96 lsls r0, r0, #2 strh r0, [r1] _0803B1B4: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803B1B8 sub_0803B1B8: @ 0x0803B1B8 push {r4, r5, lr} adds r5, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0803B1D4 adds r0, r5, #0 bl sub_08004274 ldr r0, [r5, #0x54] bl sub_080042B8 _0803B1D4: adds r0, r5, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0xf4 bhi _0803B2B8 movs r0, #0x32 strb r0, [r5, #0xc] adds r1, r5, #0 adds r1, #0x7e ldr r0, _0803B284 @ =0x000005DC strh r0, [r1] ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r5, #0x18] adds r1, r5, #0 adds r1, #0x3f movs r0, #0x14 strb r0, [r1] adds r0, r5, #0 movs r1, #0x51 movs r2, #0 bl sub_080A29AC adds r4, r0, #0 cmp r4, #0 beq _0803B23A ldr r0, [r5, #0x48] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r4, #0x2e] adds r0, r0, r1 strh r0, [r4, #0x2e] ldr r0, [r5, #0x48] ldrb r0, [r0, #1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r4, #0x32] adds r0, r0, r1 strh r0, [r4, #0x32] 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] _0803B23A: movs r0, #0 movs r1, #0x5e movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _0803B268 movs r0, #0 strb r0, [r4, #0xe] movs r0, #0x90 strb r0, [r4, #0x15] ldr r0, [r5, #0x48] movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #0x10 movs r3, #1 ldrsb r3, [r0, r3] lsls r3, r3, #0x10 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA48 _0803B268: ldr r4, [r5, #0x74] adds r1, r4, #0 adds r1, #0x74 movs r0, #0x40 strb r0, [r1] ldr r4, [r5, #0x50] adds r0, r4, #0 adds r0, #0x80 ldrb r1, [r0] ldrb r0, [r5, #0xa] cmp r0, #0 bne _0803B288 movs r0, #4 b _0803B28A .align 2, 0 _0803B284: .4byte 0x000005DC _0803B288: movs r0, #8 _0803B28A: orrs r1, r0 adds r0, r4, #0 adds r0, #0x80 strb r1, [r0] movs r0, #0xc ands r0, r1 cmp r0, #0xc bne _0803B2CE movs r0, #0xb strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xe] movs r0, #0 str r0, [r4, #0x20] ldr r0, [r4, #0x74] adds r0, #0x7e movs r1, #0xe1 lsls r1, r1, #3 strh r1, [r0] ldr r0, [r4, #0x78] adds r0, #0x7e strh r1, [r0] b _0803B2CE _0803B2B8: adds r1, r5, #0 adds r1, #0x7e ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0803B2CE adds r0, r5, #0 bl sub_0803B6A4 _0803B2CE: pop {r4, r5, pc} thumb_func_start sub_0803B2D0 sub_0803B2D0: @ 0x0803B2D0 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803B30A movs r2, #0 movs r0, #0x2d strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #0x31 ands r0, r1 strb r0, [r4, #0x18] ldr r0, [r4, #0x74] movs r1, #2 strb r1, [r0, #0xc] adds r1, r0, #0 adds r1, #0x74 strb r2, [r1] adds r1, #4 strh r2, [r1] movs r1, #3 bl sub_08004260 _0803B30A: pop {r4, pc} thumb_func_start sub_0803B30C sub_0803B30C: @ 0x0803B30C push {r4, lr} adds r2, r0, #0 ldr r4, [r2, #0x74] adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803B334 movs r0, #0x2e strb r0, [r2, #0xc] adds r0, r2, #0 movs r1, #0x13 bl sub_0803B8E8 adds r0, r4, #0 movs r1, #0 bl sub_08004260 _0803B334: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803B338 sub_0803B338: @ 0x0803B338 push {lr} adds r2, r0, #0 ldrh r3, [r2, #0x36] movs r0, #0x36 ldrsh r1, [r2, r0] movs r0, #0xa rsbs r0, r0, #0 cmp r1, r0 ble _0803B350 subs r0, r3, #1 strh r0, [r2, #0x36] b _0803B358 _0803B350: movs r0, #0x2f strb r0, [r2, #0xc] movs r0, #0xf strb r0, [r2, #0xe] _0803B358: pop {pc} .align 2, 0 thumb_func_start sub_0803B35C sub_0803B35C: @ 0x0803B35C push {lr} adds r3, r0, #0 ldr r2, _0803B394 @ =gUnk_080CED6C ldr r0, [r3, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r3, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r3, #0x36] ldrb r0, [r3, #0xe] subs r0, #1 strb r0, [r3, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803B390 movs r0, #0x30 strb r0, [r3, #0xc] _0803B390: pop {pc} .align 2, 0 _0803B394: .4byte gUnk_080CED6C thumb_func_start sub_0803B398 sub_0803B398: @ 0x0803B398 push {r4, lr} adds r4, r0, #0 ldr r2, _0803B3E8 @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_0803B4E4 cmp r0, #0 beq _0803B3EC movs r0, #0x31 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #0x35 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 bl sub_08004260 ldr r0, [r4, #0x54] movs r1, #0 bl sub_080042AC b _0803B3F2 .align 2, 0 _0803B3E8: .4byte gUnk_080CED6C _0803B3EC: adds r0, r4, #0 bl sub_0806F69C _0803B3F2: pop {r4, pc} thumb_func_start sub_0803B3F4 sub_0803B3F4: @ 0x0803B3F4 push {r4, r5, lr} adds r4, r0, #0 ldr r2, _0803B440 @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] lsrs r0, r0, #4 adds r0, #3 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r0, r0, r1 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803B47C adds r1, r4, #0 adds r1, #0x3f movs r0, #0x17 strb r0, [r1] ldrb r0, [r4, #0xa] cmp r0, #0 bne _0803B448 ldr r0, _0803B444 @ =gUnk_080FD35C b _0803B44A .align 2, 0 _0803B440: .4byte gUnk_080CED6C _0803B444: .4byte gUnk_080FD35C _0803B448: ldr r0, _0803B468 @ =gUnk_080FD36C _0803B44A: str r0, [r4, #0x48] ldr r0, [r4, #0x50] ldrb r2, [r4, #0xa] movs r1, #2 cmp r2, #0 bne _0803B458 movs r1, #1 _0803B458: adds r0, #0x80 ldrb r3, [r0] adds r5, r0, #0 cmp r2, #0 bne _0803B46C movs r0, #0x10 b _0803B46E .align 2, 0 _0803B468: .4byte gUnk_080FD36C _0803B46C: movs r0, #0x20 _0803B46E: orrs r1, r0 adds r0, r3, #0 bics r0, r1 strb r0, [r5] adds r0, r4, #0 bl sub_0803B59C _0803B47C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0803B480 sub_0803B480: @ 0x0803B480 push {r4, lr} adds r4, r0, #0 adds r0, #0x7e ldrh r1, [r0] movs r0, #0x1f ands r0, r1 cmp r0, #0 bne _0803B4B6 movs r0, #0x2d movs r1, #1 movs r2, #0 bl sub_080A2960 adds r3, r0, #0 cmp r3, #0 beq _0803B4B6 ldr r0, _0803B4D0 @ =gUnk_080CFD08 ldrb r1, [r4, #0xa] adds r1, r1, r0 movs r2, #0 ldrsb r2, [r1, r2] lsls r2, r2, #0x10 adds r0, r4, #0 adds r1, r3, #0 movs r3, #0 bl sub_0806FA48 _0803B4B6: adds r1, r4, #0 adds r1, #0x7e ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0803B4CC adds r0, r4, #0 bl sub_0803B6A4 _0803B4CC: pop {r4, pc} .align 2, 0 _0803B4D0: .4byte gUnk_080CFD08 thumb_func_start sub_0803B4D4 sub_0803B4D4: @ 0x0803B4D4 push {lr} movs r1, #3 strb r1, [r0, #0xc] movs r1, #0x10 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_0803B4E4 sub_0803B4E4: @ 0x0803B4E4 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r2, [r4, #0x50] movs r0, #0x2e ldrsh r3, [r2, r0] ldr r1, _0803B52C @ =gUnk_080CFD0A ldrb r0, [r4, #0xa] adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r5, r3, r0 movs r1, #0x32 ldrsh r0, [r2, r1] adds r6, r0, #0 adds r6, #0x10 adds r0, r4, #0 adds r1, r5, #0 adds r2, r6, #0 movs r3, #2 bl sub_0806FCB8 cmp r0, #0 bne _0803B530 movs r2, #0x2e ldrsh r0, [r4, r2] movs r2, #0x32 ldrsh r1, [r4, r2] adds r2, r5, #0 adds r3, r6, #0 bl sub_080045D4 strb r0, [r4, #0x15] movs r0, #0 b _0803B536 .align 2, 0 _0803B52C: .4byte gUnk_080CFD0A _0803B530: strh r5, [r4, #0x2e] strh r6, [r4, #0x32] movs r0, #1 _0803B536: pop {r4, r5, r6, pc} thumb_func_start sub_0803B538 sub_0803B538: @ 0x0803B538 push {r4, lr} adds r4, r0, #0 ldr r1, [r4, #0x54] ldr r3, _0803B554 @ =0xFFFF0000 movs r2, #0 bl sub_0806FA48 ldr r1, [r4, #0x74] ldr r3, _0803B558 @ =0xFFFE0000 adds r0, r4, #0 movs r2, #0 bl sub_0806FA48 pop {r4, pc} .align 2, 0 _0803B554: .4byte 0xFFFF0000 _0803B558: .4byte 0xFFFE0000 thumb_func_start sub_0803B55C sub_0803B55C: @ 0x0803B55C push {r4, r5, lr} ldr r5, [r0, #0x74] ldr r4, [r0, #0x54] adds r0, r4, #0 bl sub_080042B8 adds r4, #0x5a ldrb r1, [r4] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0803B588 adds r0, r5, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #1 beq _0803B59A adds r0, r5, #0 movs r1, #1 bl sub_08004260 b _0803B59A _0803B588: adds r0, r5, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0 beq _0803B59A adds r0, r5, #0 movs r1, #0 bl sub_08004260 _0803B59A: pop {r4, r5, pc} thumb_func_start sub_0803B59C sub_0803B59C: @ 0x0803B59C push {lr} movs r3, #2 strb r3, [r0, #0xc] ldr r2, [r0, #0x50] adds r1, r2, #0 adds r1, #0x7d ldrb r1, [r1] ldrb r0, [r0, #0xa] cmp r0, #0 bne _0803B5B6 movs r0, #1 orrs r1, r0 b _0803B5B8 _0803B5B6: orrs r1, r3 _0803B5B8: adds r0, r2, #0 adds r0, #0x7d strb r1, [r0] pop {pc} thumb_func_start sub_0803B5C0 sub_0803B5C0: @ 0x0803B5C0 push {r4, lr} adds r4, r0, #0 ldr r1, _0803B5E8 @ =gUnk_03001160 bl sub_080045C4 adds r2, r0, #0 cmp r2, #9 bhi _0803B5D2 movs r2, #0xa _0803B5D2: cmp r2, #0x16 bls _0803B5D8 movs r2, #0x16 _0803B5D8: ldrb r0, [r4, #0xa] cmp r0, #0 bne _0803B5F0 ldr r1, _0803B5EC @ =gUnk_080CFD0C adds r0, r2, #0 subs r0, #0xa b _0803B5F6 .align 2, 0 _0803B5E8: .4byte gUnk_03001160 _0803B5EC: .4byte gUnk_080CFD0C _0803B5F0: ldr r1, _0803B60C @ =gUnk_080CFD0C movs r0, #0x16 subs r0, r0, r2 _0803B5F6: adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] cmp r0, r1 beq _0803B60A adds r0, r4, #0 bl sub_08004260 _0803B60A: pop {r4, pc} .align 2, 0 _0803B60C: .4byte gUnk_080CFD0C thumb_func_start sub_0803B610 sub_0803B610: @ 0x0803B610 push {r4, lr} ldr r4, _0803B634 @ =gUnk_03001160 movs r2, #0x2e ldrsh r1, [r4, r2] ldr r3, _0803B638 @ =gUnk_080CFD19 ldrb r2, [r0, #0xa] adds r2, r2, r3 ldrb r2, [r2] lsls r2, r2, #0x18 asrs r2, r2, #0x18 adds r1, r1, r2 movs r3, #0x32 ldrsh r2, [r4, r3] subs r2, #0xc movs r3, #8 bl sub_0806FCB8 pop {r4, pc} .align 2, 0 _0803B634: .4byte gUnk_03001160 _0803B638: .4byte gUnk_080CFD19 thumb_func_start sub_0803B63C sub_0803B63C: @ 0x0803B63C push {r4, r5, lr} adds r4, r0, #0 ldr r2, _0803B680 @ =gUnk_03001160 movs r0, #0x2e ldrsh r3, [r2, r0] ldr r1, _0803B684 @ =gUnk_080CFD19 ldrb r0, [r4, #0xa] adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r3, r3, r0 movs r1, #0x32 ldrsh r0, [r2, r1] adds r5, r0, #0 subs r5, #0xc ldrb r0, [r4, #0xe] adds r1, r0, #1 strb r1, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xb4 bls _0803B688 movs r2, #0x2e ldrsh r0, [r4, r2] movs r2, #0x32 ldrsh r1, [r4, r2] adds r2, r3, #0 adds r3, r5, #0 bl sub_080045D4 strb r0, [r4, #0x15] b _0803B6A0 .align 2, 0 _0803B680: .4byte gUnk_03001160 _0803B684: .4byte gUnk_080CFD19 _0803B688: movs r1, #0x2e ldrsh r0, [r4, r1] movs r2, #0x32 ldrsh r1, [r4, r2] adds r2, r3, #0 adds r3, r5, #0 bl sub_080045D4 thumb_func_start sub_0803B698 sub_0803B698: @ 0x0803B698 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 _0803B6A0: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0803B6A4 sub_0803B6A4: @ 0x0803B6A4 push {r4, lr} adds r2, r0, #0 movs r0, #0x2c strb r0, [r2, #0xc] adds r1, r2, #0 adds r1, #0x3f movs r0, #0x14 strb r0, [r1] ldr r3, [r2, #0x50] adds r0, r3, #0 adds r0, #0x80 ldrb r1, [r0] ldrb r0, [r2, #0xa] cmp r0, #0 bne _0803B6C6 movs r0, #0x10 b _0803B6C8 _0803B6C6: movs r0, #0x20 _0803B6C8: orrs r1, r0 adds r0, r3, #0 adds r0, #0x80 strb r1, [r0] ldrb r3, [r0] ldrb r1, [r2, #0xa] adds r4, r0, #0 cmp r1, #0 bne _0803B6E0 movs r0, #5 rsbs r0, r0, #0 b _0803B6E4 _0803B6E0: movs r0, #9 rsbs r0, r0, #0 _0803B6E4: ands r0, r3 strb r0, [r4] adds r0, r2, #0 movs r1, #0x17 bl sub_08004260 pop {r4, pc} .align 2, 0 thumb_func_start sub_0803B6F4 sub_0803B6F4: @ 0x0803B6F4 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xa] cmp r0, #0 bne _0803B710 adds r0, r2, #0 adds r0, #0x80 ldrh r1, [r0] movs r3, #0x2e ldrsh r0, [r2, r3] cmp r1, r0 ble _0803B71E _0803B70C: movs r0, #1 b _0803B720 _0803B710: adds r0, r2, #0 adds r0, #0x80 ldrh r1, [r0] movs r3, #0x2e ldrsh r0, [r2, r3] cmp r1, r0 blt _0803B70C _0803B71E: movs r0, #0 _0803B720: pop {pc} .align 2, 0 thumb_func_start sub_0803B724 sub_0803B724: @ 0x0803B724 push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r0, [r5, #0xf] cmp r0, #2 bhi _0803B78E adds r6, r5, #0 adds r6, #0x84 ldrb r0, [r6] cmp r0, #0 beq _0803B78E movs r0, #7 movs r1, #1 bl sub_0804AA60 adds r4, r0, #0 cmp r4, #0 beq _0803B78E movs r0, #1 strb r0, [r4, #0xb] bl sub_08000E50 ldr r2, _0803B790 @ =gUnk_080CFD1B ldrb r1, [r5, #0xa] adds r1, r1, r2 movs r3, #0x70 adds r2, r0, #0 ands r2, r3 ldrb r1, [r1] adds r2, r2, r1 ldr r3, _0803B794 @ =gUnk_03000BF0 ldrh r1, [r3, #6] adds r1, r1, r2 strh r1, [r4, #0x2e] lsrs r0, r0, #0x10 movs r1, #7 ands r0, r1 lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #1 adds r1, #0x5c ldrh r3, [r3, #8] adds r1, r1, r3 strh r1, [r4, #0x32] str r5, [r4, #0x50] adds r0, r4, #0 bl sub_08016A30 ldrb r0, [r5, #0xf] adds r0, #1 strb r0, [r5, #0xf] ldrb r0, [r6] subs r0, #1 strb r0, [r6] _0803B78E: pop {r4, r5, r6, pc} .align 2, 0 _0803B790: .4byte gUnk_080CFD1B _0803B794: .4byte gUnk_03000BF0 thumb_func_start sub_0803B798 sub_0803B798: @ 0x0803B798 ldr r2, _0803B7F4 @ =gUnk_03003F80 movs r1, #0 movs r0, #0x41 strb r0, [r2, #2] strb r1, [r2, #0xa] ldr r0, [r2, #0x30] ldr r1, _0803B7F8 @ =0x0000FFEF ands r0, r1 str r0, [r2, #0x30] ldr r3, _0803B7FC @ =gUnk_03001160 ldrb r1, [r3, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r3, #0x10] movs r0, #0xc0 lsls r0, r0, #9 str r0, [r3, #0x20] movs r2, #0 ldr r0, _0803B800 @ =0x0000FFF6 strh r0, [r3, #0x36] movs r0, #0x10 strb r0, [r3, #0x15] movs r0, #4 strb r0, [r3, #0x14] movs r0, #0x29 adds r0, r0, r3 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] adds r0, r3, #0 adds r0, #0x63 strb r2, [r0] movs r0, #0xa0 lsls r0, r0, #1 strh r0, [r3, #0x24] adds r1, r3, #0 adds r1, #0x3d movs r0, #0xe2 strb r0, [r1] bx lr .align 2, 0 _0803B7F4: .4byte gUnk_03003F80 _0803B7F8: .4byte 0x0000FFEF _0803B7FC: .4byte gUnk_03001160 _0803B800: .4byte 0x0000FFF6 thumb_func_start sub_0803B804 sub_0803B804: @ 0x0803B804 push {r4, lr} ldr r4, _0803B820 @ =gUnk_03001160 adds r1, r4, #0 adds r1, #0x3d movs r0, #0x1e strb r0, [r1] subs r0, #0x22 bl sub_080526A0 adds r0, r4, #0 movs r1, #0x7a bl sub_0800449C pop {r4, pc} .align 2, 0 _0803B820: .4byte gUnk_03001160 thumb_func_start sub_0803B824 sub_0803B824: @ 0x0803B824 push {r4, r5, lr} adds r5, r0, #0 bl sub_08077B2C ldr r2, _0803B864 @ =gUnk_03003F80 ldrb r1, [r2, #0x1a] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x1a] ldr r4, _0803B868 @ =gUnk_03001160 ldr r1, _0803B86C @ =gUnk_080CFD1D ldrb r0, [r5, #0xa] adds r0, r0, r1 movs r2, #0 ldrsb r2, [r0, r2] adds r0, r5, #0 adds r1, r4, #0 movs r3, #1 bl sub_0806FA90 adds r1, r4, #0 adds r1, #0x63 movs r0, #0xfa strb r0, [r1] adds r4, #0x29 ldrb r1, [r4] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4] pop {r4, r5, pc} .align 2, 0 _0803B864: .4byte gUnk_03003F80 _0803B868: .4byte gUnk_03001160 _0803B86C: .4byte gUnk_080CFD1D thumb_func_start sub_0803B870 sub_0803B870: @ 0x0803B870 push {r4, lr} adds r3, r0, #0 ldr r4, [r3, #0x54] adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803B8DC ldr r0, _0803B8D4 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x10 ands r0, r1 cmp r0, #0 beq _0803B8DC movs r0, #0x18 strb r0, [r3, #0xc] movs r0, #0x44 strb r0, [r3, #0xe] ldrb r1, [r3, #0x18] subs r0, #0x48 ands r0, r1 strb r0, [r3, #0x18] ldr r1, _0803B8D8 @ =gUnk_03001160 ldrb r2, [r1, #0x10] movs r0, #0x7f ands r0, r2 strb r0, [r1, #0x10] adds r1, #0x3d movs r0, #0xf0 strb r0, [r1] adds r0, r3, #0 bl sub_0803B824 adds r1, r4, #0 adds r1, #0x3f movs r0, #0x13 strb r0, [r1] adds r0, r4, #0 movs r1, #7 bl sub_080042AC movs r0, #0xb7 lsls r0, r0, #1 bl sub_080A3268 movs r0, #1 b _0803B8E6 .align 2, 0 _0803B8D4: .4byte gUnk_03003F80 _0803B8D8: .4byte gUnk_03001160 _0803B8DC: adds r1, r4, #0 adds r1, #0x3f movs r0, #0x15 strb r0, [r1] movs r0, #0 _0803B8E6: pop {r4, pc} thumb_func_start sub_0803B8E8 sub_0803B8E8: @ 0x0803B8E8 ldr r2, [r0, #0x54] adds r2, #0x3f strb r1, [r2] ldr r2, [r0, #0x74] adds r0, r2, #0 adds r0, #0x3f strb r1, [r0] bx lr thumb_func_start sub_0803B8F8 sub_0803B8F8: @ 0x0803B8F8 push {lr} ldr r2, _0803B90C @ =gUnk_080CFD20 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0803B90C: .4byte gUnk_080CFD20 thumb_func_start sub_0803B910 sub_0803B910: @ 0x0803B910 push {r4, lr} adds r4, r0, #0 ldr r0, _0803B940 @ =gUnk_030010A0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #0 beq _0803B944 movs r2, #0 movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #6 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 adds r0, #0x74 strb r2, [r0] adds r0, r4, #0 movs r1, #0xa bl sub_0803BA8C b _0803B950 .align 2, 0 _0803B940: .4byte gUnk_030010A0 _0803B944: movs r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x74 movs r0, #0x80 strb r0, [r1] _0803B950: ldrb r1, [r4, #0xa] subs r1, #2 movs r0, #1 ands r1, r0 lsls r1, r1, #6 ldrb r2, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0 bl sub_08004260 ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA6C pop {r4, pc} thumb_func_start sub_0803B978 sub_0803B978: @ 0x0803B978 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #5 bhi _0803BA34 lsls r0, r0, #2 ldr r1, _0803B98C @ =_0803B990 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803B98C: .4byte _0803B990 _0803B990: @ jump table .4byte _0803BA66 @ case 0 .4byte _0803B9A8 @ case 1 .4byte _0803B9C0 @ case 2 .4byte _0803BA46 @ case 3 .4byte _0803BA14 @ case 4 .4byte _0803BA40 @ case 5 _0803B9A8: movs r1, #0 movs r0, #2 strb r0, [r4, #0xd] strb r0, [r4, #0xe] movs r0, #0x1e strb r0, [r4, #0xf] adds r0, r4, #0 adds r0, #0x74 strb r1, [r0] ldr r0, _0803BA10 @ =0x000001A9 bl sub_080A3268 _0803B9C0: ldrb r1, [r4, #0xf] adds r0, r4, #0 bl sub_0803BA8C adds r0, r4, #0 adds r0, #0x75 adds r5, r4, #0 adds r5, #0x74 ldrb r1, [r0] ldrb r0, [r5] orrs r0, r1 cmp r0, #0 bne _0803B9E0 ldr r0, _0803BA10 @ =0x000001A9 bl sub_080A3268 _0803B9E0: ldrb r0, [r5] cmp r0, #0 bne _0803BA66 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803BA66 movs r0, #2 strb r0, [r4, #0xe] ldrb r0, [r4, #0xf] subs r0, #4 strb r0, [r4, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xa bne _0803BA66 ldr r0, [r4, #0x50] ldr r1, [r0, #0x50] movs r0, #3 strb r0, [r1, #0xd] strb r0, [r4, #0xd] b _0803BA66 .align 2, 0 _0803BA10: .4byte 0x000001A9 _0803BA14: movs r0, #5 strb r0, [r4, #0xd] ldrb r1, [r4, #0x18] subs r0, #9 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] ldrb r1, [r4, #0x19] movs r0, #0xd rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r4, #0x19] b _0803BA46 _0803BA34: movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x19] subs r0, #0xf ands r0, r1 strb r0, [r4, #0x19] _0803BA40: adds r0, r4, #0 bl sub_08004274 _0803BA46: adds r0, r4, #0 movs r1, #0x10 bl sub_0803BA8C adds r1, r4, #0 adds r1, #0x75 adds r0, r4, #0 adds r0, #0x74 ldrb r1, [r1] ldrb r0, [r0] orrs r0, r1 cmp r0, #0 bne _0803BA66 ldr r0, _0803BA68 @ =0x000001A9 bl sub_080A3268 _0803BA66: pop {r4, r5, pc} .align 2, 0 _0803BA68: .4byte 0x000001A9 thumb_func_start sub_0803BA6C sub_0803BA6C: @ 0x0803BA6C push {r4, lr} adds r4, r0, #0 movs r1, #0xa bl sub_0803BA8C adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 thumb_func_start sub_0803BA80 sub_0803BA80: @ 0x0803BA80 push {lr} movs r1, #0xa bl sub_0803BA8C pop {pc} .align 2, 0 thumb_func_start sub_0803BA8C sub_0803BA8C: @ 0x0803BA8C push {r4, r5, r6, lr} adds r6, r0, #0 adds r5, r1, #0 movs r1, #0 adds r4, r6, #0 adds r4, #0x74 ldrb r3, [r4] movs r2, #0xe0 ands r2, r3 cmp r2, #0 bne _0803BAEC cmp r3, #0 bne _0803BAD2 adds r2, r6, #0 adds r2, #0x75 ldrb r0, [r2] adds r0, #1 strb r0, [r2] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #9 bls _0803BABA strb r1, [r2] _0803BABA: ldrb r0, [r6, #0xa] cmp r0, #2 bne _0803BAC8 ldr r1, _0803BAC4 @ =gUnk_080CFD30 b _0803BACA .align 2, 0 _0803BAC4: .4byte gUnk_080CFD30 _0803BAC8: ldr r1, _0803BAE8 @ =gUnk_080CFD44 _0803BACA: ldrb r0, [r2] lsls r0, r0, #1 adds r0, r0, r1 ldrh r1, [r0] _0803BAD2: adds r2, r6, #0 adds r2, #0x74 ldrb r0, [r2] adds r0, #1 strb r0, [r2] cmp r5, r0 bhi _0803BB18 movs r0, #0 strb r0, [r2] b _0803BB18 .align 2, 0 _0803BAE8: .4byte gUnk_080CFD44 _0803BAEC: movs r0, #0x80 ands r0, r2 cmp r0, #0 bne _0803BB18 movs r0, #0x80 orrs r0, r3 strb r0, [r4] movs r0, #0x20 ands r2, r0 cmp r2, #0 beq _0803BB0C ldr r1, _0803BB08 @ =gUnk_080CFD58 b _0803BB0E .align 2, 0 _0803BB08: .4byte gUnk_080CFD58 _0803BB0C: ldr r1, _0803BB78 @ =gUnk_080CFD5C _0803BB0E: ldrb r0, [r6, #0xa] subs r0, #2 lsls r0, r0, #1 adds r0, r0, r1 ldrh r1, [r0] _0803BB18: cmp r1, #0 beq _0803BB74 adds r0, r6, #0 bl sub_0801D2B4 ldr r0, [r6, #0x50] ldr r4, [r0, #0x78] ldrb r1, [r6, #0x1a] lsls r1, r1, #0x1c lsrs r1, r1, #0x1c ldrb r2, [r4, #0x1a] movs r3, #0x10 rsbs r3, r3, #0 adds r0, r3, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x1a] ldr r0, [r6, #0x50] ldr r5, [r0, #0x78] ldrb r1, [r6, #0x1a] lsls r1, r1, #0x1c lsrs r1, r1, #0x18 ldrb r4, [r5, #0x1a] movs r2, #0xf adds r0, r2, #0 ands r0, r4 orrs r0, r1 strb r0, [r5, #0x1a] ldr r0, [r6, #0x50] ldr r4, [r0, #0x54] ldrb r0, [r6, #0x1a] lsls r0, r0, #0x1c lsrs r0, r0, #0x1c ldrb r1, [r4, #0x1a] ands r3, r1 orrs r3, r0 strb r3, [r4, #0x1a] ldr r0, [r6, #0x50] ldr r3, [r0, #0x54] ldrb r0, [r6, #0x1a] lsls r0, r0, #0x1c lsrs r0, r0, #0x18 ldrb r1, [r3, #0x1a] ands r2, r1 orrs r2, r0 strb r2, [r3, #0x1a] _0803BB74: pop {r4, r5, r6, pc} .align 2, 0 _0803BB78: .4byte gUnk_080CFD5C thumb_func_start sub_0803BB7C sub_0803BB7C: @ 0x0803BB7C push {r4, r5, lr} adds r5, r0, #0 ldr r4, _0803BB94 @ =gUnk_080CFF3C bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _0803BB94: .4byte gUnk_080CFF3C thumb_func_start sub_0803BB98 sub_0803BB98: @ 0x0803BB98 push {lr} ldr r2, _0803BBAC @ =gUnk_080CFF54 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0803BBAC: .4byte gUnk_080CFF54 thumb_func_start sub_0803BBB0 sub_0803BBB0: @ 0x0803BBB0 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r2, #0x80 adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _0803BC2C movs r5, #0x7f adds r0, r5, #0 ands r0, r1 cmp r0, #0 bne _0803BC06 adds r0, r4, #0 bl sub_0803C0AC ldrb r1, [r4, #0x10] adds r0, r5, #0 ands r0, r1 strb r0, [r4, #0x10] ldrb r2, [r4, #0x15] adds r0, r2, #4 movs r1, #8 ands r0, r1 cmp r0, #0 bne _0803BBF6 movs r0, #0x10 ands r0, r2 cmp r0, #0 beq _0803BBF2 adds r0, r2, #2 b _0803BBF4 _0803BBF2: subs r0, r2, #2 _0803BBF4: strb r0, [r4, #0x15] _0803BBF6: ldrb r1, [r4, #0x15] movs r0, #0x20 subs r0, r0, r1 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_0803BF2C b _0803BC1E _0803BC06: adds r0, r4, #0 adds r0, #0x3d ldrb r1, [r0] adds r0, r2, #0 ands r0, r1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 bne _0803BC1E adds r1, r4, #0 adds r1, #0x45 strb r0, [r1] _0803BC1E: adds r1, r4, #0 adds r1, #0x82 ldrh r0, [r1] cmp r0, #0x10 bls _0803BC2C subs r0, #0xc strh r0, [r1] _0803BC2C: adds r0, r4, #0 bl sub_08004274 pop {r4, r5, pc} thumb_func_start sub_0803BC34 sub_0803BC34: @ 0x0803BC34 push {r4, lr} adds r4, r0, #0 ldr r0, _0803BC78 @ =gUnk_080CFF6C ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0806F520 cmp r0, #0 bne _0803BC74 movs r1, #2 strb r1, [r4, #0xc] strb r0, [r4, #0xd] adds r0, r4, #0 adds r0, #0x84 strb r1, [r0] movs r0, #8 strb r0, [r4, #0xe] movs r0, #0xe0 lsls r0, r0, #1 strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_0803BF2C _0803BC74: pop {r4, pc} .align 2, 0 _0803BC78: .4byte gUnk_080CFF6C thumb_func_start sub_0803BC7C sub_0803BC7C: @ 0x0803BC7C movs r1, #1 strb r1, [r0, #0xd] movs r1, #0x3c strb r1, [r0, #0x1d] bx lr .align 2, 0 thumb_func_start sub_0803BC88 sub_0803BC88: @ 0x0803BC88 push {lr} bl sub_0806F4E8 pop {pc} thumb_func_start sub_0803BC90 sub_0803BC90: @ 0x0803BC90 push {r4, lr} adds r4, r0, #0 bl sub_0806F3E4 cmp r0, #0 beq _0803BCA2 adds r0, r4, #0 bl sub_0804A7D4 _0803BCA2: pop {r4, pc} thumb_func_start sub_0803BCA4 sub_0803BCA4: @ 0x0803BCA4 push {r4, r5, r6, lr} adds r6, r0, #0 bl sub_0804A720 movs r4, #0 movs r5, #1 strb r5, [r6, #0xc] strb r4, [r6, #0xf] adds r0, r6, #0 movs r1, #1 bl sub_08049F84 strb r0, [r6, #0x15] adds r0, r6, #0 adds r0, #0x80 strb r4, [r0] adds r0, #1 strb r4, [r0] strb r5, [r6, #0x1c] adds r2, r6, #0 adds r2, #0x3c ldrb r1, [r2] movs r0, #0x10 orrs r0, r1 strb r0, [r2] adds r1, r6, #0 adds r1, #0x38 movs r0, #3 strb r0, [r1] ldrb r1, [r6, #0x1b] movs r0, #0x3f ands r0, r1 movs r1, #0x40 orrs r0, r1 strb r0, [r6, #0x1b] ldrh r1, [r6, #0x2e] adds r0, r6, #0 adds r0, #0x78 strh r1, [r0] ldrh r0, [r6, #0x32] adds r1, r6, #0 adds r1, #0x7a strh r0, [r1] adds r0, r6, #0 bl sub_08016A04 adds r0, r6, #0 bl sub_0803BF2C pop {r4, r5, r6, pc} thumb_func_start sub_0803BD08 sub_0803BD08: @ 0x0803BD08 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] cmp r0, #0 beq _0803BD2C adds r0, r4, #0 bl sub_080040A8 cmp r0, #0 bne _0803BD80 strb r0, [r4, #0xf] ldrb r0, [r4, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 movs r0, #1 orrs r1, r0 strb r1, [r4, #0x18] _0803BD2C: adds r0, r4, #0 bl sub_0803BEE8 adds r0, r4, #0 bl sub_08004274 movs r0, #1 bl sub_08049DF4 cmp r0, #0 beq _0803BD80 ldr r5, _0803BD84 @ =gUnk_020000B0 ldr r1, [r5] adds r0, r4, #0 movs r2, #0x88 movs r3, #0x50 bl sub_080041A0 cmp r0, #0 beq _0803BD80 ldr r0, [r5] movs r2, #0x32 ldrsh r1, [r0, r2] movs r2, #0x32 ldrsh r0, [r4, r2] adds r0, #8 cmp r1, r0 ble _0803BD80 movs r1, #0 movs r2, #2 strb r2, [r4, #0xc] adds r0, r4, #0 adds r0, #0x84 strb r1, [r0] movs r0, #0x10 strb r0, [r4, #0xe] adds r0, r4, #0 adds r0, #0x81 strb r2, [r0] adds r0, r4, #0 bl sub_0803BF2C _0803BD80: pop {r4, r5, pc} .align 2, 0 _0803BD84: .4byte gUnk_020000B0 thumb_func_start sub_0803BD88 sub_0803BD88: @ 0x0803BD88 push {lr} bl sub_0803BF70 pop {pc} thumb_func_start sub_0803BD90 sub_0803BD90: @ 0x0803BD90 push {r4, lr} adds r4, r0, #0 bl sub_080040A8 cmp r0, #0 bne _0803BDC8 movs r0, #4 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #8 ands r0, r1 strb r0, [r4, #0x18] 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 movs r1, #8 orrs r0, r1 strb r0, [r2] movs r0, #8 strb r0, [r4, #0xe] b _0803BDD4 _0803BDC8: adds r0, r4, #0 bl sub_0803BF48 adds r0, r4, #0 bl sub_08004274 _0803BDD4: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803BDD8 sub_0803BDD8: @ 0x0803BDD8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803BE76 adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0803BDFE adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 bne _0803BE06 _0803BDFE: adds r0, r4, #0 bl sub_0803C120 b _0803BE70 _0803BE06: ldrb r1, [r4, #0x15] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0803BE20 movs r0, #8 strb r0, [r4, #0x15] ldr r1, _0803BE1C @ =gUnk_03000BF0 ldrh r0, [r1, #0xa] subs r0, #0x20 b _0803BE30 .align 2, 0 _0803BE1C: .4byte gUnk_03000BF0 _0803BE20: movs r0, #0x18 strb r0, [r4, #0x15] ldr r1, _0803BE78 @ =gUnk_03000BF0 movs r2, #0x88 lsls r2, r2, #1 adds r0, r2, #0 ldrh r2, [r1, #0xa] adds r0, r0, r2 _0803BE30: strh r0, [r4, #0x2e] ldrh r0, [r1, #0xc] adds r0, #8 strh r0, [r4, #0x32] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] movs r0, #2 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x84 movs r0, #1 strb r0, [r1] movs r0, #0x18 strb r0, [r4, #0xe] subs r1, #2 movs r0, #0x96 lsls r0, r0, #1 strh r0, [r1] adds r0, #0x94 strh r0, [r4, #0x24] subs r1, #1 movs r0, #4 strb r0, [r1] _0803BE70: adds r0, r4, #0 bl sub_0803BF2C _0803BE76: pop {r4, pc} .align 2, 0 _0803BE78: .4byte gUnk_03000BF0 thumb_func_start sub_0803BE7C sub_0803BE7C: @ 0x0803BE7C push {r4, r5, lr} adds r4, r0, #0 bl sub_080040A8 adds r5, r0, #0 cmp r5, #0 bne _0803BEE6 movs r2, #1 movs r3, #1 strb r3, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r0, #8 strb r0, [r4, #0xe] strb r3, [r4, #0xf] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] adds r0, r4, #0 adds r0, #0x80 strb r5, [r0] 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] adds r0, r4, #0 adds r0, #0x81 strb r5, [r0] adds r1, r4, #0 adds r1, #0x38 movs r0, #3 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 bl sub_0803BF2C _0803BEE6: pop {r4, r5, pc} thumb_func_start sub_0803BEE8 sub_0803BEE8: @ 0x0803BEE8 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803BF28 ldrb r0, [r4, #0x15] adds r5, r4, #0 adds r5, #0x80 strb r0, [r5] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 cmp r0, #0xff beq _0803BF0E strb r0, [r4, #0x15] _0803BF0E: movs r0, #8 strb r0, [r4, #0xe] ldrb r2, [r5] movs r0, #0x10 adds r1, r0, #0 ands r1, r2 ldrb r2, [r4, #0x15] ands r0, r2 cmp r1, r0 beq _0803BF28 adds r0, r4, #0 bl sub_0803BF2C _0803BF28: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0803BF2C sub_0803BF2C: @ 0x0803BF2C push {lr} ldrb r2, [r0, #0x15] movs r1, #0x10 ands r1, r2 lsls r1, r1, #0x18 lsrs r1, r1, #0x1c adds r2, r0, #0 adds r2, #0x81 ldrb r2, [r2] adds r1, r1, r2 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_0803BF48 sub_0803BF48: @ 0x0803BF48 push {r4, lr} adds r4, r0, #0 bl sub_0806F69C 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] pop {r4, pc} thumb_func_start sub_0803BF70 sub_0803BF70: @ 0x0803BF70 push {r4, r5, r6, lr} adds r5, r0, #0 adds r2, r5, #0 adds r2, #0x84 ldrb r0, [r2] cmp r0, #1 beq _0803BFC0 cmp r0, #1 bgt _0803BF88 cmp r0, #0 beq _0803BF8E b _0803C0A2 _0803BF88: cmp r0, #2 beq _0803BFEA b _0803C0A2 _0803BF8E: ldrb r1, [r5, #0xe] movs r3, #1 adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _0803BFA0 ldrh r0, [r5, #0x36] subs r0, #1 strh r0, [r5, #0x36] _0803BFA0: subs r0, r1, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803C0A2 strb r3, [r2] movs r0, #0x18 strb r0, [r5, #0xe] ldrb r0, [r5, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r5, #0x10] adds r1, r5, #0 adds r1, #0x81 movs r0, #2 b _0803BFE0 _0803BFC0: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803C0A2 movs r0, #2 strb r0, [r2] movs r0, #8 strb r0, [r5, #0xe] movs r0, #0xe0 lsls r0, r0, #1 strh r0, [r5, #0x24] adds r1, r5, #0 adds r1, #0x81 movs r0, #4 _0803BFE0: strb r0, [r1] adds r0, r5, #0 bl sub_0803BF2C b _0803C0A2 _0803BFEA: adds r1, r5, #0 adds r1, #0x82 ldrh r0, [r1] subs r0, #1 movs r3, #0 strh r0, [r1] lsls r0, r0, #0x10 adds r6, r1, #0 cmp r0, #0 bne _0803C02C movs r0, #3 strb r0, [r5, #0xc] strb r3, [r2] strb r3, [r5, #0xe] movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r5, #0x24] ldrb r2, [r5, #0x15] adds r0, r2, #0 adds r0, #0x18 movs r1, #0x10 ands r0, r1 cmp r0, #0 beq _0803C024 movs r0, #0x10 subs r0, r0, r2 movs r1, #0x1f ands r0, r1 strb r0, [r5, #0x15] _0803C024: adds r0, r5, #0 bl sub_0803BF2C b _0803C09C _0803C02C: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803C09C movs r0, #8 strb r0, [r5, #0xe] ldrb r0, [r5, #0x15] adds r4, r5, #0 adds r4, #0x80 strb r0, [r4] adds r0, r5, #0 movs r1, #1 bl sub_08049F84 adds r1, r0, #0 adds r0, r5, #0 bl sub_08004596 ldrb r3, [r5, #0x15] adds r0, r3, #0 adds r0, #0x18 movs r1, #0x10 ands r0, r1 cmp r0, #0 beq _0803C07E ldrb r0, [r4] cmp r0, #0x10 bne _0803C076 ands r3, r0 cmp r3, #0 beq _0803C072 movs r0, #0x12 b _0803C074 _0803C072: movs r0, #0xe _0803C074: strb r0, [r4] _0803C076: ldrb r0, [r4] strb r0, [r5, #0x15] movs r0, #1 strh r0, [r6] _0803C07E: ldrb r2, [r4] movs r0, #0x10 adds r1, r0, #0 ands r1, r2 lsls r1, r1, #0x18 ldrb r2, [r5, #0x15] ands r0, r2 lsls r0, r0, #0x18 lsrs r2, r0, #0x1c cmp r1, r0 beq _0803C09C adds r1, r2, #4 adds r0, r5, #0 bl sub_08004260 _0803C09C: adds r0, r5, #0 bl sub_0803BF48 _0803C0A2: adds r0, r5, #0 bl sub_08004274 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0803C0AC sub_0803C0AC: @ 0x0803C0AC push {r4, r5, r6, lr} movs r0, #1 bl sub_08049DF4 adds r5, r0, #0 cmp r5, #0 beq _0803C11C ldr r0, _0803C0D4 @ =gUnk_02002A40 adds r0, #0xc0 ldrh r1, [r0] ldr r0, _0803C0D8 @ =0x000001F3 cmp r1, r0 bls _0803C0DC movs r6, #0x56 movs r4, #5 movs r0, #0x64 rsbs r0, r0, #0 bl sub_080526CC b _0803C118 .align 2, 0 _0803C0D4: .4byte gUnk_02002A40 _0803C0D8: .4byte 0x000001F3 _0803C0DC: cmp r1, #0x63 bls _0803C0EE movs r6, #0x55 movs r4, #5 movs r0, #0x19 rsbs r0, r0, #0 bl sub_080526CC b _0803C118 _0803C0EE: movs r6, #0x54 adds r4, r1, #0 cmp r4, #4 bls _0803C0F8 movs r4, #5 _0803C0F8: rsbs r0, r4, #0 bl sub_080526CC b _0803C118 _0803C100: movs r0, #0x1a adds r1, r6, #0 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _0803C116 adds r0, r5, #0 bl sub_0806FA24 _0803C116: subs r4, #1 _0803C118: cmp r4, #0 bne _0803C100 _0803C11C: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0803C120 sub_0803C120: @ 0x0803C120 adds r2, r0, #0 movs r0, #5 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] subs r0, #9 ands r0, r1 strb r0, [r2, #0x18] ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0x10] adds r0, r2, #0 adds r0, #0x78 ldrh r0, [r0] strh r0, [r2, #0x2e] adds r0, r2, #0 adds r0, #0x7a ldrh r0, [r0] strh r0, [r2, #0x32] ldrh r0, [r2, #0x36] adds r0, #8 strh r0, [r2, #0x36] 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] bx lr .align 2, 0 thumb_func_start sub_0803C160 sub_0803C160: @ 0x0803C160 push {r4, lr} adds r4, r0, #0 ldr r1, _0803C17C @ =gUnk_080CFF78 bl sub_0800129E movs r3, #0x18 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, pc} .align 2, 0 _0803C17C: .4byte gUnk_080CFF78 thumb_func_start sub_0803C180 sub_0803C180: @ 0x0803C180 push {lr} ldr r2, _0803C194 @ =gUnk_080CFF90 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0803C194: .4byte gUnk_080CFF90 thumb_func_start sub_0803C198 sub_0803C198: @ 0x0803C198 push {r4, lr} adds r4, r0, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _0803C1AC adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _0803C1AC: ldr r1, _0803C1D8 @ =gUnk_080CFF78 adds r0, r4, #0 bl sub_0804AA30 adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803C1D4 adds r0, r4, #0 bl sub_0803C5F0 ldr r1, [r4, #0x54] cmp r1, #0 beq _0803C1D4 ldrb r0, [r1, #0xf] adds r0, #1 strb r0, [r1, #0xf] _0803C1D4: pop {r4, pc} .align 2, 0 _0803C1D8: .4byte gUnk_080CFF78 thumb_func_start nullsub_168 nullsub_168: @ 0x0803C1DC bx lr .align 2, 0 thumb_func_start sub_0803C1E0 sub_0803C1E0: @ 0x0803C1E0 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r1, #0 movs r2, #1 strb r2, [r4, #0xc] adds r0, r4, #0 adds r0, #0x7b strb r1, [r0] adds r0, #5 strb r1, [r0] adds r0, #3 strb r1, [r0] subs r0, #2 strb r1, [r0] subs r0, #7 strb r1, [r0] adds r0, #8 strb r2, [r0] ldrb r0, [r4, #0xe] cmp r0, #0 beq _0803C228 ldrb r1, [r4, #0xb] lsls r0, r1, #1 strb r0, [r4, #0x14] movs r0, #0x1e strb r0, [r4, #0xe] movs r0, #0x80 strh r0, [r4, #0x24] lsls r1, r1, #3 strb r1, [r4, #0x15] adds r0, r4, #0 bl sub_0803C690 b _0803C232 _0803C228: movs r0, #0x10 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_0803C4B0 _0803C232: pop {r4, pc} thumb_func_start sub_0803C234 sub_0803C234: @ 0x0803C234 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x81 ldrb r0, [r1] cmp r0, #0 beq _0803C246 subs r0, #1 strb r0, [r1] _0803C246: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r3, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _0803C292 adds r1, r4, #0 adds r1, #0x80 ldrb r0, [r1] adds r2, r0, #1 strb r2, [r1] adds r0, r2, #0 ands r0, r3 cmp r0, #0xf bls _0803C26E adds r0, r4, #0 bl sub_0803C5C4 b _0803C2D2 _0803C26E: movs r0, #3 ands r2, r0 cmp r2, #0 bne _0803C28A bl sub_08000E50 movs r1, #0x10 ands r1, r0 cmp r1, #0 beq _0803C28A adds r0, r4, #0 bl sub_0803C624 b _0803C2D2 _0803C28A: adds r0, r4, #0 bl sub_0803C4B0 b _0803C2D2 _0803C292: adds r0, r4, #0 bl sub_0803C6F8 cmp r0, #0 beq _0803C2C2 ldrh r1, [r4, #0x2a] adds r0, r4, #0 bl sub_0800417E ldrb r0, [r4, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 asrs r0, r0, #2 strb r0, [r4, #0x14] adds r1, r4, #0 adds r1, #0x83 ldrb r0, [r1] adds r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_0803C690 b _0803C2D2 _0803C2C2: adds r0, r4, #0 bl sub_0803C568 cmp r0, #0 beq _0803C2D2 adds r0, r4, #0 bl sub_0803C5F0 _0803C2D2: adds r0, r4, #0 bl sub_0803C6DC pop {r4, pc} .align 2, 0 thumb_func_start sub_0803C2DC sub_0803C2DC: @ 0x0803C2DC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0803C308 movs r0, #3 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x82 strb r1, [r0] subs r0, #2 strb r1, [r0] movs r0, #0x10 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_0803C4B0 b _0803C31E _0803C308: adds r0, r4, #0 bl sub_0803C568 cmp r0, #0 beq _0803C31E adds r2, r4, #0 adds r2, #0x7b ldrb r0, [r2] movs r1, #1 orrs r0, r1 strb r0, [r2] _0803C31E: ldrb r0, [r4, #0xf] cmp r0, #0xb bls _0803C336 adds r0, r4, #0 adds r0, #0x7b ldrb r0, [r0] cmp r0, #0 beq _0803C33A adds r0, r4, #0 bl sub_0803C5F0 b _0803C33A _0803C336: adds r0, #1 strb r0, [r4, #0xf] _0803C33A: adds r0, r4, #0 bl sub_0803C6DC pop {r4, pc} .align 2, 0 thumb_func_start sub_0803C344 sub_0803C344: @ 0x0803C344 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803C3F8 adds r0, r4, #0 adds r0, #0x82 ldrb r1, [r0] adds r2, r0, #0 cmp r1, #5 bhi _0803C3C8 lsls r0, r1, #2 ldr r1, _0803C36C @ =_0803C370 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803C36C: .4byte _0803C370 _0803C370: @ jump table .4byte _0803C3C8 @ case 0 .4byte _0803C3C8 @ case 1 .4byte _0803C3A6 @ case 2 .4byte _0803C388 @ case 3 .4byte _0803C3BE @ case 4 .4byte _0803C39C @ case 5 _0803C388: movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x80 strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] b _0803C3E2 _0803C39C: movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x80 strh r0, [r4, #0x24] b _0803C3E2 _0803C3A6: movs r1, #0 movs r0, #2 strb r0, [r4, #0xc] strh r1, [r4, #0x24] bl sub_08000E50 movs r1, #7 ands r0, r1 lsls r1, r0, #1 adds r1, r1, r0 adds r1, #0x40 b _0803C3E0 _0803C3BE: ldrb r0, [r4, #0x15] adds r0, #0x10 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] _0803C3C8: movs r0, #1 strb r0, [r4, #0xc] strb r0, [r2] movs r0, #0x80 strh r0, [r4, #0x24] bl sub_08000E50 movs r1, #7 ands r0, r1 lsls r1, r0, #1 adds r1, r1, r0 adds r1, #0x22 _0803C3E0: strb r1, [r4, #0xe] _0803C3E2: movs r0, #0 strb r0, [r4, #0xf] ldrb r0, [r4, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 asrs r0, r0, #2 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_0803C690 _0803C3F8: adds r0, r4, #0 bl sub_0803C6DC pop {r4, pc} thumb_func_start sub_0803C400 sub_0803C400: @ 0x0803C400 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] adds r1, r0, #0 cmp r1, #0 beq _0803C458 subs r0, #1 strb r0, [r4, #0xf] movs r2, #0xff lsls r0, r0, #0x18 lsrs r5, r0, #0x18 cmp r5, #0 bne _0803C4AC adds r0, r4, #0 adds r0, #0x82 ldrb r0, [r0] cmp r0, #3 bne _0803C450 adds r1, r4, #0 adds r1, #0x7a ldrb r0, [r1] adds r0, #1 strb r0, [r1] ands r0, r2 cmp r0, #2 bhi _0803C450 bl sub_08000E50 movs r1, #0xc0 ands r1, r0 cmp r1, #0 beq _0803C450 strb r5, [r4, #0xe] adds r0, r4, #0 bl sub_0803C690 adds r0, r4, #0 bl sub_0803C6DC b _0803C4AC _0803C450: adds r0, r4, #0 bl sub_0803C634 b _0803C4AC _0803C458: ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 beq _0803C46C cmp r0, #0x18 beq _0803C494 b _0803C49A _0803C46C: ldrb r2, [r4, #0x14] lsls r0, r2, #2 strb r0, [r4, #0x15] lsls r2, r2, #0x18 lsrs r2, r2, #0x19 adds r0, r4, #0 movs r1, #0xd bl sub_0804A98C adds r2, r0, #0 cmp r2, #0 beq _0803C49A str r2, [r4, #0x54] ldrb r0, [r4, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 strb r0, [r2, #0x15] str r4, [r2, #0x50] b _0803C49A _0803C494: strb r1, [r4, #0xe] movs r0, #0x20 strb r0, [r4, #0xf] _0803C49A: adds r0, r4, #0 bl sub_0803C6DC ldr r0, [r4, #0x54] cmp r0, #0 beq _0803C4AC adds r0, r4, #0 bl sub_0803C714 _0803C4AC: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0803C4B0 sub_0803C4B0: @ 0x0803C4B0 push {r4, r5, r6, r7, lr} adds r5, r0, #0 movs r1, #0 strb r1, [r5, #0xf] adds r0, #0x82 ldrb r0, [r0] cmp r0, #1 bne _0803C54C bl sub_08000E50 ldr r1, _0803C4F0 @ =gUnk_080CFFA4 movs r7, #7 ands r0, r7 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r5, #0xe] movs r0, #0x80 strh r0, [r5, #0x24] adds r0, r5, #0 bl sub_08049FA0 cmp r0, #0 beq _0803C4F4 bl sub_08000E50 adds r4, r0, #0 movs r0, #6 ands r4, r0 lsls r0, r4, #2 strb r0, [r5, #0x15] b _0803C556 .align 2, 0 _0803C4F0: .4byte gUnk_080CFFA4 _0803C4F4: adds r0, r5, #0 bl sub_08049EE4 adds r4, r0, #0 adds r6, r5, #0 adds r6, #0x83 ldrb r0, [r6] cmp r0, #0 bne _0803C520 bl sub_08000E50 ldr r2, _0803C51C @ =gUnk_080CFFAC movs r1, #0xf ands r1, r0 adds r1, r1, r2 movs r0, #0 ldrsb r0, [r1, r0] adds r4, r4, r0 b _0803C53E .align 2, 0 _0803C51C: .4byte gUnk_080CFFAC _0803C520: bl sub_08000E50 ldr r1, _0803C548 @ =gUnk_080CFFAC ands r0, r7 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r4, r4, r0 ldrb r0, [r5, #0xe] adds r0, #0x10 strb r0, [r5, #0xe] ldrb r0, [r6] subs r0, #1 strb r0, [r6] _0803C53E: adds r0, r4, #4 movs r1, #0x18 ands r0, r1 strb r0, [r5, #0x15] b _0803C554 .align 2, 0 _0803C548: .4byte gUnk_080CFFAC _0803C54C: movs r0, #0xc strb r0, [r5, #0xe] strh r1, [r5, #0x24] ldrb r0, [r5, #0x15] _0803C554: lsrs r4, r0, #2 _0803C556: ldrb r0, [r5, #0x14] cmp r4, r0 beq _0803C564 strb r4, [r5, #0x14] adds r0, r5, #0 bl sub_0803C690 _0803C564: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0803C568 sub_0803C568: @ 0x0803C568 push {r4, r5, lr} adds r5, r0, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #0 bne _0803C5C0 movs r0, #1 bl sub_08049DF4 adds r4, r0, #0 cmp r4, #0 beq _0803C5C0 adds r0, r5, #0 adds r0, #0x82 ldrb r0, [r0] cmp r0, #2 bne _0803C598 adds r0, r5, #0 adds r1, r4, #0 movs r2, #0x30 bl sub_0806FC80 cmp r0, #0 bne _0803C5BC _0803C598: adds r0, r5, #0 adds r1, r4, #0 movs r2, #0x40 bl sub_0806FC80 cmp r0, #0 beq _0803C5C0 adds r0, r5, #0 adds r1, r4, #0 bl sub_080045C4 adds r0, #4 movs r1, #0x18 ands r0, r1 lsrs r0, r0, #2 ldrb r5, [r5, #0x14] cmp r0, r5 bne _0803C5C0 _0803C5BC: movs r0, #1 b _0803C5C2 _0803C5C0: movs r0, #0 _0803C5C2: pop {r4, r5, pc} thumb_func_start sub_0803C5C4 sub_0803C5C4: @ 0x0803C5C4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 asrs r0, r0, #2 strb r0, [r4, #0x14] lsls r0, r0, #2 strb r0, [r4, #0x15] adds r1, r4, #0 adds r1, #0x83 ldrb r0, [r1] lsrs r0, r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_0803C664 adds r4, #0x82 movs r0, #2 strb r0, [r4] pop {r4, pc} thumb_func_start sub_0803C5F0 sub_0803C5F0: @ 0x0803C5F0 push {r4, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049F84 movs r2, #0 strb r0, [r4, #0x15] ldrb r0, [r4, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 asrs r0, r0, #2 strb r0, [r4, #0x14] adds r0, r4, #0 adds r0, #0x83 strb r2, [r0] subs r0, #9 strb r2, [r0] adds r0, r4, #0 bl sub_0803C664 adds r4, #0x82 movs r0, #3 strb r0, [r4] pop {r4, pc} .align 2, 0 thumb_func_start sub_0803C624 sub_0803C624: @ 0x0803C624 push {r4, lr} adds r4, r0, #0 bl sub_0803C664 adds r4, #0x82 movs r0, #5 strb r0, [r4] pop {r4, pc} thumb_func_start sub_0803C634 sub_0803C634: @ 0x0803C634 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 asrs r0, r0, #2 movs r1, #0 strb r0, [r4, #0x14] lsls r0, r0, #2 strb r0, [r4, #0x15] adds r0, r4, #0 adds r0, #0x83 strb r1, [r0] adds r0, r4, #0 bl sub_0803C664 ldrb r0, [r4, #0xe] lsls r0, r0, #1 strb r0, [r4, #0xe] adds r4, #0x82 movs r0, #4 strb r0, [r4] pop {r4, pc} thumb_func_start sub_0803C664 sub_0803C664: @ 0x0803C664 push {lr} adds r2, r0, #0 movs r1, #0 movs r0, #3 strb r0, [r2, #0xc] movs r0, #0x20 strb r0, [r2, #0xe] strb r1, [r2, #0xf] adds r0, r2, #0 adds r0, #0x80 strb r1, [r0] subs r0, #5 strb r1, [r0] movs r0, #0 strh r1, [r2, #0x24] adds r1, r2, #0 adds r1, #0x82 strb r0, [r1] adds r0, r2, #0 bl sub_0803C690 pop {pc} thumb_func_start sub_0803C690 sub_0803C690: @ 0x0803C690 push {lr} adds r3, r0, #0 ldrb r0, [r3, #0x14] lsrs r2, r0, #1 adds r0, r3, #0 adds r0, #0x82 ldrb r0, [r0] cmp r0, #5 bhi _0803C6D2 lsls r0, r0, #2 ldr r1, _0803C6AC @ =_0803C6B0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803C6AC: .4byte _0803C6B0 _0803C6B0: @ jump table .4byte _0803C6D2 @ case 0 .4byte _0803C6C8 @ case 1 .4byte _0803C6D0 @ case 2 .4byte _0803C6CC @ case 3 .4byte _0803C6C8 @ case 4 .4byte _0803C6CC @ case 5 _0803C6C8: adds r2, #4 b _0803C6D2 _0803C6CC: adds r2, #8 b _0803C6D2 _0803C6D0: adds r2, #0xc _0803C6D2: adds r0, r3, #0 adds r1, r2, #0 bl sub_08004260 pop {pc} thumb_func_start sub_0803C6DC sub_0803C6DC: @ 0x0803C6DC push {r4, lr} adds r4, r0, #0 adds r0, #0x82 ldrb r0, [r0] cmp r0, #0 bne _0803C6EA strh r0, [r4, #0x24] _0803C6EA: adds r0, r4, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_08004274 pop {r4, pc} thumb_func_start sub_0803C6F8 sub_0803C6F8: @ 0x0803C6F8 ldr r2, _0803C710 @ =gUnk_080CFFBC ldrb r1, [r0, #0x14] lsrs r1, r1, #1 lsls r1, r1, #1 adds r1, r1, r2 ldrh r0, [r0, #0x2a] ldrh r1, [r1] ands r1, r0 rsbs r0, r1, #0 orrs r0, r1 lsrs r0, r0, #0x1f bx lr .align 2, 0 _0803C710: .4byte gUnk_080CFFBC thumb_func_start sub_0803C714 sub_0803C714: @ 0x0803C714 push {lr} ldr r1, [r0, #0x54] ldrb r3, [r0, #0x14] ldr r2, _0803C734 @ =gUnk_080CFFC4 adds r3, r3, r2 movs r2, #0 ldrsb r2, [r3, r2] lsls r2, r2, #0x10 ldrb r3, [r3, #1] lsls r3, r3, #0x18 asrs r3, r3, #0x18 lsls r3, r3, #0x10 bl sub_0806FA48 pop {pc} .align 2, 0 _0803C734: .4byte gUnk_080CFFC4 thumb_func_start sub_0803C738 sub_0803C738: @ 0x0803C738 push {r4, lr} adds r4, r0, #0 ldr r1, _0803C754 @ =gUnk_080D0110 bl sub_0800129E movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, pc} .align 2, 0 _0803C754: .4byte gUnk_080D0110 thumb_func_start sub_0803C758 sub_0803C758: @ 0x0803C758 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 beq _0803C76C cmp r0, #7 beq _0803C76C adds r0, r4, #0 bl sub_0803CAD0 _0803C76C: ldr r0, _0803C780 @ =gUnk_080D0128 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _0803C780: .4byte gUnk_080D0128 thumb_func_start sub_0803C784 sub_0803C784: @ 0x0803C784 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0x1d bne _0803C7A2 movs r0, #0x80 lsls r0, r0, #0xa str r0, [r4, #0x20] adds r0, r4, #0 bl sub_0803CBAC b _0803C7FA _0803C7A2: adds r0, r4, #0 adds r0, #0x3f ldrb r0, [r0] cmp r0, #0x43 bne _0803C7FA adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _0803C7FA adds r0, r4, #0 adds r0, #0x3e ldrb r1, [r0] movs r0, #0x10 eors r0, r1 lsls r1, r0, #3 ldr r3, _0803C818 @ =gUnk_080C9160 lsls r0, r0, #4 adds r0, r0, r3 movs r5, #0 ldrsh r0, [r0, r5] cmp r0, #0 bge _0803C7D8 adds r0, #0x1f _0803C7D8: asrs r0, r0, #5 ldrh r5, [r2, #0x2e] adds r0, r0, r5 strh r0, [r2, #0x2e] adds r0, r1, #0 adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r3 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 bge _0803C7F2 adds r0, #0x1f _0803C7F2: asrs r1, r0, #5 ldrh r0, [r2, #0x32] subs r0, r0, r1 strh r0, [r2, #0x32] _0803C7FA: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _0803C80C adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _0803C80C: ldr r1, _0803C81C @ =gUnk_080D0110 adds r0, r4, #0 bl sub_0804AA30 pop {r4, r5, pc} .align 2, 0 _0803C818: .4byte gUnk_080C9160 _0803C81C: .4byte gUnk_080D0110 thumb_func_start sub_0803C820 sub_0803C820: @ 0x0803C820 push {r4, lr} adds r4, r0, #0 bl sub_0806F520 cmp r0, #0 beq _0803C83C ldr r0, _0803C840 @ =gUnk_080D0148 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _0803C83C: pop {r4, pc} .align 2, 0 _0803C840: .4byte gUnk_080D0148 thumb_func_start sub_0803C844 sub_0803C844: @ 0x0803C844 movs r1, #1 strb r1, [r0, #0xd] movs r1, #0x3c strb r1, [r0, #0x1d] bx lr .align 2, 0 thumb_func_start sub_0803C850 sub_0803C850: @ 0x0803C850 push {lr} adds r2, r0, #0 ldr r0, [r2, #0x54] cmp r0, #0 beq _0803C864 adds r1, r2, #0 adds r1, #0x62 ldrb r1, [r1] adds r0, #0x62 strb r1, [r0] _0803C864: adds r0, r2, #0 bl sub_0806F4E8 pop {pc} thumb_func_start sub_0803C86C sub_0803C86C: @ 0x0803C86C push {r4, lr} adds r4, r0, #0 bl sub_0803CBAC movs r0, #0 str r0, [r4, #0x54] pop {r4, pc} .align 2, 0 thumb_func_start sub_0803C87C sub_0803C87C: @ 0x0803C87C push {r4, lr} adds r4, r0, #0 movs r1, #0x11 movs r2, #0 bl sub_0804A98C cmp r0, #0 beq _0803C8B4 str r4, [r0, #0x50] str r0, [r4, #0x54] adds r0, r4, #0 bl sub_0804A720 movs r0, #1 strb r0, [r4, #0xc] ldr r0, _0803C8B8 @ =0x0000FFFE strh r0, [r4, #0x36] adds r1, r4, #0 adds r1, #0x63 movs r0, #0xff strb r0, [r1] ldrh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x74 strh r1, [r0] ldrh r1, [r4, #0x32] adds r0, #2 strh r1, [r0] _0803C8B4: pop {r4, pc} .align 2, 0 _0803C8B8: .4byte 0x0000FFFE thumb_func_start sub_0803C8BC sub_0803C8BC: @ 0x0803C8BC push {r4, lr} adds r4, r0, #0 movs r1, #0 bl sub_0803CA84 adds r0, r4, #0 bl sub_0803CA4C cmp r0, #0 beq _0803C8E0 movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #6 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] _0803C8E0: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803C8E4 sub_0803C8E4: @ 0x0803C8E4 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 _0803C914 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x42 strb r0, [r1] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_080042AC _0803C914: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803C918 sub_0803C918: @ 0x0803C918 push {r4, lr} adds r4, r0, #0 bl sub_0803CB04 cmp r0, #0 bne _0803C94E adds r0, r4, #0 bl sub_0803CA4C cmp r0, #0 bne _0803C946 movs r0, #4 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x43 strb r0, [r1] ldrb r1, [r4, #0x14] adds r1, #0xc adds r0, r4, #0 bl sub_080042AC b _0803C94E _0803C946: adds r0, r4, #0 movs r1, #4 bl sub_0803CA84 _0803C94E: pop {r4, pc} thumb_func_start sub_0803C950 sub_0803C950: @ 0x0803C950 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 _0803C97A movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 strb r0, [r4, #0x18] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_080042AC _0803C97A: pop {r4, pc} thumb_func_start sub_0803C97C sub_0803C97C: @ 0x0803C97C 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 _0803C9D2 adds r0, r4, #0 bl sub_0803CB64 movs r0, #6 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x42 strb r0, [r1] bl sub_08000E50 movs r1, #1 ands r0, r1 adds r2, r4, #0 adds r2, #0x79 cmp r0, #0 beq _0803C9C2 ldrb r0, [r2] cmp r0, #0 bne _0803C9C2 movs r0, #0xf strb r0, [r4, #0xe] strb r1, [r2] b _0803C9D2 _0803C9C2: movs r1, #0 movs r0, #0x1e strb r0, [r4, #0xe] strb r1, [r2] ldr r0, [r4, #0x54] ldrb r1, [r4, #0x14] bl sub_080042AC _0803C9D2: pop {r4, pc} thumb_func_start sub_0803C9D4 sub_0803C9D4: @ 0x0803C9D4 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 _0803CA08 adds r0, r2, #0 adds r0, #0x79 ldrb r0, [r0] cmp r0, #1 bne _0803C9F6 adds r0, r2, #0 bl sub_0803CB34 b _0803CA08 _0803C9F6: movs r0, #3 strb r0, [r2, #0xc] movs r0, #0xb4 strb r0, [r2, #0xe] ldrb r1, [r2, #0x14] adds r1, #4 adds r0, r2, #0 bl sub_080042AC _0803CA08: pop {pc} .align 2, 0 thumb_func_start sub_0803CA0C sub_0803CA0C: @ 0x0803CA0C push {r4, lr} adds r4, r0, #0 movs r1, #0xc0 lsls r1, r1, #5 bl sub_08003FC4 cmp r0, #0 bne _0803CA3E adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0x13 bhi _0803CA3E ldrb r1, [r4, #0x14] adds r1, #0x14 adds r0, r4, #0 bl sub_080042AC adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] _0803CA3E: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_0803CC08 pop {r4, pc} thumb_func_start sub_0803CA4C sub_0803CA4C: @ 0x0803CA4C push {r4, r5, lr} adds r5, r0, #0 ldr r4, _0803CA7C @ =gUnk_03001160 movs r0, #0x2e ldrsh r1, [r4, r0] movs r0, #0x32 ldrsh r2, [r4, r0] adds r0, r5, #0 movs r3, #0x28 bl sub_0806FCB8 cmp r0, #0 bne _0803CA80 adds r0, r5, #0 adds r1, r4, #0 movs r2, #0x70 movs r3, #0x50 bl sub_080041A0 cmp r0, #0 beq _0803CA80 movs r0, #1 b _0803CA82 .align 2, 0 _0803CA7C: .4byte gUnk_03001160 _0803CA80: movs r0, #0 _0803CA82: pop {r4, r5, pc} thumb_func_start sub_0803CA84 sub_0803CA84: @ 0x0803CA84 push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 ldr r1, _0803CACC @ =gUnk_03001160 bl sub_080045C4 adds r4, r0, #0 subs r0, r4, #3 movs r1, #7 ands r0, r1 cmp r0, #2 bhi _0803CAAA ldrb r0, [r5, #0x14] lsrs r1, r4, #3 subs r0, r0, r1 movs r1, #3 ands r0, r1 cmp r0, #1 bls _0803CACA _0803CAAA: adds r0, r4, #4 movs r1, #0x18 ands r0, r1 lsrs r4, r0, #3 ldrb r0, [r5, #0x14] cmp r4, r0 beq _0803CACA strb r4, [r5, #0x14] adds r1, r4, r6 adds r0, r5, #0 bl sub_080042AC ldr r0, [r5, #0x54] adds r1, r4, #0 bl sub_080042AC _0803CACA: pop {r4, r5, r6, pc} .align 2, 0 _0803CACC: .4byte gUnk_03001160 thumb_func_start sub_0803CAD0 sub_0803CAD0: @ 0x0803CAD0 push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r4, #0 adds r6, #0x74 ldrh r1, [r6] adds r5, r4, #0 adds r5, #0x76 ldrh r2, [r5] movs r3, #1 bl sub_0806FCB8 cmp r0, #0 bne _0803CB02 movs r1, #0x2e ldrsh r0, [r4, r1] movs r2, #0x32 ldrsh r1, [r4, r2] ldrh r2, [r6] ldrh r3, [r5] bl sub_080045D4 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_080AEFE0 _0803CB02: pop {r4, r5, r6, pc} thumb_func_start sub_0803CB04 sub_0803CB04: @ 0x0803CB04 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r5, r0, #0x18 cmp r5, #0 beq _0803CB1A movs r0, #0 b _0803CB32 _0803CB1A: adds r0, r4, #0 bl sub_0803CB34 adds r0, r4, #0 adds r0, #0x79 strb r5, [r0] ldr r0, [r4, #0x54] ldrb r1, [r4, #0x14] adds r1, #4 bl sub_080042AC movs r0, #1 _0803CB32: pop {r4, r5, pc} thumb_func_start sub_0803CB34 sub_0803CB34: @ 0x0803CB34 push {r4, lr} adds r4, r0, #0 movs r0, #5 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x3f movs r0, #0xa6 strb r0, [r1] ldr r1, _0803CB60 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 adds r1, r4, #0 adds r1, #0x78 strb r0, [r1] ldrb r1, [r4, #0x14] adds r1, #8 adds r0, r4, #0 bl sub_080042AC pop {r4, pc} .align 2, 0 _0803CB60: .4byte gUnk_03001160 thumb_func_start sub_0803CB64 sub_0803CB64: @ 0x0803CB64 push {r4, r5, lr} adds r4, r0, #0 movs r1, #0x12 movs r2, #0 bl sub_0804A98C adds r5, r0, #0 cmp r5, #0 beq _0803CBA0 ldrb r1, [r4, #0x14] lsls r1, r1, #1 ldr r0, _0803CBA4 @ =gUnk_080D0154 adds r1, r1, r0 adds r0, r4, #0 adds r0, #0x78 ldrb r0, [r0] strb r0, [r5, #0x15] movs r2, #0 ldrsb r2, [r1, r2] lsls r2, r2, #0x10 movs r3, #1 ldrsb r3, [r1, r3] lsls r3, r3, #0x10 adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA48 ldr r0, _0803CBA8 @ =0x00000193 bl sub_08004488 _0803CBA0: pop {r4, r5, pc} .align 2, 0 _0803CBA4: .4byte gUnk_080D0154 _0803CBA8: .4byte 0x00000193 thumb_func_start sub_0803CBAC sub_0803CBAC: @ 0x0803CBAC push {lr} adds r3, r0, #0 ldr r2, [r3, #0x54] cmp r2, #0 beq _0803CBC6 ldrb r1, [r2, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x10] adds r1, r2, #0 adds r1, #0x3f movs r0, #0x43 strb r0, [r1] _0803CBC6: movs r0, #7 strb r0, [r3, #0xc] ldrb r1, [r3, #0x18] subs r0, #0xb ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r3, #0x18] adds r2, r3, #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 r2, #0x12 ldrb r1, [r2] movs r0, #0x7b ands r0, r1 strb r0, [r2] adds r1, r3, #0 adds r1, #0x3f movs r0, #0x42 strb r0, [r1] ldrb r1, [r3, #0x14] adds r1, #0x10 adds r0, r3, #0 bl sub_080042AC pop {pc} .align 2, 0 thumb_func_start sub_0803CC08 sub_0803CC08: @ 0x0803CC08 push {r4, r5, lr} adds r4, r0, #0 ldr r5, [r4, #0x54] cmp r5, #0 beq _0803CCB4 movs r1, #0x36 ldrsh r0, [r5, r1] movs r2, #0x36 ldrsh r1, [r4, r2] subs r0, r0, r1 cmp r0, #2 bhi _0803CCB4 ldr r0, [r4, #0x20] cmp r0, #0 bge _0803CCB4 movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #0 movs r3, #6 bl sub_0806FCB8 cmp r0, #0 beq _0803CCB4 adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _0803CC56 ldrh r0, [r1, #0x2e] adds r0, #6 strh r0, [r1, #0x2e] ldrh r0, [r1, #0x32] adds r0, #6 strh r0, [r1, #0x32] _0803CC56: adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _0803CC72 ldrh r0, [r1, #0x2e] subs r0, #6 strh r0, [r1, #0x2e] ldrh r0, [r1, #0x32] adds r0, #6 strh r0, [r1, #0x32] _0803CC72: adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _0803CC8E ldrh r0, [r1, #0x2e] adds r0, #6 strh r0, [r1, #0x2e] ldrh r0, [r1, #0x32] subs r0, #6 strh r0, [r1, #0x32] _0803CC8E: adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _0803CCAA ldrh r0, [r1, #0x2e] subs r0, #6 strh r0, [r1, #0x2e] ldrh r0, [r1, #0x32] subs r0, #6 strh r0, [r1, #0x32] _0803CCAA: movs r0, #0 str r0, [r4, #0x54] adds r0, r5, #0 bl sub_0805E7BC _0803CCB4: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0803CCB8 sub_0803CCB8: @ 0x0803CCB8 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _0803CCD0 @ =gUnk_080D0418 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _0803CCD0: .4byte gUnk_080D0418 thumb_func_start sub_0803CCD4 sub_0803CCD4: @ 0x0803CCD4 push {lr} ldr r2, _0803CCE8 @ =gUnk_080D0430 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0803CCE8: .4byte gUnk_080D0430 thumb_func_start sub_0803CCEC sub_0803CCEC: @ 0x0803CCEC push {lr} adds r2, r0, #0 adds r2, #0x42 movs r1, #0 strb r1, [r2] bl sub_0803CCD4 pop {pc} thumb_func_start sub_0803CCFC sub_0803CCFC: @ 0x0803CCFC push {r4, lr} adds r4, r0, #0 bl sub_0806F520 cmp r0, #0 bne _0803CD16 ldrb r0, [r4, #0xd] cmp r0, #2 bne _0803CD26 adds r0, r4, #0 bl sub_0803CE3C b _0803CD26 _0803CD16: ldr r0, _0803CD28 @ =gUnk_080D043C ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _0803CD26: pop {r4, pc} .align 2, 0 _0803CD28: .4byte gUnk_080D043C thumb_func_start sub_0803CD2C sub_0803CD2C: @ 0x0803CD2C movs r1, #1 strb r1, [r0, #0xd] movs r1, #0x3c strb r1, [r0, #0x1d] bx lr .align 2, 0 thumb_func_start sub_0803CD38 sub_0803CD38: @ 0x0803CD38 push {lr} bl sub_0806F4E8 pop {pc} thumb_func_start sub_0803CD40 sub_0803CD40: @ 0x0803CD40 push {r4, lr} adds r4, r0, #0 bl sub_0806F3E4 cmp r0, #0 beq _0803CD66 movs r0, #2 rsbs r0, r0, #0 bl sub_080526A0 ldr r0, _0803CD68 @ =gUnk_03001160 movs r1, #0x7a bl sub_0800449C bl sub_08079D84 adds r0, r4, #0 bl sub_0803CE3C _0803CD66: pop {r4, pc} .align 2, 0 _0803CD68: .4byte gUnk_03001160 thumb_func_start sub_0803CD6C sub_0803CD6C: @ 0x0803CD6C push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldr r0, _0803CDA4 @ =0x0000FFFE strh r0, [r4, #0x36] ldrb r0, [r4, #0xa] bl sub_0804B128 str r0, [r4, #0x54] str r0, [r4, #0x50] ldrh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x78 strh r1, [r0] ldrh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x7a strh r0, [r1] adds r0, r4, #0 movs r1, #4 bl sub_080042AC adds r0, r4, #0 bl sub_0803CE14 pop {r4, pc} .align 2, 0 _0803CDA4: .4byte 0x0000FFFE thumb_func_start sub_0803CDA8 sub_0803CDA8: @ 0x0803CDA8 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 ldrb r1, [r4, #0x15] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0803CDC0 adds r0, r4, #0 bl sub_0806F69C _0803CDC0: adds r1, r4, #0 adds r1, #0x74 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0803CDD6 adds r0, r4, #0 bl sub_0803CE14 _0803CDD6: pop {r4, pc} thumb_func_start sub_0803CDD8 sub_0803CDD8: @ 0x0803CDD8 push {r4, r5, lr} adds r4, r0, #0 ldrb r1, [r4, #0x18] lsls r0, r1, #0x1e lsrs r0, r0, #0x1e movs r2, #1 eors r0, r2 movs r5, #4 rsbs r5, r5, #0 adds r3, r5, #0 ands r3, r1 orrs r3, r0 strb r3, [r4, #0x18] ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803CE10 movs r0, #1 strb r2, [r4, #0xc] ldrb r1, [r4, #0x10] movs r2, #0x80 orrs r1, r2 strb r1, [r4, #0x10] ands r3, r5 orrs r3, r0 strb r3, [r4, #0x18] _0803CE10: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0803CE14 sub_0803CE14: @ 0x0803CE14 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x54 adds r2, r4, #0 adds r2, #0x74 bl sub_080A2CC0 ldrb r1, [r4, #0x15] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0803CE38 lsrs r1, r1, #3 adds r1, #4 adds r0, r4, #0 bl sub_080042AC _0803CE38: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803CE3C sub_0803CE3C: @ 0x0803CE3C push {r4, lr} adds r4, r0, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r2, r4, #0 adds r2, #0x3a ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] adds r0, r4, #0 adds r0, #0x78 ldrh r0, [r0] strh r0, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x7a ldrh r0, [r0] strh r0, [r4, #0x32] ldr r0, [r4, #0x50] str r0, [r4, #0x54] adds r0, r4, #0 bl sub_0803CE14 pop {r4, pc} thumb_func_start sub_0803CE80 sub_0803CE80: @ 0x0803CE80 push {lr} ldr r2, _0803CE94 @ =gUnk_080D0448 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0803CE94: .4byte gUnk_080D0448 thumb_func_start sub_0803CE98 sub_0803CE98: @ 0x0803CE98 push {r4, r5, r6, lr} adds r6, r0, #0 adds r1, r6, #0 adds r1, #0x84 ldrh r2, [r1] movs r5, #0xf0 lsls r5, r5, #8 adds r0, r5, #0 ands r0, r2 lsrs r0, r0, #5 strh r0, [r6, #0x24] ldrh r2, [r1] ldr r4, _0803CF1C @ =0x00000FFF adds r0, r4, #0 ands r0, r2 strh r0, [r1] adds r0, r6, #0 bl sub_0804A720 movs r0, #1 strb r0, [r6, #0xc] adds r3, r6, #0 adds r3, #0x82 ldrh r0, [r3] ands r4, r0 adds r0, r6, #0 adds r0, #0x74 strh r4, [r0] ldrh r0, [r3] movs r1, #0x3f ands r1, r0 lsls r1, r1, #4 ldr r2, _0803CF20 @ =gUnk_03000BF0 ldrh r0, [r2, #6] adds r0, #8 adds r1, r1, r0 strh r1, [r6, #0x2e] ldrh r1, [r3] movs r0, #0xfc lsls r0, r0, #4 ands r0, r1 lsrs r0, r0, #2 ldrh r1, [r2, #8] adds r1, #8 adds r0, r0, r1 strh r0, [r6, #0x32] movs r1, #0 ldrsh r0, [r3, r1] ands r0, r5 asrs r0, r0, #0xa strb r0, [r6, #0x15] ldrb r0, [r6, #0xa] lsls r0, r0, #2 adds r1, r6, #0 adds r1, #0x78 strh r0, [r1] adds r0, r6, #0 bl sub_0803CFF0 cmp r0, #0 beq _0803CF18 adds r0, r6, #0 bl sub_0803D0B0 _0803CF18: pop {r4, r5, r6, pc} .align 2, 0 _0803CF1C: .4byte 0x00000FFF _0803CF20: .4byte gUnk_03000BF0 thumb_func_start sub_0803CF24 sub_0803CF24: @ 0x0803CF24 push {r4, lr} adds r4, r0, #0 bl sub_0803CFD8 cmp r0, #0 beq _0803CF36 adds r0, r4, #0 bl sub_0803D024 _0803CF36: pop {r4, pc} thumb_func_start sub_0803CF38 sub_0803CF38: @ 0x0803CF38 push {r4, lr} adds r4, r0, #0 bl sub_0803CFF0 cmp r0, #0 beq _0803CF4C adds r0, r4, #0 bl sub_0803D0B0 b _0803CF8C _0803CF4C: adds r0, r4, #0 movs r1, #0 bl sub_08049FDC cmp r0, #0 beq _0803CF8C ldr r0, _0803CF90 @ =gUnk_020000B0 ldr r0, [r0] movs r2, #0x2e ldrsh r1, [r0, r2] movs r3, #0x32 ldrsh r2, [r0, r3] adds r0, r4, #0 movs r3, #0x20 bl sub_0806FCB8 cmp r0, #0 bne _0803CF8C adds r1, r4, #0 adds r1, #0x7a ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0803CF8C adds r0, r4, #0 bl sub_0803D058 adds r0, r4, #0 bl sub_0803D024 _0803CF8C: pop {r4, pc} .align 2, 0 _0803CF90: .4byte gUnk_020000B0 thumb_func_start sub_0803CF94 sub_0803CF94: @ 0x0803CF94 push {r4, lr} adds r4, r0, #0 adds r0, #0x74 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080002B0 cmp r0, #0x76 bne _0803CFBA adds r1, r4, #0 adds r1, #0x80 movs r0, #0 strh r0, [r1] adds r0, r4, #0 bl sub_0803D024 b _0803CFD4 _0803CFBA: adds r0, r4, #0 adds r0, #0x7c ldrh r0, [r0] cmp r0, #0 beq _0803CFD4 adds r0, r4, #0 bl sub_0803CFD8 cmp r0, #0 beq _0803CFD4 adds r0, r4, #0 bl sub_0803D024 _0803CFD4: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803CFD8 sub_0803CFD8: @ 0x0803CFD8 push {lr} adds r1, r0, #0 adds r1, #0x7c ldrh r0, [r1] cmp r0, #0 bne _0803CFE8 movs r0, #1 b _0803CFEE _0803CFE8: ldrh r0, [r1] bl sub_0807CBE4 _0803CFEE: pop {pc} thumb_func_start sub_0803CFF0 sub_0803CFF0: @ 0x0803CFF0 push {lr} adds r1, r0, #0 adds r1, #0x80 ldrh r2, [r1] cmp r2, #0 beq _0803D01E adds r0, #0x7c ldrh r0, [r0] cmp r2, r0 bne _0803D016 adds r0, r2, #0 bl sub_0807CBE4 movs r1, #0 cmp r0, #0 bne _0803D012 movs r1, #1 _0803D012: adds r0, r1, #0 b _0803D020 _0803D016: ldrh r0, [r1] bl sub_0807CBE4 b _0803D020 _0803D01E: movs r0, #0 _0803D020: pop {pc} .align 2, 0 thumb_func_start sub_0803D024 sub_0803D024: @ 0x0803D024 push {r4, lr} adds r4, r0, #0 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x78 ldrh r1, [r0] cmp r1, #0 beq _0803D03A adds r0, #2 b _0803D04E _0803D03A: bl sub_08000E50 ldr r2, _0803D054 @ =gUnk_080D0458 movs r1, #7 ands r1, r0 lsls r1, r1, #1 adds r1, r1, r2 ldrh r1, [r1] adds r0, r4, #0 adds r0, #0x7a _0803D04E: strh r1, [r0] pop {r4, pc} .align 2, 0 _0803D054: .4byte gUnk_080D0458 thumb_func_start sub_0803D058 sub_0803D058: @ 0x0803D058 push {r4, r5, lr} adds r4, r0, #0 movs r1, #0x16 movs r2, #0 bl sub_0804A98C adds r5, r0, #0 cmp r5, #0 beq _0803D0AE ldrh r1, [r4, #0x24] movs r2, #0x24 ldrsh r0, [r4, r2] cmp r0, #0 beq _0803D078 strh r1, [r5, #0x24] b _0803D08A _0803D078: bl sub_08000E50 ldr r2, _0803D0A4 @ =gUnk_080D0468 movs r1, #3 ands r1, r0 lsls r1, r1, #1 adds r1, r1, r2 ldrh r0, [r1] strh r0, [r5, #0x24] _0803D08A: ldrb r1, [r4, #0x15] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _0803D0AC ldr r0, _0803D0A8 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl sub_080045C4 strb r0, [r5, #0x15] b _0803D0AE .align 2, 0 _0803D0A4: .4byte gUnk_080D0468 _0803D0A8: .4byte gUnk_020000B0 _0803D0AC: strb r1, [r5, #0x15] _0803D0AE: pop {r4, r5, pc} thumb_func_start sub_0803D0B0 sub_0803D0B0: @ 0x0803D0B0 push {lr} movs r1, #3 strb r1, [r0, #0xc] adds r1, r0, #0 adds r1, #0x74 ldrh r1, [r1] adds r0, #0x38 ldrb r2, [r0] movs r0, #0x75 bl sub_0807B7D8 pop {pc} thumb_func_start sub_0803D0C8 sub_0803D0C8: @ 0x0803D0C8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #1 beq _0803D0F4 cmp r0, #1 bgt _0803D0DC cmp r0, #0 beq _0803D0E6 b _0803D12C _0803D0DC: cmp r0, #2 beq _0803D104 cmp r0, #3 beq _0803D11C b _0803D12C _0803D0E6: adds r0, r4, #0 bl sub_0803DFBC ldr r0, _0803D0F0 @ =gUnk_080D0470 b _0803D106 .align 2, 0 _0803D0F0: .4byte gUnk_080D0470 _0803D0F4: adds r0, r4, #0 bl sub_0803DC58 ldr r0, _0803D100 @ =gUnk_080D0490 b _0803D106 .align 2, 0 _0803D100: .4byte gUnk_080D0490 _0803D104: ldr r0, _0803D118 @ =gUnk_080D0498 _0803D106: ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 b _0803D12C .align 2, 0 _0803D118: .4byte gUnk_080D0498 _0803D11C: ldr r0, _0803D130 @ =gUnk_080D04A0 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _0803D12C: pop {r4, pc} .align 2, 0 _0803D130: .4byte gUnk_080D04A0 thumb_func_start sub_0803D134 sub_0803D134: @ 0x0803D134 push {r4, r5, r6, lr} adds r5, r0, #0 movs r0, #0x7b bl sub_0807CBD0 cmp r0, #0 beq _0803D146 bl sub_0805E780 _0803D146: adds r0, r5, #0 bl sub_0804A720 movs r0, #0 bl sub_0807CC3C cmp r0, #0 bne _0803D158 b _0803D25A _0803D158: ldr r0, _0803D25C @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x41 bhi _0803D25A movs r0, #0 bl sub_0807CD8C movs r2, #0 movs r0, #3 strb r0, [r5, #0xc] adds r1, r5, #0 adds r1, #0x74 movs r0, #0xff strb r0, [r1] strb r2, [r5, #0xe] adds r0, r5, #0 adds r0, #0x76 strb r2, [r0] ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r5, #0x18] movs r0, #1 rsbs r0, r0, #0 strb r0, [r5, #0x15] adds r3, r5, #0 adds r3, #0x29 ldrb r1, [r3] subs r0, #7 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r3] str r2, [r5, #0x34] adds r1, r5, #0 adds r1, #0x80 movs r0, #2 strb r0, [r1] adds r0, r5, #0 adds r0, #0x86 strb r2, [r0] adds r1, #5 movs r0, #0x30 strb r0, [r1] subs r1, #1 subs r0, #0x31 strb r0, [r1] adds r0, r5, #0 adds r0, #0x87 strb r2, [r0] subs r0, #5 strb r2, [r0] adds r0, #1 strb r2, [r0] ldr r0, [r5, #0x2c] str r0, [r5, #0x78] ldr r0, [r5, #0x30] str r0, [r5, #0x7c] movs r0, #0x4a movs r1, #1 bl sub_0804AA60 adds r4, r0, #0 str r5, [r4, #0x50] str r4, [r5, #0x54] movs r6, #0 _0803D1E2: movs r0, #0x54 movs r1, #0 bl sub_0804AA60 adds r4, r0, #0 str r5, [r4, #0x50] adds r0, #0x79 strb r6, [r0] adds r6, #1 cmp r6, #5 ble _0803D1E2 movs r6, #0 _0803D1FA: movs r0, #0x4a movs r1, #3 bl sub_0804AA60 adds r4, r0, #0 str r5, [r4, #0x50] strb r6, [r4, #0xe] adds r6, #1 cmp r6, #3 ble _0803D1FA movs r6, #0 _0803D210: movs r0, #0x54 movs r1, #1 bl sub_0804AA60 adds r4, r0, #0 str r5, [r4, #0x50] movs r0, #1 adds r2, r6, #0 ands r2, r0 lsls r2, r2, #6 ldrb r0, [r4, #0x18] movs r3, #0x41 rsbs r3, r3, #0 adds r1, r3, #0 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] lsls r1, r6, #1 ldr r0, _0803D260 @ =gUnk_080D04A8 adds r1, r1, r0 movs r2, #0 ldrsb r2, [r1, r2] lsls r2, r2, #0x10 movs r3, #1 ldrsb r3, [r1, r3] lsls r3, r3, #0x10 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA48 adds r6, #1 cmp r6, #1 ble _0803D210 adds r0, r5, #0 movs r1, #0 bl sub_080042AC _0803D25A: pop {r4, r5, r6, pc} .align 2, 0 _0803D25C: .4byte gUnk_03003DBC _0803D260: .4byte gUnk_080D04A8 thumb_func_start sub_0803D264 sub_0803D264: @ 0x0803D264 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _0803D318 subs r0, #1 strb r0, [r4, #0xe] movs r7, #0xff lsls r0, r0, #0x18 lsrs r6, r0, #0x18 cmp r6, #0 beq _0803D27E b _0803D400 _0803D27E: adds r5, r4, #0 adds r5, #0x74 ldrb r1, [r5] movs r0, #0x70 ands r0, r1 cmp r0, #0 bne _0803D2E4 ldr r0, [r4, #0x54] ldrb r0, [r0, #0xe] cmp r0, #0 bne _0803D2DE adds r0, r4, #0 bl sub_0803DD78 adds r0, r4, #0 adds r0, #0x75 ldrb r0, [r0] cmp r0, #0 beq _0803D2B0 movs r0, #2 strb r0, [r4, #0xc] strb r6, [r5] movs r0, #0x10 strb r0, [r4, #0xe] b _0803D2D6 _0803D2B0: adds r0, r4, #0 adds r0, #0x86 ldrb r0, [r0] cmp r0, #0 bne _0803D2C4 adds r0, r4, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 beq _0803D2D6 _0803D2C4: bl sub_08000E50 movs r1, #0x80 ands r1, r0 lsrs r1, r1, #3 movs r0, #8 orrs r1, r0 strb r1, [r4, #0x15] b _0803D400 _0803D2D6: ldrb r0, [r4, #0x15] orrs r0, r7 strb r0, [r4, #0x15] b _0803D400 _0803D2DE: movs r0, #2 strb r0, [r4, #0xe] b _0803D400 _0803D2E4: movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r5] movs r0, #0x80 ands r0, r1 adds r1, r4, #0 adds r1, #0x75 strb r0, [r1] strb r6, [r5] movs r0, #0xc0 strb r0, [r4, #0xe] ldrb r0, [r4, #0x15] orrs r0, r7 strb r0, [r4, #0x15] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0 bl sub_080042AC b _0803D400 _0803D318: adds r1, r4, #0 adds r1, #0x77 ldrb r0, [r1] subs r0, #1 strb r0, [r1] movs r6, #0xff lsls r0, r0, #0x18 lsrs r5, r0, #0x18 cmp r5, #0 bne _0803D3BA adds r0, r4, #0 bl sub_0803DEE0 cmp r0, #1 beq _0803D366 cmp r0, #1 blo _0803D344 cmp r0, #2 beq _0803D384 cmp r0, #3 beq _0803D374 b _0803D3BA _0803D344: movs r0, #4 strb r0, [r4, #0xc] movs r0, #0xa0 strb r0, [r4, #0xe] ldrb r0, [r4, #0x15] orrs r0, r6 strb r0, [r4, #0x15] adds r1, r4, #0 adds r1, #0x84 ldrb r0, [r1] orrs r0, r6 strb r0, [r1] adds r0, r4, #0 movs r1, #1 bl sub_080042AC b _0803D3BA _0803D366: movs r0, #6 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x74 strb r5, [r0] strb r5, [r4, #0xe] b _0803D3B4 _0803D374: movs r0, #5 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x74 strb r5, [r0] movs r0, #0x20 strb r0, [r4, #0xf] b _0803D3B4 _0803D384: adds r0, r4, #0 adds r0, #0x74 strb r5, [r0] movs r0, #0x20 strb r0, [r4, #0xe] adds r0, r4, #0 adds r0, #0x86 ldrb r0, [r0] cmp r0, #0 bne _0803D3A2 adds r0, r4, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 beq _0803D3B4 _0803D3A2: bl sub_08000E50 movs r1, #0x80 ands r1, r0 lsrs r1, r1, #3 movs r0, #8 orrs r1, r0 strb r1, [r4, #0x15] b _0803D3BA _0803D3B4: ldrb r0, [r4, #0x15] orrs r0, r6 strb r0, [r4, #0x15] _0803D3BA: ldr r0, [r4, #0x54] ldrb r0, [r0, #0xe] cmp r0, #0 bne _0803D400 adds r2, r4, #0 adds r2, #0x85 ldrb r0, [r2] adds r1, r0, #1 strb r1, [r2] movs r0, #3 ands r0, r1 cmp r0, #0 bne _0803D3FA movs r0, #0x30 ands r0, r1 cmp r0, #0x10 beq _0803D3F4 cmp r0, #0x10 bgt _0803D3E6 cmp r0, #0 beq _0803D3EE b _0803D3FA _0803D3E6: cmp r0, #0x20 beq _0803D3F4 cmp r0, #0x30 bne _0803D3FA _0803D3EE: ldrh r0, [r4, #0x32] adds r0, #1 b _0803D3F8 _0803D3F4: ldrh r0, [r4, #0x32] subs r0, #1 _0803D3F8: strh r0, [r4, #0x32] _0803D3FA: adds r0, r4, #0 bl sub_080AEFB4 _0803D400: adds r0, r4, #0 bl sub_080042B8 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0803D408 sub_0803D408: @ 0x0803D408 push {r4, r5, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x74 ldrb r0, [r2] cmp r0, #1 beq _0803D458 cmp r0, #1 bgt _0803D420 cmp r0, #0 beq _0803D42A b _0803D558 _0803D420: cmp r0, #2 beq _0803D478 cmp r0, #3 beq _0803D4FC b _0803D558 _0803D42A: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 beq _0803D438 b _0803D558 _0803D438: ldrb r0, [r2] adds r0, #1 strb r0, [r2] movs r0, #0x20 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #3 bl sub_080042AC ldr r0, _0803D454 @ =0x0000019B bl sub_080A3268 b _0803D558 .align 2, 0 _0803D454: .4byte 0x0000019B _0803D458: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803D558 movs r0, #2 strb r0, [r2] ldrb r1, [r4, #0x18] subs r0, #6 ands r0, r1 strb r0, [r4, #0x18] movs r0, #0x10 strb r0, [r4, #0xe] b _0803D558 _0803D478: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803D558 ldrb r0, [r2] adds r0, #1 strb r0, [r2] adds r0, r4, #0 bl sub_0803E028 cmp r0, #0 bne _0803D4D0 bl sub_08000E50 adds r5, r4, #0 adds r5, #0x81 ldrb r1, [r5] adds r1, #1 movs r2, #3 ands r0, r2 adds r1, r1, r0 strb r1, [r5] ldrb r0, [r5] movs r1, #5 bl __modsi3 strb r0, [r5] ldrb r1, [r5] lsls r1, r1, #2 ldr r0, _0803D4F4 @ =gUnk_080D04AC adds r1, r1, r0 ldr r2, _0803D4F8 @ =gUnk_03000BF0 ldrh r0, [r1] ldrh r3, [r2, #6] adds r0, r0, r3 adds r0, #0x10 strh r0, [r4, #0x2e] ldrh r0, [r1, #2] ldrh r2, [r2, #8] adds r0, r0, r2 adds r0, #0x10 strh r0, [r4, #0x32] _0803D4D0: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #0x20 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #4 bl sub_080042AC movs r0, #0xf5 bl sub_080A3268 b _0803D558 .align 2, 0 _0803D4F4: .4byte gUnk_080D04AC _0803D4F8: .4byte gUnk_03000BF0 _0803D4FC: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803D558 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #4 bls _0803D52E ldr r1, _0803D544 @ =gUnk_03001160 ldrh r0, [r1, #0x2e] strh r0, [r4, #0x2e] ldrh r0, [r1, #0x32] subs r0, #0x18 strh r0, [r4, #0x32] _0803D52E: adds r1, r4, #0 adds r1, #0x77 ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 bne _0803D548 movs r0, #1 strb r0, [r4, #0xc] b _0803D54E .align 2, 0 _0803D544: .4byte gUnk_03001160 _0803D548: movs r0, #0 strb r0, [r2] movs r0, #0x10 _0803D54E: strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0 bl sub_080042AC _0803D558: adds r0, r4, #0 bl sub_080042B8 pop {r4, r5, pc} thumb_func_start sub_0803D560 sub_0803D560: @ 0x0803D560 push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x74 ldrb r0, [r2] cmp r0, #2 beq _0803D62A cmp r0, #2 bgt _0803D57C cmp r0, #0 beq _0803D5BC cmp r0, #1 beq _0803D5F8 b _0803D650 _0803D57C: cmp r0, #0xfe beq _0803D590 cmp r0, #0xfe bgt _0803D58A cmp r0, #3 beq _0803D646 b _0803D650 _0803D58A: cmp r0, #0xff beq _0803D598 b _0803D650 _0803D590: movs r0, #0 strb r0, [r2] movs r0, #1 b _0803D64E _0803D598: movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #4 rsbs r0, r0, #0 cmp r1, r0 beq _0803D5AC ldr r0, [r4, #0x34] ldr r1, _0803D5B8 @ =0xFFFFE000 adds r0, r0, r1 str r0, [r4, #0x34] _0803D5AC: ldrb r0, [r4, #0xe] cmp r0, #2 bne _0803D650 movs r0, #0xfe strb r0, [r2] b _0803D650 .align 2, 0 _0803D5B8: .4byte 0xFFFFE000 _0803D5BC: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803D650 ldrb r0, [r2] adds r0, #1 strb r0, [r2] adds r0, r4, #0 adds r0, #0x75 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 movs r1, #0x20 cmp r0, #0 beq _0803D5E0 movs r1, #0x14 _0803D5E0: strb r1, [r4, #0xe] adds r0, r4, #0 adds r0, #0x86 ldrb r0, [r0] adds r0, #1 asrs r0, r0, #1 lsls r0, r0, #1 adds r0, #2 adds r1, r4, #0 adds r1, #0x80 strb r0, [r1] b _0803D650 _0803D5F8: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803D650 ldrb r0, [r2] adds r0, #1 strb r0, [r2] adds r0, r4, #0 adds r0, #0x75 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0803D620 movs r0, #0xd8 lsls r0, r0, #1 bl sub_080A3268 _0803D620: adds r0, r4, #0 movs r1, #1 bl sub_080042AC b _0803D650 _0803D62A: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803D650 movs r0, #3 strb r0, [r2] adds r0, r4, #0 movs r1, #0 bl sub_080042AC b _0803D650 _0803D646: movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] strb r1, [r2] _0803D64E: strb r0, [r4, #0xe] _0803D650: adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} thumb_func_start sub_0803D658 sub_0803D658: @ 0x0803D658 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r3, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _0803D68E movs r2, #1 strb r2, [r4, #0xc] adds r1, r4, #0 adds r1, #0x84 ldrb r0, [r1] orrs r0, r3 strb r0, [r1] strb r2, [r4, #0xe] ldrb r0, [r4, #0x15] adds r0, #0x10 movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #0 bl sub_080042AC b _0803D6EE _0803D68E: adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0803D6EE movs r0, #0xef ands r0, r1 strb r0, [r2] adds r5, r4, #0 adds r5, #0x84 ldrb r0, [r5] cmp r0, #0xff bne _0803D6C8 ldr r1, _0803D6F8 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 adds r0, #2 movs r1, #0x1c ands r0, r1 ldr r1, _0803D6FC @ =gUnk_080D04C0 lsrs r0, r0, #2 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r5] movs r0, #0 strb r0, [r4, #0xf] _0803D6C8: ldrb r0, [r4, #0xf] cmp r0, #0xf bhi _0803D6EE ldrb r2, [r5] adds r0, r4, #0 movs r1, #0x1a bl sub_0804A98C adds r1, r0, #0 cmp r1, #0 beq _0803D6EE ldrb r0, [r4, #0xf] strb r0, [r1, #0xf] str r4, [r1, #0x50] ldrh r0, [r4, #0x36] strh r0, [r1, #0x36] ldrb r0, [r4, #0xf] adds r0, #1 strb r0, [r4, #0xf] _0803D6EE: adds r0, r4, #0 bl sub_080042B8 pop {r4, r5, pc} .align 2, 0 _0803D6F8: .4byte gUnk_03001160 _0803D6FC: .4byte gUnk_080D04C0 thumb_func_start sub_0803D700 sub_0803D700: @ 0x0803D700 push {r4, r5, r6, lr} adds r4, r0, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 bne _0803D720 movs r0, #1 strb r0, [r4, #0xc] strb r0, [r4, #0xe] movs r0, #0xff strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #0 bl sub_080042AC b _0803D82E _0803D720: adds r2, r4, #0 adds r2, #0x74 ldrb r0, [r2] adds r6, r2, #0 cmp r0, #1 beq _0803D764 cmp r0, #1 bgt _0803D736 cmp r0, #0 beq _0803D744 b _0803D73E _0803D736: cmp r0, #2 beq _0803D78E cmp r0, #3 beq _0803D7FA _0803D73E: adds r5, r4, #0 adds r5, #0x87 b _0803D81C _0803D744: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 adds r5, r4, #0 adds r5, #0x87 cmp r0, #0 bne _0803D81C ldrb r0, [r2] adds r0, #1 strb r0, [r2] adds r0, r4, #0 movs r1, #1 bl sub_080042AC b _0803D81C _0803D764: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x10 ands r0, r1 adds r5, r4, #0 adds r5, #0x87 cmp r0, #0 beq _0803D81C movs r0, #2 strb r0, [r2] bl sub_08000E50 movs r1, #0x3f ands r0, r1 adds r0, #0x40 strb r0, [r4, #0xf] movs r0, #0xf4 bl sub_080A3268 b _0803D81C _0803D78E: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 adds r5, r4, #0 adds r5, #0x87 cmp r0, #0 bne _0803D81C adds r0, r4, #0 adds r0, #0x86 ldrb r0, [r0] cmp r0, #1 bls _0803D7E4 ldrb r0, [r5] cmp r0, #3 bhi _0803D7E4 bl sub_08000E50 movs r1, #0x10 ands r1, r0 cmp r1, #0 beq _0803D7E4 ldrb r0, [r5] adds r0, #1 strb r0, [r5] bl sub_08000E50 movs r1, #0x3f ands r0, r1 adds r0, #0x40 strb r0, [r4, #0xf] ldr r1, _0803D7E0 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 movs r1, #0x10 ands r0, r1 movs r1, #8 orrs r0, r1 b _0803D81A .align 2, 0 _0803D7E0: .4byte gUnk_03001160 _0803D7E4: ldrb r0, [r6] adds r0, #1 movs r1, #0 strb r0, [r6] strb r1, [r5] movs r0, #0x30 strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_080042AC b _0803D81C _0803D7FA: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] movs r3, #0xff lsls r0, r0, #0x18 lsrs r1, r0, #0x18 adds r5, r4, #0 adds r5, #0x87 cmp r1, #0 bne _0803D81C movs r0, #1 strb r0, [r4, #0xc] strb r1, [r2] strb r0, [r4, #0xe] ldrb r0, [r4, #0x15] orrs r0, r3 _0803D81A: strb r0, [r4, #0x15] _0803D81C: ldrb r0, [r5] cmp r0, #0 beq _0803D828 adds r0, r4, #0 bl sub_080AEFB4 _0803D828: adds r0, r4, #0 bl sub_080042B8 _0803D82E: pop {r4, r5, r6, pc} thumb_func_start sub_0803D830 sub_0803D830: @ 0x0803D830 push {r4, r5, lr} adds r5, r0, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 bne _0803D844 movs r0, #1 strb r0, [r5, #0xc] strb r0, [r5, #0xe] b _0803D8F4 _0803D844: adds r4, r5, #0 adds r4, #0x74 ldrb r0, [r4] cmp r0, #1 beq _0803D870 cmp r0, #1 bgt _0803D858 cmp r0, #0 beq _0803D862 b _0803D8EE _0803D858: cmp r0, #2 beq _0803D8C2 cmp r0, #3 beq _0803D8CE b _0803D8EE _0803D862: ldrb r0, [r5, #0xe] cmp r0, #0 beq _0803D8EE movs r0, #1 strb r0, [r4] movs r0, #0x70 b _0803D8EC _0803D870: ldrb r0, [r5, #0xe] subs r1, r0, #1 strb r1, [r5, #0xe] lsls r0, r1, #0x18 cmp r0, #0 bne _0803D8B0 ldrb r0, [r4] adds r0, #1 strb r0, [r4] movs r0, #0xa8 lsls r0, r0, #1 bl sub_080A3268 adds r0, r5, #0 movs r1, #0x18 movs r2, #0 bl sub_0804A98C adds r4, r0, #0 cmp r4, #0 beq _0803D8EE ldr r3, _0803D8AC @ =0xFFF00000 adds r0, r5, #0 adds r1, r4, #0 movs r2, #0 bl sub_0806FA48 str r5, [r4, #0x50] b _0803D8EE .align 2, 0 _0803D8AC: .4byte 0xFFF00000 _0803D8B0: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x40 bne _0803D8EE movs r0, #0xcb lsls r0, r0, #1 bl sub_080A3268 b _0803D8EE _0803D8C2: ldrb r0, [r5, #0xf] cmp r0, #0 beq _0803D8EE movs r0, #0 strb r0, [r5, #0xf] b _0803D8EE _0803D8CE: ldrb r0, [r5, #0xf] cmp r0, #0 bne _0803D8DE movs r0, #1 strb r0, [r5, #0xf] ldr r0, _0803D8F8 @ =0x0000014F bl sub_080A3268 _0803D8DE: ldrb r0, [r5, #0xe] cmp r0, #0 beq _0803D8EE movs r1, #0 movs r0, #1 strb r0, [r5, #0xc] strb r1, [r4] _0803D8EC: strb r0, [r5, #0xe] _0803D8EE: adds r0, r5, #0 bl sub_080042B8 _0803D8F4: pop {r4, r5, pc} .align 2, 0 _0803D8F8: .4byte 0x0000014F thumb_func_start sub_0803D8FC sub_0803D8FC: @ 0x0803D8FC push {r4, r5, lr} adds r2, r0, #0 ldrb r0, [r2, #0xe] cmp r0, #0 beq _0803D968 subs r1, r0, #1 strb r1, [r2, #0xe] lsls r0, r1, #0x18 cmp r0, #0 bne _0803D918 movs r0, #1 bl sub_0807CD10 b _0803D968 _0803D918: movs r0, #7 ands r1, r0 cmp r1, #0 bne _0803D968 adds r0, r2, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC adds r4, r0, #0 cmp r4, #0 beq _0803D968 bl sub_08000E50 ldr r1, _0803D96C @ =0x00003F3F ands r0, r1 movs r3, #0xff adds r1, r0, #0 ands r1, r3 ldr r5, _0803D970 @ =0x0000FFE0 adds r2, r5, #0 adds r1, r2, r1 ldrh r5, [r4, #0x2e] adds r1, r1, r5 strh r1, [r4, #0x2e] lsrs r0, r0, #8 ands r0, r3 adds r2, r2, r0 ldrh r0, [r4, #0x32] adds r2, r2, r0 strh r2, [r4, #0x32] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r2] _0803D968: pop {r4, r5, pc} .align 2, 0 _0803D96C: .4byte 0x00003F3F _0803D970: .4byte 0x0000FFE0 thumb_func_start sub_0803D974 sub_0803D974: @ 0x0803D974 push {r4, r5, lr} adds r4, r0, #0 movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] adds r5, r4, #0 adds r5, #0x74 strb r1, [r5] adds r2, r4, #0 adds r2, #0x75 strb r0, [r2] strb r1, [r4, #0xe] adds r1, r4, #0 adds r1, #0x63 movs r0, #0xff strb r0, [r1] ldr r0, [r4, #0x50] movs r3, #0x80 lsls r3, r3, #9 adds r1, r4, #0 movs r2, #0 bl sub_0806FA48 movs r0, #0x4a movs r1, #2 bl sub_0804AA60 str r4, [r0, #0x50] ldr r1, [r4, #0x50] str r1, [r0, #0x54] ldrb r1, [r5] adds r0, r4, #0 bl sub_080042AC pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0803D9BC sub_0803D9BC: @ 0x0803D9BC push {r4, r5, lr} adds r4, r0, #0 ldr r5, [r4, #0x50] adds r2, r4, #0 adds r2, #0x74 ldrb r0, [r2] cmp r0, #0 bne _0803D9E2 adds r0, r5, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 bne _0803DA44 movs r0, #1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x30 b _0803D9F6 _0803D9E2: adds r0, r5, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 beq _0803DA02 movs r0, #0 strb r0, [r2] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x2f _0803D9F6: strb r0, [r1] ldrb r1, [r2] adds r0, r4, #0 bl sub_080042AC b _0803DA44 _0803DA02: adds r2, r4, #0 adds r2, #0x41 ldrb r1, [r2] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803DA2E adds r0, r4, #0 adds r0, #0x3d ldrb r1, [r0] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0803DA2E adds r0, r5, #0 adds r0, #0x3d strb r1, [r0] ldrb r0, [r2] adds r2, r5, #0 adds r2, #0x41 strb r0, [r2] _0803DA2E: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _0803DA44 adds r0, r4, #0 movs r1, #2 bl sub_080042AC _0803DA44: adds r1, r4, #0 adds r1, #0x75 ldrb r0, [r1] cmp r0, #0 bne _0803DA60 ldrb r0, [r5, #0xc] cmp r0, #2 beq _0803DA72 movs r0, #1 strb r0, [r1] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 b _0803DA70 _0803DA60: ldrb r0, [r5, #0xc] cmp r0, #2 bne _0803DA72 movs r0, #0 strb r0, [r1] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 _0803DA70: strb r0, [r4, #0x10] _0803DA72: ldrb r1, [r5, #0x18] lsls r1, r1, #0x1e lsrs r1, r1, #0x1e ldrb r2, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r5, #0 adds r0, #0x62 ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x62 strb r0, [r1] ldr r0, [r4, #0x50] movs r3, #0x80 lsls r3, r3, #9 adds r1, r4, #0 movs r2, #0 bl sub_0806FA48 adds r0, r4, #0 bl sub_080042B8 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0803DAA8 sub_0803DAA8: @ 0x0803DAA8 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldr r0, [r0, #0x50] movs r3, #0 movs r2, #1 strb r2, [r4, #0xc] adds r1, r4, #0 adds r1, #0x74 strb r2, [r1] adds r1, #1 strb r3, [r1] adds r2, r4, #0 adds r2, #0x63 movs r1, #0xfe strb r1, [r2] movs r1, #0xff strb r1, [r4, #0x15] movs r3, #0x80 lsls r3, r3, #0xa adds r1, r4, #0 movs r2, #0 bl sub_0806FA48 adds r0, r4, #0 movs r1, #2 bl sub_080042AC pop {r4, pc} .align 2, 0 thumb_func_start sub_0803DAE4 sub_0803DAE4: @ 0x0803DAE4 push {r4, r5, lr} adds r4, r0, #0 ldr r5, [r4, #0x50] adds r0, r5, #0 adds r0, #0x74 ldrb r2, [r0] cmp r2, #0 bne _0803DB3E adds r1, r4, #0 adds r1, #0x74 ldrb r0, [r1] cmp r0, #0 beq _0803DB00 strb r2, [r1] _0803DB00: ldr r0, [r5, #0x50] ldrb r1, [r0, #0x15] cmp r1, #0xff beq _0803DB28 adds r2, r4, #0 adds r2, #0x75 ldrb r0, [r2] cmp r0, #0 bne _0803DB16 movs r0, #1 strb r0, [r2] _0803DB16: ldrb r0, [r4, #0x15] cmp r1, r0 beq _0803DB54 strb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 bl sub_080042AC b _0803DB54 _0803DB28: adds r1, r4, #0 adds r1, #0x75 ldrb r0, [r1] cmp r0, #0 beq _0803DB54 strb r2, [r1] adds r0, r4, #0 movs r1, #0 bl sub_080042AC b _0803DB54 _0803DB3E: adds r1, r4, #0 adds r1, #0x74 ldrb r0, [r1] cmp r0, #0 bne _0803DB54 movs r0, #1 strb r0, [r1] adds r0, r4, #0 movs r1, #2 bl sub_080042AC _0803DB54: ldrb r1, [r5, #0x18] lsls r1, r1, #0x1e lsrs r1, r1, #0x1e ldrb r2, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r5, #0 adds r0, #0x62 ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x62 strb r0, [r1] ldr r0, [r5, #0x50] movs r3, #0x80 lsls r3, r3, #0xa adds r1, r4, #0 movs r2, #0 bl sub_0806FA48 adds r0, r4, #0 bl sub_080042B8 pop {r4, r5, pc} thumb_func_start sub_0803DB88 sub_0803DB88: @ 0x0803DB88 push {r4, lr} adds r4, r0, #0 movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x74 strb r1, [r2] movs r0, #0xff strb r0, [r4, #0x15] adds r1, r4, #0 adds r1, #0x63 movs r0, #1 rsbs r0, r0, #0 strb r0, [r1] ldrb r1, [r2] adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 bl sub_0803DC0C pop {r4, pc} .align 2, 0 thumb_func_start sub_0803DBB8 sub_0803DBB8: @ 0x0803DBB8 push {r4, lr} adds r4, r0, #0 ldr r2, [r4, #0x50] ldrb r0, [r2, #0x15] cmp r0, #0xff beq _0803DBE8 adds r1, r4, #0 adds r1, #0x74 ldrb r0, [r1] cmp r0, #0 bne _0803DBD2 movs r0, #1 strb r0, [r1] _0803DBD2: ldrb r0, [r2, #0x15] lsls r1, r0, #0x18 ldrb r2, [r4, #0x15] cmp r0, r2 beq _0803DC02 strb r0, [r4, #0x15] lsrs r1, r1, #0x1b adds r0, r4, #0 bl sub_080042AC b _0803DC02 _0803DBE8: adds r1, r4, #0 adds r1, #0x74 ldrb r0, [r1] cmp r0, #0 beq _0803DC02 movs r0, #0 strb r0, [r1] movs r0, #0xff strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #2 bl sub_080042AC _0803DC02: adds r0, r4, #0 bl sub_0803DC0C pop {r4, pc} .align 2, 0 thumb_func_start sub_0803DC0C sub_0803DC0C: @ 0x0803DC0C push {r4, r5, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldrb r5, [r4, #0xe] lsls r5, r5, #1 ldr r1, _0803DC54 @ =gUnk_080D04C8 adds r5, r5, r1 ldrb r2, [r0, #0x18] lsls r2, r2, #0x1e lsrs r2, r2, #0x1e ldrb r3, [r4, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r3 orrs r1, r2 strb r1, [r4, #0x18] adds r1, r0, #0 adds r1, #0x62 ldrb r1, [r1] adds r2, r4, #0 adds r2, #0x62 strb r1, [r2] movs r2, #0 ldrsb r2, [r5, r2] lsls r2, r2, #0x10 movs r3, #1 ldrsb r3, [r5, r3] adds r3, #1 lsls r3, r3, #0x10 adds r1, r4, #0 bl sub_0806FA48 adds r0, r4, #0 bl sub_080042B8 pop {r4, r5, pc} .align 2, 0 _0803DC54: .4byte gUnk_080D04C8 thumb_func_start sub_0803DC58 sub_0803DC58: @ 0x0803DC58 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r0, #0x3f ldrb r0, [r0] cmp r0, #0x30 beq _0803DC66 b _0803DD74 _0803DC66: ldr r5, [r4, #0x50] adds r2, r4, #0 adds r2, #0x77 movs r7, #0 strb r7, [r2] adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 mov ip, r0 ands r0, r1 adds r6, r2, #0 cmp r0, #0 beq _0803DD20 ldr r0, _0803DCE4 @ =gUnk_080D04D0 adds r3, r5, #0 adds r3, #0x86 ldrb r2, [r3] adds r0, r2, r0 adds r1, r4, #0 adds r1, #0x45 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _0803DCFA adds r0, r2, #1 strb r0, [r3] movs r3, #0xff lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #2 bls _0803DCF0 ldrb r2, [r4, #0x10] movs r1, #0x7f adds r0, r1, #0 ands r0, r2 strb r0, [r4, #0x10] movs r0, #7 strb r0, [r5, #0xc] ldrb r0, [r5, #0x10] ands r1, r0 strb r1, [r5, #0x10] mov r2, ip strb r2, [r5, #0xe] adds r0, r5, #0 adds r0, #0x62 strb r7, [r0] ldrb r0, [r5, #0x15] orrs r0, r3 strb r0, [r5, #0x15] strb r7, [r4, #0xe] ldr r0, _0803DCE8 @ =0x80100000 bl sub_080A3268 ldr r0, _0803DCEC @ =gUnk_02033A90 movs r2, #0x86 lsls r2, r2, #4 adds r1, r0, r2 adds r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] b _0803DD74 .align 2, 0 _0803DCE4: .4byte gUnk_080D04D0 _0803DCE8: .4byte 0x80100000 _0803DCEC: .4byte gUnk_02033A90 _0803DCF0: movs r0, #1 strb r0, [r4, #0xe] ldrb r0, [r6] orrs r0, r3 strb r0, [r6] _0803DCFA: adds r0, r4, #0 adds r0, #0x3d ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0803DD20 ldr r0, _0803DD50 @ =0x00000127 bl sub_080A3268 movs r0, #0xc movs r1, #1 bl sub_08080964 ldrb r0, [r4, #0xe] cmp r0, #0 bne _0803DD26 movs r0, #0x48 strb r0, [r4, #0xe] _0803DD20: ldrb r0, [r4, #0xe] cmp r0, #0 beq _0803DD74 _0803DD26: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r2, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _0803DD74 adds r1, r4, #0 adds r1, #0x3f movs r0, #0x2f strb r0, [r1] adds r1, #0x35 movs r0, #1 strb r0, [r1] ldrb r0, [r6] cmp r0, #0 bne _0803DD54 adds r1, r5, #0 adds r1, #0x74 movs r0, #0xf0 b _0803DD64 .align 2, 0 _0803DD50: .4byte 0x00000127 _0803DD54: adds r1, r5, #0 adds r1, #0x74 movs r0, #0x70 strb r0, [r1] adds r1, r4, #0 adds r1, #0x45 ldrb r0, [r1] orrs r0, r2 _0803DD64: strb r0, [r1] movs r0, #1 strb r0, [r5, #0xc] strb r0, [r5, #0xe] adds r0, r4, #0 movs r1, #0 bl sub_080042AC _0803DD74: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0803DD78 sub_0803DD78: @ 0x0803DD78 push {r4, r5, lr} adds r4, r0, #0 bl sub_08000E50 movs r1, #0x7c ands r1, r0 lsrs r2, r1, #2 adds r0, r4, #0 adds r0, #0x86 ldrb r0, [r0] cmp r0, #1 beq _0803DDFE cmp r0, #1 bgt _0803DD9A cmp r0, #0 beq _0803DDA0 b _0803DDB6 _0803DD9A: cmp r0, #2 beq _0803DE5C b _0803DDB6 _0803DDA0: adds r0, r4, #0 adds r0, #0x80 ldrb r1, [r0] cmp r1, #0 bne _0803DDBC subs r0, #0xb strb r1, [r0] adds r1, r4, #0 adds r1, #0x77 movs r0, #0x50 strb r0, [r1] _0803DDB6: adds r5, r4, #0 adds r5, #0x83 b _0803DED0 _0803DDBC: adds r0, r4, #0 adds r0, #0x83 ldrb r1, [r0] adds r5, r0, #0 cmp r1, #5 bls _0803DDCA b _0803DED0 _0803DDCA: lsls r0, r1, #2 ldr r1, _0803DDD4 @ =_0803DDD8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803DDD4: .4byte _0803DDD8 _0803DDD8: @ jump table .4byte _0803DDF0 @ case 0 .4byte _0803DEC2 @ case 1 .4byte _0803DDF0 @ case 2 .4byte _0803DEC2 @ case 3 .4byte _0803DDF0 @ case 4 .4byte _0803DEC2 @ case 5 _0803DDF0: adds r1, r4, #0 adds r1, #0x75 movs r0, #0 strb r0, [r1] adds r1, #2 movs r0, #0x50 b _0803DECE _0803DDFE: adds r0, r4, #0 adds r0, #0x83 ldrb r1, [r0] adds r5, r0, #0 cmp r1, #5 bhi _0803DED0 lsls r0, r1, #2 ldr r1, _0803DE14 @ =_0803DE18 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803DE14: .4byte _0803DE18 _0803DE18: @ jump table .4byte _0803DE98 @ case 0 .4byte _0803DEC2 @ case 1 .4byte _0803DE30 @ case 2 .4byte _0803DEC2 @ case 3 .4byte _0803DE46 @ case 4 .4byte _0803DEC2 @ case 5 _0803DE30: movs r1, #8 ands r1, r2 cmp r1, #0 bne _0803DEC2 adds r0, r4, #0 adds r0, #0x75 strb r1, [r0] adds r1, r4, #0 adds r1, #0x77 movs r0, #0x50 b _0803DECE _0803DE46: movs r0, #8 ands r2, r0 cmp r2, #0 beq _0803DE98 adds r1, r4, #0 adds r1, #0x75 movs r0, #0 strb r0, [r1] adds r1, #2 movs r0, #0x50 b _0803DECE _0803DE5C: adds r0, r4, #0 adds r0, #0x83 ldrb r1, [r0] adds r5, r0, #0 cmp r1, #5 bhi _0803DED0 lsls r0, r1, #2 ldr r1, _0803DE74 @ =_0803DE78 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803DE74: .4byte _0803DE78 _0803DE78: @ jump table .4byte _0803DE98 @ case 0 .4byte _0803DEC2 @ case 1 .4byte _0803DE90 @ case 2 .4byte _0803DEC2 @ case 3 .4byte _0803DEA6 @ case 4 .4byte _0803DEC2 @ case 5 _0803DE90: movs r0, #0xf ands r2, r0 cmp r2, #2 bls _0803DEC2 _0803DE98: adds r0, r4, #0 adds r0, #0x75 movs r1, #1 strb r1, [r0] adds r0, #2 strb r1, [r0] b _0803DED0 _0803DEA6: cmp r2, #9 bls _0803DEC2 adds r1, r4, #0 adds r1, #0x75 movs r0, #2 strb r0, [r1] bl sub_08000E50 movs r1, #1 ands r0, r1 adds r0, #2 adds r1, r4, #0 adds r1, #0x77 b _0803DECE _0803DEC2: adds r1, r4, #0 adds r1, #0x75 movs r0, #0 strb r0, [r1] adds r1, #2 movs r0, #1 _0803DECE: strb r0, [r1] _0803DED0: ldrb r0, [r5] adds r0, #1 movs r1, #6 bl __modsi3 strb r0, [r5] pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0803DEE0 sub_0803DEE0: @ 0x0803DEE0 push {r4, r5, lr} adds r4, r0, #0 movs r5, #2 bl sub_08000E50 movs r1, #0xf8 ands r1, r0 lsrs r2, r1, #3 adds r0, r4, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 beq _0803DFB8 adds r0, r4, #0 adds r0, #0x86 ldrb r0, [r0] cmp r0, #1 beq _0803DF28 cmp r0, #1 bgt _0803DF0E cmp r0, #0 beq _0803DF14 b _0803DFB8 _0803DF0E: cmp r0, #2 beq _0803DF68 b _0803DFB8 _0803DF14: adds r0, r4, #0 adds r0, #0x82 ldrb r1, [r0] movs r5, #1 ands r5, r1 adds r1, #1 movs r2, #3 ands r1, r2 strb r1, [r0] b _0803DFB8 _0803DF28: adds r0, r4, #0 adds r0, #0x82 ldrb r1, [r0] adds r4, r0, #0 cmp r1, #4 bhi _0803DFAC lsls r0, r1, #2 ldr r1, _0803DF40 @ =_0803DF44 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803DF40: .4byte _0803DF44 _0803DF44: @ jump table .4byte _0803DF9E @ case 0 .4byte _0803DF58 @ case 1 .4byte _0803DF9E @ case 2 .4byte _0803DF58 @ case 3 .4byte _0803DF5C @ case 4 _0803DF58: movs r5, #1 b _0803DFAC _0803DF5C: movs r0, #8 ands r2, r0 movs r5, #0 cmp r2, #0 beq _0803DFAC b _0803DF9E _0803DF68: adds r0, r4, #0 adds r0, #0x82 ldrb r1, [r0] adds r4, r0, #0 cmp r1, #4 bhi _0803DFAC lsls r0, r1, #2 ldr r1, _0803DF80 @ =_0803DF84 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803DF80: .4byte _0803DF84 _0803DF84: @ jump table .4byte _0803DF9E @ case 0 .4byte _0803DF98 @ case 1 .4byte _0803DFA2 @ case 2 .4byte _0803DF9E @ case 3 .4byte _0803DFAA @ case 4 _0803DF98: movs r5, #0 cmp r2, #5 bls _0803DFAC _0803DF9E: movs r5, #3 b _0803DFAC _0803DFA2: movs r5, #0 cmp r2, #9 bhi _0803DFAC b _0803DF9E _0803DFAA: movs r5, #0 _0803DFAC: ldrb r0, [r4] adds r0, #1 movs r1, #5 bl __modsi3 strb r0, [r4] _0803DFB8: adds r0, r5, #0 pop {r4, r5, pc} thumb_func_start sub_0803DFBC sub_0803DFBC: @ 0x0803DFBC push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 beq _0803DFCE ldr r0, [r4, #0x2c] str r0, [r4, #0x78] ldr r0, [r4, #0x30] str r0, [r4, #0x7c] _0803DFCE: adds r5, r4, #0 adds r5, #0x76 ldrb r0, [r5] cmp r0, #0 bne _0803DFFC ldrb r0, [r4, #0x15] cmp r0, #0xff beq _0803E000 adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 bne _0803E000 adds r0, r4, #0 bl sub_08049EE4 movs r1, #0x10 ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r4, #0x15] movs r0, #0x10 b _0803DFFE _0803DFFC: subs r0, #1 _0803DFFE: strb r0, [r5] _0803E000: adds r0, r4, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 bne _0803E022 ldrb r0, [r4, #0x14] adds r0, #1 movs r1, #3 ands r0, r1 strb r0, [r4, #0x14] ldr r1, _0803E024 @ =gUnk_080D04D3 ldrb r0, [r4, #0x14] adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x62 strb r1, [r0] _0803E022: pop {r4, r5, pc} .align 2, 0 _0803E024: .4byte gUnk_080D04D3 thumb_func_start sub_0803E028 sub_0803E028: @ 0x0803E028 push {r4, r5, lr} adds r4, r0, #0 movs r5, #0 adds r0, #0x75 ldrb r0, [r0] cmp r0, #2 beq _0803E046 bl sub_08000E50 movs r1, #1 ands r1, r0 cmp r1, #0 beq _0803E046 movs r0, #0 b _0803E082 _0803E046: adds r0, r4, #0 adds r0, #0x77 ldrb r0, [r0] cmp r0, #1 bne _0803E080 ldr r2, _0803E084 @ =gUnk_03000BF0 ldrh r0, [r2, #6] adds r1, r0, #0 adds r1, #0x58 ldr r0, _0803E088 @ =gUnk_03001160 movs r3, #0x2e ldrsh r0, [r0, r3] cmp r1, r0 bgt _0803E080 ldrh r2, [r2, #8] adds r1, r2, #0 adds r1, #0x58 cmp r1, r0 bgt _0803E080 adds r1, r2, #0 adds r1, #0xf8 cmp r1, r0 blt _0803E080 adds r1, r4, #0 adds r1, #0x81 ldrb r0, [r1] adds r0, #5 strb r0, [r1] movs r5, #1 _0803E080: adds r0, r5, #0 _0803E082: pop {r4, r5, pc} .align 2, 0 _0803E084: .4byte gUnk_03000BF0 _0803E088: .4byte gUnk_03001160 thumb_func_start sub_0803E08C sub_0803E08C: @ 0x0803E08C push {r4, r5, lr} adds r5, r0, #0 bl sub_0803E4A0 cmp r0, #0 beq _0803E0AA ldrb r0, [r5, #0x10] movs r1, #0x7f ands r1, r0 movs r0, #0 strb r1, [r5, #0x10] adds r1, r5, #0 adds r1, #0x45 strb r0, [r1] str r0, [r5, #0x50] _0803E0AA: ldr r4, _0803E0C0 @ =gUnk_080D0648 adds r0, r5, #0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _0803E0C0: .4byte gUnk_080D0648 thumb_func_start sub_0803E0C4 sub_0803E0C4: @ 0x0803E0C4 push {lr} ldr r2, _0803E0D8 @ =gUnk_080D0660 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0803E0D8: .4byte gUnk_080D0660 thumb_func_start sub_0803E0DC sub_0803E0DC: @ 0x0803E0DC push {r4, r5, r6, lr} adds r5, r0, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x80 bne _0803E16C adds r0, r5, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 beq _0803E158 movs r0, #5 strb r0, [r5, #0xc] ldrb r1, [r5, #0x10] movs r6, #0x7f adds r0, r6, #0 ands r0, r1 strb r0, [r5, #0x10] adds r2, r5, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] ldr r3, _0803E154 @ =gUnk_03001160 ldrb r1, [r3, #0x10] adds r0, r6, #0 ands r0, r1 strb r0, [r3, #0x10] ldrb r2, [r5, #0x1b] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r4, [r3, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r4 orrs r0, r2 strb r0, [r3, #0x1b] ldrb r0, [r5, #0x19] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r3, #0x19] ands r1, r2 orrs r1, r0 strb r1, [r3, #0x19] adds r0, r5, #0 bl sub_0803E444 movs r0, #2 bl sub_08078A90 ldr r2, [r5, #0x50] cmp r2, #0 beq _0803E16C ldrb r1, [r2, #0x10] adds r0, r6, #0 ands r0, r1 b _0803E16A .align 2, 0 _0803E154: .4byte gUnk_03001160 _0803E158: ldr r2, _0803E178 @ =gUnk_03003F80 ldr r0, [r2, #0x30] ldr r1, _0803E17C @ =0xFFFFFEFF ands r0, r1 str r0, [r2, #0x30] ldr r2, _0803E180 @ =gUnk_03001160 ldrb r1, [r2, #0x10] movs r0, #0x80 orrs r0, r1 _0803E16A: strb r0, [r2, #0x10] _0803E16C: ldr r1, _0803E184 @ =gUnk_080D0648 adds r0, r5, #0 bl sub_0804AA30 pop {r4, r5, r6, pc} .align 2, 0 _0803E178: .4byte gUnk_03003F80 _0803E17C: .4byte 0xFFFFFEFF _0803E180: .4byte gUnk_03001160 _0803E184: .4byte gUnk_080D0648 thumb_func_start sub_0803E188 sub_0803E188: @ 0x0803E188 push {lr} adds r3, r0, #0 ldr r2, [r3, #0x50] cmp r2, #0 beq _0803E19C ldrb r0, [r2, #0xf] subs r0, #1 movs r1, #0 strb r0, [r2, #0xf] str r1, [r3, #0x50] _0803E19C: adds r0, r3, #0 bl sub_0804A7D4 pop {pc} thumb_func_start nullsub_19 nullsub_19: @ 0x0803E1A4 bx lr .align 2, 0 thumb_func_start sub_0803E1A8 sub_0803E1A8: @ 0x0803E1A8 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xa] cmp r0, #0 bne _0803E1F8 movs r0, #0x4b movs r1, #1 bl sub_0804AA60 cmp r0, #0 beq _0803E250 str r5, [r0, #0x50] str r0, [r5, #0x54] ldrb r0, [r5, #0xb] cmp r0, #0 bne _0803E1D8 movs r0, #1 strb r0, [r5, #0xc] ldr r0, _0803E1D4 @ =0x0000FFE8 strh r0, [r5, #0x36] b _0803E1E8 .align 2, 0 _0803E1D4: .4byte 0x0000FFE8 _0803E1D8: movs r0, #9 strb r0, [r5, #0xc] ldr r0, _0803E1F4 @ =0x0000FF80 strh r0, [r5, #0x36] adds r1, r5, #0 adds r1, #0x3b movs r0, #1 strb r0, [r1] _0803E1E8: adds r0, r5, #0 movs r1, #0 bl sub_08004260 b _0803E250 .align 2, 0 _0803E1F4: .4byte 0x0000FF80 _0803E1F8: movs r0, #8 strb r0, [r5, #0xc] ldrb r1, [r5, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r5, #0x10] adds r1, r5, #0 adds r1, #0x63 movs r0, #1 strb r0, [r1] ldr r4, [r5, #0x50] ldrb r2, [r4, #0x1b] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r3, [r5, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r3 orrs r0, r2 strb r0, [r5, #0x1b] ldrb r0, [r4, #0x19] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r5, #0x19] ands r1, r2 orrs r1, r0 strb r1, [r5, #0x19] adds r2, r5, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] ldr r0, [r5, #0x50] ldr r3, _0803E254 @ =0xFFFF0000 adds r1, r5, #0 movs r2, #0 bl sub_0806FA48 adds r0, r5, #0 movs r1, #1 bl sub_08004260 _0803E250: pop {r4, r5, pc} .align 2, 0 _0803E254: .4byte 0xFFFF0000 thumb_func_start sub_0803E258 sub_0803E258: @ 0x0803E258 push {r4, lr} adds r4, r0, #0 bl sub_0803E480 adds r0, r4, #0 movs r1, #0 movs r2, #8 bl sub_08049F64 cmp r0, #0 beq _0803E280 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0xa strb r0, [r4, #0xe] ldr r0, [r4, #0x54] movs r1, #2 bl sub_08004260 b _0803E29C _0803E280: ldr r0, _0803E2A4 @ =gUnk_020000B0 ldr r1, [r0] cmp r1, #0 beq _0803E29C adds r0, r4, #0 bl sub_080045C4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 adds r0, r4, #0 bl sub_0806F69C _0803E29C: adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 _0803E2A4: .4byte gUnk_020000B0 thumb_func_start sub_0803E2A8 sub_0803E2A8: @ 0x0803E2A8 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xe] cmp r0, #0 beq _0803E2B8 subs r0, #1 strb r0, [r1, #0xe] b _0803E2C8 _0803E2B8: ldrh r0, [r1, #0x36] adds r0, #1 strh r0, [r1, #0x36] lsls r0, r0, #0x10 cmp r0, #0 bne _0803E2C8 movs r0, #3 strb r0, [r1, #0xc] _0803E2C8: adds r0, r1, #0 bl sub_08004274 pop {pc} thumb_func_start sub_0803E2D0 sub_0803E2D0: @ 0x0803E2D0 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x54] adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803E312 ldrh r0, [r4, #0x36] subs r0, #1 strh r0, [r4, #0x36] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x18 rsbs r1, r1, #0 cmp r0, r1 bgt _0803E30C movs r0, #4 strb r0, [r4, #0xc] bl sub_08000E50 movs r1, #0xf ands r0, r1 adds r0, #0xf strb r0, [r4, #0xe] ldr r0, [r4, #0x54] movs r1, #1 bl sub_08004260 _0803E30C: adds r0, r4, #0 bl sub_08004274 _0803E312: pop {r4, pc} thumb_func_start sub_0803E314 sub_0803E314: @ 0x0803E314 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803E332 movs r0, #1 strb r0, [r4, #0xc] ldr r1, _0803E33C @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] _0803E332: adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 _0803E33C: .4byte gUnk_03001160 thumb_func_start sub_0803E340 sub_0803E340: @ 0x0803E340 push {r4, lr} adds r4, r0, #0 bl sub_0803E444 ldrb r0, [r4, #0xe] cmp r0, #0 beq _0803E352 subs r0, #1 b _0803E36A _0803E352: ldrh r0, [r4, #0x36] subs r0, #1 strh r0, [r4, #0x36] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x18 rsbs r1, r1, #0 cmp r0, r1 bgt _0803E36C movs r0, #6 strb r0, [r4, #0xc] movs r0, #0x14 _0803E36A: strb r0, [r4, #0xe] _0803E36C: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803E370 sub_0803E370: @ 0x0803E370 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 _0803E38E movs r0, #7 strb r0, [r1, #0xc] movs r0, #0x10 strb r0, [r1, #0x15] movs r0, #0xc0 lsls r0, r0, #2 strh r0, [r1, #0x24] _0803E38E: adds r0, r1, #0 bl sub_0803E444 pop {pc} .align 2, 0 thumb_func_start sub_0803E398 sub_0803E398: @ 0x0803E398 push {r4, lr} adds r4, r0, #0 bl sub_0803E444 adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_0803E4D8 ldr r1, _0803E3CC @ =gUnk_03000BF0 ldrh r0, [r1, #8] ldrh r1, [r1, #0x20] adds r0, r0, r1 subs r0, #0x10 movs r2, #0x32 ldrsh r1, [r4, r2] cmp r0, r1 bgt _0803E3C8 bl sub_0805E5A8 ldr r0, _0803E3D0 @ =gUnk_0813AB94 bl sub_08080840 _0803E3C8: pop {r4, pc} .align 2, 0 _0803E3CC: .4byte gUnk_03000BF0 _0803E3D0: .4byte gUnk_0813AB94 thumb_func_start sub_0803E3D4 sub_0803E3D4: @ 0x0803E3D4 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldr r0, [r0, #4] cmp r0, #0 bne _0803E3E4 bl sub_0805E780 _0803E3E4: ldr r0, [r4, #0x50] ldr r3, _0803E3F8 @ =0xFFFF0000 adds r1, r4, #0 movs r2, #0 bl sub_0806FA48 adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 _0803E3F8: .4byte 0xFFFF0000 thumb_func_start sub_0803E3FC sub_0803E3FC: @ 0x0803E3FC push {r4, lr} adds r4, r0, #0 ldr r1, _0803E438 @ =gUnk_03001160 ldrh r0, [r1, #0x2e] strh r0, [r4, #0x2e] ldrh r0, [r1, #0x32] strh r0, [r4, #0x32] ldrh r2, [r4, #0x36] movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #8 rsbs r0, r0, #0 cmp r1, r0 bge _0803E43C adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #2 beq _0803E42E movs r0, #0 strb r0, [r4, #0xe] ldr r0, [r4, #0x54] movs r1, #2 bl sub_08004260 _0803E42E: adds r0, r4, #0 bl sub_0803E2A8 b _0803E442 .align 2, 0 _0803E438: .4byte gUnk_03001160 _0803E43C: adds r0, r2, #0 adds r0, #8 strh r0, [r4, #0x36] _0803E442: pop {r4, pc} thumb_func_start sub_0803E444 sub_0803E444: @ 0x0803E444 push {r4, lr} adds r4, r0, #0 bl sub_08077B2C ldr r2, _0803E478 @ =gUnk_03003F80 ldrb r1, [r2, #0x1a] movs r0, #0x80 orrs r1, r0 strb r1, [r2, #0x1a] ldrb r1, [r2, #0xa] orrs r0, r1 strb r0, [r2, #0xa] ldr r1, [r4, #0x4c] movs r3, #2 rsbs r3, r3, #0 adds r0, r4, #0 movs r2, #0 bl sub_0806FA90 ldr r1, _0803E47C @ =gUnk_03001160 adds r1, #0x63 ldrb r0, [r1] adds r0, #0xe strb r0, [r1] pop {r4, pc} .align 2, 0 _0803E478: .4byte gUnk_03003F80 _0803E47C: .4byte gUnk_03001160 thumb_func_start sub_0803E480 sub_0803E480: @ 0x0803E480 push {lr} adds r3, r0, #0 adds r2, r3, #0 adds r2, #0x78 ldrh r1, [r2] movs r0, #0x96 lsls r0, r0, #3 cmp r1, r0 bls _0803E49A movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r3, #0x24] b _0803E49E _0803E49A: adds r0, r1, #1 strh r0, [r2] _0803E49E: pop {pc} thumb_func_start sub_0803E4A0 sub_0803E4A0: @ 0x0803E4A0 push {lr} adds r1, r0, #0 ldr r0, _0803E4B8 @ =gUnk_030010A0 adds r0, #0x39 ldrb r0, [r0] cmp r0, #0 beq _0803E4C6 ldr r1, [r1, #0x50] cmp r1, #0 bne _0803E4BC movs r0, #0 b _0803E4D6 .align 2, 0 _0803E4B8: .4byte gUnk_030010A0 _0803E4BC: adds r0, r1, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _0803E4CA _0803E4C6: movs r0, #1 b _0803E4D6 _0803E4CA: movs r2, #0 ldr r0, [r1, #4] cmp r0, #0 bne _0803E4D4 movs r2, #1 _0803E4D4: adds r0, r2, #0 _0803E4D6: pop {pc} thumb_func_start sub_0803E4D8 sub_0803E4D8: @ 0x0803E4D8 push {r4, r5, lr} movs r2, #0x2e ldrsh r1, [r0, r2] ldr r3, _0803E51C @ =gUnk_03000BF0 ldrh r2, [r3, #6] subs r1, r1, r2 asrs r4, r1, #4 movs r2, #0x3f ands r4, r2 movs r1, #0x32 ldrsh r0, [r0, r1] ldrh r1, [r3, #8] subs r1, #8 subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r4, r0 ldr r0, _0803E520 @ =gUnk_03001160 adds r5, r0, #0 adds r5, #0x38 ldrb r1, [r5] adds r0, r4, #0 bl sub_080002E0 cmp r0, #0xff beq _0803E518 ldr r0, _0803E524 @ =0x00004074 ldrb r2, [r5] adds r1, r4, #0 bl sub_0800015E _0803E518: pop {r4, r5, pc} .align 2, 0 _0803E51C: .4byte gUnk_03000BF0 _0803E520: .4byte gUnk_03001160 _0803E524: .4byte 0x00004074 thumb_func_start sub_0803E528 sub_0803E528: @ 0x0803E528 push {lr} ldr r1, _0803E534 @ =gUnk_080D06E0 bl sub_0800129E pop {pc} .align 2, 0 _0803E534: .4byte gUnk_080D06E0 thumb_func_start sub_0803E538 sub_0803E538: @ 0x0803E538 push {lr} ldr r2, _0803E54C @ =gUnk_080D06F8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0803E54C: .4byte gUnk_080D06F8 thumb_func_start sub_0803E550 sub_0803E550: @ 0x0803E550 push {lr} ldr r1, _0803E55C @ =gUnk_080D06E0 bl sub_0804AA30 pop {pc} .align 2, 0 _0803E55C: .4byte gUnk_080D06E0 thumb_func_start sub_0803E560 sub_0803E560: @ 0x0803E560 push {r4, lr} adds r4, r0, #0 bl sub_08001324 thumb_func_start sub_0803E568 sub_0803E568: @ 0x0803E568 adds r0, r4, #0 bl sub_0803E538 pop {r4, pc} thumb_func_start sub_0803E570 sub_0803E570: @ 0x0803E570 push {lr} movs r1, #0xff movs r2, #0x57 bl sub_0804A7E0 pop {pc} thumb_func_start nullsub_20 nullsub_20: @ 0x0803E57C bx lr .align 2, 0 thumb_func_start sub_0803E580 sub_0803E580: @ 0x0803E580 push {r4, r5, lr} adds r5, r0, #0 bl sub_0804A720 adds r0, r5, #0 movs r1, #0x19 movs r2, #0 bl sub_0804A98C cmp r0, #0 beq _0803E5E4 str r5, [r0, #0x50] str r0, [r5, #0x54] ldrb r1, [r5, #0x10] movs r0, #0x80 movs r4, #0 orrs r0, r1 strb r0, [r5, #0x10] ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r5, #0x18] bl sub_08000E50 movs r1, #3 ands r0, r1 strb r0, [r5, #0x14] adds r0, r5, #0 adds r0, #0x7b strb r4, [r0] adds r0, #1 strb r4, [r0] adds r1, r5, #0 adds r1, #0x7e movs r0, #0x20 strb r0, [r1] adds r1, #1 movs r0, #0xfe strb r0, [r1] ldrb r1, [r5, #0x14] lsls r1, r1, #2 adds r0, r5, #0 bl sub_080042AC adds r0, r5, #0 bl sub_0803E86C _0803E5E4: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0803E5E8 sub_0803E5E8: @ 0x0803E5E8 push {r4, lr} adds r4, r0, #0 adds r0, #0x7c ldrb r1, [r0] subs r1, #0xa strb r1, [r0] adds r0, r4, #0 bl sub_0803E9A4 adds r0, r4, #0 bl sub_0803E9D4 cmp r0, #0 bne _0803E61A adds r1, r4, #0 adds r1, #0x78 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0803E61A adds r0, r4, #0 bl sub_0803E8CC _0803E61A: pop {r4, pc} thumb_func_start sub_0803E61C sub_0803E61C: @ 0x0803E61C push {r4, lr} adds r4, r0, #0 adds r0, #0x7c ldrb r1, [r0] subs r1, #0xa strb r1, [r0] adds r0, r4, #0 bl sub_0803E9A4 adds r0, r4, #0 bl sub_0803E9D4 cmp r0, #0 bne _0803E66A adds r0, r4, #0 adds r0, #0x42 ldrb r0, [r0] cmp r0, #0 bne _0803E654 adds r0, r4, #0 bl sub_080AEF88 cmp r0, #0 bne _0803E654 adds r0, r4, #0 bl sub_0803E86C b _0803E66A _0803E654: adds r1, r4, #0 adds r1, #0x78 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0803E66A adds r0, r4, #0 bl sub_0803E92C _0803E66A: pop {r4, pc} thumb_func_start sub_0803E66C sub_0803E66C: @ 0x0803E66C push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x7c ldrb r0, [r1] subs r0, #0x10 strb r0, [r1] adds r0, r4, #0 bl sub_0803E9A4 adds r1, r4, #0 adds r1, #0x7e ldrb r0, [r1] cmp r0, #0x21 bhi _0803E68E adds r0, #1 strb r0, [r1] _0803E68E: adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0803E6A4 adds r0, r4, #0 bl sub_0803EA64 cmp r0, #0 bne _0803E6B0 _0803E6A4: movs r0, #4 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x7b movs r0, #0 strb r0, [r1] _0803E6B0: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803E6B4 sub_0803E6B4: @ 0x0803E6B4 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x7c ldrb r0, [r1] subs r0, #0xa strb r0, [r1] adds r0, r4, #0 bl sub_0803E9A4 adds r1, r4, #0 adds r1, #0x7e ldrb r0, [r1] cmp r0, #0x20 bls _0803E6D8 subs r0, #1 strb r0, [r1] b _0803E6DE _0803E6D8: adds r0, r4, #0 bl sub_0803E86C _0803E6DE: pop {r4, pc} thumb_func_start sub_0803E6E0 sub_0803E6E0: @ 0x0803E6E0 push {r4, lr} adds r4, r0, #0 adds r0, #0x7c ldrb r1, [r0] subs r1, #0xc strb r1, [r0] adds r0, r4, #0 bl sub_0803E9A4 adds r1, r4, #0 adds r1, #0x7e ldrb r0, [r1] subs r0, #4 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 bgt _0803E718 movs r0, #0 strb r0, [r1] movs r0, #6 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] ldrb r1, [r4, #0x14] adds r1, #0x20 adds r0, r4, #0 bl sub_080042AC _0803E718: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803E71C sub_0803E71C: @ 0x0803E71C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xe] subs r0, #1 strb r0, [r2, #0xe] lsls r0, r0, #0x18 lsrs r3, r0, #0x18 cmp r3, #0 bne _0803E756 movs r0, #7 strb r0, [r2, #0xc] movs r0, #1 strb r0, [r2, #0xe] ldr r1, _0803E758 @ =gUnk_080D0724 ldrb r0, [r2, #0x14] adds r0, r0, r1 ldrb r1, [r0] adds r0, r2, #0 adds r0, #0x7c strb r1, [r0] subs r0, #1 strb r3, [r0] adds r1, r2, #0 adds r1, #0x7f movs r0, #0xf6 strb r0, [r1] adds r0, #0x65 bl sub_08004488 _0803E756: pop {pc} .align 2, 0 _0803E758: .4byte gUnk_080D0724 thumb_func_start sub_0803E75C sub_0803E75C: @ 0x0803E75C push {lr} adds r2, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0803E774 adds r0, r2, #0 bl sub_080042B8 b _0803E7B0 _0803E774: ldrb r0, [r2, #0xe] subs r0, #1 strb r0, [r2, #0xe] lsls r0, r0, #0x18 adds r1, r2, #0 adds r1, #0x7f cmp r0, #0 bne _0803E78E movs r0, #2 strb r0, [r2, #0xe] ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0803E78E: ldrb r0, [r1] cmp r0, #0 beq _0803E7A0 adds r1, r2, #0 adds r1, #0x7e ldrb r0, [r1] adds r0, #5 strb r0, [r1] b _0803E7B0 _0803E7A0: movs r0, #8 strb r0, [r2, #0xc] movs r0, #0x1e strb r0, [r2, #0xe] movs r0, #8 movs r1, #0 bl sub_08080964 _0803E7B0: pop {pc} .align 2, 0 thumb_func_start sub_0803E7B4 sub_0803E7B4: @ 0x0803E7B4 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 _0803E7C8 movs r0, #9 strb r0, [r1, #0xc] _0803E7C8: pop {pc} .align 2, 0 thumb_func_start sub_0803E7CC sub_0803E7CC: @ 0x0803E7CC push {lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x7e ldrb r0, [r1] subs r0, #2 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xa bhi _0803E806 movs r0, #0xa strb r0, [r2, #0xc] movs r0, #0x5a strb r0, [r2, #0xe] ldrb r0, [r2, #0x14] lsls r0, r0, #3 strb r0, [r2, #0x15] subs r1, #2 movs r0, #0 strb r0, [r1] adds r1, #3 movs r0, #0xfe strb r0, [r1] adds r0, r2, #0 movs r1, #0x10 bl sub_0803E94C b _0803E814 _0803E806: cmp r0, #0x12 bhi _0803E814 ldr r2, [r2, #0x54] ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0x10] _0803E814: pop {pc} .align 2, 0 thumb_func_start sub_0803E818 sub_0803E818: @ 0x0803E818 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _0803E840 subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803E868 ldr r0, [r4, #0x54] ldrb r1, [r0, #0x10] movs r2, #0x80 orrs r1, r2 strb r1, [r0, #0x10] adds r0, r4, #0 movs r1, #0 bl sub_0803E94C b _0803E868 _0803E840: adds r1, r4, #0 adds r1, #0x7c ldrb r0, [r1] subs r0, #0xa strb r0, [r1] adds r0, r4, #0 bl sub_0803E9A4 adds r1, r4, #0 adds r1, #0x7e ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x1f bls _0803E868 adds r0, r4, #0 bl sub_0803E86C _0803E868: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803E86C sub_0803E86C: @ 0x0803E86C push {r4, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0803E898 adds r0, r4, #0 movs r1, #0x50 bl sub_0803EAD0 cmp r0, #0 beq _0803E898 ldr r0, _0803E8C4 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl sub_080045C4 adds r0, #4 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] _0803E898: movs r0, #1 strb r0, [r4, #0xc] bl sub_08000E50 ldr r2, _0803E8C8 @ =gUnk_080D0728 movs r1, #3 ands r1, r0 lsls r1, r1, #1 adds r1, r1, r2 ldrh r1, [r1] adds r0, r4, #0 adds r0, #0x78 strh r1, [r0] adds r1, r4, #0 adds r1, #0x7a movs r0, #4 strb r0, [r1] adds r0, r4, #0 movs r1, #0 bl sub_0803E94C pop {r4, pc} .align 2, 0 _0803E8C4: .4byte gUnk_020000B0 _0803E8C8: .4byte gUnk_080D0728 thumb_func_start sub_0803E8CC sub_0803E8CC: @ 0x0803E8CC push {r4, r5, lr} adds r4, r0, #0 bl sub_08000E50 adds r5, r0, #0 adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 bne _0803E8F4 movs r0, #3 ands r0, r5 cmp r0, #0 beq _0803E8F4 adds r0, r4, #0 bl sub_08049EE4 adds r0, #4 movs r1, #0x18 b _0803E8F8 _0803E8F4: movs r1, #0x18 adds r0, r5, #0 _0803E8F8: ands r0, r1 strb r0, [r4, #0x15] movs r0, #2 strb r0, [r4, #0xc] ldr r2, _0803E928 @ =gUnk_080D0730 lsrs r0, r5, #0x10 movs r1, #3 ands r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r1, [r0] adds r0, r4, #0 adds r0, #0x78 strh r1, [r0] adds r1, r4, #0 adds r1, #0x7a movs r0, #4 strb r0, [r1] adds r0, r4, #0 movs r1, #0x10 bl sub_0803E94C pop {r4, r5, pc} .align 2, 0 _0803E928: .4byte gUnk_080D0730 thumb_func_start sub_0803E92C sub_0803E92C: @ 0x0803E92C push {r4, lr} adds r4, r0, #0 bl sub_08000E50 movs r1, #1 ands r1, r0 cmp r1, #0 beq _0803E944 adds r0, r4, #0 bl sub_0803E86C b _0803E94A _0803E944: adds r0, r4, #0 bl sub_0803E8CC _0803E94A: pop {r4, pc} thumb_func_start sub_0803E94C sub_0803E94C: @ 0x0803E94C push {r4, r5, r6, lr} adds r3, r0, #0 adds r6, r1, #0 ldrb r2, [r3, #0x15] adds r0, r2, #4 movs r1, #0x18 ands r0, r1 asrs r4, r0, #3 adds r0, r3, #0 adds r0, #0x58 ldrb r1, [r0] movs r0, #0x10 ands r0, r1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, r6 bne _0803E988 movs r0, #7 ands r0, r2 ldrb r5, [r3, #0x14] cmp r0, #4 bne _0803E984 lsrs r0, r2, #3 subs r0, r5, r0 movs r1, #3 ands r0, r1 cmp r0, #1 ble _0803E9A2 _0803E984: cmp r4, r5 beq _0803E9A2 _0803E988: strb r4, [r3, #0x14] adds r0, r3, #0 adds r0, #0x58 ldrb r1, [r0] movs r0, #3 ands r0, r1 adds r0, r6, r0 lsls r1, r4, #2 adds r4, r0, r1 adds r0, r3, #0 adds r1, r4, #0 bl sub_080042AC _0803E9A2: pop {r4, r5, r6, pc} thumb_func_start sub_0803E9A4 sub_0803E9A4: @ 0x0803E9A4 push {r4, lr} adds r2, r0, #0 adds r0, #0x7c ldrb r0, [r0] adds r0, #0x20 movs r1, #0xff ands r0, r1 asrs r4, r0, #6 adds r3, r2, #0 adds r3, #0x58 ldrb r1, [r3] movs r0, #3 ands r0, r1 cmp r0, r4 beq _0803E9D2 ldrb r1, [r3] movs r0, #4 rsbs r0, r0, #0 ands r1, r0 adds r1, r4, r1 adds r0, r2, #0 bl sub_080042AC _0803E9D2: pop {r4, pc} thumb_func_start sub_0803E9D4 sub_0803E9D4: @ 0x0803E9D4 push {r4, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0803EA58 adds r0, r4, #0 movs r1, #0x38 bl sub_0803EAD0 cmp r0, #0 beq _0803EA10 movs r0, #3 strb r0, [r4, #0xc] ldr r0, _0803EA0C @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl sub_080045C4 adds r0, #4 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] adds r1, r4, #0 adds r1, #0x7b movs r0, #1 b _0803EA46 .align 2, 0 _0803EA0C: .4byte gUnk_020000B0 _0803EA10: adds r0, r4, #0 movs r1, #0x4e bl sub_0803EAD0 cmp r0, #0 beq _0803EA58 ldr r0, _0803EA54 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 movs r2, #0x12 bl sub_0804A044 adds r2, r0, #0 cmp r2, #0xff beq _0803EA58 adds r1, r4, #0 adds r1, #0x7a ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 bne _0803EA60 movs r0, #5 strb r0, [r4, #0xc] strb r2, [r4, #0x15] movs r0, #4 _0803EA46: strb r0, [r1] adds r0, r4, #0 movs r1, #0 bl sub_0803E94C movs r0, #1 b _0803EA62 .align 2, 0 _0803EA54: .4byte gUnk_020000B0 _0803EA58: adds r1, r4, #0 adds r1, #0x7a movs r0, #4 strb r0, [r1] _0803EA60: movs r0, #0 _0803EA62: pop {r4, pc} thumb_func_start sub_0803EA64 sub_0803EA64: @ 0x0803EA64 push {r4, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0803EAC4 adds r0, r4, #0 movs r1, #0x4e bl sub_0803EAD0 cmp r0, #0 beq _0803EAB8 ldr r0, _0803EAB4 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 movs r2, #0x12 bl sub_0804A044 adds r2, r0, #0 cmp r2, #0xff beq _0803EAB8 adds r1, r4, #0 adds r1, #0x7a ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 bne _0803EAAE movs r0, #5 strb r0, [r4, #0xc] strb r2, [r4, #0x15] adds r0, r4, #0 movs r1, #0 bl sub_0803E94C _0803EAAE: movs r0, #1 b _0803EACE .align 2, 0 _0803EAB4: .4byte gUnk_020000B0 _0803EAB8: adds r0, r4, #0 movs r1, #0x38 bl sub_0803EAD0 cmp r0, #0 bne _0803EAAE _0803EAC4: adds r1, r4, #0 adds r1, #0x7a movs r0, #4 strb r0, [r1] movs r0, #0 _0803EACE: pop {r4, pc} thumb_func_start sub_0803EAD0 sub_0803EAD0: @ 0x0803EAD0 push {r4, lr} adds r3, r1, #0 ldr r1, _0803EAE8 @ =gUnk_020000B0 ldr r2, [r1] movs r4, #0x2e ldrsh r1, [r2, r4] movs r4, #0x32 ldrsh r2, [r2, r4] subs r2, #4 bl sub_0806FCB8 pop {r4, pc} .align 2, 0 _0803EAE8: .4byte gUnk_020000B0 thumb_func_start sub_0803EAEC sub_0803EAEC: @ 0x0803EAEC push {lr} ldr r1, _0803EAF8 @ =gUnk_080D0880 bl sub_0800129E pop {pc} .align 2, 0 _0803EAF8: .4byte gUnk_080D0880 thumb_func_start sub_0803EAFC sub_0803EAFC: @ 0x0803EAFC push {lr} ldr r2, _0803EB10 @ =gUnk_080D0898 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0803EB10: .4byte gUnk_080D0898 thumb_func_start sub_0803EB14 sub_0803EB14: @ 0x0803EB14 push {lr} ldr r1, _0803EB20 @ =gUnk_080D0880 bl sub_0804AA30 pop {pc} .align 2, 0 _0803EB20: .4byte gUnk_080D0880 thumb_func_start sub_0803EB24 sub_0803EB24: @ 0x0803EB24 push {r4, lr} adds r4, r0, #0 bl sub_08001324 thumb_func_start sub_0803EB2C sub_0803EB2C: @ 0x0803EB2C adds r0, r4, #0 bl sub_0803EAFC pop {r4, pc} thumb_func_start sub_0803EB34 sub_0803EB34: @ 0x0803EB34 push {lr} movs r1, #0xff movs r2, #0x57 bl sub_0804A7E0 pop {pc} thumb_func_start nullsub_21 nullsub_21: @ 0x0803EB40 bx lr .align 2, 0 thumb_func_start sub_0803EB44 sub_0803EB44: @ 0x0803EB44 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 adds r0, r4, #0 movs r1, #0x19 movs r2, #0 bl sub_0804A98C cmp r0, #0 beq _0803EBB2 str r4, [r0, #0x50] str r0, [r4, #0x54] ldrb r1, [r4, #0x10] movs r0, #0x80 movs r2, #0 orrs r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #2 strb r0, [r4, #0x14] adds r0, r4, #0 adds r0, #0x7b strb r2, [r0] adds r0, #1 strb r2, [r0] adds r1, r4, #0 adds r1, #0x7e movs r0, #0x28 strb r0, [r1] adds r1, #1 movs r0, #0xfe strb r0, [r1] ldrh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x80 strh r1, [r0] ldrh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x82 strh r0, [r1] ldrb r1, [r4, #0x14] lsls r1, r1, #2 adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 bl sub_0803EE8C _0803EBB2: pop {r4, pc} thumb_func_start sub_0803EBB4 sub_0803EBB4: @ 0x0803EBB4 push {r4, lr} adds r4, r0, #0 adds r0, #0x7c ldrb r1, [r0] subs r1, #0xa strb r1, [r0] movs r0, #1 bl sub_08049DF4 cmp r0, #0 beq _0803EBE4 ldr r0, _0803EC10 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl sub_080045C4 adds r0, #4 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #0 bl sub_0803E94C _0803EBE4: adds r0, r4, #0 bl sub_0803E9A4 adds r0, r4, #0 adds r0, #0x80 ldrh r1, [r0] adds r0, #2 ldrh r2, [r0] adds r0, r4, #0 movs r3, #2 bl sub_0806FCB8 cmp r0, #0 bne _0803EC14 movs r0, #4 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0x10 bl sub_0803E94C b _0803EC24 .align 2, 0 _0803EC10: .4byte gUnk_020000B0 _0803EC14: adds r0, r4, #0 bl sub_0803EF20 cmp r0, #0 bne _0803EC24 adds r0, r4, #0 bl sub_0803EEA4 _0803EC24: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803EC28 sub_0803EC28: @ 0x0803EC28 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x7c ldrb r0, [r1] subs r0, #0x10 strb r0, [r1] adds r0, r4, #0 bl sub_0803E9A4 adds r1, r4, #0 adds r1, #0x7e ldrb r0, [r1] cmp r0, #0x1c bls _0803EC4A subs r0, #1 strb r0, [r1] _0803EC4A: adds r1, r4, #0 adds r1, #0x78 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0803EC64 movs r0, #3 strb r0, [r4, #0xc] adds r1, #3 movs r0, #0 strb r0, [r1] _0803EC64: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803EC68 sub_0803EC68: @ 0x0803EC68 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x7c ldrb r0, [r1] subs r0, #0xa strb r0, [r1] adds r0, r4, #0 bl sub_0803E9A4 adds r1, r4, #0 adds r1, #0x7e ldrb r0, [r1] cmp r0, #0x27 bhi _0803EC8C adds r0, #1 strb r0, [r1] b _0803EC92 _0803EC8C: adds r0, r4, #0 bl sub_0803EE8C _0803EC92: pop {r4, pc} thumb_func_start sub_0803EC94 sub_0803EC94: @ 0x0803EC94 push {r4, r5, r6, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x7c ldrb r0, [r1] subs r0, #0xa strb r0, [r1] adds r0, r4, #0 bl sub_0803E9A4 adds r5, r4, #0 adds r5, #0x80 ldrh r1, [r5] adds r6, r4, #0 adds r6, #0x82 ldrh r2, [r6] adds r0, r4, #0 movs r3, #1 bl sub_0806FCB8 cmp r0, #0 beq _0803ECD8 ldrh r0, [r5] strh r0, [r4, #0x2e] ldrh r0, [r6] strh r0, [r4, #0x32] adds r0, r4, #0 bl sub_0803EE8C adds r0, r4, #0 movs r1, #0 bl sub_0803E94C b _0803ED02 _0803ECD8: adds r0, r4, #0 adds r0, #0x42 ldrb r0, [r0] cmp r0, #0 bne _0803ED02 movs r1, #0x2e ldrsh r0, [r4, r1] movs r2, #0x32 ldrsh r1, [r4, r2] ldrh r2, [r5] ldrh r3, [r6] bl sub_080045D4 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #0x10 bl sub_0803E94C adds r0, r4, #0 bl sub_080AEF88 _0803ED02: pop {r4, r5, r6, pc} thumb_func_start sub_0803ED04 sub_0803ED04: @ 0x0803ED04 push {r4, lr} adds r4, r0, #0 adds r0, #0x7c ldrb r1, [r0] subs r1, #0xc strb r1, [r0] adds r0, r4, #0 bl sub_0803E9A4 adds r1, r4, #0 adds r1, #0x7e ldrb r0, [r1] subs r0, #4 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 bgt _0803ED3C movs r0, #0 strb r0, [r1] movs r0, #6 strb r0, [r4, #0xc] movs r0, #0xf strb r0, [r4, #0xe] ldrb r1, [r4, #0x14] adds r1, #0x20 adds r0, r4, #0 bl sub_080042AC _0803ED3C: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803ED40 sub_0803ED40: @ 0x0803ED40 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 _0803ED74 movs r0, #7 strb r0, [r2, #0xc] movs r0, #1 strb r0, [r2, #0xe] ldr r1, _0803ED78 @ =gUnk_080D08C4 ldrb r0, [r2, #0x14] adds r0, r0, r1 ldrb r1, [r0] adds r0, r2, #0 adds r0, #0x7c strb r1, [r0] adds r1, r2, #0 adds r1, #0x7f movs r0, #0xf6 strb r0, [r1] adds r0, #0x65 bl sub_08004488 _0803ED74: pop {pc} .align 2, 0 _0803ED78: .4byte gUnk_080D08C4 thumb_func_start sub_0803ED7C sub_0803ED7C: @ 0x0803ED7C push {lr} adds r2, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0803ED94 adds r0, r2, #0 bl sub_080042B8 b _0803EDD0 _0803ED94: ldrb r0, [r2, #0xe] subs r0, #1 strb r0, [r2, #0xe] lsls r0, r0, #0x18 adds r1, r2, #0 adds r1, #0x7f cmp r0, #0 bne _0803EDAE movs r0, #2 strb r0, [r2, #0xe] ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0803EDAE: ldrb r0, [r1] cmp r0, #0 beq _0803EDC0 adds r1, r2, #0 adds r1, #0x7e ldrb r0, [r1] adds r0, #5 strb r0, [r1] b _0803EDD0 _0803EDC0: movs r0, #8 strb r0, [r2, #0xc] movs r0, #0x1e strb r0, [r2, #0xe] movs r0, #8 movs r1, #0 bl sub_08080964 _0803EDD0: pop {pc} .align 2, 0 thumb_func_start sub_0803EDD4 sub_0803EDD4: @ 0x0803EDD4 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 _0803EDE8 movs r0, #9 strb r0, [r1, #0xc] _0803EDE8: pop {pc} .align 2, 0 thumb_func_start sub_0803EDEC sub_0803EDEC: @ 0x0803EDEC push {lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x7e ldrb r0, [r1] subs r0, #2 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xa bhi _0803EE26 movs r0, #0xa strb r0, [r2, #0xc] movs r0, #0x3c strb r0, [r2, #0xe] ldrb r0, [r2, #0x14] lsls r0, r0, #3 strb r0, [r2, #0x15] subs r1, #2 movs r0, #0 strb r0, [r1] adds r1, #3 movs r0, #0xfe strb r0, [r1] adds r0, r2, #0 movs r1, #0x10 bl sub_0803E94C b _0803EE34 _0803EE26: cmp r0, #0x12 bhi _0803EE34 ldr r2, [r2, #0x54] ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0x10] _0803EE34: pop {pc} .align 2, 0 thumb_func_start sub_0803EE38 sub_0803EE38: @ 0x0803EE38 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _0803EE60 subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803EE88 ldr r0, [r4, #0x54] ldrb r1, [r0, #0x10] movs r2, #0x80 orrs r1, r2 strb r1, [r0, #0x10] adds r0, r4, #0 movs r1, #0 bl sub_0803E94C b _0803EE88 _0803EE60: adds r1, r4, #0 adds r1, #0x7c ldrb r0, [r1] subs r0, #0xa strb r0, [r1] adds r0, r4, #0 bl sub_0803E9A4 adds r1, r4, #0 adds r1, #0x7e ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x27 bls _0803EE88 adds r0, r4, #0 bl sub_0803EE8C _0803EE88: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803EE8C sub_0803EE8C: @ 0x0803EE8C push {lr} movs r1, #1 strb r1, [r0, #0xc] adds r2, r0, #0 adds r2, #0x7a movs r1, #0x1e strb r1, [r2] movs r1, #0 bl sub_0803E94C pop {pc} .align 2, 0 thumb_func_start sub_0803EEA4 sub_0803EEA4: @ 0x0803EEA4 push {r4, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0803EEF8 adds r0, r4, #0 movs r1, #0x4e bl sub_0803EF04 cmp r0, #0 beq _0803EEF8 ldr r0, _0803EEF4 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 movs r2, #0x12 bl sub_0804A044 adds r2, r0, #0 cmp r2, #0xff beq _0803EEF8 adds r1, r4, #0 adds r1, #0x7a ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 bne _0803EF00 movs r0, #5 strb r0, [r4, #0xc] strb r2, [r4, #0x15] adds r0, r4, #0 movs r1, #0 bl sub_0803E94C movs r0, #1 b _0803EF02 .align 2, 0 _0803EEF4: .4byte gUnk_020000B0 _0803EEF8: adds r1, r4, #0 adds r1, #0x7a movs r0, #0x1e strb r0, [r1] _0803EF00: movs r0, #0 _0803EF02: pop {r4, pc} thumb_func_start sub_0803EF04 sub_0803EF04: @ 0x0803EF04 push {r4, lr} adds r3, r1, #0 ldr r1, _0803EF1C @ =gUnk_020000B0 ldr r2, [r1] movs r4, #0x2e ldrsh r1, [r2, r4] movs r4, #0x32 ldrsh r2, [r2, r4] subs r2, #4 bl sub_0806FCB8 pop {r4, pc} .align 2, 0 _0803EF1C: .4byte gUnk_020000B0 thumb_func_start sub_0803EF20 sub_0803EF20: @ 0x0803EF20 push {r4, r5, r6, r7, lr} adds r5, r0, #0 ldr r6, _0803EF5C @ =gUnk_03003D80 ldr r4, [r6, #4] cmp r4, r6 beq _0803EF6A ldr r7, _0803EF60 @ =gUnk_080D08C8 _0803EF2E: ldrb r0, [r4, #8] cmp r0, #8 bne _0803EF64 ldrb r0, [r4, #9] lsls r0, r0, #2 adds r0, r0, r7 ldr r2, [r0] adds r0, r5, #0 adds r1, r4, #0 bl _call_via_r2 cmp r0, #0 beq _0803EF64 movs r0, #2 strb r0, [r5, #0xc] adds r1, r5, #0 adds r1, #0x78 movs r0, #0xb4 strh r0, [r1] adds r1, #3 movs r0, #1 strb r0, [r1] b _0803EF6C .align 2, 0 _0803EF5C: .4byte gUnk_03003D80 _0803EF60: .4byte gUnk_080D08C8 _0803EF64: ldr r4, [r4, #4] cmp r4, r6 bne _0803EF2E _0803EF6A: movs r0, #0 _0803EF6C: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0803EF70 sub_0803EF70: @ 0x0803EF70 movs r0, #0 bx lr thumb_func_start sub_0803EF74 sub_0803EF74: @ 0x0803EF74 push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 movs r0, #0x2e ldrsh r1, [r4, r0] movs r0, #0x32 ldrsh r2, [r4, r0] adds r0, r5, #0 movs r3, #0x50 bl sub_0806FCB8 cmp r0, #0 beq _0803EFA8 adds r0, r4, #0 adds r1, r5, #0 bl sub_080045C4 ldrb r1, [r4, #0x15] subs r1, r1, r0 adds r1, #2 movs r0, #0x1f ands r1, r0 cmp r1, #4 bhi _0803EFA8 movs r0, #1 b _0803EFAA _0803EFA8: movs r0, #0 _0803EFAA: pop {r4, r5, pc} thumb_func_start sub_0803EFAC sub_0803EFAC: @ 0x0803EFAC push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 movs r2, #0x50 movs r3, #0x50 bl sub_080041A0 cmp r0, #0 beq _0803EFD6 adds r0, r4, #0 adds r1, r5, #0 movs r2, #0x1c bl sub_0804A044 cmp r0, #0xff beq _0803EFD6 ldrb r4, [r4, #0x15] cmp r0, r4 bne _0803EFD6 movs r0, #1 b _0803EFD8 _0803EFD6: movs r0, #0 _0803EFD8: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0803EFDC sub_0803EFDC: @ 0x0803EFDC push {r4, r5, lr} adds r4, r0, #0 ldr r5, _0803F004 @ =gUnk_080D0924 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r5 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 movs r3, #0x10 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, r5, pc} .align 2, 0 _0803F004: .4byte gUnk_080D0924 thumb_func_start sub_0803F008 sub_0803F008: @ 0x0803F008 push {r4, lr} adds r4, r0, #0 ldr r1, _0803F024 @ =gUnk_080D093C ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0803F694 pop {r4, pc} .align 2, 0 _0803F024: .4byte gUnk_080D093C thumb_func_start sub_0803F028 sub_0803F028: @ 0x0803F028 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] subs r0, #8 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _0803F05C movs r0, #0xff strb r0, [r4, #0x14] adds r0, r4, #0 adds r0, #0x3e ldrb r1, [r0] lsrs r1, r1, #4 movs r0, #1 eors r1, r0 adds r1, #1 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_0803F630 adds r0, r4, #0 bl sub_0803F6EC _0803F05C: adds r0, r4, #0 adds r0, #0x3f ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x41 cmp r0, #0x25 bne _0803F07E ldrb r0, [r1] cmp r0, #0x80 bne _0803F07E movs r0, #8 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #3 bl sub_08004260 b _0803F0E4 _0803F07E: ldrb r0, [r1] cmp r0, #0x9d bne _0803F08A movs r0, #0xc0 lsls r0, r0, #9 str r0, [r4, #0x20] _0803F08A: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _0803F0B0 adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] lsrs r0, r0, #4 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r1, #7 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _0803F0B0: adds r0, r4, #0 adds r0, #0x45 adds r1, r4, #0 adds r1, #0x7a ldrb r0, [r0] ldrb r2, [r1] cmp r0, r2 beq _0803F0E4 strb r0, [r1] ldrb r0, [r4, #0xc] subs r0, #1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _0803F0D4 adds r0, r4, #0 bl sub_0803F51C _0803F0D4: adds r0, r4, #0 adds r0, #0x3e ldrb r1, [r0] lsrs r1, r1, #4 adds r1, #7 adds r0, r4, #0 bl sub_08004260 _0803F0E4: ldr r1, _0803F0F0 @ =gUnk_080D0924 adds r0, r4, #0 bl sub_0804AA30 pop {r4, pc} .align 2, 0 _0803F0F0: .4byte gUnk_080D0924 thumb_func_start sub_0803F0F4 sub_0803F0F4: @ 0x0803F0F4 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_08001328 adds r0, r4, #0 adds r0, #0x42 ldrb r0, [r0] cmp r0, #0 bne _0803F144 adds r0, r4, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 beq _0803F144 adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 bne _0803F144 movs r0, #0xff strb r0, [r4, #0x14] adds r1, r4, #0 adds r1, #0x58 ldrb r0, [r1] subs r0, #7 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _0803F144 ldrb r1, [r1] subs r1, #7 movs r0, #1 eors r1, r0 adds r1, #1 adds r0, r4, #0 bl sub_08004260 _0803F144: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803F148 sub_0803F148: @ 0x0803F148 push {r4, lr} adds r4, r0, #0 adds r0, #0x58 ldrb r0, [r0] subs r0, #7 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bls _0803F164 ldrb r1, [r4, #0x14] adds r1, #7 adds r0, r4, #0 bl sub_08004260 _0803F164: adds r0, r4, #0 bl sub_08001242 ldrh r1, [r4, #0x36] movs r2, #0x36 ldrsh r0, [r4, r2] cmp r0, #0 bne _0803F178 ldr r0, _0803F1A4 @ =0x0000FFFF strh r0, [r4, #0x36] _0803F178: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 bne _0803F1A0 ldrb r0, [r4, #0x14] movs r1, #1 eors r1, r0 adds r1, #1 adds r0, r4, #0 bl sub_08004260 movs r0, #0xff strb r0, [r4, #0x15] movs r0, #1 rsbs r0, r0, #0 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_0803F630 _0803F1A0: pop {r4, pc} .align 2, 0 _0803F1A4: .4byte 0x0000FFFF thumb_func_start sub_0803F1A8 sub_0803F1A8: @ 0x0803F1A8 push {r4, lr} adds r4, r0, #0 bl sub_0806F520 cmp r0, #0 beq _0803F1CC ldr r0, _0803F1C8 @ =gUnk_080D0964 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 b _0803F1DE .align 2, 0 _0803F1C8: .4byte gUnk_080D0964 _0803F1CC: adds r0, r4, #0 bl sub_0803F51C ldrb r1, [r4, #0x15] lsrs r1, r1, #4 adds r1, #1 adds r0, r4, #0 bl sub_08004260 _0803F1DE: pop {r4, pc} thumb_func_start sub_0803F1E0 sub_0803F1E0: @ 0x0803F1E0 push {lr} movs r1, #1 strb r1, [r0, #0xd] movs r1, #0x3c strb r1, [r0, #0x1d] ldr r1, _0803F1F8 @ =gUnk_03001160 ldrb r1, [r1, #0x14] lsrs r1, r1, #2 adds r1, #5 bl sub_08004260 pop {pc} .align 2, 0 _0803F1F8: .4byte gUnk_03001160 thumb_func_start sub_0803F1FC sub_0803F1FC: @ 0x0803F1FC push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0806F4E8 pop {r4, pc} thumb_func_start sub_0803F20C sub_0803F20C: @ 0x0803F20C push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0806F3E4 cmp r0, #0 beq _0803F244 adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC cmp r0, #0 beq _0803F23E adds r2, r0, #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] _0803F23E: adds r0, r4, #0 bl sub_0804A7D4 _0803F244: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803F248 sub_0803F248: @ 0x0803F248 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 bl sub_08000E50 movs r2, #0x1e adds r1, r0, #0 ands r1, r2 movs r2, #0 strb r1, [r4, #0x15] movs r1, #0xff strb r1, [r4, #0x14] movs r1, #1 strb r1, [r4, #0x1c] adds r1, r4, #0 adds r1, #0x45 ldrb r1, [r1] adds r3, r4, #0 adds r3, #0x7a strb r1, [r3] lsrs r0, r0, #4 adds r1, r4, #0 adds r1, #0x7b strb r0, [r1] adds r0, r4, #0 adds r0, #0x7c strh r2, [r0] ldrb r0, [r4, #0xa] cmp r0, #0 beq _0803F28E adds r0, r4, #0 bl sub_0803F50C b _0803F2A0 _0803F28E: adds r0, r4, #0 bl sub_0803F51C ldrb r1, [r4, #0x15] lsrs r1, r1, #4 adds r1, #1 adds r0, r4, #0 bl sub_08004260 _0803F2A0: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803F2A4 sub_0803F2A4: @ 0x0803F2A4 push {r4, lr} adds r4, r0, #0 bl sub_0803F5A8 cmp r0, #0 beq _0803F2C0 movs r0, #2 strb r0, [r4, #0xc] bl sub_08000E50 movs r1, #0x60 ands r0, r1 adds r0, #0xa strb r0, [r4, #0xe] _0803F2C0: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803F2C4 sub_0803F2C4: @ 0x0803F2C4 push {r4, lr} adds r4, r0, #0 bl sub_0803F5A8 cmp r0, #0 bne _0803F2D8 adds r0, r4, #0 bl sub_0803F50C b _0803F322 _0803F2D8: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803F322 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] movs r0, #1 bl sub_08049DF4 cmp r0, #0 beq _0803F308 ldr r0, _0803F304 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl sub_080045C4 b _0803F310 .align 2, 0 _0803F304: .4byte gUnk_020000B0 _0803F308: bl sub_08000E50 movs r1, #0x1f ands r0, r1 _0803F310: strb r0, [r4, #0x15] ldrb r0, [r4, #0x15] lsrs r0, r0, #4 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r1, #1 adds r0, r4, #0 bl sub_08004260 _0803F322: pop {r4, pc} thumb_func_start sub_0803F324 sub_0803F324: @ 0x0803F324 push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803F33E adds r0, r4, #0 bl sub_0803F51C _0803F33E: pop {r4, pc} thumb_func_start sub_0803F340 sub_0803F340: @ 0x0803F340 push {r4, lr} adds r4, r0, #0 bl sub_0803F5D4 cmp r0, #0 bne _0803F36A adds r0, r4, #0 bl sub_0803F58C adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803F36A adds r0, r4, #0 bl sub_0803F51C _0803F36A: pop {r4, pc} thumb_func_start sub_0803F36C sub_0803F36C: @ 0x0803F36C push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff beq _0803F3A6 adds r0, r4, #0 bl sub_0803F66C adds r1, r4, #0 adds r1, #0x78 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0803F3AC movs r0, #6 strb r0, [r4, #0xc] adds r0, #0xfa strh r0, [r4, #0x24] b _0803F3AC _0803F3A6: adds r0, r4, #0 bl sub_0803F51C _0803F3AC: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803F3B0 sub_0803F3B0: @ 0x0803F3B0 push {r4, lr} adds r4, r0, #0 bl sub_0803F5A8 cmp r0, #0 bne _0803F3C4 adds r0, r4, #0 bl sub_0803F51C b _0803F41C _0803F3C4: movs r0, #1 bl sub_08049DF4 cmp r0, #0 beq _0803F414 ldrb r1, [r4, #0xe] adds r1, #1 strb r1, [r4, #0xe] ldr r2, _0803F40C @ =gUnk_080D0970 lsls r0, r1, #0x18 lsrs r0, r0, #0x1e adds r0, r0, r2 ldrb r0, [r0] ands r1, r0 cmp r1, #0 bne _0803F3F6 ldr r0, _0803F410 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl sub_080045C4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 _0803F3F6: adds r0, r4, #0 bl sub_0803F66C adds r0, r4, #0 bl sub_080AEFB4 adds r0, r4, #0 bl sub_08004274 b _0803F41C .align 2, 0 _0803F40C: .4byte gUnk_080D0970 _0803F410: .4byte gUnk_020000B0 _0803F414: movs r0, #7 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] _0803F41C: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803F420 sub_0803F420: @ 0x0803F420 push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803F43A adds r0, r4, #0 bl sub_0803F51C _0803F43A: pop {r4, pc} thumb_func_start sub_0803F43C sub_0803F43C: @ 0x0803F43C push {r4, lr} adds r4, r0, #0 bl sub_0803F738 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0803F474 movs r2, #0 movs r0, #9 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 adds r0, #0x78 strh r2, [r0] adds r0, r4, #0 movs r1, #4 bl sub_08004260 _0803F474: pop {r4, pc} .align 2, 0 thumb_func_start sub_0803F478 sub_0803F478: @ 0x0803F478 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0803F494 adds r0, r4, #0 bl sub_0803F6C0 _0803F494: bl sub_0807953C adds r1, r4, #0 adds r1, #0x78 cmp r0, #0 beq _0803F4A6 ldrh r0, [r1] adds r0, #0xc strh r0, [r1] _0803F4A6: ldr r2, _0803F500 @ =gUnk_03001160 adds r0, r2, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _0803F4B6 movs r0, #0xe0 strh r0, [r1] _0803F4B6: ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xdf bls _0803F504 adds r1, r4, #0 adds r1, #0x7c movs r0, #0x78 strh r0, [r1] movs r0, #0xff strb r0, [r4, #0x14] subs r1, #0x3f movs r0, #0xf4 strb r0, [r1] adds r1, #5 movs r0, #0x14 strb r0, [r1] adds r1, #4 movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r1] ldrb r0, [r2, #0x14] lsls r0, r0, #2 movs r1, #0x10 eors r0, r1 adds r1, r4, #0 adds r1, #0x3e strb r0, [r1] adds r0, r4, #0 bl sub_0803F51C adds r0, r4, #0 bl sub_0803F6EC b _0803F50A .align 2, 0 _0803F500: .4byte gUnk_03001160 _0803F504: adds r0, r4, #0 bl sub_0803F738 _0803F50A: pop {r4, pc} thumb_func_start sub_0803F50C sub_0803F50C: @ 0x0803F50C push {lr} movs r1, #1 strb r1, [r0, #0xc] movs r1, #9 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_0803F51C sub_0803F51C: @ 0x0803F51C push {lr} movs r1, #4 strb r1, [r0, #0xc] bl sub_0803F528 pop {pc} thumb_func_start sub_0803F528 sub_0803F528: @ 0x0803F528 push {r4, r5, lr} adds r4, r0, #0 bl sub_08000E50 adds r5, r0, #0 movs r0, #8 adds r1, r5, #0 ands r1, r0 adds r1, #8 strb r1, [r4, #0xe] adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 beq _0803F55C ldr r1, _0803F558 @ =gUnk_080D0978 movs r0, #7 ands r0, r5 adds r0, r0, r1 ldrb r0, [r0] ldrb r1, [r4, #0x15] adds r0, r0, r1 b _0803F562 .align 2, 0 _0803F558: .4byte gUnk_080D0978 _0803F55C: adds r0, r4, #0 bl sub_08049EE4 _0803F562: movs r1, #0x1e ands r0, r1 strb r0, [r4, #0x15] ldr r2, _0803F588 @ =gUnk_080D0974 lsrs r0, r5, #4 movs r1, #3 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] strh r0, [r4, #0x24] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x24 strb r0, [r1] adds r0, r4, #0 bl sub_0803F66C pop {r4, r5, pc} .align 2, 0 _0803F588: .4byte gUnk_080D0974 thumb_func_start sub_0803F58C sub_0803F58C: @ 0x0803F58C push {r4, r5, lr} adds r5, r0, #0 ldr r4, [r5, #0x30] bl sub_080AEFB4 ldr r1, [r5, #0x30] subs r4, r1, r4 lsrs r0, r4, #0x1f adds r4, r4, r0 asrs r4, r4, #1 subs r1, r1, r4 str r1, [r5, #0x30] pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0803F5A8 sub_0803F5A8: @ 0x0803F5A8 push {r4, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 bne _0803F5BA movs r0, #0 b _0803F5D2 _0803F5BA: ldr r0, _0803F5CC @ =gUnk_02033A90 movs r1, #0xa ldrsh r0, [r0, r1] cmp r0, #0xf bgt _0803F5D0 adds r0, r4, #0 bl sub_0806FD54 b _0803F5D2 .align 2, 0 _0803F5CC: .4byte gUnk_02033A90 _0803F5D0: movs r0, #1 _0803F5D2: pop {r4, pc} thumb_func_start sub_0803F5D4 sub_0803F5D4: @ 0x0803F5D4 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x7c ldrh r0, [r1] cmp r0, #0 beq _0803F5E8 subs r0, #1 strh r0, [r1] b _0803F62C _0803F5E8: adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0803F62C adds r0, r4, #0 bl sub_0806FD54 cmp r0, #0 bne _0803F61A ldr r0, _0803F624 @ =gUnk_02033A90 movs r1, #0xa ldrsh r0, [r0, r1] cmp r0, #0xf ble _0803F62C ldr r0, _0803F628 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 movs r2, #0x70 movs r3, #0x48 bl sub_080041A0 cmp r0, #0 beq _0803F62C _0803F61A: adds r0, r4, #0 bl sub_0803F630 movs r0, #1 b _0803F62E .align 2, 0 _0803F624: .4byte gUnk_02033A90 _0803F628: .4byte gUnk_020000B0 _0803F62C: movs r0, #0 _0803F62E: pop {r4, pc} thumb_func_start sub_0803F630 sub_0803F630: @ 0x0803F630 push {r4, r5, lr} adds r4, r0, #0 movs r0, #5 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x25 strb r0, [r1] movs r5, #0 ldr r0, _0803F664 @ =gUnk_03004040 ldr r0, [r0] cmp r0, #0 beq _0803F64C movs r5, #0x3c _0803F64C: bl sub_08000E50 ldr r2, _0803F668 @ =gUnk_080D0980 movs r1, #3 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] adds r0, r0, r5 adds r1, r4, #0 adds r1, #0x78 strh r0, [r1] pop {r4, r5, pc} .align 2, 0 _0803F664: .4byte gUnk_03004040 _0803F668: .4byte gUnk_080D0980 thumb_func_start sub_0803F66C sub_0803F66C: @ 0x0803F66C push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x15] movs r0, #0xf ands r0, r1 cmp r0, #0 bne _0803F680 ldrb r0, [r2, #0x14] cmp r0, #0xff bne _0803F692 _0803F680: lsrs r0, r1, #4 ldrb r1, [r2, #0x14] cmp r0, r1 beq _0803F692 strb r0, [r2, #0x14] adds r1, r0, #1 adds r0, r2, #0 bl sub_08004260 _0803F692: pop {pc} thumb_func_start sub_0803F694 sub_0803F694: @ 0x0803F694 push {r4, lr} ldr r3, _0803F6BC @ =gUnk_080D0984 movs r1, #0x7b adds r1, r1, r0 mov ip, r1 ldrb r1, [r1] adds r2, r1, #1 mov r4, ip strb r2, [r4] lsls r1, r1, #0x18 lsrs r1, r1, #0x1b movs r2, #3 ands r1, r2 adds r1, r1, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 strh r1, [r0, #0x36] pop {r4, pc} .align 2, 0 _0803F6BC: .4byte gUnk_080D0984 thumb_func_start sub_0803F6C0 sub_0803F6C0: @ 0x0803F6C0 push {r4, lr} adds r0, #0x5a ldrb r2, [r0] movs r1, #0xfe ands r1, r2 strb r1, [r0] ldr r4, _0803F6E8 @ =gUnk_03001160 adds r1, r4, #0 adds r1, #0x3d movs r0, #0xc strb r0, [r1] subs r0, #0x10 bl sub_080526A0 adds r0, r4, #0 movs r1, #0x7a bl sub_0800449C pop {r4, pc} .align 2, 0 _0803F6E8: .4byte gUnk_03001160 thumb_func_start sub_0803F6EC sub_0803F6EC: @ 0x0803F6EC push {lr} ldr r2, _0803F72C @ =gUnk_03001160 adds r0, r2, #0 adds r0, #0x45 ldrb r0, [r0] ldr r3, _0803F730 @ =gUnk_03003F80 cmp r0, #0 beq _0803F720 ldrb r1, [r2, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x10] movs r0, #0xc0 lsls r0, r0, #9 str r0, [r2, #0x20] ldr r0, _0803F734 @ =0x0000FFFE strh r0, [r2, #0x36] ldrb r0, [r2, #0x14] lsls r0, r0, #2 strb r0, [r2, #0x15] adds r1, r2, #0 adds r1, #0x3d movs r0, #0xc4 strb r0, [r1] movs r0, #0x41 strb r0, [r3, #2] _0803F720: ldr r0, [r3, #0x30] movs r1, #0x11 rsbs r1, r1, #0 ands r0, r1 str r0, [r3, #0x30] pop {pc} .align 2, 0 _0803F72C: .4byte gUnk_03001160 _0803F730: .4byte gUnk_03003F80 _0803F734: .4byte 0x0000FFFE thumb_func_start sub_0803F738 sub_0803F738: @ 0x0803F738 push {r4, lr} adds r4, r0, #0 bl sub_08077B2C ldr r2, _0803F768 @ =gUnk_03003F80 ldrb r1, [r2, #0x1a] movs r0, #0x80 orrs r1, r0 strb r1, [r2, #0x1a] ldrb r1, [r2, #0xa] orrs r0, r1 strb r0, [r2, #0xa] ldr r0, _0803F76C @ =gUnk_03001160 adds r1, r4, #0 movs r2, #0 movs r3, #1 bl sub_0806FA90 adds r4, #0x63 ldrb r0, [r4] subs r0, #2 strb r0, [r4] pop {r4, pc} .align 2, 0 _0803F768: .4byte gUnk_03003F80 _0803F76C: .4byte gUnk_03001160 thumb_func_start sub_0803F770 sub_0803F770: @ 0x0803F770 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #5 bhi _0803F810 lsls r0, r0, #2 ldr r1, _0803F784 @ =_0803F788 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803F784: .4byte _0803F788 _0803F788: @ jump table .4byte _0803F7A0 @ case 0 .4byte _0803F7D0 @ case 1 .4byte _0803F7D8 @ case 2 .4byte _0803F7E0 @ case 3 .4byte _0803F7E8 @ case 4 .4byte _0803F800 @ case 5 _0803F7A0: ldrb r0, [r4, #0xc] cmp r0, #0 beq _0803F7C8 adds r1, r4, #0 adds r1, #0x78 ldrh r0, [r1] adds r2, r4, #0 adds r2, #0x7a strh r0, [r2] ldrh r0, [r4, #0x2e] strh r0, [r1] adds r1, #4 ldrh r0, [r1] adds r2, #4 strh r0, [r2] ldrh r0, [r4, #0x32] strh r0, [r1] adds r0, r4, #0 bl sub_080409B0 _0803F7C8: ldr r0, _0803F7CC @ =gUnk_080D0AC8 b _0803F7EA .align 2, 0 _0803F7CC: .4byte gUnk_080D0AC8 _0803F7D0: ldr r0, _0803F7D4 @ =gUnk_080D0AE8 b _0803F7EA .align 2, 0 _0803F7D4: .4byte gUnk_080D0AE8 _0803F7D8: ldr r0, _0803F7DC @ =gUnk_080D0AF0 b _0803F7EA .align 2, 0 _0803F7DC: .4byte gUnk_080D0AF0 _0803F7E0: ldr r0, _0803F7E4 @ =gUnk_080D0AFC b _0803F7EA .align 2, 0 _0803F7E4: .4byte gUnk_080D0AFC _0803F7E8: ldr r0, _0803F7FC @ =gUnk_080D0B04 _0803F7EA: ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 b _0803F810 .align 2, 0 _0803F7FC: .4byte gUnk_080D0B04 _0803F800: ldr r0, _0803F814 @ =gUnk_080D0B0C ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _0803F810: pop {r4, pc} .align 2, 0 _0803F814: .4byte gUnk_080D0B0C thumb_func_start sub_0803F818 sub_0803F818: @ 0x0803F818 push {r4, r5, r6, r7, lr} adds r5, r0, #0 bl sub_0804A720 movs r0, #0 bl sub_0807CC3C cmp r0, #0 beq _0803F910 ldr r0, _0803F8FC @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x50 bhi _0803F910 movs r4, #0 movs r2, #1 movs r0, #1 strb r0, [r5, #0xc] ldrb r1, [r5, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r5, #0x18] adds r3, r5, #0 adds r3, #0x29 ldrb r1, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #5 orrs r0, r1 strb r0, [r3] adds r1, r5, #0 adds r1, #0x6d ldrb r0, [r1] orrs r2, r0 strb r2, [r1] bl sub_08000E50 movs r1, #0x17 ands r0, r1 adds r0, #4 strb r0, [r5, #0x15] movs r0, #0x30 strb r0, [r5, #0xe] movs r0, #0xc strb r0, [r5, #0xf] adds r1, r5, #0 adds r1, #0x82 movs r0, #4 strb r0, [r1] subs r1, #2 movs r0, #0xff strb r0, [r1] adds r0, r5, #0 adds r0, #0x74 strb r4, [r0] adds r0, #3 strb r4, [r0] adds r1, #4 movs r0, #9 strb r0, [r1] strb r4, [r5, #0x14] adds r0, r5, #0 adds r0, #0x86 strb r4, [r0] adds r0, #1 strb r4, [r0] ldrh r1, [r5, #0x2e] subs r0, #0xf strh r1, [r0] ldrh r0, [r5, #0x2e] adds r1, r5, #0 adds r1, #0x7a strh r0, [r1] ldrh r1, [r5, #0x32] adds r0, r5, #0 adds r0, #0x7c strh r1, [r0] ldrh r0, [r5, #0x32] adds r1, r5, #0 adds r1, #0x7e strh r0, [r1] movs r4, #1 adds r7, r5, #0 adds r7, #0x75 _0803F8C2: adds r0, r5, #0 adds r1, r4, #0 movs r2, #0 bl sub_08040648 adds r4, #1 cmp r4, #5 bls _0803F8C2 bl sub_08000E50 adds r0, r5, #0 bl sub_080408EC movs r4, #0 movs r6, #1 _0803F8E0: movs r0, #0x5a movs r1, #0 bl sub_0804AA60 str r5, [r0, #0x50] strb r4, [r0, #0xb] ldrb r1, [r7] asrs r1, r4 ands r1, r6 cmp r1, #0 beq _0803F900 strb r6, [r0, #0xe] b _0803F902 .align 2, 0 _0803F8FC: .4byte gUnk_03003DBC _0803F900: strb r1, [r0, #0xe] _0803F902: adds r4, #1 cmp r4, #7 bls _0803F8E0 adds r0, r5, #0 movs r1, #0 bl sub_080042AC _0803F910: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0803F914 sub_0803F914: @ 0x0803F914 push {r4, r5, r6, r7, lr} sub sp, #4 adds r7, r0, #0 adds r4, r7, #0 adds r4, #0x80 ldrb r0, [r4] cmp r0, #2 beq _0803F998 cmp r0, #2 bgt _0803F932 cmp r0, #0 beq _0803F95A cmp r0, #1 beq _0803F97A b _0803FA40 _0803F932: cmp r0, #4 bne _0803F938 b _0803FA3A _0803F938: cmp r0, #4 blt _0803F9CE adds r3, r4, #0 cmp r0, #0xff beq _0803F944 b _0803FA42 _0803F944: ldrb r0, [r7, #0xe] subs r0, #1 strb r0, [r7, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 bne _0803FA42 strb r0, [r3] movs r0, #0xb strb r0, [r7, #0xe] b _0803FA42 _0803F95A: ldrb r0, [r7, #0xe] subs r0, #1 strb r0, [r7, #0xe] lsls r0, r0, #0x18 adds r3, r4, #0 cmp r0, #0 bne _0803FA42 ldrb r0, [r3] adds r0, #1 strb r0, [r3] movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r7, #0x24] movs r0, #0x14 strb r0, [r7, #0xe] b _0803FA42 _0803F97A: ldrb r0, [r7, #0xe] subs r0, #1 strb r0, [r7, #0xe] lsls r0, r0, #0x18 adds r3, r4, #0 cmp r0, #0 bne _0803FA42 ldrb r0, [r3] adds r0, #1 strb r0, [r3] movs r0, #0xc0 strh r0, [r7, #0x24] movs r0, #0xc strb r0, [r7, #0xe] b _0803FA42 _0803F998: ldrb r0, [r7, #0xe] subs r0, #1 strb r0, [r7, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 adds r3, r4, #0 cmp r1, #0 bne _0803FA42 ldrb r0, [r3] adds r0, #1 strb r0, [r3] strh r1, [r7, #0x24] ldrb r0, [r7, #0x14] cmp r0, #1 bhi _0803F9C8 str r3, [sp] bl sub_08000E50 movs r1, #0x7f ands r0, r1 adds r0, #0x40 strb r0, [r7, #0xe] ldr r3, [sp] b _0803FA42 _0803F9C8: movs r0, #8 strb r0, [r7, #0xe] b _0803FA42 _0803F9CE: ldrb r0, [r7, #0xe] subs r0, #1 strb r0, [r7, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0803FA32 movs r0, #0 strh r1, [r7, #0x36] strb r0, [r4] ldr r1, _0803FA04 @ =gUnk_080D0ABF ldrb r0, [r7, #0x14] lsls r0, r0, #1 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r7, #0xe] adds r0, r7, #0 bl sub_08040934 adds r1, r0, #0 cmp r1, #2 beq _0803FA1A cmp r1, #2 bhi _0803FA08 cmp r1, #1 beq _0803FA0E b _0803FA26 .align 2, 0 _0803FA04: .4byte gUnk_080D0ABF _0803FA08: cmp r1, #3 beq _0803FA20 b _0803FA26 _0803FA0E: movs r0, #4 strb r0, [r7, #0xc] adds r0, r7, #0 adds r0, #0x74 strb r1, [r0] b _0803FA40 _0803FA1A: movs r0, #5 strb r0, [r7, #0xc] b _0803FA40 _0803FA20: movs r0, #6 strb r0, [r7, #0xc] b _0803FA40 _0803FA26: adds r1, r7, #0 adds r1, #0x80 movs r0, #4 strb r0, [r1] adds r3, r1, #0 b _0803FA42 _0803FA32: adds r0, r7, #0 bl sub_08040AD4 b _0803FA40 _0803FA3A: adds r0, r7, #0 bl sub_08040670 _0803FA40: adds r3, r4, #0 _0803FA42: adds r1, r7, #0 adds r1, #0x82 ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 bne _0803FAAC movs r0, #4 strb r0, [r1] ldrb r2, [r7, #0x15] adds r2, #0x12 movs r0, #0x1c ands r2, r0 asrs r2, r2, #2 movs r0, #0x9b movs r1, #0 str r3, [sp] bl sub_080A2960 adds r6, r0, #0 ldr r3, [sp] cmp r6, #0 beq _0803FAAC str r7, [r6, #0x50] str r3, [sp] bl sub_08000E50 movs r5, #0xf ands r0, r5 ldr r1, _0803FAC4 @ =0x0000FFF9 adds r4, r1, #0 adds r0, r4, r0 ldrh r1, [r6, #0x2e] adds r0, r0, r1 strh r0, [r6, #0x2e] bl sub_08000E50 ands r0, r5 adds r4, r4, r0 ldrh r0, [r6, #0x32] adds r4, r4, r0 strh r4, [r6, #0x32] adds r2, r6, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] ldr r3, [sp] _0803FAAC: ldrb r0, [r3] cmp r0, #0xff beq _0803FAB8 adds r0, r7, #0 bl sub_080AEF88 _0803FAB8: adds r0, r7, #0 bl sub_080042B8 add sp, #4 pop {r4, r5, r6, r7, pc} .align 2, 0 _0803FAC4: .4byte 0x0000FFF9 thumb_func_start sub_0803FAC8 sub_0803FAC8: @ 0x0803FAC8 push {lr} bl sub_080042B8 pop {pc} thumb_func_start sub_0803FAD0 sub_0803FAD0: @ 0x0803FAD0 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #5 bls _0803FADE b _0803FD32 _0803FADE: lsls r0, r0, #2 ldr r1, _0803FAE8 @ =_0803FAEC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803FAE8: .4byte _0803FAEC _0803FAEC: @ jump table .4byte _0803FB04 @ case 0 .4byte _0803FB34 @ case 1 .4byte _0803FBB8 @ case 2 .4byte _0803FBE2 @ case 3 .4byte _0803FC80 @ case 4 .4byte _0803FD0C @ case 5 _0803FB04: movs r1, #0xa0 lsls r1, r1, #6 adds r0, r7, #0 bl sub_080044EC adds r1, r0, #0 cmp r1, #1 beq _0803FB16 b _0803FD32 _0803FB16: adds r0, r7, #0 adds r0, #0x80 strb r1, [r0] movs r0, #0xc0 strb r0, [r7, #0xe] ldrb r1, [r7, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r7, #0x10] movs r0, #0xa6 lsls r0, r0, #1 bl sub_080A3268 movs r0, #0x14 b _0803FC4A _0803FB34: ldrb r0, [r7, #0xe] subs r0, #1 strb r0, [r7, #0xe] lsls r0, r0, #0x18 lsrs r2, r0, #0x18 adds r3, r7, #0 adds r3, #0x80 cmp r2, #0 bne _0803FB58 movs r0, #2 strb r0, [r3] adds r1, r7, #0 adds r1, #0x3f movs r0, #0x35 strb r0, [r1] adds r0, r7, #0 adds r0, #0x62 strb r2, [r0] _0803FB58: adds r2, r7, #0 adds r2, #0x45 ldr r0, _0803FB70 @ =gUnk_080D0ABC ldrb r1, [r7, #0x14] adds r1, r1, r0 ldrb r0, [r2] ldrb r1, [r1] cmp r0, r1 bhs _0803FB74 movs r0, #1 strb r0, [r7, #0xe] b _0803FB76 .align 2, 0 _0803FB70: .4byte gUnk_080D0ABC _0803FB74: movs r0, #0 _0803FB76: cmp r0, #0 bne _0803FB7C b _0803FD32 _0803FB7C: movs r1, #0 movs r0, #2 strb r0, [r3] adds r2, r7, #0 adds r2, #0x3f movs r0, #0x35 strb r0, [r2] adds r0, r7, #0 adds r0, #0x62 strb r1, [r0] ldrb r0, [r7, #0x14] adds r0, #1 strb r0, [r7, #0x14] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #2 bhi _0803FBA0 b _0803FD32 _0803FBA0: movs r0, #7 strb r0, [r7, #0xc] movs r0, #0xe0 strb r0, [r7, #0xe] bl sub_0807A108 ldr r0, _0803FBB4 @ =0x00000127 bl sub_080A3268 b _0803FD4E .align 2, 0 _0803FBB4: .4byte 0x00000127 _0803FBB8: ldr r0, [r7, #0x54] adds r0, #0x74 movs r1, #0x10 strb r1, [r0] ldrb r0, [r7, #0xe] cmp r0, #0 beq _0803FBD4 adds r0, r7, #0 adds r0, #0x80 movs r1, #3 strb r1, [r0] movs r0, #0x40 strb r0, [r7, #0xe] b _0803FD32 _0803FBD4: adds r0, r7, #0 adds r0, #0x80 movs r1, #4 strb r1, [r0] movs r0, #0x50 strb r0, [r7, #0xe] b _0803FD32 _0803FBE2: ldrb r0, [r7, #0xe] cmp r0, #0 beq _0803FC08 subs r0, #1 strb r0, [r7, #0xe] lsls r0, r0, #0x18 cmp r0, #0 beq _0803FBF4 b _0803FD32 _0803FBF4: ldrb r1, [r7, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r7, #0x10] movs r0, #0xe0 lsls r0, r0, #0xa str r0, [r7, #0x20] movs r0, #0x10 strb r0, [r7, #0xf] b _0803FD32 _0803FC08: movs r1, #0xa0 lsls r1, r1, #6 adds r0, r7, #0 bl sub_08003FC4 adds r2, r0, #0 cmp r2, #0 bne _0803FC52 adds r1, r7, #0 adds r1, #0x80 movs r0, #5 strb r0, [r1] movs r0, #0x10 strb r0, [r7, #0xe] ldrb r1, [r7, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r7, #0x10] adds r1, r7, #0 adds r1, #0x45 movs r0, #0xff strb r0, [r1] adds r0, r7, #0 adds r0, #0x86 strb r2, [r0] adds r0, r7, #0 bl sub_080408EC movs r0, #0xa6 lsls r0, r0, #1 bl sub_080A3268 movs r0, #0x1e _0803FC4A: movs r1, #4 bl sub_08080964 b _0803FD32 _0803FC52: ldrb r0, [r7, #0xf] cmp r0, #0 beq _0803FD32 subs r1, r0, #1 strb r1, [r7, #0xf] lsls r0, r1, #0x18 cmp r0, #0 bne _0803FC6C movs r0, #0xd8 lsls r0, r0, #1 bl sub_080A3268 b _0803FD32 _0803FC6C: movs r0, #7 ands r1, r0 cmp r1, #0 bne _0803FD32 ldr r0, _0803FC7C @ =0x00000149 bl sub_080A3268 b _0803FD32 .align 2, 0 _0803FC7C: .4byte 0x00000149 _0803FC80: ldrb r0, [r7, #0xe] subs r1, r0, #1 strb r1, [r7, #0xe] lsls r0, r1, #0x18 lsrs r2, r0, #0x18 cmp r2, #0 bne _0803FCA8 adds r0, r7, #0 adds r0, #0x80 movs r1, #5 strb r1, [r0] movs r0, #0x10 strb r0, [r7, #0xe] adds r0, r7, #0 adds r0, #0x86 strb r2, [r0] adds r0, r7, #0 bl sub_080408EC b _0803FD32 _0803FCA8: movs r0, #1 ands r1, r0 cmp r1, #0 beq _0803FD32 movs r0, #0x9b movs r1, #1 movs r2, #0xff bl sub_080A2960 adds r6, r0, #0 cmp r6, #0 beq _0803FD32 str r7, [r6, #0x50] adds r0, r7, #0 adds r1, r6, #0 bl sub_0806FA24 bl sub_08000E50 movs r5, #0xf ands r0, r5 ldr r1, _0803FD08 @ =0x0000FFF9 adds r4, r1, #0 adds r0, r4, r0 ldrh r1, [r6, #0x2e] adds r0, r0, r1 strh r0, [r6, #0x2e] bl sub_08000E50 ands r0, r5 adds r4, r4, r0 ldrh r0, [r6, #0x32] adds r4, r4, r0 strh r4, [r6, #0x32] adds r2, r6, #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, #0x92 lsls r0, r0, #1 bl sub_080A3268 b _0803FD32 .align 2, 0 _0803FD08: .4byte 0x0000FFF9 _0803FD0C: ldrb r0, [r7, #0xe] subs r0, #1 strb r0, [r7, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0803FD32 movs r0, #1 strb r0, [r7, #0xc] adds r0, r7, #0 adds r0, #0x80 strb r1, [r0] adds r0, #1 strb r1, [r0] subs r0, #0xb strb r1, [r0] adds r0, r7, #0 bl sub_08040670 _0803FD32: adds r0, r7, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #2 bls _0803FD48 ldrb r1, [r7, #0xe] movs r0, #1 ands r0, r1 adds r1, r7, #0 adds r1, #0x62 strb r0, [r1] _0803FD48: adds r0, r7, #0 bl sub_080042B8 _0803FD4E: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0803FD50 sub_0803FD50: @ 0x0803FD50 push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x80 ldrb r0, [r5] cmp r0, #1 beq _0803FDA8 cmp r0, #1 bgt _0803FD68 cmp r0, #0 beq _0803FD72 b _0803FE86 _0803FD68: cmp r0, #2 beq _0803FE0C cmp r0, #3 beq _0803FE62 b _0803FE86 _0803FD72: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 beq _0803FD82 b _0803FE86 _0803FD82: ldrb r0, [r5] adds r0, #1 strb r0, [r5] adds r0, r4, #0 adds r0, #0x74 strb r1, [r0] movs r0, #0x80 strb r0, [r4, #0xe] strb r1, [r4, #0xf] movs r0, #0x90 lsls r0, r0, #0xa str r0, [r4, #0x20] ldr r0, _0803FDA4 @ =0x0000012B bl sub_080A3268 b _0803FE86 .align 2, 0 _0803FDA4: .4byte 0x0000012B _0803FDA8: movs r1, #0xa0 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _0803FE86 ldrb r0, [r5] adds r0, #1 strb r0, [r5] adds r0, r4, #0 adds r0, #0x84 ldrb r0, [r0] cmp r0, #1 beq _0803FDD8 cmp r0, #1 bgt _0803FDD0 cmp r0, #0 beq _0803FDDE b _0803FDE4 _0803FDD0: cmp r0, #2 beq _0803FDDE cmp r0, #3 bne _0803FDE4 _0803FDD8: movs r0, #1 strb r0, [r4, #0xf] b _0803FDF0 _0803FDDE: movs r0, #0 strb r0, [r4, #0xf] b _0803FDF0 _0803FDE4: bl sub_08000E50 movs r1, #0x20 ands r1, r0 lsrs r1, r1, #5 strb r1, [r4, #0xf] _0803FDF0: ldrb r0, [r4, #0x14] cmp r0, #1 bls _0803FDFA movs r0, #1 strb r0, [r4, #0xf] _0803FDFA: movs r0, #0xa6 lsls r0, r0, #1 bl sub_080A3268 movs r0, #0x1e movs r1, #4 bl sub_08080964 b _0803FE86 _0803FE0C: ldrb r0, [r4, #0xe] subs r1, r0, #1 strb r1, [r4, #0xe] lsls r0, r1, #0x18 cmp r0, #0 bne _0803FE34 ldrb r0, [r5] adds r0, #1 strb r0, [r5] ldr r2, _0803FE30 @ =gUnk_080D0ABF ldrb r0, [r4, #0x14] lsls r0, r0, #1 movs r1, #1 orrs r0, r1 adds r0, r0, r2 ldrb r0, [r0] strb r0, [r4, #0xe] b _0803FE86 .align 2, 0 _0803FE30: .4byte gUnk_080D0ABF _0803FE34: movs r0, #7 ands r1, r0 cmp r1, #0 bne _0803FE46 ldrb r2, [r4, #0xf] adds r0, r4, #0 movs r1, #0x1f bl sub_0804A98C _0803FE46: ldrb r0, [r4, #0xf] cmp r0, #0 beq _0803FE86 ldrb r0, [r4, #0x14] cmp r0, #1 bls _0803FE86 ldrb r0, [r4, #0xe] cmp r0, #5 bhi _0803FE86 movs r0, #0x80 strb r0, [r4, #0xe] movs r0, #0 strb r0, [r4, #0xf] b _0803FE86 _0803FE62: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0803FE80 movs r0, #1 strb r0, [r4, #0xc] strb r1, [r5] strh r1, [r4, #0x36] adds r0, r4, #0 bl sub_08040670 b _0803FE86 _0803FE80: adds r0, r4, #0 bl sub_08040AD4 _0803FE86: adds r0, r4, #0 bl sub_080042B8 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0803FE90 sub_0803FE90: @ 0x0803FE90 push {r4, r5, lr} adds r4, r0, #0 adds r3, r4, #0 adds r3, #0x80 ldrb r2, [r3] cmp r2, #1 beq _0803FED4 cmp r2, #1 bgt _0803FEA8 cmp r2, #0 beq _0803FEAE b _0803FF74 _0803FEA8: cmp r2, #2 beq _0803FF52 b _0803FF74 _0803FEAE: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0803FF74 ldrb r0, [r3] adds r0, #1 strb r0, [r3] movs r0, #0x40 strb r0, [r4, #0xe] ldrb r0, [r4, #0x14] cmp r0, #1 bls _0803FF74 movs r0, #0x80 strb r0, [r4, #0xe] movs r0, #1 strb r0, [r4, #0xf] b _0803FF74 _0803FED4: ldrb r0, [r4, #0xe] subs r1, r0, #1 strb r1, [r4, #0xe] lsls r0, r1, #0x18 cmp r0, #0 bne _0803FEFC ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r1, _0803FEF8 @ =gUnk_080D0ABF ldrb r0, [r4, #0x14] lsls r0, r0, #1 orrs r0, r2 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r4, #0xe] b _0803FF74 .align 2, 0 _0803FEF8: .4byte gUnk_080D0ABF _0803FEFC: ldrb r0, [r4, #0xf] cmp r0, #0 beq _0803FF24 movs r0, #7 ands r1, r0 cmp r1, #0 bne _0803FF14 ldrb r2, [r4, #0xf] adds r0, r4, #0 movs r1, #0x1f bl sub_0804A98C _0803FF14: ldrb r0, [r4, #0xe] cmp r0, #5 bhi _0803FF74 movs r0, #0x40 strb r0, [r4, #0xe] movs r0, #0 strb r0, [r4, #0xf] b _0803FF74 _0803FF24: movs r5, #0xf ands r5, r1 cmp r5, #0 bne _0803FF74 adds r0, r4, #0 movs r1, #0x1f movs r2, #2 bl sub_0804A98C adds r1, r0, #0 cmp r1, #0 beq _0803FF74 strb r5, [r1, #0xb] adds r0, r4, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #0 beq _0803FF74 ldrh r0, [r1, #0x24] lsls r0, r0, #0x10 asrs r0, r0, #0x11 strh r0, [r1, #0x24] b _0803FF74 _0803FF52: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0803FF6E movs r0, #1 strb r0, [r4, #0xc] strb r1, [r3] adds r0, r4, #0 bl sub_08040670 b _0803FF74 _0803FF6E: adds r0, r4, #0 bl sub_08040AD4 _0803FF74: adds r0, r4, #0 bl sub_080042B8 pop {r4, r5, pc} thumb_func_start sub_0803FF7C sub_0803FF7C: @ 0x0803FF7C push {r4, r5, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x80 ldrb r5, [r2] cmp r5, #1 beq _0803FFBC cmp r5, #1 bgt _0803FF94 cmp r5, #0 beq _0803FF9A b _08040062 _0803FF94: cmp r5, #2 beq _08040040 b _08040062 _0803FF9A: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08040062 ldrb r0, [r2] adds r0, #1 strb r0, [r2] movs r0, #0x80 strb r0, [r4, #0xe] ldrb r0, [r4, #0x14] cmp r0, #1 bls _08040062 movs r0, #1 strb r0, [r4, #0xf] b _08040062 _0803FFBC: ldrb r0, [r4, #0xe] subs r1, r0, #1 strb r1, [r4, #0xe] lsls r0, r1, #0x18 cmp r0, #0 bne _0803FFE4 ldrb r0, [r2] adds r0, #1 strb r0, [r2] ldr r1, _0803FFE0 @ =gUnk_080D0ABF ldrb r0, [r4, #0x14] lsls r0, r0, #1 orrs r0, r5 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r4, #0xe] b _08040062 .align 2, 0 _0803FFE0: .4byte gUnk_080D0ABF _0803FFE4: ldrb r0, [r4, #0xf] cmp r0, #0 beq _0804000C movs r0, #7 ands r1, r0 cmp r1, #0 bne _0803FFFC ldrb r2, [r4, #0xf] adds r0, r4, #0 movs r1, #0x1f bl sub_0804A98C _0803FFFC: ldrb r0, [r4, #0xe] cmp r0, #5 bhi _08040062 movs r0, #0x80 strb r0, [r4, #0xe] movs r0, #0 strb r0, [r4, #0xf] b _08040062 _0804000C: movs r0, #0x1f ands r1, r0 cmp r1, #0 bne _08040062 adds r0, r4, #0 movs r1, #0x1f movs r2, #2 bl sub_0804A98C adds r1, r0, #0 cmp r1, #0 beq _08040062 strb r5, [r1, #0xb] ldrh r0, [r1, #0x32] subs r0, #0x20 strh r0, [r1, #0x32] adds r0, r4, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #0 beq _08040062 ldrh r0, [r1, #0x24] lsls r0, r0, #0x10 asrs r0, r0, #0x11 strh r0, [r1, #0x24] b _08040062 _08040040: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0804005C movs r0, #1 strb r0, [r4, #0xc] strb r1, [r2] adds r0, r4, #0 bl sub_08040670 b _08040062 _0804005C: adds r0, r4, #0 bl sub_08040AD4 _08040062: adds r0, r4, #0 bl sub_080042B8 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0804006C sub_0804006C: @ 0x0804006C push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_08078B48 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08040090 subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080400C2 movs r0, #2 bl sub_0807CD10 movs r0, #8 strb r0, [r4, #0xf] b _080400BA _08040090: ldrb r0, [r4, #0xf] cmp r0, #0 beq _080400B4 subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 bne _080400BA adds r1, r4, #0 adds r1, #0x45 strb r0, [r1] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] b _080400BA _080400B4: adds r0, r4, #0 bl sub_0804A7D4 _080400BA: adds r0, r4, #0 bl sub_080042B8 b _08040126 _080400C2: ldrb r0, [r4, #0xf] adds r0, #1 movs r1, #7 ands r0, r1 strb r0, [r4, #0xf] cmp r0, #0 bne _08040120 adds r0, r4, #0 movs r1, #0x55 movs r2, #0 bl sub_080A29AC adds r5, r0, #0 cmp r5, #0 beq _08040120 bl sub_08000E50 ldr r1, _08040128 @ =0x00003F3F ands r0, r1 movs r3, #0xff adds r1, r0, #0 ands r1, r3 ldr r6, _0804012C @ =0x0000FFE0 adds r2, r6, #0 adds r1, r2, r1 ldrh r6, [r5, #0x2e] adds r1, r1, r6 strh r1, [r5, #0x2e] lsrs r0, r0, #8 ands r0, r3 adds r2, r2, r0 ldrh r0, [r5, #0x32] adds r2, r2, r0 strh r2, [r5, #0x32] adds r2, r5, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r2] movs r0, #0xb7 lsls r0, r0, #1 bl sub_080A3268 _08040120: adds r0, r4, #0 bl sub_080042B8 _08040126: pop {r4, r5, r6, pc} .align 2, 0 _08040128: .4byte 0x00003F3F _0804012C: .4byte 0x0000FFE0 thumb_func_start sub_08040130 sub_08040130: @ 0x08040130 push {lr} movs r2, #0 movs r1, #1 strb r1, [r0, #0xc] strb r2, [r0, #0xe] adds r1, r0, #0 adds r1, #0x80 strb r2, [r1] adds r3, r0, #0 adds r3, #0x29 ldrb r2, [r3] movs r1, #8 rsbs r1, r1, #0 ands r1, r2 movs r2, #6 orrs r1, r2 strb r1, [r3] ldrb r1, [r0, #0xe] bl sub_080042AC pop {pc} .align 2, 0 thumb_func_start sub_0804015C sub_0804015C: @ 0x0804015C push {r4, r5, lr} adds r4, r0, #0 ldr r5, [r4, #0x50] adds r0, r5, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _0804017C adds r2, r4, #0 adds r2, #0x6d ldrb r1, [r2] movs r0, #2 orrs r0, r1 strb r0, [r2] bl sub_0805E780 _0804017C: adds r0, r5, #0 adds r0, #0x7a ldrh r0, [r0] strh r0, [r4, #0x2e] adds r0, r5, #0 adds r0, #0x7e ldrh r0, [r0] strh r0, [r4, #0x32] adds r0, r5, #0 adds r0, #0x74 ldrb r0, [r0] cmp r0, #0 bne _0804019E adds r0, r4, #0 bl sub_080042B8 b _080401A6 _0804019E: adds r0, r4, #0 movs r1, #2 bl sub_080042BA _080401A6: ldrb r0, [r5, #0xc] cmp r0, #4 bls _080401C0 ldrb r0, [r4, #0xe] cmp r0, #0 bne _080401D2 movs r0, #1 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #1 bl sub_080042AC b _080401D2 _080401C0: ldrb r0, [r4, #0xe] cmp r0, #0 beq _080401D2 movs r0, #0 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0 bl sub_080042AC _080401D2: ldrb r0, [r5, #0xc] cmp r0, #3 beq _080401DC ldrh r0, [r5, #0x36] strh r0, [r4, #0x36] _080401DC: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080401E0 sub_080401E0: @ 0x080401E0 push {r4, r5, lr} adds r4, r0, #0 ldrb r1, [r4, #0xb] adds r5, r1, #0 cmp r5, #0 beq _08040212 movs r0, #1 strb r0, [r4, #0xc] adds r1, #1 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] ldrb r1, [r4, #0xb] adds r1, #4 adds r0, r4, #0 bl sub_080042AC b _08040260 _08040212: 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, _08040264 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x45 bhi _08040260 adds r0, r4, #0 movs r1, #2 movs r2, #1 bl sub_08040648 adds r0, r4, #0 movs r1, #2 movs r2, #2 bl sub_08040648 movs r0, #1 strb r0, [r4, #0xc] strb r5, [r4, #0xe] bl sub_08000E50 movs r1, #0x7f ands r0, r1 adds r0, #0x17 strb r0, [r4, #0xf] adds r0, r4, #0 adds r0, #0x74 strb r5, [r0] adds r0, r4, #0 movs r1, #0 bl sub_080042AC _08040260: pop {r4, r5, pc} .align 2, 0 _08040264: .4byte gUnk_03003DBC thumb_func_start sub_08040268 sub_08040268: @ 0x08040268 push {r4, r5, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _08040286 adds r2, r4, #0 adds r2, #0x6d ldrb r1, [r2] movs r0, #2 orrs r0, r1 strb r0, [r2] bl sub_0805E780 _08040286: ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA24 ldrb r2, [r4, #0xb] cmp r2, #1 beq _080402C6 cmp r2, #1 bgt _0804029E cmp r2, #0 beq _080402E4 b _08040382 _0804029E: cmp r2, #2 bne _08040382 ldr r1, _080402DC @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 lsls r0, r0, #1 ldr r1, _080402E0 @ =gUnk_080D0B18 adds r0, r0, r1 movs r1, #0 ldrsb r1, [r0, r1] ldrh r2, [r4, #0x2e] adds r1, r1, r2 strh r1, [r4, #0x2e] ldrb r0, [r0, #1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r4, #0x32] adds r0, r0, r1 strh r0, [r4, #0x32] _080402C6: ldr r0, [r4, #0x50] ldrb r0, [r0, #0x1e] cmp r0, #2 beq _08040382 movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #6 ands r0, r1 strb r0, [r4, #0x18] b _08040382 .align 2, 0 _080402DC: .4byte gUnk_03001160 _080402E0: .4byte gUnk_080D0B18 _080402E4: adds r5, r4, #0 adds r5, #0x74 ldrb r0, [r5] cmp r0, #1 beq _0804032E cmp r0, #1 bgt _080402F8 cmp r0, #0 beq _08040302 b _08040382 _080402F8: cmp r0, #0x10 beq _08040354 cmp r0, #0x11 beq _08040366 b _08040382 _08040302: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08040382 bl sub_08000E50 movs r1, #0x7f ands r0, r1 adds r0, #0x27 strb r0, [r4, #0xf] movs r1, #1 ands r0, r1 cmp r0, #0 beq _08040382 strb r1, [r5] adds r0, r4, #0 movs r1, #8 bl sub_080042AC b _08040382 _0804032E: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08040382 strb r2, [r5] bl sub_08000E50 movs r1, #0x7f ands r0, r1 adds r0, #0x17 strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #0 bl sub_080042AC b _08040382 _08040354: adds r0, r4, #0 movs r1, #7 bl sub_080042AC movs r0, #0x11 strb r0, [r5] movs r0, #0x50 strb r0, [r4, #0xf] b _08040382 _08040366: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08040382 movs r0, #1 strb r0, [r5] movs r0, #0x30 strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #8 bl sub_080042AC _08040382: adds r0, r4, #0 bl sub_080042B8 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0804038C sub_0804038C: @ 0x0804038C push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _080403AA adds r2, r4, #0 adds r2, #0x6d ldrb r1, [r2] movs r0, #2 orrs r0, r1 strb r0, [r2] bl sub_0805E780 _080403AA: ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA24 ldr r0, [r4, #0x50] ldrb r0, [r0, #0x1e] cmp r0, #2 bne _080403CA movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] _080403CA: pop {r4, pc} thumb_func_start sub_080403CC sub_080403CC: @ 0x080403CC push {lr} movs r1, #1 strb r1, [r0, #0xc] adds r3, r0, #0 adds r3, #0x29 ldrb r2, [r3] subs r1, #9 ands r1, r2 movs r2, #4 orrs r1, r2 strb r1, [r3] movs r1, #0 bl sub_080042AC pop {pc} .align 2, 0 thumb_func_start sub_080403EC sub_080403EC: @ 0x080403EC push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _0804040A adds r2, r4, #0 adds r2, #0x6d ldrb r1, [r2] movs r0, #2 orrs r0, r1 strb r0, [r2] bl sub_0805E780 _0804040A: ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA24 adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 thumb_func_start sub_0804041C sub_0804041C: @ 0x0804041C push {lr} movs r2, #0 movs r1, #1 strb r1, [r0, #0xc] adds r1, r0, #0 adds r1, #0x80 strb r2, [r1] movs r1, #0xa strb r1, [r0, #0xe] ldrb r2, [r0, #0x18] subs r1, #0xe ands r1, r2 strb r1, [r0, #0x18] adds r3, r0, #0 adds r3, #0x29 ldrb r1, [r3] movs r2, #7 orrs r1, r2 strb r1, [r3] movs r1, #0 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_0804044C sub_0804044C: @ 0x0804044C push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _0804046A adds r2, r4, #0 adds r2, #0x6d ldrb r1, [r2] movs r0, #2 orrs r0, r1 strb r0, [r2] bl sub_0805E780 _0804046A: ldr r0, [r4, #0x50] ldrb r0, [r0, #0xc] cmp r0, #5 beq _0804048A adds r1, r4, #0 adds r1, #0x80 ldrb r0, [r1] cmp r0, #0 beq _080404BC movs r0, #0 strb r0, [r1] ldrb r1, [r4, #0x18] subs r0, #4 ands r0, r1 strb r0, [r4, #0x18] b _080404BC _0804048A: adds r1, r4, #0 adds r1, #0x80 ldrb r0, [r1] cmp r0, #0 bne _080404A6 adds r0, #1 strb r0, [r1] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] _080404A6: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080404BC movs r0, #0xa strb r0, [r4, #0xe] ldr r0, _080404CC @ =0x00000149 bl sub_080A3268 _080404BC: ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA24 adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 _080404CC: .4byte 0x00000149 thumb_func_start sub_080404D0 sub_080404D0: @ 0x080404D0 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xb] cmp r0, #0 beq _080404FC movs r0, #2 strb r0, [r2, #0xc] movs r0, #0xa strb r0, [r2, #0xe] adds r3, r2, #0 adds r3, #0x29 ldrb r1, [r3] subs r0, #0x12 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r3] adds r0, r2, #0 movs r1, #2 bl sub_08004260 b _08040518 _080404FC: movs r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] subs r0, #5 ands r0, r1 strb r0, [r2, #0x18] 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] _08040518: pop {pc} .align 2, 0 thumb_func_start sub_0804051C sub_0804051C: @ 0x0804051C push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _0804053A adds r2, r4, #0 adds r2, #0x6d ldrb r1, [r2] movs r0, #2 orrs r0, r1 strb r0, [r2] bl sub_0805E780 _0804053A: adds r1, r4, #0 adds r1, #0x80 ldrb r0, [r1] cmp r0, #0 beq _0804054A cmp r0, #1 beq _0804056C b _080405C4 _0804054A: ldr r0, [r4, #0x50] ldrb r0, [r0, #0xc] cmp r0, #6 bne _080405CC movs r0, #1 movs r2, #1 strb r0, [r1] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #1 bl sub_08004260 b _080405C4 _0804056C: ldr r0, [r4, #0x50] ldrb r0, [r0, #0xc] cmp r0, #6 beq _08040582 movs r0, #0 strb r0, [r1] ldrb r1, [r4, #0x18] subs r0, #4 ands r0, r1 strb r0, [r4, #0x18] b _080405C4 _08040582: adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080405A8 movs r0, #0x7f ands r0, r1 strb r0, [r2] ldr r0, _080405D0 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x46 bhi _080405A8 ldrb r1, [r4, #0xa] adds r0, r4, #0 movs r2, #1 bl sub_08040648 _080405A8: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080405BE movs r0, #0xa strb r0, [r4, #0xe] ldr r0, _080405D4 @ =0x00000149 bl sub_080A3268 _080405BE: adds r0, r4, #0 bl sub_08004274 _080405C4: ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA24 _080405CC: pop {r4, pc} .align 2, 0 _080405D0: .4byte gUnk_03003DBC _080405D4: .4byte 0x00000149 thumb_func_start sub_080405D8 sub_080405D8: @ 0x080405D8 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _080405F6 adds r2, r4, #0 adds r2, #0x6d ldrb r1, [r2] movs r0, #2 orrs r0, r1 strb r0, [r2] bl sub_0805E780 _080405F6: adds r3, r4, #0 adds r3, #0x80 ldrb r2, [r3] cmp r2, #0 bne _08040626 ldr r0, [r4, #0x50] ldr r0, [r0, #0x50] ldrb r0, [r0, #0xc] cmp r0, #6 beq _08040638 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08040638 adds r0, r2, #1 strb r0, [r3] adds r0, r4, #0 movs r1, #3 bl sub_08004260 b _08040638 _08040626: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08040638 bl sub_0805E780 _08040638: ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA24 adds r0, r4, #0 bl sub_08004274 pop {r4, pc} thumb_func_start sub_08040648 sub_08040648: @ 0x08040648 push {r4, r5, r6, r7, lr} adds r6, r0, #0 adds r4, r1, #0 adds r7, r2, #0 movs r0, #0x4f bl sub_0804AA60 adds r5, r0, #0 strb r7, [r5, #0xb] str r6, [r5, #0x50] adds r0, r6, #0 adds r1, r5, #0 bl sub_0806FA24 cmp r4, #2 bne _0804066E cmp r7, #0 bne _0804066E str r5, [r6, #0x54] _0804066E: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08040670 sub_08040670: @ 0x08040670 push {lr} adds r2, r0, #0 movs r1, #0 movs r0, #1 strb r0, [r2, #0xc] adds r0, r2, #0 adds r0, #0x80 strb r1, [r0] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r2, #0x24] movs r0, #0xc strb r0, [r2, #0xe] ldrb r0, [r2, #0x14] cmp r0, #0 bne _08040698 adds r0, r2, #0 bl sub_080406A0 b _0804069E _08040698: adds r0, r2, #0 bl sub_08040770 _0804069E: pop {pc} thumb_func_start sub_080406A0 sub_080406A0: @ 0x080406A0 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 bl sub_08000E50 mov r8, r0 movs r0, #0x30 mov r1, r8 ands r1, r0 mov r8, r1 adds r0, r5, #0 adds r0, #0x86 ldrb r6, [r0] ldr r2, _080406F0 @ =gUnk_03000BF0 ldrh r3, [r2, #6] ldr r4, _080406F4 @ =gUnk_080D0B58 lsls r1, r6, #1 lsls r0, r6, #2 adds r0, r0, r4 ldrh r0, [r0] adds r7, r3, r0 ldrh r2, [r2, #8] adds r1, #1 lsls r1, r1, #1 adds r1, r1, r4 ldrh r0, [r1] adds r4, r2, r0 adds r0, r5, #0 adds r1, r7, #0 adds r2, r4, #0 movs r3, #0x1c bl sub_0806FCB8 cmp r0, #0 beq _0804071E cmp r6, #0 beq _080406F8 movs r6, #0 b _08040702 .align 2, 0 _080406F0: .4byte gUnk_03000BF0 _080406F4: .4byte gUnk_080D0B58 _080406F8: bl sub_08000E50 movs r1, #1 ands r1, r0 adds r6, r1, #1 _08040702: ldr r2, _0804074C @ =gUnk_03000BF0 ldrh r3, [r2, #6] ldr r4, _08040750 @ =gUnk_080D0B58 lsls r1, r6, #1 lsls r0, r6, #2 adds r0, r0, r4 ldrh r0, [r0] adds r7, r3, r0 ldrh r2, [r2, #8] adds r1, #1 lsls r1, r1, #1 adds r1, r1, r4 ldrh r0, [r1] adds r4, r2, r0 _0804071E: movs r2, #0x2e ldrsh r0, [r5, r2] movs r2, #0x32 ldrsh r1, [r5, r2] adds r2, r7, #0 adds r3, r4, #0 bl sub_080045D4 strb r0, [r5, #0x15] movs r0, #0x20 mov r1, r8 ands r0, r1 cmp r0, #0 beq _0804075A ldrb r1, [r5, #0x15] movs r0, #0x10 mov r2, r8 ands r2, r0 cmp r2, #0 beq _08040754 adds r0, r1, #1 b _08040758 .align 2, 0 _0804074C: .4byte gUnk_03000BF0 _08040750: .4byte gUnk_080D0B58 _08040754: adds r0, r1, #0 adds r0, #0x1f _08040758: strb r0, [r5, #0x15] _0804075A: ldrb r0, [r5, #0x15] movs r1, #0x1f ands r1, r0 strb r1, [r5, #0x15] adds r0, r5, #0 adds r0, #0x86 strb r6, [r0] pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08040770 sub_08040770: @ 0x08040770 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r7, r0, #0 bl sub_08000E50 mov r8, r0 movs r0, #0x38 mov r1, r8 ands r1, r0 mov r8, r1 adds r0, r7, #0 adds r0, #0x86 ldrb r5, [r0] ldr r2, _080407CC @ =gUnk_03000BF0 ldrh r3, [r2, #6] ldr r4, _080407D0 @ =gUnk_080D0B64 lsls r1, r5, #1 lsls r0, r5, #2 adds r0, r0, r4 ldrh r0, [r0] adds r6, r3, r0 ldrh r2, [r2, #8] adds r1, #1 lsls r1, r1, #1 adds r1, r1, r4 ldrh r0, [r1] adds r4, r2, r0 adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 movs r3, #0x1c bl sub_0806FCB8 cmp r0, #0 beq _0804089A ldrb r0, [r7, #0x14] cmp r0, #2 beq _08040822 movs r0, #8 mov r2, r8 ands r0, r2 cmp r0, #0 beq _080407D4 adds r5, #1 b _080407D6 .align 2, 0 _080407CC: .4byte gUnk_03000BF0 _080407D0: .4byte gUnk_080D0B64 _080407D4: adds r5, #3 _080407D6: movs r0, #3 ands r5, r0 adds r0, r7, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #0 beq _0804087E adds r0, r7, #0 adds r0, #0x75 ldrb r0, [r0] cmp r0, #0x3c beq _0804080A cmp r0, #0x3c bgt _080407F8 cmp r0, #0xf beq _08040802 b _0804087E _080407F8: cmp r0, #0xc3 beq _0804081A cmp r0, #0xf0 beq _08040812 b _0804087E _08040802: cmp r5, #0 bne _0804087E movs r5, #2 b _0804087E _0804080A: cmp r5, #1 bne _0804087E movs r5, #3 b _0804087E _08040812: cmp r5, #2 bne _0804087E movs r5, #0 b _0804087E _0804081A: cmp r5, #3 bne _0804087E movs r5, #1 b _0804087E _08040822: adds r1, r7, #0 adds r1, #0x87 ldrb r2, [r1] movs r0, #0x7f ands r0, r2 adds r4, r1, #0 cmp r0, #0 beq _08040848 movs r0, #0x80 ands r0, r2 cmp r0, #0 beq _0804083E adds r5, #1 b _08040840 _0804083E: adds r5, #3 _08040840: ldrb r0, [r4] subs r0, #1 strb r0, [r4] b _0804087A _08040848: bl sub_08000E50 movs r1, #7 ands r0, r1 adds r0, #4 strb r0, [r4] ldrb r6, [r4] bl sub_08000E50 movs r1, #0x20 ands r1, r0 cmp r1, #0 bne _08040868 movs r1, #0x80 orrs r1, r6 b _0804086A _08040868: adds r1, r6, #0 _0804086A: strb r1, [r4] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08040878 adds r5, #1 b _0804087A _08040878: adds r5, #3 _0804087A: movs r0, #3 ands r5, r0 _0804087E: ldr r2, _080408C8 @ =gUnk_03000BF0 ldrh r3, [r2, #6] ldr r4, _080408CC @ =gUnk_080D0B64 lsls r1, r5, #1 lsls r0, r5, #2 adds r0, r0, r4 ldrh r0, [r0] adds r6, r3, r0 ldrh r2, [r2, #8] adds r1, #1 lsls r1, r1, #1 adds r1, r1, r4 ldrh r0, [r1] adds r4, r2, r0 _0804089A: movs r1, #0x2e ldrsh r0, [r7, r1] movs r2, #0x32 ldrsh r1, [r7, r2] adds r2, r6, #0 adds r3, r4, #0 bl sub_080045D4 strb r0, [r7, #0x15] movs r0, #0x20 mov r1, r8 ands r0, r1 cmp r0, #0 beq _080408D6 ldrb r1, [r7, #0x15] movs r0, #0x10 mov r2, r8 ands r2, r0 cmp r2, #0 beq _080408D0 adds r0, r1, #1 b _080408D4 .align 2, 0 _080408C8: .4byte gUnk_03000BF0 _080408CC: .4byte gUnk_080D0B64 _080408D0: adds r0, r1, #0 adds r0, #0x1f _080408D4: strb r0, [r7, #0x15] _080408D6: ldrb r0, [r7, #0x15] movs r1, #0x1f ands r1, r0 strb r1, [r7, #0x15] adds r0, r7, #0 adds r0, #0x86 strb r5, [r0] pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080408EC sub_080408EC: @ 0x080408EC push {r4, r5, r6, r7, lr} adds r2, r0, #0 ldrb r0, [r2, #0x14] cmp r0, #0 bne _08040902 movs r1, #0xf0 adds r4, r2, #0 adds r4, #0x75 adds r5, r2, #0 adds r5, #0x76 b _08040926 _08040902: adds r4, r2, #0 adds r4, #0x75 adds r5, r2, #0 adds r5, #0x76 ldr r7, _08040930 @ =gUnk_080D0B74 movs r6, #0x3c _0804090E: bl sub_08000E50 ands r0, r6 lsrs r0, r0, #2 adds r0, r0, r7 ldrb r1, [r0] ldrb r0, [r4] cmp r1, r0 bne _08040922 movs r1, #0xff _08040922: cmp r1, #0xff beq _0804090E _08040926: movs r0, #0 strb r1, [r4] strb r0, [r5] pop {r4, r5, r6, r7, pc} .align 2, 0 _08040930: .4byte gUnk_080D0B74 thumb_func_start sub_08040934 sub_08040934: @ 0x08040934 push {r4, lr} adds r4, r0, #0 bl sub_08000E50 movs r1, #0x3e ands r1, r0 movs r2, #0 cmp r1, #0x2e bhi _08040948 movs r2, #1 _08040948: adds r0, r4, #0 adds r0, #0x87 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 beq _08040958 movs r2, #0 _08040958: adds r4, #0x84 ldrb r0, [r4] cmp r0, #9 beq _080409A4 cmp r2, #0 beq _080409AA adds r0, #1 movs r1, #5 bl __modsi3 strb r0, [r4] bl sub_08000E50 movs r1, #0xf8 ands r1, r0 lsrs r1, r1, #3 ldr r0, _08040998 @ =gUnk_080D0B84 adds r0, r1, r0 ldrb r2, [r0] ldrb r0, [r4] cmp r0, #1 beq _0804099C cmp r0, #1 blt _080409AA cmp r0, #4 bgt _080409AA cmp r0, #3 blt _080409AA cmp r2, #0 bne _080409AA b _080409A8 .align 2, 0 _08040998: .4byte gUnk_080D0B84 _0804099C: cmp r2, #0 beq _080409A8 movs r2, #3 b _080409AA _080409A4: movs r0, #0 strb r0, [r4] _080409A8: movs r2, #1 _080409AA: adds r0, r2, #0 pop {r4, pc} .align 2, 0 thumb_func_start sub_080409B0 sub_080409B0: @ 0x080409B0 push {r4, r5, lr} adds r4, r0, #0 movs r0, #0x81 adds r0, r0, r4 mov ip, r0 ldrb r1, [r0] cmp r1, #1 beq _080409EA cmp r1, #1 bgt _080409CA cmp r1, #0 beq _080409D0 b _08040A68 _080409CA: cmp r1, #2 beq _08040A04 b _08040A68 _080409D0: adds r0, r4, #0 adds r0, #0x75 adds r2, r4, #0 adds r2, #0x76 ldrb r0, [r0] ldrb r3, [r2] cmp r0, r3 bne _08040A68 movs r0, #1 mov r3, ip strb r0, [r3] strb r1, [r2] b _08040A68 _080409EA: adds r0, r4, #0 adds r0, #0x76 ldrb r0, [r0] cmp r0, #0 beq _08040A68 movs r0, #2 mov r1, ip strb r0, [r1] adds r1, r4, #0 adds r1, #0x77 movs r0, #0x10 strb r0, [r1] b _08040A68 _08040A04: adds r1, r4, #0 adds r1, #0x77 ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #0 bne _08040A68 adds r0, r4, #0 adds r0, #0x75 adds r3, r4, #0 adds r3, #0x76 ldrb r1, [r0] ldrb r0, [r3] ands r0, r1 cmp r1, r0 beq _08040A3C movs r0, #1 mov r1, ip strb r0, [r1] strb r2, [r3] ldr r0, _08040A38 @ =0x00000155 bl sub_080A3268 b _08040A68 .align 2, 0 _08040A38: .4byte 0x00000155 _08040A3C: movs r1, #3 strb r1, [r4, #0xc] adds r0, r4, #0 adds r0, #0x80 strb r2, [r0] mov r3, ip strb r1, [r3] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x36 strb r0, [r1] movs r0, #0xc0 lsls r0, r0, #9 str r0, [r4, #0x20] movs r0, #0xb2 lsls r0, r0, #1 bl sub_080A3268 _08040A68: adds r0, r4, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #2 bhi _08040A84 adds r0, r4, #0 adds r0, #0x42 ldrb r0, [r0] cmp r0, #0 beq _08040AC8 adds r0, r4, #0 bl sub_080AF18C b _08040AC8 _08040A84: adds r2, r4, #0 adds r2, #0x41 ldrb r1, [r2] movs r0, #0x80 ands r0, r1 adds r5, r2, #0 cmp r0, #0 beq _08040AB0 adds r0, r4, #0 adds r0, #0x3d ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08040AB0 movs r0, #0xc movs r1, #1 bl sub_08080964 ldr r0, _08040ACC @ =0x00000127 bl sub_080A3268 _08040AB0: ldrb r0, [r5] cmp r0, #0x8a bne _08040AC8 ldr r0, _08040AD0 @ =gUnk_03003F80 adds r0, #0xa0 ldrb r0, [r0] cmp r0, #5 bne _08040AC8 adds r1, r4, #0 adds r1, #0x45 movs r0, #0xc0 strb r0, [r1] _08040AC8: pop {r4, r5, pc} .align 2, 0 _08040ACC: .4byte 0x00000127 _08040AD0: .4byte gUnk_03003F80 thumb_func_start sub_08040AD4 sub_08040AD4: @ 0x08040AD4 push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r0, [r5, #0xe] movs r1, #0x3f ands r1, r0 lsls r6, r1, #0x18 lsrs r4, r6, #0x18 movs r0, #0x1f ands r0, r4 cmp r0, #0 bne _08040AF0 ldr r0, _08040B0C @ =0x000001A9 bl sub_080A3268 _08040AF0: movs r0, #3 ands r4, r0 cmp r4, #0 bne _08040B2A lsrs r4, r6, #0x1a movs r0, #0x2e ldrsh r2, [r5, r0] adds r0, r4, #4 movs r1, #8 ands r0, r1 cmp r0, #0 beq _08040B10 subs r0, r2, #1 b _08040B12 .align 2, 0 _08040B0C: .4byte 0x000001A9 _08040B10: adds r0, r2, #1 _08040B12: strh r0, [r5, #0x2e] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #2 movs r1, #4 ands r0, r1 cmp r0, #0 beq _08040B26 subs r0, r2, #1 b _08040B28 _08040B26: adds r0, r2, #1 _08040B28: strh r0, [r5, #0x32] _08040B2A: pop {r4, r5, r6, pc} thumb_func_start sub_08040B2C sub_08040B2C: @ 0x08040B2C push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xa] cmp r0, #1 bne _08040B5C ldr r0, [r5, #0x50] ldr r0, [r0, #4] cmp r0, #0 bne _08040B5C adds r0, r5, #0 bl sub_08041300 cmp r0, #0 beq _08040B4E adds r0, r5, #0 bl sub_0803F6EC _08040B4E: adds r0, r5, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC bl sub_0805E780 _08040B5C: ldr r4, _08040B80 @ =gUnk_080D0DC4 adds r0, r5, #0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 movs r3, #0x10 rsbs r3, r3, #0 adds r0, r5, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, r5, pc} .align 2, 0 _08040B80: .4byte gUnk_080D0DC4 thumb_func_start sub_08040B84 sub_08040B84: @ 0x08040B84 push {lr} ldr r2, _08040B98 @ =gUnk_080D0DDC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08040B98: .4byte gUnk_080D0DDC thumb_func_start sub_08040B9C sub_08040B9C: @ 0x08040B9C push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] subs r0, #8 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _08040BD0 movs r0, #0xff strb r0, [r4, #0x14] adds r0, r4, #0 adds r0, #0x3e ldrb r1, [r0] lsrs r1, r1, #4 movs r0, #1 eors r1, r0 adds r1, #1 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08041134 adds r0, r4, #0 bl sub_0803F6EC _08040BD0: adds r0, r4, #0 adds r0, #0x3f ldrb r0, [r0] cmp r0, #0x25 bne _08040BF4 adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] adds r5, r0, #0 cmp r1, #0x80 bne _08040C0E movs r0, #8 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #3 bl sub_08004260 b _08040C9C _08040BF4: adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] adds r5, r0, #0 cmp r1, #0x80 bne _08040C0E adds r1, r4, #0 adds r1, #0x7c movs r0, #0x78 strh r0, [r1] adds r0, r4, #0 bl sub_08041128 _08040C0E: ldrb r0, [r5] cmp r0, #0x9d bne _08040C1A movs r0, #0xc0 lsls r0, r0, #9 str r0, [r4, #0x20] _08040C1A: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _08040C40 adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] lsrs r0, r0, #4 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r1, #7 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _08040C40: adds r0, r4, #0 adds r0, #0x45 adds r1, r4, #0 adds r1, #0x7a ldrb r2, [r0] adds r6, r0, #0 adds r5, r1, #0 ldrb r0, [r5] cmp r2, r0 beq _08040C9C ldrb r0, [r4, #0xa] cmp r0, #0 bne _08040C70 adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] lsrs r0, r0, #4 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r1, #7 adds r0, r4, #0 bl sub_08004260 b _08040C98 _08040C70: adds r1, r4, #0 adds r1, #0x3d ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _08040C84 movs r0, #0x80 orrs r0, r2 strb r0, [r1] _08040C84: ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] movs r0, #0xff strb r0, [r6] movs r0, #0xa strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] _08040C98: ldrb r0, [r6] strb r0, [r5] _08040C9C: ldr r1, _08040CA8 @ =gUnk_080D0DC4 adds r0, r4, #0 bl sub_0804AA30 pop {r4, r5, r6, pc} .align 2, 0 _08040CA8: .4byte gUnk_080D0DC4 thumb_func_start sub_08040CAC sub_08040CAC: @ 0x08040CAC push {r4, r5, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_08001328 ldrb r0, [r4, #0xa] cmp r0, #0 bne _08040D04 adds r0, r4, #0 adds r0, #0x42 ldrb r0, [r0] cmp r0, #0 bne _08040D2C adds r0, r4, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 beq _08040D2C adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 bne _08040D2C movs r0, #0xff strb r0, [r4, #0x14] adds r1, r4, #0 adds r1, #0x58 ldrb r0, [r1] subs r0, #7 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _08040D2C ldrb r1, [r1] subs r1, #7 movs r0, #1 eors r1, r0 adds r1, #1 adds r0, r4, #0 bl sub_08004260 b _08040D2C _08040D04: ldrb r2, [r4, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #1 eors r1, r0 movs r5, #4 rsbs r5, r5, #0 adds r3, r5, #0 ands r3, r2 orrs r3, r1 strb r3, [r4, #0x18] adds r0, r4, #0 adds r0, #0x42 ldrb r0, [r0] cmp r0, #0 bne _08040D2C ands r3, r5 movs r0, #1 orrs r3, r0 strb r3, [r4, #0x18] _08040D2C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08040D30 sub_08040D30: @ 0x08040D30 push {r4, lr} adds r4, r0, #0 adds r0, #0x58 ldrb r0, [r0] subs r0, #7 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bls _08040D4C ldrb r1, [r4, #0x14] adds r1, #7 adds r0, r4, #0 bl sub_08004260 _08040D4C: adds r0, r4, #0 bl sub_08001242 ldrh r1, [r4, #0x36] movs r2, #0x36 ldrsh r0, [r4, r2] cmp r0, #0 bne _08040D60 ldr r0, _08040D8C @ =0x0000FFFF strh r0, [r4, #0x36] _08040D60: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 bne _08040D88 ldrb r0, [r4, #0x14] movs r1, #1 eors r1, r0 adds r1, #1 adds r0, r4, #0 bl sub_08004260 movs r0, #0xff strb r0, [r4, #0x15] movs r0, #1 rsbs r0, r0, #0 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_08041134 _08040D88: pop {r4, pc} .align 2, 0 _08040D8C: .4byte 0x0000FFFF thumb_func_start sub_08040D90 sub_08040D90: @ 0x08040D90 push {r4, lr} adds r4, r0, #0 bl sub_0806F520 cmp r0, #0 beq _08040DB4 ldr r0, _08040DB0 @ =gUnk_080D0E08 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 b _08040DC6 .align 2, 0 _08040DB0: .4byte gUnk_080D0E08 _08040DB4: adds r0, r4, #0 bl sub_08041128 ldrb r1, [r4, #0x15] lsrs r1, r1, #4 adds r1, #1 adds r0, r4, #0 bl sub_08004260 _08040DC6: pop {r4, pc} thumb_func_start sub_08040DC8 sub_08040DC8: @ 0x08040DC8 push {lr} movs r1, #1 strb r1, [r0, #0xd] movs r1, #0x3c strb r1, [r0, #0x1d] ldr r1, _08040DE0 @ =gUnk_03001160 ldrb r1, [r1, #0x14] lsrs r1, r1, #2 adds r1, #5 bl sub_08004260 pop {pc} .align 2, 0 _08040DE0: .4byte gUnk_03001160 thumb_func_start sub_08040DE4 sub_08040DE4: @ 0x08040DE4 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0806F4E8 pop {r4, pc} thumb_func_start sub_08040DF4 sub_08040DF4: @ 0x08040DF4 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0806F3E4 cmp r0, #0 beq _08040E38 adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC cmp r0, #0 beq _08040E26 adds r2, r0, #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] _08040E26: ldrb r0, [r4, #0xa] cmp r0, #0 bne _08040E34 adds r0, r4, #0 bl sub_0804A7D4 b _08040E38 _08040E34: bl sub_0805E780 _08040E38: pop {r4, pc} .align 2, 0 thumb_func_start sub_08040E3C sub_08040E3C: @ 0x08040E3C push {r4, r5, lr} adds r4, r0, #0 bl sub_0804A720 bl sub_08000E50 movs r2, #0x1e adds r1, r0, #0 ands r1, r2 movs r2, #0 strb r1, [r4, #0x15] movs r1, #0xff strb r1, [r4, #0x14] movs r5, #1 strb r5, [r4, #0x1c] adds r1, r4, #0 adds r1, #0x45 ldrb r1, [r1] adds r3, r4, #0 adds r3, #0x7a strb r1, [r3] lsrs r0, r0, #4 adds r1, r4, #0 adds r1, #0x7b strb r0, [r1] adds r0, r4, #0 adds r0, #0x7c strh r2, [r0] ldrb r0, [r4, #0xa] cmp r0, #0 bne _08040E86 strb r5, [r4, #0xc] ldrb r0, [r4, #0xe] bl sub_0804B128 str r0, [r4, #0x54] b _08040E8C _08040E86: adds r0, r4, #0 bl sub_080411CC _08040E8C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08040E90 sub_08040E90: @ 0x08040E90 push {r4, lr} adds r4, r0, #0 bl sub_080411E8 cmp r0, #0 beq _08040EA4 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0xf strb r0, [r4, #0xe] _08040EA4: pop {r4, pc} .align 2, 0 thumb_func_start sub_08040EA8 sub_08040EA8: @ 0x08040EA8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08040EC4 adds r0, r4, #0 bl sub_080411CC adds r0, r4, #0 bl sub_0804122C _08040EC4: pop {r4, pc} .align 2, 0 thumb_func_start sub_08040EC8 sub_08040EC8: @ 0x08040EC8 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08040F08 ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] bl sub_08000E50 adds r1, r4, #0 adds r1, #0x80 ldrb r2, [r1] movs r1, #0x30 ands r1, r0 adds r1, #0x3c adds r0, r2, #0 muls r0, r1, r0 adds r0, #0x78 adds r1, r4, #0 adds r1, #0x7c strh r0, [r1] adds r0, r4, #0 bl sub_08041128 _08040F08: pop {r4, pc} .align 2, 0 thumb_func_start sub_08040F0C sub_08040F0C: @ 0x08040F0C push {r4, lr} adds r4, r0, #0 bl sub_08041170 cmp r0, #0 bne _08040F36 adds r0, r4, #0 bl sub_0803F58C adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08040F36 adds r0, r4, #0 bl sub_08041128 _08040F36: pop {r4, pc} thumb_func_start sub_08040F38 sub_08040F38: @ 0x08040F38 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff beq _08040F8E adds r0, r4, #0 bl sub_0803F66C adds r1, r4, #0 adds r1, #0x78 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08040F94 movs r0, #6 strb r0, [r4, #0xc] bl sub_08000E50 movs r2, #0xe0 adds r1, r0, #0 ands r1, r2 strb r1, [r4, #0xe] movs r1, #0x80 lsls r1, r1, #1 strh r1, [r4, #0x24] lsrs r0, r0, #8 movs r1, #0x78 ands r0, r1 adds r0, #0x3c adds r1, r4, #0 adds r1, #0x7e strh r0, [r1] b _08040F94 _08040F8E: adds r0, r4, #0 bl sub_08041128 _08040F94: pop {r4, pc} .align 2, 0 thumb_func_start sub_08040F98 sub_08040F98: @ 0x08040F98 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0803F5A8 cmp r0, #0 bne _08040FB2 adds r0, r4, #0 bl sub_08041128 b _08041014 _08040FB2: movs r0, #1 bl sub_08049DF4 cmp r0, #0 beq _0804100C adds r1, r4, #0 adds r1, #0x7e ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 beq _0804100C ldrb r1, [r4, #0xe] adds r1, #1 strb r1, [r4, #0xe] ldr r2, _08041004 @ =gUnk_080D0E14 lsls r0, r1, #0x18 lsrs r0, r0, #0x1e adds r0, r0, r2 ldrb r0, [r0] ands r1, r0 cmp r1, #0 bne _08040FF4 ldr r0, _08041008 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl sub_080045C4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 _08040FF4: adds r0, r4, #0 bl sub_0803F66C adds r0, r4, #0 bl sub_080AEFB4 b _08041014 .align 2, 0 _08041004: .4byte gUnk_080D0E14 _08041008: .4byte gUnk_020000B0 _0804100C: movs r0, #7 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] _08041014: pop {r4, pc} .align 2, 0 thumb_func_start sub_08041018 sub_08041018: @ 0x08041018 push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08041042 bl sub_08000E50 movs r1, #0xf8 ands r0, r1 adds r0, #0xb4 adds r1, r4, #0 adds r1, #0x7c strh r0, [r1] adds r0, r4, #0 bl sub_08041128 _08041042: pop {r4, pc} thumb_func_start sub_08041044 sub_08041044: @ 0x08041044 push {r4, lr} adds r4, r0, #0 bl sub_0803F738 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08041074 movs r0, #0 movs r1, #9 strb r1, [r4, #0xc] adds r1, r4, #0 adds r1, #0x78 strh r0, [r1] adds r0, r4, #0 movs r1, #4 bl sub_08004260 _08041074: pop {r4, pc} .align 2, 0 thumb_func_start sub_08041078 sub_08041078: @ 0x08041078 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08041094 adds r0, r4, #0 bl sub_0803F6C0 _08041094: bl sub_0807953C adds r1, r4, #0 adds r1, #0x78 cmp r0, #0 beq _080410A6 ldrh r0, [r1] adds r0, #8 strh r0, [r1] _080410A6: ldr r2, _08041100 @ =gUnk_03001160 adds r0, r2, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _080410B6 movs r0, #0xe0 strh r0, [r1] _080410B6: ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xdf bls _08041104 adds r1, r4, #0 adds r1, #0x7c movs r0, #0x78 strh r0, [r1] movs r0, #0xff strb r0, [r4, #0x14] subs r1, #0x3f movs r0, #0xf4 strb r0, [r1] adds r1, #5 movs r0, #0x14 strb r0, [r1] adds r1, #4 movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r1] ldrb r0, [r2, #0x14] lsls r0, r0, #2 movs r1, #0x10 eors r0, r1 adds r1, r4, #0 adds r1, #0x3e strb r0, [r1] adds r0, r4, #0 bl sub_08041128 adds r0, r4, #0 bl sub_0803F6EC b _0804110A .align 2, 0 _08041100: .4byte gUnk_03001160 _08041104: adds r0, r4, #0 bl sub_0803F738 _0804110A: pop {r4, pc} thumb_func_start sub_0804110C sub_0804110C: @ 0x0804110C push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08041126 adds r0, r4, #0 bl sub_08041128 _08041126: pop {r4, pc} thumb_func_start sub_08041128 sub_08041128: @ 0x08041128 push {lr} movs r1, #4 strb r1, [r0, #0xc] bl sub_0803F528 pop {pc} thumb_func_start sub_08041134 sub_08041134: @ 0x08041134 push {r4, r5, lr} adds r4, r0, #0 movs r0, #5 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x25 strb r0, [r1] movs r5, #0 ldr r0, _08041168 @ =gUnk_03004040 ldr r0, [r0] cmp r0, #0 beq _08041150 movs r5, #0x3c _08041150: bl sub_08000E50 ldr r2, _0804116C @ =gUnk_080D0E18 movs r1, #3 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] adds r0, r0, r5 adds r1, r4, #0 adds r1, #0x78 strh r0, [r1] pop {r4, r5, pc} .align 2, 0 _08041168: .4byte gUnk_03004040 _0804116C: .4byte gUnk_080D0E18 thumb_func_start sub_08041170 sub_08041170: @ 0x08041170 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x7c ldrh r0, [r1] cmp r0, #0 beq _08041184 subs r0, #1 strh r0, [r1] b _080411C8 _08041184: adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _080411C8 adds r0, r4, #0 bl sub_0806FD54 cmp r0, #0 bne _080411B6 ldr r0, _080411C0 @ =gUnk_02033A90 movs r1, #0xa ldrsh r0, [r0, r1] cmp r0, #0xf ble _080411C8 ldr r0, _080411C4 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 movs r2, #0x70 movs r3, #0x48 bl sub_080041A0 cmp r0, #0 beq _080411C8 _080411B6: adds r0, r4, #0 bl sub_08041134 movs r0, #1 b _080411CA .align 2, 0 _080411C0: .4byte gUnk_02033A90 _080411C4: .4byte gUnk_020000B0 _080411C8: movs r0, #0 _080411CA: pop {r4, pc} thumb_func_start sub_080411CC sub_080411CC: @ 0x080411CC push {lr} movs r1, #3 strb r1, [r0, #0xc] ldrb r2, [r0, #0x18] subs r1, #7 ands r1, r2 movs r2, #1 orrs r1, r2 strb r1, [r0, #0x18] movs r1, #0 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_080411E8 sub_080411E8: @ 0x080411E8 push {r4, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _08041222 ldrb r0, [r4, #0xb] cmp r0, #1 beq _08041204 cmp r0, #2 beq _08041218 _08041200: movs r0, #1 b _08041224 _08041204: ldr r0, _08041214 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 lsls r1, r1, #0x10 ands r0, r1 cmp r0, #0 beq _08041222 b _08041200 .align 2, 0 _08041214: .4byte gUnk_03003F80 _08041218: ldr r0, _08041228 @ =gUnk_02033A90 movs r1, #0xa ldrsh r0, [r0, r1] cmp r0, #0xf bgt _08041200 _08041222: movs r0, #0 _08041224: pop {r4, pc} .align 2, 0 _08041228: .4byte gUnk_02033A90 thumb_func_start sub_0804122C sub_0804122C: @ 0x0804122C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r4, r0, #0 ldr r0, [r4, #0x54] mov r8, r0 bl sub_08000E50 movs r6, #6 ands r6, r0 lsrs r5, r0, #8 movs r0, #3 ands r5, r0 movs r7, #0 ldr r3, _080412FC @ =gUnk_03000BF0 mov sb, r3 _08041250: movs r0, #0x50 movs r1, #1 bl sub_0804AA60 adds r2, r0, #0 cmp r2, #0 beq _080412C8 lsls r1, r6, #1 add r1, r8 mov r3, sb ldrh r0, [r3, #6] ldrh r3, [r1] adds r0, r0, r3 strh r0, [r2, #0x2e] mov r3, sb ldrh r0, [r3, #8] ldrh r1, [r1, #2] adds r0, r0, r1 strh r0, [r2, #0x32] str r4, [r2, #0x50] adds r0, r2, #0 adds r0, #0x80 strb r5, [r0] adds r3, r2, #0 adds r3, #0x6d ldrb r0, [r3] movs r1, #4 orrs r0, r1 strb r0, [r3] adds r0, r4, #0 adds r0, #0x70 ldrh r1, [r0] adds r0, r2, #0 adds r0, #0x70 strh r1, [r0] adds r0, r4, #0 adds r0, #0x72 ldrh r0, [r0] adds r1, r2, #0 adds r1, #0x72 strh r0, [r1] adds r0, r4, #0 adds r0, #0x6e ldrb r0, [r0] subs r1, #4 strb r0, [r1] adds r0, r4, #0 adds r0, #0x6f ldrb r0, [r0] adds r1, #1 strb r0, [r1] adds r0, r2, #0 bl sub_08016A30 adds r6, #2 movs r0, #6 ands r6, r0 adds r5, #1 movs r0, #3 ands r5, r0 _080412C8: adds r7, #1 cmp r7, #2 bls _08041250 lsls r1, r6, #1 add r1, r8 ldr r2, _080412FC @ =gUnk_03000BF0 ldrh r0, [r2, #6] ldrh r3, [r1] adds r0, r0, r3 movs r3, #0 strh r0, [r4, #0x2e] ldrh r0, [r2, #8] ldrh r1, [r1, #2] adds r0, r0, r1 strh r0, [r4, #0x32] adds r0, r4, #0 adds r0, #0x38 strb r3, [r0] adds r0, r4, #0 bl sub_08016A30 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _080412FC: .4byte gUnk_03000BF0 thumb_func_start sub_08041300 sub_08041300: @ 0x08041300 push {lr} adds r1, r0, #0 adds r0, #0x3f ldrb r0, [r0] cmp r0, #0x25 bne _0804131A adds r0, r1, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x80 bne _0804131A movs r0, #1 b _0804132C _0804131A: movs r2, #0 ldrb r0, [r1, #0xc] subs r0, #8 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _0804132A movs r2, #1 _0804132A: adds r0, r2, #0 _0804132C: pop {pc} .align 2, 0 thumb_func_start sub_08041330 sub_08041330: @ 0x08041330 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 bne _08041384 adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08041384 adds r2, r4, #0 adds r2, #0x45 ldrb r0, [r2] cmp r0, #0 bne _08041384 ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] movs r0, #0xff strb r0, [r2] adds r1, r4, #0 adds r1, #0x84 ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _08041384 movs r0, #0xd strb r0, [r4, #0xc] strb r1, [r4, #0xd] ldr r0, _08041398 @ =0x80010000 bl sub_080A3268 movs r0, #0x94 lsls r0, r0, #1 bl sub_080A3268 _08041384: ldr r0, _0804139C @ =gUnk_080D0E1C ldrb r1, [r4, #0xa] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _08041398: .4byte 0x80010000 _0804139C: .4byte gUnk_080D0E1C thumb_func_start sub_080413A0 sub_080413A0: @ 0x080413A0 push {r4, lr} adds r4, r0, #0 bl sub_080423A4 ldr r1, _080413BC @ =gUnk_080D0E2C ldrb r0, [r4, #0xc] 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 _080413BC: .4byte gUnk_080D0E2C thumb_func_start sub_080413C0 sub_080413C0: @ 0x080413C0 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldr r7, _080413F8 @ =gUnk_030010A0 adds r0, r7, #0 adds r0, #0x38 ldrb r0, [r0] movs r6, #1 adds r5, r6, #0 ands r5, r0 cmp r5, #0 beq _08041420 adds r0, r4, #0 bl sub_08041FCC cmp r0, #0 beq _08041486 adds r0, r7, #0 adds r0, #0x39 ldrb r1, [r0] movs r0, #0xc ands r0, r1 cmp r0, #0 bne _080413FC movs r0, #5 strb r0, [r4, #0xc] strb r6, [r4, #0xd] b _08041404 .align 2, 0 _080413F8: .4byte gUnk_030010A0 _080413FC: movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] _08041404: ldr r0, _0804141C @ =gUnk_030010A0 adds r1, r0, #0 adds r1, #0x40 ldrh r1, [r1] strh r1, [r4, #0x2e] adds r0, #0x42 ldrh r0, [r0] strh r0, [r4, #0x32] adds r0, r4, #0 bl sub_08042004 b _0804144A .align 2, 0 _0804141C: .4byte gUnk_030010A0 _08041420: adds r0, r4, #0 bl sub_08041ED4 cmp r0, #0 beq _08041486 strb r6, [r4, #0xc] strb r5, [r4, #0xd] movs r0, #0x78 strb r0, [r4, #0xe] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #0xb1 ands r0, r1 strb r0, [r2] ldr r0, _08041488 @ =0x0000FFB0 strh r0, [r4, #0x36] ldr r0, _0804148C @ =gUnk_03000BF0 str r4, [r0, #0x30] bl sub_080809D4 _0804144A: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r3, r4, #0 adds r3, #0x6d ldrb r0, [r3] movs r2, #0 orrs r1, r0 strb r1, [r3] adds r0, r4, #0 adds r0, #0x79 strb r2, [r0] adds r1, r4, #0 adds r1, #0x7c movs r0, #0x3c strh r0, [r1] adds r1, #2 movs r0, #0x78 strh r0, [r1] adds r1, #6 movs r0, #3 strb r0, [r1] adds r0, r4, #0 movs r1, #0 bl sub_080042AC _08041486: pop {r4, r5, r6, r7, pc} .align 2, 0 _08041488: .4byte 0x0000FFB0 _0804148C: .4byte gUnk_03000BF0 thumb_func_start sub_08041490 sub_08041490: @ 0x08041490 push {r4, r5, lr} adds r4, r0, #0 bl sub_080042B8 ldrb r0, [r4, #0xd] cmp r0, #5 bls _080414A0 b _080415CC _080414A0: lsls r0, r0, #2 ldr r1, _080414AC @ =_080414B0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080414AC: .4byte _080414B0 _080414B0: @ jump table .4byte _080415E6 @ case 0 .4byte _080414C8 @ case 1 .4byte _08041510 @ case 2 .4byte _08041532 @ case 3 .4byte _0804155C @ case 4 .4byte _08041592 @ case 5 _080414C8: 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] ldr r0, [r4, #0x34] movs r1, #0x80 lsls r1, r1, #8 adds r0, r0, r1 str r0, [r4, #0x34] ldrh r1, [r4, #0x36] movs r0, #0x3f ands r0, r1 cmp r0, #0 bne _080414F4 ldr r0, _0804150C @ =0x000001A9 bl sub_080A3268 _080414F4: movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #6 rsbs r0, r0, #0 cmp r1, r0 ble _080415E6 movs r0, #2 strb r0, [r4, #0xd] ldr r0, _0804150C @ =0x000001A9 bl sub_080A3268 b _080415E6 .align 2, 0 _0804150C: .4byte 0x000001A9 _08041510: adds r0, r4, #0 bl sub_08042004 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08041520 subs r0, #1 b _080415E4 _08041520: adds r0, r4, #0 movs r1, #0 bl sub_08041F74 cmp r0, #0 beq _080415E6 movs r0, #3 strb r0, [r4, #0xd] b _080415E2 _08041532: adds r0, r4, #0 bl sub_08042004 ldrb r0, [r4, #0xe] adds r5, r0, #0 cmp r5, #0 beq _08041544 subs r0, #1 b _080415E4 _08041544: adds r0, r4, #0 movs r1, #1 bl sub_08041F74 cmp r0, #0 beq _080415E6 movs r0, #4 strb r0, [r4, #0xd] movs r0, #0x78 strb r0, [r4, #0xe] strb r5, [r4, #0xf] b _080415E6 _0804155C: adds r0, r4, #0 bl sub_08042004 ldrb r0, [r4, #0xe] subs r1, r0, #1 strb r1, [r4, #0xe] lsls r0, r1, #0x18 cmp r0, #0 bne _08041574 movs r0, #5 strb r0, [r4, #0xd] b _080415E6 _08041574: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x3c bhi _080415E6 ldrb r0, [r4, #0xf] cmp r0, #0 bne _080415E6 adds r0, r4, #0 bl sub_08041F1C cmp r0, #0 beq _080415E6 movs r0, #1 strb r0, [r4, #0xf] b _080415E6 _08041592: adds r0, r4, #0 bl sub_08042004 movs r0, #6 strb r0, [r4, #0xd] movs r0, #0x1e strb r0, [r4, #0xe] ldr r1, _080415BC @ =gUnk_030010A0 adds r1, #0x38 ldrb r2, [r1] movs r0, #1 orrs r0, r2 strb r0, [r1] ldr r1, _080415C0 @ =gUnk_03000BF0 ldr r0, _080415C4 @ =gUnk_03001160 str r0, [r1, #0x30] ldr r0, _080415C8 @ =gUnk_03003F80 adds r0, #0x8b movs r1, #1 strb r1, [r0] b _080415E6 .align 2, 0 _080415BC: .4byte gUnk_030010A0 _080415C0: .4byte gUnk_03000BF0 _080415C4: .4byte gUnk_03001160 _080415C8: .4byte gUnk_03003F80 _080415CC: adds r0, r4, #0 bl sub_08042004 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080415E6 movs r0, #2 strb r0, [r4, #0xc] _080415E2: movs r0, #0x3c _080415E4: strb r0, [r4, #0xe] _080415E6: pop {r4, r5, pc} thumb_func_start sub_080415E8 sub_080415E8: @ 0x080415E8 push {r4, lr} adds r4, r0, #0 bl sub_08042004 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 _08041614 bl sub_08000E50 movs r1, #1 ands r0, r1 adds r0, #1 strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_08042028 _08041614: pop {r4, pc} .align 2, 0 thumb_func_start sub_08041618 sub_08041618: @ 0x08041618 push {r4, lr} adds r4, r0, #0 bl sub_08042004 adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_080AEF88 ldr r0, _0804165C @ =gUnk_03000BF0 ldrh r2, [r0, #8] adds r0, r2, #0 adds r0, #0x90 movs r3, #0x32 ldrsh r1, [r4, r3] cmp r0, r1 blt _08041644 adds r0, r2, #0 adds r0, #0x40 cmp r0, r1 ble _08041646 _08041644: strh r0, [r4, #0x32] _08041646: ldrb r0, [r4, #0xe] subs r1, r0, #1 strb r1, [r4, #0xe] lsls r0, r1, #0x18 cmp r0, #0 bne _08041660 movs r0, #4 strb r0, [r4, #0xc] movs r0, #8 strb r0, [r4, #0xe] b _08041694 .align 2, 0 _0804165C: .4byte gUnk_03000BF0 _08041660: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x1d bhi _0804166E ldrh r0, [r4, #0x24] subs r0, #8 b _0804167A _0804166E: ldrh r1, [r4, #0x24] movs r2, #0x24 ldrsh r0, [r4, r2] cmp r0, #0xff bgt _0804167C adds r0, r1, #6 _0804167A: strh r0, [r4, #0x24] _0804167C: ldrb r1, [r4, #0xe] movs r0, #3 ands r0, r1 cmp r0, #0 bne _08041694 adds r0, r4, #0 bl sub_0804207C adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 _08041694: adds r0, r4, #0 bl sub_0804212C adds r0, r4, #0 bl sub_080421AC pop {r4, pc} .align 2, 0 thumb_func_start sub_080416A4 sub_080416A4: @ 0x080416A4 push {r4, lr} adds r4, r0, #0 bl sub_08042004 adds r0, r4, #0 bl sub_080042B8 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r1, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _080416DA ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] ands r0, r1 cmp r0, #0 bne _080416D4 adds r0, r4, #0 bl sub_08042120 b _080416DA _080416D4: adds r0, r4, #0 bl sub_08042028 _080416DA: pop {r4, pc} thumb_func_start sub_080416DC sub_080416DC: @ 0x080416DC push {r4, r5, lr} adds r5, r0, #0 bl sub_08042004 adds r0, r5, #0 bl sub_080042B8 adds r0, r5, #0 bl sub_0804212C adds r0, r5, #0 bl sub_080421AC ldrb r1, [r5, #0xd] cmp r1, #0 bne _08041748 movs r4, #1 strb r4, [r5, #0xd] bl sub_08000E50 ands r0, r4 cmp r0, #0 beq _08041716 ldr r0, [r5, #0x64] ldr r2, [r0, #0x14] cmp r2, #0 bne _08041724 ldr r2, [r0, #0x18] b _08041720 _08041716: ldr r0, [r5, #0x64] ldr r2, [r0, #0x18] cmp r2, #0 bne _08041724 ldr r2, [r0, #0x14] _08041720: cmp r2, #0 beq _08041734 _08041724: ldrb r0, [r2, #0xc] cmp r0, #2 bne _08041734 movs r1, #0 movs r0, #4 strb r0, [r2, #0xc] strb r1, [r2, #0xd] b _080417AA _08041734: bl sub_08000E50 movs r1, #1 ands r0, r1 adds r0, #1 strb r0, [r5, #0xf] adds r0, r5, #0 bl sub_08042028 b _080417AA _08041748: adds r0, r5, #0 adds r0, #0x79 ldrb r0, [r0] cmp r0, #0 bne _080417AA adds r2, r1, #0 cmp r2, #2 bne _080417AA ldr r0, _0804179C @ =gUnk_030010A0 adds r0, #0x39 ldrb r1, [r0] movs r0, #3 ands r0, r1 cmp r0, #0 bne _080417A4 movs r0, #0xb5 movs r1, #0 movs r2, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _080417AA str r5, [r2, #0x50] ldr r1, [r5, #0x64] str r2, [r1, #0x10] ldr r0, _080417A0 @ =gUnk_03000BF0 str r2, [r0, #0x30] movs r0, #6 strb r0, [r5, #0xc] movs r0, #0x1e strb r0, [r5, #0xe] ldr r1, [r1, #4] movs r0, #1 strb r0, [r1, #0xd] ldr r0, [r5, #0x64] ldr r0, [r0, #4] movs r1, #0xe bl sub_08004260 b _080417AA .align 2, 0 _0804179C: .4byte gUnk_030010A0 _080417A0: .4byte gUnk_03000BF0 _080417A4: strb r2, [r5, #0xc] movs r0, #0x3c strb r0, [r5, #0xe] _080417AA: pop {r4, r5, pc} thumb_func_start sub_080417AC sub_080417AC: @ 0x080417AC push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xe] cmp r0, #0 bne _08041816 ldr r0, [r5, #0x64] ldr r4, [r0, #4] adds r0, r4, #0 bl sub_08004274 adds r4, #0x5a ldrb r1, [r4] adds r0, r1, #0 cmp r0, #1 bne _080417DA movs r0, #0xfe ands r0, r1 strb r0, [r4] adds r0, r5, #0 movs r1, #4 bl sub_080042AC b _0804181A _080417DA: cmp r0, #2 bne _08041806 movs r0, #0x51 movs r1, #3 bl sub_0804AA60 adds r1, r0, #0 cmp r1, #0 beq _0804181A ldr r0, [r5, #0x64] str r0, [r1, #0x64] ldr r0, [r5, #0x64] str r1, [r0, #0xc] ldr r0, [r0, #8] movs r1, #0x14 bl sub_08004260 ldrb r1, [r4] movs r0, #0xfd ands r0, r1 strb r0, [r4] b _0804181A _08041806: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0804181A adds r0, r5, #0 bl sub_0804235C b _0804181A _08041816: subs r0, #1 strb r0, [r5, #0xe] _0804181A: adds r0, r5, #0 bl sub_08042004 adds r0, r5, #0 bl sub_080042B8 pop {r4, r5, pc} thumb_func_start sub_08041828 sub_08041828: @ 0x08041828 push {r4, lr} adds r4, r0, #0 bl sub_08042214 adds r0, r4, #0 bl sub_08042004 adds r0, r4, #0 bl sub_080042B8 ldr r2, _08041868 @ =gUnk_03000BF0 ldrh r0, [r2, #8] adds r0, #0x48 movs r3, #0x32 ldrsh r1, [r4, r3] cmp r0, r1 beq _0804186C movs r0, #0x80 lsls r0, r0, #1 strh r0, [r4, #0x24] ldrh r0, [r2, #8] adds r0, #0x48 movs r2, #0 cmp r0, r1 blt _0804185C movs r2, #0x10 _0804185C: strb r2, [r4, #0x15] adds r0, r4, #0 bl sub_0806F69C b _0804187E .align 2, 0 _08041868: .4byte gUnk_03000BF0 _0804186C: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0804187E adds r0, r4, #0 bl sub_08042050 _0804187E: pop {r4, pc} thumb_func_start sub_08041880 sub_08041880: @ 0x08041880 push {r4, lr} adds r4, r0, #0 bl sub_08042004 adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_0806F69C ldr r0, _080418D4 @ =gUnk_03000BF0 ldrh r2, [r0, #6] adds r0, r2, #0 adds r0, #0x20 movs r3, #0x2e ldrsh r1, [r4, r3] cmp r0, r1 bgt _080418AE movs r3, #0xa0 lsls r3, r3, #1 adds r0, r2, r3 cmp r0, r1 bge _080418BE _080418AE: movs r1, #0x24 ldrsh r0, [r4, r1] cmp r0, #0x3f ble _080418BE ldrb r0, [r4, #0x15] movs r1, #0x10 eors r0, r1 strb r0, [r4, #0x15] _080418BE: ldrb r0, [r4, #0xe] subs r1, r0, #1 strb r1, [r4, #0xe] lsls r0, r1, #0x18 cmp r0, #0 bne _080418D8 movs r0, #9 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] b _080418F8 .align 2, 0 _080418D4: .4byte gUnk_03000BF0 _080418D8: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x1d bhi _080418E6 ldrh r0, [r4, #0x24] subs r0, #0xc b _080418F6 _080418E6: ldrh r2, [r4, #0x24] movs r3, #0x24 ldrsh r1, [r4, r3] ldr r0, _08041900 @ =0x000001FF cmp r1, r0 bgt _080418F8 adds r0, r2, #0 adds r0, #0x10 _080418F6: strh r0, [r4, #0x24] _080418F8: adds r0, r4, #0 bl sub_08042214 pop {r4, pc} .align 2, 0 _08041900: .4byte 0x000001FF thumb_func_start sub_08041904 sub_08041904: @ 0x08041904 push {r4, r5, lr} adds r4, r0, #0 bl sub_08042004 adds r0, r4, #0 bl sub_080042B8 adds r3, r4, #0 adds r3, #0x79 ldrb r0, [r3] cmp r0, #0 beq _08041924 adds r0, r4, #0 bl sub_08042214 b _0804197A _08041924: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #0 bne _0804197A ldr r0, _0804196C @ =gUnk_03001160 movs r1, #0x2e ldrsh r0, [r0, r1] movs r5, #0x2e ldrsh r1, [r4, r5] subs r0, r0, r1 adds r0, #0x40 cmp r0, #0x80 bhi _08041970 movs r0, #0xa strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x7b strb r2, [r0] ldr r0, [r4, #0x64] ldr r0, [r0, #0x1c] movs r1, #1 strb r1, [r0, #0xe] ldr r0, [r4, #0x64] ldr r0, [r0, #0x20] strb r1, [r0, #0xe] ldr r0, [r4, #0x64] ldr r0, [r0, #0x24] strb r1, [r0, #0xe] ldr r0, [r4, #0x64] ldr r0, [r0, #0x28] strb r1, [r0, #0xe] b _0804197A .align 2, 0 _0804196C: .4byte gUnk_03001160 _08041970: movs r0, #7 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] strb r2, [r3] _0804197A: pop {r4, r5, pc} thumb_func_start sub_0804197C sub_0804197C: @ 0x0804197C push {r4, lr} adds r4, r0, #0 bl sub_08042004 adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x7b ldrb r0, [r0] cmp r0, #0xf bne _080419A6 movs r1, #0 movs r0, #7 strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xe] adds r0, r4, #0 adds r0, #0x79 strb r1, [r0] b _080419F6 _080419A6: cmp r0, #0xf0 bne _080419F6 movs r1, #0 movs r0, #0xb strb r0, [r4, #0xc] strb r1, [r4, #0xd] strb r1, [r4, #0x15] adds r0, #0xf5 strh r0, [r4, #0x24] movs r0, #0x90 lsls r0, r0, #9 str r0, [r4, #0x20] ldr r1, _080419F8 @ =0x0000016B adds r0, r4, #0 bl sub_0801D2B4 adds r0, r4, #0 movs r1, #5 bl sub_080042AC ldr r0, [r4, #0x64] ldr r0, [r0, #4] movs r1, #1 strb r1, [r0, #0xd] movs r1, #0xf bl sub_08004260 ldr r0, [r4, #0x64] ldr r0, [r0, #8] movs r1, #0x15 bl sub_08004260 ldr r0, [r4, #0x64] ldr r0, [r0, #0xc] movs r1, #0x1e bl sub_08004260 ldr r0, _080419FC @ =0x00000127 bl sub_080A3268 _080419F6: pop {r4, pc} .align 2, 0 _080419F8: .4byte 0x0000016B _080419FC: .4byte 0x00000127 thumb_func_start sub_08041A00 sub_08041A00: @ 0x08041A00 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #0 beq _08041A60 cmp r0, #1 beq _08041ABC ldr r2, _08041A5C @ =gUnk_080D0E64 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r1, #0xff ands r0, r1 movs r1, #3 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x62 strb r0, [r1] ldrb r1, [r4, #0xe] cmp r1, #0 bne _08041AF0 movs r0, #0xc strb r0, [r4, #0xc] strb r1, [r4, #0xd] movs r1, #0xa0 lsls r1, r1, #1 adds r0, r4, #0 bl sub_0801D2B4 adds r0, r4, #0 movs r1, #8 bl sub_080042AC ldr r0, [r4, #0x64] ldr r0, [r0, #4] movs r1, #0x10 bl sub_08004260 ldr r0, [r4, #0x64] ldr r0, [r0, #8] movs r1, #0x18 bl sub_08004260 b _08041AF0 .align 2, 0 _08041A5C: .4byte gUnk_080D0E64 _08041A60: adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_080042B8 ldr r0, [r4, #0x64] ldr r0, [r0, #4] bl sub_08004274 ldr r0, [r4, #0x64] ldr r0, [r0, #8] bl sub_08004274 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08041AF0 movs r0, #1 strb r0, [r4, #0xd] movs r0, #0xf0 strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x45 movs r0, #8 strb r0, [r1] subs r1, #6 movs r0, #0x38 strb r0, [r1] movs r0, #0x14 movs r1, #0 bl sub_08080964 adds r0, r4, #0 movs r1, #6 bl sub_080042AC ldr r0, [r4, #0x64] ldr r0, [r0, #8] movs r1, #0x16 bl sub_08004260 b _08041AF0 _08041ABC: adds r0, r4, #0 bl sub_080042B8 ldr r0, [r4, #0x64] ldr r0, [r0, #8] bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r2, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _08041AF0 movs r0, #2 strb r0, [r4, #0xd] movs r0, #0x3c strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x39 strb r0, [r1] adds r1, #6 ldrb r0, [r1] orrs r0, r2 strb r0, [r1] _08041AF0: pop {r4, pc} .align 2, 0 thumb_func_start sub_08041AF4 sub_08041AF4: @ 0x08041AF4 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 ldr r0, [r4, #0x64] ldr r0, [r0, #8] bl sub_08004274 ldrb r0, [r4, #0xd] cmp r0, #0 beq _08041B12 ldr r0, [r4, #0x64] ldr r0, [r0, #4] bl sub_08004274 _08041B12: ldrb r0, [r4, #0xd] cmp r0, #0 beq _08041B44 cmp r0, #1 beq _08041B70 adds r0, r4, #0 bl sub_08042004 ldr r0, [r4, #0x64] ldr r0, [r0, #4] adds r2, r0, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08041BC0 movs r0, #0xfe ands r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #9 bl sub_080042AC b _08041BCE _08041B44: ldr r0, [r4, #0x34] ldr r1, _08041B6C @ =0xFFFF8000 adds r0, r0, r1 str r0, [r4, #0x34] movs r2, #0x36 ldrsh r1, [r4, r2] movs r0, #4 rsbs r0, r0, #0 cmp r1, r0 bge _08041BCE movs r0, #1 strb r0, [r4, #0xd] movs r0, #0x78 strb r0, [r4, #0xe] movs r0, #0x10 strb r0, [r4, #0x15] movs r0, #0x80 strh r0, [r4, #0x24] b _08041BCE .align 2, 0 _08041B6C: .4byte 0xFFFF8000 _08041B70: adds r0, r4, #0 bl sub_08042004 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08041B82 subs r0, #1 strb r0, [r4, #0xe] b _08041BCE _08041B82: adds r0, r4, #0 bl sub_0806F69C ldr r0, _08041BBC @ =gUnk_03000BF0 ldrh r0, [r0, #8] adds r0, #0x48 movs r2, #0x32 ldrsh r1, [r4, r2] cmp r0, r1 bne _08041BCE movs r0, #2 strb r0, [r4, #0xd] ldr r0, [r4, #0x64] ldr r0, [r0, #4] movs r1, #0x11 bl sub_08004260 ldr r0, [r4, #0x64] ldr r0, [r0, #8] movs r1, #0x19 bl sub_08004260 ldr r0, [r4, #0x64] ldr r0, [r0, #0xc] movs r1, #0x1f bl sub_08004260 b _08041BCE .align 2, 0 _08041BBC: .4byte gUnk_03000BF0 _08041BC0: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08041BCE adds r0, r4, #0 bl sub_0804235C _08041BCE: pop {r4, pc} thumb_func_start sub_08041BD0 sub_08041BD0: @ 0x08041BD0 push {lr} ldr r2, _08041BE4 @ =gUnk_080D0E68 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08041BE4: .4byte gUnk_080D0E68 thumb_func_start sub_08041BE8 sub_08041BE8: @ 0x08041BE8 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 bl sub_08079F8C cmp r0, #0 beq _08041CBA movs r5, #0 movs r0, #1 strb r0, [r6, #0xd] movs r0, #0x78 strb r0, [r6, #0xe] ldrb r1, [r6, #0x11] movs r4, #0x10 rsbs r4, r4, #0 adds r0, r4, #0 ands r0, r1 movs r1, #3 mov r8, r1 mov r1, r8 orrs r0, r1 strb r0, [r6, #0x11] adds r0, r6, #0 movs r1, #0xa bl sub_080042AC ldr r0, [r6, #0x64] ldr r7, [r0, #4] str r5, [r7, #0x64] adds r0, r7, #0 bl sub_0805E7BC ldr r0, [r6, #0x64] str r5, [r0, #4] ldr r7, [r0, #8] ldrb r0, [r7, #0x11] ands r4, r0 mov r0, r8 orrs r4, r0 strb r4, [r7, #0x11] adds r0, r7, #0 bl sub_080AE068 ldr r1, _08041CC0 @ =0x000001F5 adds r0, r7, #0 bl sub_080ADF80 ldr r1, _08041CC4 @ =0x0000016B adds r0, r7, #0 bl sub_0801D2B4 adds r0, r7, #0 movs r1, #0x1a bl sub_08004260 ldr r0, [r6, #0x64] ldr r7, [r0, #0xc] str r5, [r7, #0x64] adds r0, r7, #0 bl sub_0805E7BC ldr r0, [r6, #0x64] str r5, [r0, #0xc] ldr r7, [r0, #0x10] str r5, [r7, #0x64] adds r0, r7, #0 bl sub_0805E7BC ldr r2, [r6, #0x64] str r5, [r2, #0x10] ldr r1, _08041CC8 @ =gUnk_03000BF0 ldr r0, _08041CCC @ =gUnk_03001160 str r0, [r1, #0x30] ldr r7, [r2, #0x1c] str r5, [r7, #0x64] adds r0, r7, #0 bl sub_0805E7BC ldr r0, [r6, #0x64] str r5, [r0, #0x1c] ldr r7, [r0, #0x20] str r5, [r7, #0x64] adds r0, r7, #0 bl sub_0805E7BC ldr r0, [r6, #0x64] str r5, [r0, #0x20] ldr r7, [r0, #0x24] str r5, [r7, #0x64] adds r0, r7, #0 bl sub_0805E7BC ldr r0, [r6, #0x64] str r5, [r0, #0x24] ldr r7, [r0, #0x28] str r5, [r7, #0x64] adds r0, r7, #0 bl sub_0805E7BC ldr r0, [r6, #0x64] str r5, [r0, #0x28] movs r0, #2 bl sub_08078A90 _08041CBA: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08041CC0: .4byte 0x000001F5 _08041CC4: .4byte 0x0000016B _08041CC8: .4byte gUnk_03000BF0 _08041CCC: .4byte gUnk_03001160 thumb_func_start sub_08041CD0 sub_08041CD0: @ 0x08041CD0 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x64] ldr r0, [r0, #8] bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08041D0C ldrb r0, [r4, #0xe] cmp r0, #0 beq _08041CF6 subs r0, #1 strb r0, [r4, #0xe] b _08041D12 _08041CF6: movs r0, #2 strb r0, [r4, #0xd] movs r0, #0x3c strb r0, [r4, #0xe] ldr r0, _08041D08 @ =0x00001651 bl sub_08056378 b _08041D12 .align 2, 0 _08041D08: .4byte 0x00001651 _08041D0C: adds r0, r4, #0 bl sub_080042B8 _08041D12: pop {r4, pc} thumb_func_start sub_08041D14 sub_08041D14: @ 0x08041D14 push {r4, r5, lr} adds r4, r0, #0 ldr r0, [r4, #0x64] ldr r0, [r0, #8] bl sub_08004274 ldr r0, _08041D3C @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08041D7C ldrb r0, [r4, #0xe] adds r5, r0, #0 cmp r5, #0 beq _08041D40 subs r0, #1 strb r0, [r4, #0xe] b _08041D7C .align 2, 0 _08041D3C: .4byte gUnk_02000050 _08041D40: ldr r0, _08041D80 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x45 bhi _08041D7C movs r0, #0xb6 movs r1, #0 movs r2, #0 bl sub_080A2960 str r4, [r0, #0x50] str r0, [r4, #0x54] movs r0, #0xb6 movs r1, #1 movs r2, #0 bl sub_080A2960 str r4, [r0, #0x50] movs r0, #3 strb r0, [r4, #0xd] movs r0, #0x96 strb r0, [r4, #0xe] strb r5, [r4, #0xf] ldrb r1, [r4, #0x18] subs r0, #0x9a ands r0, r1 strb r0, [r4, #0x18] movs r0, #0xe2 lsls r0, r0, #1 bl sub_080A3268 _08041D7C: pop {r4, r5, pc} .align 2, 0 _08041D80: .4byte gUnk_03003DBC thumb_func_start sub_08041D84 sub_08041D84: @ 0x08041D84 push {r4, r5, lr} adds r5, r0, #0 ldr r0, [r5, #0x64] ldr r0, [r0, #8] bl sub_08004274 ldrb r0, [r5, #0xe] cmp r0, #0 beq _08041D9C subs r0, #1 strb r0, [r5, #0xe] b _08041E18 _08041D9C: ldrb r1, [r5, #0xf] adds r0, r1, #0 cmp r0, #0xef bhi _08041DEC cmp r0, #0xb7 bls _08041DD8 movs r0, #7 ands r0, r1 cmp r0, #0 bne _08041DD8 ldr r0, [r5, #0x64] ldr r0, [r0, #8] ldr r4, _08041DE8 @ =gUnk_080D0E80 ldrb r1, [r5, #0xf] subs r1, #0xb8 asrs r1, r1, #3 lsls r1, r1, #1 adds r1, r1, r4 ldrh r1, [r1] bl sub_0801D2B4 ldr r0, [r5, #0x54] ldrb r1, [r5, #0xf] subs r1, #0xb8 asrs r1, r1, #3 lsls r1, r1, #1 adds r1, r1, r4 ldrh r1, [r1] bl sub_0801D2B4 _08041DD8: ldrb r0, [r5, #0xf] cmp r0, #0xe6 bne _08041E0C movs r0, #7 movs r1, #4 bl sub_08050054 b _08041E0C .align 2, 0 _08041DE8: .4byte gUnk_080D0E80 _08041DEC: movs r0, #4 strb r0, [r5, #0xd] ldrb r1, [r5, #0x18] subs r0, #8 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r5, #0x18] ldr r1, _08041E1C @ =0x00000173 adds r0, r5, #0 bl sub_0801D2B4 adds r0, r5, #0 movs r1, #0xb bl sub_080042AC _08041E0C: ldrb r0, [r5, #0xf] adds r0, #1 strb r0, [r5, #0xf] adds r0, r5, #0 bl sub_08041E78 _08041E18: pop {r4, r5, pc} .align 2, 0 _08041E1C: .4byte 0x00000173 thumb_func_start sub_08041E20 sub_08041E20: @ 0x08041E20 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] adds r0, #1 strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_08041E78 ldr r0, [r4, #0x64] ldr r0, [r0, #8] bl sub_08004274 ldr r0, _08041E4C @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08041E48 movs r0, #5 strb r0, [r4, #0xd] movs r0, #0x5a strb r0, [r4, #0xe] _08041E48: pop {r4, pc} .align 2, 0 _08041E4C: .4byte gUnk_03000FD0 thumb_func_start sub_08041E50 sub_08041E50: @ 0x08041E50 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r5, r0, #0x18 cmp r5, #0 bne _08041E76 movs r0, #0x51 bl sub_0807CD04 ldr r0, [r4, #0x64] ldr r0, [r0, #8] str r5, [r0, #0x64] bl sub_0805E7BC bl sub_0805E780 _08041E76: pop {r4, r5, pc} thumb_func_start sub_08041E78 sub_08041E78: @ 0x08041E78 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xf] movs r0, #0xf ands r0, r1 cmp r0, #0 bne _08041ECE adds r0, r4, #0 movs r1, #0x51 movs r2, #0 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _08041ECE ldrb r1, [r4, #0xf] lsrs r1, r1, #3 movs r0, #0xe ands r1, r0 ldr r0, _08041ED0 @ =gUnk_080D0E90 adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] ldrh r3, [r2, #0x2e] adds r0, r0, r3 strh r0, [r2, #0x2e] movs r0, #1 ldrsb r0, [r1, r0] ldrh r1, [r2, #0x32] adds r0, r0, r1 strh r0, [r2, #0x32] 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] movs r0, #4 movs r1, #0 bl sub_08080964 _08041ECE: pop {r4, pc} .align 2, 0 _08041ED0: .4byte gUnk_080D0E90 thumb_func_start sub_08041ED4 sub_08041ED4: @ 0x08041ED4 push {r4, r5, lr} adds r5, r0, #0 ldr r0, _08041F14 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x45 bhi _08041F18 movs r0, #0x2c bl sub_0801D8E0 adds r4, r0, #0 cmp r4, #0 beq _08041F18 str r4, [r5, #0x64] str r5, [r4] movs r0, #0 str r0, [r4, #0xc] str r0, [r4, #0x14] str r0, [r4, #0x18] movs r0, #0x51 movs r1, #1 bl sub_0804AA60 str r4, [r0, #0x64] str r0, [r4, #4] movs r0, #0x51 movs r1, #2 bl sub_0804AA60 str r4, [r0, #0x64] str r0, [r4, #8] movs r0, #1 b _08041F1A .align 2, 0 _08041F14: .4byte gUnk_03003DBC _08041F18: movs r0, #0 _08041F1A: pop {r4, r5, pc} thumb_func_start sub_08041F1C sub_08041F1C: @ 0x08041F1C push {r4, lr} adds r4, r0, #0 ldr r0, _08041F6C @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x43 bhi _08041F70 movs r0, #0x5f movs r1, #0 bl sub_0804AA60 adds r1, r0, #0 str r4, [r1, #0x50] ldr r0, [r4, #0x64] str r1, [r0, #0x1c] movs r0, #0x5f movs r1, #1 bl sub_0804AA60 adds r1, r0, #0 str r4, [r1, #0x50] ldr r0, [r4, #0x64] str r1, [r0, #0x20] movs r0, #0x5f movs r1, #2 bl sub_0804AA60 adds r1, r0, #0 str r4, [r1, #0x50] ldr r0, [r4, #0x64] str r1, [r0, #0x24] movs r0, #0x5f movs r1, #3 bl sub_0804AA60 adds r1, r0, #0 str r4, [r1, #0x50] ldr r0, [r4, #0x64] str r1, [r0, #0x28] movs r0, #1 b _08041F72 .align 2, 0 _08041F6C: .4byte gUnk_03003DBC _08041F70: movs r0, #0 _08041F72: pop {r4, pc} thumb_func_start sub_08041F74 sub_08041F74: @ 0x08041F74 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r6, r1, #0 ldr r0, _08041F88 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x46 bls _08041F8C movs r0, #0 b _08041FC8 .align 2, 0 _08041F88: .4byte gUnk_03003DBC _08041F8C: ldr r7, [r5, #0x64] movs r4, #0 ldr r0, _08041FC0 @ =gUnk_030010A0 adds r0, #0x39 ldrb r0, [r0] asrs r0, r6 movs r1, #1 ands r0, r1 cmp r0, #0 beq _08041FB6 movs r0, #0x52 movs r1, #0 bl sub_0804AA60 adds r4, r0, #0 strb r6, [r4, #0xb] str r5, [r4, #0x50] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 _08041FB6: cmp r6, #0 bne _08041FC4 str r4, [r7, #0x14] b _08041FC6 .align 2, 0 _08041FC0: .4byte gUnk_030010A0 _08041FC4: str r4, [r7, #0x18] _08041FC6: movs r0, #1 _08041FC8: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08041FCC sub_08041FCC: @ 0x08041FCC push {r4, lr} adds r4, r0, #0 ldr r0, _08041FFC @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x4c bhi _08042000 adds r0, r4, #0 bl sub_08041ED4 cmp r0, #0 beq _08042000 adds r0, r4, #0 movs r1, #0 bl sub_08041F74 adds r0, r4, #0 movs r1, #1 bl sub_08041F74 adds r0, r4, #0 bl sub_08041F1C movs r0, #1 b _08042002 .align 2, 0 _08041FFC: .4byte gUnk_03003DBC _08042000: movs r0, #0 _08042002: pop {r4, pc} thumb_func_start sub_08042004 sub_08042004: @ 0x08042004 ldr r3, _08042024 @ =gUnk_080D0EA0 adds r2, r0, #0 adds r2, #0x78 ldrb r1, [r2] adds r1, #1 strb r1, [r2] lsls r1, r1, #0x18 lsrs r1, r1, #0x1c movs r2, #7 ands r1, r2 adds r1, r1, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 strh r1, [r0, #0x36] bx lr .align 2, 0 _08042024: .4byte gUnk_080D0EA0 thumb_func_start sub_08042028 sub_08042028: @ 0x08042028 push {r4, r5, lr} adds r4, r0, #0 movs r5, #3 strb r5, [r4, #0xc] bl sub_08000E50 ldr r1, _0804204C @ =gUnk_080D0EA8 ands r0, r5 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r4, #0xe] movs r0, #0x40 strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_0804207C strb r0, [r4, #0x15] pop {r4, r5, pc} .align 2, 0 _0804204C: .4byte gUnk_080D0EA8 thumb_func_start sub_08042050 sub_08042050: @ 0x08042050 push {r4, lr} adds r4, r0, #0 movs r0, #8 strb r0, [r4, #0xc] bl sub_08000E50 ldr r2, _08042078 @ =gUnk_080D0EAC movs r1, #3 ands r1, r0 adds r1, r1, r2 ldrb r1, [r1] strb r1, [r4, #0xe] movs r1, #0x20 strh r1, [r4, #0x24] lsrs r0, r0, #8 movs r1, #0x10 ands r0, r1 adds r0, #8 strb r0, [r4, #0x15] pop {r4, pc} .align 2, 0 _08042078: .4byte gUnk_080D0EAC thumb_func_start sub_0804207C sub_0804207C: @ 0x0804207C push {r4, r5, r6, r7, lr} adds r5, r0, #0 movs r0, #0x2e ldrsh r6, [r5, r0] movs r1, #0x32 ldrsh r0, [r5, r1] adds r7, r0, #0 subs r7, #0x10 ldr r0, [r5, #0x64] ldr r4, [r0, #0x14] cmp r4, #0 beq _080420B8 ldrb r0, [r4, #0xc] cmp r0, #4 bls _080420B8 adds r0, r4, #0 adds r1, r6, #0 adds r2, r7, #0 movs r3, #0x30 bl sub_0806FCB8 cmp r0, #0 beq _080420B8 movs r2, #0x2e ldrsh r0, [r4, r2] movs r2, #0x32 ldrsh r1, [r4, r2] adds r2, r6, #0 adds r3, r7, #0 b _08042118 _080420B8: ldr r0, [r5, #0x64] ldr r4, [r0, #0x18] cmp r4, #0 beq _080420E4 ldrb r0, [r4, #0xc] cmp r0, #4 bls _080420E4 adds r0, r4, #0 adds r1, r6, #0 adds r2, r7, #0 movs r3, #0x30 bl sub_0806FCB8 cmp r0, #0 beq _080420E4 movs r1, #0x2e ldrsh r0, [r4, r1] movs r2, #0x32 ldrsh r1, [r4, r2] adds r2, r6, #0 adds r3, r7, #0 b _08042118 _080420E4: ldr r0, _080420FC @ =gUnk_03001160 movs r4, #0x32 ldrsh r1, [r0, r4] adds r2, r0, #0 cmp r1, #0x3f bgt _08042104 ldr r0, _08042100 @ =gUnk_03000BF0 ldrh r0, [r0, #8] adds r3, r0, #0 adds r3, #0x18 b _0804210C .align 2, 0 _080420FC: .4byte gUnk_03001160 _08042100: .4byte gUnk_03000BF0 _08042104: movs r1, #0x32 ldrsh r0, [r2, r1] adds r3, r0, #0 subs r3, #0x28 _0804210C: movs r4, #0x2e ldrsh r0, [r5, r4] movs r4, #0x32 ldrsh r1, [r5, r4] movs r4, #0x2e ldrsh r2, [r2, r4] _08042118: bl sub_080045D4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08042120 sub_08042120: @ 0x08042120 movs r2, #0 movs r1, #5 strb r1, [r0, #0xc] strb r2, [r0, #0xd] bx lr .align 2, 0 thumb_func_start sub_0804212C sub_0804212C: @ 0x0804212C push {r4, r5, r6, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x7c ldrh r0, [r1] cmp r0, #0 beq _0804213E subs r0, #1 b _080421A8 _0804213E: movs r5, #0 movs r0, #0x32 ldrsh r1, [r4, r0] subs r1, #0x44 ldr r3, _0804216C @ =gUnk_03001160 movs r2, #0x32 ldrsh r0, [r3, r2] subs r0, r0, r1 cmp r0, #0x60 bhi _0804217A movs r6, #0x2e ldrsh r2, [r4, r6] adds r0, r2, #0 subs r0, #0x38 movs r6, #0x2e ldrsh r1, [r3, r6] subs r0, r1, r0 cmp r0, #0x38 bhi _08042170 ldr r0, [r4, #0x64] ldr r5, [r0, #0x18] b _0804217A .align 2, 0 _0804216C: .4byte gUnk_03001160 _08042170: subs r0, r1, r2 cmp r0, #0x38 bhi _0804217A ldr r0, [r4, #0x64] ldr r5, [r0, #0x14] _0804217A: cmp r5, #0 beq _080421A2 ldrb r0, [r5, #0xc] cmp r0, #2 bne _080421AA bl sub_08000E50 movs r1, #1 ands r1, r0 cmp r1, #0 beq _080421AA movs r1, #0 movs r0, #3 strb r0, [r5, #0xc] strb r1, [r5, #0xd] adds r1, r4, #0 adds r1, #0x7c movs r0, #0xb4 lsls r0, r0, #2 b _080421A8 _080421A2: adds r1, r4, #0 adds r1, #0x7c movs r0, #0x3c _080421A8: strh r0, [r1] _080421AA: pop {r4, r5, r6, pc} thumb_func_start sub_080421AC sub_080421AC: @ 0x080421AC push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x7e ldrh r0, [r5] adds r7, r0, #0 cmp r7, #0 beq _080421C0 subs r0, #1 b _08042210 _080421C0: adds r6, r4, #0 adds r6, #0x79 ldrb r0, [r6] cmp r0, #0 bne _080421FE bl sub_08000E50 movs r5, #1 ands r0, r5 cmp r0, #0 beq _080421F4 ldr r0, _080421F0 @ =gUnk_030010A0 adds r0, #0x39 ldrb r1, [r0] movs r0, #0xc ands r0, r1 cmp r0, #0 beq _080421F4 adds r0, r4, #0 bl sub_08042264 strb r5, [r6] b _08042212 .align 2, 0 _080421F0: .4byte gUnk_030010A0 _080421F4: adds r1, r4, #0 adds r1, #0x7e movs r0, #0x1e strh r0, [r1] b _08042212 _080421FE: adds r0, r4, #0 movs r1, #0 bl sub_080422C0 cmp r0, #0 beq _08042212 strb r7, [r6] movs r0, #0xb4 lsls r0, r0, #1 _08042210: strh r0, [r5] _08042212: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08042214 sub_08042214: @ 0x08042214 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r6, r4, #0 adds r6, #0x7e ldrh r0, [r6] adds r7, r0, #0 cmp r7, #0 beq _08042228 subs r0, #1 b _0804225E _08042228: adds r5, r4, #0 adds r5, #0x79 ldrb r0, [r5] cmp r0, #0 bne _0804224E bl sub_08000E50 movs r1, #3 ands r1, r0 cmp r1, #0 beq _0804224A adds r0, r4, #0 bl sub_0804228C movs r0, #1 strb r0, [r5] b _08042260 _0804224A: movs r0, #0x1e b _0804225E _0804224E: adds r0, r4, #0 movs r1, #1 bl sub_080422C0 cmp r0, #0 beq _08042260 strb r7, [r5] movs r0, #0xb4 _0804225E: strh r0, [r6] _08042260: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08042264 sub_08042264: @ 0x08042264 push {r4, lr} adds r4, r0, #0 movs r1, #1 bl sub_080042AC ldr r0, [r4, #0x64] ldr r1, [r0, #4] movs r0, #1 strb r0, [r1, #0xd] ldr r0, [r4, #0x64] ldr r0, [r0, #4] movs r1, #0xd bl sub_08004260 ldr r0, [r4, #0x64] ldr r0, [r0, #8] movs r1, #0x13 bl sub_08004260 pop {r4, pc} thumb_func_start sub_0804228C sub_0804228C: @ 0x0804228C push {r4, lr} adds r4, r0, #0 movs r1, #2 bl sub_080042AC ldr r0, [r4, #0x64] ldr r1, [r0, #4] movs r0, #1 strb r0, [r1, #0xd] ldr r0, [r4, #0x64] ldr r0, [r0, #4] movs r1, #0xd bl sub_08004260 ldr r0, [r4, #0x64] ldr r0, [r0, #8] movs r1, #0x13 bl sub_08004260 ldr r0, [r4, #0x64] ldr r0, [r0, #0xc] movs r1, #0x1d bl sub_08004260 pop {r4, pc} .align 2, 0 thumb_func_start sub_080422C0 sub_080422C0: @ 0x080422C0 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 mov r8, r1 bl sub_080042B8 ldr r0, [r5, #0x64] ldr r0, [r0, #8] bl sub_08004274 ldr r0, [r5, #0x64] ldr r7, [r0, #4] adds r0, r7, #0 bl sub_08004274 mov r0, r8 adds r0, #1 adds r6, r7, #0 adds r6, #0x5a ldrb r4, [r6] cmp r0, r4 bne _08042306 movs r0, #0x21 bl sub_080A7EE0 cmp r0, #0 beq _08042354 mov r1, r8 strb r1, [r0, #0xa] str r5, [r0, #0x50] ldrb r0, [r6] bics r0, r4 strb r0, [r6] b _08042354 _08042306: cmp r4, #4 bne _0804231A movs r0, #0xfb ands r4, r0 strb r4, [r6] adds r0, r5, #0 movs r1, #3 bl sub_080042AC b _08042354 _0804231A: movs r0, #0x80 ands r4, r0 cmp r4, #0 beq _08042354 adds r0, r5, #0 movs r1, #0 bl sub_080042AC movs r0, #0 strb r0, [r7, #0xd] adds r0, r7, #0 movs r1, #0xc bl sub_08004260 ldr r0, [r5, #0x64] ldr r0, [r0, #8] movs r1, #0x12 bl sub_08004260 mov r0, r8 cmp r0, #1 bne _08042350 ldr r0, [r5, #0x64] ldr r0, [r0, #0xc] movs r1, #0x1b bl sub_08004260 _08042350: movs r0, #1 b _08042356 _08042354: movs r0, #0 _08042356: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0804235C sub_0804235C: @ 0x0804235C push {r4, r5, lr} adds r4, r0, #0 movs r1, #0 movs r0, #7 strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xe] adds r0, r4, #0 adds r0, #0x79 strb r1, [r0] adds r1, r4, #0 adds r1, #0x7e movs r5, #0 movs r0, #0xf0 strh r0, [r1] adds r0, r4, #0 movs r1, #0 bl sub_080042AC ldr r0, [r4, #0x64] ldr r0, [r0, #4] strb r5, [r0, #0xd] movs r1, #0xc bl sub_08004260 ldr r0, [r4, #0x64] ldr r0, [r0, #8] movs r1, #0x12 bl sub_08004260 ldr r0, [r4, #0x64] ldr r0, [r0, #0xc] movs r1, #0x1b bl sub_08004260 pop {r4, r5, pc} thumb_func_start sub_080423A4 sub_080423A4: @ 0x080423A4 push {r4, lr} ldr r0, _080423CC @ =gUnk_030010A0 adds r4, r0, #0 adds r4, #0x38 ldrb r1, [r4] movs r0, #2 ands r0, r1 cmp r0, #0 bne _0804241C ldr r0, _080423D0 @ =gUnk_02002A40 movs r2, #0x93 lsls r2, r2, #3 adds r1, r0, r2 ldr r0, [r1] cmp r0, #0 beq _080423D4 subs r0, #1 str r0, [r1] b _0804241C .align 2, 0 _080423CC: .4byte gUnk_030010A0 _080423D0: .4byte gUnk_02002A40 _080423D4: ldr r2, _08042420 @ =gUnk_03003F80 adds r0, r2, #0 adds r0, #0xa9 ldrb r0, [r0] cmp r0, #1 bgt _0804241C cmp r0, #0 blt _0804241C ldr r0, [r2, #0x2c] cmp r0, #0 bne _0804241C ldr r1, _08042424 @ =gUnk_03001160 adds r0, r1, #0 adds r0, #0x7a ldrh r0, [r0] cmp r0, #0 bne _0804241C movs r3, #0x36 ldrsh r0, [r1, r3] movs r1, #0x80 lsls r1, r1, #8 ands r0, r1 cmp r0, #0 beq _0804240A ldrb r0, [r2, #0xa] cmp r0, #0 beq _0804241C _0804240A: movs r0, #0xb7 lsls r0, r0, #4 movs r1, #0 bl sub_08078AA8 ldrb r0, [r4] movs r1, #2 orrs r0, r1 strb r0, [r4] _0804241C: pop {r4, pc} .align 2, 0 _08042420: .4byte gUnk_03003F80 _08042424: .4byte gUnk_03001160 thumb_func_start sub_08042428 sub_08042428: @ 0x08042428 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x64] ldr r0, [r0] ldr r0, [r0, #4] cmp r0, #0 bne _0804243C str r0, [r4, #0x64] bl sub_0805E780 _0804243C: ldrb r1, [r4, #0xc] cmp r1, #0 bne _08042450 movs r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0xd] adds r0, r4, #0 movs r1, #0xc bl sub_08004260 _08042450: ldrb r0, [r4, #0xd] cmp r0, #0 bne _0804245C adds r0, r4, #0 bl sub_08004274 _0804245C: ldr r0, [r4, #0x58] ldr r1, _0804249C @ =0x008000FF ands r0, r1 subs r1, #0xf3 cmp r0, r1 bne _08042480 adds r0, r4, #0 movs r1, #0xc bl sub_08004260 bl sub_08000E50 movs r1, #0x78 ands r0, r1 adds r0, #0x78 adds r1, r4, #0 adds r1, #0x59 strb r0, [r1] _08042480: ldr r0, [r4, #0x64] ldr r0, [r0] adds r1, r4, #0 movs r2, #0 movs r3, #1 bl sub_0806FA90 adds r1, r4, #0 adds r1, #0x63 ldrb r0, [r1] subs r0, #1 strb r0, [r1] pop {r4, pc} .align 2, 0 _0804249C: .4byte 0x008000FF thumb_func_start sub_080424A0 sub_080424A0: @ 0x080424A0 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x64] ldr r0, [r0] ldr r0, [r0, #4] cmp r0, #0 bne _080424B4 str r0, [r4, #0x64] bl sub_0805E780 _080424B4: ldrb r0, [r4, #0xc] cmp r0, #0 bne _080424C6 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0x12 bl sub_08004260 _080424C6: ldr r0, [r4, #0x64] ldr r0, [r0] movs r3, #1 rsbs r3, r3, #0 adds r1, r4, #0 movs r2, #0 bl sub_0806FA90 adds r1, r4, #0 adds r1, #0x63 ldrb r0, [r1] adds r0, #1 strb r0, [r1] adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0x12 bne _08042502 ldr r1, _08042504 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 ldr r1, _08042508 @ =gUnk_080D0EB0 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r4, #0x2e] adds r0, r0, r1 strh r0, [r4, #0x2e] _08042502: pop {r4, pc} .align 2, 0 _08042504: .4byte gUnk_03001160 _08042508: .4byte gUnk_080D0EB0 thumb_func_start sub_0804250C sub_0804250C: @ 0x0804250C push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x64] ldr r0, [r0] ldr r0, [r0, #4] cmp r0, #0 bne _08042520 str r0, [r4, #0x64] bl sub_0805E780 _08042520: ldrb r0, [r4, #0xc] cmp r0, #0 bne _08042532 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0x1c bl sub_08004260 _08042532: ldr r0, [r4, #0x64] ldr r0, [r0] movs r3, #1 rsbs r3, r3, #0 adds r1, r4, #0 movs r2, #0 bl sub_0806FA90 adds r1, r4, #0 adds r1, #0x63 ldrb r0, [r1] adds r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_08004274 pop {r4, pc} thumb_func_start sub_08042554 sub_08042554: @ 0x08042554 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _0804256C @ =gUnk_080D1230 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _0804256C: .4byte gUnk_080D1230 thumb_func_start sub_08042570 sub_08042570: @ 0x08042570 push {lr} ldr r2, _08042584 @ =gUnk_080D1248 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08042584: .4byte gUnk_080D1248 thumb_func_start sub_08042588 sub_08042588: @ 0x08042588 push {lr} ldr r1, _08042594 @ =gUnk_080D1230 bl sub_0804AA30 pop {pc} .align 2, 0 _08042594: .4byte gUnk_080D1230 thumb_func_start nullsub_170 nullsub_170: @ 0x08042598 bx lr .align 2, 0 thumb_func_start sub_0804259C sub_0804259C: @ 0x0804259C push {lr} ldr r2, _080425B0 @ =gUnk_080D125C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080425B0: .4byte gUnk_080D125C thumb_func_start sub_080425B4 sub_080425B4: @ 0x080425B4 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_080437DC cmp r0, #0 beq _0804264C adds r0, r4, #0 adds r0, #0x7c movs r1, #0 strb r1, [r0] adds r0, #1 strb r1, [r0] ldr r5, _08042614 @ =gUnk_030010A0 adds r0, r5, #0 adds r0, #0x38 ldrb r0, [r0] movs r6, #1 adds r1, r6, #0 ands r1, r0 cmp r1, #0 beq _08042634 adds r0, r5, #0 adds r0, #0x3c ldrb r0, [r0] ldrb r1, [r4, #0xb] cmp r0, r1 bne _08042620 adds r0, r4, #0 bl sub_08043EB8 adds r0, r4, #0 bl sub_08043ABC adds r0, r5, #0 adds r0, #0x39 ldrb r1, [r0] ldrb r0, [r4, #0xb] adds r0, #2 asrs r1, r0 ands r1, r6 cmp r1, #0 beq _08042618 movs r0, #7 strb r0, [r4, #0xc] movs r0, #4 strb r0, [r4, #0xd] b _0804264C .align 2, 0 _08042614: .4byte gUnk_030010A0 _08042618: movs r0, #8 strb r0, [r4, #0xc] strb r1, [r4, #0xd] b _0804264C _08042620: adds r0, r4, #0 bl sub_08044000 adds r0, r4, #0 bl sub_08043BC8 adds r0, r4, #0 bl sub_08043A10 b _0804264C _08042634: strb r6, [r4, #0xc] strb r1, [r4, #0xd] ldr r2, [r4, #0x64] ldr r1, _08042650 @ =gUnk_080D1280 ldrb r0, [r4, #0xb] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r2, #0x20] adds r0, r4, #0 bl sub_08042654 _0804264C: pop {r4, r5, r6, pc} .align 2, 0 _08042650: .4byte gUnk_080D1280 thumb_func_start sub_08042654 sub_08042654: @ 0x08042654 push {r4, r5, r6, lr} adds r6, r0, #0 ldrb r0, [r6, #0xb] lsls r3, r0, #2 ldr r0, [r6, #0x64] adds r2, r0, #0 adds r2, #0x18 ldrb r0, [r6, #0xd] cmp r0, #4 bls _0804266A b _080427FC _0804266A: lsls r0, r0, #2 ldr r1, _08042674 @ =_08042678 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08042674: .4byte _08042678 _08042678: @ jump table .4byte _0804268C @ case 0 .4byte _080426B0 @ case 1 .4byte _080426E0 @ case 2 .4byte _08042710 @ case 3 .4byte _08042740 @ case 4 _0804268C: movs r0, #1 strb r0, [r6, #0xd] ldr r1, _080426A8 @ =gUnk_080D1284 ldrb r0, [r6, #0xb] adds r0, r0, r1 ldrb r0, [r0] strb r0, [r2, #1] ldr r1, _080426AC @ =gUnk_080D1286 ldrb r0, [r6, #0xb] lsls r0, r0, #2 adds r0, r0, r1 ldrb r1, [r0] adds r0, r6, #0 b _080427EE .align 2, 0 _080426A8: .4byte gUnk_080D1284 _080426AC: .4byte gUnk_080D1286 _080426B0: ldrh r0, [r2, #8] ldrh r1, [r2] adds r0, r0, r1 strh r0, [r2] ldr r1, [r6, #0x64] adds r1, #0x34 ldrb r0, [r1] adds r0, #2 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xb bhi _080426CC b _0804280E _080426CC: movs r0, #2 strb r0, [r6, #0xd] ldr r1, _080426DC @ =gUnk_080D1286 adds r0, r3, #1 adds r0, r0, r1 ldrb r1, [r0] adds r0, r6, #0 b _080427EE .align 2, 0 _080426DC: .4byte gUnk_080D1286 _080426E0: ldrh r0, [r2, #8] ldrh r1, [r2] adds r0, r0, r1 strh r0, [r2] ldr r1, [r6, #0x64] adds r1, #0x44 ldrb r0, [r1] adds r0, #2 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xd bhi _080426FC b _0804280E _080426FC: movs r0, #3 strb r0, [r6, #0xd] ldr r1, _0804270C @ =gUnk_080D1286 adds r0, r3, #2 adds r0, r0, r1 ldrb r1, [r0] adds r0, r6, #0 b _080427EE .align 2, 0 _0804270C: .4byte gUnk_080D1286 _08042710: ldrh r0, [r2, #8] ldrh r1, [r2] adds r0, r0, r1 strh r0, [r2] ldr r1, [r6, #0x64] adds r1, #0x54 ldrb r0, [r1] adds r0, #2 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xf bls _0804280E movs r0, #4 strb r0, [r6, #0xd] ldr r1, _0804273C @ =gUnk_080D1286 adds r0, r3, #3 adds r0, r0, r1 ldrb r1, [r0] adds r0, r6, #0 b _080427EE .align 2, 0 _0804273C: .4byte gUnk_080D1286 _08042740: ldrh r0, [r2, #8] ldrh r1, [r2] adds r0, r0, r1 strh r0, [r2] ldr r1, [r6, #0x64] adds r1, #0x64 ldrb r0, [r1] adds r0, #2 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x1b bls _0804280E movs r0, #5 strb r0, [r6, #0xd] movs r0, #0x5a strb r0, [r6, #0xe] ldr r0, [r6, #0x64] ldr r1, [r0] ldrb r0, [r1, #0x10] movs r5, #0x80 orrs r0, r5 strb r0, [r1, #0x10] ldr r0, [r6, #0x64] ldr r1, [r0] adds r1, #0x29 ldrb r2, [r1] movs r3, #8 rsbs r3, r3, #0 adds r0, r3, #0 ands r0, r2 movs r4, #4 orrs r0, r4 strb r0, [r1] ldr r0, [r6, #0x64] ldr r1, [r0, #4] ldrb r0, [r1, #0x10] orrs r0, r5 strb r0, [r1, #0x10] ldr r0, [r6, #0x64] ldr r1, [r0, #4] adds r1, #0x29 ldrb r2, [r1] adds r0, r3, #0 ands r0, r2 orrs r0, r4 strb r0, [r1] ldr r0, [r6, #0x64] ldr r1, [r0, #8] ldrb r0, [r1, #0x10] orrs r0, r5 strb r0, [r1, #0x10] ldr r0, [r6, #0x64] ldr r1, [r0, #8] adds r1, #0x29 ldrb r2, [r1] adds r0, r3, #0 ands r0, r2 orrs r0, r4 strb r0, [r1] ldr r0, [r6, #0x64] ldr r1, [r0, #0xc] ldrb r0, [r1, #0x10] orrs r0, r5 strb r0, [r1, #0x10] ldr r0, [r6, #0x64] ldr r1, [r0, #0xc] adds r1, #0x29 ldrb r2, [r1] adds r0, r3, #0 ands r0, r2 orrs r0, r4 strb r0, [r1] ldr r0, [r6, #0x64] ldr r1, [r0, #0x10] ldrb r0, [r1, #0x10] orrs r0, r5 strb r0, [r1, #0x10] ldr r0, [r6, #0x64] ldr r0, [r0, #0x10] adds r0, #0x29 ldrb r1, [r0] ands r3, r1 orrs r3, r4 strb r3, [r0] adds r0, r6, #0 movs r1, #7 _080427EE: bl sub_080042AC movs r0, #0xaf lsls r0, r0, #1 bl sub_080A3268 b _0804280E _080427FC: ldrb r0, [r6, #0xe] subs r0, #1 strb r0, [r6, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0804280E adds r0, r6, #0 bl sub_08043BC8 _0804280E: adds r0, r6, #0 bl sub_08043A10 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08042818 sub_08042818: @ 0x08042818 push {r4, lr} adds r4, r0, #0 bl sub_08043CD4 ldr r0, [r4, #0x64] adds r2, r0, #0 adds r2, #0x18 ldrh r1, [r2, #8] ldrh r3, [r0, #0x18] adds r1, r1, r3 strh r1, [r0, #0x18] ldrb r0, [r2, #0xd] subs r0, #1 strb r0, [r2, #0xd] movs r1, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _08042848 movs r0, #0x78 strb r0, [r2, #0xd] movs r3, #8 ldrsh r0, [r2, r3] rsbs r0, r0, #0 strh r0, [r2, #8] _08042848: ldrh r0, [r2, #0xa] ldrh r3, [r2, #4] adds r0, r0, r3 strh r0, [r2, #4] ldrb r0, [r2, #0xe] subs r0, #1 strb r0, [r2, #0xe] ands r0, r1 cmp r0, #0 bne _08042868 movs r0, #0x50 strb r0, [r2, #0xe] movs r1, #0xa ldrsh r0, [r2, r1] rsbs r0, r0, #0 strh r0, [r2, #0xa] _08042868: adds r0, r4, #0 bl sub_08043A10 pop {r4, pc} thumb_func_start sub_08042870 sub_08042870: @ 0x08042870 push {r4, lr} adds r4, r0, #0 bl sub_08043CD4 ldr r1, _08042890 @ =gUnk_080D1290 ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_08043A10 pop {r4, pc} .align 2, 0 _08042890: .4byte gUnk_080D1290 thumb_func_start sub_08042894 sub_08042894: @ 0x08042894 movs r1, #1 strb r1, [r0, #0xd] ldr r2, [r0, #0x64] ldr r1, _080428A8 @ =gUnk_080D12AC ldrb r0, [r0, #0xb] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r2, #0x20] bx lr .align 2, 0 _080428A8: .4byte gUnk_080D12AC thumb_func_start sub_080428AC sub_080428AC: @ 0x080428AC push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x64] adds r3, r0, #0 adds r3, #0x18 ldrb r0, [r3, #5] cmp r0, #0x40 beq _080428CC cmp r0, #0x40 bls _080428C6 ldrh r0, [r3, #4] subs r0, #0x80 b _080428CA _080428C6: ldrh r0, [r3, #4] adds r0, #0x80 _080428CA: strh r0, [r3, #4] _080428CC: ldrb r1, [r3, #1] ldr r2, _080428E8 @ =gUnk_080D12B0 ldrb r0, [r4, #0xb] adds r0, r0, r2 ldrb r0, [r0] subs r1, r1, r0 adds r1, #1 cmp r1, #2 bls _080428EC ldrh r0, [r3, #8] ldrh r1, [r3] adds r0, r0, r1 strh r0, [r3] b _080428F4 .align 2, 0 _080428E8: .4byte gUnk_080D12B0 _080428EC: movs r0, #2 strb r0, [r4, #0xd] movs r0, #0x1e strb r0, [r4, #0xe] _080428F4: adds r0, r4, #0 bl sub_08043BF0 pop {r4, pc} thumb_func_start sub_080428FC sub_080428FC: @ 0x080428FC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0804293C movs r0, #3 strb r0, [r4, #0xd] ldr r1, [r4, #0x64] adds r1, #0x18 movs r0, #8 ldrsh r2, [r1, r0] lsls r0, r2, #1 adds r0, r0, r2 rsbs r0, r0, #0 strh r0, [r1, #8] ldr r0, _08042940 @ =0x00000153 bl sub_080A3268 movs r2, #0 movs r3, #0x3b _0804292A: ldr r0, [r4, #0x64] lsls r1, r2, #2 adds r0, r0, r1 ldr r0, [r0] adds r0, #0x3f strb r3, [r0] adds r2, #1 cmp r2, #4 bls _0804292A _0804293C: pop {r4, pc} .align 2, 0 _08042940: .4byte 0x00000153 thumb_func_start sub_08042944 sub_08042944: @ 0x08042944 push {lr} adds r3, r0, #0 ldr r2, [r3, #0x64] adds r1, r2, #0 adds r1, #0x18 ldrb r0, [r1, #1] subs r0, #0x7c cmp r0, #8 bls _08042960 ldrh r0, [r1, #8] ldrh r1, [r2, #0x18] adds r0, r0, r1 strh r0, [r2, #0x18] b _08042968 _08042960: movs r0, #4 strb r0, [r3, #0xd] ldrh r0, [r1, #8] strh r0, [r3, #0x24] _08042968: adds r0, r3, #0 bl sub_08043BF0 pop {pc} thumb_func_start sub_08042970 sub_08042970: @ 0x08042970 push {r4, r5, lr} adds r3, r0, #0 ldr r4, [r3, #0x64] adds r2, r4, #0 adds r2, #0x18 ldrb r0, [r2, #1] ldr r1, _080429A4 @ =gUnk_080D12B2 ldrb r5, [r3, #0xb] adds r1, r5, r1 ldrb r1, [r1] subs r0, r0, r1 adds r0, #2 cmp r0, #4 bls _080429AC ldr r0, _080429A8 @ =gUnk_080D12B4 adds r0, r5, r0 movs r1, #0 ldrsb r1, [r0, r1] ldrh r0, [r2, #8] adds r1, r1, r0 strh r1, [r2, #8] ldrh r0, [r4, #0x18] adds r0, r0, r1 strh r0, [r4, #0x18] b _080429CA .align 2, 0 _080429A4: .4byte gUnk_080D12B2 _080429A8: .4byte gUnk_080D12B4 _080429AC: movs r0, #5 strb r0, [r3, #0xd] movs r0, #0x3c strb r0, [r3, #0xe] movs r2, #0 movs r4, #0x39 _080429B8: ldr r0, [r3, #0x64] lsls r1, r2, #2 adds r0, r0, r1 ldr r0, [r0] adds r0, #0x3f strb r4, [r0] adds r2, #1 cmp r2, #4 bls _080429B8 _080429CA: adds r0, r3, #0 bl sub_08043BF0 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080429D4 sub_080429D4: @ 0x080429D4 push {r4, lr} adds r1, r0, #0 ldrb r0, [r1, #0xe] subs r0, #1 strb r0, [r1, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080429FA movs r0, #6 strb r0, [r1, #0xd] ldr r4, [r1, #0x64] adds r4, #0x18 movs r2, #0x24 ldrsh r0, [r1, r2] rsbs r0, r0, #0 movs r1, #6 bl __divsi3 strh r0, [r4, #8] _080429FA: pop {r4, pc} thumb_func_start sub_080429FC sub_080429FC: @ 0x080429FC push {r4, r5, lr} adds r4, r0, #0 ldr r3, [r4, #0x64] adds r5, r3, #0 adds r5, #0x18 ldrb r1, [r5, #1] ldr r2, _08042A28 @ =gUnk_080D12B6 ldrb r0, [r4, #0xb] adds r0, r0, r2 ldrb r0, [r0] subs r1, r1, r0 adds r1, #1 cmp r1, #2 bls _08042A2C ldrh r0, [r5, #8] ldrh r1, [r3, #0x18] adds r0, r0, r1 strh r0, [r3, #0x18] adds r0, r4, #0 bl sub_08043BF0 b _08042A3A .align 2, 0 _08042A28: .4byte gUnk_080D12B6 _08042A2C: adds r0, r4, #0 bl sub_08043BC8 adds r0, r4, #0 movs r1, #7 bl sub_080042AC _08042A3A: pop {r4, r5, pc} thumb_func_start sub_08042A3C sub_08042A3C: @ 0x08042A3C push {r4, lr} adds r4, r0, #0 ldr r1, _08042A68 @ =gUnk_080D12B8 ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_08043A10 ldr r0, [r4, #0x64] ldr r1, [r0, #0x10] adds r4, #0x78 ldrh r0, [r1, #0x36] ldrb r4, [r4] adds r0, r0, r4 strh r0, [r1, #0x36] pop {r4, pc} .align 2, 0 _08042A68: .4byte gUnk_080D12B8 thumb_func_start sub_08042A6C sub_08042A6C: @ 0x08042A6C adds r3, r0, #0 movs r2, #0 movs r1, #1 strb r1, [r3, #0xd] adds r0, #0x78 strb r2, [r0] adds r0, #6 strb r1, [r0] ldr r1, [r3, #0x64] movs r0, #0x80 lsls r0, r0, #2 strh r0, [r1, #0x22] bx lr .align 2, 0 thumb_func_start sub_08042A88 sub_08042A88: @ 0x08042A88 push {r4, lr} adds r4, r0, #0 ldr r3, [r4, #0x64] adds r2, r3, #0 adds r2, #0x18 ldr r1, _08042AA8 @ =gUnk_080D12C8 ldrb r0, [r4, #0xb] adds r0, r0, r1 ldrb r1, [r0] ldrb r0, [r2, #1] cmp r1, r0 beq _08042ABC cmp r1, r0 bhs _08042AB0 ldr r1, _08042AAC @ =0xFFFFFF00 b _08042AB4 .align 2, 0 _08042AA8: .4byte gUnk_080D12C8 _08042AAC: .4byte 0xFFFFFF00 _08042AB0: movs r1, #0x80 lsls r1, r1, #1 _08042AB4: adds r0, r1, #0 ldrh r1, [r3, #0x18] adds r0, r0, r1 strh r0, [r3, #0x18] _08042ABC: movs r1, #0xa ldrsh r0, [r2, r1] ldrh r1, [r2, #4] cmp r0, r1 bge _08042ACE ldrh r0, [r2, #0xa] subs r0, r1, r0 strh r0, [r2, #4] b _08042AE6 _08042ACE: movs r0, #0 strh r0, [r2, #4] ldr r1, _08042AE8 @ =gUnk_080D12CA ldrb r0, [r4, #0xb] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r2, #8] movs r0, #2 strb r0, [r4, #0xd] movs r0, #0x1e strb r0, [r4, #0xe] _08042AE6: pop {r4, pc} .align 2, 0 _08042AE8: .4byte gUnk_080D12CA thumb_func_start sub_08042AEC sub_08042AEC: @ 0x08042AEC push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08042B1C movs r0, #3 strb r0, [r5, #0xd] movs r0, #4 strb r0, [r5, #0xe] adds r0, r5, #0 adds r0, #0x3f movs r4, #0x3d strb r4, [r0] adds r0, r5, #0 movs r1, #0xe bl sub_080042AC ldr r0, [r5, #0x64] ldr r0, [r0, #4] adds r0, #0x3f strb r4, [r0] _08042B1C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08042B20 sub_08042B20: @ 0x08042B20 push {r4, r5, r6, r7, lr} adds r5, r0, #0 ldr r0, [r5, #0x64] adds r1, r0, #0 adds r1, #0x18 ldrb r0, [r1, #5] cmp r0, #0x7a bhi _08042B3E movs r2, #0xa0 lsls r2, r2, #3 adds r0, r2, #0 ldrh r2, [r1, #4] adds r0, r0, r2 strh r0, [r1, #4] b _08042B42 _08042B3E: movs r0, #0x80 strb r0, [r1, #5] _08042B42: ldrb r0, [r1, #5] cmp r0, #0x30 bls _08042B50 ldrh r0, [r1, #8] ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] _08042B50: ldr r0, [r5, #0x64] ldr r0, [r0, #0xc] ldrb r0, [r0, #0x18] lsls r0, r0, #0x1e cmp r0, #0 beq _08042BE0 adds r0, r5, #0 bl sub_08043C40 movs r6, #0 movs r7, #0xa rsbs r7, r7, #0 _08042B68: ldr r0, [r5, #0x64] lsls r1, r6, #2 adds r0, r0, r1 ldr r4, [r0] movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, r7 blt _08042BD4 ldrb r0, [r4, #0x18] lsls r0, r0, #0x1e lsrs r0, r0, #0x1e cmp r0, #1 bne _08042BD4 cmp r6, #0 bne _08042BBA movs r0, #0xaf movs r1, #0 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _08042B9C ldr r0, [r5, #0x64] ldr r0, [r0, #0x10] str r0, [r1, #0x50] _08042B9C: ldr r0, [r5, #0x64] ldr r0, [r0, #0x10] str r1, [r0, #0x68] movs r0, #0xaf movs r1, #2 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _08042BBA ldr r0, [r5, #0x64] ldr r0, [r0, #0x10] bl sub_0806FA24 _08042BBA: ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrb r0, [r4, #0x18] movs r2, #4 rsbs r2, r2, #0 adds r1, r2, #0 ands r0, r1 strb r0, [r4, #0x18] ldr r0, _08042BDC @ =0x00000161 bl sub_080A3268 _08042BD4: adds r6, #1 cmp r6, #3 bls _08042B68 b _08042C12 .align 2, 0 _08042BDC: .4byte 0x00000161 _08042BE0: adds r0, r5, #0 adds r0, #0x78 ldrb r1, [r0] adds r1, #2 strb r1, [r0] ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _08042C12 movs r0, #5 strb r0, [r5, #0xc] strb r1, [r5, #0xd] movs r0, #0x1e strb r0, [r5, #0xe] adds r0, r5, #0 adds r0, #0x3f movs r1, #0x39 strb r1, [r0] ldr r0, [r5, #0x64] ldr r0, [r0, #4] adds r0, #0x3f strb r1, [r0] _08042C12: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08042C14 sub_08042C14: @ 0x08042C14 push {r4, lr} adds r4, r0, #0 ldr r1, _08042C30 @ =gUnk_080D12D0 ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_08043A78 pop {r4, pc} .align 2, 0 _08042C30: .4byte gUnk_080D12D0 thumb_func_start sub_08042C34 sub_08042C34: @ 0x08042C34 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #4 adds r7, r0, #0 ldrb r0, [r7, #0xe] subs r0, #1 strb r0, [r7, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08042D0C movs r0, #0x3c strb r0, [r7, #0xe] movs r0, #3 strb r0, [r7, #0xf] movs r0, #1 strb r0, [r7, #0xd] bl sub_08000E50 movs r1, #6 ands r1, r0 ldr r0, _08042D14 @ =gUnk_080D12F8 adds r1, r1, r0 ldr r3, _08042D18 @ =gUnk_03001160 movs r0, #0x2e ldrsh r2, [r3, r0] movs r0, #0 ldrsb r0, [r1, r0] adds r6, r2, r0 movs r0, #0x32 ldrsh r2, [r3, r0] movs r0, #1 ldrsb r0, [r1, r0] adds r5, r2, r0 ldr r3, _08042D1C @ =gUnk_03000BF0 ldrh r2, [r3, #6] adds r0, r2, #0 adds r0, #0x20 cmp r0, r6 ble _08042C86 adds r6, r0, #0 _08042C86: ldrh r0, [r3, #0x1e] adds r0, r2, r0 subs r0, #0x20 cmp r0, r6 bge _08042C92 adds r6, r0, #0 _08042C92: ldrh r1, [r3, #8] adds r0, r1, #0 adds r0, #0x20 cmp r0, r5 ble _08042C9E adds r5, r0, #0 _08042C9E: ldrh r0, [r3, #0x20] adds r0, r1, r0 subs r0, #0x40 cmp r0, r5 bge _08042CAA adds r5, r0, #0 _08042CAA: subs r0, r6, r2 subs r0, #0x90 cmp r0, #0x40 bhi _08042CC2 subs r0, r5, r1 subs r0, #8 cmp r0, #0x40 bhi _08042CC2 adds r6, r2, #0 adds r6, #0xb0 adds r5, r1, #0 adds r5, #0x40 _08042CC2: movs r4, #0 mov r8, r4 movs r3, #0x18 _08042CC8: ldr r0, [r7, #0x64] lsls r1, r4, #2 adds r0, r0, r1 ldr r2, [r0] strh r6, [r2, #0x2e] strh r5, [r2, #0x32] movs r0, #0x32 strh r0, [r2, #0x36] adds r1, r2, #0 adds r1, #0x3f movs r0, #0x39 strb r0, [r1] ldr r1, [r7, #0x64] adds r1, r1, r3 movs r0, #0x80 strh r0, [r1] mov r0, r8 strh r0, [r1, #4] ldr r0, _08042D20 @ =gUnk_080D1419 adds r0, r4, r0 ldrb r0, [r0] strb r0, [r1, #0xc] cmp r4, #0 beq _08042D04 adds r0, r2, #0 movs r1, #0x12 str r3, [sp] bl sub_08004260 ldr r3, [sp] _08042D04: adds r3, #0x10 adds r4, #1 cmp r4, #3 bls _08042CC8 _08042D0C: add sp, #4 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08042D14: .4byte gUnk_080D12F8 _08042D18: .4byte gUnk_03001160 _08042D1C: .4byte gUnk_03000BF0 _08042D20: .4byte gUnk_080D1419 thumb_func_start sub_08042D24 sub_08042D24: @ 0x08042D24 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08042D68 movs r0, #2 strb r0, [r4, #0xd] adds r0, r4, #0 adds r0, #0x3f movs r1, #0x3d strb r1, [r0] ldr r0, [r4, #0x64] ldr r0, [r0, #4] adds r0, #0x3f strb r1, [r0] movs r0, #0xaf movs r1, #1 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _08042D5E ldr r0, [r4, #0x64] ldr r0, [r0, #0xc] str r0, [r1, #0x50] _08042D5E: str r1, [r4, #0x68] adds r0, r4, #0 movs r1, #0xd bl sub_080042AC _08042D68: pop {r4, pc} .align 2, 0 thumb_func_start sub_08042D6C sub_08042D6C: @ 0x08042D6C push {r4, r5, r6, lr} adds r5, r0, #0 movs r6, #0 _08042D72: ldr r0, [r5, #0x64] lsls r1, r6, #2 adds r0, r0, r1 ldr r4, [r0] movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #3 bgt _08042DC4 cmp r6, #2 beq _08042D8E ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] _08042D8E: ldrb r0, [r4, #0x18] lsls r0, r0, #0x1e cmp r0, #0 bne _08042DB4 movs r0, #0xaf movs r1, #2 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _08042DB4 adds r0, r4, #0 bl sub_0806FA24 movs r0, #0xb3 lsls r0, r0, #1 bl sub_080A3268 _08042DB4: 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] _08042DC4: adds r6, #1 cmp r6, #3 bls _08042D72 ldr r0, [r5, #0x64] ldr r4, [r0, #0xc] ldrh r2, [r4, #0x36] movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #3 rsbs r0, r0, #0 cmp r1, r0 bgt _08042E28 ldr r0, _08042E20 @ =0x0000FFFB strh r0, [r4, #0x36] ldr r2, [r5, #0x64] ldr r1, _08042E24 @ =gUnk_080D1300 ldrb r0, [r5, #0xb] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r2, #0x20] ldr r1, [r5, #0x64] movs r0, #0xc0 strh r0, [r1, #0x22] movs r0, #3 strb r0, [r5, #0xd] movs r0, #0x1e strb r0, [r5, #0xe] adds r0, r5, #0 adds r0, #0x3f movs r4, #0x39 strb r4, [r0] adds r1, r5, #0 adds r1, #0x7f movs r0, #0x2d strb r0, [r1] adds r0, r5, #0 movs r1, #0 bl sub_080042AC ldr r0, [r5, #0x64] ldr r0, [r0, #4] adds r0, #0x3f strb r4, [r0] b _08042E2C .align 2, 0 _08042E20: .4byte 0x0000FFFB _08042E24: .4byte gUnk_080D1300 _08042E28: subs r0, r2, #2 strh r0, [r4, #0x36] _08042E2C: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08042E30 sub_08042E30: @ 0x08042E30 push {r4, r5, r6, r7, lr} adds r6, r0, #0 adds r1, r6, #0 adds r1, #0x7f ldrb r0, [r1] cmp r0, #0 bne _08042E4A adds r0, r6, #0 bl sub_08043C98 cmp r0, #0 bne _08042EF0 b _08042E4E _08042E4A: subs r0, #1 strb r0, [r1] _08042E4E: ldr r7, [r6, #0x64] adds r5, r7, #0 adds r5, #0x18 ldrb r0, [r6, #0xe] subs r0, #1 strb r0, [r6, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08042EB2 movs r0, #4 strb r0, [r6, #0xd] bl sub_08000E50 movs r1, #0x38 ands r0, r1 adds r0, #0x28 strb r0, [r6, #0xe] movs r0, #0x80 lsls r0, r0, #2 strh r0, [r6, #0x24] ldrb r0, [r5, #1] lsrs r0, r0, #3 strb r0, [r6, #0x15] movs r1, #0x2e ldrsh r0, [r6, r1] movs r2, #0x32 ldrsh r1, [r6, r2] ldr r3, _08042ED4 @ =gUnk_03000BF0 ldrh r2, [r3, #6] movs r4, #0x88 lsls r4, r4, #1 adds r2, r2, r4 ldrh r3, [r3, #8] adds r3, #0x60 bl sub_080045D4 adds r4, r0, #0 bl sub_08000E50 ldr r2, _08042ED8 @ =gUnk_080D1304 movs r1, #7 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] adds r0, r0, r4 movs r1, #0x1f ands r0, r1 adds r1, r6, #0 adds r1, #0x79 strb r0, [r1] _08042EB2: ldrh r0, [r5, #8] ldrh r1, [r7, #0x18] adds r0, r0, r1 strh r0, [r7, #0x18] ldrh r0, [r5, #0xa] ldrh r2, [r5, #4] adds r1, r0, r2 strh r1, [r5, #4] lsls r0, r0, #0x10 cmp r0, #0 ble _08042EDC ldrb r0, [r5, #5] cmp r0, #0x18 bls _08042EEA movs r4, #0xa ldrsh r0, [r5, r4] b _08042EE6 .align 2, 0 _08042ED4: .4byte gUnk_03000BF0 _08042ED8: .4byte gUnk_080D1304 _08042EDC: ldrb r0, [r5, #5] cmp r0, #3 bhi _08042EEA movs r1, #0xa ldrsh r0, [r5, r1] _08042EE6: rsbs r0, r0, #0 strh r0, [r5, #0xa] _08042EEA: adds r0, r6, #0 bl sub_080042B8 _08042EF0: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08042EF4 sub_08042EF4: @ 0x08042EF4 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_08043C98 cmp r0, #0 bne _08042FCE ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08042F4E ldr r0, _08042F38 @ =gUnk_03001160 movs r2, #0x2e ldrsh r1, [r0, r2] movs r3, #0x32 ldrsh r2, [r0, r3] adds r0, r4, #0 movs r3, #0x50 bl sub_0806FCB8 cmp r0, #0 beq _08042F3C movs r0, #6 strb r0, [r4, #0xd] movs r0, #0x28 strb r0, [r4, #0xe] b _08042F4E .align 2, 0 _08042F38: .4byte gUnk_03001160 _08042F3C: movs r0, #5 strb r0, [r4, #0xd] adds r0, r4, #0 movs r1, #0xf bl sub_080042AC ldr r0, _08042FD4 @ =0x0000019B bl sub_080A3268 _08042F4E: ldr r0, [r4, #0x64] adds r7, r0, #0 adds r7, #0x18 ldrb r0, [r7, #5] cmp r0, #0x1f bhi _08042F66 movs r1, #0x80 lsls r1, r1, #1 adds r0, r1, #0 ldrh r2, [r7, #4] adds r0, r0, r2 strh r0, [r7, #4] _08042F66: ldr r0, [r4, #0x50] movs r1, #0x2e ldrsh r3, [r0, r1] mov r8, r3 movs r2, #0x32 ldrsh r0, [r0, r2] adds r6, r0, #0 subs r6, #0x10 adds r0, r4, #0 mov r1, r8 adds r2, r6, #0 movs r3, #0x30 bl sub_0806FCB8 adds r5, r4, #0 adds r5, #0x79 cmp r0, #0 beq _08042FAC movs r3, #0x2e ldrsh r0, [r4, r3] movs r2, #0x32 ldrsh r1, [r4, r2] mov r2, r8 adds r3, r6, #0 bl sub_080045D4 adds r1, r0, #0 ldrb r0, [r5] subs r0, r0, r1 adds r0, #4 cmp r0, #8 bhi _08042FAC movs r0, #0x10 eors r1, r0 strb r1, [r5] _08042FAC: ldrb r0, [r5] ldrb r3, [r4, #0x15] cmp r0, r3 beq _08042FC2 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 ldrb r0, [r4, #0x15] lsls r0, r0, #3 strb r0, [r7, #1] _08042FC2: ldr r0, [r4, #0x64] ldr r0, [r0, #0xc] ldrb r1, [r4, #0x15] strb r1, [r0, #0x15] bl sub_080AEF88 _08042FCE: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08042FD4: .4byte 0x0000019B thumb_func_start sub_08042FD8 sub_08042FD8: @ 0x08042FD8 push {r4, r5, r6, lr} adds r5, r0, #0 bl sub_080042B8 adds r0, r5, #0 bl sub_08043C98 cmp r0, #0 bne _08043046 adds r6, r5, #0 adds r6, #0x5a ldrb r1, [r6] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08043018 movs r0, #0x20 bl sub_080A7EE0 adds r4, r0, #0 cmp r4, #0 beq _08043046 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 ldrh r0, [r4, #0x36] subs r0, #0x18 movs r1, #0 strh r0, [r4, #0x36] strb r1, [r6] b _08043046 _08043018: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08043046 ldrb r0, [r5, #0xf] subs r0, #1 strb r0, [r5, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08043036 movs r0, #8 strb r0, [r5, #0xd] movs r0, #0x3c strb r0, [r5, #0xe] b _08043046 _08043036: movs r0, #3 strb r0, [r5, #0xd] movs r0, #0x3c strb r0, [r5, #0xe] adds r0, r5, #0 movs r1, #0 bl sub_080042AC _08043046: pop {r4, r5, r6, pc} thumb_func_start sub_08043048 sub_08043048: @ 0x08043048 push {r4, lr} adds r4, r0, #0 bl sub_08043C98 cmp r0, #0 bne _080430CC ldr r2, [r4, #0x64] adds r1, r2, #0 adds r1, #0x18 ldrb r0, [r1, #5] cmp r0, #0x4f bhi _08043094 movs r2, #0x80 lsls r2, r2, #2 adds r0, r2, #0 ldrh r3, [r1, #4] adds r0, r0, r3 strh r0, [r1, #4] ldrb r0, [r1, #5] cmp r0, #0x4f bls _080430C6 movs r2, #0 movs r3, #0x3b _08043076: ldr r0, [r4, #0x64] lsls r1, r2, #2 adds r0, r0, r1 ldr r0, [r0] adds r0, #0x3f strb r3, [r0] adds r2, #1 cmp r2, #4 bls _08043076 ldr r0, _08043090 @ =0x00000153 bl sub_080A3268 b _080430C6 .align 2, 0 _08043090: .4byte 0x00000153 _08043094: movs r3, #8 ldrsh r0, [r1, r3] lsls r0, r0, #3 ldrh r1, [r2, #0x18] adds r0, r0, r1 strh r0, [r2, #0x18] ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080430C6 movs r0, #7 strb r0, [r4, #0xd] movs r2, #0 movs r3, #0x39 _080430B4: ldr r0, [r4, #0x64] lsls r1, r2, #2 adds r0, r0, r1 ldr r0, [r0] adds r0, #0x3f strb r3, [r0] adds r2, #1 cmp r2, #4 bls _080430B4 _080430C6: adds r0, r4, #0 bl sub_08043B9C _080430CC: pop {r4, pc} .align 2, 0 thumb_func_start sub_080430D0 sub_080430D0: @ 0x080430D0 push {r4, lr} adds r4, r0, #0 bl sub_08043C98 cmp r0, #0 bne _08043128 ldr r1, [r4, #0x64] adds r2, r1, #0 adds r2, #0x18 ldrh r0, [r2, #8] ldrh r3, [r1, #0x18] adds r0, r0, r3 strh r0, [r1, #0x18] ldr r1, _08043110 @ =0xFFFFFF00 adds r0, r1, #0 ldrh r3, [r2, #4] adds r0, r0, r3 strh r0, [r2, #4] ldrb r0, [r2, #5] cmp r0, #0x17 bhi _08043128 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08043114 movs r0, #8 strb r0, [r4, #0xd] movs r0, #0x3c strb r0, [r4, #0xe] b _08043128 .align 2, 0 _08043110: .4byte 0xFFFFFF00 _08043114: movs r0, #3 strb r0, [r4, #0xd] movs r0, #0x3c strb r0, [r4, #0xe] ldr r0, _0804312C @ =0x0000FF40 strh r0, [r2, #0xa] adds r0, r4, #0 movs r1, #0 bl sub_080042AC _08043128: pop {r4, pc} .align 2, 0 _0804312C: .4byte 0x0000FF40 thumb_func_start sub_08043130 sub_08043130: @ 0x08043130 push {r4, r5, r6, r7, lr} adds r6, r0, #0 ldr r1, [r6, #0x64] adds r4, r1, #0 adds r4, #0x18 ldrb r0, [r4, #5] cmp r0, #0 beq _08043160 adds r0, r6, #0 bl sub_08043C98 cmp r0, #0 bne _080431E0 ldrb r0, [r4, #5] subs r0, #1 strb r0, [r4, #5] lsls r0, r0, #0x18 cmp r0, #0 bne _080431E0 adds r0, r6, #0 movs r1, #0xd bl sub_080042AC b _080431E0 _08043160: ldrb r0, [r6, #0xe] cmp r0, #0 beq _08043186 subs r0, #1 strb r0, [r6, #0xe] movs r5, #1 movs r1, #0x28 _0804316E: ldr r0, [r6, #0x64] adds r4, r0, r1 ldrb r0, [r4, #5] cmp r0, #0 beq _0804317C subs r0, #1 strb r0, [r4, #5] _0804317C: adds r1, #0x10 adds r5, #1 cmp r5, #3 bls _0804316E b _080431E0 _08043186: ldr r1, [r1, #0xc] ldrh r0, [r1, #0x36] adds r0, #3 strh r0, [r1, #0x36] movs r5, #0 movs r7, #4 rsbs r7, r7, #0 _08043194: ldr r0, [r6, #0x64] lsls r1, r5, #2 adds r0, r0, r1 ldr r4, [r0] movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, r7 ble _080431C4 ldrb r0, [r4, #0x10] movs r1, #0x7f ands r1, r0 strb r1, [r4, #0x10] ldrb r0, [r4, #0x18] lsls r0, r0, #0x1e lsrs r0, r0, #0x1e cmp r0, #1 bne _080431BC ldr r0, _080431E4 @ =0x00000161 bl sub_080A3268 _080431BC: ldrb r1, [r4, #0x18] adds r0, r7, #0 ands r0, r1 strb r0, [r4, #0x18] _080431C4: adds r5, #1 cmp r5, #3 bls _08043194 ldrb r0, [r6, #0x18] lsls r0, r0, #0x1e cmp r0, #0 bne _080431E0 movs r0, #9 strb r0, [r6, #0xd] movs r0, #0x3c strb r0, [r6, #0xe] adds r0, r6, #0 bl sub_0804AA1C _080431E0: pop {r4, r5, r6, r7, pc} .align 2, 0 _080431E4: .4byte 0x00000161 thumb_func_start sub_080431E8 sub_080431E8: @ 0x080431E8 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0804324E movs r0, #6 strb r0, [r4, #0xc] strb r1, [r4, #0xd] movs r5, #0 ldr r7, _08043250 @ =gUnk_080D130C movs r6, #0x18 _08043206: ldr r1, [r4, #0x64] adds r1, r1, r6 ldrb r0, [r4, #0xb] lsls r0, r0, #1 adds r0, r0, r7 ldrh r0, [r0] strh r0, [r1] movs r0, #0x80 lsls r0, r0, #8 strh r0, [r1, #4] ldr r0, _08043254 @ =gUnk_080D1414 adds r0, r5, r0 ldrb r0, [r0] strb r0, [r1, #0xc] cmp r5, #3 bne _08043230 ldr r0, [r4, #0x64] ldr r0, [r0, #0xc] movs r1, #0x11 bl sub_08004260 _08043230: adds r6, #0x10 adds r5, #1 cmp r5, #3 bls _08043206 ldr r2, [r4, #0x64] ldr r1, _08043258 @ =gUnk_080D1310 ldrb r0, [r4, #0xb] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r2, #0x20] adds r0, r4, #0 movs r1, #0xe bl sub_080042AC _0804324E: pop {r4, r5, r6, r7, pc} .align 2, 0 _08043250: .4byte gUnk_080D130C _08043254: .4byte gUnk_080D1414 _08043258: .4byte gUnk_080D1310 thumb_func_start sub_0804325C sub_0804325C: @ 0x0804325C push {r4, lr} adds r4, r0, #0 bl sub_08043CD4 ldr r0, _0804329C @ =gUnk_080D1314 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_08043A10 adds r2, r4, #0 adds r2, #0x78 ldrb r0, [r2] adds r1, r0, #0 cmp r1, #0 beq _080432A4 cmp r1, #2 bls _080432A0 subs r0, #2 strb r0, [r2] ldr r0, [r4, #0x64] ldr r1, [r0, #0x10] ldrh r0, [r1, #0x36] ldrb r2, [r2] adds r0, r0, r2 strh r0, [r1, #0x36] b _080432A4 .align 2, 0 _0804329C: .4byte gUnk_080D1314 _080432A0: movs r0, #0 strb r0, [r2] _080432A4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080432A8 sub_080432A8: @ 0x080432A8 push {r4, r5, r6, r7, lr} adds r4, r0, #0 movs r3, #3 movs r2, #0 ldr r0, [r4, #0x64] adds r1, r0, #0 adds r1, #0x48 ldrb r0, [r1, #0xc] cmp r0, #2 bls _080432C2 subs r0, #1 strb r0, [r1, #0xc] movs r2, #1 _080432C2: subs r3, #1 cmp r3, #0 blt _080432E0 lsls r0, r3, #4 adds r0, #0x18 ldr r1, [r4, #0x64] adds r1, r1, r0 ldrb r0, [r1, #0xc] cmp r0, #2 bls _080432C2 subs r0, #1 strb r0, [r1, #0xc] adds r2, #1 cmp r2, #1 ble _080432C2 _080432E0: ldr r0, [r4, #0x64] adds r1, r0, #0 adds r1, #0x18 ldrb r0, [r1, #5] subs r0, #2 strb r0, [r1, #5] movs r3, #0 movs r6, #0x80 movs r7, #4 rsbs r7, r7, #0 movs r5, #1 _080432F6: ldr r0, [r4, #0x64] lsls r1, r3, #2 adds r0, r0, r1 ldr r2, [r0] movs r1, #0x36 ldrsh r0, [r2, r1] cmp r0, #3 bgt _08043316 ldrb r0, [r2, #0x10] orrs r0, r6 strb r0, [r2, #0x10] ldrb r1, [r2, #0x18] adds r0, r7, #0 ands r0, r1 orrs r0, r5 strb r0, [r2, #0x18] _08043316: adds r3, #1 cmp r3, #3 ble _080432F6 ldr r1, [r4, #0x64] ldr r0, [r1] ldrb r0, [r0, #0x18] lsls r0, r0, #0x1e lsrs r2, r0, #0x1e cmp r2, #1 bne _08043348 adds r0, r1, #0 adds r0, #0x34 ldrb r0, [r0] cmp r0, #2 bhi _08043348 strb r2, [r4, #0xd] movs r0, #0x1e strb r0, [r4, #0xe] movs r0, #0x80 lsls r0, r0, #7 strh r0, [r1, #0x1c] ldr r0, [r4, #0x64] ldr r0, [r0, #0x10] bl sub_0804AA1C _08043348: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0804334C sub_0804334C: @ 0x0804334C push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08043388 subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0804341C movs r5, #0 movs r7, #0x80 movs r6, #4 rsbs r6, r6, #0 movs r3, #1 _0804336A: ldr r0, [r4, #0x64] lsls r1, r5, #2 adds r0, r0, r1 ldr r2, [r0] ldrb r0, [r2, #0x10] orrs r0, r7 strb r0, [r2, #0x10] ldrb r1, [r2, #0x18] adds r0, r6, #0 ands r0, r1 orrs r0, r3 strb r0, [r2, #0x18] adds r5, #1 cmp r5, #4 bls _0804336A _08043388: ldr r3, [r4, #0x64] adds r2, r3, #0 adds r2, #0x18 ldr r1, _080433AC @ =gUnk_080D131C ldrb r0, [r4, #0xb] adds r0, r0, r1 ldrb r0, [r0] ldrb r1, [r2, #1] subs r0, r0, r1 adds r0, #1 cmp r0, #2 bls _080433B0 ldrh r0, [r2, #8] ldrh r1, [r3, #0x18] adds r0, r0, r1 strh r0, [r3, #0x18] movs r7, #0 b _080433B2 .align 2, 0 _080433AC: .4byte gUnk_080D131C _080433B0: movs r7, #1 _080433B2: adds r0, r4, #0 bl sub_08043B9C movs r5, #0 movs r6, #0x18 _080433BC: ldr r0, [r4, #0x64] adds r2, r0, r6 ldr r0, _080433E4 @ =gUnk_080D1414 adds r0, r5, r0 ldrb r1, [r2, #0xc] ldrb r3, [r0] cmp r3, r1 bls _080433E8 adds r0, r1, #1 strb r0, [r2, #0xc] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r3, r0 bne _0804341C movs r0, #0xaf lsls r0, r0, #1 bl sub_080A3268 b _0804341C .align 2, 0 _080433E4: .4byte gUnk_080D1414 _080433E8: cmp r7, #0 beq _08043414 cmp r5, #4 bne _08043414 adds r0, r4, #0 bl sub_08043BC8 adds r0, r4, #0 movs r1, #7 bl sub_080042AC adds r1, r4, #0 adds r1, #0x7e ldrb r0, [r1] cmp r0, #0 beq _08043414 movs r0, #0 strb r0, [r1] ldr r0, [r4, #0x64] ldr r1, [r0, #0x14] movs r0, #2 strb r0, [r1, #0xd] _08043414: adds r6, #0x10 adds r5, #1 cmp r5, #4 bls _080433BC _0804341C: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08043420 sub_08043420: @ 0x08043420 push {r4, lr} adds r4, r0, #0 ldr r1, _0804343C @ =gUnk_080D1320 ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_08043ABC pop {r4, pc} .align 2, 0 _0804343C: .4byte gUnk_080D1320 thumb_func_start sub_08043440 sub_08043440: @ 0x08043440 push {r4, r5, r6, lr} adds r3, r0, #0 movs r2, #0 movs r5, #0 movs r6, #0 movs r4, #0x18 _0804344C: ldr r0, [r3, #0x64] adds r1, r0, r4 ldrb r0, [r1, #5] cmp r0, #0x10 bls _0804345E subs r0, #0x10 strb r0, [r1, #5] adds r5, #1 b _08043460 _0804345E: strh r6, [r1, #4] _08043460: adds r4, #0x10 adds r2, #1 cmp r2, #4 bls _0804344C cmp r5, #0 bne _0804348C movs r2, #0 movs r4, #0x80 lsls r4, r4, #8 _08043472: ldr r0, [r3, #0x64] lsls r1, r2, #4 adds r0, r0, r1 strh r4, [r0, #0x18] adds r2, #1 cmp r2, #4 bls _08043472 movs r0, #1 strb r0, [r3, #0xd] adds r0, r3, #0 movs r1, #0x10 bl sub_080042AC _0804348C: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08043490 sub_08043490: @ 0x08043490 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x64] ldr r0, [r0, #0x10] mov ip, r0 ldrh r1, [r0, #0x36] movs r2, #0x36 ldrsh r0, [r0, r2] movs r2, #4 rsbs r2, r2, #0 cmp r0, r2 bge _080434C4 movs r0, #0xc0 lsls r0, r0, #9 mov r3, ip str r0, [r3, #0x20] movs r0, #0 movs r1, #2 strb r1, [r4, #0xd] adds r2, r4, #0 adds r2, #0x7e strb r0, [r2] ldr r0, [r4, #0x64] ldr r0, [r0, #0x14] strb r1, [r0, #0xd] b _08043514 _080434C4: subs r0, r1, #2 mov r1, ip strh r0, [r1, #0x36] lsls r0, r0, #0x10 cmp r0, #0 bge _08043514 ldrb r0, [r1, #0x10] movs r3, #0x80 orrs r0, r3 strb r0, [r1, #0x10] ldrb r1, [r1, #0x18] adds r0, r2, #0 ands r0, r1 movs r1, #1 orrs r0, r1 mov r2, ip strb r0, [r2, #0x18] adds r2, #0x3c ldrb r1, [r2] movs r0, #0xef ands r0, r1 strb r0, [r2] mov r1, ip adds r1, #0x3f movs r0, #0x3a strb r0, [r1] ldr r0, _0804351C @ =gUnk_080FD450 mov r1, ip str r0, [r1, #0x48] ldr r0, [r4, #0x64] ldr r1, [r0, #8] ldrb r0, [r1, #0x10] orrs r3, r0 strb r3, [r1, #0x10] ldr r0, [r4, #0x64] ldr r2, [r0, #0xc] ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0x10] _08043514: adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 _0804351C: .4byte gUnk_080FD450 thumb_func_start sub_08043520 sub_08043520: @ 0x08043520 push {r4, r5, lr} adds r5, r0, #0 ldr r0, [r5, #0x64] ldr r4, [r0, #0x10] movs r1, #0xd0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 ldr r0, [r4, #0x20] cmp r0, #0 bge _08043556 movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #6 rsbs r0, r0, #0 cmp r1, r0 ble _08043556 ldr r0, _08043558 @ =0x0000FFFA strh r0, [r4, #0x36] movs r0, #3 strb r0, [r5, #0xd] adds r1, r5, #0 adds r1, #0x7a movs r0, #0xe1 lsls r0, r0, #2 strh r0, [r1] _08043556: pop {r4, r5, pc} .align 2, 0 _08043558: .4byte 0x0000FFFA thumb_func_start sub_0804355C sub_0804355C: @ 0x0804355C push {r4, lr} adds r4, r0, #0 bl sub_08043DB0 adds r1, r4, #0 adds r1, #0x7a ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08043578 movs r0, #4 strb r0, [r4, #0xd] _08043578: adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} thumb_func_start sub_08043580 sub_08043580: @ 0x08043580 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r0, [r4, #0x64] ldr r1, [r0, #0x10] ldrh r0, [r1, #0x36] adds r0, #3 strh r0, [r1, #0x36] movs r2, #0 movs r5, #4 rsbs r5, r5, #0 movs r6, #0x7f _08043596: ldr r0, [r4, #0x64] lsls r1, r2, #2 adds r0, r0, r1 ldr r3, [r0] movs r1, #0x36 ldrsh r0, [r3, r1] cmp r0, r5 ble _080435B6 ldrb r1, [r3, #0x10] adds r0, r6, #0 ands r0, r1 strb r0, [r3, #0x10] ldrb r1, [r3, #0x18] adds r0, r5, #0 ands r0, r1 strb r0, [r3, #0x18] _080435B6: adds r2, #1 cmp r2, #4 bls _08043596 ldrb r0, [r4, #0x18] lsls r0, r0, #0x1e cmp r0, #0 bne _080435EE movs r0, #5 strb r0, [r4, #0xd] movs r0, #0x3c strb r0, [r4, #0xe] ldr r0, [r4, #0x64] ldr r3, [r0, #0x10] adds r2, r3, #0 adds r2, #0x3c ldrb r1, [r2] movs r0, #0x10 orrs r0, r1 strb r0, [r2] adds r1, r3, #0 adds r1, #0x3f movs r0, #0x39 strb r0, [r1] ldr r0, _080435F0 @ =gUnk_080FD538 str r0, [r3, #0x48] adds r0, r4, #0 bl sub_0804AA1C _080435EE: pop {r4, r5, r6, pc} .align 2, 0 _080435F0: .4byte gUnk_080FD538 thumb_func_start sub_080435F4 sub_080435F4: @ 0x080435F4 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08043674 movs r0, #6 strb r0, [r4, #0xc] movs r0, #1 strb r0, [r4, #0xd] strb r0, [r4, #0xe] movs r5, #0 ldr r0, _08043658 @ =gUnk_080D1338 mov sb, r0 movs r0, #0 mov r8, r0 movs r6, #0x18 ldr r7, _0804365C @ =gUnk_080D133C _08043622: ldr r1, [r4, #0x64] adds r1, r1, r6 ldrb r0, [r4, #0xb] lsls r0, r0, #1 add r0, sb ldrh r0, [r0] strh r0, [r1] movs r0, #0x80 lsls r0, r0, #7 strh r0, [r1, #4] mov r0, r8 strb r0, [r1, #0xc] ldrb r0, [r4, #0xb] lsls r0, r0, #1 adds r0, r0, r7 ldrh r0, [r0] strh r0, [r1, #8] ldr r0, [r4, #0x64] lsls r1, r5, #2 adds r0, r0, r1 ldr r2, [r0] cmp r5, #0 bne _08043660 adds r0, r2, #0 bl sub_08043B9C b _0804366C .align 2, 0 _08043658: .4byte gUnk_080D1338 _0804365C: .4byte gUnk_080D133C _08043660: ldr r0, _0804367C @ =gUnk_080D1340 adds r0, r5, r0 ldrb r1, [r0] adds r0, r2, #0 bl sub_08004260 _0804366C: adds r6, #0x10 adds r5, #1 cmp r5, #4 bls _08043622 _08043674: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _0804367C: .4byte gUnk_080D1340 thumb_func_start sub_08043680 sub_08043680: @ 0x08043680 push {lr} ldr r2, _08043694 @ =gUnk_080D1348 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08043694: .4byte gUnk_080D1348 thumb_func_start sub_08043698 sub_08043698: @ 0x08043698 push {r4, r5, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xd] movs r0, #0x3c strb r0, [r4, #0xe] movs r3, #0 movs r5, #0x7f _080436A8: ldr r0, [r4, #0x64] lsls r1, r3, #2 adds r0, r0, r1 ldr r2, [r0] ldrb r1, [r2, #0x10] adds r0, r5, #0 ands r0, r1 strb r0, [r2, #0x10] adds r3, #1 cmp r3, #4 bls _080436A8 pop {r4, r5, pc} thumb_func_start sub_080436C0 sub_080436C0: @ 0x080436C0 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r5, r0, #0x18 cmp r5, #0 bne _080436FC movs r0, #0x14 strb r0, [r4, #0xe] movs r0, #2 strb r0, [r4, #0xd] ldrb r1, [r4, #0x18] subs r0, #6 ands r0, r1 strb r0, [r4, #0x18] ldr r0, [r4, #0x64] ldr r0, [r0, #4] movs r1, #0x51 movs r2, #0 bl sub_080A29AC ldr r0, [r4, #0x64] ldr r0, [r0, #4] str r5, [r0, #0x64] ldr r0, [r4, #0x64] ldr r0, [r0, #4] bl sub_0805E7BC _080436FC: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08043700 sub_08043700: @ 0x08043700 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r5, r0, #0x18 cmp r5, #0 bne _08043734 movs r0, #0x14 strb r0, [r4, #0xe] movs r0, #3 strb r0, [r4, #0xd] ldr r0, [r4, #0x64] ldr r0, [r0, #8] movs r1, #0x51 movs r2, #0 bl sub_080A29AC ldr r0, [r4, #0x64] ldr r0, [r0, #8] str r5, [r0, #0x64] ldr r0, [r4, #0x64] ldr r0, [r0, #8] bl sub_0805E7BC _08043734: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08043738 sub_08043738: @ 0x08043738 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r5, r0, #0x18 cmp r5, #0 bne _0804376C movs r0, #0x14 strb r0, [r4, #0xe] movs r0, #4 strb r0, [r4, #0xd] ldr r0, [r4, #0x64] ldr r0, [r0, #0xc] movs r1, #0x51 movs r2, #0 bl sub_080A29AC ldr r0, [r4, #0x64] ldr r0, [r0, #0xc] str r5, [r0, #0x64] ldr r0, [r4, #0x64] ldr r0, [r0, #0xc] bl sub_0805E7BC _0804376C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08043770 sub_08043770: @ 0x08043770 push {r4, r5, lr} adds r2, r0, #0 ldrb r0, [r2, #0xe] subs r0, #1 strb r0, [r2, #0xe] lsls r0, r0, #0x18 lsrs r4, r0, #0x18 cmp r4, #0 bne _080437D8 ldr r0, [r2, #0x64] ldr r3, [r0, #0x14] ldr r0, _080437AC @ =gUnk_030010A0 adds r5, r0, #0 adds r5, #0x39 ldrb r1, [r5] movs r0, #0xc ands r0, r1 cmp r0, #0 bne _0804379A movs r0, #2 strb r0, [r3, #0xd] _0804379A: ldrb r0, [r2, #0xb] cmp r0, #0 bne _080437B0 ldr r0, [r3, #0x64] str r4, [r0, #0x14] ldrb r1, [r5] movs r0, #0xfe b _080437B8 .align 2, 0 _080437AC: .4byte gUnk_030010A0 _080437B0: ldr r0, [r3, #0x64] str r4, [r0, #0x18] ldrb r1, [r5] movs r0, #0xfd _080437B8: ands r0, r1 strb r0, [r5] ldr r0, [r2, #0x64] ldr r0, [r0, #0x10] movs r1, #0 str r1, [r0, #0x64] ldr r0, [r2, #0x64] ldr r0, [r0, #0x10] adds r0, #0x45 strb r1, [r0] ldr r1, [r2, #0x68] ldr r0, [r2, #0x64] ldr r0, [r0, #0x10] str r0, [r1, #0x50] bl sub_0805E780 _080437D8: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080437DC sub_080437DC: @ 0x080437DC push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 ldr r0, _0804392C @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x43 bls _080437EE b _08043934 _080437EE: movs r0, #0x68 bl sub_0801D8E0 adds r7, r0, #0 cmp r7, #0 bne _080437FC b _08043934 _080437FC: adds r2, r6, #0 adds r2, #0x29 ldrb r1, [r2] movs r4, #8 rsbs r4, r4, #0 adds r0, r4, #0 ands r0, r1 movs r1, #5 mov r8, r1 mov r1, r8 orrs r0, r1 strb r0, [r2] adds r1, r6, #0 adds r1, #0x3c ldrb r0, [r1] movs r5, #0x10 orrs r0, r5 strb r0, [r1] str r7, [r6, #0x64] str r6, [r7] movs r0, #0x52 movs r1, #1 bl sub_0804AA60 adds r2, r0, #0 adds r3, r2, #0 adds r3, #0x29 ldrb r1, [r3] adds r0, r4, #0 ands r0, r1 mov r1, r8 orrs r0, r1 strb r0, [r3] adds r1, r2, #0 adds r1, #0x3c ldrb r0, [r1] orrs r0, r5 strb r0, [r1] str r7, [r2, #0x64] str r2, [r7, #4] adds r0, r6, #0 adds r1, r2, #0 bl sub_0806FA24 movs r0, #0x52 movs r1, #2 bl sub_0804AA60 adds r2, r0, #0 adds r3, r2, #0 adds r3, #0x29 ldrb r1, [r3] adds r0, r4, #0 ands r0, r1 mov r1, r8 orrs r0, r1 strb r0, [r3] adds r1, r2, #0 adds r1, #0x3c ldrb r0, [r1] orrs r0, r5 strb r0, [r1] str r7, [r2, #0x64] str r2, [r7, #8] adds r0, r6, #0 adds r1, r2, #0 bl sub_0806FA24 movs r0, #0x52 movs r1, #3 bl sub_0804AA60 adds r2, r0, #0 adds r3, r2, #0 adds r3, #0x29 ldrb r1, [r3] adds r0, r4, #0 ands r0, r1 mov r1, r8 orrs r0, r1 strb r0, [r3] adds r1, r2, #0 adds r1, #0x3c ldrb r0, [r1] orrs r0, r5 strb r0, [r1] str r7, [r2, #0x64] str r2, [r7, #0xc] adds r0, r6, #0 adds r1, r2, #0 bl sub_0806FA24 movs r0, #0x52 movs r1, #4 bl sub_0804AA60 adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x29 ldrb r0, [r1] ands r4, r0 mov r0, r8 orrs r4, r0 strb r4, [r1] adds r1, #0x13 ldrb r0, [r1] orrs r5, r0 strb r5, [r1] str r7, [r2, #0x64] str r2, [r7, #0x10] adds r0, r6, #0 adds r1, r2, #0 bl sub_0806FA24 ldr r0, [r6, #0x50] str r0, [r7, #0x14] ldr r1, _08043930 @ =gUnk_080D135C ldrb r0, [r6, #0xb] lsls r0, r0, #1 adds r0, r0, r1 ldrh r2, [r0] movs r3, #0 strh r2, [r7, #0x18] movs r1, #0x80 lsls r1, r1, #7 strh r1, [r7, #0x1c] adds r0, r7, #0 adds r0, #0x24 strb r3, [r0] strh r2, [r7, #0x28] strh r1, [r7, #0x2c] adds r0, #0x10 strb r3, [r0] strh r2, [r7, #0x38] strh r1, [r7, #0x3c] adds r0, #0x10 strb r3, [r0] adds r0, #4 strh r2, [r0] adds r0, #4 strh r1, [r0] adds r0, #8 strb r3, [r0] adds r0, #4 strh r2, [r0] adds r0, #4 strh r1, [r0] adds r0, #8 strb r3, [r0] movs r0, #1 b _08043936 .align 2, 0 _0804392C: .4byte gUnk_03003DBC _08043930: .4byte gUnk_080D135C _08043934: movs r0, #0 _08043936: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0804393C sub_0804393C: @ 0x0804393C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 ldr r0, [r5, #0x64] ldr r1, [r0] adds r0, r1, #0 adds r0, #0x7c ldrb r0, [r0] lsls r2, r0, #0x18 cmp r2, #0 beq _0804397C adds r0, r1, #0 adds r0, #0x7d ldrb r0, [r0] ldrb r1, [r5, #0xa] cmp r0, r1 bhi _0804397C ldr r4, _08043978 @ =gUnk_080D1362 ldrb r3, [r5, #0xa] lsls r1, r3, #4 lsrs r0, r2, #0x1b movs r2, #0xf ands r0, r2 adds r1, r1, r0 adds r1, r1, r4 ldrb r4, [r1] adds r6, r3, #0 b _08043980 .align 2, 0 _08043978: .4byte gUnk_080D1362 _0804397C: movs r4, #0 ldrb r6, [r5, #0xa] _08043980: lsls r0, r6, #4 adds r0, #0x18 ldr r2, [r5, #0x64] mov ip, r2 adds r2, r2, r0 ldrb r0, [r2, #0xc] adds r0, r4, r0 lsls r4, r0, #8 ldr r3, _08043A0C @ =gUnk_080C9160 ldrb r1, [r2, #5] adds r0, r1, #0 adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r3 movs r7, #0 ldrsh r0, [r0, r7] rsbs r0, r0, #0 adds r7, r0, #0 muls r7, r4, r7 mov r8, r7 movs r0, #0x7f ands r1, r0 lsls r1, r1, #1 adds r1, r1, r3 movs r7, #0 ldrsh r0, [r1, r7] muls r0, r4, r0 cmp r0, #0 bge _080439BC adds r0, #0xff _080439BC: asrs r4, r0, #8 ldrb r1, [r2, #1] lsls r0, r1, #1 adds r0, r0, r3 movs r2, #0 ldrsh r0, [r0, r2] adds r2, r0, #0 muls r2, r4, r2 adds r1, #0x40 lsls r1, r1, #1 adds r1, r1, r3 movs r3, #0 ldrsh r0, [r1, r3] rsbs r0, r0, #0 adds r3, r0, #0 muls r3, r4, r3 adds r0, r6, #1 lsls r0, r0, #2 add r0, ip ldr r0, [r0] adds r1, r5, #0 bl sub_0806FA48 ldr r0, [r5, #0x34] add r0, r8 str r0, [r5, #0x34] ldr r1, [r5, #0x64] ldrb r0, [r5, #0xa] adds r0, #1 lsls r0, r0, #2 adds r1, r1, r0 ldr r0, [r1] adds r0, #0x63 ldrb r1, [r0] adds r0, r5, #0 adds r0, #0x63 strb r1, [r0] pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08043A0C: .4byte gUnk_080C9160 thumb_func_start sub_08043A10 sub_08043A10: @ 0x08043A10 push {r4, lr} adds r4, r0, #0 bl sub_08043B7C ldr r0, [r4, #0x64] ldr r0, [r0, #0x10] bl sub_0804393C ldr r0, [r4, #0x64] ldr r1, [r0, #0x10] ldrh r0, [r1, #0x32] subs r0, #8 strh r0, [r1, #0x32] ldr r0, [r4, #0x64] ldr r1, [r0, #0x10] ldrh r0, [r1, #0x36] subs r0, #8 strh r0, [r1, #0x36] ldr r0, [r4, #0x64] ldr r0, [r0, #0xc] bl sub_0804393C ldr r0, [r4, #0x64] ldr r0, [r0, #8] bl sub_0804393C ldr r0, [r4, #0x64] ldr r0, [r0, #4] bl sub_0804393C ldr r0, [r4, #0x64] ldr r0, [r0] bl sub_0804393C ldr r0, [r4, #0x64] ldr r1, [r0] ldrh r0, [r1, #0x32] adds r0, #1 strh r0, [r1, #0x32] ldr r0, [r4, #0x64] ldr r1, [r0] adds r1, #0x63 ldrb r0, [r1] subs r0, #1 strb r0, [r1] adds r4, #0x7c ldrb r0, [r4] cmp r0, #0 beq _08043A76 subs r0, #1 strb r0, [r4] _08043A76: pop {r4, pc} thumb_func_start sub_08043A78 sub_08043A78: @ 0x08043A78 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x7c movs r0, #0 strb r0, [r1] adds r0, r4, #0 bl sub_08043B7C ldr r0, [r4, #0x64] ldr r0, [r0, #8] bl sub_0804393C ldr r0, [r4, #0x64] ldr r0, [r0, #4] bl sub_0804393C ldr r0, [r4, #0x64] ldr r0, [r0] bl sub_0804393C ldr r0, [r4, #0x64] ldr r1, [r0] ldrh r0, [r1, #0x32] adds r0, #1 strh r0, [r1, #0x32] ldr r0, [r4, #0x64] ldr r1, [r0] adds r1, #0x63 ldrb r0, [r1] subs r0, #1 strb r0, [r1] pop {r4, pc} .align 2, 0 thumb_func_start sub_08043ABC sub_08043ABC: @ 0x08043ABC push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x7c movs r0, #0 strb r0, [r1] adds r0, r4, #0 bl sub_08043B7C ldr r0, [r4, #0x64] ldr r0, [r0, #0xc] bl sub_0804393C ldr r0, [r4, #0x64] ldr r0, [r0, #8] bl sub_0804393C ldr r0, [r4, #0x64] ldr r0, [r0, #4] bl sub_0804393C ldr r0, [r4, #0x64] ldr r0, [r0] bl sub_0804393C ldr r0, [r4, #0x64] ldr r1, [r0] ldrh r0, [r1, #0x32] adds r0, #1 strh r0, [r1, #0x32] ldr r0, [r4, #0x64] ldr r1, [r0] adds r1, #0x63 ldrb r0, [r1] subs r0, #1 strb r0, [r1] pop {r4, pc} .align 2, 0 thumb_func_start sub_08043B08 sub_08043B08: @ 0x08043B08 push {r4, r5, r6, lr} ldrb r3, [r0, #0xa] lsls r1, r3, #4 adds r4, r1, #0 adds r4, #8 ldr r2, [r0, #0x64] adds r6, r2, r4 adds r1, #0x18 adds r4, r2, r1 ldr r0, _08043B40 @ =gUnk_080D13B2 adds r3, r3, r0 ldrb r5, [r3] ldr r0, [r2] ldrb r0, [r0, #0xb] cmp r0, #0 bne _08043B44 ldrb r1, [r6, #1] ldrb r0, [r4, #1] subs r0, r1, r0 lsls r0, r0, #0x18 asrs r3, r0, #0x18 cmp r5, r3 bhs _08043B5E cmp r3, #0 ble _08043B56 subs r0, r1, r5 b _08043B5C .align 2, 0 _08043B40: .4byte gUnk_080D13B2 _08043B44: ldrb r0, [r4, #1] ldrb r1, [r6, #1] subs r0, r0, r1 lsls r0, r0, #0x18 asrs r3, r0, #0x18 cmp r5, r3 bhs _08043B5E cmp r3, #0 bge _08043B5A _08043B56: strb r1, [r4, #1] b _08043B5E _08043B5A: adds r0, r1, r5 _08043B5C: strb r0, [r4, #1] _08043B5E: ldrb r2, [r6, #5] ldrb r0, [r4, #5] subs r3, r2, r0 lsls r1, r5, #1 adds r0, r3, r5 cmp r1, r0 bhs _08043B78 cmp r3, #0 ble _08043B74 subs r0, r2, r5 b _08043B76 _08043B74: adds r0, r2, r5 _08043B76: strb r0, [r4, #5] _08043B78: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08043B7C sub_08043B7C: @ 0x08043B7C push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x64] ldr r0, [r0, #4] bl sub_08043B08 ldr r0, [r4, #0x64] ldr r0, [r0, #8] bl sub_08043B08 ldr r0, [r4, #0x64] ldr r0, [r0, #0xc] bl sub_08043B08 pop {r4, pc} .align 2, 0 thumb_func_start sub_08043B9C sub_08043B9C: @ 0x08043B9C push {lr} adds r2, r0, #0 ldr r0, [r2, #0x64] ldrb r0, [r0, #0x19] adds r0, #4 movs r1, #0xff ands r0, r1 asrs r0, r0, #3 ldr r1, _08043BC4 @ =gUnk_080D13B7 adds r0, r0, r1 ldrb r1, [r0] ldrb r0, [r2, #0x1e] subs r0, #1 cmp r1, r0 beq _08043BC0 adds r0, r2, #0 bl sub_080042AC _08043BC0: pop {pc} .align 2, 0 _08043BC4: .4byte gUnk_080D13B7 thumb_func_start sub_08043BC8 sub_08043BC8: @ 0x08043BC8 movs r1, #2 strb r1, [r0, #0xc] ldrb r2, [r0, #0xb] lsls r2, r2, #2 ldr r1, _08043BEC @ =gUnk_080D13D8 adds r2, r2, r1 ldr r1, [r0, #0x64] adds r1, #0x18 ldrh r0, [r2] strh r0, [r1, #8] ldrh r0, [r2, #2] strh r0, [r1, #0xa] movs r0, #0x5a strb r0, [r1, #0xd] movs r0, #0x28 strb r0, [r1, #0xe] bx lr .align 2, 0 _08043BEC: .4byte gUnk_080D13D8 thumb_func_start sub_08043BF0 sub_08043BF0: @ 0x08043BF0 push {lr} adds r2, r0, #0 ldr r0, [r2, #0x64] adds r1, r0, #0 adds r1, #0x18 ldrb r0, [r2, #0xb] cmp r0, #0 bne _08043C18 ldrb r0, [r1, #1] movs r1, #6 cmp r0, #0x2f bls _08043C2E movs r1, #7 cmp r0, #0x5f bls _08043C2E movs r1, #9 cmp r0, #0x8f bhi _08043C2E movs r1, #8 b _08043C2E _08043C18: ldrb r0, [r1, #1] movs r1, #8 cmp r0, #0xd0 bhi _08043C2E movs r1, #7 cmp r0, #0xa0 bhi _08043C2E movs r1, #5 cmp r0, #0x70 bls _08043C2E movs r1, #6 _08043C2E: adds r0, r2, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, r1 beq _08043C3E adds r0, r2, #0 bl sub_080042AC _08043C3E: pop {pc} thumb_func_start sub_08043C40 sub_08043C40: @ 0x08043C40 push {r4, r5, r6, r7, lr} adds r7, r0, #0 ldrb r0, [r1, #5] cmp r0, #0x1f bhi _08043C54 ldr r6, _08043C50 @ =gUnk_080D13E0 b _08043C68 .align 2, 0 _08043C50: .4byte gUnk_080D13E0 _08043C54: cmp r0, #0x2f bhi _08043C60 ldr r6, _08043C5C @ =gUnk_080D13E3 b _08043C68 .align 2, 0 _08043C5C: .4byte gUnk_080D13E3 _08043C60: ldr r6, _08043C84 @ =gUnk_080D13E0 cmp r0, #0x77 bhi _08043C68 adds r6, #6 _08043C68: movs r4, #0 movs r5, #0x28 _08043C6C: ldr r0, [r7, #0x64] adds r3, r0, r5 adds r0, r6, r4 ldrb r1, [r3, #0xc] ldrb r2, [r0] adds r0, r1, #0 cmp r2, r0 beq _08043C8C cmp r2, r0 bhs _08043C88 subs r0, r1, #1 b _08043C8A .align 2, 0 _08043C84: .4byte gUnk_080D13E0 _08043C88: adds r0, r1, #1 _08043C8A: strb r0, [r3, #0xc] _08043C8C: adds r5, #0x10 adds r4, #1 cmp r4, #2 bls _08043C6C pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08043C98 sub_08043C98: @ 0x08043C98 push {lr} adds r3, r0, #0 ldr r0, [r3, #0x64] ldr r1, [r0, #8] ldr r2, [r0, #0xc] adds r1, #0x41 ldrb r0, [r1] cmp r0, #0x9d beq _08043CB4 adds r0, r2, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x9d bne _08043CD0 _08043CB4: adds r0, r3, #0 bl sub_08043D08 ldr r0, _08043CCC @ =gUnk_030010A0 adds r0, #0x38 ldrb r2, [r0] movs r1, #2 orrs r1, r2 strb r1, [r0] movs r0, #1 b _08043CD2 .align 2, 0 _08043CCC: .4byte gUnk_030010A0 _08043CD0: movs r0, #0 _08043CD2: pop {pc} thumb_func_start sub_08043CD4 sub_08043CD4: @ 0x08043CD4 push {r4, r5, lr} adds r3, r0, #0 movs r2, #0 adds r4, r3, #0 adds r4, #0x7c movs r5, #0x78 movs r0, #0x7d adds r0, r0, r3 mov ip, r0 _08043CE6: ldr r0, [r3, #0x64] lsls r1, r2, #2 adds r0, r0, r1 ldr r0, [r0] adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x9d bne _08043CFE strb r5, [r4] mov r0, ip strb r2, [r0] b _08043D04 _08043CFE: adds r2, #1 cmp r2, #4 bls _08043CE6 _08043D04: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08043D08 sub_08043D08: @ 0x08043D08 push {r4, r5, lr} adds r5, r0, #0 movs r1, #0 movs r0, #7 strb r0, [r5, #0xc] strb r1, [r5, #0xd] adds r0, r5, #0 movs r1, #0xd bl sub_080042AC ldr r0, [r5, #0x64] ldr r4, [r0, #0x10] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0x13 bl sub_08004260 adds r0, r4, #0 bl sub_0804AA1C adds r0, r4, #0 movs r1, #0x51 movs r2, #0 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _08043D78 ldr r1, _08043DAC @ =gUnk_080D13E9 ldrb r0, [r5, #0xb] adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r2, #0x2e] adds r0, r0, r1 strh r0, [r2, #0x2e] ldrh r0, [r2, #0x32] subs r0, #6 strh r0, [r2, #0x32] 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] _08043D78: ldr r0, [r5, #0x64] ldr r0, [r0, #0xc] adds r1, r4, #0 bl sub_0806FA24 ldr r1, [r5, #0x64] adds r1, #0x54 ldrh r0, [r4, #0x36] ldrb r1, [r1] adds r0, r0, r1 strh r0, [r4, #0x36] movs r2, #0 movs r3, #0x39 _08043D92: ldr r0, [r5, #0x64] lsls r1, r2, #2 adds r0, r0, r1 ldr r0, [r0] adds r0, #0x3f strb r3, [r0] adds r2, #1 cmp r2, #4 bls _08043D92 movs r0, #0xfe bl sub_08004488 pop {r4, r5, pc} .align 2, 0 _08043DAC: .4byte gUnk_080D13E9 thumb_func_start sub_08043DB0 sub_08043DB0: @ 0x08043DB0 push {r4, r5, r6, lr} adds r5, r0, #0 ldr r0, _08043E48 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _08043EAC ldr r0, [r5, #0x64] ldr r2, [r0, #0xc] movs r1, #0x2e ldrsh r0, [r2, r1] ldr r6, _08043E4C @ =gUnk_03000BF0 ldrh r1, [r6, #6] subs r0, r0, r1 movs r3, #0x32 ldrsh r1, [r2, r3] ldrh r2, [r6, #8] subs r1, r1, r2 adds r1, #2 movs r2, #3 movs r3, #3 bl sub_0800293E cmp r0, #0 beq _08043EAC ldr r0, _08043E50 @ =gUnk_080D13EC bl sub_08080840 ldr r4, _08043E54 @ =gUnk_030010A0 adds r0, r4, #0 adds r0, #0x39 ldrb r1, [r0] movs r0, #3 ands r0, r1 cmp r0, #3 beq _08043DFE movs r0, #1 strb r0, [r4, #0xd] _08043DFE: adds r0, r5, #0 adds r0, #0x7a ldrh r0, [r0] movs r1, #0x3c bl __divsi3 movs r1, #0x1e subs r1, r1, r0 adds r0, r4, #0 adds r0, #0x3d strb r1, [r0] ldrb r1, [r5, #0xb] subs r0, #1 strb r1, [r0] ldr r0, [r5, #0x64] ldr r2, [r0, #0x14] ldrh r1, [r2, #0x2e] adds r0, r4, #0 adds r0, #0x40 strh r1, [r0] ldrh r0, [r2, #0x32] adds r1, r4, #0 adds r1, #0x42 strh r0, [r1] ldr r0, [r2, #0x64] ldr r3, [r0, #0x14] cmp r3, #0 beq _08043E58 ldrh r1, [r3, #0x2e] adds r0, r4, #0 adds r0, #0x44 strh r1, [r0] ldrh r1, [r3, #0x32] adds r0, #2 strh r1, [r0] b _08043E70 .align 2, 0 _08043E48: .4byte gUnk_03003F80 _08043E4C: .4byte gUnk_03000BF0 _08043E50: .4byte gUnk_080D13EC _08043E54: .4byte gUnk_030010A0 _08043E58: movs r1, #0x88 lsls r1, r1, #1 adds r0, r1, #0 ldrh r3, [r6, #6] adds r0, r0, r3 adds r1, r4, #0 adds r1, #0x44 strh r0, [r1] ldrh r0, [r6, #8] adds r0, #0x60 adds r1, #2 strh r0, [r1] _08043E70: ldr r0, [r2, #0x64] ldr r3, [r0, #0x18] cmp r3, #0 beq _08043E90 ldr r1, _08043E8C @ =gUnk_030010A0 ldrh r2, [r3, #0x2e] adds r0, r1, #0 adds r0, #0x48 strh r2, [r0] ldrh r0, [r3, #0x32] adds r1, #0x4a strh r0, [r1] b _08043EAC .align 2, 0 _08043E8C: .4byte gUnk_030010A0 _08043E90: ldr r2, _08043EB0 @ =gUnk_030010A0 ldr r3, _08043EB4 @ =gUnk_03000BF0 movs r1, #0x88 lsls r1, r1, #1 adds r0, r1, #0 ldrh r1, [r3, #6] adds r0, r0, r1 adds r1, r2, #0 adds r1, #0x48 strh r0, [r1] ldrh r0, [r3, #8] adds r0, #0x60 adds r2, #0x4a strh r0, [r2] _08043EAC: pop {r4, r5, r6, pc} .align 2, 0 _08043EB0: .4byte gUnk_030010A0 _08043EB4: .4byte gUnk_03000BF0 thumb_func_start sub_08043EB8 sub_08043EB8: @ 0x08043EB8 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r7, r0, #0 ldrb r0, [r7, #0x10] movs r5, #0x80 orrs r0, r5 strb r0, [r7, #0x10] adds r2, r7, #0 adds r2, #0x29 ldrb r1, [r2] movs r4, #8 rsbs r4, r4, #0 adds r0, r4, #0 ands r0, r1 movs r6, #4 orrs r0, r6 strb r0, [r2] adds r0, r7, #0 movs r1, #0xd bl sub_080042AC ldr r0, [r7, #0x64] ldr r3, [r0, #4] ldrb r0, [r3, #0x10] orrs r0, r5 strb r0, [r3, #0x10] adds r2, r3, #0 adds r2, #0x29 ldrb r1, [r2] adds r0, r4, #0 ands r0, r1 orrs r0, r6 strb r0, [r2] ldr r0, [r7, #0x64] ldr r3, [r0, #8] ldrb r0, [r3, #0x10] orrs r0, r5 strb r0, [r3, #0x10] adds r2, r3, #0 adds r2, #0x29 ldrb r1, [r2] adds r0, r4, #0 ands r0, r1 orrs r0, r6 strb r0, [r2] ldr r0, [r7, #0x64] ldr r3, [r0, #0xc] ldrb r1, [r3, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r3, #0x10] ldrb r2, [r3, #0x18] movs r1, #4 rsbs r1, r1, #0 adds r0, r1, #0 ands r0, r2 movs r2, #1 mov r8, r2 mov r2, r8 orrs r0, r2 strb r0, [r3, #0x18] adds r3, #0x29 ldrb r2, [r3] adds r0, r4, #0 ands r0, r2 orrs r0, r6 strb r0, [r3] ldr r0, [r7, #0x64] ldr r3, [r0, #0x10] ldrb r0, [r3, #0x10] orrs r5, r0 strb r5, [r3, #0x10] ldrb r0, [r3, #0x18] ands r1, r0 mov r0, r8 orrs r1, r0 strb r1, [r3, #0x18] adds r1, r3, #0 adds r1, #0x29 ldrb r0, [r1] ands r4, r0 orrs r4, r6 strb r4, [r1] ldrb r0, [r7, #0xb] cmp r0, #0 bne _08043F74 ldr r1, _08043F70 @ =gUnk_030010A0 adds r0, r1, #0 adds r0, #0x44 b _08043F7A .align 2, 0 _08043F70: .4byte gUnk_030010A0 _08043F74: ldr r1, _08043F8C @ =gUnk_030010A0 adds r0, r1, #0 adds r0, #0x48 _08043F7A: ldrh r0, [r0] strh r0, [r3, #0x2e] ldrb r0, [r7, #0xb] cmp r0, #0 bne _08043F90 adds r0, r1, #0 adds r0, #0x46 b _08043F94 .align 2, 0 _08043F8C: .4byte gUnk_030010A0 _08043F90: adds r0, r1, #0 adds r0, #0x4a _08043F94: ldrh r1, [r0] movs r0, #0 strh r1, [r3, #0x32] strh r0, [r3, #0x36] adds r2, r3, #0 adds r2, #0x3c ldrb r1, [r2] movs r0, #0xef ands r0, r1 strb r0, [r2] adds r1, r3, #0 adds r1, #0x3f movs r0, #0x3a strb r0, [r1] ldr r0, _08043FF8 @ =gUnk_080FD450 str r0, [r3, #0x48] movs r0, #0xaf movs r1, #0 movs r2, #0 bl sub_080A2960 adds r3, r0, #0 cmp r3, #0 beq _08043FCA ldr r0, [r7, #0x64] ldr r0, [r0, #0xc] str r0, [r3, #0x50] _08043FCA: ldr r0, [r7, #0x64] ldr r0, [r0] str r3, [r0, #0x68] movs r2, #0 movs r6, #0 movs r5, #0x80 lsls r5, r5, #8 ldr r4, _08043FFC @ =gUnk_080D1419 movs r3, #0x18 _08043FDC: ldr r0, [r7, #0x64] adds r0, r0, r3 strh r5, [r0] strh r6, [r0, #4] adds r1, r2, r4 ldrb r1, [r1] strb r1, [r0, #0xc] adds r3, #0x10 adds r2, #1 cmp r2, #4 bls _08043FDC pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08043FF8: .4byte gUnk_080FD450 _08043FFC: .4byte gUnk_080D1419 thumb_func_start sub_08044000 sub_08044000: @ 0x08044000 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r0, [r4, #0xb] lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #1 ldr r0, _08044070 @ =gUnk_080D1400 movs r3, #0 ldr r2, _08044074 @ =gUnk_080D1414 mov ip, r2 movs r7, #8 rsbs r7, r7, #0 adds r5, r1, r0 movs r6, #0x18 _0804401C: ldr r0, [r4, #0x64] lsls r1, r3, #2 adds r0, r0, r1 ldr r2, [r0] ldrb r1, [r2, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x10] adds r2, #0x29 ldrb r1, [r2] adds r0, r7, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2] ldr r1, [r4, #0x64] adds r1, r1, r6 ldrh r0, [r5] strh r0, [r1] movs r0, #0x80 lsls r0, r0, #7 strh r0, [r1, #4] mov r2, ip adds r0, r3, r2 ldrb r0, [r0] strb r0, [r1, #0xc] adds r5, #2 adds r6, #0x10 adds r3, #1 cmp r3, #4 bls _0804401C adds r0, r4, #0 movs r1, #7 bl sub_080042AC ldr r1, [r4, #0x64] ldr r0, [r1, #0x14] ldr r1, [r1, #0x10] bl sub_0806FA24 pop {r4, r5, r6, r7, pc} .align 2, 0 _08044070: .4byte gUnk_080D1400 _08044074: .4byte gUnk_080D1414 thumb_func_start sub_08044078 sub_08044078: @ 0x08044078 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080440C4 movs r2, #1 strb r2, [r4, #0xc] ldrb r0, [r4, #0xa] cmp r0, #3 bne _080440AC ldr r3, _080440B8 @ =gUnk_030010A0 adds r0, r3, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _080440BC ldr r0, [r4, #0x64] ldr r0, [r0] adds r1, r3, #0 adds r1, #0x3c ldrb r0, [r0, #0xb] ldrb r1, [r1] cmp r0, r1 bne _080440BC _080440AC: adds r0, r4, #0 movs r1, #0x12 bl sub_08004260 b _080440C4 .align 2, 0 _080440B8: .4byte gUnk_030010A0 _080440BC: adds r0, r4, #0 movs r1, #0x11 bl sub_08004260 _080440C4: adds r0, r4, #0 bl sub_08004274 pop {r4, pc} thumb_func_start sub_080440CC sub_080440CC: @ 0x080440CC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08044110 movs r0, #1 strb r0, [r4, #0xc] ldr r2, _08044104 @ =gUnk_030010A0 adds r1, r2, #0 adds r1, #0x38 ldrb r1, [r1] ands r0, r1 cmp r0, #0 beq _08044108 ldr r0, [r4, #0x64] ldr r0, [r0] adds r1, r2, #0 adds r1, #0x3c ldrb r0, [r0, #0xb] ldrb r1, [r1] cmp r0, r1 bne _08044108 adds r0, r4, #0 movs r1, #0x13 bl sub_08004260 b _08044110 .align 2, 0 _08044104: .4byte gUnk_030010A0 _08044108: adds r0, r4, #0 movs r1, #0x11 bl sub_08004260 _08044110: adds r0, r4, #0 bl sub_08004274 pop {r4, pc} thumb_func_start sub_08044118 sub_08044118: @ 0x08044118 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _08044130 @ =gUnk_080D1588 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _08044130: .4byte gUnk_080D1588 thumb_func_start sub_08044134 sub_08044134: @ 0x08044134 push {lr} ldr r2, _08044148 @ =gUnk_080D15A0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08044148: .4byte gUnk_080D15A0 thumb_func_start sub_0804414C sub_0804414C: @ 0x0804414C push {lr} ldr r1, _08044158 @ =gUnk_080D1588 bl sub_0804AA30 pop {pc} .align 2, 0 _08044158: .4byte gUnk_080D1588 thumb_func_start sub_0804415C sub_0804415C: @ 0x0804415C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 bne _0804418E adds r0, r4, #0 bl sub_0806F520 cmp r0, #0 beq _08044188 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080441BA movs r0, #8 strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_08044310 b _080441BA _08044188: movs r0, #8 strb r0, [r4, #0xe] b _080441BA _0804418E: adds r0, r4, #0 bl sub_0806F520 cmp r0, #0 beq _080441B0 ldr r0, _080441AC @ =gUnk_080D15A8 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 b _080441BA .align 2, 0 _080441AC: .4byte gUnk_080D15A8 _080441B0: adds r0, r4, #0 bl sub_080445C0 bl sub_0805E780 _080441BA: pop {r4, pc} thumb_func_start sub_080441BC sub_080441BC: @ 0x080441BC movs r1, #2 strb r1, [r0, #0xd] bx lr .align 2, 0 thumb_func_start sub_080441C4 sub_080441C4: @ 0x080441C4 push {lr} bl sub_0806F4E8 pop {pc} thumb_func_start sub_080441CC sub_080441CC: @ 0x080441CC push {r4, lr} adds r4, r0, #0 bl sub_0806F3E4 cmp r0, #0 beq _080441DE adds r0, r4, #0 bl sub_0804A7D4 _080441DE: pop {r4, pc} thumb_func_start sub_080441E0 sub_080441E0: @ 0x080441E0 push {r4, r5, r6, r7, lr} adds r4, r0, #0 movs r0, #0x12 bl sub_0807CC30 cmp r0, #0 beq _080441F2 bl sub_0805E780 _080441F2: ldrb r7, [r4, #0xa] cmp r7, #0 bne _08044284 ldr r0, _08044244 @ =0x000001EB movs r1, #1 bl sub_080AD8F0 adds r6, r0, #0 ldrb r1, [r6] lsls r0, r1, #2 adds r0, r0, r1 adds r5, r0, #1 adds r0, r5, #0 bl sub_0801D8E0 adds r1, r0, #0 str r1, [r4, #0x64] cmp r1, #0 beq _0804429A adds r0, r6, #0 adds r2, r5, #0 bl sub_0801D66C adds r1, r4, #0 adds r1, #0x28 movs r0, #0xff strb r0, [r1] ldr r0, [r4, #0x64] ldrb r0, [r0] lsls r0, r0, #3 adds r0, #0xc bl sub_0801D8E0 adds r2, r0, #0 cmp r2, #0 bne _08044248 ldr r0, [r4, #0x64] bl sub_0801DA0C b _0804429A .align 2, 0 _08044244: .4byte 0x000001EB _08044248: str r2, [r4, #0x48] ldr r0, _0804427C @ =gUnk_080FD188 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2] str r1, [r2, #4] adds r0, r4, #0 bl sub_080442BC movs r0, #1 strb r0, [r4, #0x1e] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 adds r0, #0x75 strb r7, [r0] adds r1, r4, #0 adds r1, #0x76 ldr r0, _08044280 @ =0x0000FFFF strh r0, [r1] b _08044292 .align 2, 0 _0804427C: .4byte gUnk_080FD188 _08044280: .4byte 0x0000FFFF _08044284: movs r0, #0 strb r0, [r4, #0x1e] strh r0, [r4, #0x24] ldr r0, _0804429C @ =gUnk_080FD168 str r0, [r4, #0x48] movs r0, #1 strb r0, [r4, #0x1c] _08044292: movs r0, #1 strb r0, [r4, #0xc] movs r0, #8 strb r0, [r4, #0xe] _0804429A: pop {r4, r5, r6, r7, pc} .align 2, 0 _0804429C: .4byte gUnk_080FD168 thumb_func_start sub_080442A0 sub_080442A0: @ 0x080442A0 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xa] cmp r0, #0 bne _080442B2 adds r0, r1, #0 bl sub_08044498 b _080442B8 _080442B2: adds r0, r1, #0 bl sub_08044550 _080442B8: pop {pc} .align 2, 0 thumb_func_start sub_080442BC sub_080442BC: @ 0x080442BC push {r4, r5, r6, r7, lr} adds r3, r0, #0 ldr r5, _0804430C @ =gUnk_080D15B4 ldr r0, [r3, #0x64] ldrb r6, [r0] movs r4, #0 cmp r4, r6 bhs _08044304 movs r7, #0 _080442CE: ldr r1, [r3, #0x48] lsls r2, r4, #3 adds r1, r2, r1 ldrb r0, [r5] strb r0, [r1, #0xc] ldr r0, [r3, #0x48] adds r0, r2, r0 ldrb r1, [r5, #1] strb r1, [r0, #0xd] ldr r0, [r3, #0x48] adds r0, r2, r0 ldrb r1, [r5, #2] strb r1, [r0, #0xe] ldr r0, [r3, #0x48] adds r0, r2, r0 ldrb r1, [r5, #3] strb r1, [r0, #0xf] ldr r0, [r3, #0x48] adds r0, r2, r0 adds r0, #0xc strb r7, [r0, #4] ldr r0, [r3, #0x48] adds r2, r2, r0 strb r4, [r2, #0x11] adds r4, #1 cmp r4, r6 blo _080442CE _08044304: adds r0, r3, #0 adds r0, #0x74 strb r6, [r0] pop {r4, r5, r6, r7, pc} .align 2, 0 _0804430C: .4byte gUnk_080D15B4 thumb_func_start sub_08044310 sub_08044310: @ 0x08044310 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 movs r4, #0xff movs r6, #0xff ldr r0, _08044334 @ =gUnk_03001160 ldrb r0, [r0, #0x14] lsrs r1, r0, #1 movs r0, #3 ands r1, r0 cmp r1, #1 beq _0804436A cmp r1, #1 bgt _08044338 cmp r1, #0 beq _08044342 b _080443EA .align 2, 0 _08044334: .4byte gUnk_03001160 _08044338: cmp r1, #2 beq _08044392 cmp r1, #3 beq _080443C4 b _080443EA _08044342: movs r2, #0 adds r0, r5, #0 adds r0, #0x74 ldrb r0, [r0] cmp r2, r0 bhs _080443EA adds r3, r0, #0 ldr r1, [r5, #0x48] _08044352: ldrb r0, [r1, #0x10] cmp r0, #0 bne _08044360 ldrb r0, [r1, #0xd] cmp r6, r0 bls _08044360 adds r4, r2, #0 _08044360: adds r1, #8 adds r2, #1 cmp r2, r3 blo _08044352 b _080443EA _0804436A: movs r2, #0 adds r0, r5, #0 adds r0, #0x74 ldrb r0, [r0] cmp r2, r0 bhs _080443EA adds r3, r0, #0 ldr r1, [r5, #0x48] _0804437A: ldrb r0, [r1, #0x10] cmp r0, #0 bne _08044388 ldrb r0, [r1, #0xe] cmp r6, r0 bls _08044388 adds r4, r2, #0 _08044388: adds r1, #8 adds r2, #1 cmp r2, r3 blo _0804437A b _080443EA _08044392: movs r2, #0 adds r0, r5, #0 adds r0, #0x74 ldrb r0, [r0] cmp r2, r0 bhs _080443EA adds r3, r0, #0 ldr r1, [r5, #0x48] _080443A2: ldrb r0, [r1, #0x10] cmp r0, #0 bne _080443B0 ldrb r0, [r1, #0xc] cmp r6, r0 bls _080443B0 adds r4, r2, #0 _080443B0: adds r1, #8 adds r2, #1 cmp r2, r3 blo _080443A2 b _080443EA _080443BA: mov r1, r8 adds r0, r1, r4 ldrb r0, [r0, #0x11] strb r0, [r3, #5] b _08044492 _080443C4: movs r2, #0 adds r0, r5, #0 adds r0, #0x74 ldrb r0, [r0] cmp r2, r0 bhs _080443EA adds r3, r0, #0 ldr r1, [r5, #0x48] _080443D4: ldrb r0, [r1, #0x10] cmp r0, #0 bne _080443E2 ldrb r0, [r1, #0xf] cmp r6, r0 bls _080443E2 adds r4, r2, #0 _080443E2: adds r1, #8 adds r2, #1 cmp r2, r3 blo _080443D4 _080443EA: cmp r4, #0xff beq _08044492 ldr r0, [r5, #0x48] lsls r4, r4, #3 adds r0, r4, r0 movs r1, #1 strb r1, [r0, #0x10] ldr r1, [r5, #0x64] ldrb r0, [r1] subs r0, #1 strb r0, [r1] ldr r2, [r5, #0x64] ldrb r1, [r2] lsls r0, r1, #2 adds r0, r0, r1 adds r0, #1 adds r7, r2, r0 ldr r0, [r5, #0x48] adds r0, r4, r0 ldrb r1, [r0, #0x11] lsls r0, r1, #2 adds r0, r0, r1 adds r0, #1 adds r6, r2, r0 movs r0, #0x53 movs r1, #1 bl sub_0804AA60 adds r1, r0, #0 mov r8, r4 cmp r1, #0 beq _08044440 movs r2, #0 ldrsb r2, [r6, r2] adds r2, #8 lsls r2, r2, #0x10 movs r3, #1 ldrsb r3, [r6, r3] adds r3, #8 lsls r3, r3, #0x10 adds r0, r5, #0 bl sub_0806FA48 _08044440: ldr r0, [r5, #0x64] ldrb r0, [r0] cmp r0, #0 bne _08044458 movs r0, #0x12 bl sub_0807CD04 movs r0, #0x72 bl sub_080A3268 bl sub_0805E780 _08044458: movs r2, #0 adds r3, r5, #0 adds r3, #0x74 _0804445E: adds r0, r6, r2 adds r1, r7, r2 ldrb r1, [r1] strb r1, [r0] adds r2, #1 cmp r2, #4 bls _0804445E movs r2, #0 ldrb r1, [r3] cmp r2, r1 bhs _08044492 ldr r4, [r5, #0x48] ldr r0, [r5, #0x64] ldrb r6, [r0] adds r5, r1, #0 adds r3, r4, #0 adds r3, #0xc adds r1, r4, #0 _08044482: ldrb r0, [r1, #0x11] cmp r0, r6 beq _080443BA adds r3, #8 adds r1, #8 adds r2, #1 cmp r2, r5 blo _08044482 _08044492: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08044498 sub_08044498: @ 0x08044498 push {r4, r5, r6, lr} mov ip, r0 ldr r6, _08044538 @ =gUnk_03001160 movs r1, #0x2e ldrsh r0, [r6, r1] ldr r3, _0804453C @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r0, r0, r1 asrs r4, r0, #4 movs r2, #0x3f ands r4, r2 movs r5, #0x32 ldrsh r0, [r6, r5] ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r4, r0 ldr r0, _08044540 @ =gUnk_03003F80 adds r0, #0x92 ldrh r0, [r0] movs r1, #0xf0 lsls r1, r1, #4 ands r1, r0 mov r2, ip adds r2, #0x75 ldrb r0, [r2] cmp r1, r0 bne _080444DE mov r0, ip adds r0, #0x76 ldrh r0, [r0] cmp r4, r0 beq _0804454C _080444DE: strb r1, [r2] mov r0, ip adds r0, #0x76 strh r4, [r0] mov r1, ip ldr r0, [r1, #0x64] adds r2, r0, #1 ldrb r4, [r0] movs r3, #0x2e ldrsh r1, [r6, r3] mov r5, ip movs r3, #0x2e ldrsh r0, [r5, r3] subs r5, r1, r0 movs r0, #0x32 ldrsh r1, [r6, r0] mov r3, ip movs r6, #0x32 ldrsh r0, [r3, r6] subs r1, r1, r0 movs r3, #0 cmp r3, r4 bhs _0804454C _0804450C: movs r0, #0 ldrsb r0, [r2, r0] subs r0, r5, r0 cmp r0, #0xf bhi _08044544 movs r0, #1 ldrsb r0, [r2, r0] subs r0, r1, r0 cmp r0, #0xf bhi _08044544 movs r0, #0xf movs r1, #0x11 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _0804454C ldr r0, _08044538 @ =gUnk_03001160 bl sub_0806FA24 b _0804454C .align 2, 0 _08044538: .4byte gUnk_03001160 _0804453C: .4byte gUnk_03000BF0 _08044540: .4byte gUnk_03003F80 _08044544: adds r2, #5 adds r3, #1 cmp r3, r4 blo _0804450C _0804454C: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08044550 sub_08044550: @ 0x08044550 push {r4, r5, r6, r7, lr} adds r6, r0, #0 ldr r0, _080445A8 @ =gUnk_03003F80 ldrb r1, [r0, #0x1c] movs r0, #0xf ands r0, r1 cmp r0, #1 bne _080445B4 ldrh r1, [r6, #0x24] movs r2, #0x24 ldrsh r0, [r6, r2] cmp r0, #0xff bgt _08044570 adds r0, r1, #0 adds r0, #0x10 strh r0, [r6, #0x24] _08044570: ldr r5, _080445AC @ =gUnk_03001160 ldrb r0, [r5, #0x14] movs r4, #0xe ands r4, r0 ldr r0, _080445B0 @ =gUnk_08126EE4 adds r4, r4, r0 movs r3, #0x2e ldrsh r0, [r6, r3] movs r7, #0x32 ldrsh r1, [r6, r7] movs r3, #0x2e ldrsh r2, [r5, r3] movs r3, #0 ldrsb r3, [r4, r3] adds r2, r2, r3 movs r7, #0x32 ldrsh r3, [r5, r7] ldrb r4, [r4, #1] lsls r4, r4, #0x18 asrs r4, r4, #0x18 adds r3, r3, r4 bl sub_080045D4 strb r0, [r6, #0x15] adds r0, r6, #0 bl sub_0806F69C b _080445BE .align 2, 0 _080445A8: .4byte gUnk_03003F80 _080445AC: .4byte gUnk_03001160 _080445B0: .4byte gUnk_08126EE4 _080445B4: adds r0, r6, #0 bl sub_080445C0 bl sub_0805E780 _080445BE: pop {r4, r5, r6, r7, pc} thumb_func_start sub_080445C0 sub_080445C0: @ 0x080445C0 push {r4, lr} adds r4, r0, #0 movs r0, #0x21 movs r1, #1 movs r2, #1 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _080445DA adds r0, r4, #0 bl sub_0806FA24 _080445DA: pop {r4, pc} thumb_func_start sub_080445DC sub_080445DC: @ 0x080445DC push {r4, r5, lr} adds r4, r0, #0 ldr r5, [r4, #0x50] ldrb r0, [r4, #0xc] cmp r0, #0 beq _08044604 cmp r0, #3 beq _08044604 ldr r1, [r5, #0x2c] ldr r0, [r5, #0x78] subs r1, r1, r0 ldr r0, [r4, #0x2c] adds r0, r0, r1 str r0, [r4, #0x2c] ldr r1, [r5, #0x30] ldr r0, [r5, #0x7c] subs r1, r1, r0 ldr r0, [r4, #0x30] adds r0, r0, r1 str r0, [r4, #0x30] _08044604: ldr r1, _08044684 @ =gUnk_080D1604 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 adds r0, #0x84 ldrb r0, [r0] cmp r0, #0 beq _08044626 adds r1, r4, #0 adds r1, #0x45 movs r0, #0xff strb r0, [r1] _08044626: adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08044680 movs r0, #0x3f ands r0, r1 cmp r0, #0 bne _0804464A ldrb r0, [r4, #0xc] cmp r0, #6 bne _0804464A movs r0, #2 rsbs r0, r0, #0 bl sub_080526A0 _0804464A: adds r2, r4, #0 adds r2, #0x45 ldrb r0, [r2] cmp r0, #0xfc bhi _08044680 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r0, #0xff strb r0, [r2] adds r1, r5, #0 adds r1, #0x80 ldrb r0, [r1] subs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_080A29BC ldr r0, _08044688 @ =0x000001C3 bl sub_080A3268 _08044680: pop {r4, r5, pc} .align 2, 0 _08044684: .4byte gUnk_080D1604 _08044688: .4byte 0x000001C3 thumb_func_start sub_0804468C sub_0804468C: @ 0x0804468C push {r4, r5, r6, lr} adds r4, r0, #0 adds r0, #0x38 movs r6, #0 movs r5, #3 strb r5, [r0] ldrb r1, [r4, #0x19] movs r0, #0x3f ands r0, r1 movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x19] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #5 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 adds r0, #0x84 strb r6, [r0] ldrb r3, [r4, #0xa] cmp r3, #0 beq _080446C8 cmp r3, #1 beq _08044728 b _0804474A _080446C8: movs r0, #1 strb r0, [r4, #0xc] strb r0, [r4, #0xe] adds r2, r4, #0 adds r2, #0x79 ldrb r0, [r2] lsls r0, r0, #3 movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] adds r0, r4, #0 adds r0, #0x78 strb r3, [r0] adds r0, #0xb strb r3, [r0] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] ldrb r0, [r2] adds r1, r5, #0 ands r1, r0 lsls r1, r1, #1 ldr r0, _08044724 @ =gUnk_080D1620 adds r1, r1, r0 ldr r0, [r4, #0x50] movs r2, #0 ldrsb r2, [r1, r2] lsls r2, r2, #0x10 movs r3, #1 ldrsb r3, [r1, r3] subs r3, #0x10 lsls r3, r3, #0x10 adds r1, r4, #0 bl sub_0806FA48 ldr r0, [r4, #0x50] ldrh r0, [r0, #0x36] strh r0, [r4, #0x36] adds r0, r4, #0 movs r1, #0 bl sub_080042AC b _0804474A .align 2, 0 _08044724: .4byte gUnk_080D1620 _08044728: strb r5, [r4, #0xc] adds r0, r4, #0 adds r0, #0x74 strb r6, [r0] adds r0, #0xf movs r2, #1 strb r3, [r0] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #1 bl sub_080042AC _0804474A: pop {r4, r5, r6, pc} thumb_func_start sub_0804474C sub_0804474C: @ 0x0804474C push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldrb r2, [r0, #0xc] cmp r2, #3 beq _0804476C cmp r2, #3 bgt _08044762 cmp r2, #2 beq _0804479A b _080447A8 _08044762: cmp r2, #5 beq _0804477A cmp r2, #6 beq _0804478A b _080447A8 _0804476C: movs r1, #0 strb r2, [r4, #0xc] adds r0, r4, #0 adds r0, #0x74 strb r1, [r0] strb r1, [r4, #0xe] b _080447A8 _0804477A: movs r0, #0 strb r2, [r4, #0xc] adds r1, r4, #0 adds r1, #0x74 strb r0, [r1] movs r0, #1 strb r0, [r4, #0xf] b _080447A8 _0804478A: movs r0, #0 strb r2, [r4, #0xc] adds r1, r4, #0 adds r1, #0x74 strb r0, [r1] movs r0, #0x20 strb r0, [r4, #0xf] b _080447A8 _0804479A: movs r1, #0 strb r2, [r4, #0xc] adds r0, r4, #0 adds r0, #0x74 strb r1, [r0] subs r0, #0x35 strb r1, [r0] _080447A8: ldrb r0, [r4, #0xc] cmp r0, #1 beq _080447B6 adds r0, r4, #0 bl sub_080042B8 b _080447DC _080447B6: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080447D0 movs r0, #2 strb r0, [r4, #0xe] ldrb r0, [r4, #0x15] adds r0, #1 movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] _080447D0: adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_080042B8 _080447DC: pop {r4, pc} .align 2, 0 thumb_func_start sub_080447E0 sub_080447E0: @ 0x080447E0 push {r4, lr} adds r4, r0, #0 ldr r3, [r4, #0x50] ldrb r0, [r3, #0xc] cmp r0, #1 bne _08044818 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x2b strb r0, [r1] adds r0, r4, #0 movs r1, #0 bl sub_08044E74 ldrb r1, [r4, #0x10] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08044864 ldrb r0, [r4, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 movs r0, #1 orrs r1, r0 strb r1, [r4, #0x18] b _08044864 _08044818: adds r1, r4, #0 adds r1, #0x77 ldrb r0, [r1] adds r2, r0, #1 movs r0, #7 ands r2, r0 strb r2, [r1] ldrb r1, [r4, #0x10] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08044852 movs r0, #1 ands r0, r2 cmp r0, #0 beq _08044848 ldrb r0, [r4, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 movs r0, #1 orrs r1, r0 strb r1, [r4, #0x18] b _08044852 _08044848: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] _08044852: adds r0, r3, #0 adds r0, #0x74 ldrb r0, [r0] cmp r0, #2 bne _08044864 adds r0, r4, #0 movs r1, #2 bl sub_08044E74 _08044864: pop {r4, pc} .align 2, 0 thumb_func_start sub_08044868 sub_08044868: @ 0x08044868 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 ldr r5, [r4, #0x50] adds r0, r5, #0 adds r0, #0x74 ldrb r0, [r0] cmp r0, #3 bne _0804487E b _080449C8 _0804487E: cmp r0, #3 bgt _0804488E cmp r0, #1 beq _08044948 cmp r0, #2 bne _0804488C b _080449AE _0804488C: b _080449EA _0804488E: cmp r0, #0xfe beq _08044898 cmp r0, #0xff beq _080448B6 b _080449EA _08044898: adds r0, r4, #0 adds r0, #0x83 ldrb r0, [r0] cmp r0, #0 bne _080448A4 b _080449EA _080448A4: adds r0, r4, #0 adds r0, #0x74 ldrb r0, [r0] cmp r0, #2 beq _080448B0 b _080449EA _080448B0: bl sub_0805E780 b _080449EA _080448B6: adds r0, r4, #0 adds r0, #0x83 ldrb r0, [r0] cmp r0, #0 bne _080448C2 b _080449EA _080448C2: adds r6, r4, #0 adds r6, #0x74 ldrb r0, [r6] cmp r0, #0 beq _080448D2 cmp r0, #1 beq _08044900 b _080449EA _080448D2: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080448E2 b _080449EA _080448E2: movs r0, #1 strb r0, [r6] movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] subs r2, #0x10 adds r0, r4, #0 bl sub_080045B4 strb r0, [r4, #0x15] movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r4, #0x24] b _080449EA _08044900: adds r0, r4, #0 bl sub_0806F69C movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] subs r2, #0x10 adds r0, r4, #0 movs r3, #0xc bl sub_0806FCB8 cmp r0, #0 beq _08044934 ldrb r0, [r6] adds r0, #1 strb r0, [r6] ldrh r0, [r5, #0x2e] strh r0, [r4, #0x2e] ldrh r0, [r5, #0x32] subs r0, #0x10 strh r0, [r4, #0x32] ldrb r0, [r5, #0xe] adds r0, #1 strb r0, [r5, #0xe] b _080449EA _08044934: movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] subs r2, #0x10 adds r0, r4, #0 bl sub_080045B4 strb r0, [r4, #0x15] b _080449EA _08044948: adds r1, r4, #0 adds r1, #0x83 ldrb r0, [r1] cmp r0, #0 bne _08044964 adds r0, #1 strb r0, [r1] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] _08044964: adds r0, r4, #0 bl sub_08044DEC adds r0, r5, #0 adds r0, #0x86 ldrb r0, [r0] cmp r0, #1 bls _080449A8 ldrb r0, [r4, #0x18] lsls r0, r0, #0x1e lsrs r6, r0, #0x1e cmp r6, #1 bne _080449A8 movs r0, #0x84 adds r0, r0, r4 mov r8, r0 ldrb r7, [r0] cmp r7, #0 bne _080449A8 adds r0, r4, #0 movs r1, #0x18 movs r2, #0 bl sub_0804A98C adds r5, r0, #0 cmp r5, #0 beq _080449A8 strb r6, [r5, #0xb] str r4, [r5, #0x50] mov r0, r8 strb r6, [r0] adds r0, r4, #0 adds r0, #0x3f strb r7, [r0] _080449A8: movs r0, #0x20 strb r0, [r4, #0xe] b _080449EA _080449AE: ldrb r0, [r4, #0xe] cmp r0, #0 beq _080449EA subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x10 bhi _080449EA adds r0, r4, #0 bl sub_0806F69C b _080449EA _080449C8: adds r0, r4, #0 movs r1, #1 bl sub_08044E74 ldrb r0, [r4, #0x18] lsls r0, r0, #0x1e lsrs r0, r0, #0x1e cmp r0, #1 bne _080449E2 ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 b _080449E8 _080449E2: ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 _080449E8: strb r0, [r4, #0x10] _080449EA: adds r0, r4, #0 bl sub_080042B8 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080449F8 sub_080449F8: @ 0x080449F8 push {r4, r5, r6, lr} adds r5, r0, #0 ldr r4, [r5, #0x50] bl sub_080042B8 ldrb r0, [r4, #0xc] cmp r0, #1 beq _08044A90 adds r6, r4, #0 adds r6, #0x74 ldrb r0, [r6] cmp r0, #1 beq _08044A6A cmp r0, #1 bgt _08044A1C cmp r0, #0 beq _08044A26 b _08044B02 _08044A1C: cmp r0, #2 beq _08044AC6 cmp r0, #3 beq _08044AF8 b _08044B02 _08044A26: adds r0, r5, #0 bl sub_0806F69C ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08044B02 adds r1, r5, #0 adds r1, #0x78 ldrb r0, [r1] cmp r0, #0 bne _08044A4C adds r0, #1 strb r0, [r1] movs r0, #0xa0 lsls r0, r0, #2 strh r0, [r5, #0x24] _08044A4C: movs r0, #4 strb r0, [r5, #0xe] ldrb r0, [r5, #0x15] adds r0, #1 movs r1, #0x1f ands r0, r1 strb r0, [r5, #0x15] adds r0, r4, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 bne _08044B02 movs r0, #1 strb r0, [r6] b _08044B02 _08044A6A: ldrb r0, [r5, #0xe] cmp r0, #2 beq _08044A84 cmp r0, #2 bgt _08044A7A cmp r0, #1 beq _08044A9A b _08044B02 _08044A7A: cmp r0, #3 beq _08044ABA cmp r0, #4 beq _08044AB4 b _08044B02 _08044A84: adds r0, r4, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 bne _08044B02 strb r0, [r5, #0xf] _08044A90: adds r0, r5, #0 movs r1, #0 bl sub_08044E74 b _08044B02 _08044A9A: ldrb r0, [r5, #0x15] adds r0, #0x10 movs r4, #0x1f ands r0, r4 strb r0, [r5, #0x15] adds r0, r5, #0 bl sub_0806F69C ldrb r0, [r5, #0x15] adds r0, #0x10 ands r0, r4 strb r0, [r5, #0x15] b _08044AC0 _08044AB4: adds r0, r5, #0 bl sub_0806F69C _08044ABA: adds r0, r5, #0 bl sub_0806F69C _08044AC0: movs r0, #2 strb r0, [r5, #0xe] b _08044B02 _08044AC6: adds r1, r5, #0 adds r1, #0x74 ldrb r0, [r1] cmp r0, #0 bne _08044B02 adds r0, #1 strb r0, [r1] ldrb r0, [r5, #0x18] lsls r0, r0, #0x1e cmp r0, #0 beq _08044B02 adds r0, r5, #0 movs r1, #0x1c movs r2, #0 bl sub_0804A98C adds r4, r0, #0 cmp r4, #0 beq _08044B02 ldrh r0, [r4, #0x32] adds r0, #4 strh r0, [r4, #0x32] str r5, [r4, #0x50] str r4, [r5, #0x54] b _08044B02 _08044AF8: ldrb r0, [r5, #0xf] cmp r0, #0 beq _08044B02 movs r0, #0 strb r0, [r5, #0xf] _08044B02: pop {r4, r5, r6, pc} thumb_func_start sub_08044B04 sub_08044B04: @ 0x08044B04 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 ldr r6, [r4, #0x50] bl sub_080042B8 ldrb r0, [r6, #0xc] cmp r0, #1 bne _08044B26 adds r0, r4, #0 movs r1, #0 bl sub_08044E74 movs r0, #0x20 strb r0, [r4, #0xe] b _08044DE6 _08044B26: adds r0, r6, #0 adds r0, #0x74 ldrb r5, [r0] cmp r5, #1 bne _08044B32 b _08044D10 _08044B32: cmp r5, #1 bgt _08044B3C cmp r5, #0 beq _08044B4A b _08044DE6 _08044B3C: cmp r5, #2 bne _08044B42 b _08044DE6 _08044B42: cmp r5, #3 bne _08044B48 b _08044D6A _08044B48: b _08044DE6 _08044B4A: adds r0, r4, #0 bl sub_0806F69C adds r7, r4, #0 adds r7, #0x74 ldrb r0, [r7] mov r8, r7 cmp r0, #1 beq _08044BF4 cmp r0, #1 bgt _08044B66 cmp r0, #0 beq _08044B72 b _08044DE6 _08044B66: cmp r0, #2 beq _08044C4C cmp r0, #3 bne _08044B70 b _08044C9C _08044B70: b _08044DE6 _08044B72: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08044B98 adds r0, r4, #0 adds r0, #0x78 ldrb r0, [r0] movs r1, #2 cmp r0, #0 beq _08044B8C movs r1, #4 _08044B8C: strb r1, [r4, #0xe] ldrb r0, [r4, #0x15] adds r0, #1 movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] _08044B98: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] movs r2, #0xff lsls r0, r0, #0x18 lsrs r3, r0, #0x18 cmp r3, #0 beq _08044BAA b _08044DE6 _08044BAA: ldrb r0, [r4, #0xe] cmp r0, #2 beq _08044BB6 movs r0, #1 strb r0, [r4, #0xf] b _08044DE6 _08044BB6: adds r1, r4, #0 adds r1, #0x78 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ands r0, r2 cmp r0, #2 bls _08044BDA mov r2, r8 ldrb r0, [r2] adds r0, #1 strb r0, [r2] movs r0, #1 strb r0, [r1] movs r0, #4 strb r0, [r4, #0xe] strb r3, [r4, #0xf] b _08044BDE _08044BDA: movs r0, #0x20 strb r0, [r4, #0xf] _08044BDE: ldrb r0, [r1] movs r2, #0xa0 lsls r2, r2, #3 adds r1, r2, #0 cmp r0, #0 beq _08044BF0 movs r0, #0xa0 lsls r0, r0, #2 adds r1, r0, #0 _08044BF0: strh r1, [r4, #0x24] b _08044DE6 _08044BF4: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r1, #0xff lsls r0, r0, #0x18 cmp r0, #0 beq _08044C04 b _08044DE6 _08044C04: movs r0, #6 strb r0, [r4, #0xe] ldrb r0, [r4, #0x15] adds r0, #1 movs r2, #0x1f mov r8, r2 mov r2, r8 ands r0, r2 strb r0, [r4, #0x15] ldrb r0, [r4, #0xf] adds r0, #1 strb r0, [r4, #0xf] ands r0, r1 cmp r0, #0x30 beq _08044C24 b _08044DE6 _08044C24: movs r0, #0x2e ldrsh r1, [r6, r0] movs r0, #0x32 ldrsh r2, [r6, r0] subs r2, #0x10 adds r0, r4, #0 bl sub_080045B4 strh r5, [r4, #0x24] adds r0, #0x10 mov r1, r8 ands r0, r1 strb r0, [r4, #0x15] movs r0, #0x10 strb r0, [r4, #0xe] strb r0, [r4, #0xf] ldrb r0, [r7] adds r0, #1 strb r0, [r7] b _08044DE6 _08044C4C: ldrb r0, [r4, #0xf] cmp r0, #0 bne _08044CA2 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r5, r0, #0x18 cmp r5, #4 beq _08044CAE cmp r5, #4 bgt _08044C6A cmp r5, #0 beq _08044C78 b _08044DE6 _08044C6A: cmp r5, #0xc beq _08044C70 b _08044DE6 _08044C70: movs r0, #0xa0 lsls r0, r0, #3 strh r0, [r4, #0x24] b _08044DE6 _08044C78: ldrb r0, [r7] adds r0, #1 strb r0, [r7] movs r2, #0x2e ldrsh r1, [r6, r2] movs r0, #0x32 ldrsh r2, [r6, r0] subs r2, #0x10 adds r0, r4, #0 bl sub_080045B4 strb r0, [r4, #0x15] strh r5, [r4, #0x24] movs r0, #4 strb r0, [r4, #0xe] movs r0, #0x10 strb r0, [r4, #0xf] b _08044DE6 _08044C9C: ldrb r0, [r4, #0xf] cmp r0, #0 beq _08044CB6 _08044CA2: subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 beq _08044CAE b _08044DE6 _08044CAE: movs r0, #0xa0 lsls r0, r0, #2 strh r0, [r4, #0x24] b _08044DE6 _08044CB6: ldrb r0, [r4, #0xe] cmp r0, #0 beq _08044CD2 subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08044CD2 movs r0, #0xa0 lsls r0, r0, #3 strh r0, [r4, #0x24] ldr r0, _08044D0C @ =0x0000014F bl sub_080A3268 _08044CD2: adds r0, r4, #0 adds r0, #0x79 ldrb r0, [r0] cmp r0, #3 bne _08044CF8 movs r2, #0x2e ldrsh r1, [r6, r2] movs r0, #0x32 ldrsh r2, [r6, r0] subs r2, #0x10 adds r0, r4, #0 movs r3, #0xc bl sub_0806FCB8 cmp r0, #0 beq _08044CF8 ldrb r0, [r6, #0xe] adds r0, #1 strb r0, [r6, #0xe] _08044CF8: movs r2, #0x2e ldrsh r1, [r6, r2] movs r0, #0x32 ldrsh r2, [r6, r0] subs r2, #0x10 adds r0, r4, #0 bl sub_080045B4 strb r0, [r4, #0x15] b _08044DE6 .align 2, 0 _08044D0C: .4byte 0x0000014F _08044D10: adds r1, r4, #0 adds r1, #0x74 ldrb r0, [r1] cmp r0, #1 beq _08044D50 cmp r0, #3 bne _08044DE6 strb r5, [r1] movs r0, #0x50 strb r0, [r4, #0xe] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldr r3, _08044D4C @ =0xFFF00000 adds r0, r6, #0 adds r1, r4, #0 movs r2, #0 bl sub_0806FA48 ldrb r0, [r4, #0xf] cmp r0, #0 beq _08044DE6 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] b _08044DE6 .align 2, 0 _08044D4C: .4byte 0xFFF00000 _08044D50: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 bne _08044DE6 strb r0, [r1] movs r0, #0x20 strb r0, [r4, #0xe] movs r0, #4 strb r0, [r4, #0xf] b _08044DE6 _08044D6A: adds r5, r4, #0 adds r5, #0x74 ldrb r0, [r5] cmp r0, #1 beq _08044DA4 cmp r0, #1 bgt _08044D7E cmp r0, #0 beq _08044D84 b _08044DE6 _08044D7E: cmp r0, #2 beq _08044DBE b _08044DE6 _08044D84: ldrb r0, [r4, #0xf] cmp r0, #0 beq _08044DE6 subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08044DE6 adds r0, r4, #0 bl sub_08044DEC movs r0, #1 strb r0, [r5] movs r0, #0x10 strb r0, [r4, #0xe] b _08044DE6 _08044DA4: adds r0, r4, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08044DE6 ldrb r0, [r5] adds r0, #1 strb r0, [r5] b _08044DE6 _08044DBE: adds r0, r4, #0 movs r1, #1 bl sub_08044E74 ldrb r0, [r4, #0x18] lsls r0, r0, #0x1e lsrs r0, r0, #0x1e cmp r0, #1 bne _08044DD8 ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 b _08044DDE _08044DD8: ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 _08044DDE: strb r0, [r4, #0x10] ldrb r0, [r6, #0xe] adds r0, #1 strb r0, [r6, #0xe] _08044DE6: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08044DEC sub_08044DEC: @ 0x08044DEC push {lr} mov ip, r0 ldr r0, [r0, #0x50] adds r0, #0x80 mov r1, ip adds r1, #0x79 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _08044E1A mov r0, ip ldrb r1, [r0, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 mov r1, ip strb r0, [r1, #0x18] adds r1, #0x45 movs r0, #0xff strb r0, [r1] b _08044E26 _08044E1A: mov r2, ip ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2, #0x18] _08044E26: mov r0, ip ldrb r1, [r0, #0x10] movs r0, #0x7f ands r0, r1 movs r1, #0 mov r2, ip strb r0, [r2, #0x10] mov r0, ip adds r0, #0x78 strb r1, [r0] movs r0, #0xc0 lsls r0, r0, #2 strh r0, [r2, #0x24] ldr r0, [r2, #0x50] adds r1, r0, #0 adds r1, #0x80 ldrb r1, [r1] subs r1, #1 ldr r2, _08044E6C @ =gUnk_080D1628 mov r3, ip adds r3, #0x79 lsls r1, r1, #2 ldrb r3, [r3] adds r1, r1, r3 adds r1, r1, r2 ldrb r1, [r1] mov r2, ip strb r1, [r2, #0x15] ldr r3, _08044E70 @ =0xFFF00000 mov r1, ip movs r2, #0 bl sub_0806FA48 pop {pc} .align 2, 0 _08044E6C: .4byte gUnk_080D1628 _08044E70: .4byte 0xFFF00000 thumb_func_start sub_08044E74 sub_08044E74: @ 0x08044E74 push {r4, r5, r6, lr} adds r5, r0, #0 adds r2, r1, #0 movs r0, #0 movs r1, #1 strb r1, [r5, #0xc] adds r1, r5, #0 adds r1, #0x74 strb r0, [r1] cmp r2, #1 beq _08044ED4 cmp r2, #1 blo _08044EE4 adds r6, r5, #0 adds r6, #0x78 cmp r2, #2 bne _08044F3E strb r2, [r5, #0xc] ldrb r0, [r5, #0x15] adds r0, #0x18 movs r4, #0x1f ands r0, r4 strb r0, [r5, #0x15] ldr r0, [r5, #0x50] ldr r3, _08044ED0 @ =0xFFF00000 adds r1, r5, #0 movs r2, #0 bl sub_0806FA48 movs r0, #0xc0 lsls r0, r0, #6 strh r0, [r5, #0x24] adds r0, r5, #0 bl sub_0806F69C ldrb r0, [r5, #0x15] adds r0, #8 ands r0, r4 strb r0, [r5, #0x15] movs r0, #0xa0 lsls r0, r0, #3 strh r0, [r5, #0x24] adds r0, r5, #0 bl sub_0806F69C b _08044F3E .align 2, 0 _08044ED0: .4byte 0xFFF00000 _08044ED4: ldrb r0, [r5, #0x15] adds r0, #8 movs r1, #0x1f ands r0, r1 strb r0, [r5, #0x15] adds r6, r5, #0 adds r6, #0x78 b _08044F3E _08044EE4: adds r0, r5, #0 adds r0, #0x78 ldrb r1, [r0] adds r6, r0, #0 cmp r1, #0 beq _08044F32 ldrb r0, [r5, #0xe] cmp r0, #1 beq _08044F18 cmp r0, #1 blt _08044F3E cmp r0, #4 bgt _08044F3E cmp r0, #3 blt _08044F3E movs r4, #0xff _08044F04: adds r0, r5, #0 bl sub_0806F69C ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] ands r0, r4 cmp r0, #2 bne _08044F04 b _08044F3E _08044F18: ldrb r0, [r5, #0x15] adds r0, #0x10 movs r4, #0x1f ands r0, r4 strb r0, [r5, #0x15] adds r0, r5, #0 bl sub_0806F69C ldrb r0, [r5, #0x15] adds r0, #0x10 ands r0, r4 strb r0, [r5, #0x15] b _08044F3E _08044F32: ldrb r0, [r5, #0xe] cmp r0, #2 bne _08044F3E adds r0, r5, #0 bl sub_0806F69C _08044F3E: movs r0, #0 movs r1, #1 strb r1, [r5, #0xe] strb r0, [r6] movs r0, #0xa0 lsls r0, r0, #3 strh r0, [r5, #0x24] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08044F50 sub_08044F50: @ 0x08044F50 push {r4, lr} adds r4, r0, #0 ldr r1, _08044F6C @ =gUnk_080D16A4 bl sub_0800129E movs r3, #0xc rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, pc} .align 2, 0 _08044F6C: .4byte gUnk_080D16A4 thumb_func_start sub_08044F70 sub_08044F70: @ 0x08044F70 push {lr} ldr r2, _08044F84 @ =gUnk_080D16BC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08044F84: .4byte gUnk_080D16BC thumb_func_start sub_08044F88 sub_08044F88: @ 0x08044F88 push {r4, lr} adds r4, r0, #0 adds r0, #0x45 ldrb r1, [r0] cmp r1, #0 beq _08044FA2 adds r0, #0x3f ldrb r0, [r0] cmp r0, r1 beq _08044FA2 movs r0, #4 strb r0, [r4, #0xc] b _08044FAA _08044FA2: ldr r1, _08044FC0 @ =gUnk_080D16A4 adds r0, r4, #0 bl sub_0804AA30 _08044FAA: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _08044FBC adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _08044FBC: pop {r4, pc} .align 2, 0 _08044FC0: .4byte gUnk_080D16A4 thumb_func_start nullsub_171 nullsub_171: @ 0x08044FC4 bx lr .align 2, 0 thumb_func_start sub_08044FC8 sub_08044FC8: @ 0x08044FC8 push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] movs r0, #0x80 strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_0804A720 adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08044FF8 pop {r4, pc} .align 2, 0 thumb_func_start sub_08044FF8 sub_08044FF8: @ 0x08044FF8 push {r4, lr} adds r4, r0, #0 movs r0, #2 strb r0, [r4, #0xc] bl sub_08000E50 movs r1, #0x1f ands r0, r1 adds r0, #0x1e strb r0, [r4, #0xe] adds r0, r4, #0 adds r0, #0x45 ldrb r0, [r0] adds r4, #0x84 strb r0, [r4] pop {r4, pc} thumb_func_start sub_08045018 sub_08045018: @ 0x08045018 push {r4, r5, lr} adds r5, r0, #0 bl sub_08004274 ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08045086 movs r4, #3 strb r4, [r5, #0xc] movs r0, #1 strb r0, [r5, #0xe] movs r1, #0x24 ldrsh r0, [r5, r1] cmp r0, #0 ble _0804504C movs r0, #0x80 lsls r0, r0, #5 movs r2, #0x24 ldrsh r1, [r5, r2] bl sub_0806FA04 lsrs r0, r0, #8 strb r0, [r5, #0xe] _0804504C: adds r0, r5, #0 bl sub_08049FA0 cmp r0, #0 bne _0804507C bl sub_08000E50 ands r0, r4 cmp r0, #0 beq _0804507C adds r0, r5, #0 bl sub_08049EE4 adds r4, r0, #0 bl sub_08000E50 movs r1, #8 ands r0, r1 adds r0, #0xfc adds r4, r4, r0 movs r0, #0x18 ands r4, r0 strb r4, [r5, #0x15] b _08045086 _0804507C: bl sub_08000E50 movs r1, #0x18 ands r0, r1 strb r0, [r5, #0x15] _08045086: pop {r4, r5, pc} thumb_func_start sub_08045088 sub_08045088: @ 0x08045088 push {r4, lr} adds r4, r0, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080450A6 movs r0, #1 strb r0, [r4, #0xc] _080450A6: pop {r4, pc} thumb_func_start sub_080450A8 sub_080450A8: @ 0x080450A8 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #0x10 mov r8, r0 ldr r1, _0804516C @ =gUnk_080D16D0 ldrb r0, [r0, #0xa] adds r0, r0, r1 ldrb r7, [r0] movs r0, #0x48 subs r0, r0, r7 ldr r1, _08045170 @ =gUnk_03003DBC ldrb r1, [r1] cmp r0, r1 ble _08045160 cmp r7, #0 beq _080450E2 mov r4, sp adds r5, r7, #0 _080450D0: mov r0, r8 ldrb r1, [r0, #0xa] movs r0, #0x57 bl sub_0804AA60 stm r4!, {r0} subs r5, #1 cmp r5, #0 bne _080450D0 _080450E2: ldr r2, _08045174 @ =gUnk_080D16D4 mov sb, r2 movs r5, #0 cmp r5, r7 bge _08045142 _080450EC: lsls r0, r5, #2 add r0, sp ldr r6, [r0] adds r4, r5, #1 adds r0, r4, #0 adds r1, r7, #0 bl __modsi3 lsls r0, r0, #2 add r0, sp ldr r0, [r0] str r0, [r6, #0x54] adds r0, r5, r7 subs r0, #1 adds r1, r7, #0 bl __modsi3 lsls r0, r0, #2 add r0, sp ldr r0, [r0] str r0, [r6, #0x50] movs r1, #0 movs r0, #1 strb r0, [r6, #0xb] strh r1, [r6, #0x36] adds r1, r6, #0 adds r1, #0x3d movs r0, #0xf0 strb r0, [r1] mov r0, sb movs r2, #0 ldrsb r2, [r0, r2] movs r3, #1 ldrsb r3, [r0, r3] mov r0, r8 adds r1, r6, #0 bl sub_08045178 movs r2, #2 add sb, r2 adds r5, r4, #0 cmp r5, r7 blt _080450EC _08045142: mov r0, r8 movs r1, #2 movs r2, #0 bl sub_080A29AC adds r6, r0, #0 cmp r6, #0 beq _0804515A mov r0, r8 adds r1, r6, #0 bl sub_0806FA24 _0804515A: mov r0, r8 bl sub_0805E7BC _08045160: add sp, #0x10 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _0804516C: .4byte gUnk_080D16D0 _08045170: .4byte gUnk_03003DBC _08045174: .4byte gUnk_080D16D4 thumb_func_start sub_08045178 sub_08045178: @ 0x08045178 push {r4, r5, r6, lr} adds r4, r1, #0 adds r5, r2, #0 adds r6, r3, #0 cmp r4, #0 beq _080451C6 bl sub_0804A4E4 adds r0, r4, #0 adds r1, r5, #0 adds r2, r6, #0 bl sub_080002CC cmp r0, #0 bne _080451C6 movs r1, #0x2e ldrsh r0, [r4, r1] adds r2, r0, r5 cmp r2, #0 blt _080451AE ldr r0, _080451C8 @ =gUnk_03000BF0 ldrh r1, [r0, #6] ldrh r0, [r0, #0x1e] adds r1, r1, r0 cmp r2, r1 bge _080451AE strh r2, [r4, #0x2e] _080451AE: movs r1, #0x32 ldrsh r0, [r4, r1] adds r2, r0, r6 cmp r2, #0 blt _080451C6 ldr r0, _080451C8 @ =gUnk_03000BF0 ldrh r1, [r0, #8] ldrh r0, [r0, #0x20] adds r1, r1, r0 cmp r2, r1 bge _080451C6 strh r2, [r4, #0x32] _080451C6: pop {r4, r5, r6, pc} .align 2, 0 _080451C8: .4byte gUnk_03000BF0 thumb_func_start sub_080451CC sub_080451CC: @ 0x080451CC ldrb r3, [r0, #0x10] movs r2, #0xfe ands r2, r3 strb r2, [r1, #0x10] ldr r2, [r0, #0x2c] str r2, [r1, #0x2c] ldr r2, [r0, #0x30] str r2, [r1, #0x30] ldr r2, [r0, #0x34] str r2, [r1, #0x34] adds r0, #0x68 adds r1, #0x68 ldrb r2, [r0, #4] strb r2, [r1, #4] ldrb r2, [r0, #5] strb r2, [r1, #5] ldrb r2, [r0, #6] strb r2, [r1, #6] ldrb r2, [r0, #7] strb r2, [r1, #7] ldrh r2, [r0, #8] strh r2, [r1, #8] ldrh r0, [r0, #0xa] strh r0, [r1, #0xa] bx lr .align 2, 0 thumb_func_start sub_08045200 sub_08045200: @ 0x08045200 push {r4, lr} adds r4, r0, #0 ldr r1, _0804521C @ =gUnk_080D17C0 bl sub_0800129E movs r3, #8 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A9AC pop {r4, pc} .align 2, 0 _0804521C: .4byte gUnk_080D17C0 thumb_func_start sub_08045220 sub_08045220: @ 0x08045220 push {lr} ldr r2, _08045234 @ =gUnk_080D17D8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08045234: .4byte gUnk_080D17D8 thumb_func_start sub_08045238 sub_08045238: @ 0x08045238 push {r4, lr} adds r4, r0, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _0804524C adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _0804524C: ldr r1, _08045258 @ =gUnk_080D17C0 adds r0, r4, #0 bl sub_0804AA30 pop {r4, pc} .align 2, 0 _08045258: .4byte gUnk_080D17C0 thumb_func_start sub_0804525C sub_0804525C: @ 0x0804525C push {r4, lr} adds r4, r0, #0 ldr r3, [r4, #0x50] cmp r4, r3 beq _08045298 cmp r3, #0 beq _08045298 adds r2, r4, #0 adds r2, #0x6c ldrb r1, [r2] movs r0, #0x7f ands r0, r1 strb r0, [r2] ldr r1, [r4, #0x50] ldr r0, [r4, #0x54] str r0, [r1, #0x54] ldr r1, [r4, #0x54] ldr r0, [r4, #0x50] str r0, [r1, #0x50] adds r0, r4, #0 adds r0, #0x6d ldrb r1, [r0] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _08045298 adds r0, r4, #0 adds r1, r3, #0 bl sub_08058800 _08045298: adds r0, r4, #0 bl sub_0804A7D4 pop {r4, pc} thumb_func_start nullsub_22 nullsub_22: @ 0x080452A0 bx lr .align 2, 0 thumb_func_start sub_080452A4 sub_080452A4: @ 0x080452A4 push {r4, r5, lr} adds r4, r0, #0 movs r2, #1 movs r5, #1 strb r5, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_0804A720 adds r0, r4, #0 movs r1, #6 bl sub_08004260 ldrb r0, [r4, #0xb] cmp r0, #0 beq _080452DC movs r0, #2 strb r0, [r4, #0xc] strb r5, [r4, #0xe] b _080452E2 _080452DC: adds r0, r4, #0 bl sub_080452E4 _080452E2: pop {r4, r5, pc} thumb_func_start sub_080452E4 sub_080452E4: @ 0x080452E4 push {r4, lr} adds r4, r0, #0 movs r0, #2 strb r0, [r4, #0xc] bl sub_08000E50 movs r1, #0x1f ands r0, r1 adds r0, #1 strb r0, [r4, #0xe] pop {r4, pc} .align 2, 0 thumb_func_start sub_080452FC sub_080452FC: @ 0x080452FC push {r4, r5, lr} adds r5, r0, #0 bl sub_08004274 ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08045370 movs r4, #3 strb r4, [r5, #0xc] movs r0, #1 strb r0, [r5, #0xe] movs r1, #0x24 ldrsh r0, [r5, r1] cmp r0, #0 ble _08045330 movs r0, #0x80 lsls r0, r0, #5 movs r2, #0x24 ldrsh r1, [r5, r2] bl sub_0806FA04 lsrs r0, r0, #8 strb r0, [r5, #0xe] _08045330: adds r0, r5, #0 bl sub_08049FA0 cmp r0, #0 bne _08045360 bl sub_08000E50 ands r0, r4 cmp r0, #0 beq _08045360 adds r0, r5, #0 bl sub_08049EE4 adds r4, r0, #0 bl sub_08000E50 movs r1, #8 ands r0, r1 adds r0, #0xfc adds r4, r4, r0 movs r0, #0x18 ands r4, r0 strb r4, [r5, #0x15] b _08045370 _08045360: bl sub_08000E50 movs r1, #0x18 ands r0, r1 strb r0, [r5, #0x15] adds r0, r5, #0 bl sub_08045374 _08045370: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08045374 sub_08045374: @ 0x08045374 push {r4, lr} adds r4, r0, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08045392 movs r0, #1 strb r0, [r4, #0xc] _08045392: pop {r4, pc} thumb_func_start sub_08045394 sub_08045394: @ 0x08045394 push {lr} ldr r1, _080453A0 @ =gUnk_080D17E8 bl sub_0800129E pop {pc} .align 2, 0 _080453A0: .4byte gUnk_080D17E8 thumb_func_start sub_080453A4 sub_080453A4: @ 0x080453A4 push {lr} ldr r2, _080453B8 @ =gUnk_080D1800 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080453B8: .4byte gUnk_080D1800 thumb_func_start sub_080453BC sub_080453BC: @ 0x080453BC push {lr} adds r2, r0, #0 adds r0, #0x45 ldrb r1, [r0] cmp r1, #0 beq _080453D6 adds r0, #0x3f ldrb r0, [r0] cmp r0, r1 beq _080453D6 movs r0, #2 strb r0, [r2, #0xc] b _080453DE _080453D6: ldr r1, _080453E0 @ =gUnk_080D17E8 adds r0, r2, #0 bl sub_0804AA30 _080453DE: pop {pc} .align 2, 0 _080453E0: .4byte gUnk_080D17E8 thumb_func_start nullsub_172 nullsub_172: @ 0x080453E4 bx lr .align 2, 0 thumb_func_start sub_080453E8 sub_080453E8: @ 0x080453E8 push {r4, lr} adds r4, r0, #0 movs r1, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] movs r0, #0x80 strh r0, [r4, #0x24] adds r0, r4, #0 adds r0, #0x45 ldrb r1, [r0] adds r0, #0x3f strb r1, [r0] adds r2, r4, #0 adds r2, #0x3c ldrb r1, [r2] movs r0, #0x10 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 bl sub_0804A720 adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08045524 pop {r4, pc} thumb_func_start sub_08045430 sub_08045430: @ 0x08045430 push {r4, lr} adds r4, r0, #0 bl sub_080AEFE0 adds r0, r4, #0 bl sub_08004274 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08045452 adds r0, r4, #0 bl sub_08045524 _08045452: pop {r4, pc} thumb_func_start sub_08045454 sub_08045454: @ 0x08045454 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #0x10 mov r8, r0 ldr r1, _08045518 @ =gUnk_080D180C ldrb r0, [r0, #0xa] adds r0, r0, r1 ldrb r7, [r0] movs r0, #0x48 subs r0, r0, r7 ldr r1, _0804551C @ =gUnk_03003DBC ldrb r1, [r1] cmp r0, r1 ble _0804550C cmp r7, #0 beq _0804548E mov r4, sp adds r5, r7, #0 _0804547C: mov r0, r8 ldrb r1, [r0, #0xa] movs r0, #0x59 bl sub_0804AA60 stm r4!, {r0} subs r5, #1 cmp r5, #0 bne _0804547C _0804548E: ldr r2, _08045520 @ =gUnk_080D1810 mov sb, r2 movs r5, #0 cmp r5, r7 bge _080454EE _08045498: lsls r0, r5, #2 add r0, sp ldr r6, [r0] adds r4, r5, #1 adds r0, r4, #0 adds r1, r7, #0 bl __modsi3 lsls r0, r0, #2 add r0, sp ldr r0, [r0] str r0, [r6, #0x54] adds r0, r5, r7 subs r0, #1 adds r1, r7, #0 bl __modsi3 lsls r0, r0, #2 add r0, sp ldr r0, [r0] str r0, [r6, #0x50] movs r1, #0 movs r0, #1 strb r0, [r6, #0xb] strh r1, [r6, #0x36] adds r1, r6, #0 adds r1, #0x3d movs r0, #0xf0 strb r0, [r1] mov r0, sb movs r2, #0 ldrsb r2, [r0, r2] movs r3, #1 ldrsb r3, [r0, r3] mov r0, r8 adds r1, r6, #0 bl sub_08045178 movs r2, #2 add sb, r2 adds r5, r4, #0 cmp r5, r7 blt _08045498 _080454EE: mov r0, r8 movs r1, #2 movs r2, #0 bl sub_080A29AC adds r6, r0, #0 cmp r6, #0 beq _08045506 mov r0, r8 adds r1, r6, #0 bl sub_0806FA24 _08045506: mov r0, r8 bl sub_0805E7BC _0804550C: add sp, #0x10 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _08045518: .4byte gUnk_080D180C _0804551C: .4byte gUnk_03003DBC _08045520: .4byte gUnk_080D1810 thumb_func_start sub_08045524 sub_08045524: @ 0x08045524 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0xe0 lsls r0, r0, #9 str r0, [r5, #0x20] adds r0, r5, #0 movs r1, #1 movs r2, #8 bl sub_0804A024 adds r4, r0, #0 cmp r4, #0xff beq _08045556 bl sub_08000E50 movs r1, #3 ands r1, r0 cmp r1, #0 bne _08045556 bl sub_08000E50 movs r1, #3 ands r0, r1 strb r0, [r5, #0xe] b _08045596 _08045556: ldrb r0, [r5, #0xe] cmp r0, #0 beq _08045562 subs r0, #1 strb r0, [r5, #0xe] b _080455A8 _08045562: bl sub_08000E50 movs r1, #3 ands r0, r1 strb r0, [r5, #0xe] adds r0, r5, #0 bl sub_08049FA0 cmp r0, #0 bne _0804559E bl sub_08000E50 movs r1, #3 ands r1, r0 cmp r1, #0 beq _0804559E adds r0, r5, #0 bl sub_08049EE4 adds r4, r0, #0 bl sub_08000E50 movs r1, #8 ands r0, r1 adds r0, #0xfc adds r4, r4, r0 _08045596: movs r0, #0x18 ands r4, r0 strb r4, [r5, #0x15] b _080455A8 _0804559E: bl sub_08000E50 movs r1, #0x18 ands r0, r1 strb r0, [r5, #0x15] _080455A8: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080455AC sub_080455AC: @ 0x080455AC push {lr} ldr r1, _080455B8 @ =gUnk_080D1868 bl sub_0800129E pop {pc} .align 2, 0 _080455B8: .4byte gUnk_080D1868 thumb_func_start sub_080455BC sub_080455BC: @ 0x080455BC push {lr} ldr r2, _080455D0 @ =gUnk_080D1880 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080455D0: .4byte gUnk_080D1880 thumb_func_start sub_080455D4 sub_080455D4: @ 0x080455D4 push {lr} ldr r1, _080455E0 @ =gUnk_080D1868 bl sub_0804AA30 pop {pc} .align 2, 0 _080455E0: .4byte gUnk_080D1868 thumb_func_start sub_080455E4 sub_080455E4: @ 0x080455E4 push {lr} adds r3, r0, #0 ldr r0, [r3, #0x50] cmp r3, r0 beq _0804560A cmp r0, #0 beq _0804560A adds r2, r3, #0 adds r2, #0x6c ldrb r1, [r2] movs r0, #0x7f ands r0, r1 strb r0, [r2] ldr r1, [r3, #0x50] ldr r0, [r3, #0x54] str r0, [r1, #0x54] ldr r1, [r3, #0x54] ldr r0, [r3, #0x50] str r0, [r1, #0x50] _0804560A: adds r0, r3, #0 bl sub_0804A7D4 pop {pc} .align 2, 0 thumb_func_start nullsub_23 nullsub_23: @ 0x08045614 bx lr .align 2, 0 thumb_func_start sub_08045618 sub_08045618: @ 0x08045618 push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] movs r0, #0x80 strh r0, [r4, #0x24] adds r2, r4, #0 adds r2, #0x3c ldrb r1, [r2] movs r0, #0x10 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 bl sub_0804A720 adds r0, r4, #0 movs r1, #1 bl sub_08004260 adds r0, r4, #0 bl sub_08045678 pop {r4, pc} .align 2, 0 thumb_func_start sub_08045654 sub_08045654: @ 0x08045654 push {r4, lr} adds r4, r0, #0 bl sub_080AEFE0 adds r0, r4, #0 bl sub_08004274 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08045676 adds r0, r4, #0 bl sub_08045678 _08045676: pop {r4, pc} thumb_func_start sub_08045678 sub_08045678: @ 0x08045678 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0xe0 lsls r0, r0, #9 str r0, [r5, #0x20] ldrb r0, [r5, #0xe] cmp r0, #0 beq _0804568E subs r0, #1 strb r0, [r5, #0xe] b _080456D4 _0804568E: bl sub_08000E50 movs r1, #3 ands r0, r1 strb r0, [r5, #0xe] adds r0, r5, #0 bl sub_08049FA0 cmp r0, #0 bne _080456CA bl sub_08000E50 movs r1, #3 ands r1, r0 cmp r1, #0 beq _080456CA adds r0, r5, #0 bl sub_08049EE4 adds r4, r0, #0 bl sub_08000E50 movs r1, #8 ands r0, r1 adds r0, #0xfc adds r4, r4, r0 movs r0, #0x18 ands r4, r0 strb r4, [r5, #0x15] b _080456D4 _080456CA: bl sub_08000E50 movs r1, #0x18 ands r0, r1 strb r0, [r5, #0x15] _080456D4: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080456D8 sub_080456D8: @ 0x080456D8 push {lr} ldr r1, _080456E4 @ =gUnk_080D1888 bl sub_0800129E pop {pc} .align 2, 0 _080456E4: .4byte gUnk_080D1888 thumb_func_start sub_080456E8 sub_080456E8: @ 0x080456E8 push {lr} ldr r2, _080456FC @ =gUnk_080D18A0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080456FC: .4byte gUnk_080D18A0 thumb_func_start sub_08045700 sub_08045700: @ 0x08045700 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xa] cmp r0, #0 beq _080457D0 ldr r0, [r5, #0x50] ldr r3, [r0, #0x50] adds r0, r5, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080457D0 movs r0, #0x3f ands r0, r1 cmp r0, #0xe beq _08045728 cmp r0, #0x15 bne _08045778 _08045728: adds r1, r5, #0 adds r1, #0x81 ldrb r0, [r1] cmp r0, #0 bne _0804575C movs r0, #3 strb r0, [r5, #0xc] ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldrb r1, [r5, #0xa] lsls r1, r1, #3 ldrb r0, [r5, #0xe] adds r0, #2 orrs r1, r0 adds r0, r5, #0 bl sub_08004260 ldr r0, [r5, #0x50] ldrb r1, [r0, #0xa] lsls r1, r1, #3 ldrb r2, [r5, #0xe] adds r2, #2 orrs r1, r2 bl sub_08004260 _0804575C: ldrb r0, [r5, #0xe] cmp r0, #0 beq _0804576C movs r0, #0xbd lsls r0, r0, #1 bl sub_080A3268 b _080457D0 _0804576C: ldr r0, _08045774 @ =0x00000119 bl sub_080A3268 b _080457D0 .align 2, 0 _08045774: .4byte 0x00000119 _08045778: adds r2, r5, #0 adds r2, #0x45 ldrb r1, [r2] adds r0, r1, #0 cmp r0, #0xff beq _080457D0 movs r0, #0xff strb r0, [r2] ldrb r0, [r5, #0xe] cmp r0, #0 beq _080457D0 adds r0, r3, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #0 beq _080457D0 adds r0, r3, #0 adds r0, #0x76 movs r1, #1 ldrb r2, [r5, #0xb] lsls r1, r2 ldrb r2, [r0] orrs r1, r2 strb r1, [r0] adds r1, r5, #0 adds r1, #0x85 ldrb r0, [r1] cmp r0, #0 bne _080457D0 adds r0, #1 strb r0, [r1] ldrb r1, [r5, #0xa] lsls r1, r1, #3 movs r4, #6 orrs r1, r4 adds r0, r5, #0 bl sub_08004260 ldr r0, [r5, #0x50] ldrb r1, [r0, #0xa] lsls r1, r1, #3 orrs r1, r4 bl sub_08004260 _080457D0: ldr r1, _080457DC @ =gUnk_080D1888 adds r0, r5, #0 bl sub_0804AA30 pop {r4, r5, pc} .align 2, 0 _080457DC: .4byte gUnk_080D1888 thumb_func_start nullsub_173 nullsub_173: @ 0x080457E0 bx lr .align 2, 0 thumb_func_start sub_080457E4 sub_080457E4: @ 0x080457E4 push {r4, lr} adds r4, r0, #0 ldr r0, _08045850 @ =gUnk_02000050 ldrb r0, [r0] movs r2, #0x7f ands r2, r0 cmp r2, #0 bne _08045868 movs r3, #1 strb r3, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 adds r0, #0x80 strb r2, [r0] adds r0, #1 strb r2, [r0] adds r0, #4 strb r2, [r0] strb r2, [r4, #0xf] adds r1, r4, #0 adds r1, #0x82 movs r0, #0x30 strb r0, [r1] adds r0, r4, #0 adds r0, #0x83 strb r2, [r0] ldrb r0, [r4, #0xa] cmp r0, #0 bne _08045854 adds r0, r4, #0 bl sub_08045A00 movs r0, #0x5a movs r1, #1 bl sub_0804AA60 adds r1, r0, #0 cmp r1, #0 beq _0804585A str r4, [r1, #0x50] str r1, [r4, #0x54] ldrb r0, [r4, #0xe] strb r0, [r1, #0xe] ldrb r0, [r4, #0xb] strb r0, [r1, #0xb] adds r0, r4, #0 bl sub_0806FA24 b _0804585A .align 2, 0 _08045850: .4byte gUnk_02000050 _08045854: adds r0, r4, #0 adds r0, #0x63 strb r3, [r0] _0804585A: ldrb r1, [r4, #0xa] lsls r1, r1, #3 movs r0, #1 orrs r1, r0 adds r0, r4, #0 bl sub_08004260 _08045868: pop {r4, pc} .align 2, 0 thumb_func_start sub_0804586C sub_0804586C: @ 0x0804586C push {r4, lr} adds r4, r0, #0 bl sub_08045A28 adds r1, r4, #0 adds r1, #0x82 ldrb r0, [r1] cmp r0, #0 bne _080458AA adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080458C2 ldrb r0, [r4, #0xa] cmp r0, #0 beq _0804589A ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] _0804589A: movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0xa] lsls r1, r1, #3 adds r0, r4, #0 bl sub_08004260 b _080458C2 _080458AA: subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 bne _080458C2 ldrb r0, [r4, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 movs r0, #1 orrs r1, r0 strb r1, [r4, #0x18] _080458C2: pop {r4, pc} thumb_func_start sub_080458C4 sub_080458C4: @ 0x080458C4 push {r4, r5, lr} adds r5, r0, #0 bl sub_08045A28 ldr r1, [r5, #0x50] ldrb r2, [r5, #0xa] cmp r2, #0 beq _080458D6 ldr r1, [r1, #0x50] _080458D6: ldrb r0, [r1, #0xc] cmp r0, #3 bne _08045934 adds r0, r1, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #1 bne _08045934 movs r0, #0 movs r4, #4 strb r4, [r5, #0xc] strb r0, [r5, #0xf] cmp r2, #0 beq _08045934 ldrb r0, [r5, #0x10] movs r1, #0x7f ands r1, r0 strb r1, [r5, #0x10] ldrb r0, [r5, #0xe] cmp r0, #0 beq _0804591C ldrb r1, [r5, #0xa] lsls r1, r1, #3 movs r4, #5 orrs r1, r4 adds r0, r5, #0 bl sub_08004260 ldr r0, [r5, #0x50] ldrb r1, [r0, #0xa] lsls r1, r1, #3 orrs r1, r4 bl sub_08004260 b _08045934 _0804591C: ldrb r1, [r5, #0xa] lsls r1, r1, #3 orrs r1, r4 adds r0, r5, #0 bl sub_08004260 ldr r0, [r5, #0x50] ldrb r1, [r0, #0xa] lsls r1, r1, #3 orrs r1, r4 bl sub_08004260 _08045934: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08045938 sub_08045938: @ 0x08045938 push {r4, lr} adds r4, r0, #0 bl sub_08045A28 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08045980 movs r0, #2 strb r0, [r4, #0xc] ldrb r0, [r4, #0xa] cmp r0, #0 beq _08045980 ldrb r0, [r4, #0xe] cmp r0, #0 bne _08045966 adds r1, r4, #0 adds r1, #0x3f movs r0, #0x32 b _0804597E _08045966: ldr r0, [r4, #0x50] ldr r2, [r0, #0x50] adds r2, #0x76 movs r0, #1 ldrb r1, [r4, #0xb] lsls r0, r1 ldrb r1, [r2] orrs r0, r1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x31 _0804597E: strb r0, [r1] _08045980: pop {r4, pc} .align 2, 0 thumb_func_start sub_08045984 sub_08045984: @ 0x08045984 push {r4, lr} adds r4, r0, #0 bl sub_08045A28 ldrb r0, [r4, #0xf] cmp r0, #0 bne _080459A6 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080459FE movs r0, #0x20 strb r0, [r4, #0xf] b _080459FE _080459A6: ldr r2, [r4, #0x50] ldrb r0, [r4, #0xa] cmp r0, #0 beq _080459B0 ldr r2, [r2, #0x50] _080459B0: ldrb r0, [r2, #0x14] cmp r0, #2 bhi _080459FE ldrb r0, [r2, #0xc] cmp r0, #3 beq _080459FE movs r0, #0 movs r3, #1 strb r3, [r4, #0xc] strb r0, [r4, #0xf] adds r1, r4, #0 adds r1, #0x81 strb r0, [r1] adds r1, #4 strb r0, [r1] ldrb r0, [r4, #0xa] cmp r0, #0 beq _080459DA subs r1, #0x46 movs r0, #0x33 strb r0, [r1] _080459DA: adds r0, r2, #0 adds r0, #0x75 ldrb r0, [r0] ldrb r1, [r4, #0xb] asrs r0, r1 ands r0, r3 cmp r0, #0 beq _080459EE strb r3, [r4, #0xe] b _080459F0 _080459EE: strb r0, [r4, #0xe] _080459F0: ldrb r1, [r4, #0xa] lsls r1, r1, #3 movs r0, #1 orrs r1, r0 adds r0, r4, #0 bl sub_08004260 _080459FE: pop {r4, pc} thumb_func_start sub_08045A00 sub_08045A00: @ 0x08045A00 push {lr} adds r1, r0, #0 ldrb r3, [r1, #0xb] lsls r3, r3, #1 ldr r0, _08045A24 @ =gUnk_080D18B4 adds r3, r3, r0 ldr r0, [r1, #0x50] movs r2, #0 ldrsb r2, [r3, r2] lsls r2, r2, #0x10 ldrb r3, [r3, #1] lsls r3, r3, #0x18 asrs r3, r3, #0x18 adds r3, #3 lsls r3, r3, #0x10 bl sub_0806FA48 pop {pc} .align 2, 0 _08045A24: .4byte gUnk_080D18B4 thumb_func_start sub_08045A28 sub_08045A28: @ 0x08045A28 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 adds r0, #0x82 ldrb r0, [r0] cmp r0, #0 bne _08045A3E adds r0, r5, #0 bl sub_08004274 _08045A3E: adds r6, r5, #0 adds r6, #0x5a ldrb r0, [r6] movs r1, #0x70 mov r8, r1 mov r4, r8 ands r4, r0 ldrb r7, [r5, #0xa] cmp r7, #0 bne _08045AF8 adds r0, r5, #0 bl sub_08045A00 adds r1, r5, #0 adds r1, #0x83 ldrb r0, [r1] adds r2, r1, #0 cmp r0, #1 beq _08045AA4 cmp r0, #1 bgt _08045A6E cmp r0, #0 beq _08045A78 b _08045B7C _08045A6E: cmp r0, #2 beq _08045ABC cmp r0, #3 beq _08045AE8 b _08045B7C _08045A78: cmp r4, #0x20 beq _08045A8C cmp r4, #0x20 bhi _08045A86 cmp r4, #0 beq _08045A96 b _08045B7C _08045A86: cmp r4, #0x40 beq _08045A96 b _08045B7C _08045A8C: movs r0, #1 strb r0, [r1] movs r1, #0x9f lsls r1, r1, #1 b _08045B5A _08045A96: movs r0, #2 strb r0, [r2] ldr r1, _08045AA0 @ =0x0000013F b _08045B5A .align 2, 0 _08045AA0: .4byte 0x0000013F _08045AA4: cmp r4, #0 beq _08045AB0 cmp r4, #0x10 bne _08045B7C strb r7, [r1] b _08045B58 _08045AB0: movs r0, #2 strb r0, [r1] ldr r1, _08045AB8 @ =0x0000013F b _08045B5A .align 2, 0 _08045AB8: .4byte 0x0000013F _08045ABC: cmp r4, #0x20 beq _08045AD0 cmp r4, #0x20 bhi _08045ACA cmp r4, #0x10 beq _08045ADA b _08045B7C _08045ACA: cmp r4, #0x40 beq _08045ADE b _08045B7C _08045AD0: movs r0, #1 strb r0, [r1] movs r1, #0x9f lsls r1, r1, #1 b _08045B5A _08045ADA: strb r7, [r1] b _08045B58 _08045ADE: strb r0, [r1] ldr r1, _08045AE4 @ =0x0000013F b _08045B5A .align 2, 0 _08045AE4: .4byte 0x0000013F _08045AE8: cmp r4, #0 bne _08045B7C movs r0, #2 strb r0, [r1] ldr r1, _08045AF4 @ =0x0000013F b _08045B5A .align 2, 0 _08045AF4: .4byte 0x0000013F _08045AF8: ldr r0, [r5, #0x50] ldr r3, _08045B18 @ =0xFFFF0000 adds r1, r5, #0 movs r2, #0 bl sub_0806FA48 adds r2, r5, #0 adds r2, #0x83 ldrb r0, [r2] cmp r0, #1 beq _08045B3A cmp r0, #1 bgt _08045B1C cmp r0, #0 beq _08045B22 b _08045B7C .align 2, 0 _08045B18: .4byte 0xFFFF0000 _08045B1C: cmp r0, #2 beq _08045B68 b _08045B7C _08045B22: ldrb r0, [r6] mov r1, r8 ands r1, r0 cmp r1, #0x10 beq _08045B54 cmp r1, #0x20 bne _08045B7C movs r0, #1 strb r0, [r2] movs r1, #0x9f lsls r1, r1, #1 b _08045B5A _08045B3A: ldrb r0, [r6] mov r1, r8 ands r1, r0 cmp r1, #0 beq _08045B4A cmp r1, #0x10 beq _08045B54 b _08045B7C _08045B4A: strb r1, [r2] ldr r1, _08045B50 @ =0x0000013F b _08045B5A .align 2, 0 _08045B50: .4byte 0x0000013F _08045B54: movs r0, #2 strb r0, [r2] _08045B58: ldr r1, _08045B64 @ =0x0000013B _08045B5A: adds r0, r5, #0 bl sub_0801D2B4 b _08045B7C .align 2, 0 _08045B64: .4byte 0x0000013B _08045B68: ldrb r0, [r6] mov r1, r8 ands r1, r0 cmp r1, #0 bne _08045B7C strb r1, [r2] ldr r1, _08045B84 @ =0x0000013F adds r0, r5, #0 bl sub_0801D2B4 _08045B7C: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08045B84: .4byte 0x0000013F thumb_func_start sub_08045B88 sub_08045B88: @ 0x08045B88 push {lr} ldr r1, _08045B94 @ =gUnk_080D19FC bl sub_0800129E pop {pc} .align 2, 0 _08045B94: .4byte gUnk_080D19FC thumb_func_start sub_08045B98 sub_08045B98: @ 0x08045B98 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] ldr r1, _08045BC4 @ =gUnk_080D1A14 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0800445C pop {r4, pc} .align 2, 0 _08045BC4: .4byte gUnk_080D1A14 thumb_func_start sub_08045BC8 sub_08045BC8: @ 0x08045BC8 push {r4, lr} adds r4, r0, #0 adds r0, #0x3f ldrb r0, [r0] cmp r0, #1 bne _08045C2C adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r2, #0x7f adds r0, r2, #0 ands r0, r1 cmp r0, #0x42 bne _08045C2C movs r1, #0 movs r0, #4 strb r0, [r4, #0xc] strb r1, [r4, #0xd] movs r0, #0x28 strb r0, [r4, #0xe] ldrb r1, [r4, #0x10] adds r0, r2, #0 ands r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #4 bl sub_08046030 adds r0, r4, #0 movs r1, #3 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _08045C16 ldrh r0, [r1, #0x36] subs r0, #8 strh r0, [r1, #0x36] _08045C16: ldr r0, _08045C30 @ =gUnk_03003F80 adds r0, #0x27 movs r1, #0xff strb r1, [r0] ldr r0, _08045C34 @ =0x000001BB bl sub_08004488 adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 _08045C2C: pop {r4, pc} .align 2, 0 _08045C30: .4byte gUnk_03003F80 _08045C34: .4byte 0x000001BB thumb_func_start nullsub_174 nullsub_174: @ 0x08045C38 bx lr .align 2, 0 thumb_func_start sub_08045C3C sub_08045C3C: @ 0x08045C3C push {r4, lr} adds r4, r0, #0 movs r0, #0 strb r0, [r4, #0xf] ldrh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x78 movs r2, #0 strh r1, [r0] ldrh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x7a strh r0, [r1] strb r2, [r4, #0x14] movs r0, #0x10 strb r0, [r4, #0x15] movs r0, #5 strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xe] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #0xb1 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 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0 bl sub_08046030 adds r0, r4, #0 bl sub_08095C48 ldr r1, _08045CA0 @ =gUnk_08015AC4 adds r0, r4, #0 bl sub_0807DAD0 adds r0, r4, #0 bl sub_0807DD50 pop {r4, pc} .align 2, 0 _08045CA0: .4byte gUnk_08015AC4 thumb_func_start sub_08045CA4 sub_08045CA4: @ 0x08045CA4 push {r4, r5, lr} adds r4, r0, #0 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] ldrb r0, [r4, #0xe] adds r5, r0, #0 cmp r5, #0 beq _08045CC0 subs r0, #1 strb r0, [r4, #0xe] b _08045CD8 _08045CC0: adds r0, r4, #0 movs r1, #0 bl sub_08045F54 cmp r0, #0 beq _08045CD8 adds r0, r4, #0 bl sub_08045FF0 strb r5, [r4, #0xd] movs r0, #1 strb r0, [r4, #0xf] _08045CD8: pop {r4, r5, pc} .align 2, 0 thumb_func_start nullsub_24 nullsub_24: @ 0x08045CDC bx lr .align 2, 0 thumb_func_start sub_08045CE0 sub_08045CE0: @ 0x08045CE0 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xd] cmp r0, #4 bls _08045CF0 b _08045DF8 _08045CF0: lsls r0, r0, #2 ldr r1, _08045CFC @ =_08045D00 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08045CFC: .4byte _08045D00 _08045D00: @ jump table .4byte _08045D14 @ case 0 .4byte _08045D36 @ case 1 .4byte _08045D60 @ case 2 .4byte _08045D9A @ case 3 .4byte _08045DBC @ case 4 _08045D14: movs r6, #1 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08045DF8 strb r6, [r4, #0xd] movs r0, #0x3c strb r0, [r4, #0xe] movs r0, #0x10 strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_08045F98 b _08045DB2 _08045D36: movs r6, #1 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _08045DF8 movs r0, #2 strb r0, [r4, #0xd] movs r0, #0x20 strb r0, [r4, #0xe] strb r1, [r4, #0xf] adds r0, r4, #0 bl sub_08045F98 adds r0, r4, #0 movs r1, #2 bl sub_08046030 b _08045DF8 _08045D60: movs r6, #1 adds r0, r4, #0 bl sub_0804604C adds r5, r4, #0 adds r5, #0x5a ldrb r1, [r5] adds r0, r6, #0 ands r0, r1 cmp r0, #0 beq _08045DF8 adds r0, r4, #0 movs r1, #4 movs r2, #0 bl sub_0804A98C adds r1, r0, #0 cmp r1, #0 beq _08045DF8 str r4, [r1, #0x50] ldrb r0, [r4, #0x15] strb r0, [r1, #0x15] ldrb r1, [r5] movs r0, #0xfe ands r0, r1 strb r0, [r5] movs r0, #3 strb r0, [r4, #0xd] b _08045DF8 _08045D9A: movs r6, #2 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08045DF8 movs r0, #4 strb r0, [r4, #0xd] movs r0, #0x50 strb r0, [r4, #0xe] _08045DB2: adds r0, r4, #0 movs r1, #1 bl sub_08046030 b _08045DF8 _08045DBC: movs r6, #2 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08045DF8 adds r0, r4, #0 movs r1, #0 bl sub_08045F54 adds r5, r0, #0 cmp r5, #0 beq _08045DEC movs r0, #1 strb r0, [r4, #0xd] movs r0, #0x3c strb r0, [r4, #0xe] movs r0, #0x10 strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_08045F98 b _08045DF8 _08045DEC: adds r0, r4, #0 bl sub_08045FA0 movs r0, #0x50 strb r0, [r4, #0xe] strb r5, [r4, #0xf] _08045DF8: adds r0, r4, #0 adds r1, r6, #0 bl sub_08045F54 adds r5, r0, #0 cmp r5, #0 bne _08045E12 adds r0, r4, #0 bl sub_08045FA0 strb r5, [r4, #0xd] strb r5, [r4, #0xe] strb r5, [r4, #0xf] _08045E12: pop {r4, r5, r6, pc} thumb_func_start sub_08045E14 sub_08045E14: @ 0x08045E14 push {r4, lr} adds r4, r0, #0 ldr r0, _08045E2C @ =gUnk_03003F80 adds r0, #0x27 movs r1, #0xff strb r1, [r0] ldrb r0, [r4, #0xd] cmp r0, #0 beq _08045E30 cmp r0, #1 beq _08045E70 b _08045EBA .align 2, 0 _08045E2C: .4byte gUnk_03003F80 _08045E30: ldrb r0, [r4, #0xe] cmp r0, #0 bne _08045E6A adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08045EBA movs r0, #1 strb r0, [r4, #0xd] adds r0, r4, #0 bl sub_08045F98 adds r0, r4, #0 movs r1, #5 bl sub_08046030 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] b _08045EBA _08045E6A: subs r0, #1 strb r0, [r4, #0xe] b _08045EBA _08045E70: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08045EBA movs r1, #0 movs r0, #5 strb r0, [r4, #0xc] strb r1, [r4, #0xd] adds r0, r4, #0 bl sub_08046030 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC adds r2, r0, #0 cmp r2, #0 beq _08045EBA adds r3, r2, #0 adds r3, #0x29 ldrb r1, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r3] ldrh r0, [r2, #0x36] subs r0, #0xc strh r0, [r2, #0x36] adds r0, r2, #0 movs r1, #2 bl sub_0805E3A0 _08045EBA: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0800445C pop {r4, pc} thumb_func_start sub_08045EC8 sub_08045EC8: @ 0x08045EC8 push {lr} movs r1, #0 bl sub_0807DD94 pop {pc} .align 2, 0 thumb_func_start sub_08045ED4 sub_08045ED4: @ 0x08045ED4 push {lr} bl sub_08045FA0 pop {pc} thumb_func_start sub_08045EDC sub_08045EDC: @ 0x08045EDC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] adds r1, r0, #0 cmp r1, #0 bne _08045F00 adds r0, #1 strb r0, [r4, #0xd] movs r0, #0x20 strb r0, [r4, #0xe] strb r1, [r4, #0xf] adds r0, r4, #0 bl sub_08045F98 adds r0, r4, #0 movs r1, #2 bl sub_08046030 _08045F00: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0804604C adds r3, r4, #0 adds r3, #0x5a ldrb r1, [r3] movs r2, #1 ands r2, r1 cmp r2, #0 beq _08045F38 movs r0, #0xfe ands r0, r1 strb r0, [r3] adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] adds r0, r4, #0 bl sub_080954AC ldr r0, _08045F34 @ =0x0000018D bl sub_08004488 b _08045F4E .align 2, 0 _08045F34: .4byte 0x0000018D _08045F38: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08045F4E movs r0, #5 strb r0, [r4, #0xc] strb r2, [r4, #0xd] adds r0, r4, #0 movs r1, #1 bl sub_08046030 _08045F4E: pop {r4, pc} thumb_func_start nullsub_25 nullsub_25: @ 0x08045F50 bx lr .align 2, 0 thumb_func_start sub_08045F54 sub_08045F54: @ 0x08045F54 push {r4, r5, r6, lr} adds r6, r0, #0 adds r5, r1, #0 movs r0, #1 bl sub_08049DF4 adds r4, r0, #0 cmp r4, #0 beq _08045F90 adds r0, r6, #0 adds r1, r4, #0 movs r2, #0x20 movs r3, #0x20 bl sub_080041A0 cmp r0, #0 bne _08045F90 cmp r5, #2 beq _08045F94 movs r3, #0x50 cmp r5, #0 beq _08045F82 movs r3, #0x58 _08045F82: adds r0, r6, #0 adds r1, r4, #0 adds r2, r3, #0 bl sub_080041A0 cmp r0, #0 bne _08045F94 _08045F90: movs r0, #0 b _08045F96 _08045F94: movs r0, #1 _08045F96: pop {r4, r5, r6, pc} thumb_func_start sub_08045F98 sub_08045F98: @ 0x08045F98 movs r1, #0x10 strb r1, [r0, #0x15] movs r0, #1 bx lr thumb_func_start sub_08045FA0 sub_08045FA0: @ 0x08045FA0 push {lr} adds r2, r0, #0 movs r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0x10] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2, #0x18] adds r3, r2, #0 adds r3, #0x29 ldrb r1, [r3] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r3] adds r0, r2, #0 adds r0, #0x78 ldrh r0, [r0] movs r1, #0 strh r0, [r2, #0x2e] adds r0, r2, #0 adds r0, #0x7a ldrh r0, [r0] strh r0, [r2, #0x32] adds r0, r2, #0 adds r0, #0x62 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, r2, #0 movs r1, #0 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_08045FF0 sub_08045FF0: @ 0x08045FF0 push {r4, lr} adds r4, r0, #0 movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 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, #8 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 bl sub_08045F98 adds r0, r4, #0 movs r1, #1 bl sub_08046030 pop {r4, pc} thumb_func_start sub_08046030 sub_08046030: @ 0x08046030 push {lr} adds r3, r1, #0 ldrb r1, [r0, #0x15] lsrs r1, r1, #3 ldr r2, _08046048 @ =gUnk_080D1A38 adds r3, r3, r2 ldrb r2, [r3] orrs r1, r2 bl sub_08004260 pop {pc} .align 2, 0 _08046048: .4byte gUnk_080D1A38 thumb_func_start sub_0804604C sub_0804604C: @ 0x0804604C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xe] cmp r0, #0 beq _08046070 subs r0, #1 strb r0, [r2, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xf bhi _08046070 ldr r1, _08046074 @ =gUnk_080D1A3E ldrb r0, [r2, #0xe] adds r0, r0, r1 ldrb r1, [r0] adds r0, r2, #0 adds r0, #0x63 strb r1, [r0] _08046070: pop {pc} .align 2, 0 _08046074: .4byte gUnk_080D1A3E thumb_func_start sub_08046078 sub_08046078: @ 0x08046078 push {r4, r5, r6, r7, lr} adds r7, r0, #0 ldr r0, _08046114 @ =gUnk_03003F80 adds r0, #0x27 movs r1, #0 strb r1, [r0] ldr r4, _08046118 @ =gUnk_080D1A4E ldr r6, _0804611C @ =gUnk_03000BF0 movs r5, #4 _0804608A: adds r0, r7, #0 movs r1, #2 movs r2, #0x40 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _080460AE ldrh r0, [r4] ldrh r2, [r6, #6] adds r0, r0, r2 strh r0, [r1, #0x2e] adds r4, #2 ldrh r0, [r4] ldrh r2, [r6, #8] adds r0, r0, r2 strh r0, [r1, #0x32] adds r4, #2 _080460AE: subs r5, #1 cmp r5, #0 bge _0804608A movs r0, #0xb7 lsls r0, r0, #1 bl sub_08004488 ldr r0, _08046120 @ =0x000007A2 movs r1, #1 bl sub_0807BA8C ldr r0, _08046124 @ =0x000007A3 movs r1, #1 bl sub_0807BA8C ldr r0, _08046128 @ =0x000007A5 movs r1, #1 bl sub_0807BA8C ldr r0, _0804612C @ =0x000007A6 movs r1, #1 bl sub_0807BA8C ldr r0, _08046130 @ =0x000007A7 movs r1, #1 bl sub_0807BA8C adds r0, r7, #0 movs r1, #0x43 movs r2, #0x40 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _08046102 adds r0, r7, #0 bl sub_0806FA24 movs r0, #0xc2 lsls r0, r0, #1 bl sub_08004488 _08046102: ldr r1, [r7, #0x54] cmp r1, #0 beq _0804610C movs r0, #0xff strb r0, [r1, #0xc] _0804610C: adds r0, r7, #0 bl sub_0804AA1C pop {r4, r5, r6, r7, pc} .align 2, 0 _08046114: .4byte gUnk_03003F80 _08046118: .4byte gUnk_080D1A4E _0804611C: .4byte gUnk_03000BF0 _08046120: .4byte 0x000007A2 _08046124: .4byte 0x000007A3 _08046128: .4byte 0x000007A5 _0804612C: .4byte 0x000007A6 _08046130: .4byte 0x000007A7 thumb_func_start sub_08046134 sub_08046134: @ 0x08046134 push {lr} ldr r2, _08046148 @ =gUnk_080D1A64 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08046148: .4byte gUnk_080D1A64 thumb_func_start sub_0804614C sub_0804614C: @ 0x0804614C push {r4, r5, r6, lr} adds r6, r0, #0 ldr r0, _08046248 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x3d bhi _08046244 movs r0, #0x22 bl sub_080A7EE0 adds r1, r0, #0 movs r4, #0 strb r4, [r1, #0xa] str r6, [r1, #0x50] ldr r0, [r6, #0x64] str r1, [r0, #0x14] movs r0, #0x63 movs r1, #0 bl sub_0804AA60 adds r1, r0, #0 str r6, [r1, #0x50] ldr r0, [r6, #0x64] str r1, [r0, #0x10] movs r0, #0x61 movs r1, #0 bl sub_0804AA60 adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #0x61 movs r1, #1 bl sub_0804AA60 adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #0x61 movs r1, #2 bl sub_0804AA60 adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #0x61 movs r1, #3 bl sub_0804AA60 adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #0x61 movs r1, #4 bl sub_0804AA60 adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #0x61 movs r1, #5 bl sub_0804AA60 adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #0x61 movs r1, #6 bl sub_0804AA60 adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #0x61 movs r1, #7 bl sub_0804AA60 adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #1 strb r0, [r6, #0xc] ldrb r2, [r6, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 movs r2, #0x80 orrs r0, r2 strb r0, [r6, #0x1b] ldrb r0, [r6, #0x19] ands r1, r0 orrs r1, r2 strb r1, [r6, #0x19] adds r0, r6, #0 adds r0, #0x38 movs r5, #2 strb r5, [r0] adds r0, #0x40 strb r4, [r0] adds r0, #1 strb r4, [r0] adds r1, r6, #0 adds r1, #0x70 movs r0, #0x3c strh r0, [r1] ldr r0, _0804624C @ =gUnk_02019EE0 movs r4, #0x80 lsls r4, r4, #8 adds r1, r4, #0 bl sub_0801D630 ldr r0, _08046250 @ =gUnk_02002F00 adds r1, r4, #0 bl sub_0801D630 adds r0, r6, #0 movs r1, #0 bl sub_0804660C adds r0, r6, #0 bl sub_080464C0 ldr r0, _08046254 @ =gUnk_03001160 adds r1, r0, #0 adds r1, #0x38 strb r5, [r1] bl sub_08016A04 ldr r1, _08046258 @ =sub_08046498 adds r0, r6, #0 movs r2, #0 bl sub_08052D74 _08046244: pop {r4, r5, r6, pc} .align 2, 0 _08046248: .4byte gUnk_03003DBC _0804624C: .4byte gUnk_02019EE0 _08046250: .4byte gUnk_02002F00 _08046254: .4byte gUnk_03001160 _08046258: .4byte sub_08046498 thumb_func_start sub_0804625C sub_0804625C: @ 0x0804625C push {r4, lr} adds r4, r0, #0 adds r3, r4, #0 adds r3, #0x79 ldrb r2, [r3] movs r0, #0x80 ands r0, r2 cmp r0, #0 beq _08046286 movs r1, #0x7f ands r1, r2 movs r0, #0x40 orrs r1, r0 strb r1, [r3] movs r0, #3 ands r1, r0 lsls r1, r1, #6 adds r0, r4, #0 bl sub_0804660C b _0804629A _08046286: movs r0, #0x40 ands r0, r2 cmp r0, #0 beq _0804629A movs r0, #0xbf ands r0, r2 strb r0, [r3] adds r0, r4, #0 bl sub_080464C0 _0804629A: bl sub_080465C8 ldr r0, [r4, #0x64] ldr r0, [r0] adds r0, #0x6c ldrh r1, [r0] movs r3, #0x38 ands r3, r1 cmp r3, #0 beq _080462D6 movs r1, #0 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r4, #0xe] adds r0, r4, #0 adds r0, #0x7a movs r2, #0 strh r1, [r0] adds r0, #2 strb r2, [r0] adds r0, #1 strb r2, [r0] adds r1, r4, #0 adds r1, #0x70 movs r0, #0x3c strh r0, [r1] adds r0, r4, #0 adds r0, #0x80 strb r2, [r0] b _0804632A _080462D6: movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _08046302 movs r0, #3 strb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x70 movs r1, #0 movs r0, #0x3c strh r0, [r2] strb r1, [r4, #0xe] adds r0, r4, #0 adds r0, #0x7a strh r3, [r0] adds r0, #2 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, #3 strb r1, [r0] b _0804632A _08046302: movs r0, #0x80 lsls r0, r0, #1 ands r0, r1 cmp r0, #0 beq _0804632A adds r1, r4, #0 adds r1, #0x70 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0804632A movs r0, #0xb4 lsls r0, r0, #1 strh r0, [r1] adds r0, r4, #0 movs r1, #1 bl sub_08046634 _0804632A: pop {r4, pc} thumb_func_start sub_0804632C sub_0804632C: @ 0x0804632C push {r4, r5, lr} adds r4, r0, #0 bl sub_080465C8 adds r0, r4, #0 bl sub_080466A8 adds r3, r4, #0 adds r3, #0x7a ldrh r0, [r3] adds r2, r0, #1 movs r5, #0 strh r2, [r3] lsls r1, r2, #0x10 ldr r0, _08046360 @ =0x059F0000 cmp r1, r0 bls _08046364 movs r0, #0 strh r0, [r3] adds r0, r4, #0 adds r0, #0x7c strb r5, [r0] adds r0, #1 strb r5, [r0] adds r0, #3 b _08046388 .align 2, 0 _08046360: .4byte 0x059F0000 _08046364: lsls r0, r2, #0x10 lsrs r1, r0, #0x10 cmp r1, #0x78 bne _08046374 adds r0, r4, #0 bl sub_08046668 b _0804638A _08046374: movs r0, #0xa5 lsls r0, r0, #3 cmp r1, r0 bne _0804638A adds r0, r4, #0 adds r0, #0x78 strb r5, [r0] adds r0, #5 strb r5, [r0] adds r0, #2 _08046388: strb r5, [r0] _0804638A: ldr r0, [r4, #0x64] ldr r0, [r0] adds r0, #0x6c ldrh r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080463B8 adds r1, r4, #0 adds r1, #0x70 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _080463B8 movs r0, #0xb4 lsls r0, r0, #1 strh r0, [r1] adds r0, r4, #0 movs r1, #0 bl sub_08046634 _080463B8: ldr r0, [r4, #0x64] ldr r0, [r0] adds r0, #0x6c ldrh r1, [r0] movs r0, #0x38 ands r0, r1 cmp r0, #0 bne _080463E0 movs r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x70 movs r2, #0 movs r0, #0x3c strh r0, [r1] adds r0, r4, #0 adds r0, #0x78 strb r2, [r0] adds r0, #8 strb r2, [r0] _080463E0: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080463E4 sub_080463E4: @ 0x080463E4 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_080465C8 adds r1, r4, #0 adds r1, #0x70 ldrh r0, [r1] subs r0, #1 movs r5, #0 strh r0, [r1] ldr r2, _0804643C @ =0x0000FFFF adds r6, r2, #0 lsls r0, r0, #0x10 cmp r0, #0 bne _08046410 movs r0, #0xb4 lsls r0, r0, #1 strh r0, [r1] adds r0, r4, #0 movs r1, #1 bl sub_08046634 _08046410: adds r0, r4, #0 bl sub_080466A8 adds r3, r4, #0 adds r3, #0x7a ldrh r0, [r3] adds r2, r0, #1 strh r2, [r3] adds r0, r2, #0 ands r0, r6 ldr r1, _08046440 @ =0x0000059F cmp r0, r1 bls _08046444 movs r0, #0 strh r0, [r3] adds r0, r4, #0 adds r0, #0x7c strb r5, [r0] adds r0, #1 strb r5, [r0] adds r0, #3 b _08046468 .align 2, 0 _0804643C: .4byte 0x0000FFFF _08046440: .4byte 0x0000059F _08046444: lsls r0, r2, #0x10 lsrs r1, r0, #0x10 cmp r1, #0x78 bne _08046454 adds r0, r4, #0 bl sub_08046668 b _0804646A _08046454: movs r0, #0xa5 lsls r0, r0, #3 cmp r1, r0 bne _0804646A adds r0, r4, #0 adds r0, #0x78 strb r5, [r0] adds r0, #5 strb r5, [r0] adds r0, #2 _08046468: strb r5, [r0] _0804646A: adds r0, r4, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _08046494 movs r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x70 movs r2, #0 movs r0, #0x3c strh r0, [r1] adds r0, r4, #0 adds r0, #0x78 strb r2, [r0] adds r0, #8 strb r2, [r0] movs r0, #0x94 lsls r0, r0, #1 bl sub_080A3268 _08046494: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08046498 sub_08046498: @ 0x08046498 push {r4, r5, lr} adds r5, r0, #0 ldr r0, _080464B8 @ =gUnk_02019EE0 movs r4, #0x80 lsls r4, r4, #8 adds r1, r4, #0 bl sub_0801D630 ldr r0, _080464BC @ =gUnk_02002F00 adds r1, r4, #0 bl sub_0801D630 adds r0, r5, #0 bl sub_080464C0 pop {r4, r5, pc} .align 2, 0 _080464B8: .4byte gUnk_02019EE0 _080464BC: .4byte gUnk_02002F00 thumb_func_start sub_080464C0 sub_080464C0: @ 0x080464C0 push {r4, r5, r6, lr} ldr r1, _08046508 @ =gUnk_080D1A74 ldrb r0, [r0, #0x14] lsrs r0, r0, #6 lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl sub_080197D4 bl sub_08046518 movs r6, #0x20 ldr r4, _0804650C @ =gUnk_02019EE0 ldr r0, _08046510 @ =0x00003260 adds r5, r4, r0 _080464DE: adds r0, r4, #0 adds r1, r5, #0 movs r2, #0x40 bl sub_0801D66C movs r0, #0x80 lsls r0, r0, #1 adds r5, r5, r0 adds r4, #0x40 subs r6, #1 cmp r6, #0 bne _080464DE ldr r0, _0804650C @ =gUnk_02019EE0 movs r1, #0x80 lsls r1, r1, #4 bl sub_0801D630 ldr r1, _08046514 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] pop {r4, r5, r6, pc} .align 2, 0 _08046508: .4byte gUnk_080D1A74 _0804650C: .4byte gUnk_02019EE0 _08046510: .4byte 0x00003260 _08046514: .4byte gUnk_02000070 thumb_func_start sub_08046518 sub_08046518: @ 0x08046518 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 ldr r1, _080465AC @ =gUnk_02010654 ldr r2, _080465B0 @ =0xFFFFBCB0 adds r0, r1, r2 ldr r3, _080465B4 @ =0xFFFFECB0 adds r2, r1, r3 ldr r7, _080465B8 @ =0x00006658 adds r7, r1, r7 str r7, [sp, #4] ldr r3, _080465BC @ =0xFFFFD658 adds r6, r1, r3 movs r1, #0x10 _0804653A: movs r5, #0x10 movs r7, #0x80 adds r7, r7, r0 mov sl, r7 adds r3, r2, #0 adds r3, #0x80 str r3, [sp] ldr r7, [sp, #4] adds r7, #0x40 mov r8, r7 movs r3, #0x40 adds r3, r3, r6 mov sb, r3 subs r1, #1 mov ip, r1 adds r3, r0, #0 adds r3, #0x20 adds r4, r2, #0 adds r4, #0x20 _08046560: ldrh r0, [r3] strh r0, [r4] ldrh r0, [r3] lsls r0, r0, #1 ldr r7, _080465AC @ =gUnk_02010654 adds r0, r0, r7 ldrh r1, [r0] ldr r0, [sp, #4] adds r2, r0, r5 ldr r7, _080465C0 @ =gUnk_080B37A0 adds r0, r1, r7 ldrb r0, [r0] strb r0, [r2] adds r2, r6, r5 ldr r0, _080465C4 @ =gUnk_080B3E80 adds r1, r1, r0 ldrb r0, [r1] strb r0, [r2] subs r3, #2 subs r4, #2 subs r5, #1 cmp r5, #0 bne _08046560 mov r0, sl ldr r2, [sp] mov r1, r8 str r1, [sp, #4] mov r6, sb mov r1, ip cmp r1, #0 bne _0804653A 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 _080465AC: .4byte gUnk_02010654 _080465B0: .4byte 0xFFFFBCB0 _080465B4: .4byte 0xFFFFECB0 _080465B8: .4byte 0x00006658 _080465BC: .4byte 0xFFFFD658 _080465C0: .4byte gUnk_080B37A0 _080465C4: .4byte gUnk_080B3E80 thumb_func_start sub_080465C8 sub_080465C8: @ 0x080465C8 push {r4, lr} ldr r3, _080465FC @ =gUnk_03001160 movs r0, #0x2e ldrsh r2, [r3, r0] ldr r1, _08046600 @ =gUnk_03000BF0 ldrh r0, [r1, #6] subs r2, r2, r0 asrs r2, r2, #3 movs r4, #0x32 ldrsh r0, [r3, r4] ldrh r1, [r1, #8] subs r0, r0, r1 asrs r0, r0, #3 ldr r1, _08046604 @ =gUnk_02019EE0 lsls r0, r0, #7 adds r0, r0, r2 lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] cmp r0, #0 beq _080465F8 ldr r1, _08046608 @ =gUnk_03003F80 movs r0, #1 strb r0, [r1, #0x14] _080465F8: pop {r4, pc} .align 2, 0 _080465FC: .4byte gUnk_03001160 _08046600: .4byte gUnk_03000BF0 _08046604: .4byte gUnk_02019EE0 _08046608: .4byte gUnk_03003F80 thumb_func_start sub_0804660C sub_0804660C: @ 0x0804660C push {r4, lr} strb r1, [r0, #0x14] lsrs r1, r1, #5 lsls r1, r1, #1 ldr r2, _0804662C @ =gUnk_080D1A84 adds r1, r1, r2 ldr r3, _08046630 @ =gUnk_03000BF0 ldrh r2, [r3, #6] ldrh r4, [r1] adds r2, r2, r4 strh r2, [r0, #0x2e] ldrh r2, [r3, #8] ldrh r1, [r1, #2] adds r2, r2, r1 strh r2, [r0, #0x32] pop {r4, pc} .align 2, 0 _0804662C: .4byte gUnk_080D1A84 _08046630: .4byte gUnk_03000BF0 thumb_func_start sub_08046634 sub_08046634: @ 0x08046634 push {r4, r5, lr} adds r5, r0, #0 cmp r1, #0 bne _08046650 ldr r4, _0804664C @ =gUnk_080D1AF4 bl sub_08000E50 movs r1, #3 ands r1, r0 adds r1, r1, r4 ldrb r1, [r1] b _0804665A .align 2, 0 _0804664C: .4byte gUnk_080D1AF4 _08046650: bl sub_08000E50 adds r1, r0, #0 movs r0, #7 ands r1, r0 _0804665A: ldrb r2, [r5, #0x14] lsrs r2, r2, #3 adds r0, r1, #0 movs r1, #0 bl sub_080A1ED0 pop {r4, r5, pc} thumb_func_start sub_08046668 sub_08046668: @ 0x08046668 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 beq _080466A0 adds r5, r4, #0 adds r5, #0x78 ldrb r0, [r5] cmp r0, #0xff beq _080466A0 bl sub_08000E50 ldr r2, _080466A4 @ =gUnk_080D1AF8 movs r1, #3 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] movs r1, #0 strb r0, [r5] adds r0, r4, #0 adds r0, #0x7f strb r1, [r0] adds r0, #3 strb r1, [r0] adds r0, r4, #0 bl sub_080467DC _080466A0: pop {r4, r5, pc} .align 2, 0 _080466A4: .4byte gUnk_080D1AF8 thumb_func_start sub_080466A8 sub_080466A8: @ 0x080466A8 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r0, #0x7c ldrb r2, [r0] cmp r2, #0 beq _0804674C adds r0, #1 ldrb r1, [r0] orrs r1, r2 strb r1, [r0] ldrb r1, [r4, #0xe] adds r5, r0, #0 cmp r1, #0 bne _080466D0 subs r0, #5 ldrb r0, [r0] cmp r0, #0xff beq _080466D0 movs r0, #4 strb r0, [r4, #0xe] _080466D0: ldrb r0, [r5] bl sub_08000E62 cmp r0, #2 bls _0804674C movs r0, #0 strb r0, [r4, #0xe] strb r0, [r5] adds r7, r4, #0 adds r7, #0x78 subs r0, #1 adds r6, r0, #0 movs r0, #0xff strb r0, [r7] adds r0, #0x28 bl sub_080A3268 adds r5, r4, #0 adds r5, #0x45 ldrb r0, [r5] cmp r0, #0 beq _08046746 movs r0, #8 movs r1, #0 bl sub_08080964 adds r1, r4, #0 adds r1, #0x82 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ands r0, r6 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xc bhi _0804671E ldrb r0, [r5] subs r0, #1 strb r0, [r5] _0804671E: ldrb r0, [r5] cmp r0, #0 bne _08046730 strb r0, [r7] adds r1, r4, #0 adds r1, #0x7a movs r0, #0xa5 lsls r0, r0, #3 b _08046744 _08046730: adds r1, r4, #0 adds r1, #0x7f ldrb r0, [r1] cmp r0, #0 bne _08046746 movs r0, #1 strb r0, [r1] subs r1, #5 movs r0, #0x87 lsls r0, r0, #3 _08046744: strh r0, [r1] _08046746: adds r0, r4, #0 bl sub_080467DC _0804674C: ldrb r1, [r4, #0xe] cmp r1, #0 beq _080467CC adds r0, r4, #0 adds r0, #0x78 ldrb r0, [r0] cmp r0, #0xff beq _080467CC subs r0, r1, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r5, r0, #0x18 cmp r5, #0 bne _080467CC adds r2, r4, #0 adds r2, #0x80 adds r3, r4, #0 adds r3, #0x7d ldrb r0, [r2] ldrb r1, [r3] orrs r0, r1 strb r0, [r2] strb r5, [r3] adds r0, r4, #0 bl sub_080467DC ldr r0, [r4, #0x64] adds r0, #0x3c ldrb r1, [r0] adds r0, r1, #0 cmp r0, #0xff beq _080467CC ldr r2, _080467D8 @ =gUnk_03001160 adds r0, r2, #0 adds r0, #0x3e strb r1, [r0] adds r1, r2, #0 adds r1, #0x3d movs r0, #0xf4 strb r0, [r1] adds r1, #5 movs r0, #0xa strb r0, [r1] adds r0, r4, #0 movs r1, #0x2c movs r2, #0 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _080467CC ldr r0, [r4, #0x64] ldrh r0, [r0, #0x38] strh r0, [r2, #0x2e] ldr r0, [r4, #0x64] ldrh r0, [r0, #0x3a] strh r0, [r2, #0x32] adds r1, r2, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] adds r0, r2, #0 bl sub_08016A04 _080467CC: adds r1, r4, #0 adds r1, #0x7c movs r0, #0 strb r0, [r1] pop {r4, r5, r6, r7, pc} .align 2, 0 _080467D8: .4byte gUnk_03001160 thumb_func_start sub_080467DC sub_080467DC: @ 0x080467DC push {lr} movs r1, #0 ldr r0, [r0, #0x64] movs r2, #0 adds r0, #0x18 _080467E6: stm r0!, {r2} adds r1, #1 cmp r1, #7 bls _080467E6 pop {pc} thumb_func_start sub_080467F0 sub_080467F0: @ 0x080467F0 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 beq _08046810 adds r0, r4, #0 adds r0, #0x7d ldrb r1, [r0] movs r0, #3 ands r1, r0 ldrb r2, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] _08046810: ldr r1, _0804688C @ =gUnk_080D1AFC ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldrb r0, [r4, #0xc] adds r5, r4, #0 adds r5, #0x78 cmp r0, #7 beq _08046836 ldrh r3, [r5] adds r0, r4, #0 movs r1, #0xaa movs r2, #0xaa bl sub_0805EC9C _08046836: ldrh r0, [r5] lsrs r0, r0, #8 rsbs r0, r0, #0 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_08048004 ldrb r0, [r4, #0x18] lsls r0, r0, #0x1e lsrs r0, r0, #0x1e adds r1, r4, #0 adds r1, #0x7d strb r0, [r1] ldrb r2, [r4, #0x18] lsls r0, r2, #0x1e lsrs r0, r0, #0x1e cmp r0, #1 bne _08046878 movs r1, #0x32 ldrsh r0, [r4, r1] ldr r1, _08046890 @ =gUnk_03000BF0 movs r3, #0xc ldrsh r1, [r1, r3] subs r0, r0, r1 adds r0, #0x30 movs r1, #0x80 lsls r1, r1, #1 cmp r0, r1 bls _08046878 movs r0, #4 rsbs r0, r0, #0 ands r0, r2 strb r0, [r4, #0x18] _08046878: ldr r2, _08046894 @ =gUnk_03001160 ldrh r1, [r2, #0x2e] adds r0, r4, #0 adds r0, #0x84 strh r1, [r0] ldrh r1, [r2, #0x32] adds r0, #2 strh r1, [r0] pop {r4, r5, pc} .align 2, 0 _0804688C: .4byte gUnk_080D1AFC _08046890: .4byte gUnk_03000BF0 _08046894: .4byte gUnk_03001160 thumb_func_start sub_08046898 sub_08046898: @ 0x08046898 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x22 bl sub_080A7EE0 adds r1, r0, #0 cmp r1, #0 beq _0804690C movs r4, #0 movs r3, #1 movs r0, #1 strb r0, [r1, #0xa] str r5, [r1, #0x50] str r1, [r5, #0x54] strb r0, [r5, #0xc] strb r4, [r5, #0xd] ldrb r1, [r5, #0x19] movs r0, #3 orrs r1, r0 ldrb r2, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r2 orrs r0, r3 strb r0, [r5, #0x18] ldrb r2, [r5, #0x1b] movs r3, #0x3f adds r0, r3, #0 ands r0, r2 movs r2, #0x80 orrs r0, r2 strb r0, [r5, #0x1b] ands r1, r3 orrs r1, r2 strb r1, [r5, #0x19] adds r2, r5, #0 adds r2, #0x3c ldrb r1, [r2] movs r0, #0x10 orrs r0, r1 strb r0, [r2] adds r1, r5, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r5, #0 adds r0, #0x7c strb r4, [r0] subs r0, #4 strh r4, [r0] adds r0, #2 strh r4, [r0] subs r0, #8 strh r4, [r0] adds r0, r5, #0 movs r1, #0 bl sub_080042AC _0804690C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08046910 sub_08046910: @ 0x08046910 push {r4, lr} adds r4, r0, #0 ldr r1, _0804692C @ =gUnk_080D1B1C ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 _0804692C: .4byte gUnk_080D1B1C thumb_func_start sub_08046930 sub_08046930: @ 0x08046930 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 beq _08046948 movs r0, #5 strb r0, [r4, #0xd] movs r0, #0x20 strb r0, [r4, #0x15] movs r0, #0xa0 lsls r0, r0, #2 strh r0, [r4, #0x24] _08046948: adds r0, r4, #0 bl sub_08047D88 adds r0, r4, #0 adds r0, #0x7c ldrb r0, [r0] cmp r0, #0 beq _0804696A movs r1, #0 movs r0, #1 strb r0, [r4, #0xd] strb r0, [r4, #0xe] strb r1, [r4, #0x14] strb r1, [r4, #0x15] movs r0, #0xa0 lsls r0, r0, #2 strh r0, [r4, #0x24] _0804696A: pop {r4, pc} thumb_func_start sub_0804696C sub_0804696C: @ 0x0804696C push {r4, r5, lr} adds r4, r0, #0 bl sub_08047E48 ldr r5, _080469C8 @ =gUnk_03000BF0 ldrh r0, [r5, #8] movs r1, #0x98 lsls r1, r1, #1 adds r0, r0, r1 movs r2, #0x32 ldrsh r1, [r4, r2] cmp r0, r1 ble _080469A6 movs r0, #2 strb r0, [r4, #0xd] movs r0, #0x80 strb r0, [r4, #0x15] adds r0, #0x80 strh r0, [r4, #0x24] ldrb r0, [r4, #0x1b] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x1b] ldrb r0, [r4, #0x19] orrs r0, r1 strb r0, [r4, #0x19] movs r0, #0x2e bl sub_080A3268 _080469A6: ldrb r0, [r4, #0xe] cmp r0, #0 beq _080469C6 ldrh r0, [r5, #8] movs r1, #0x96 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0x32 ldrsh r1, [r4, r2] cmp r0, r1 ble _080469C6 movs r0, #0 strb r0, [r4, #0xe] movs r0, #0xf7 bl sub_080A3268 _080469C6: pop {r4, r5, pc} .align 2, 0 _080469C8: .4byte gUnk_03000BF0 thumb_func_start sub_080469CC sub_080469CC: @ 0x080469CC push {r4, lr} adds r4, r0, #0 bl sub_08047E48 ldr r0, _080469F0 @ =gUnk_03000BF0 ldrh r0, [r0, #8] movs r1, #0x84 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0x32 ldrsh r1, [r4, r2] cmp r0, r1 bge _080469EE movs r0, #3 strb r0, [r4, #0xd] movs r0, #0x90 strb r0, [r4, #0x15] _080469EE: pop {r4, pc} .align 2, 0 _080469F0: .4byte gUnk_03000BF0 thumb_func_start sub_080469F4 sub_080469F4: @ 0x080469F4 push {r4, lr} adds r4, r0, #0 bl sub_08047E48 ldr r0, _08046A2C @ =gUnk_03000BF0 ldrh r0, [r0, #8] movs r1, #0xa4 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0x32 ldrsh r1, [r4, r2] cmp r0, r1 bge _08046A28 movs r0, #4 strb r0, [r4, #0xd] 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] _08046A28: pop {r4, pc} .align 2, 0 _08046A2C: .4byte gUnk_03000BF0 thumb_func_start sub_08046A30 sub_08046A30: @ 0x08046A30 push {r4, lr} adds r4, r0, #0 bl sub_08047D88 ldr r0, [r4, #0x64] ldr r0, [r0] adds r0, #0x6c ldrh r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08046A50 movs r1, #0 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r4, #0xd] _08046A50: pop {r4, pc} .align 2, 0 thumb_func_start sub_08046A54 sub_08046A54: @ 0x08046A54 push {r4, lr} adds r4, r0, #0 bl sub_08047E48 ldr r0, _08046A74 @ =gUnk_03000BF0 ldrh r0, [r0, #6] movs r1, #0xe0 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0x2e ldrsh r1, [r4, r2] cmp r0, r1 bge _08046A72 movs r0, #6 strb r0, [r4, #0xd] _08046A72: pop {r4, pc} .align 2, 0 _08046A74: .4byte gUnk_03000BF0 thumb_func_start sub_08046A78 sub_08046A78: @ 0x08046A78 push {r4, lr} adds r4, r0, #0 bl sub_08047D88 ldr r0, [r4, #0x64] ldr r0, [r0] adds r0, #0x6c ldrh r1, [r0] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08046A98 movs r1, #0 movs r0, #3 strb r0, [r4, #0xc] strb r1, [r4, #0xd] _08046A98: pop {r4, pc} .align 2, 0 thumb_func_start sub_08046A9C sub_08046A9C: @ 0x08046A9C push {r4, lr} adds r4, r0, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #1 bne _08046ABA adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] cmp r0, #1 bne _08046ABA adds r0, r4, #0 movs r1, #0 bl sub_080042AC _08046ABA: ldr r1, _08046AE4 @ =gUnk_080D1B38 ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x7c ldrb r0, [r0] cmp r0, #0 beq _08046AE2 movs r1, #0 movs r0, #6 strb r0, [r4, #0xc] strb r1, [r4, #0xd] _08046AE2: pop {r4, pc} .align 2, 0 _08046AE4: .4byte gUnk_080D1B38 thumb_func_start sub_08046AE8 sub_08046AE8: @ 0x08046AE8 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xd] movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r4, #0x24] ldr r0, [r4, #0x64] ldr r0, [r0, #4] ldrb r1, [r0, #0x14] lsrs r1, r1, #5 adds r0, r4, #0 bl sub_08048178 ldrb r0, [r4, #0x15] lsls r0, r0, #8 adds r1, r4, #0 adds r1, #0x76 strh r0, [r1] adds r0, r4, #0 bl sub_08047D88 pop {r4, pc} .align 2, 0 thumb_func_start sub_08046B18 sub_08046B18: @ 0x08046B18 push {r4, lr} adds r4, r0, #0 adds r0, #0x80 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r4, r2] subs r0, r0, r1 adds r1, r4, #0 adds r1, #0x82 ldrh r1, [r1] movs r3, #0x32 ldrsh r2, [r4, r3] subs r1, r1, r2 bl sub_080045DA adds r1, r0, #0 ldrb r0, [r4, #0x15] cmp r1, r0 beq _08046B6C subs r0, r1, r0 movs r1, #0xff ands r0, r1 cmp r0, #0x80 bls _08046B54 adds r1, r4, #0 adds r1, #0x76 ldr r2, _08046B50 @ =0xFFFFFF00 b _08046B5C .align 2, 0 _08046B50: .4byte 0xFFFFFF00 _08046B54: adds r1, r4, #0 adds r1, #0x76 movs r2, #0x80 lsls r2, r2, #1 _08046B5C: adds r0, r2, #0 ldrh r3, [r1] adds r0, r0, r3 strh r0, [r1] ldrh r0, [r1] lsrs r0, r0, #8 strb r0, [r4, #0x15] b _08046B70 _08046B6C: movs r0, #2 strb r0, [r4, #0xd] _08046B70: adds r0, r4, #0 bl sub_08047D88 ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08047EA4 pop {r4, pc} thumb_func_start sub_08046B8C sub_08046B8C: @ 0x08046B8C push {r4, r5, r6, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x80 ldrh r1, [r5] adds r6, r4, #0 adds r6, #0x82 ldrh r2, [r6] movs r3, #4 bl sub_0806FCB8 cmp r0, #0 beq _08046BD8 movs r0, #3 strb r0, [r4, #0xd] ldrb r0, [r4, #0x15] lsls r0, r0, #8 adds r1, r4, #0 adds r1, #0x76 strh r0, [r1] ldr r1, _08046BD4 @ =gUnk_03000BF0 movs r2, #0x80 lsls r2, r2, #2 adds r0, r2, #0 ldrh r3, [r1, #6] adds r0, r0, r3 strh r0, [r5] adds r2, #0x10 adds r0, r2, #0 ldrh r1, [r1, #8] adds r0, r0, r1 strh r0, [r6] adds r0, r4, #0 bl sub_08047D88 b _08046C02 .align 2, 0 _08046BD4: .4byte gUnk_03000BF0 _08046BD8: ldrh r0, [r5] movs r3, #0x2e ldrsh r1, [r4, r3] subs r0, r0, r1 ldrh r1, [r6] movs r3, #0x32 ldrsh r2, [r4, r3] subs r1, r1, r2 bl sub_080045DA strb r0, [r4, #0x15] ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08047DF0 _08046C02: pop {r4, r5, r6, pc} thumb_func_start sub_08046C04 sub_08046C04: @ 0x08046C04 push {r4, lr} adds r4, r0, #0 adds r0, #0x80 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r4, r2] subs r0, r0, r1 adds r1, r4, #0 adds r1, #0x82 ldrh r1, [r1] movs r3, #0x32 ldrsh r2, [r4, r3] subs r1, r1, r2 bl sub_080045DA adds r1, r0, #0 ldrb r0, [r4, #0x15] cmp r1, r0 beq _08046C58 subs r0, r1, r0 movs r1, #0xff ands r0, r1 cmp r0, #0x80 bls _08046C40 adds r1, r4, #0 adds r1, #0x76 ldr r2, _08046C3C @ =0xFFFFFF00 b _08046C48 .align 2, 0 _08046C3C: .4byte 0xFFFFFF00 _08046C40: adds r1, r4, #0 adds r1, #0x76 movs r2, #0x80 lsls r2, r2, #1 _08046C48: adds r0, r2, #0 ldrh r3, [r1] adds r0, r0, r3 strh r0, [r1] ldrh r0, [r1] lsrs r0, r0, #8 strb r0, [r4, #0x15] b _08046C6C _08046C58: movs r0, #4 strb r0, [r4, #0xd] adds r0, r1, #0 adds r0, #0x20 movs r1, #0xc0 ands r0, r1 lsrs r0, r0, #6 adds r1, r4, #0 adds r1, #0x70 strh r0, [r1] _08046C6C: adds r0, r4, #0 bl sub_08047D88 ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08047EA4 pop {r4, pc} thumb_func_start sub_08046C88 sub_08046C88: @ 0x08046C88 push {r4, r5, r6, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x80 ldrh r1, [r5] adds r6, r4, #0 adds r6, #0x82 ldrh r2, [r6] movs r3, #4 bl sub_0806FCB8 cmp r0, #0 beq _08046CC0 movs r0, #1 strb r0, [r4, #0xd] adds r0, r4, #0 adds r0, #0x70 ldrh r0, [r0] bl sub_08048158 adds r1, r0, #0 adds r0, r4, #0 bl sub_08048178 adds r0, r4, #0 bl sub_08047D88 b _08046CEA _08046CC0: ldrh r0, [r5] movs r2, #0x2e ldrsh r1, [r4, r2] subs r0, r0, r1 ldrh r1, [r6] movs r3, #0x32 ldrsh r2, [r4, r3] subs r1, r1, r2 bl sub_080045DA strb r0, [r4, #0x15] ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08047DF0 _08046CEA: pop {r4, r5, r6, pc} thumb_func_start sub_08046CEC sub_08046CEC: @ 0x08046CEC push {r4, lr} adds r4, r0, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0 bne _08046D0A adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] cmp r0, #1 bne _08046D0A adds r0, r4, #0 movs r1, #1 bl sub_080042AC _08046D0A: ldr r1, _08046D40 @ =gUnk_080D1B4C ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_080042B8 ldr r0, [r4, #0x64] ldr r0, [r0] adds r0, #0x6c ldrh r1, [r0] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08046D3C movs r0, #0 movs r1, #2 strb r1, [r4, #0xc] strb r0, [r4, #0xd] ldrh r0, [r4, #0x24] strb r0, [r4, #0x14] _08046D3C: pop {r4, pc} .align 2, 0 _08046D40: .4byte gUnk_080D1B4C thumb_func_start sub_08046D44 sub_08046D44: @ 0x08046D44 push {lr} mov ip, r0 movs r0, #1 mov r1, ip strb r0, [r1, #0xd] movs r0, #0x80 lsls r0, r0, #2 strh r0, [r1, #0x24] ldr r0, [r1, #0x64] ldr r0, [r0, #4] ldrb r1, [r0, #0x14] lsrs r1, r1, #5 lsls r1, r1, #1 ldr r0, _08046D90 @ =gUnk_080D1B60 adds r1, r1, r0 ldr r3, _08046D94 @ =gUnk_03000BF0 ldrh r0, [r3, #6] ldrh r2, [r1] adds r0, r0, r2 mov r2, ip adds r2, #0x80 strh r0, [r2] ldrh r0, [r3, #8] ldrh r1, [r1, #2] adds r0, r0, r1 mov r1, ip adds r1, #0x82 strh r0, [r1] mov r1, ip ldrb r0, [r1, #0x15] lsls r0, r0, #8 adds r1, #0x76 strh r0, [r1] mov r0, ip bl sub_08047D88 pop {pc} .align 2, 0 _08046D90: .4byte gUnk_080D1B60 _08046D94: .4byte gUnk_03000BF0 thumb_func_start sub_08046D98 sub_08046D98: @ 0x08046D98 push {r4, lr} adds r4, r0, #0 adds r0, #0x80 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r4, r2] subs r0, r0, r1 adds r1, r4, #0 adds r1, #0x82 ldrh r1, [r1] movs r3, #0x32 ldrsh r2, [r4, r3] subs r1, r1, r2 bl sub_080045DA adds r1, r0, #0 ldrb r0, [r4, #0x15] cmp r1, r0 beq _08046DEC subs r0, r1, r0 movs r1, #0xff ands r0, r1 cmp r0, #0x80 bls _08046DD4 adds r1, r4, #0 adds r1, #0x76 ldr r2, _08046DD0 @ =0xFFFFFF00 b _08046DDC .align 2, 0 _08046DD0: .4byte 0xFFFFFF00 _08046DD4: adds r1, r4, #0 adds r1, #0x76 movs r2, #0x80 lsls r2, r2, #1 _08046DDC: adds r0, r2, #0 ldrh r3, [r1] adds r0, r0, r3 strh r0, [r1] ldrh r0, [r1] lsrs r0, r0, #8 strb r0, [r4, #0x15] b _08046DF0 _08046DEC: movs r0, #2 strb r0, [r4, #0xd] _08046DF0: adds r0, r4, #0 bl sub_08047D88 ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08047EA4 pop {r4, pc} thumb_func_start sub_08046E0C sub_08046E0C: @ 0x08046E0C push {r4, r5, r6, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x80 ldrh r1, [r5] adds r6, r4, #0 adds r6, #0x82 ldrh r2, [r6] movs r3, #4 bl sub_0806FCB8 cmp r0, #0 beq _08046E3C movs r0, #3 strb r0, [r4, #0xd] ldrb r0, [r4, #0x15] lsls r0, r0, #8 adds r1, r4, #0 adds r1, #0x76 strh r0, [r1] adds r0, r4, #0 bl sub_08047D88 b _08046E66 _08046E3C: ldrh r0, [r5] movs r2, #0x2e ldrsh r1, [r4, r2] subs r0, r0, r1 ldrh r1, [r6] movs r3, #0x32 ldrsh r2, [r4, r3] subs r1, r1, r2 bl sub_080045DA strb r0, [r4, #0x15] ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08047DF0 _08046E66: pop {r4, r5, r6, pc} thumb_func_start sub_08046E68 sub_08046E68: @ 0x08046E68 push {r4, r5, r6, lr} adds r5, r0, #0 ldr r0, [r5, #0x64] ldr r0, [r0, #4] ldrb r1, [r0, #0x14] movs r0, #0x80 adds r6, r0, #0 eors r6, r1 ldrb r0, [r5, #0x15] cmp r6, r0 beq _08046EC6 subs r0, r6, r0 movs r1, #0xff ands r0, r1 cmp r0, #0x80 bls _08046E94 adds r1, r5, #0 adds r1, #0x76 ldr r2, _08046E90 @ =0xFFFFFF00 b _08046E9C .align 2, 0 _08046E90: .4byte 0xFFFFFF00 _08046E94: adds r1, r5, #0 adds r1, #0x76 movs r2, #0x80 lsls r2, r2, #1 _08046E9C: adds r0, r2, #0 ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] ldrh r0, [r1] lsrs r0, r0, #8 strb r0, [r5, #0x15] adds r0, r5, #0 bl sub_08047D88 ldrb r0, [r5, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r5, #0 bl sub_08047EA4 b _08046EEE _08046EC6: movs r0, #4 strb r0, [r5, #0xd] movs r0, #0x3f strb r0, [r5, #0xe] movs r4, #1 strb r4, [r5, #0xf] bl sub_08000E50 ldr r1, _08046EF0 @ =gUnk_080D1B70 ands r0, r4 lsls r0, r0, #1 adds r0, r0, r1 ldrb r0, [r0] adds r0, r0, r6 movs r1, #0xc0 ands r0, r1 strb r0, [r5, #0x15] adds r0, r5, #0 bl sub_08047D88 _08046EEE: pop {r4, r5, r6, pc} .align 2, 0 _08046EF0: .4byte gUnk_080D1B70 thumb_func_start sub_08046EF4 sub_08046EF4: @ 0x08046EF4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r3, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _08046F12 movs r0, #0x7f strb r0, [r4, #0xe] ldrb r0, [r4, #0x15] movs r1, #0x80 eors r0, r1 strb r0, [r4, #0x15] _08046F12: ldr r2, _08046F60 @ =gUnk_080D1B74 ldrb r0, [r4, #0xe] lsrs r0, r0, #3 movs r1, #0xf ands r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] strh r0, [r4, #0x24] ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] ands r0, r3 cmp r0, #0 bne _08046F58 bl sub_08000E50 movs r1, #0x38 ands r0, r1 adds r0, #0x78 strb r0, [r4, #0xf] movs r0, #0x23 bl sub_080A7EE0 adds r2, r0, #0 cmp r2, #0 beq _08046F58 adds r1, r2, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] str r4, [r2, #0x50] adds r0, r2, #0 bl sub_08016A04 _08046F58: adds r0, r4, #0 bl sub_08047E48 pop {r4, pc} .align 2, 0 _08046F60: .4byte gUnk_080D1B74 thumb_func_start sub_08046F64 sub_08046F64: @ 0x08046F64 push {r4, lr} adds r4, r0, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0 bne _08046F82 adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] cmp r0, #1 bne _08046F82 adds r0, r4, #0 movs r1, #1 bl sub_080042AC _08046F82: ldr r1, _08046FE4 @ =gUnk_080D1B94 ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_080042B8 adds r1, r4, #0 adds r1, #0x7e ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08046FC8 movs r0, #0x78 strh r0, [r1] movs r0, #0x23 bl sub_080A7EE0 adds r2, r0, #0 cmp r2, #0 beq _08046FC8 adds r1, r2, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] str r4, [r2, #0x50] adds r0, r2, #0 bl sub_08016A04 _08046FC8: ldr r0, [r4, #0x64] ldr r0, [r0] adds r0, #0x6c ldrh r1, [r0] movs r0, #4 ands r0, r1 cmp r0, #0 beq _08046FE0 movs r1, #0 movs r0, #5 strb r0, [r4, #0xc] strb r1, [r4, #0xd] _08046FE0: pop {r4, pc} .align 2, 0 _08046FE4: .4byte gUnk_080D1B94 thumb_func_start sub_08046FE8 sub_08046FE8: @ 0x08046FE8 push {lr} adds r3, r0, #0 movs r0, #1 strb r0, [r3, #0xd] movs r0, #0xe0 lsls r0, r0, #1 strh r0, [r3, #0x24] adds r1, r3, #0 adds r1, #0x7e movs r0, #0x1e strh r0, [r1] ldr r2, _08047028 @ =gUnk_03000BF0 movs r1, #0xa4 lsls r1, r1, #2 adds r0, r1, #0 ldrh r1, [r2, #6] adds r0, r0, r1 adds r1, r3, #0 adds r1, #0x80 strh r0, [r1] movs r1, #0xc8 lsls r1, r1, #1 adds r0, r1, #0 ldrh r2, [r2, #8] adds r0, r0, r2 adds r1, r3, #0 adds r1, #0x82 strh r0, [r1] adds r0, r3, #0 bl sub_08047D88 pop {pc} .align 2, 0 _08047028: .4byte gUnk_03000BF0 thumb_func_start sub_0804702C sub_0804702C: @ 0x0804702C push {r4, lr} adds r4, r0, #0 adds r0, #0x80 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r4, r2] subs r0, r0, r1 adds r1, r4, #0 adds r1, #0x82 ldrh r1, [r1] movs r3, #0x32 ldrsh r2, [r4, r3] subs r1, r1, r2 bl sub_080045DA adds r3, r0, #0 ldrb r2, [r4, #0x15] subs r0, r2, r3 adds r0, #2 movs r1, #0xff ands r0, r1 cmp r0, #4 bls _0804706C subs r0, r3, r2 movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _08047068 subs r0, r2, #1 b _0804706A _08047068: adds r0, r2, #1 _0804706A: strb r0, [r4, #0x15] _0804706C: ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08047DF0 adds r0, r4, #0 adds r0, #0x80 ldrh r1, [r0] adds r0, #2 ldrh r2, [r0] movs r0, #0x24 ldrsh r3, [r4, r0] asrs r3, r3, #0x10 adds r3, #0x10 adds r0, r4, #0 bl sub_0806FCB8 cmp r0, #0 beq _080470B0 movs r0, #2 strb r0, [r4, #0xd] ldrb r0, [r4, #0x15] lsls r0, r0, #8 adds r1, r4, #0 adds r1, #0x76 strh r0, [r1] movs r0, #0xa0 lsls r0, r0, #2 strh r0, [r4, #0x24] _080470B0: pop {r4, pc} .align 2, 0 thumb_func_start sub_080470B4 sub_080470B4: @ 0x080470B4 push {r4, lr} adds r4, r0, #0 movs r1, #0x40 ldrb r0, [r4, #0x15] cmp r1, r0 beq _0804710A subs r0, r1, r0 movs r1, #0xff ands r0, r1 cmp r0, #0x80 bls _080470D8 adds r1, r4, #0 adds r1, #0x76 ldr r2, _080470D4 @ =0xFFFFFF00 b _080470E0 .align 2, 0 _080470D4: .4byte 0xFFFFFF00 _080470D8: adds r1, r4, #0 adds r1, #0x76 movs r2, #0x80 lsls r2, r2, #1 _080470E0: adds r0, r2, #0 ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] ldrh r0, [r1] lsrs r0, r0, #8 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_08047D88 ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08047EA4 b _0804713A _0804710A: movs r0, #3 strb r0, [r4, #0xd] movs r0, #0x80 lsls r0, r0, #2 strh r0, [r4, #0x24] ldrb r0, [r4, #0x15] lsls r0, r0, #8 adds r1, r4, #0 adds r1, #0x76 strh r0, [r1] bl sub_08000E50 ldr r2, _0804713C @ =gUnk_080D1BBC movs r1, #1 ands r1, r0 lsls r1, r1, #1 adds r1, r1, r2 ldrh r1, [r1] adds r0, r4, #0 adds r0, #0x74 strh r1, [r0] adds r0, r4, #0 bl sub_08047D88 _0804713A: pop {r4, pc} .align 2, 0 _0804713C: .4byte gUnk_080D1BBC thumb_func_start sub_08047140 sub_08047140: @ 0x08047140 push {lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x76 adds r0, #0x74 ldrh r0, [r0] ldrh r3, [r1] adds r0, r0, r3 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x18 strb r0, [r2, #0x15] cmp r0, #0xbf bls _08047164 movs r0, #0xc0 strb r0, [r2, #0x15] movs r0, #4 strb r0, [r2, #0xd] _08047164: ldrb r0, [r2, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r2, #0 bl sub_08047DF0 pop {pc} .align 2, 0 thumb_func_start sub_0804717C sub_0804717C: @ 0x0804717C push {r4, lr} adds r4, r0, #0 ldrh r2, [r4, #0x24] movs r0, #0x24 ldrsh r1, [r4, r0] ldr r0, _080471C0 @ =0x0000027F cmp r1, r0 bgt _08047192 adds r0, r2, #0 adds r0, #8 strh r0, [r4, #0x24] _08047192: ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08047DF0 ldr r0, _080471C4 @ =gUnk_03000BF0 ldrh r0, [r0, #6] movs r1, #0x80 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0x2e ldrsh r1, [r4, r2] cmp r0, r1 ble _080471BC movs r0, #5 strb r0, [r4, #0xd] _080471BC: pop {r4, pc} .align 2, 0 _080471C0: .4byte 0x0000027F _080471C4: .4byte gUnk_03000BF0 thumb_func_start sub_080471C8 sub_080471C8: @ 0x080471C8 push {r4, r5, lr} adds r4, r0, #0 ldrh r2, [r4, #0x24] movs r0, #0x24 ldrsh r1, [r4, r0] movs r0, #0xc0 lsls r0, r0, #1 cmp r1, r0 ble _080471E0 adds r0, r2, #0 subs r0, #0x10 strh r0, [r4, #0x24] _080471E0: ldrb r0, [r4, #0x15] cmp r0, #0xdf bhi _080471EA adds r0, #1 strb r0, [r4, #0x15] _080471EA: ldrb r1, [r4, #0x15] movs r5, #0x80 lsls r5, r5, #1 subs r1, r5, r1 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08047DF0 ldr r0, _0804722C @ =gUnk_03000BF0 ldrh r0, [r0, #8] movs r1, #0xc8 lsls r1, r1, #1 adds r0, r0, r1 movs r2, #0x32 ldrsh r1, [r4, r2] cmp r0, r1 ble _08047238 adds r0, r4, #0 adds r0, #0x74 ldrh r0, [r0] cmp r0, r5 bls _08047234 bl sub_08000E50 adds r1, r0, #0 movs r0, #1 ands r1, r0 cmp r1, #0 beq _08047230 movs r0, #6 b _08047236 .align 2, 0 _0804722C: .4byte gUnk_03000BF0 _08047230: strb r1, [r4, #0xd] b _08047238 _08047234: movs r0, #0 _08047236: strb r0, [r4, #0xd] _08047238: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0804723C sub_0804723C: @ 0x0804723C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0x15] subs r0, #2 strb r0, [r4, #0x15] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xbf bhi _08047266 movs r0, #7 strb r0, [r4, #0xd] movs r0, #0x80 lsls r0, r0, #2 strh r0, [r4, #0x24] movs r0, #0xc0 strb r0, [r4, #0x15] adds r1, r4, #0 adds r1, #0x76 movs r0, #0xc0 lsls r0, r0, #8 strh r0, [r1] _08047266: adds r0, r4, #0 bl sub_08047D88 ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08047EA4 pop {r4, pc} .align 2, 0 thumb_func_start sub_08047284 sub_08047284: @ 0x08047284 push {lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x76 ldrh r0, [r1] subs r0, #0xe0 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x18 strb r0, [r2, #0x15] cmp r0, #0x3f bhi _080472A4 movs r0, #0x40 strb r0, [r2, #0x15] movs r0, #8 strb r0, [r2, #0xd] _080472A4: ldrb r0, [r2, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r2, #0 bl sub_08047DF0 pop {pc} .align 2, 0 thumb_func_start sub_080472BC sub_080472BC: @ 0x080472BC push {r4, lr} adds r4, r0, #0 ldrh r2, [r4, #0x24] movs r0, #0x24 ldrsh r1, [r4, r0] ldr r0, _08047308 @ =0x000002FF cmp r1, r0 bgt _080472D2 adds r0, r2, #0 adds r0, #8 strh r0, [r4, #0x24] _080472D2: ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08047DF0 ldr r0, _0804730C @ =gUnk_03000BF0 ldrh r0, [r0, #6] movs r1, #0xac lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0x2e ldrsh r1, [r4, r2] cmp r0, r1 bge _08047306 movs r0, #9 strb r0, [r4, #0xd] ldrb r0, [r4, #0x15] lsls r0, r0, #8 adds r1, r4, #0 adds r1, #0x76 strh r0, [r1] _08047306: pop {r4, pc} .align 2, 0 _08047308: .4byte 0x000002FF _0804730C: .4byte gUnk_03000BF0 thumb_func_start sub_08047310 sub_08047310: @ 0x08047310 push {lr} adds r2, r0, #0 ldrh r3, [r2, #0x24] movs r0, #0x24 ldrsh r1, [r2, r0] ldr r0, _08047364 @ =0x0000017F cmp r1, r0 bgt _08047326 adds r0, r3, #0 subs r0, #0x10 strh r0, [r2, #0x24] _08047326: adds r1, r2, #0 adds r1, #0x76 ldr r3, _08047368 @ =0xFFFFFE30 adds r0, r3, #0 ldrh r3, [r1] adds r0, r0, r3 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x18 strb r0, [r2, #0x15] adds r0, #0x7f lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x3f bhi _0804734C movs r0, #0xc0 strb r0, [r2, #0x15] movs r0, #4 strb r0, [r2, #0xd] _0804734C: ldrb r0, [r2, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r2, #0 bl sub_08047DF0 pop {pc} .align 2, 0 _08047364: .4byte 0x0000017F _08047368: .4byte 0xFFFFFE30 thumb_func_start sub_0804736C sub_0804736C: @ 0x0804736C push {r4, lr} adds r4, r0, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #1 bne _0804738A adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] cmp r0, #1 bne _0804738A adds r0, r4, #0 movs r1, #0 bl sub_080042AC _0804738A: ldr r0, _080473B4 @ =gUnk_080D1BC0 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x45 ldrb r1, [r0] cmp r1, #0 bne _080473B0 movs r0, #7 strb r0, [r4, #0xc] strb r1, [r4, #0xd] _080473B0: pop {r4, pc} .align 2, 0 _080473B4: .4byte gUnk_080D1BC0 thumb_func_start sub_080473B8 sub_080473B8: @ 0x080473B8 push {lr} movs r1, #1 strb r1, [r0, #0xd] movs r1, #0x90 lsls r1, r1, #1 strh r1, [r0, #0x24] ldr r3, _080473EC @ =gUnk_03000BF0 movs r2, #0x80 lsls r2, r2, #2 adds r1, r2, #0 ldrh r2, [r3, #6] adds r1, r1, r2 adds r2, r0, #0 adds r2, #0x80 strh r1, [r2] movs r2, #0xe8 lsls r2, r2, #1 adds r1, r2, #0 ldrh r3, [r3, #8] adds r1, r1, r3 adds r2, r0, #0 adds r2, #0x82 strh r1, [r2] bl sub_08047D88 pop {pc} .align 2, 0 _080473EC: .4byte gUnk_03000BF0 thumb_func_start sub_080473F0 sub_080473F0: @ 0x080473F0 push {r4, lr} adds r4, r0, #0 adds r0, #0x80 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r4, r2] subs r0, r0, r1 adds r1, r4, #0 adds r1, #0x82 ldrh r1, [r1] movs r3, #0x32 ldrsh r2, [r4, r3] subs r1, r1, r2 bl sub_080045DA adds r3, r0, #0 ldrb r2, [r4, #0x15] subs r0, r2, r3 adds r0, #2 movs r1, #0xff ands r0, r1 cmp r0, #4 bls _08047444 subs r1, r3, r2 movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08047438 movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 bge _08047434 subs r0, r2, #2 b _08047442 _08047434: subs r0, r2, #1 b _08047442 _08047438: cmp r1, #1 ble _08047440 adds r0, r2, #2 b _08047442 _08047440: adds r0, r2, #1 _08047442: strb r0, [r4, #0x15] _08047444: ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08047DF0 adds r0, r4, #0 adds r0, #0x80 ldrh r1, [r0] adds r0, #2 ldrh r2, [r0] adds r0, r4, #0 movs r3, #8 bl sub_0806FCB8 cmp r0, #0 beq _08047482 movs r0, #2 strb r0, [r4, #0xd] ldrb r0, [r4, #0x15] lsls r0, r0, #8 adds r1, r4, #0 adds r1, #0x76 strh r0, [r1] movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r4, #0x24] _08047482: pop {r4, pc} thumb_func_start sub_08047484 sub_08047484: @ 0x08047484 push {r4, lr} adds r4, r0, #0 movs r1, #0x40 ldrb r0, [r4, #0x15] cmp r1, r0 beq _080474DA subs r0, r1, r0 movs r1, #0xff ands r0, r1 cmp r0, #0x80 bls _080474A8 adds r1, r4, #0 adds r1, #0x76 ldr r2, _080474A4 @ =0xFFFFFF00 b _080474B0 .align 2, 0 _080474A4: .4byte 0xFFFFFF00 _080474A8: adds r1, r4, #0 adds r1, #0x76 movs r2, #0x80 lsls r2, r2, #1 _080474B0: adds r0, r2, #0 ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] ldrh r0, [r1] lsrs r0, r0, #8 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_08047D88 ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08047EA4 b _08047504 _080474DA: movs r0, #3 strb r0, [r4, #0xd] movs r0, #0x80 lsls r0, r0, #2 strh r0, [r4, #0x24] strb r1, [r4, #0x15] adds r1, r4, #0 adds r1, #0x76 movs r0, #0x80 lsls r0, r0, #7 strh r0, [r1] subs r1, #2 movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r1] adds r1, #0xa movs r0, #0xf0 strh r0, [r1] adds r0, r4, #0 bl sub_08047D88 _08047504: pop {r4, pc} .align 2, 0 thumb_func_start sub_08047508 sub_08047508: @ 0x08047508 push {r4, lr} adds r4, r0, #0 ldr r2, _0804754C @ =gUnk_03000BF0 ldrh r0, [r2, #6] movs r1, #0xd0 lsls r1, r1, #1 adds r0, r0, r1 movs r3, #0x2e ldrsh r1, [r4, r3] cmp r0, r1 bge _0804759A ldrb r1, [r4, #0x15] cmp r1, #0 bne _08047550 ldrh r0, [r2, #8] movs r1, #0x82 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0x32 ldrsh r1, [r4, r2] cmp r0, r1 blt _0804759A adds r0, r4, #0 adds r0, #0x74 ldrh r1, [r0] rsbs r1, r1, #0 strh r1, [r0] adds r2, r4, #0 adds r2, #0x76 ldrh r0, [r2] adds r0, r0, r1 strh r0, [r2] lsrs r0, r0, #8 b _08047598 .align 2, 0 _0804754C: .4byte gUnk_03000BF0 _08047550: adds r0, r4, #0 adds r0, #0x74 movs r3, #0 ldrsh r2, [r0, r3] cmp r2, #0 bge _0804757E adds r3, r4, #0 adds r3, #0x76 ldrh r0, [r3] adds r0, r0, r2 strh r0, [r3] lsls r0, r0, #0x10 lsrs r0, r0, #0x18 strb r0, [r4, #0x15] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _0804759A movs r0, #0 strb r0, [r4, #0x15] movs r0, #0 strh r0, [r3] b _0804759A _0804757E: cmp r1, #0x3f bhi _0804759A adds r1, r4, #0 adds r1, #0x76 ldrh r0, [r1] adds r0, r0, r2 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x18 strb r0, [r4, #0x15] cmp r0, #0x3f bls _0804759A movs r0, #0x40 _08047598: strb r0, [r4, #0x15] _0804759A: adds r0, r4, #0 bl sub_08047E48 ldr r0, _080475F0 @ =gUnk_03000BF0 ldrh r0, [r0, #6] movs r1, #0xa0 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0x2e ldrsh r1, [r4, r2] cmp r0, r1 bge _080475CA movs r0, #4 strb r0, [r4, #0xd] movs r0, #0x80 lsls r0, r0, #2 strh r0, [r4, #0x24] ldrb r0, [r4, #0x15] strb r0, [r4, #0x14] ldrb r0, [r4, #0x15] lsls r0, r0, #8 adds r1, r4, #0 adds r1, #0x76 strh r0, [r1] _080475CA: adds r1, r4, #0 adds r1, #0x7e ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _080475EE bl sub_08000E50 movs r1, #3 ands r1, r0 movs r0, #0x62 bl sub_0804AA60 cmp r0, #0 beq _080475EE str r4, [r0, #0x50] _080475EE: pop {r4, pc} .align 2, 0 _080475F0: .4byte gUnk_03000BF0 thumb_func_start sub_080475F4 sub_080475F4: @ 0x080475F4 push {lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x76 movs r3, #0xc0 lsls r3, r3, #1 adds r0, r3, #0 ldrh r3, [r1] adds r0, r0, r3 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x18 strb r0, [r2, #0x15] cmp r0, #0xbf bls _08047626 movs r0, #0xc0 strb r0, [r2, #0x15] movs r0, #5 strb r0, [r2, #0xd] movs r0, #0x80 lsls r0, r0, #2 strh r0, [r2, #0x24] adds r1, #8 movs r0, #0x3c strh r0, [r1] _08047626: ldrb r0, [r2, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r2, #0 bl sub_08047DF0 pop {pc} thumb_func_start sub_0804763C sub_0804763C: @ 0x0804763C push {r4, lr} adds r4, r0, #0 ldr r2, _08047680 @ =gUnk_03000BF0 ldrh r0, [r2, #6] movs r1, #0xf8 lsls r1, r1, #1 adds r0, r0, r1 movs r3, #0x2e ldrsh r1, [r4, r3] cmp r0, r1 ble _080476D0 ldrb r1, [r4, #0x15] cmp r1, #0 bne _08047684 ldrh r0, [r2, #8] movs r1, #0x82 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0x32 ldrsh r1, [r4, r2] cmp r0, r1 blt _080476D0 adds r0, r4, #0 adds r0, #0x74 ldrh r1, [r0] rsbs r1, r1, #0 strh r1, [r0] adds r2, r4, #0 adds r2, #0x76 ldrh r0, [r2] adds r0, r0, r1 strh r0, [r2] lsrs r0, r0, #8 b _080476CE .align 2, 0 _08047680: .4byte gUnk_03000BF0 _08047684: adds r0, r4, #0 adds r0, #0x74 movs r3, #0 ldrsh r2, [r0, r3] cmp r2, #0 ble _080476B4 adds r3, r4, #0 adds r3, #0x76 ldrh r0, [r3] adds r0, r0, r2 strh r0, [r3] lsls r0, r0, #0x10 lsrs r0, r0, #0x18 strb r0, [r4, #0x15] movs r1, #0x80 ands r0, r1 lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _080476D0 movs r0, #0 strb r0, [r4, #0x15] strh r1, [r3] b _080476D0 _080476B4: cmp r1, #0xc0 bls _080476D0 adds r1, r4, #0 adds r1, #0x76 ldrh r0, [r1] adds r0, r0, r2 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x18 strb r0, [r4, #0x15] cmp r0, #0xc0 bhi _080476D0 movs r0, #0xc0 _080476CE: strb r0, [r4, #0x15] _080476D0: adds r0, r4, #0 bl sub_08047E48 ldr r0, _08047728 @ =gUnk_03000BF0 ldrh r0, [r0, #6] movs r1, #0xc0 lsls r1, r1, #1 adds r0, r0, r1 movs r2, #0x2e ldrsh r1, [r4, r2] cmp r0, r1 ble _08047700 movs r0, #6 strb r0, [r4, #0xd] movs r0, #0x80 lsls r0, r0, #2 strh r0, [r4, #0x24] ldrb r0, [r4, #0x15] strb r0, [r4, #0x14] ldrb r0, [r4, #0x15] lsls r0, r0, #8 adds r1, r4, #0 adds r1, #0x76 strh r0, [r1] _08047700: adds r1, r4, #0 adds r1, #0x7e ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08047724 bl sub_08000E50 movs r1, #3 ands r1, r0 movs r0, #0x62 bl sub_0804AA60 cmp r0, #0 beq _08047724 str r4, [r0, #0x50] _08047724: pop {r4, pc} .align 2, 0 _08047728: .4byte gUnk_03000BF0 thumb_func_start sub_0804772C sub_0804772C: @ 0x0804772C push {lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x76 ldr r3, _08047774 @ =0xFFFFFE80 adds r0, r3, #0 ldrh r3, [r1] adds r0, r0, r3 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x18 strb r0, [r2, #0x15] cmp r0, #0x40 bhi _0804775C movs r0, #0x40 strb r0, [r2, #0x15] movs r0, #3 strb r0, [r2, #0xd] movs r0, #0x80 lsls r0, r0, #2 strh r0, [r2, #0x24] adds r1, #8 movs r0, #0x1e strh r0, [r1] _0804775C: ldrb r0, [r2, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r2, #0 bl sub_08047DF0 pop {pc} .align 2, 0 _08047774: .4byte 0xFFFFFE80 thumb_func_start sub_08047778 sub_08047778: @ 0x08047778 push {r4, lr} adds r4, r0, #0 ldr r1, _08047794 @ =gUnk_080D1BDC ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 _08047794: .4byte gUnk_080D1BDC thumb_func_start sub_08047798 sub_08047798: @ 0x08047798 push {r4, lr} adds r3, r0, #0 movs r0, #1 strb r0, [r3, #0xd] movs r0, #0x80 strh r0, [r3, #0x24] movs r0, #0x2e ldrsh r1, [r3, r0] ldr r2, _080477BC @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 ldr r0, _080477C0 @ =0x000001F7 cmp r1, r0 bgt _080477C4 adds r1, r3, #0 adds r1, #0x80 movs r0, #0xa8 b _080477CC .align 2, 0 _080477BC: .4byte gUnk_03000BF0 _080477C0: .4byte 0x000001F7 _080477C4: adds r1, r3, #0 adds r1, #0x80 movs r0, #0xd2 lsls r0, r0, #2 _080477CC: strh r0, [r1] ldrh r0, [r2, #6] ldrh r4, [r1] adds r0, r0, r4 strh r0, [r1] movs r1, #0xd2 lsls r1, r1, #2 adds r0, r1, #0 ldrh r2, [r2, #8] adds r0, r0, r2 adds r1, r3, #0 adds r1, #0x82 strh r0, [r1] adds r0, r3, #0 bl sub_08047D88 pop {r4, pc} .align 2, 0 thumb_func_start sub_080477F0 sub_080477F0: @ 0x080477F0 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 ldrh r2, [r4, #0x24] movs r0, #0x24 ldrsh r1, [r4, r0] ldr r0, _08047868 @ =0x000002FF cmp r1, r0 bgt _0804780A adds r0, r2, #0 adds r0, #8 strh r0, [r4, #0x24] _0804780A: adds r7, r4, #0 adds r7, #0x80 ldrh r0, [r7] movs r2, #0x2e ldrsh r1, [r4, r2] subs r0, r0, r1 adds r6, r4, #0 adds r6, #0x82 ldrh r1, [r6] movs r3, #0x32 ldrsh r2, [r4, r3] subs r1, r1, r2 bl sub_080045DA strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_08047E48 ldr r0, _0804786C @ =gUnk_03001160 movs r2, #0x2e ldrsh r1, [r0, r2] movs r3, #0x32 ldrsh r2, [r0, r3] adds r0, r4, #0 movs r3, #0x80 bl sub_0806FCB8 adds r1, r0, #0 cmp r1, #0 bne _08047870 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r4, #0xd] 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] ldrb r0, [r4, #0x14] strb r0, [r4, #0x15] b _0804790C .align 2, 0 _08047868: .4byte 0x000002FF _0804786C: .4byte gUnk_03001160 _08047870: ldr r5, _080478FC @ =gUnk_03000BF0 ldrh r1, [r5, #6] movs r0, #0x80 lsls r0, r0, #2 mov r8, r0 add r1, r8 ldrh r2, [r5, #8] movs r3, #0x84 lsls r3, r3, #2 adds r2, r2, r3 movs r3, #0x80 lsls r3, r3, #1 adds r0, r4, #0 bl sub_0806FCB8 cmp r0, #0 bne _080478A0 ldrb r0, [r4, #0x1b] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x1b] ldrb r0, [r4, #0x19] orrs r0, r1 strb r0, [r4, #0x19] _080478A0: ldrh r1, [r7] ldrh r2, [r6] adds r0, r4, #0 movs r3, #4 bl sub_0806FCB8 cmp r0, #0 beq _0804790C movs r0, #2 strb r0, [r4, #0xd] ldrb r0, [r4, #0x14] lsls r0, r0, #8 adds r1, r4, #0 adds r1, #0x76 strh r0, [r1] bl sub_08000E50 ldr r2, _08047900 @ =gUnk_080D1BF0 movs r1, #1 ands r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r2, [r0] adds r0, r4, #0 adds r0, #0x74 strh r2, [r0] ldr r2, [r4, #0x64] ldr r0, [r2] adds r0, #0x6c ldrh r0, [r0] ands r1, r0 cmp r1, #0 beq _08047904 ldr r3, [r2, #4] ldrh r0, [r5, #6] add r0, r8 movs r2, #0x2e ldrsh r1, [r4, r2] movs r2, #0x83 cmp r0, r1 ble _080478F4 movs r2, #0x81 _080478F4: adds r0, r3, #0 adds r0, #0x79 strb r2, [r0] b _0804790C .align 2, 0 _080478FC: .4byte gUnk_03000BF0 _08047900: .4byte gUnk_080D1BF0 _08047904: ldr r0, [r2, #4] adds r0, #0x79 movs r1, #0x80 strb r1, [r0] _0804790C: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08047914 sub_08047914: @ 0x08047914 push {r4, lr} adds r4, r0, #0 bl sub_08047D88 ldrb r1, [r4, #0x14] movs r0, #0x1f ands r0, r1 cmp r0, #0 beq _08047950 adds r1, r4, #0 adds r1, #0x76 adds r0, r4, #0 adds r0, #0x74 ldrh r0, [r0] ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] lsrs r0, r0, #8 strb r0, [r4, #0x14] ldrb r0, [r4, #0x14] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08047EA4 b _08047976 _08047950: movs r0, #3 strb r0, [r4, #0xd] adds r1, r4, #0 adds r1, #0x70 movs r0, #0x3c strh r0, [r1] ldrb r1, [r4, #0xa] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 adds r0, #0x78 adds r1, r4, #0 adds r1, #0x7e strh r0, [r1] ldr r0, [r4, #0x64] ldr r0, [r0] ldrb r1, [r4, #0x14] bl sub_080A1D70 _08047976: pop {r4, pc} thumb_func_start sub_08047978 sub_08047978: @ 0x08047978 push {r4, lr} adds r4, r0, #0 bl sub_08047D88 adds r0, r4, #0 adds r0, #0x45 ldrb r1, [r0] cmp r1, #0 beq _080479C6 adds r2, r4, #0 adds r2, #0x70 ldrh r0, [r2] subs r1, r0, #1 strh r1, [r2] lsls r0, r1, #0x10 cmp r0, #0 bne _080479B6 adds r1, r4, #0 adds r1, #0x72 movs r0, #1 strh r0, [r1] ldrb r0, [r4, #0xa] cmp r0, #0 bne _080479AE movs r0, #0xb4 strh r0, [r2] b _080479CC _080479AE: movs r0, #0xb4 lsls r0, r0, #1 strh r0, [r2] b _080479CC _080479B6: lsls r0, r1, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xf0 bne _080479CC adds r0, r4, #0 bl sub_0804813C b _080479CC _080479C6: adds r0, r4, #0 adds r0, #0x72 strh r1, [r0] _080479CC: adds r1, r4, #0 adds r1, #0x7e ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _080479F4 movs r0, #0xf0 strh r0, [r1] bl sub_08000E50 movs r1, #3 ands r1, r0 movs r0, #0x62 bl sub_0804AA60 cmp r0, #0 beq _080479F4 str r4, [r0, #0x50] _080479F4: ldr r0, _08047A78 @ =gUnk_03001160 movs r2, #0x2e ldrsh r1, [r0, r2] movs r3, #0x32 ldrsh r2, [r0, r3] adds r0, r4, #0 movs r3, #0x80 bl sub_0806FCB8 adds r1, r0, #0 cmp r1, #0 bne _08047A2C movs r0, #2 strb r0, [r4, #0xc] strb r1, [r4, #0xd] 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] ldrb r0, [r4, #0x14] strb r0, [r4, #0x15] _08047A2C: adds r0, r4, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _08047B06 ldr r0, [r4, #0x54] ldrb r0, [r0, #0xc] cmp r0, #1 bne _08047B06 movs r0, #4 strb r0, [r4, #0xd] ldrb r0, [r4, #0xa] cmp r0, #0 bne _08047AA4 ldr r0, [r4, #0x64] ldr r0, [r0, #4] ldrb r0, [r0, #0x14] lsrs r0, r0, #6 cmp r0, #1 bne _08047A80 ldr r2, _08047A7C @ =gUnk_03000BF0 movs r1, #0xe0 lsls r1, r1, #1 adds r0, r1, #0 ldrh r3, [r2, #6] adds r0, r0, r3 adds r1, r4, #0 adds r1, #0x80 strh r0, [r1] movs r1, #0x94 lsls r1, r1, #2 adds r0, r1, #0 ldrh r2, [r2, #8] adds r0, r0, r2 adds r1, r4, #0 adds r1, #0x82 b _08047B04 .align 2, 0 _08047A78: .4byte gUnk_03001160 _08047A7C: .4byte gUnk_03000BF0 _08047A80: ldr r2, _08047AA0 @ =gUnk_03000BF0 movs r3, #0x90 lsls r3, r3, #2 adds r0, r3, #0 ldrh r1, [r2, #6] adds r0, r0, r1 adds r1, r4, #0 adds r1, #0x80 strh r0, [r1] adds r3, #0x10 adds r0, r3, #0 ldrh r2, [r2, #8] adds r0, r0, r2 adds r1, #2 b _08047B04 .align 2, 0 _08047AA0: .4byte gUnk_03000BF0 _08047AA4: ldr r0, _08047AC4 @ =gUnk_03000BF0 ldrh r1, [r0, #6] movs r2, #0x80 lsls r2, r2, #2 adds r1, r1, r2 movs r3, #0x2e ldrsh r2, [r4, r3] adds r3, r0, #0 cmp r1, r2 bge _08047AC8 adds r1, r4, #0 adds r1, #0x80 movs r0, #0xc8 lsls r0, r0, #1 b _08047AD0 .align 2, 0 _08047AC4: .4byte gUnk_03000BF0 _08047AC8: adds r1, r4, #0 adds r1, #0x80 movs r0, #0x9c lsls r0, r0, #2 _08047AD0: strh r0, [r1] ldrh r0, [r3, #6] ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] ldrh r0, [r3, #8] movs r1, #0x84 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0x32 ldrsh r1, [r4, r2] cmp r0, r1 bge _08047AF4 adds r1, r4, #0 adds r1, #0x82 movs r0, #0xd0 lsls r0, r0, #1 b _08047AFC _08047AF4: adds r1, r4, #0 adds r1, #0x82 movs r0, #0xa0 lsls r0, r0, #2 _08047AFC: strh r0, [r1] ldrh r0, [r3, #8] ldrh r3, [r1] adds r0, r0, r3 _08047B04: strh r0, [r1] _08047B06: pop {r4, pc} thumb_func_start sub_08047B08 sub_08047B08: @ 0x08047B08 push {r4, r5, r6, r7, lr} adds r5, r0, #0 bl sub_08047D88 adds r4, r5, #0 adds r4, #0x80 ldrh r0, [r4] movs r2, #0x2e ldrsh r1, [r5, r2] subs r0, r0, r1 adds r6, r5, #0 adds r6, #0x82 ldrh r1, [r6] movs r3, #0x32 ldrsh r2, [r5, r3] subs r1, r1, r2 bl sub_080045DA strb r0, [r5, #0x15] movs r7, #0 movs r0, #0x80 lsls r0, r0, #2 strh r0, [r5, #0x24] adds r0, r5, #0 bl sub_08047E58 ldrh r1, [r4] ldrh r2, [r6] adds r0, r5, #0 movs r3, #4 bl sub_0806FCB8 cmp r0, #0 beq _08047B80 ldrb r0, [r5, #0xa] cmp r0, #0 bne _08047B60 movs r0, #7 strb r0, [r5, #0xc] strb r7, [r5, #0xd] ldrb r0, [r5, #0x15] movs r1, #0x80 eors r0, r1 b _08047B7E _08047B60: movs r0, #4 strb r0, [r5, #0xc] strb r7, [r5, #0xd] ldrb r2, [r5, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 movs r2, #0x80 orrs r0, r2 strb r0, [r5, #0x1b] ldrb r0, [r5, #0x19] ands r1, r0 orrs r1, r2 strb r1, [r5, #0x19] ldrb r0, [r5, #0x14] _08047B7E: strb r0, [r5, #0x15] _08047B80: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08047B84 sub_08047B84: @ 0x08047B84 push {r4, lr} adds r4, r0, #0 ldr r1, _08047BA0 @ =gUnk_080D1BF4 ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 _08047BA0: .4byte gUnk_080D1BF4 thumb_func_start sub_08047BA4 sub_08047BA4: @ 0x08047BA4 push {r4, lr} adds r4, r0, #0 movs r1, #0 movs r0, #1 strb r0, [r4, #0xd] movs r2, #0x78 strb r2, [r4, #0xe] strb r1, [r4, #0xf] ldr r0, _08047BD0 @ =gUnk_03000BF0 ldrh r0, [r0, #6] movs r1, #0x80 lsls r1, r1, #2 adds r0, r0, r1 movs r3, #0x2e ldrsh r1, [r4, r3] cmp r0, r1 bge _08047BD4 adds r0, r4, #0 adds r0, #0x76 strh r2, [r0] b _08047BDC .align 2, 0 _08047BD0: .4byte gUnk_03000BF0 _08047BD4: adds r1, r4, #0 adds r1, #0x76 movs r0, #0x88 strh r0, [r1] _08047BDC: ldr r0, _08047BEC @ =0x000001B5 bl sub_080A3268 adds r0, r4, #0 bl sub_08047BF0 pop {r4, pc} .align 2, 0 _08047BEC: .4byte 0x000001B5 thumb_func_start sub_08047BF0 sub_08047BF0: @ 0x08047BF0 push {r4, r5, r6, lr} adds r5, r0, #0 ldr r2, _08047CB8 @ =gUnk_080D1C00 ldrb r1, [r5, #0xe] movs r0, #3 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] strb r0, [r5, #0x15] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r5, #0x24] adds r0, r5, #0 bl sub_08047E48 ldrb r0, [r5, #0xe] cmp r0, #0 bne _08047CC4 ldrb r1, [r5, #0xf] adds r0, r1, #1 strb r0, [r5, #0xf] movs r0, #0xf ands r0, r1 cmp r0, #0 bne _08047C74 adds r0, r5, #0 movs r1, #0x51 movs r2, #0 bl sub_080A29AC adds r4, r0, #0 cmp r4, #0 beq _08047C74 bl sub_08000E50 movs r3, #0x1e adds r1, r0, #0 ands r1, r3 ldr r6, _08047CBC @ =0x0000FFF1 adds r2, r6, #0 adds r1, r2, r1 ldrh r6, [r4, #0x2e] adds r1, r1, r6 strh r1, [r4, #0x2e] lsrs r0, r0, #8 ands r0, r3 adds r2, r2, r0 ldrh r0, [r4, #0x32] adds r2, r2, r0 strh r2, [r4, #0x32] 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] adds r1, r4, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 _08047C74: adds r0, r5, #0 adds r0, #0x76 ldrh r0, [r0] strb r0, [r5, #0x15] movs r0, #0xa0 lsls r0, r0, #1 strh r0, [r5, #0x24] adds r0, r5, #0 bl sub_08047E48 movs r2, #0x32 ldrsh r1, [r5, r2] ldr r0, _08047CC0 @ =gUnk_03000BF0 ldrh r0, [r0, #8] movs r6, #0x9c lsls r6, r6, #2 adds r0, r0, r6 cmp r1, r0 ble _08047D10 movs r0, #2 strb r0, [r5, #0xd] adds r1, r5, #0 adds r1, #0x7e movs r0, #0xaa strh r0, [r1] adds r0, #0x83 bl sub_080A3268 adds r0, r5, #0 movs r1, #1 bl sub_080042AC b _08047D10 .align 2, 0 _08047CB8: .4byte gUnk_080D1C00 _08047CBC: .4byte 0x0000FFF1 _08047CC0: .4byte gUnk_03000BF0 _08047CC4: subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x5a bne _08047CD4 ldr r4, [r5, #0x54] b _08047CDC _08047CD4: cmp r0, #0x3c bne _08047CF2 ldr r0, [r5, #0x54] ldr r4, [r0, #0x54] _08047CDC: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0x51 movs r2, #0 bl sub_080A29AC b _08047D10 _08047CF2: cmp r0, #0x1e bne _08047D10 ldr r0, [r5, #0x54] ldr r0, [r0, #0x54] ldr r4, [r0, #0x54] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0x51 movs r2, #0 bl sub_080A29AC _08047D10: adds r0, r5, #0 adds r0, #0x78 ldrh r3, [r0] adds r0, r5, #0 movs r1, #0xaa movs r2, #0xaa bl sub_0805EC9C pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08047D24 sub_08047D24: @ 0x08047D24 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x7e ldrh r0, [r1] adds r0, #8 movs r2, #0 strh r0, [r1] lsls r0, r0, #0x10 lsrs r1, r0, #0x10 movs r0, #0x80 lsls r0, r0, #4 cmp r1, r0 bls _08047D5A ldrb r0, [r4, #0xa] cmp r0, #0 bne _08047D4C ldr r0, [r4, #0x64] str r2, [r0, #8] b _08047D50 _08047D4C: ldr r0, [r4, #0x64] str r2, [r0, #0xc] _08047D50: movs r0, #0 str r0, [r4, #0x64] bl sub_0805E780 b _08047D84 _08047D5A: ldr r0, _08047D68 @ =0x000001FF cmp r1, r0 bhi _08047D6C adds r0, r4, #0 bl sub_08047E48 b _08047D72 .align 2, 0 _08047D68: .4byte 0x000001FF _08047D6C: adds r0, r4, #0 bl sub_08047E58 _08047D72: adds r0, r4, #0 adds r0, #0x7e ldrh r2, [r0] subs r0, #6 ldrh r3, [r0] adds r0, r4, #0 adds r1, r2, #0 bl sub_0805EC9C _08047D84: pop {r4, pc} .align 2, 0 thumb_func_start sub_08047D88 sub_08047D88: @ 0x08047D88 push {r4, r5, lr} adds r3, r0, #0 adds r5, r3, #0 adds r5, #0x7c ldrb r2, [r5] lsls r1, r2, #1 movs r0, #0x7f ands r1, r0 movs r0, #0x80 ands r0, r2 orrs r1, r0 strb r1, [r5] ldrb r0, [r3, #0x19] lsrs r0, r0, #6 cmp r0, #3 bne _08047DB0 ldr r0, _08047DE8 @ =gUnk_03003F80 ldrb r0, [r0, #0x14] cmp r0, #0 bne _08047DE6 _08047DB0: adds r0, r3, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #1 beq _08047DE6 ldr r4, _08047DEC @ =gUnk_03001160 movs r0, #0x2e ldrsh r1, [r4, r0] movs r0, #0x32 ldrsh r2, [r4, r0] adds r0, r3, #0 movs r3, #0x20 bl sub_0806FCB8 cmp r0, #0 beq _08047DE6 ldr r0, _08047DE8 @ =gUnk_03003F80 movs r1, #1 strb r1, [r0, #0x14] movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 bne _08047DE6 ldrb r0, [r5] movs r1, #1 orrs r0, r1 strb r0, [r5] _08047DE6: pop {r4, r5, pc} .align 2, 0 _08047DE8: .4byte gUnk_03003F80 _08047DEC: .4byte gUnk_03001160 thumb_func_start sub_08047DF0 sub_08047DF0: @ 0x08047DF0 push {r4, r5, r6, lr} adds r5, r0, #0 adds r4, r1, #0 bl sub_08047D88 adds r0, r5, #0 adds r1, r4, #0 bl sub_08047EA4 movs r0, #0x2e ldrsh r4, [r5, r0] movs r2, #0x32 ldrsh r6, [r5, r2] movs r0, #0x24 ldrsh r1, [r5, r0] ldrb r2, [r5, #0x15] adds r0, r5, #0 bl sub_0806F62C adds r0, r5, #0 adds r0, #0x7c ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08047E42 bl sub_08079F8C cmp r0, #0 beq _08047E42 ldr r0, _08047E44 @ =gUnk_03001160 ldrh r1, [r5, #0x2e] subs r1, r1, r4 ldrh r2, [r0, #0x2e] adds r1, r1, r2 strh r1, [r0, #0x2e] ldrh r1, [r5, #0x32] subs r1, r1, r6 ldrh r2, [r0, #0x32] adds r1, r1, r2 strh r1, [r0, #0x32] _08047E42: pop {r4, r5, r6, pc} .align 2, 0 _08047E44: .4byte gUnk_03001160 thumb_func_start sub_08047E48 sub_08047E48: @ 0x08047E48 push {r4, lr} adds r4, r0, #0 bl sub_08047D88 adds r0, r4, #0 bl sub_08047E58 pop {r4, pc} thumb_func_start sub_08047E58 sub_08047E58: @ 0x08047E58 push {r4, r5, r6, lr} adds r4, r0, #0 movs r0, #0x2e ldrsh r5, [r4, r0] movs r2, #0x32 ldrsh r6, [r4, r2] movs r0, #0x24 ldrsh r1, [r4, r0] ldrb r2, [r4, #0x15] adds r0, r4, #0 bl sub_0806F62C adds r0, r4, #0 adds r0, #0x7c ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08047E9C bl sub_08079F8C cmp r0, #0 beq _08047E9C ldr r0, _08047EA0 @ =gUnk_03001160 ldrh r1, [r4, #0x2e] subs r1, r1, r5 ldrh r2, [r0, #0x2e] adds r1, r1, r2 strh r1, [r0, #0x2e] ldrh r1, [r4, #0x32] subs r1, r1, r6 ldrh r2, [r0, #0x32] adds r1, r1, r2 strh r1, [r0, #0x32] _08047E9C: pop {r4, r5, r6, pc} .align 2, 0 _08047EA0: .4byte gUnk_03001160 thumb_func_start sub_08047EA4 sub_08047EA4: @ 0x08047EA4 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 adds r0, #0x78 strh r1, [r0] ldrh r1, [r0] adds r0, #2 ldrh r0, [r0] subs r4, r1, r0 movs r0, #0x80 lsls r0, r0, #1 adds r1, r4, r0 adds r0, #0xff cmp r1, r0 bls _08047F58 adds r0, r5, #0 adds r0, #0x7c ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08047F4E adds r0, r5, #0 bl sub_08047F68 lsls r0, r0, #8 mov r8, r0 ldr r6, _08047F60 @ =gUnk_03001160 movs r1, #0x2e ldrsh r0, [r6, r1] movs r2, #0x2e ldrsh r1, [r5, r2] subs r0, r0, r1 movs r3, #0x32 ldrsh r1, [r6, r3] movs r7, #0x32 ldrsh r2, [r5, r7] subs r1, r1, r2 bl sub_080045DA adds r3, r0, #0 adds r0, r4, #0 cmp r4, #0 bge _08047F00 adds r0, #0xff _08047F00: asrs r0, r0, #8 subs r4, r3, r0 movs r0, #0xff ands r4, r0 ldr r2, _08047F64 @ =gUnk_080C9160 lsls r0, r4, #1 adds r0, r0, r2 movs r7, #0 ldrsh r1, [r0, r7] lsls r0, r3, #1 adds r0, r0, r2 movs r7, #0 ldrsh r0, [r0, r7] subs r1, r1, r0 mov r0, r8 muls r0, r1, r0 adds r1, r0, #0 ldr r0, [r6, #0x2c] adds r0, r0, r1 str r0, [r6, #0x2c] adds r0, r4, #0 adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r2 movs r4, #0 ldrsh r1, [r0, r4] adds r0, r3, #0 adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r2 movs r7, #0 ldrsh r0, [r0, r7] subs r1, r1, r0 mov r0, r8 muls r0, r1, r0 adds r1, r0, #0 ldr r0, [r6, #0x30] subs r0, r0, r1 str r0, [r6, #0x30] _08047F4E: adds r0, r5, #0 adds r0, #0x78 ldrh r1, [r0] adds r0, #2 strh r1, [r0] _08047F58: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08047F60: .4byte gUnk_03001160 _08047F64: .4byte gUnk_080C9160 thumb_func_start sub_08047F68 sub_08047F68: @ 0x08047F68 push {r4, r5, lr} ldr r3, _08047F98 @ =gUnk_03001160 movs r1, #0x2e ldrsh r2, [r3, r1] movs r4, #0x2e ldrsh r1, [r0, r4] subs r2, r2, r1 movs r4, #0x32 ldrsh r1, [r3, r4] movs r3, #0x32 ldrsh r0, [r0, r3] subs r1, r1, r0 adds r4, r2, #0 muls r4, r2, r4 adds r2, r4, #0 adds r0, r1, #0 muls r0, r1, r0 adds r4, r2, r0 movs r0, #0x80 lsls r0, r0, #3 cmp r4, r0 bne _08047F9C movs r0, #0x20 b _08048002 .align 2, 0 _08047F98: .4byte gUnk_03001160 _08047F9C: ldr r0, _08047FB8 @ =gUnk_080D1C04 movs r3, #0x18 adds r2, r0, #0 ldrh r0, [r2, #0x20] cmp r4, r0 bge _08047FAA movs r3, #8 _08047FAA: lsls r0, r3, #1 adds r0, r0, r2 ldrh r0, [r0] cmp r4, r0 bge _08047FBC subs r3, #4 b _08047FBE .align 2, 0 _08047FB8: .4byte gUnk_080D1C04 _08047FBC: adds r3, #4 _08047FBE: lsls r0, r3, #1 adds r0, r0, r2 ldrh r0, [r0] cmp r4, r0 bge _08047FCC subs r3, #2 b _08047FCE _08047FCC: adds r3, #2 _08047FCE: lsls r0, r3, #1 adds r0, r0, r2 ldrh r0, [r0] cmp r4, r0 bge _08047FDC subs r3, #1 b _08047FDE _08047FDC: adds r3, #1 _08047FDE: lsls r0, r3, #1 adds r0, r0, r2 ldrh r1, [r0] cmp r4, r1 bge _08048000 subs r5, r3, #1 lsls r0, r5, #1 adds r0, r0, r2 ldrh r2, [r0] subs r0, r1, r2 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 adds r2, r2, r0 cmp r4, r2 bgt _08048000 adds r3, r5, #0 _08048000: adds r0, r3, #0 _08048002: pop {r4, r5, pc} thumb_func_start sub_08048004 sub_08048004: @ 0x08048004 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08048010 b _08048138 _08048010: adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0 beq _0804801C b _08048130 _0804801C: ldrb r0, [r4, #0x10] movs r1, #0x7f ands r1, r0 strb r1, [r4, #0x10] ldr r6, _080480A4 @ =gUnk_03001160 movs r1, #0x36 ldrsh r0, [r6, r1] cmp r0, #0 beq _08048030 b _08048138 _08048030: bl sub_08079F8C cmp r0, #0 bne _0804803A b _08048138 _0804803A: adds r1, r4, #0 adds r1, #0x7c ldrb r3, [r1] movs r0, #1 ands r0, r3 adds r5, r1, #0 cmp r0, #0 beq _080480BA ldrb r0, [r4, #0x19] lsrs r0, r0, #6 cmp r0, #3 bne _080480B0 movs r7, #0x2e ldrsh r2, [r6, r7] ldr r1, _080480A8 @ =gUnk_03000BF0 ldrh r0, [r1, #6] subs r2, r2, r0 asrs r2, r2, #3 movs r7, #0x32 ldrsh r0, [r6, r7] ldrh r1, [r1, #8] subs r0, r0, r1 asrs r0, r0, #3 ldr r1, _080480AC @ =gUnk_02019EE0 lsls r0, r0, #7 adds r0, r0, r2 lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] cmp r0, #0 beq _080480B0 movs r0, #2 ands r0, r3 cmp r0, #0 bne _08048086 movs r0, #0x80 orrs r0, r3 strb r0, [r5] _08048086: ldrb r1, [r5] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _08048138 adds r0, r4, #0 adds r0, #0x84 ldrh r0, [r0] strh r0, [r6, #0x2e] adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] strh r0, [r6, #0x32] b _08048138 .align 2, 0 _080480A4: .4byte gUnk_03001160 _080480A8: .4byte gUnk_03000BF0 _080480AC: .4byte gUnk_02019EE0 _080480B0: ldrb r1, [r5] movs r0, #0x7f ands r0, r1 strb r0, [r5] b _08048138 _080480BA: ldrb r0, [r4, #0x19] lsrs r0, r0, #6 cmp r0, #3 beq _08048124 movs r0, #0x2e ldrsh r1, [r4, r0] movs r3, #0x32 ldrsh r2, [r4, r3] adds r0, r6, #0 movs r3, #0x24 bl sub_0806FCB8 cmp r0, #0 beq _08048124 ldrb r1, [r5] movs r0, #2 ands r0, r1 cmp r0, #0 bne _08048124 movs r7, #0x2e ldrsh r0, [r6, r7] movs r2, #0x2e ldrsh r1, [r4, r2] subs r0, r0, r1 movs r3, #0x32 ldrsh r1, [r6, r3] movs r7, #0x32 ldrsh r2, [r4, r7] subs r1, r1, r2 bl sub_080045DA ldr r3, _0804812C @ =gUnk_080C9160 lsls r1, r0, #1 adds r1, r1, r3 movs r2, #0 ldrsh r1, [r1, r2] lsls r2, r1, #3 adds r2, r2, r1 lsls r2, r2, #0xa ldr r1, [r4, #0x2c] adds r1, r1, r2 str r1, [r6, #0x2c] adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r3 movs r3, #0 ldrsh r0, [r0, r3] lsls r1, r0, #3 adds r1, r1, r0 lsls r1, r1, #0xa ldr r0, [r4, #0x30] subs r0, r0, r1 str r0, [r6, #0x30] _08048124: movs r0, #0 strb r0, [r5] b _08048138 .align 2, 0 _0804812C: .4byte gUnk_080C9160 _08048130: ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] _08048138: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0804813C sub_0804813C: @ 0x0804813C push {lr} bl sub_08000E50 adds r2, r0, #0 movs r0, #7 ands r0, r2 lsrs r2, r2, #8 movs r1, #3 ands r2, r1 movs r1, #1 bl sub_080A1ED0 pop {pc} .align 2, 0 thumb_func_start sub_08048158 sub_08048158: @ 0x08048158 push {r4, r5, r6, lr} adds r5, r0, #0 ldr r6, _08048174 @ =gUnk_080D1C44 bl sub_08000E50 lsls r4, r5, #1 adds r4, r4, r5 movs r1, #3 bl __modsi3 adds r4, r4, r0 adds r4, r4, r6 ldrb r0, [r4] pop {r4, r5, r6, pc} .align 2, 0 _08048174: .4byte gUnk_080D1C44 thumb_func_start sub_08048178 sub_08048178: @ 0x08048178 push {r4, lr} adds r4, r0, #0 adds r2, r1, #0 ldr r0, [r4, #0x64] ldr r0, [r0, #4] ldrb r0, [r0, #0x14] lsrs r0, r0, #6 movs r1, #1 ands r0, r1 cmp r0, #0 beq _08048198 lsls r1, r2, #1 ldr r0, _08048194 @ =gUnk_080D1C60 b _0804819C .align 2, 0 _08048194: .4byte gUnk_080D1C60 _08048198: lsls r1, r2, #1 ldr r0, _080481B8 @ =gUnk_080D1C50 _0804819C: adds r3, r1, r0 ldr r2, _080481BC @ =gUnk_03000BF0 ldrh r0, [r2, #6] ldrh r1, [r3] adds r0, r0, r1 adds r1, r4, #0 adds r1, #0x80 strh r0, [r1] ldrh r0, [r2, #8] ldrh r3, [r3, #2] adds r0, r0, r3 adds r1, #2 strh r0, [r1] pop {r4, pc} .align 2, 0 _080481B8: .4byte gUnk_080D1C50 _080481BC: .4byte gUnk_03000BF0 thumb_func_start sub_080481C0 sub_080481C0: @ 0x080481C0 push {lr} ldr r1, _080481CC @ =gUnk_080D1CC8 bl sub_0800129E pop {pc} .align 2, 0 _080481CC: .4byte gUnk_080D1CC8 thumb_func_start sub_080481D0 sub_080481D0: @ 0x080481D0 push {lr} ldr r2, _080481E4 @ =gUnk_080D1CE0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080481E4: .4byte gUnk_080D1CE0 thumb_func_start sub_080481E8 sub_080481E8: @ 0x080481E8 push {lr} adds r2, r0, #0 adds r0, #0x46 ldrh r0, [r0] cmp r0, #0 beq _08048210 movs r0, #2 strb r0, [r2, #0xc] ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0x10] adds r3, r2, #0 adds r3, #0x29 ldrb r0, [r3] movs r1, #7 orrs r0, r1 strb r0, [r3] movs r0, #3 b _08048212 _08048210: movs r0, #2 _08048212: strb r0, [r2, #0xe] ldrb r1, [r2, #0xe] adds r0, r2, #0 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start nullsub_26 nullsub_26: @ 0x08048220 bx lr .align 2, 0 thumb_func_start sub_08048224 sub_08048224: @ 0x08048224 push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #8 rsbs r1, r1, #0 ands r1, r0 movs r0, #4 orrs r1, r0 strb r1, [r2] movs r0, #0x72 bl sub_0807CBD0 adds r1, r0, #0 cmp r1, #0 bne _0804824E movs r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0xe] b _0804825E _0804824E: movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r0, #1 strb r0, [r4, #0xe] _0804825E: ldrb r1, [r4, #0xe] adds r0, r4, #0 bl sub_08004260 pop {r4, pc} thumb_func_start sub_08048268 sub_08048268: @ 0x08048268 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08048292 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08048292 movs r0, #0 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0 bl sub_08004260 _08048292: pop {r4, pc} thumb_func_start sub_08048294 sub_08048294: @ 0x08048294 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080482BC movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x72 bl sub_0807CCB4 adds r0, r4, #0 movs r1, #1 bl sub_08004260 _080482BC: pop {r4, pc} .align 2, 0 thumb_func_start nullsub_27 nullsub_27: @ 0x080482C0 bx lr .align 2, 0 thumb_func_start sub_080482C4 sub_080482C4: @ 0x080482C4 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldr r0, [r0, #4] cmp r0, #0 bne _080482D4 bl sub_0805E780 _080482D4: ldr r0, _080482E8 @ =gUnk_080D1D48 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _080482E8: .4byte gUnk_080D1D48 thumb_func_start sub_080482EC sub_080482EC: @ 0x080482EC push {r4, lr} adds r4, r0, #0 ldr r0, _08048310 @ =gUnk_030010A0 adds r0, #0x38 ldrb r1, [r0] movs r2, #1 adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _08048314 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_08004260 b _08048326 .align 2, 0 _08048310: .4byte gUnk_030010A0 _08048314: strb r2, [r4, #0xc] adds r0, r4, #0 movs r1, #0 bl sub_08004260 movs r0, #0xb3 lsls r0, r0, #1 bl sub_080A3268 _08048326: adds r0, r4, #0 bl sub_080485D8 pop {r4, pc} .align 2, 0 thumb_func_start sub_08048330 sub_08048330: @ 0x08048330 push {r4, lr} adds r4, r0, #0 bl sub_080485D8 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08048358 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _08048358: pop {r4, pc} .align 2, 0 thumb_func_start sub_0804835C sub_0804835C: @ 0x0804835C push {r4, lr} adds r4, r0, #0 bl sub_080485D8 ldr r0, _08048384 @ =gUnk_030010A0 adds r0, #0x39 ldrb r1, [r0] movs r2, #3 adds r0, r2, #0 ands r0, r1 cmp r0, #0 bne _08048382 strb r2, [r4, #0xc] ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r1, r0 strb r1, [r4, #0x10] movs r0, #0x80 strh r0, [r4, #0x24] _08048382: pop {r4, pc} .align 2, 0 _08048384: .4byte gUnk_030010A0 thumb_func_start sub_08048388 sub_08048388: @ 0x08048388 push {r4, r5, r6, lr} adds r5, r0, #0 ldr r2, [r5, #0x50] adds r0, r2, #0 adds r0, #0x79 ldrb r0, [r0] cmp r0, #0 beq _080483A0 adds r0, r5, #0 bl sub_080485D8 b _080483F2 _080483A0: ldrb r1, [r5, #0xa] lsls r1, r1, #1 ldr r0, _080483F4 @ =gUnk_080D1D98 adds r1, r1, r0 movs r0, #0x2e ldrsh r4, [r2, r0] movs r0, #0 ldrsb r0, [r1, r0] adds r4, r4, r0 movs r0, #0x32 ldrsh r2, [r2, r0] movs r0, #1 ldrsb r0, [r1, r0] adds r6, r2, r0 movs r1, #0x2e ldrsh r0, [r5, r1] movs r2, #0x32 ldrsh r1, [r5, r2] adds r2, r4, #0 adds r3, r6, #0 bl sub_080045D4 strb r0, [r5, #0x15] adds r0, r5, #0 bl sub_0806F69C ldr r0, [r5, #0x50] ldrh r0, [r0, #0x36] strh r0, [r5, #0x36] movs r1, #0x2e ldrsh r0, [r5, r1] cmp r0, r4 bne _080483F2 movs r2, #0x32 ldrsh r0, [r5, r2] cmp r0, r6 bne _080483F2 movs r0, #4 strb r0, [r5, #0xc] movs r0, #0x3c strb r0, [r5, #0xe] _080483F2: pop {r4, r5, r6, pc} .align 2, 0 _080483F4: .4byte gUnk_080D1D98 thumb_func_start sub_080483F8 sub_080483F8: @ 0x080483F8 push {r4, r5, lr} adds r4, r0, #0 bl sub_080485FC ldrb r0, [r4, #0xe] adds r5, r0, #0 cmp r5, #0 beq _0804841C subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08048436 adds r0, r4, #0 movs r1, #3 bl sub_08004260 b _08048436 _0804841C: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08048436 movs r0, #5 strb r0, [r4, #0xc] strb r5, [r4, #0xe] _08048436: pop {r4, r5, pc} thumb_func_start sub_08048438 sub_08048438: @ 0x08048438 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _0804846A movs r0, #6 strb r0, [r4, #0xc] ldr r0, [r4, #0x50] adds r0, #0x45 ldrb r0, [r0] cmp r0, #0x14 bls _08048454 movs r0, #0x78 b _08048456 _08048454: movs r0, #0x3c _08048456: strb r0, [r4, #0xe] movs r0, #0 str r0, [r4, #0x54] adds r0, r4, #0 movs r1, #5 bl sub_08004260 ldr r0, _08048474 @ =0x0000019B bl sub_080A3268 _0804846A: adds r0, r4, #0 bl sub_080485FC pop {r4, pc} .align 2, 0 _08048474: .4byte 0x0000019B thumb_func_start sub_08048478 sub_08048478: @ 0x08048478 push {r4, lr} adds r4, r0, #0 bl sub_080485FC adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0xe] adds r2, r0, #0 cmp r2, #0 beq _080484A2 subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080484E6 adds r0, r4, #0 movs r1, #6 bl sub_08004260 b _080484E6 _080484A2: adds r3, r4, #0 adds r3, #0x5a ldrb r1, [r3] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080484BC movs r0, #7 strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xe] strb r2, [r4, #0xf] b _080484E6 _080484BC: movs r0, #1 ands r0, r1 cmp r0, #0 beq _080484E6 movs r0, #0xfe ands r0, r1 strb r0, [r3] movs r0, #0x24 bl sub_080A7EE0 adds r1, r0, #0 cmp r1, #0 beq _080484E6 str r4, [r1, #0x50] str r1, [r4, #0x54] movs r3, #0xc0 lsls r3, r3, #0xc adds r0, r4, #0 movs r2, #0 bl sub_0806FA48 _080484E6: pop {r4, pc} thumb_func_start sub_080484E8 sub_080484E8: @ 0x080484E8 push {r4, lr} adds r4, r0, #0 bl sub_080485FC adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0xf] cmp r0, #0 beq _08048528 movs r0, #8 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0x1f movs r2, #0x40 bl sub_080A29AC ldr r2, [r4, #0x50] adds r2, #0x7b movs r0, #0x10 b _08048542 _08048528: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0804854C movs r0, #5 strb r0, [r4, #0xc] strb r1, [r4, #0xe] ldr r2, [r4, #0x50] adds r2, #0x7b movs r0, #1 _08048542: ldrb r4, [r4, #0xa] lsls r0, r4 ldrb r1, [r2] orrs r0, r1 strb r0, [r2] _0804854C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08048550 sub_08048550: @ 0x08048550 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldrb r0, [r0, #0xc] cmp r0, #0xb bne _08048562 movs r0, #0x3c strb r0, [r4, #0xe] b _0804859E _08048562: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0804859E movs r0, #9 strb r0, [r4, #0xc] ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_080485FC movs r0, #0xb3 lsls r0, r0, #1 bl sub_080A3268 _0804859E: pop {r4, pc} thumb_func_start sub_080485A0 sub_080485A0: @ 0x080485A0 push {r4, lr} adds r4, r0, #0 bl sub_080485FC adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080485D6 movs r0, #4 strb r0, [r4, #0xc] movs r1, #1 strb r1, [r4, #0xe] ldr r2, [r4, #0x50] adds r2, #0x7b ldrb r3, [r2] movs r0, #0xf ands r0, r3 ldrb r4, [r4, #0xa] lsls r1, r4 orrs r0, r1 strb r0, [r2] _080485D6: pop {r4, pc} thumb_func_start sub_080485D8 sub_080485D8: @ 0x080485D8 push {lr} adds r1, r0, #0 ldrb r3, [r1, #0xa] lsls r3, r3, #1 ldr r0, _080485F8 @ =gUnk_080D1D70 adds r3, r3, r0 ldr r0, [r1, #0x50] movs r2, #0 ldrsb r2, [r3, r2] ldrb r3, [r3, #1] lsls r3, r3, #0x18 asrs r3, r3, #0x18 bl sub_0806FA90 pop {pc} .align 2, 0 _080485F8: .4byte gUnk_080D1D70 thumb_func_start sub_080485FC sub_080485FC: @ 0x080485FC push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xa] lsls r1, r1, #1 ldr r0, _08048638 @ =gUnk_080D1D98 adds r1, r1, r0 ldr r0, [r4, #0x50] movs r2, #0 ldrsb r2, [r1, r2] movs r3, #1 ldrsb r3, [r1, r3] adds r1, r4, #0 bl sub_0806FA90 ldr r3, _0804863C @ =gUnk_080D1D78 ldrb r1, [r4, #0xa] lsls r1, r1, #3 ldr r0, [r4, #0x50] adds r0, #0x78 ldrb r0, [r0] lsrs r0, r0, #4 movs r2, #7 ands r0, r2 adds r1, r1, r0 adds r1, r1, r3 movs r0, #0 ldrsb r0, [r1, r0] strh r0, [r4, #0x36] pop {r4, pc} .align 2, 0 _08048638: .4byte gUnk_080D1D98 _0804863C: .4byte gUnk_080D1D78 thumb_func_start sub_08048640 sub_08048640: @ 0x08048640 push {r4, r5, lr} adds r5, r0, #0 ldr r0, _0804867C @ =gUnk_030010A0 adds r0, #0x39 ldrb r2, [r0] cmp r2, #0 bne _08048664 ldrb r1, [r5, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r5, #0x10] adds r0, r5, #0 adds r0, #0x45 strb r2, [r0] adds r1, r5, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] _08048664: ldr r4, _08048680 @ =gUnk_080D1E6C adds r0, r5, #0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _0804867C: .4byte gUnk_030010A0 _08048680: .4byte gUnk_080D1E6C thumb_func_start sub_08048684 sub_08048684: @ 0x08048684 push {lr} ldr r2, _08048698 @ =gUnk_080D1E84 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08048698: .4byte gUnk_080D1E84 thumb_func_start sub_0804869C sub_0804869C: @ 0x0804869C push {lr} ldr r1, _080486A8 @ =gUnk_080D1E6C bl sub_0804AA30 pop {pc} .align 2, 0 _080486A8: .4byte gUnk_080D1E6C thumb_func_start sub_080486AC sub_080486AC: @ 0x080486AC push {r4, lr} adds r4, r0, #0 bl sub_0806F520 cmp r0, #0 beq _080486C8 ldr r0, _080486CC @ =gUnk_080D1E94 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _080486C8: pop {r4, pc} .align 2, 0 _080486CC: .4byte gUnk_080D1E94 thumb_func_start sub_080486D0 sub_080486D0: @ 0x080486D0 movs r1, #2 strb r1, [r0, #0xd] bx lr .align 2, 0 thumb_func_start sub_080486D8 sub_080486D8: @ 0x080486D8 push {lr} bl sub_0806F4E8 pop {pc} thumb_func_start sub_080486E0 sub_080486E0: @ 0x080486E0 push {r4, lr} adds r4, r0, #0 bl sub_0806F3E4 cmp r0, #0 beq _080486F2 adds r0, r4, #0 bl sub_0804A7D4 _080486F2: pop {r4, pc} thumb_func_start sub_080486F4 sub_080486F4: @ 0x080486F4 push {r4, r5, lr} adds r4, r0, #0 movs r5, #1 strb r5, [r4, #0x1c] ldrb r0, [r4, #0x1b] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x1b] ldrb r0, [r4, #0x19] orrs r0, r1 strb r0, [r4, #0x19] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] ldrb r0, [r4, #0x15] lsrs r0, r0, #2 strb r0, [r4, #0x14] ldrb r0, [r4, #0xa] cmp r0, #0 bne _0804876C ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 strb r5, [r4, #0xc] ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x10] bl sub_08000E50 movs r1, #0xb bl __modsi3 ldrb r1, [r4, #0x15] adds r1, r1, r0 subs r1, #5 movs r2, #0x1f ands r1, r2 strb r1, [r4, #0x15] lsls r0, r0, #1 ldr r2, _08048768 @ =gUnk_080D1EA0 adds r1, r0, r2 ldrb r1, [r1] strb r1, [r4, #0xe] adds r0, #1 adds r0, r0, r2 ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x7b strb r0, [r1] movs r0, #0x80 lsls r0, r0, #2 strh r0, [r4, #0x24] b _0804877A .align 2, 0 _08048768: .4byte gUnk_080D1EA0 _0804876C: movs r0, #2 strb r0, [r4, #0xc] strb r5, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #6 ands r0, r1 strb r0, [r4, #0x18] _0804877A: pop {r4, r5, pc} thumb_func_start sub_0804877C sub_0804877C: @ 0x0804877C push {r4, lr} adds r4, r0, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] cmp r0, #0 beq _080487AA subs r0, #1 strb r0, [r4, #0xe] movs r1, #0xff ands r0, r1 movs r1, #0xf ands r0, r1 cmp r0, #0 bne _080487AA adds r0, r4, #0 adds r0, #0x7b ldrb r0, [r0] ldrb r1, [r4, #0x15] adds r0, r0, r1 movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] _080487AA: ldrb r0, [r4, #0x14] lsrs r0, r0, #1 cmp r0, #1 beq _080487D4 cmp r0, #1 bgt _080487BC cmp r0, #0 beq _080487C2 b _08048804 _080487BC: cmp r0, #2 beq _080487EC b _08048804 _080487C2: movs r2, #0x32 ldrsh r1, [r4, r2] ldr r0, _080487D0 @ =gUnk_03000BF0 movs r2, #0xc ldrsh r0, [r0, r2] b _0804880E .align 2, 0 _080487D0: .4byte gUnk_03000BF0 _080487D4: movs r0, #0x2e ldrsh r1, [r4, r0] ldr r0, _080487E8 @ =gUnk_03000BF0 movs r2, #0xa ldrsh r0, [r0, r2] movs r2, #0x84 lsls r2, r2, #1 adds r0, r0, r2 b _080487F8 .align 2, 0 _080487E8: .4byte gUnk_03000BF0 _080487EC: movs r0, #0x32 ldrsh r1, [r4, r0] ldr r0, _08048800 @ =gUnk_03000BF0 movs r2, #0xc ldrsh r0, [r0, r2] adds r0, #0xb8 _080487F8: cmp r1, r0 blt _08048824 b _08048814 .align 2, 0 _08048800: .4byte gUnk_03000BF0 _08048804: movs r0, #0x2e ldrsh r1, [r4, r0] ldr r0, _08048828 @ =gUnk_03000BF0 movs r2, #0xa ldrsh r0, [r0, r2] _0804880E: subs r0, #0x18 cmp r1, r0 bgt _08048824 _08048814: movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x5a strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #0x5e ands r0, r1 strb r0, [r4, #0x18] _08048824: pop {r4, pc} .align 2, 0 _08048828: .4byte gUnk_03000BF0 thumb_func_start sub_0804882C sub_0804882C: @ 0x0804882C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080488FA movs r0, #3 strb r0, [r4, #0xc] ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x10] bl sub_08000E50 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] 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 r0, r4, #0 adds r0, #0x78 ldrh r0, [r0] strh r0, [r4, #0x24] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 adds r0, #0x7a ldrb r0, [r0] strb r0, [r4, #0x15] lsls r0, r0, #0x18 lsrs r0, r0, #0x1a strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 ldrb r0, [r4, #0x14] lsrs r0, r0, #1 cmp r0, #1 beq _080488D0 cmp r0, #1 bgt _080488AA cmp r0, #0 beq _080488AE b _080488D0 _080488AA: cmp r0, #2 bne _080488D0 _080488AE: ldr r1, _080488C8 @ =gUnk_03001160 adds r0, r4, #0 adds r0, #0x74 ldrh r0, [r0] ldrh r1, [r1, #0x2e] adds r0, r0, r1 strh r0, [r4, #0x2e] ldr r1, _080488CC @ =gUnk_03000BF0 adds r0, r4, #0 adds r0, #0x76 ldrh r0, [r0] ldrh r1, [r1, #0xc] b _080488E8 .align 2, 0 _080488C8: .4byte gUnk_03001160 _080488CC: .4byte gUnk_03000BF0 _080488D0: ldr r1, _080488FC @ =gUnk_03000BF0 adds r0, r4, #0 adds r0, #0x74 ldrh r0, [r0] ldrh r1, [r1, #0xa] adds r0, r0, r1 strh r0, [r4, #0x2e] ldr r1, _08048900 @ =gUnk_03001160 adds r0, r4, #0 adds r0, #0x76 ldrh r0, [r0] ldrh r1, [r1, #0x32] _080488E8: adds r0, r0, r1 strh r0, [r4, #0x32] ldrb r0, [r4, #0xb] cmp r0, #0 bne _080488FA movs r0, #0xcc lsls r0, r0, #1 bl sub_080A3268 _080488FA: pop {r4, pc} .align 2, 0 _080488FC: .4byte gUnk_03000BF0 _08048900: .4byte gUnk_03001160 thumb_func_start sub_08048904 sub_08048904: @ 0x08048904 push {r4, lr} adds r4, r0, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0x14] lsrs r0, r0, #1 cmp r0, #1 beq _0804893C cmp r0, #1 bgt _08048924 cmp r0, #0 beq _0804892A b _0804896C _08048924: cmp r0, #2 beq _08048954 b _0804896C _0804892A: movs r0, #0x32 ldrsh r1, [r4, r0] ldr r0, _08048938 @ =gUnk_03000BF0 movs r2, #0xc ldrsh r0, [r0, r2] b _08048976 .align 2, 0 _08048938: .4byte gUnk_03000BF0 _0804893C: movs r0, #0x2e ldrsh r1, [r4, r0] ldr r0, _08048950 @ =gUnk_03000BF0 movs r2, #0xa ldrsh r0, [r0, r2] movs r2, #0x8c lsls r2, r2, #1 adds r0, r0, r2 b _08048960 .align 2, 0 _08048950: .4byte gUnk_03000BF0 _08048954: movs r0, #0x32 ldrsh r1, [r4, r0] ldr r0, _08048968 @ =gUnk_03000BF0 movs r2, #0xc ldrsh r0, [r0, r2] adds r0, #0xc8 _08048960: cmp r1, r0 blt _08048980 b _0804897C .align 2, 0 _08048968: .4byte gUnk_03000BF0 _0804896C: movs r0, #0x2e ldrsh r1, [r4, r0] ldr r0, _08048984 @ =gUnk_03000BF0 movs r2, #0xa ldrsh r0, [r0, r2] _08048976: subs r0, #0x28 cmp r1, r0 bgt _08048980 _0804897C: bl sub_0805E780 _08048980: pop {r4, pc} .align 2, 0 _08048984: .4byte gUnk_03000BF0 thumb_func_start sub_08048988 sub_08048988: @ 0x08048988 push {r4, r5, lr} adds r5, r0, #0 ldr r0, [r5, #0x50] ldr r0, [r0, #4] cmp r0, #0 bne _08048998 bl sub_0805E780 _08048998: ldr r4, _080489B0 @ =gUnk_080D1F64 adds r0, r5, #0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080489B0: .4byte gUnk_080D1F64 thumb_func_start sub_080489B4 sub_080489B4: @ 0x080489B4 push {lr} ldr r2, _080489C8 @ =gUnk_080D1F7C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080489C8: .4byte gUnk_080D1F7C thumb_func_start sub_080489CC sub_080489CC: @ 0x080489CC push {r4, r5, r6, lr} mov ip, r0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0xff bne _080489DA b _08048AD8 _080489DA: mov r0, ip ldr r4, [r0, #0x50] adds r0, r4, #0 adds r0, #0x78 ldrb r0, [r0] mov r2, ip ldrb r1, [r2, #0xa] asrs r0, r1 movs r3, #1 ands r0, r3 cmp r0, #0 beq _08048AD8 adds r2, r4, #0 adds r2, #0x7c adds r0, r3, #0 lsls r0, r1 ldrb r1, [r2] orrs r0, r1 strb r0, [r2] mov r0, ip adds r0, #0x41 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 subs r0, #4 cmp r0, #0x16 bhi _08048AD0 lsls r0, r0, #2 ldr r1, _08048A1C @ =_08048A20 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08048A1C: .4byte _08048A20 _08048A20: @ jump table .4byte _08048A7C @ case 0 .4byte _08048A7C @ case 1 .4byte _08048A7C @ case 2 .4byte _08048AD0 @ case 3 .4byte _08048A7C @ case 4 .4byte _08048A7C @ case 5 .4byte _08048A7C @ case 6 .4byte _08048A7C @ case 7 .4byte _08048A7C @ case 8 .4byte _08048A7C @ case 9 .4byte _08048AD0 @ case 10 .4byte _08048AD0 @ case 11 .4byte _08048A7C @ case 12 .4byte _08048A7C @ case 13 .4byte _08048A7C @ case 14 .4byte _08048AD0 @ case 15 .4byte _08048AD0 @ case 16 .4byte _08048AD0 @ case 17 .4byte _08048AD0 @ case 18 .4byte _08048AD0 @ case 19 .4byte _08048A7C @ case 20 .4byte _08048A7C @ case 21 .4byte _08048A7C @ case 22 _08048A7C: ldr r3, [r4, #0x64] mov r5, ip ldrb r0, [r5, #0xa] lsls r0, r0, #2 adds r1, r3, #0 adds r1, #0x18 adds r1, r1, r0 ldr r0, [r5, #0x4c] str r0, [r1] ldr r2, _08048ACC @ =gUnk_03001160 movs r6, #0x2e ldrsh r0, [r2, r6] movs r6, #0x2e ldrsh r1, [r5, r6] adds r0, r0, r1 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 strh r0, [r3, #0x38] ldr r3, [r4, #0x64] movs r1, #0x32 ldrsh r0, [r2, r1] movs r2, #0x32 ldrsh r1, [r5, r2] adds r0, r0, r1 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 strh r0, [r3, #0x3a] ldr r2, [r4, #0x64] mov r3, ip adds r3, #0x3e ldrb r0, [r3] movs r1, #0x10 eors r0, r1 strb r0, [r3] adds r2, #0x3c strb r0, [r2] b _08048AD8 .align 2, 0 _08048ACC: .4byte gUnk_03001160 _08048AD0: ldr r0, [r4, #0x64] adds r0, #0x3c movs r1, #0xff strb r1, [r0] _08048AD8: mov r1, ip adds r1, #0x45 movs r0, #0xff strb r0, [r1] ldr r1, _08048AEC @ =gUnk_080D1F64 mov r0, ip bl sub_0804AA30 pop {r4, r5, r6, pc} .align 2, 0 _08048AEC: .4byte gUnk_080D1F64 thumb_func_start sub_08048AF0 sub_08048AF0: @ 0x08048AF0 push {lr} movs r1, #1 strb r1, [r0, #0xc] movs r1, #0xff strb r1, [r0, #0x14] ldrb r3, [r0, #0x1b] movs r2, #0x3f adds r1, r2, #0 ands r1, r3 movs r3, #0x80 orrs r1, r3 strb r1, [r0, #0x1b] ldrb r1, [r0, #0x19] ands r2, r1 orrs r2, r3 strb r2, [r0, #0x19] adds r3, r0, #0 adds r3, #0x29 ldrb r1, [r3] movs r2, #7 orrs r1, r2 strb r1, [r3] adds r2, r0, #0 adds r2, #0x38 movs r1, #2 strb r1, [r2] bl sub_08048D20 pop {pc} .align 2, 0 thumb_func_start sub_08048B2C sub_08048B2C: @ 0x08048B2C push {r4, r5, lr} adds r4, r0, #0 bl sub_08048D20 ldr r5, [r4, #0x50] adds r0, r5, #0 bl sub_08048D70 cmp r0, #0 beq _08048B62 ldrb r0, [r4, #0x18] lsls r0, r0, #0x1e cmp r0, #0 bne _08048B52 adds r0, r4, #0 movs r1, #2 movs r2, #0x40 bl sub_080A29AC _08048B52: ldrb r0, [r4, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 movs r0, #1 orrs r1, r0 strb r1, [r4, #0x18] b _08048B6C _08048B62: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] _08048B6C: adds r0, r5, #0 adds r0, #0x78 ldrb r0, [r0] ldrb r1, [r4, #0xa] asrs r0, r1 movs r1, #1 ands r0, r1 cmp r0, #0 beq _08048B82 movs r0, #2 strb r0, [r4, #0xc] _08048B82: pop {r4, r5, pc} thumb_func_start sub_08048B84 sub_08048B84: @ 0x08048B84 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08048BAE movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x1e strb r0, [r1] _08048BAE: pop {r4, pc} thumb_func_start sub_08048BB0 sub_08048BB0: @ 0x08048BB0 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r2, [r4, #0x50] adds r0, r2, #0 adds r0, #0x78 ldrb r3, [r0] ldrb r1, [r4, #0xa] adds r0, r3, #0 asrs r0, r1 movs r6, #1 ands r0, r6 cmp r0, #0 bne _08048C34 adds r0, r2, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 beq _08048BFC movs r0, #4 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldr r1, _08048BF8 @ =gUnk_080D2030 ldrb r0, [r4, #0x14] lsls r0, r0, #3 ldrb r2, [r4, #0xa] adds r0, r0, r2 adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 bl sub_08004260 b _08048CEA .align 2, 0 _08048BF8: .4byte gUnk_080D2030 _08048BFC: strb r6, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] ldr r1, _08048C30 @ =gUnk_080D2010 ldrb r0, [r4, #0x14] lsls r0, r0, #3 ldrb r2, [r4, #0xa] adds r0, r0, r2 adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 movs r1, #2 movs r2, #0x40 bl sub_080A29AC b _08048CEA .align 2, 0 _08048C30: .4byte gUnk_080D2010 _08048C34: adds r5, r2, #0 adds r5, #0x80 ldrb r0, [r5] asrs r0, r1 ands r0, r6 cmp r0, #0 beq _08048CBC adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0x13 bhi _08048C6C adds r1, r4, #0 adds r1, #0x3d movs r0, #0xf4 strb r0, [r1] adds r1, #2 movs r0, #0x89 strb r0, [r1] ldrb r1, [r2, #0x14] lsrs r1, r1, #6 adds r1, #0x14 adds r0, r4, #0 bl sub_08004260 ldr r0, _08048CB4 @ =0x00000119 bl sub_080A3268 _08048C6C: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08048CEA adds r1, r4, #0 adds r1, #0x3f movs r0, #0x1e strb r0, [r1] ldr r1, _08048CB8 @ =gUnk_080D2010 ldrb r0, [r4, #0x14] lsls r0, r0, #3 ldrb r2, [r4, #0xa] adds r0, r0, r2 adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 movs r1, #7 bl sub_08004276 adds r1, r6, #0 ldrb r4, [r4, #0xa] lsls r1, r4 ldrb r0, [r5] bics r0, r1 strb r0, [r5] b _08048CEA .align 2, 0 _08048CB4: .4byte 0x00000119 _08048CB8: .4byte gUnk_080D2010 _08048CBC: cmp r3, #0xff bne _08048CEA adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] subs r0, #0x10 cmp r0, #3 bls _08048CE4 ldrb r1, [r4, #0x14] adds r1, #0x10 adds r0, r4, #0 bl sub_08004260 bl sub_08000E50 movs r1, #0x1c ands r1, r0 adds r0, r4, #0 bl sub_08004276 _08048CE4: adds r0, r4, #0 bl sub_08004274 _08048CEA: pop {r4, r5, r6, pc} thumb_func_start sub_08048CEC sub_08048CEC: @ 0x08048CEC push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08048D1A movs r0, #1 strb r0, [r4, #0xc] ldr r1, _08048D1C @ =gUnk_080D2010 ldrb r0, [r4, #0x14] lsls r0, r0, #3 ldrb r2, [r4, #0xa] adds r0, r0, r2 adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 bl sub_08004260 _08048D1A: pop {r4, pc} .align 2, 0 _08048D1C: .4byte gUnk_080D2010 thumb_func_start sub_08048D20 sub_08048D20: @ 0x08048D20 push {r4, r5, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldrb r0, [r0, #0x14] lsrs r0, r0, #6 ldrb r1, [r4, #0x14] cmp r0, r1 beq _08048D60 strb r0, [r4, #0x14] ldrb r1, [r4, #0xa] lsls r3, r0, #3 adds r1, r1, r3 lsls r1, r1, #2 ldr r0, _08048D64 @ =gUnk_080D1F90 adds r1, r1, r0 ldr r2, _08048D68 @ =gUnk_03000BF0 ldrh r0, [r2, #6] ldrh r5, [r1] adds r0, r0, r5 strh r0, [r4, #0x2e] ldrh r0, [r2, #8] ldrh r1, [r1, #2] adds r0, r0, r1 strh r0, [r4, #0x32] ldr r1, _08048D6C @ =gUnk_080D2010 ldrb r0, [r4, #0xa] adds r0, r0, r3 adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 bl sub_08004260 _08048D60: pop {r4, r5, pc} .align 2, 0 _08048D64: .4byte gUnk_080D1F90 _08048D68: .4byte gUnk_03000BF0 _08048D6C: .4byte gUnk_080D2010 thumb_func_start sub_08048D70 sub_08048D70: @ 0x08048D70 push {lr} adds r1, r0, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _08048D8E ldr r1, [r1, #0x64] ldr r0, [r1, #8] cmp r0, #0 bne _08048D86 ldr r0, [r1, #0xc] _08048D86: adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _08048D92 _08048D8E: movs r0, #1 b _08048D94 _08048D92: movs r0, #0 _08048D94: pop {pc} .align 2, 0 thumb_func_start sub_08048D98 sub_08048D98: @ 0x08048D98 push {r4, r5, r6, lr} adds r5, r0, #0 ldr r6, [r5, #0x50] ldr r0, [r6, #4] cmp r0, #0 bne _08048DA8 bl sub_0805E780 _08048DA8: ldr r4, _08048E00 @ =gUnk_080D22D8 adds r0, r5, #0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 ldrb r2, [r6, #0x1b] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r3, [r5, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r3 orrs r0, r2 strb r0, [r5, #0x1b] ldrb r0, [r6, #0x19] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r5, #0x19] ands r1, r2 orrs r1, r0 strb r1, [r5, #0x19] adds r0, r6, #0 adds r0, #0x29 ldrb r1, [r0] lsls r1, r1, #0x1d lsrs r1, r1, #0x1d subs r1, #1 adds r3, r5, #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] pop {r4, r5, r6, pc} .align 2, 0 _08048E00: .4byte gUnk_080D22D8 thumb_func_start sub_08048E04 sub_08048E04: @ 0x08048E04 push {lr} ldr r2, _08048E18 @ =gUnk_080D22F0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08048E18: .4byte gUnk_080D22F0 thumb_func_start sub_08048E1C sub_08048E1C: @ 0x08048E1C push {r4, r5, lr} adds r5, r0, #0 adds r0, #0x45 ldrb r1, [r0] movs r0, #0xff subs r0, r0, r1 cmp r0, #0 beq _08048E96 ldr r4, [r5, #0x50] adds r1, r4, #0 adds r1, #0x45 ldrb r2, [r1] cmp r2, r0 bls _08048E48 subs r0, r2, r0 strb r0, [r1] ldr r0, _08048E44 @ =0x00000127 bl sub_080A3268 b _08048E5C .align 2, 0 _08048E44: .4byte 0x00000127 _08048E48: movs r0, #0 strb r0, [r1] movs r0, #0x94 lsls r0, r0, #1 bl sub_080A3268 movs r0, #0x28 movs r1, #0 bl sub_08080964 _08048E5C: adds r2, r5, #0 adds r2, #0x3d ldrb r1, [r2] movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 ble _08048E8E adds r0, r4, #0 adds r0, #0x3d strb r1, [r0] ldr r4, [r4, #0x54] ldrb r0, [r2] adds r1, r4, #0 adds r1, #0x3d strb r0, [r1] ldr r4, [r4, #0x54] ldrb r0, [r2] adds r1, r4, #0 adds r1, #0x3d strb r0, [r1] ldr r4, [r4, #0x54] ldrb r1, [r2] adds r0, r4, #0 adds r0, #0x3d strb r1, [r0] _08048E8E: adds r1, r5, #0 adds r1, #0x45 movs r0, #0xff strb r0, [r1] _08048E96: ldr r1, _08048EA0 @ =gUnk_080D22D8 adds r0, r5, #0 bl sub_0804AA30 pop {r4, r5, pc} .align 2, 0 _08048EA0: .4byte gUnk_080D22D8 thumb_func_start sub_08048EA4 sub_08048EA4: @ 0x08048EA4 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldr r0, [r4, #0x50] ldrb r1, [r0, #0x14] movs r0, #0xe0 ands r0, r1 lsrs r0, r0, #3 ldrb r1, [r4, #0xa] adds r0, r0, r1 adds r1, r4, #0 adds r1, #0x78 strb r0, [r1] adds r0, r4, #0 bl sub_08048F50 adds r0, r4, #0 bl sub_08048F74 pop {r4, pc} .align 2, 0 thumb_func_start sub_08048ED0 sub_08048ED0: @ 0x08048ED0 push {r4, lr} adds r4, r0, #0 bl sub_08048F50 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08048EFC movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] movs r0, #0x2d strb r0, [r4, #0xe] _08048EFC: pop {r4, pc} .align 2, 0 thumb_func_start sub_08048F00 sub_08048F00: @ 0x08048F00 push {r4, lr} adds r4, r0, #0 bl sub_08048F50 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08048F2E movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] adds r1, #4 adds r0, r4, #0 bl sub_08004260 _08048F2E: pop {r4, pc} thumb_func_start sub_08048F30 sub_08048F30: @ 0x08048F30 push {r4, lr} adds r4, r0, #0 bl sub_08048F50 adds r0, r4, #0 bl sub_08004274 adds r4, #0x5a ldrb r1, [r4] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08048F4E bl sub_0805E780 _08048F4E: pop {r4, pc} thumb_func_start sub_08048F50 sub_08048F50: @ 0x08048F50 push {lr} adds r1, r0, #0 adds r0, #0x78 ldrb r3, [r0] lsls r3, r3, #1 ldr r0, _08048F70 @ =gUnk_080D2300 adds r3, r3, r0 ldr r0, [r1, #0x50] movs r2, #0 ldrsb r2, [r3, r2] ldrb r3, [r3, #1] lsls r3, r3, #0x18 asrs r3, r3, #0x18 bl sub_0806FA90 pop {pc} .align 2, 0 _08048F70: .4byte gUnk_080D2300 thumb_func_start sub_08048F74 sub_08048F74: @ 0x08048F74 push {lr} ldr r2, _08048F88 @ =gUnk_080D2348 adds r1, r0, #0 adds r1, #0x78 ldrb r1, [r1] adds r1, r1, r2 ldrb r1, [r1] bl sub_08004260 pop {pc} .align 2, 0 _08048F88: .4byte gUnk_080D2348 thumb_func_start sub_08048F8C sub_08048F8C: @ 0x08048F8C push {r4, r5, r6, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldr r0, [r0, #4] cmp r0, #0 bne _08048F9C bl sub_0805E780 _08048F9C: ldrb r0, [r4, #0xc] cmp r0, #0 bne _08048FD4 movs r0, #1 strb r0, [r4, #0xc] 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] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] movs r0, #0xff strb r0, [r4, #0x14] _08048FD4: ldr r0, [r4, #0x50] ldrb r0, [r0, #0x14] lsrs r0, r0, #5 lsls r6, r0, #0x18 lsrs r5, r6, #0x18 ldrb r0, [r4, #0x14] cmp r5, r0 beq _08049018 strb r5, [r4, #0x14] ldr r3, _08049010 @ =gUnk_080D28CC lsls r1, r5, #1 adds r1, r1, r3 ldr r2, _08049014 @ =gUnk_03000BF0 ldrh r0, [r2, #6] ldrh r1, [r1] adds r0, r0, r1 strh r0, [r4, #0x2e] adds r1, r5, #1 lsls r1, r1, #1 adds r1, r1, r3 ldrh r0, [r2, #8] ldrh r1, [r1] adds r0, r0, r1 strh r0, [r4, #0x32] lsrs r1, r6, #0x19 adds r0, r4, #0 bl sub_08004260 b _0804901E .align 2, 0 _08049010: .4byte gUnk_080D28CC _08049014: .4byte gUnk_03000BF0 _08049018: adds r0, r4, #0 bl sub_08004274 _0804901E: movs r0, #2 ands r0, r5 cmp r0, #0 beq _08049038 ldr r0, _08049034 @ =gUnk_03001160 movs r2, #0x32 ldrsh r1, [r4, r2] movs r2, #0x32 ldrsh r0, [r0, r2] b _08049042 .align 2, 0 _08049034: .4byte gUnk_03001160 _08049038: ldr r0, _08049054 @ =gUnk_03001160 movs r2, #0x2e ldrsh r1, [r4, r2] movs r2, #0x2e ldrsh r0, [r0, r2] _08049042: cmp r1, r0 bge _08049048 adds r5, #1 _08049048: ldr r0, _08049058 @ =gUnk_080D28AC lsls r1, r5, #2 adds r1, r1, r0 ldr r0, [r1] str r0, [r4, #0x48] pop {r4, r5, r6, pc} .align 2, 0 _08049054: .4byte gUnk_03001160 _08049058: .4byte gUnk_080D28AC thumb_func_start sub_0804905C sub_0804905C: @ 0x0804905C push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xc] cmp r0, #0 beq _0804907C adds r0, r5, #0 adds r0, #0x7d ldrb r1, [r0] movs r0, #3 ands r1, r0 ldrb r2, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r5, #0x18] _0804907C: adds r1, r5, #0 adds r1, #0x45 ldrb r0, [r1] adds r2, r0, #0 cmp r2, #0 bne _08049092 movs r0, #0xff strb r0, [r1] movs r0, #4 strb r0, [r5, #0xc] strb r2, [r5, #0xd] _08049092: ldr r1, _080490F8 @ =gUnk_080D2974 ldrb r0, [r5, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 adds r4, r5, #0 adds r4, #0x78 ldrh r3, [r4] adds r0, r5, #0 movs r1, #0xaa movs r2, #0xaa bl sub_0805EC9C ldrh r0, [r4] lsrs r0, r0, #8 rsbs r0, r0, #0 strb r0, [r5, #0x14] adds r0, r5, #0 bl sub_080499F0 ldrb r0, [r5, #0x18] lsls r0, r0, #0x1e lsrs r0, r0, #0x1e adds r1, r5, #0 adds r1, #0x7d strb r0, [r1] ldrb r2, [r5, #0x18] lsls r0, r2, #0x1e lsrs r0, r0, #0x1e cmp r0, #1 bne _080490F4 movs r1, #0x32 ldrsh r0, [r5, r1] ldr r1, _080490FC @ =gUnk_03000BF0 movs r3, #0xc ldrsh r1, [r1, r3] subs r0, r0, r1 adds r0, #0x30 movs r1, #0x80 lsls r1, r1, #1 cmp r0, r1 bls _080490F4 movs r0, #4 rsbs r0, r0, #0 ands r0, r2 strb r0, [r5, #0x18] _080490F4: pop {r4, r5, pc} .align 2, 0 _080490F8: .4byte gUnk_080D2974 _080490FC: .4byte gUnk_03000BF0 thumb_func_start sub_08049100 sub_08049100: @ 0x08049100 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x7c bl sub_0807CBE4 cmp r0, #0 beq _08049144 ldr r4, _08049140 @ =0x00004081 adds r0, r4, #0 movs r1, #0xa movs r2, #2 bl sub_0800015E adds r0, r4, #0 movs r1, #0x4a movs r2, #2 bl sub_0800015E adds r0, r4, #0 movs r1, #0x8a movs r2, #2 bl sub_0800015E adds r0, r4, #0 movs r1, #0xca movs r2, #2 bl sub_0800015E bl sub_0805E780 b _0804916E .align 2, 0 _08049140: .4byte 0x00004081 _08049144: ldr r4, _080491E8 @ =0x00000323 adds r0, r4, #0 movs r1, #0xa movs r2, #1 bl sub_0807B7D8 adds r0, r4, #0 movs r1, #0x4a movs r2, #1 bl sub_0807B7D8 adds r0, r4, #0 movs r1, #0x8a movs r2, #1 bl sub_0807B7D8 adds r0, r4, #0 movs r1, #0xca movs r2, #1 bl sub_0807B7D8 _0804916E: movs r0, #0x22 bl sub_080A7EE0 adds r2, r0, #0 cmp r2, #0 beq _080491E4 movs r1, #0 movs r3, #1 movs r0, #1 strb r0, [r2, #0xa] str r5, [r2, #0x50] str r2, [r5, #0x54] strb r0, [r5, #0xc] strb r1, [r5, #0xd] movs r0, #0x3c strb r0, [r5, #0xe] movs r0, #0xc0 strb r0, [r5, #0x15] strb r0, [r5, #0x14] movs r4, #0 movs r0, #0xc0 lsls r0, r0, #2 strh r0, [r5, #0x24] ldrb r1, [r5, #0x19] movs r0, #3 orrs r1, r0 ldrb r2, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r2 orrs r0, r3 strb r0, [r5, #0x18] ldrb r2, [r5, #0x1b] movs r3, #0x3f adds r0, r3, #0 ands r0, r2 movs r2, #0x80 orrs r0, r2 strb r0, [r5, #0x1b] ands r1, r3 orrs r1, r2 strb r1, [r5, #0x19] adds r1, r5, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r5, #0 adds r0, #0x7c strb r4, [r0] subs r0, #4 movs r1, #0x80 lsls r1, r1, #7 strh r1, [r0] adds r0, #2 strh r1, [r0] adds r0, r5, #0 movs r1, #0 bl sub_080042AC _080491E4: pop {r4, r5, pc} .align 2, 0 _080491E8: .4byte 0x00000323 thumb_func_start sub_080491EC sub_080491EC: @ 0x080491EC push {r4, lr} adds r4, r0, #0 ldr r1, _08049208 @ =gUnk_080D2988 ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 _08049208: .4byte gUnk_080D2988 thumb_func_start sub_0804920C sub_0804920C: @ 0x0804920C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _0804921C subs r0, #1 strb r0, [r4, #0xe] b _08049268 _0804921C: ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08049998 ldr r2, _0804926C @ =gUnk_03000BF0 ldrh r0, [r2, #6] ldr r1, _08049270 @ =0xFFFFFF00 adds r0, r0, r1 movs r3, #0x2e ldrsh r1, [r4, r3] cmp r0, r1 ble _08049268 movs r0, #1 strb r0, [r4, #0xd] movs r0, #0x80 strb r0, [r4, #0x15] strb r0, [r4, #0x14] movs r0, #0xc0 strh r0, [r4, #0x24] ldrh r0, [r2, #6] adds r0, #0xa8 strh r0, [r4, #0x2e] ldrh r0, [r2, #8] subs r0, #0x40 strh r0, [r4, #0x32] adds r0, r4, #0 adds r0, #0x78 movs r1, #0x80 lsls r1, r1, #8 strh r1, [r0] adds r0, #2 strh r1, [r0] _08049268: pop {r4, pc} .align 2, 0 _0804926C: .4byte gUnk_03000BF0 _08049270: .4byte 0xFFFFFF00 thumb_func_start sub_08049274 sub_08049274: @ 0x08049274 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08049998 ldr r0, _080492A4 @ =gUnk_03000BF0 ldrh r0, [r0, #8] adds r0, #0x40 movs r2, #0x32 ldrsh r1, [r4, r2] cmp r0, r1 bge _080492A2 movs r1, #0 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r4, #0xd] _080492A2: pop {r4, pc} .align 2, 0 _080492A4: .4byte gUnk_03000BF0 thumb_func_start sub_080492A8 sub_080492A8: @ 0x080492A8 push {r4, lr} adds r4, r0, #0 ldr r1, _080492C4 @ =gUnk_080D2990 ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 _080492C4: .4byte gUnk_080D2990 thumb_func_start sub_080492C8 sub_080492C8: @ 0x080492C8 push {r4, r5, lr} adds r3, r0, #0 movs r0, #1 strb r0, [r3, #0xd] movs r1, #0 movs r0, #0x90 lsls r0, r0, #1 strh r0, [r3, #0x24] adds r0, r3, #0 adds r0, #0x6e strb r1, [r0] movs r0, #0x2e ldrsh r1, [r3, r0] ldr r2, _08049300 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 adds r5, r2, #0 cmp r1, #0xa7 bgt _08049304 adds r2, r3, #0 adds r2, #0x80 movs r0, #0xd8 strh r0, [r2] adds r1, r3, #0 adds r1, #0x74 adds r0, #0x28 b _08049314 .align 2, 0 _08049300: .4byte gUnk_03000BF0 _08049304: adds r2, r3, #0 adds r2, #0x80 movs r0, #0x78 strh r0, [r2] adds r1, r3, #0 adds r1, #0x74 movs r0, #0xff lsls r0, r0, #8 _08049314: strh r0, [r1] adds r4, r1, #0 ldrh r0, [r5, #6] ldrh r1, [r2] adds r0, r0, r1 strh r0, [r2] movs r2, #0x32 ldrsh r0, [r3, r2] ldrh r1, [r5, #8] subs r0, r0, r1 cmp r0, #0x7f bgt _08049336 adds r1, r3, #0 adds r1, #0x82 movs r0, #0xb0 strh r0, [r1] b _08049346 _08049336: adds r1, r3, #0 adds r1, #0x82 movs r0, #0x50 strh r0, [r1] movs r2, #0 ldrsh r0, [r4, r2] rsbs r0, r0, #0 strh r0, [r4] _08049346: ldrh r0, [r5, #8] ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] adds r0, r3, #0 bl sub_08049358 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08049358 sub_08049358: @ 0x08049358 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x80 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r4, r2] subs r0, r0, r1 adds r1, r4, #0 adds r1, #0x82 ldrh r1, [r1] movs r3, #0x32 ldrsh r2, [r4, r3] subs r1, r1, r2 bl sub_080045DA adds r3, r0, #0 ldrb r2, [r4, #0x15] subs r0, r2, r3 adds r0, #2 movs r1, #0xff ands r0, r1 cmp r0, #4 bls _08049398 subs r0, r3, r2 movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _08049394 subs r0, r2, #1 b _08049396 _08049394: adds r0, r2, #1 _08049396: strb r0, [r4, #0x15] _08049398: ldrb r1, [r4, #0x15] movs r5, #0x80 lsls r5, r5, #1 subs r1, r5, r1 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08049998 adds r0, r4, #0 adds r0, #0x80 ldrh r1, [r0] adds r0, #2 ldrh r2, [r0] movs r0, #0x24 ldrsh r3, [r4, r0] asrs r3, r3, #0x10 adds r3, #0x10 adds r0, r4, #0 bl sub_0806FCB8 cmp r0, #0 beq _080493E0 movs r0, #2 strb r0, [r4, #0xd] movs r0, #0xc0 strh r0, [r4, #0x24] adds r0, r4, #0 adds r0, #0x7e strh r5, [r0] ldrb r0, [r4, #0x15] lsls r0, r0, #8 adds r1, r4, #0 adds r1, #0x76 strh r0, [r1] _080493E0: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080493E4 sub_080493E4: @ 0x080493E4 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x76 adds r0, #0x74 ldrh r0, [r0] ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x18 strb r0, [r4, #0x15] movs r1, #0x1f ands r0, r1 cmp r0, #0 bne _0804943A movs r1, #0x2e ldrsh r0, [r4, r1] movs r2, #0x32 ldrsh r1, [r4, r2] ldr r3, _08049458 @ =gUnk_03000BF0 ldrh r2, [r3, #6] adds r2, #0xa8 ldrh r3, [r3, #8] adds r3, #0x80 bl sub_080045D4 adds r0, #2 movs r1, #0x1c ands r0, r1 ldrb r1, [r4, #0x15] lsrs r1, r1, #3 subs r0, r0, r1 movs r1, #0xf ands r0, r1 cmp r0, #8 bne _0804943A movs r0, #4 strb r0, [r4, #0xd] movs r0, #0x3c strb r0, [r4, #0xe] movs r0, #7 strb r0, [r4, #0xf] _0804943A: adds r0, r4, #0 bl sub_08049944 ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08047EA4 pop {r4, pc} .align 2, 0 _08049458: .4byte gUnk_03000BF0 thumb_func_start sub_0804945C sub_0804945C: @ 0x0804945C push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x76 adds r0, #0x74 ldrh r0, [r0] ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] lsls r0, r0, #0x10 lsrs r1, r0, #0x18 strb r1, [r4, #0x15] ldrb r0, [r4, #0xe] cmp r0, #0 bne _0804948C movs r0, #0x1f ands r1, r0 cmp r1, #0 bne _080494B2 movs r0, #4 strb r0, [r4, #0xd] movs r0, #0x5a strb r0, [r4, #0xe] b _080494B2 _0804948C: adds r0, r4, #0 bl sub_08049A8C cmp r0, #0 beq _080494B2 movs r0, #0x23 bl sub_080A7EE0 adds r2, r0, #0 cmp r2, #0 beq _080494B2 adds r1, r2, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] str r4, [r2, #0x50] adds r0, r2, #0 bl sub_08016A04 _080494B2: adds r0, r4, #0 bl sub_08049944 ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08047EA4 pop {r4, pc} .align 2, 0 thumb_func_start sub_080494D0 sub_080494D0: @ 0x080494D0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08049998 ldrb r0, [r4, #0xe] subs r1, r0, #1 strb r1, [r4, #0xe] movs r2, #0xff lsls r0, r1, #0x18 cmp r0, #0 bne _08049518 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] ands r0, r2 cmp r0, #0 bne _0804950E movs r0, #5 strb r0, [r4, #0xd] ldrh r0, [r4, #0x24] adds r0, #0x40 strh r0, [r4, #0x24] b _08049534 _0804950E: movs r0, #3 strb r0, [r4, #0xd] movs r0, #0xa strb r0, [r4, #0xe] b _08049534 _08049518: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x50 bne _08049534 bl sub_08000E50 movs r1, #3 ands r1, r0 movs r0, #0x62 bl sub_0804AA60 cmp r0, #0 beq _08049534 str r4, [r0, #0x50] _08049534: pop {r4, pc} .align 2, 0 thumb_func_start sub_08049538 sub_08049538: @ 0x08049538 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08049998 ldr r0, _08049570 @ =gUnk_03000BF0 ldrh r1, [r0, #6] adds r1, #0xa8 ldrh r2, [r0, #8] adds r2, #0x80 adds r0, r4, #0 movs r3, #0x70 bl sub_0806FCB8 adds r1, r0, #0 cmp r1, #0 bne _0804956E movs r0, #3 strb r0, [r4, #0xc] strb r1, [r4, #0xd] _0804956E: pop {r4, pc} .align 2, 0 _08049570: .4byte gUnk_03000BF0 thumb_func_start sub_08049574 sub_08049574: @ 0x08049574 push {r4, lr} adds r4, r0, #0 ldr r1, _08049590 @ =gUnk_080D29A8 ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 _08049590: .4byte gUnk_080D29A8 thumb_func_start sub_08049594 sub_08049594: @ 0x08049594 push {r4, lr} adds r4, r0, #0 ldr r2, _080495C8 @ =gUnk_03000BF0 ldrh r0, [r2, #6] movs r3, #0x2e ldrsh r1, [r4, r3] subs r1, #0xa8 subs r0, r0, r1 ldrh r1, [r2, #8] movs r3, #0x32 ldrsh r2, [r4, r3] subs r2, #0x80 subs r1, r1, r2 bl sub_080045DA ldrb r2, [r4, #0x15] cmp r0, r2 beq _080495D2 subs r0, r0, r2 movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _080495CC subs r0, r2, #1 strb r0, [r4, #0x15] b _080495DC .align 2, 0 _080495C8: .4byte gUnk_03000BF0 _080495CC: adds r0, r2, #1 strb r0, [r4, #0x15] b _080495DC _080495D2: movs r0, #1 strb r0, [r4, #0xd] movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r4, #0x24] _080495DC: adds r0, r4, #0 bl sub_08049944 ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08047EA4 pop {r4, pc} thumb_func_start sub_080495F8 sub_080495F8: @ 0x080495F8 push {r4, lr} adds r4, r0, #0 ldr r0, _08049654 @ =gUnk_03000BF0 ldrh r1, [r0, #6] adds r1, #0xa8 ldrh r2, [r0, #8] adds r2, #0x80 adds r0, r4, #0 movs r3, #0x28 bl sub_0806FCB8 cmp r0, #0 beq _0804963C movs r0, #2 strb r0, [r4, #0xd] movs r0, #0x2d strb r0, [r4, #0xe] bl sub_08000E50 ldr r2, _08049658 @ =gUnk_080D29B8 movs r1, #7 ands r1, r0 adds r1, r1, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r0, r4, #0 adds r0, #0x74 strh r1, [r0] ldrb r0, [r4, #0x15] lsls r0, r0, #8 adds r1, r4, #0 adds r1, #0x76 strh r0, [r1] _0804963C: ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08049998 pop {r4, pc} .align 2, 0 _08049654: .4byte gUnk_03000BF0 _08049658: .4byte gUnk_080D29B8 thumb_func_start sub_0804965C sub_0804965C: @ 0x0804965C push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x76 adds r0, #0x74 ldrh r0, [r0] ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] lsrs r0, r0, #8 strb r0, [r4, #0x15] ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08049998 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0804969A movs r0, #3 strb r0, [r4, #0xd] movs r0, #0x1e strb r0, [r4, #0xe] _0804969A: pop {r4, pc} thumb_func_start sub_0804969C sub_0804969C: @ 0x0804969C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08049998 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _080496C8 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r4, #0xd] _080496C8: pop {r4, pc} .align 2, 0 thumb_func_start sub_080496CC sub_080496CC: @ 0x080496CC push {r4, lr} adds r4, r0, #0 ldr r1, _080496E8 @ =gUnk_080D29C0 ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 _080496E8: .4byte gUnk_080D29C0 thumb_func_start sub_080496EC sub_080496EC: @ 0x080496EC push {r4, lr} adds r4, r0, #0 movs r0, #0x94 lsls r0, r0, #1 bl sub_080A3268 bl sub_08079F8C cmp r0, #0 beq _08049720 ldr r0, _0804971C @ =gUnk_03001160 movs r1, #0x36 ldrsh r0, [r0, r1] cmp r0, #0 bne _08049720 movs r0, #2 bl sub_08078A90 movs r0, #2 strb r0, [r4, #0xd] movs r0, #0x1e strb r0, [r4, #0xe] b _08049724 .align 2, 0 _0804971C: .4byte gUnk_03001160 _08049720: movs r0, #1 strb r0, [r4, #0xd] _08049724: adds r0, r4, #0 bl sub_08049944 pop {r4, pc} thumb_func_start sub_0804972C sub_0804972C: @ 0x0804972C push {r4, lr} adds r4, r0, #0 bl sub_08079F8C cmp r0, #0 beq _08049750 ldr r0, _08049758 @ =gUnk_03001160 movs r1, #0x36 ldrsh r0, [r0, r1] cmp r0, #0 bne _08049750 movs r0, #2 bl sub_08078A90 movs r0, #2 strb r0, [r4, #0xd] movs r0, #1 strb r0, [r4, #0xe] _08049750: adds r0, r4, #0 bl sub_08049944 pop {r4, pc} .align 2, 0 _08049758: .4byte gUnk_03001160 thumb_func_start sub_0804975C sub_0804975C: @ 0x0804975C 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 _0804977E movs r0, #3 strb r0, [r1, #0xd] movs r0, #0xb4 strb r0, [r1, #0xe] adds r0, #0x4c strh r0, [r1, #0x24] ldrb r0, [r1, #0x15] subs r0, #0x40 strb r0, [r1, #0x15] _0804977E: adds r0, r1, #0 bl sub_08049944 pop {pc} .align 2, 0 thumb_func_start sub_08049788 sub_08049788: @ 0x08049788 push {r4, lr} adds r4, r0, #0 bl sub_08049AB0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080497B8 movs r0, #0x1e strb r0, [r4, #0xe] movs r0, #4 strb r0, [r4, #0xd] movs r0, #0x80 lsls r0, r0, #3 strh r0, [r4, #0x24] ldrb r0, [r4, #0x14] strb r0, [r4, #0x15] movs r0, #0x94 lsls r0, r0, #1 bl sub_080A3268 b _080497C6 _080497B8: ldrb r0, [r4, #0x15] movs r1, #0x80 eors r0, r1 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_08049B20 _080497C6: adds r0, r4, #0 bl sub_08049944 pop {r4, pc} .align 2, 0 thumb_func_start sub_080497D0 sub_080497D0: @ 0x080497D0 push {r4, lr} adds r4, r0, #0 bl sub_08049AB0 ldrb r0, [r4, #0x15] movs r1, #0x80 lsls r1, r1, #1 subs r1, r1, r0 movs r0, #0xff ands r1, r0 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08049998 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08049802 movs r0, #5 strb r0, [r4, #0xd] movs r1, #0x10 bl sub_08050054 _08049802: pop {r4, pc} thumb_func_start sub_08049804 sub_08049804: @ 0x08049804 push {r4, lr} adds r4, r0, #0 bl sub_08049944 ldr r0, _0804987C @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08049878 movs r0, #6 strb r0, [r4, #0xd] ldrb r1, [r4, #0x18] movs r3, #4 rsbs r3, r3, #0 adds r0, r3, #0 ands r0, r1 strb r0, [r4, #0x18] ldr r4, [r4, #0x54] ldrb r2, [r4, #0x10] movs r1, #0x7f adds r0, r1, #0 ands r0, r2 strb r0, [r4, #0x10] ldrb r2, [r4, #0x18] adds r0, r3, #0 ands r0, r2 strb r0, [r4, #0x18] ldr r4, [r4, #0x54] ldrb r2, [r4, #0x10] adds r0, r1, #0 ands r0, r2 strb r0, [r4, #0x10] ldrb r2, [r4, #0x18] adds r0, r3, #0 ands r0, r2 strb r0, [r4, #0x18] ldr r4, [r4, #0x54] ldrb r0, [r4, #0x10] ands r1, r0 strb r1, [r4, #0x10] ldrb r0, [r4, #0x18] ands r3, r0 strb r3, [r4, #0x18] ldr r4, _08049880 @ =gUnk_03001160 ldr r1, _08049884 @ =gUnk_03000BF0 ldrh r0, [r1, #6] adds r0, #0xa8 movs r2, #0 strh r0, [r4, #0x2e] ldrh r0, [r1, #8] adds r0, #0x80 strh r0, [r4, #0x32] strb r2, [r4, #0x14] bl sub_080809D4 movs r0, #4 movs r1, #4 bl sub_08050054 _08049878: pop {r4, pc} .align 2, 0 _0804987C: .4byte gUnk_03000FD0 _08049880: .4byte gUnk_03001160 _08049884: .4byte gUnk_03000BF0 thumb_func_start sub_08049888 sub_08049888: @ 0x08049888 push {lr} adds r1, r0, #0 ldr r0, _080498B0 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080498AE movs r0, #7 strb r0, [r1, #0xd] movs r0, #0xa0 strb r0, [r1, #0xe] movs r0, #0x72 bl sub_080A3268 movs r0, #0x7c bl sub_0807CCC8 movs r0, #1 bl sub_08078A90 _080498AE: pop {pc} .align 2, 0 _080498B0: .4byte gUnk_03000FD0 thumb_func_start sub_080498B4 sub_080498B4: @ 0x080498B4 push {lr} ldrb r1, [r0, #0xe] subs r1, #1 strb r1, [r0, #0xe] lsls r0, r1, #0x18 cmp r0, #0 bne _080498C8 bl sub_0805E780 b _0804993E _080498C8: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x10 bne _080498E4 movs r0, #0x36 movs r1, #0xca movs r2, #1 bl sub_0807B7D8 ldr r0, _080498E0 @ =0x00004081 movs r1, #0xca b _0804990E .align 2, 0 _080498E0: .4byte 0x00004081 _080498E4: cmp r0, #0x18 bne _080498FC movs r0, #0x36 movs r1, #0x8a movs r2, #1 bl sub_0807B7D8 ldr r0, _080498F8 @ =0x00004081 movs r1, #0x8a b _0804990E .align 2, 0 _080498F8: .4byte 0x00004081 _080498FC: cmp r0, #0x20 bne _08049920 movs r0, #0x36 movs r1, #0x4a movs r2, #1 bl sub_0807B7D8 ldr r0, _0804991C @ =0x00004081 movs r1, #0x4a _0804990E: movs r2, #2 bl sub_0800015E movs r0, #0x71 bl sub_080A3268 b _0804993E .align 2, 0 _0804991C: .4byte 0x00004081 _08049920: cmp r0, #0x28 bne _0804993E movs r0, #0x36 movs r1, #0xa movs r2, #1 bl sub_0807B7D8 ldr r0, _08049940 @ =0x00004081 movs r1, #0xa movs r2, #2 bl sub_0800015E movs r0, #0x71 bl sub_080A3268 _0804993E: pop {pc} .align 2, 0 _08049940: .4byte 0x00004081 thumb_func_start sub_08049944 sub_08049944: @ 0x08049944 push {r4, r5, lr} adds r4, r0, #0 adds r4, #0x7c ldrb r3, [r4] lsls r2, r3, #1 movs r1, #0x7f ands r2, r1 movs r1, #0x80 ands r1, r3 orrs r2, r1 strb r2, [r4] ldr r5, _08049990 @ =gUnk_03001160 movs r2, #0x2e ldrsh r1, [r5, r2] movs r3, #0x32 ldrsh r2, [r5, r3] movs r3, #0x20 bl sub_0806FCB8 cmp r0, #0 beq _0804998C ldr r2, _08049994 @ =gUnk_03003F80 movs r0, #1 strb r0, [r2, #0x14] movs r1, #0x36 ldrsh r0, [r5, r1] cmp r0, #0 bne _0804998C ldr r0, [r2, #0x30] movs r1, #2 orrs r0, r1 str r0, [r2, #0x30] ldrb r0, [r4] movs r1, #1 orrs r0, r1 strb r0, [r4] _0804998C: pop {r4, r5, pc} .align 2, 0 _08049990: .4byte gUnk_03001160 _08049994: .4byte gUnk_03003F80 thumb_func_start sub_08049998 sub_08049998: @ 0x08049998 push {r4, r5, r6, lr} adds r5, r0, #0 adds r4, r1, #0 bl sub_08049944 adds r0, r5, #0 adds r1, r4, #0 bl sub_08047EA4 movs r0, #0x2e ldrsh r4, [r5, r0] movs r2, #0x32 ldrsh r6, [r5, r2] movs r0, #0x24 ldrsh r1, [r5, r0] ldrb r2, [r5, #0x15] adds r0, r5, #0 bl sub_0806F62C adds r0, r5, #0 adds r0, #0x7c ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080499EA bl sub_08079F8C cmp r0, #0 beq _080499EA ldr r0, _080499EC @ =gUnk_03001160 ldrh r1, [r5, #0x2e] subs r1, r1, r4 ldrh r2, [r0, #0x2e] adds r1, r1, r2 strh r1, [r0, #0x2e] ldrh r1, [r5, #0x32] subs r1, r1, r6 ldrh r2, [r0, #0x32] adds r1, r1, r2 strh r1, [r0, #0x32] _080499EA: pop {r4, r5, r6, pc} .align 2, 0 _080499EC: .4byte gUnk_03001160 thumb_func_start sub_080499F0 sub_080499F0: @ 0x080499F0 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 beq _08049A82 ldr r5, _08049A84 @ =gUnk_03001160 movs r1, #0x36 ldrsh r0, [r5, r1] cmp r0, #0 bne _08049A82 bl sub_08079F8C cmp r0, #0 beq _08049A82 adds r2, r4, #0 adds r2, #0x7c ldrb r1, [r2] movs r0, #1 ands r0, r1 adds r6, r2, #0 cmp r0, #0 bne _08049A82 movs r2, #0x2e ldrsh r1, [r4, r2] movs r3, #0x32 ldrsh r2, [r4, r3] adds r0, r5, #0 movs r3, #0x24 bl sub_0806FCB8 cmp r0, #0 beq _08049A7E ldrb r1, [r6] movs r0, #2 ands r0, r1 cmp r0, #0 bne _08049A7E movs r1, #0x2e ldrsh r0, [r5, r1] movs r2, #0x2e ldrsh r1, [r4, r2] subs r0, r0, r1 movs r3, #0x32 ldrsh r1, [r5, r3] movs r3, #0x32 ldrsh r2, [r4, r3] subs r1, r1, r2 bl sub_080045DA ldr r3, _08049A88 @ =gUnk_080C9160 lsls r1, r0, #1 adds r1, r1, r3 movs r2, #0 ldrsh r1, [r1, r2] lsls r2, r1, #3 adds r2, r2, r1 lsls r2, r2, #0xa ldr r1, [r4, #0x2c] adds r1, r1, r2 str r1, [r5, #0x2c] adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r3 movs r3, #0 ldrsh r0, [r0, r3] lsls r1, r0, #3 adds r1, r1, r0 lsls r1, r1, #0xa ldr r0, [r4, #0x30] subs r0, r0, r1 str r0, [r5, #0x30] _08049A7E: movs r0, #0 strb r0, [r6] _08049A82: pop {r4, r5, r6, pc} .align 2, 0 _08049A84: .4byte gUnk_03001160 _08049A88: .4byte gUnk_080C9160 thumb_func_start sub_08049A8C sub_08049A8C: @ 0x08049A8C push {lr} ldrb r1, [r0, #0xe] subs r1, #1 strb r1, [r0, #0xe] lsls r1, r1, #0x18 cmp r1, #0 bne _08049AAA bl sub_08000E50 movs r1, #0xf ands r1, r0 cmp r1, #0 beq _08049AAA movs r0, #1 b _08049AAC _08049AAA: movs r0, #0 _08049AAC: pop {pc} .align 2, 0 thumb_func_start sub_08049AB0 sub_08049AB0: @ 0x08049AB0 push {r4, r5, lr} adds r2, r0, #0 ldrb r0, [r2, #0xf] adds r0, #1 strb r0, [r2, #0xf] movs r1, #0xff ands r0, r1 movs r1, #0xf ands r0, r1 cmp r0, #0 bne _08049B18 adds r0, r2, #0 movs r1, #0x48 movs r2, #0 bl sub_080A29AC adds r4, r0, #0 cmp r4, #0 beq _08049B18 bl sub_08000E50 movs r3, #0x30 adds r1, r0, #0 ands r1, r3 ldr r5, _08049B1C @ =0x0000FFE8 adds r2, r5, #0 adds r1, r2, r1 ldrh r5, [r4, #0x2e] adds r1, r1, r5 strh r1, [r4, #0x2e] lsrs r0, r0, #8 ands r0, r3 adds r2, r2, r0 ldrh r0, [r4, #0x32] adds r2, r2, r0 strh r2, [r4, #0x32] 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] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 _08049B18: pop {r4, r5, pc} .align 2, 0 _08049B1C: .4byte 0x0000FFE8 thumb_func_start sub_08049B20 sub_08049B20: @ 0x08049B20 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_08049944 movs r0, #0x2e ldrsh r5, [r4, r0] movs r2, #0x32 ldrsh r6, [r4, r2] movs r0, #0x24 ldrsh r1, [r4, r0] ldrb r2, [r4, #0x15] adds r0, r4, #0 bl sub_0806F62C adds r0, r4, #0 adds r0, #0x7c ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08049B68 bl sub_08079F8C cmp r0, #0 beq _08049B68 ldr r0, _08049B6C @ =gUnk_03001160 ldrh r1, [r4, #0x2e] subs r1, r1, r5 ldrh r2, [r0, #0x2e] adds r1, r1, r2 strh r1, [r0, #0x2e] ldrh r1, [r4, #0x32] subs r1, r1, r6 ldrh r2, [r0, #0x32] adds r1, r1, r2 strh r1, [r0, #0x32] _08049B68: pop {r4, r5, r6, pc} .align 2, 0 _08049B6C: .4byte gUnk_03001160 thumb_func_start sub_08049B70 sub_08049B70: @ 0x08049B70 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xc] cmp r0, #0 bne _08049BB0 adds r0, #1 strb r0, [r5, #0xc] ldrb r0, [r5, #0xa] lsls r0, r0, #4 ldr r1, _08049BEC @ =gUnk_080D29E0 adds r0, r0, r1 bl sub_080028F4 adds r4, r5, #0 adds r4, #0x68 strb r0, [r4] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #8 bls _08049B9C bl sub_0805E780 _08049B9C: ldrb r0, [r4] cmp r0, #7 bhi _08049BB0 movs r0, #0x67 bl sub_0807CA84 cmp r0, #0 bne _08049BB0 movs r0, #8 strb r0, [r4] _08049BB0: adds r0, r5, #0 bl sub_08049C2C cmp r0, #0 beq _08049C20 adds r0, r5, #0 adds r0, #0x68 ldrb r1, [r0] cmp r1, #0 blt _08049C16 cmp r1, #7 ble _08049BF0 cmp r1, #8 bne _08049C16 movs r0, #0x40 movs r1, #0x60 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08049C16 movs r0, #0 strb r0, [r4, #0xe] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 b _08049C16 .align 2, 0 _08049BEC: .4byte gUnk_080D29E0 _08049BF0: ldr r0, _08049C24 @ =gUnk_080D2AB0 adds r0, r1, r0 ldrb r2, [r0] movs r0, #0x96 movs r1, #7 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08049C16 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 ldrh r0, [r4, #0x32] adds r0, #0x10 strh r0, [r4, #0x32] ldr r0, _08049C28 @ =0x0000FFE0 strh r0, [r4, #0x36] _08049C16: adds r0, r5, #0 bl sub_08049CF4 bl sub_0805E780 _08049C20: pop {r4, r5, pc} .align 2, 0 _08049C24: .4byte gUnk_080D2AB0 _08049C28: .4byte 0x0000FFE0 thumb_func_start sub_08049C2C sub_08049C2C: @ 0x08049C2C push {r4, r5, r6, lr} adds r2, r0, #0 ldr r3, _08049CA4 @ =gUnk_03001160 ldrb r0, [r3, #0xc] cmp r0, #6 bne _08049CA8 movs r0, #0x2e ldrsh r1, [r3, r0] movs r4, #0x2e ldrsh r0, [r2, r4] subs r1, r1, r0 movs r5, #6 movs r4, #0x80 lsls r4, r4, #8 adds r0, r1, #0 ands r0, r4 cmp r0, #0 beq _08049C52 movs r5, #2 _08049C52: adds r1, #0x28 lsls r0, r1, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x4f bhi _08049CA8 movs r6, #0x32 ldrsh r1, [r3, r6] movs r6, #0x32 ldrsh r0, [r2, r6] subs r1, r1, r0 adds r0, r1, #0 ands r0, r4 rsbs r0, r0, #0 asrs r2, r0, #0x1f movs r0, #4 ands r2, r0 adds r1, #0x28 lsls r0, r1, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x4f bhi _08049CA8 ldrb r0, [r3, #0x14] cmp r0, #0 bne _08049C86 cmp r2, #0 beq _08049C9E _08049C86: cmp r0, #4 bne _08049C8E cmp r2, #4 beq _08049C9E _08049C8E: cmp r0, #6 bne _08049C96 cmp r5, #6 beq _08049C9E _08049C96: cmp r0, #2 bne _08049CA8 cmp r5, #2 bne _08049CA8 _08049C9E: movs r0, #1 b _08049CAA .align 2, 0 _08049CA4: .4byte gUnk_03001160 _08049CA8: movs r0, #0 _08049CAA: pop {r4, r5, r6, pc} thumb_func_start sub_08049CAC sub_08049CAC: @ 0x08049CAC push {lr} adds r2, r0, #0 ldr r1, _08049CC8 @ =gUnk_080D2ABC ldrb r0, [r2, #0xf] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] cmp r1, #0 beq _08049CCC adds r0, r2, #0 bl _call_via_r1 b _08049CD0 .align 2, 0 _08049CC8: .4byte gUnk_080D2ABC _08049CCC: bl sub_0805E780 _08049CD0: pop {pc} .align 2, 0 thumb_func_start sub_08049CD4 sub_08049CD4: @ 0x08049CD4 push {r4, lr} movs r0, #1 rsbs r0, r0, #0 ldr r4, _08049CEC @ =gUnk_02024050 adds r1, r4, #0 movs r2, #0x40 bl sub_0801D610 ldr r0, _08049CF0 @ =gUnk_020354B0 str r4, [r0] pop {r4, pc} .align 2, 0 _08049CEC: .4byte gUnk_02024050 _08049CF0: .4byte gUnk_020354B0 thumb_func_start sub_08049CF4 sub_08049CF4: @ 0x08049CF4 push {lr} adds r0, #0x6c ldrb r3, [r0] movs r0, #0x80 ands r0, r3 cmp r0, #0 beq _08049D14 ldr r0, _08049D18 @ =gUnk_020354B0 ldr r2, [r0] movs r0, #0x1f ands r3, r0 movs r1, #1 lsls r1, r3 ldr r0, [r2, #4] orrs r0, r1 str r0, [r2, #4] _08049D14: pop {pc} .align 2, 0 _08049D18: .4byte gUnk_020354B0 thumb_func_start sub_08049D1C sub_08049D1C: @ 0x08049D1C ldr r1, _08049D2C @ =gUnk_020354B0 ldr r1, [r1] ldr r1, [r1, #4] lsrs r1, r0 movs r0, #1 bics r0, r1 bx lr .align 2, 0 _08049D2C: .4byte gUnk_020354B0 thumb_func_start sub_08049D30 sub_08049D30: @ 0x08049D30 push {r4, r5, r6, lr} ldr r1, _08049D58 @ =gUnk_020354B0 ldr r0, _08049D5C @ =gUnk_02024050 str r0, [r1] adds r5, r1, #0 ldr r6, _08049D60 @ =gUnk_03000BF0 ldr r4, _08049D64 @ =0x0000FFFF _08049D3E: ldr r3, [r5] ldrh r0, [r3] ldrh r2, [r6, #4] adds r1, r4, #0 ands r1, r0 adds r0, r4, #0 ands r0, r2 cmp r1, r0 bne _08049D68 adds r0, r3, #0 bl sub_08049DCC b _08049D7C .align 2, 0 _08049D58: .4byte gUnk_020354B0 _08049D5C: .4byte gUnk_02024050 _08049D60: .4byte gUnk_03000BF0 _08049D64: .4byte 0x0000FFFF _08049D68: adds r1, r3, #0 adds r1, #8 str r1, [r5] ldr r0, _08049D80 @ =gUnk_02024090 cmp r1, r0 blo _08049D3E bl sub_08049D88 ldr r1, _08049D84 @ =gUnk_020354B0 str r0, [r1] _08049D7C: pop {r4, r5, r6, pc} .align 2, 0 _08049D80: .4byte gUnk_02024090 _08049D84: .4byte gUnk_020354B0 thumb_func_start sub_08049D88 sub_08049D88: @ 0x08049D88 push {r4, r5, lr} ldr r4, _08049DC0 @ =gUnk_02024050 adds r1, r4, #0 adds r1, #8 ldr r3, _08049DC4 @ =gUnk_03000BF0 adds r2, r4, #0 adds r2, #0x40 _08049D96: ldrh r0, [r1, #2] ldrh r5, [r4, #2] cmp r0, r5 bls _08049DA0 adds r4, r1, #0 _08049DA0: adds r1, #8 cmp r1, r2 blo _08049D96 ldrb r0, [r3, #4] movs r1, #0 strb r0, [r4] ldrb r0, [r3, #5] strb r0, [r4, #1] ldr r0, _08049DC8 @ =0x0000FFFF strh r0, [r4, #2] str r1, [r4, #4] adds r0, r4, #0 bl sub_08049DCC adds r0, r4, #0 pop {r4, r5, pc} .align 2, 0 _08049DC0: .4byte gUnk_02024050 _08049DC4: .4byte gUnk_03000BF0 _08049DC8: .4byte 0x0000FFFF thumb_func_start sub_08049DCC sub_08049DCC: @ 0x08049DCC push {r4, lr} adds r2, r0, #0 ldr r1, _08049DF0 @ =gUnk_02024050 adds r3, r1, #0 adds r3, #0x40 _08049DD6: ldrh r0, [r1, #2] ldrh r4, [r2, #2] cmp r0, r4 bhs _08049DE2 adds r0, #1 strh r0, [r1, #2] _08049DE2: adds r1, #8 cmp r1, r3 blo _08049DD6 movs r0, #0 strh r0, [r2, #2] pop {r4, pc} .align 2, 0 _08049DF0: .4byte gUnk_02024050 thumb_func_start sub_08049DF4 sub_08049DF4: @ 0x08049DF4 push {lr} adds r2, r0, #0 ldr r0, _08049E10 @ =gUnk_020000B0 ldr r0, [r0] cmp r0, #0 bne _08049E0C ldr r1, _08049E14 @ =gUnk_080D3BE8 lsls r0, r2, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 _08049E0C: pop {pc} .align 2, 0 _08049E10: .4byte gUnk_020000B0 _08049E14: .4byte gUnk_080D3BE8 thumb_func_start sub_08049E18 sub_08049E18: @ 0x08049E18 push {lr} ldr r1, _08049E38 @ =gUnk_03003F80 adds r0, r1, #0 adds r0, #0x3c ldrb r0, [r0] cmp r0, #0 bne _08049E48 ldr r0, [r1, #0x30] ldr r1, _08049E3C @ =0x22189B75 ands r0, r1 cmp r0, #0 bne _08049E48 ldr r1, _08049E40 @ =gUnk_020000B0 ldr r0, _08049E44 @ =gUnk_03001160 str r0, [r1] b _08049E4A .align 2, 0 _08049E38: .4byte gUnk_03003F80 _08049E3C: .4byte 0x22189B75 _08049E40: .4byte gUnk_020000B0 _08049E44: .4byte gUnk_03001160 _08049E48: movs r0, #0 _08049E4A: pop {pc} thumb_func_start sub_08049E4C sub_08049E4C: @ 0x08049E4C push {lr} ldr r1, _08049E6C @ =gUnk_03003F80 adds r0, r1, #0 adds r0, #0x3c ldrb r0, [r0] cmp r0, #0 bne _08049E7C ldr r0, [r1, #0x30] ldr r1, _08049E70 @ =0x22189BF5 ands r0, r1 cmp r0, #0 bne _08049E7C ldr r1, _08049E74 @ =gUnk_020000B0 ldr r0, _08049E78 @ =gUnk_03001160 str r0, [r1] b _08049E7E .align 2, 0 _08049E6C: .4byte gUnk_03003F80 _08049E70: .4byte 0x22189BF5 _08049E74: .4byte gUnk_020000B0 _08049E78: .4byte gUnk_03001160 _08049E7C: movs r0, #0 _08049E7E: pop {pc} thumb_func_start sub_08049E80 sub_08049E80: @ 0x08049E80 push {lr} ldr r1, _08049E9C @ =gUnk_03003F80 adds r0, r1, #0 adds r0, #0x3c ldrb r0, [r0] cmp r0, #0 bne _08049E98 ldr r0, [r1, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08049EA0 _08049E98: movs r0, #0 b _08049EA6 .align 2, 0 _08049E9C: .4byte gUnk_03003F80 _08049EA0: ldr r1, _08049EA8 @ =gUnk_020000B0 ldr r0, _08049EAC @ =gUnk_03001160 str r0, [r1] _08049EA6: pop {pc} .align 2, 0 _08049EA8: .4byte gUnk_020000B0 _08049EAC: .4byte gUnk_03001160 thumb_func_start sub_08049EB0 sub_08049EB0: @ 0x08049EB0 push {lr} ldr r1, _08049ED0 @ =gUnk_03003F80 adds r0, r1, #0 adds r0, #0x3c ldrb r0, [r0] cmp r0, #0 bne _08049EE0 ldr r0, [r1, #0x30] ldr r1, _08049ED4 @ =0x00080190 ands r0, r1 cmp r0, #0 bne _08049EE0 ldr r1, _08049ED8 @ =gUnk_020000B0 ldr r0, _08049EDC @ =gUnk_03001160 str r0, [r1] b _08049EE2 .align 2, 0 _08049ED0: .4byte gUnk_03003F80 _08049ED4: .4byte 0x00080190 _08049ED8: .4byte gUnk_020000B0 _08049EDC: .4byte gUnk_03001160 _08049EE0: movs r0, #0 _08049EE2: pop {pc} thumb_func_start sub_08049EE4 sub_08049EE4: @ 0x08049EE4 push {r4, r5, lr} mov ip, r0 adds r0, #0x70 mov r1, ip adds r1, #0x6e ldrb r2, [r1] lsls r2, r2, #2 ldrh r0, [r0] adds r2, r2, r0 lsls r2, r2, #0x10 lsrs r2, r2, #0x10 adds r1, #4 mov r0, ip adds r0, #0x6f ldrb r3, [r0] lsls r3, r3, #2 ldrh r1, [r1] adds r3, r3, r1 lsls r3, r3, #0x10 lsrs r3, r3, #0x10 mov r1, ip movs r4, #0x2e ldrsh r0, [r1, r4] movs r5, #0x32 ldrsh r1, [r1, r5] bl sub_080045D4 pop {r4, r5, pc} thumb_func_start sub_08049F1C sub_08049F1C: @ 0x08049F1C push {r4, r5, lr} adds r4, r0, #0 adds r3, r1, #0 adds r5, r2, #0 adds r0, #0x38 adds r1, #0x38 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 cmp r0, #0 beq _08049F5E movs r0, #0x2e ldrsh r2, [r3, r0] movs r1, #0x2e ldrsh r0, [r4, r1] subs r2, r2, r0 movs r0, #0x32 ldrsh r1, [r3, r0] movs r3, #0x32 ldrsh r0, [r4, r3] subs r1, r1, r0 adds r3, r5, #0 muls r3, r5, r3 adds r0, r2, #0 muls r0, r2, r0 adds r2, r1, #0 muls r2, r1, r2 adds r1, r2, #0 adds r0, r0, r1 cmp r3, r0 blt _08049F5E movs r0, #1 b _08049F60 _08049F5E: movs r0, #0 _08049F60: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08049F64 sub_08049F64: @ 0x08049F64 push {r4, r5, lr} adds r4, r0, #0 adds r0, r1, #0 adds r5, r2, #0 bl sub_08049DF4 adds r1, r0, #0 cmp r1, #0 beq _08049F80 adds r0, r4, #0 adds r2, r5, #0 bl sub_08049F1C b _08049F82 _08049F80: movs r0, #0 _08049F82: pop {r4, r5, pc} thumb_func_start sub_08049F84 sub_08049F84: @ 0x08049F84 push {r4, lr} adds r4, r0, #0 adds r0, r1, #0 bl sub_08049DF4 adds r1, r0, #0 cmp r1, #0 beq _08049F9C adds r0, r4, #0 bl sub_080045C4 b _08049F9E _08049F9C: movs r0, #0xff _08049F9E: pop {r4, pc} thumb_func_start sub_08049FA0 sub_08049FA0: @ 0x08049FA0 push {lr} adds r3, r0, #0 adds r0, #0x6e ldrb r2, [r0] lsls r2, r2, #3 movs r1, #0x2e ldrsh r0, [r3, r1] adds r1, r3, #0 adds r1, #0x70 ldrh r1, [r1] subs r0, r0, r1 cmp r2, r0 blo _08049FD6 adds r0, r3, #0 adds r0, #0x6f ldrb r2, [r0] lsls r2, r2, #3 movs r1, #0x32 ldrsh r0, [r3, r1] adds r1, r3, #0 adds r1, #0x72 ldrh r1, [r1] subs r0, r0, r1 cmp r2, r0 blo _08049FD6 movs r0, #1 b _08049FD8 _08049FD6: movs r0, #0 _08049FD8: pop {pc} .align 2, 0 thumb_func_start sub_08049FDC sub_08049FDC: @ 0x08049FDC push {r4, lr} adds r4, r0, #0 adds r0, r1, #0 bl sub_08049DF4 adds r3, r0, #0 cmp r3, #0 beq _0804A020 adds r0, r4, #0 adds r0, #0x6e ldrb r2, [r0] lsls r2, r2, #3 movs r1, #0x2e ldrsh r0, [r3, r1] adds r1, r4, #0 adds r1, #0x70 ldrh r1, [r1] subs r0, r0, r1 cmp r2, r0 blo _0804A020 adds r0, r4, #0 adds r0, #0x6f ldrb r2, [r0] lsls r2, r2, #3 movs r1, #0x32 ldrsh r0, [r3, r1] adds r1, r4, #0 adds r1, #0x72 ldrh r1, [r1] subs r0, r0, r1 cmp r2, r0 blo _0804A020 movs r0, #1 b _0804A022 _0804A020: movs r0, #0 _0804A022: pop {r4, pc} thumb_func_start sub_0804A024 sub_0804A024: @ 0x0804A024 push {r4, r5, lr} adds r4, r0, #0 adds r0, r1, #0 adds r5, r2, #0 bl sub_08049DF4 adds r1, r0, #0 cmp r1, #0 beq _0804A040 adds r0, r4, #0 adds r2, r5, #0 bl sub_0804A044 b _0804A042 _0804A040: movs r0, #0xff _0804A042: pop {r4, r5, pc} thumb_func_start sub_0804A044 sub_0804A044: @ 0x0804A044 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 adds r7, r0, #0 mov r8, r1 mov r0, r8 adds r0, #0x38 movs r1, #0x38 adds r1, r1, r7 mov sl, r1 ldrb r1, [r0] mov r3, sl ldrb r0, [r3] ands r0, r1 cmp r0, #0 beq _0804A15A movs r5, #0 mov r0, r8 movs r3, #0x2e ldrsh r1, [r0, r3] ldr r0, [r0, #0x48] mov ip, r0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r1, r1, r0 movs r3, #0x2e ldrsh r0, [r7, r3] subs r1, r1, r0 ldr r4, [r7, #0x48] movs r0, #0 ldrsb r0, [r4, r0] subs r6, r1, r0 lsrs r3, r2, #1 adds r0, r6, r3 cmp r2, r0 blo _0804A096 movs r5, #1 _0804A096: lsls r0, r2, #1 mov sb, r0 adds r0, r6, r2 cmp sb, r0 blo _0804A0A4 movs r0, #2 orrs r5, r0 _0804A0A4: mov r1, r8 movs r0, #0x32 ldrsh r1, [r1, r0] str r1, [sp] mov r1, ip ldrb r1, [r1, #1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 mov ip, r1 ldr r0, [sp] add r0, ip str r0, [sp] movs r0, #0x32 ldrsh r1, [r7, r0] ldr r0, [sp] subs r0, r0, r1 movs r1, #1 ldrsb r1, [r4, r1] subs r4, r0, r1 adds r0, r4, r3 cmp r2, r0 blo _0804A0D4 movs r0, #4 orrs r5, r0 _0804A0D4: adds r0, r4, r2 cmp sb, r0 blo _0804A0DE movs r0, #8 orrs r5, r0 _0804A0DE: cmp r5, #0 beq _0804A15A movs r0, #5 ands r0, r5 cmp r0, #0xa beq _0804A15A mov r1, sl ldrb r0, [r1] bl sub_0808094C mov sb, r0 cmp r6, #0 bge _0804A0FA rsbs r6, r6, #0 _0804A0FA: cmp r4, #0 bge _0804A100 rsbs r4, r4, #0 _0804A100: cmp r6, r4 bge _0804A12E movs r0, #1 ands r0, r5 cmp r0, #0 beq _0804A11A adds r0, r7, #0 mov r1, r8 mov r2, sb bl sub_0804A168 cmp r0, #0xff bne _0804A15C _0804A11A: movs r0, #4 ands r5, r0 cmp r5, #0 beq _0804A15A adds r0, r7, #0 mov r1, r8 mov r2, sb bl sub_0804A318 b _0804A156 _0804A12E: movs r0, #4 ands r0, r5 cmp r0, #0 beq _0804A144 adds r0, r7, #0 mov r1, r8 mov r2, sb bl sub_0804A318 cmp r0, #0xff bne _0804A15C _0804A144: movs r0, #1 ands r5, r0 cmp r5, #0 beq _0804A15A adds r0, r7, #0 mov r1, r8 mov r2, sb bl sub_0804A168 _0804A156: cmp r0, #0xff bne _0804A15C _0804A15A: movs r0, #0xff _0804A15C: 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_0804A168 sub_0804A168: @ 0x0804A168 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 mov sb, r1 adds r5, r2, #0 movs r0, #0x32 ldrsh r1, [r1, r0] movs r2, #0x32 ldrsh r0, [r4, r2] cmp r1, r0 ble _0804A248 movs r3, #0x2e ldrsh r0, [r4, r3] subs r2, r0, #4 movs r0, #0xf mov sl, r0 adds r0, r2, #0 mov r1, sl ands r0, r1 movs r7, #5 cmp r0, #7 bhi _0804A19E movs r7, #0xa _0804A19E: ldr r3, _0804A240 @ =gUnk_03000BF0 mov r8, r3 ldrh r1, [r3, #6] subs r1, r2, r1 lsrs r1, r1, #4 movs r6, #0x3f ands r1, r6 movs r2, #0x32 ldrsh r0, [r4, r2] ldrh r3, [r3, #8] mov ip, r3 mov r2, ip subs r2, #0xa subs r0, r0, r2 asrs r0, r0, #4 ands r0, r6 lsls r0, r0, #6 orrs r0, r1 mov r2, sb movs r3, #0x32 ldrsh r2, [r2, r3] mov r3, ip subs r2, r2, r3 asrs r2, r2, #4 ands r2, r6 lsls r2, r2, #6 orrs r1, r2 ldr r2, _0804A244 @ =0x00002004 adds r0, r0, r2 adds r0, r5, r0 adds r1, r1, r2 adds r1, r5, r1 movs r2, #0x40 adds r3, r7, #0 bl sub_0804A4BC cmp r0, #0 bne _0804A1EC b _0804A308 _0804A1EC: movs r1, #0x2e ldrsh r0, [r4, r1] adds r2, r0, #4 mov r3, sl eors r7, r3 mov r0, r8 ldrh r1, [r0, #6] subs r1, r2, r1 lsrs r1, r1, #4 ands r1, r6 movs r2, #0x32 ldrsh r0, [r4, r2] mov r4, r8 ldrh r3, [r4, #8] adds r2, r3, #0 subs r2, #0xa subs r0, r0, r2 asrs r0, r0, #4 ands r0, r6 lsls r0, r0, #6 orrs r0, r1 mov r2, sb movs r4, #0x32 ldrsh r2, [r2, r4] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r6 lsls r2, r2, #6 orrs r1, r2 ldr r2, _0804A244 @ =0x00002004 adds r0, r0, r2 adds r0, r5, r0 adds r1, r1, r2 adds r1, r5, r1 movs r2, #0x40 adds r3, r7, #0 bl sub_0804A4BC cmp r0, #0 beq _0804A308 movs r0, #0x10 b _0804A30A .align 2, 0 _0804A240: .4byte gUnk_03000BF0 _0804A244: .4byte 0x00002004 _0804A248: movs r3, #0x2e ldrsh r0, [r4, r3] subs r2, r0, #4 adds r0, r2, #0 movs r1, #0xf ands r0, r1 movs r7, #5 cmp r0, #7 bhi _0804A25C movs r7, #0xa _0804A25C: ldr r3, _0804A300 @ =gUnk_03000BF0 mov r8, r3 ldrh r1, [r3, #6] subs r1, r2, r1 lsrs r1, r1, #4 movs r6, #0x3f ands r1, r6 movs r2, #0x32 ldrsh r0, [r4, r2] ldrh r3, [r3, #8] mov sl, r3 mov r2, sl adds r2, #0xa subs r0, r0, r2 asrs r0, r0, #4 ands r0, r6 lsls r0, r0, #6 orrs r0, r1 mov r2, sb movs r3, #0x32 ldrsh r2, [r2, r3] mov r3, sl subs r2, r2, r3 asrs r2, r2, #4 ands r2, r6 lsls r2, r2, #6 orrs r1, r2 ldr r2, _0804A304 @ =0x00002004 adds r0, r0, r2 adds r0, r5, r0 adds r1, r1, r2 adds r1, r5, r1 movs r2, #0x40 rsbs r2, r2, #0 mov sl, r2 adds r3, r7, #0 bl sub_0804A4BC cmp r0, #0 beq _0804A308 movs r3, #0x2e ldrsh r0, [r4, r3] adds r2, r0, #4 movs r0, #0xf eors r7, r0 mov r3, r8 ldrh r1, [r3, #6] subs r1, r2, r1 lsrs r1, r1, #4 ands r1, r6 movs r2, #0x32 ldrsh r0, [r4, r2] ldrh r3, [r3, #8] adds r2, r3, #0 adds r2, #0xa subs r0, r0, r2 asrs r0, r0, #4 ands r0, r6 lsls r0, r0, #6 orrs r0, r1 mov r4, sb movs r2, #0x32 ldrsh r4, [r4, r2] subs r2, r4, r3 asrs r2, r2, #4 ands r2, r6 lsls r2, r2, #6 orrs r1, r2 ldr r3, _0804A304 @ =0x00002004 adds r0, r0, r3 adds r0, r5, r0 adds r1, r1, r3 adds r1, r5, r1 mov r2, sl adds r3, r7, #0 bl sub_0804A4BC cmp r0, #0 beq _0804A308 movs r0, #0 b _0804A30A .align 2, 0 _0804A300: .4byte gUnk_03000BF0 _0804A304: .4byte 0x00002004 _0804A308: movs r0, #0xff _0804A30A: add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0804A318 sub_0804A318: @ 0x0804A318 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 adds r6, r2, #0 movs r0, #0x2e ldrsh r1, [r1, r0] movs r2, #0x2e ldrsh r0, [r5, r2] cmp r1, r0 ble _0804A3F0 movs r4, #0x32 ldrsh r0, [r5, r4] subs r4, r0, #4 adds r0, r4, #0 movs r1, #0xf ands r0, r1 movs r2, #3 mov r8, r2 cmp r0, #7 bhi _0804A34C movs r0, #0xc mov r8, r0 _0804A34C: movs r1, #0x2e ldrsh r0, [r5, r1] ldr r2, _0804A3E8 @ =gUnk_03000BF0 mov sb, r2 ldrh r3, [r2, #6] adds r1, r3, #0 subs r1, #0xa subs r0, r0, r1 asrs r0, r0, #4 movs r7, #0x3f ands r0, r7 ldrh r2, [r2, #8] subs r2, r4, r2 lsrs r2, r2, #4 ands r2, r7 lsls r2, r2, #6 orrs r0, r2 mov r4, sl movs r1, #0x2e ldrsh r4, [r4, r1] subs r1, r4, r3 asrs r1, r1, #4 ands r1, r7 orrs r1, r2 ldr r2, _0804A3EC @ =0x00002004 adds r0, r0, r2 adds r0, r6, r0 adds r1, r1, r2 adds r1, r6, r1 movs r2, #1 mov r3, r8 bl sub_0804A4BC cmp r0, #0 bne _0804A394 b _0804A4B0 _0804A394: movs r2, #0x32 ldrsh r0, [r5, r2] adds r4, r0, #4 mov r0, r8 movs r1, #0xf eors r0, r1 mov r8, r0 movs r2, #0x2e ldrsh r0, [r5, r2] mov r5, sb ldrh r3, [r5, #6] adds r1, r3, #0 subs r1, #0xa subs r0, r0, r1 asrs r0, r0, #4 ands r0, r7 ldrh r2, [r5, #8] subs r2, r4, r2 lsrs r2, r2, #4 ands r2, r7 lsls r2, r2, #6 orrs r0, r2 mov r4, sl movs r5, #0x2e ldrsh r1, [r4, r5] subs r1, r1, r3 asrs r1, r1, #4 ands r1, r7 orrs r1, r2 ldr r2, _0804A3EC @ =0x00002004 adds r0, r0, r2 adds r0, r6, r0 adds r1, r1, r2 adds r1, r6, r1 movs r2, #1 mov r3, r8 bl sub_0804A4BC cmp r0, #0 beq _0804A4B0 movs r0, #8 b _0804A4B2 .align 2, 0 _0804A3E8: .4byte gUnk_03000BF0 _0804A3EC: .4byte 0x00002004 _0804A3F0: movs r4, #0x32 ldrsh r0, [r5, r4] subs r4, r0, #4 adds r0, r4, #0 movs r1, #0xf ands r0, r1 movs r2, #3 mov r8, r2 cmp r0, #7 bhi _0804A408 movs r0, #0xc mov r8, r0 _0804A408: movs r1, #0x2e ldrsh r0, [r5, r1] ldr r2, _0804A4A8 @ =gUnk_03000BF0 mov sb, r2 ldrh r3, [r2, #6] adds r1, r3, #0 adds r1, #0xa subs r0, r0, r1 asrs r0, r0, #4 movs r7, #0x3f ands r0, r7 ldrh r2, [r2, #8] subs r2, r4, r2 lsrs r2, r2, #4 ands r2, r7 lsls r2, r2, #6 orrs r0, r2 mov r4, sl movs r1, #0x2e ldrsh r4, [r4, r1] subs r1, r4, r3 asrs r1, r1, #4 ands r1, r7 orrs r1, r2 ldr r2, _0804A4AC @ =0x00002004 adds r0, r0, r2 adds r0, r6, r0 adds r1, r1, r2 adds r1, r6, r1 movs r2, #1 rsbs r2, r2, #0 mov r3, r8 bl sub_0804A4BC cmp r0, #0 beq _0804A4B0 movs r2, #0x32 ldrsh r0, [r5, r2] adds r4, r0, #4 mov r0, r8 movs r1, #0xf eors r0, r1 mov r8, r0 movs r2, #0x2e ldrsh r0, [r5, r2] mov r5, sb ldrh r3, [r5, #6] adds r1, r3, #0 adds r1, #0xa subs r0, r0, r1 asrs r0, r0, #4 ands r0, r7 ldrh r2, [r5, #8] subs r2, r4, r2 lsrs r2, r2, #4 ands r2, r7 lsls r2, r2, #6 orrs r0, r2 mov r4, sl movs r5, #0x2e ldrsh r1, [r4, r5] subs r1, r1, r3 asrs r1, r1, #4 ands r1, r7 orrs r1, r2 ldr r2, _0804A4AC @ =0x00002004 adds r0, r0, r2 adds r0, r6, r0 adds r1, r1, r2 adds r1, r6, r1 movs r2, #1 rsbs r2, r2, #0 mov r3, r8 bl sub_0804A4BC cmp r0, #0 beq _0804A4B0 movs r0, #0x18 b _0804A4B2 .align 2, 0 _0804A4A8: .4byte gUnk_03000BF0 _0804A4AC: .4byte 0x00002004 _0804A4B0: movs r0, #0xff _0804A4B2: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0804A4BC sub_0804A4BC: @ 0x0804A4BC push {r4, lr} adds r4, r0, #0 cmp r4, r1 beq _0804A4DE _0804A4C4: ldrb r0, [r4] cmp r0, #0 beq _0804A4D8 cmp r0, #0xf bhi _0804A4D4 ands r0, r3 cmp r0, #0 beq _0804A4D8 _0804A4D4: movs r0, #0 b _0804A4E0 _0804A4D8: adds r4, r4, r2 cmp r4, r1 bne _0804A4C4 _0804A4DE: movs r0, #1 _0804A4E0: pop {r4, pc} .align 2, 0 thumb_func_start sub_0804A4E4 sub_0804A4E4: @ 0x0804A4E4 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r6, r1, #0 adds r7, r5, #0 adds r7, #0x6d ldrb r1, [r7] movs r4, #0x40 adds r0, r4, #0 ands r0, r1 movs r1, #4 adds r2, r6, #0 adds r2, #0x6d orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6c ldrb r1, [r0] adds r0, r6, #0 adds r0, #0x6c strb r1, [r0] adds r0, r5, #0 adds r0, #0x70 ldrh r1, [r0] adds r0, r6, #0 adds r0, #0x70 strh r1, [r0] adds r0, r5, #0 adds r0, #0x72 ldrh r0, [r0] adds r1, r6, #0 adds r1, #0x72 strh r0, [r1] adds r0, r5, #0 adds r0, #0x6e ldrb r0, [r0] subs r1, #4 strb r0, [r1] adds r0, r5, #0 adds r0, #0x6f ldrb r0, [r0] adds r1, #1 strb r0, [r1] adds r0, r5, #0 adds r1, r6, #0 bl sub_0806FA6C ldrb r0, [r7] ands r4, r0 cmp r4, #0 beq _0804A550 adds r0, r5, #0 adds r1, r6, #0 bl sub_08058800 _0804A550: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0804A554 sub_0804A554: @ 0x0804A554 push {lr} adds r3, r0, #0 ldrb r0, [r3, #9] lsls r0, r0, #4 ldr r1, _0804A574 @ =gUnk_080D2C58 adds r2, r0, r1 ldrh r1, [r2] ldr r0, _0804A578 @ =0x0000FFFF cmp r1, r0 bne _0804A570 ldrb r0, [r3, #0xa] lsls r0, r0, #4 ldr r1, [r2, #4] adds r2, r1, r0 _0804A570: adds r0, r2, #0 pop {pc} .align 2, 0 _0804A574: .4byte gUnk_080D2C58 _0804A578: .4byte 0x0000FFFF thumb_func_start sub_0804A57C sub_0804A57C: @ 0x0804A57C push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0804A58C b _0804A6B6 _0804A58C: adds r0, r4, #0 bl sub_0804A554 adds r5, r0, #0 adds r0, r4, #0 adds r1, r5, #0 bl sub_0804A6C0 cmp r0, #0 bne _0804A5A4 movs r0, #0 b _0804A6B8 _0804A5A4: ldrb r1, [r4, #0x10] movs r0, #1 adds r2, r1, #0 orrs r2, r0 strb r2, [r4, #0x10] ldrb r1, [r5, #0xa] movs r0, #8 ands r0, r1 cmp r0, #0 beq _0804A5BE movs r0, #0x80 orrs r2, r0 strb r2, [r4, #0x10] _0804A5BE: ldrh r0, [r5, #8] strh r0, [r4, #0x12] ldrb r2, [r4, #0x18] lsls r0, r2, #0x1e cmp r0, #0 bne _0804A5DA ldrb r1, [r5, #0xa] lsls r1, r1, #0x1a lsrs r1, r1, #0x1e movs r0, #4 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] _0804A5DA: ldrb r1, [r5, #0xa] lsls r1, r1, #0x1d adds r3, r4, #0 adds r3, #0x29 movs r6, #7 lsrs r1, r1, #0x1a ldrb r2, [r3] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] ldrb r1, [r5, #0xa] movs r7, #3 lsrs r1, r1, #6 lsls r1, r1, #4 ldrb r2, [r4, #0x18] movs r0, #0x31 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] movs r1, #0x24 ldrsh r0, [r4, r1] cmp r0, #0 bne _0804A612 ldrh r0, [r5, #0xc] strh r0, [r4, #0x24] _0804A612: ldrb r0, [r5, #0xf] adds r1, r4, #0 adds r1, #0x3b strb r0, [r1] ldrb r0, [r5, #0xe] adds r1, #4 strb r0, [r1] ldr r0, [r5, #4] str r0, [r4, #0x48] ldrb r0, [r5, #0xb] adds r2, r4, #0 adds r2, #0x45 strb r0, [r2] adds r1, #1 ldrb r0, [r1] cmp r0, #0 bne _0804A638 movs r0, #0x41 strb r0, [r1] _0804A638: adds r0, r4, #0 bl sub_08016A04 adds r5, r4, #0 adds r5, #0x6d ldrb r1, [r5] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _0804A6B6 ldr r2, _0804A6BC @ =gUnk_080D3E74 ldrb r1, [r4, #9] lsrs r0, r1, #3 lsls r0, r0, #1 adds r0, r0, r2 ldrh r2, [r0] ands r6, r1 lsls r0, r6, #1 asrs r2, r0 movs r0, #3 ands r2, r0 cmp r2, #0 beq _0804A6B6 subs r1, r2, #1 movs r0, #0xa9 movs r2, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _0804A6B6 ldrb r0, [r4, #0x10] strb r0, [r2, #0xe] ldrb r0, [r4, #0x18] lsls r0, r0, #0x1e lsrs r0, r0, #0x1e strb r0, [r2, #0xf] adds r3, r2, #0 adds r3, #0x29 ldrb r1, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 orrs r0, r7 strb r0, [r3] str r4, [r2, #0x50] adds r0, r4, #0 adds r1, r2, #0 bl sub_0806FA24 ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] ldrb r0, [r5] movs r1, #0x10 orrs r0, r1 strb r0, [r5] _0804A6B6: movs r0, #1 _0804A6B8: pop {r4, r5, r6, r7, pc} .align 2, 0 _0804A6BC: .4byte gUnk_080D3E74 thumb_func_start sub_0804A6C0 sub_0804A6C0: @ 0x0804A6C0 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 ldrh r2, [r5] lsls r1, r2, #0x10 cmp r1, #0 beq _0804A712 movs r0, #0x80 lsls r0, r0, #8 ands r0, r2 cmp r0, #0 beq _0804A6E8 ldr r0, _0804A6E4 @ =0x000003FF ands r0, r2 adds r1, r4, #0 adds r1, #0x60 strh r0, [r1] b _0804A712 .align 2, 0 _0804A6E4: .4byte 0x000003FF _0804A6E8: movs r0, #0x80 lsls r0, r0, #7 ands r0, r2 cmp r0, #0 beq _0804A702 lsrs r1, r1, #0x14 lsls r1, r1, #0x18 lsrs r1, r1, #0x18 adds r0, r4, #0 movs r2, #0 bl sub_080AE008 b _0804A70A _0804A702: ldrh r1, [r5] adds r0, r4, #0 bl sub_080ADF80 _0804A70A: cmp r0, #0 bne _0804A712 movs r0, #0 b _0804A71C _0804A712: ldrh r1, [r5, #2] adds r0, r4, #0 bl sub_0801D040 movs r0, #1 _0804A71C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0804A720 sub_0804A720: @ 0x0804A720 push {r4, r5, r6, lr} adds r2, r0, #0 adds r0, #0x6d ldrb r1, [r0] movs r0, #4 ands r0, r1 cmp r0, #0 bne _0804A7D0 ldrb r0, [r2, #9] lsls r0, r0, #1 ldr r1, _0804A76C @ =gUnk_080D3D94 adds r3, r0, r1 adds r4, r2, #0 adds r4, #0x68 ldrb r1, [r4, #0x16] cmp r1, #0 bne _0804A744 ldrb r1, [r3] _0804A744: adds r0, r2, #0 adds r0, #0x6e strb r1, [r0] adds r5, r0, #0 ldrb r1, [r4, #0x17] cmp r1, #0 bne _0804A754 ldrb r1, [r3, #1] _0804A754: adds r0, r2, #0 adds r0, #0x6f strb r1, [r0] adds r6, r0, #0 ldrh r1, [r4, #0x1c] adds r3, r1, #0 cmp r3, #0 beq _0804A774 ldr r0, _0804A770 @ =gUnk_03000BF0 ldrh r0, [r0, #6] adds r0, r1, r0 b _0804A784 .align 2, 0 _0804A76C: .4byte gUnk_080D3D94 _0804A770: .4byte gUnk_03000BF0 _0804A774: ldrb r0, [r5] lsls r1, r0, #2 movs r5, #0x2e ldrsh r0, [r2, r5] cmp r0, r1 blt _0804A78C ldrh r0, [r2, #0x2e] subs r0, r0, r1 _0804A784: adds r1, r2, #0 adds r1, #0x70 strh r0, [r1] b _0804A792 _0804A78C: adds r0, r2, #0 adds r0, #0x70 strh r3, [r0] _0804A792: ldrh r1, [r4, #0x1e] adds r3, r1, #0 cmp r3, #0 beq _0804A7A8 ldr r0, _0804A7A4 @ =gUnk_03000BF0 ldrh r0, [r0, #8] adds r0, r1, r0 b _0804A7B8 .align 2, 0 _0804A7A4: .4byte gUnk_03000BF0 _0804A7A8: ldrb r0, [r6] lsls r1, r0, #2 movs r4, #0x32 ldrsh r0, [r2, r4] cmp r0, r1 blt _0804A7C0 ldrh r0, [r2, #0x32] subs r0, r0, r1 _0804A7B8: adds r1, r2, #0 adds r1, #0x72 strh r0, [r1] b _0804A7C6 _0804A7C0: adds r0, r2, #0 adds r0, #0x72 strh r3, [r0] _0804A7C6: adds r2, #0x6d ldrb r1, [r2] movs r0, #4 orrs r0, r1 strb r0, [r2] _0804A7D0: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0804A7D4 sub_0804A7D4: @ 0x0804A7D4 push {lr} ldrb r1, [r0, #9] movs r2, #0 bl sub_0804A7E0 pop {pc} thumb_func_start sub_0804A7E0 sub_0804A7E0: @ 0x0804A7E0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r5, r0, #0 mov sb, r1 mov sl, r2 adds r6, r5, #0 adds r6, #0x6d ldrb r1, [r6] movs r7, #1 adds r0, r7, #0 ands r0, r1 cmp r0, #0 beq _0804A864 movs r0, #2 ands r0, r1 cmp r0, #0 beq _0804A80A b _0804A982 _0804A80A: ldrb r1, [r5, #9] movs r0, #1 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 bne _0804A81C b _0804A982 _0804A81C: adds r0, #0x6c strb r7, [r0] adds r0, r5, #0 adds r1, r4, #0 movs r2, #0 movs r3, #1 bl sub_0806FA48 str r5, [r4, #0x50] ldrb r1, [r6] movs r0, #2 orrs r0, r1 strb r0, [r6] ldrb r0, [r5, #9] cmp r0, #0x37 bne _0804A84A ldr r0, _0804A85C @ =gUnk_030010A0 adds r0, #0x39 ldrb r0, [r0] cmp r0, #0 beq _0804A84A bl sub_0805E780 _0804A84A: bl sub_0807CD9C ldr r0, _0804A860 @ =0x80100000 bl sub_080A3268 bl sub_0805E780 b _0804A982 .align 2, 0 _0804A85C: .4byte gUnk_030010A0 _0804A860: .4byte 0x80100000 _0804A864: adds r4, r5, #0 adds r4, #0x3a ldrb r1, [r4] movs r0, #2 ands r0, r1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 mov r8, r0 cmp r0, #0 bne _0804A934 adds r0, r5, #0 bl sub_08049CF4 ldr r1, _0804A8E8 @ =gUnk_02002A40 ldr r0, [r1, #0x50] adds r0, #1 str r0, [r1, #0x50] ldrb r0, [r4] movs r7, #0 movs r1, #2 orrs r0, r1 strb r0, [r4] movs r0, #0xff strb r0, [r5, #0xe] adds r0, r5, #0 movs r1, #3 bl sub_0805E3A0 ldrb r1, [r5, #9] movs r0, #1 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _0804A8CA adds r0, #0x6c mov r2, r8 strb r2, [r0] adds r0, #1 mov r1, sb strb r1, [r0] adds r0, #1 mov r2, sl strb r2, [r0] str r5, [r4, #0x50] str r5, [r4, #0x54] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 _0804A8CA: ldrb r1, [r6] movs r0, #8 ands r0, r1 cmp r0, #0 beq _0804A8EC adds r0, r4, #0 adds r0, #0x6c ldrb r1, [r0] movs r2, #8 orrs r1, r2 strb r1, [r0] adds r0, r5, #0 bl sub_0805E7BC b _0804A982 .align 2, 0 _0804A8E8: .4byte gUnk_02002A40 _0804A8EC: adds r0, r5, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0x13 bne _0804A934 ldrb r0, [r5, #0x1c] movs r1, #0xf ands r1, r0 cmp r1, #1 beq _0804A91A cmp r1, #2 bne _0804A92A cmp r4, #0 beq _0804A92A adds r1, r4, #0 adds r1, #0x6c ldrb r0, [r1] movs r2, #2 orrs r0, r2 strb r0, [r1] b _0804A92A _0804A91A: cmp r4, #0 beq _0804A92A adds r0, r4, #0 adds r0, #0x6c ldrb r1, [r0] movs r2, #4 orrs r1, r2 strb r1, [r0] _0804A92A: movs r0, #0 str r0, [r4, #0x50] bl sub_0805E780 b _0804A982 _0804A934: ldrb r0, [r5, #0xe] cmp r0, #0 bne _0804A940 bl sub_0805E780 b _0804A982 _0804A940: subs r1, r0, #1 strb r1, [r5, #0xe] lsls r0, r1, #0x18 cmp r0, #0 bne _0804A95E ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r5, #0x18] adds r0, r5, #0 movs r1, #0 bl sub_0805E3A0 b _0804A982 _0804A95E: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #8 bhi _0804A982 ldrb r1, [r5, #0x18] lsls r0, r1, #0x1e cmp r0, #0 beq _0804A976 movs r0, #4 rsbs r0, r0, #0 ands r0, r1 b _0804A980 _0804A976: movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 _0804A980: strb r0, [r5, #0x18] _0804A982: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0804A98C sub_0804A98C: @ 0x0804A98C push {r4, r5, r6, lr} adds r6, r0, #0 adds r0, r1, #0 adds r5, r2, #0 bl sub_080A7EE0 adds r4, r0, #0 cmp r4, #0 beq _0804A9A8 strb r5, [r4, #0xa] adds r0, r6, #0 adds r1, r4, #0 bl sub_0806FA24 _0804A9A8: adds r0, r4, #0 pop {r4, r5, r6, pc} thumb_func_start sub_0804A9AC sub_0804A9AC: @ 0x0804A9AC push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r6, r1, #0 adds r7, r2, #0 mov ip, r3 ldr r4, [r5, #0x68] cmp r4, #0 beq _0804A9FA ldrb r2, [r5, #0x19] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r3, [r4, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r3 orrs r0, r2 strb r0, [r4, #0x19] ldrb r0, [r5, #0x1b] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r4, #0x1b] ands r1, r2 orrs r1, r0 strb r1, [r4, #0x1b] ldrh r0, [r5, #0x2e] adds r0, r0, r6 strh r0, [r4, #0x2e] ldrh r0, [r5, #0x32] adds r0, r0, r7 strh r0, [r4, #0x32] ldrh r0, [r5, #0x36] add r0, ip strh r0, [r4, #0x36] adds r0, r5, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] _0804A9FA: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0804A9FC sub_0804A9FC: @ 0x0804A9FC push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x68] cmp r0, #0 bne _0804AA16 adds r0, r4, #0 movs r2, #0 bl sub_080A29AC cmp r0, #0 beq _0804AA16 str r0, [r4, #0x68] b _0804AA18 _0804AA16: movs r0, #0 _0804AA18: pop {r4, pc} .align 2, 0 thumb_func_start sub_0804AA1C sub_0804AA1C: @ 0x0804AA1C push {lr} adds r2, r0, #0 ldr r1, [r2, #0x68] cmp r1, #0 beq _0804AA2C movs r0, #0 str r0, [r1, #0x50] str r0, [r2, #0x68] _0804AA2C: pop {pc} .align 2, 0 thumb_func_start sub_0804AA30 sub_0804AA30: @ 0x0804AA30 push {r4, r5, r6, lr} adds r4, r0, #0 adds r5, r1, #0 adds r6, r4, #0 adds r6, #0x41 ldrb r1, [r6] movs r0, #0x7f ands r0, r1 strb r0, [r6] adds r0, r4, #0 bl sub_0800279C ldrb r2, [r6] movs r1, #0x80 orrs r1, r2 strb r1, [r6] lsls r0, r0, #2 adds r0, r0, r5 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0804AA60 sub_0804AA60: @ 0x0804AA60 push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 bl sub_0805E678 adds r4, r0, #0 cmp r4, #0 beq _0804AA80 movs r0, #3 strb r0, [r4, #8] strb r5, [r4, #9] strb r6, [r4, #0xa] adds r0, r4, #0 movs r1, #4 bl sub_0805EA2C _0804AA80: adds r0, r4, #0 pop {r4, r5, r6, pc} thumb_func_start sub_0804AA84 sub_0804AA84: @ 0x0804AA84 push {lr} ldr r3, _0804AA98 @ =gUnk_02033A90 ldrb r0, [r3, #0x19] cmp r0, #0 bne _0804AA9C strb r0, [r3, #0x18] strb r0, [r3, #0x19] movs r0, #0 b _0804AAB0 .align 2, 0 _0804AA98: .4byte gUnk_02033A90 _0804AA9C: ldr r2, _0804AAB4 @ =gUnk_03001000 movs r1, #0 movs r0, #4 strb r0, [r2, #4] strb r1, [r3, #0xe] strb r1, [r3, #0xf] strh r1, [r3, #0x10] bl sub_0805E5A8 movs r0, #1 _0804AAB0: pop {pc} .align 2, 0 _0804AAB4: .4byte gUnk_03001000 thumb_func_start sub_0804AAB8 sub_0804AAB8: @ 0x0804AAB8 push {lr} ldr r1, _0804AACC @ =gUnk_080D4120 ldr r0, _0804AAD0 @ =gUnk_02033A90 ldrb r0, [r0, #0xe] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _0804AACC: .4byte gUnk_080D4120 _0804AAD0: .4byte gUnk_02033A90 thumb_func_start sub_0804AAD4 sub_0804AAD4: @ 0x0804AAD4 push {r4, lr} ldr r4, _0804AAFC @ =gUnk_02018EB0 adds r0, r4, #0 movs r1, #0x28 bl sub_0801D630 movs r0, #0 str r0, [r4, #0x14] bl sub_0805E60C ldr r4, _0804AB00 @ =gUnk_02033A90 ldrb r1, [r4, #0x17] movs r0, #0x3d movs r2, #0 bl sub_080A2960 ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] pop {r4, pc} .align 2, 0 _0804AAFC: .4byte gUnk_02018EB0 _0804AB00: .4byte gUnk_02033A90 thumb_func_start sub_0804AB04 sub_0804AB04: @ 0x0804AB04 push {lr} bl sub_0805E5C0 ldr r0, _0804AB20 @ =gUnk_02033A90 ldrh r0, [r0, #0x10] cmp r0, #0 beq _0804AB1E bl sub_080AD90C bl sub_080AD9B0 bl sub_080AD918 _0804AB1E: pop {pc} .align 2, 0 _0804AB20: .4byte gUnk_02033A90 thumb_func_start sub_0804AB24 sub_0804AB24: @ 0x0804AB24 push {r4, r5, lr} ldr r5, _0804AB48 @ =gUnk_03000FD0 ldrb r1, [r5] cmp r1, #0 bne _0804AB46 ldr r0, _0804AB4C @ =gUnk_03000F50 movs r4, #0 strh r1, [r0] bl sub_0801E104 ldr r0, _0804AB50 @ =gUnk_02033A90 strb r4, [r0, #0xe] movs r0, #6 movs r1, #0 bl sub_080A7138 strb r4, [r5] _0804AB46: pop {r4, r5, pc} .align 2, 0 _0804AB48: .4byte gUnk_03000FD0 _0804AB4C: .4byte gUnk_03000F50 _0804AB50: .4byte gUnk_02033A90 thumb_func_start sub_0804AB54 sub_0804AB54: @ 0x0804AB54 push {lr} ldr r1, _0804AB68 @ =gUnk_080D412C ldr r0, _0804AB6C @ =gUnk_02033A90 ldrb r0, [r0, #0xe] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _0804AB68: .4byte gUnk_080D412C _0804AB6C: .4byte gUnk_02033A90 thumb_func_start sub_0804AB70 sub_0804AB70: @ 0x0804AB70 push {r4, r5, lr} movs r0, #0 bl sub_0801DA90 ldr r1, _0804ABF8 @ =gUnk_03000F50 movs r2, #0 movs r0, #0x92 lsls r0, r0, #5 strh r0, [r1] ldr r0, _0804ABFC @ =0x00009E83 strh r0, [r1, #0x14] ldr r0, _0804AC00 @ =gUnk_03000BF0 strh r2, [r1, #0x16] strh r2, [r0, #0xa] strh r2, [r1, #0x18] strh r2, [r0, #0xc] ldr r0, _0804AC04 @ =gUnk_02033A90 ldrb r5, [r0, #0x17] cmp r5, #2 bne _0804ABA4 ldr r0, _0804AC08 @ =gUnk_02032EC0 adds r0, #0x20 ldrb r0, [r0] cmp r0, #2 beq _0804ABA4 movs r5, #3 _0804ABA4: lsls r4, r5, #1 ldr r0, _0804AC0C @ =gUnk_080D4138 adds r4, r4, r0 ldrb r0, [r4] bl sub_0801D714 ldrb r0, [r4, #1] bl sub_0801D7EC ldr r0, _0804AC10 @ =gUnk_02017700 movs r2, #0x90 lsls r2, r2, #2 adds r1, r0, r2 movs r2, #0x20 bl sub_0801D66C ldr r2, _0804AC14 @ =gUnk_0200B644 ldr r0, [r2] movs r1, #0x80 lsls r1, r1, #0xe orrs r0, r1 str r0, [r2] bl sub_0805E60C ldr r1, _0804AC18 @ =gUnk_080D4110 lsls r0, r5, #2 adds r0, r0, r1 ldr r0, [r0] bl sub_0804ADDC bl sub_0805E5B4 ldr r1, _0804AC04 @ =gUnk_02033A90 ldrb r0, [r1, #0xe] adds r0, #1 strb r0, [r1, #0xe] movs r0, #4 movs r1, #8 bl sub_08050054 pop {r4, r5, pc} .align 2, 0 _0804ABF8: .4byte gUnk_03000F50 _0804ABFC: .4byte 0x00009E83 _0804AC00: .4byte gUnk_03000BF0 _0804AC04: .4byte gUnk_02033A90 _0804AC08: .4byte gUnk_02032EC0 _0804AC0C: .4byte gUnk_080D4138 _0804AC10: .4byte gUnk_02017700 _0804AC14: .4byte gUnk_0200B644 _0804AC18: .4byte gUnk_080D4110 thumb_func_start sub_0804AC1C sub_0804AC1C: @ 0x0804AC1C push {r4, lr} bl sub_0805E5C0 ldr r0, _0804AC98 @ =gUnk_02018EB0 ldr r2, [r0, #0x14] cmp r2, #0 beq _0804AC5E ldr r3, _0804AC9C @ =gUnk_03000BF0 movs r1, #0xc ldrsh r0, [r3, r1] movs r4, #0x32 ldrsh r1, [r2, r4] subs r1, #0x50 subs r0, r0, r1 movs r4, #0x36 ldrsh r1, [r2, r4] subs r1, r0, r1 cmp r1, #0 beq _0804AC5E ldrh r0, [r3, #0xc] subs r0, r0, r1 strh r0, [r3, #0xc] lsls r0, r0, #0x10 cmp r0, #0 bge _0804AC52 movs r0, #0 strh r0, [r3, #0xc] _0804AC52: movs r1, #0xc ldrsh r0, [r3, r1] cmp r0, #0x9f ble _0804AC5E movs r0, #0x9f strh r0, [r3, #0xc] _0804AC5E: ldr r2, _0804ACA0 @ =gUnk_03000F50 ldr r1, _0804AC9C @ =gUnk_03000BF0 ldrh r0, [r1, #0xa] strh r0, [r2, #0x16] ldrh r0, [r1, #0xc] strh r0, [r2, #0x18] bl sub_080AD90C bl sub_080AD9B0 bl sub_080AD918 ldr r0, _0804AC98 @ =gUnk_02018EB0 ldrb r0, [r0, #0x1b] cmp r0, #0 bne _0804AC86 bl sub_0804ACA8 cmp r0, #0 beq _0804AC96 _0804AC86: ldr r1, _0804ACA4 @ =gUnk_02033A90 ldrb r0, [r1, #0xe] adds r0, #1 strb r0, [r1, #0xe] movs r0, #7 movs r1, #0x10 bl sub_08050054 _0804AC96: pop {r4, pc} .align 2, 0 _0804AC98: .4byte gUnk_02018EB0 _0804AC9C: .4byte gUnk_03000BF0 _0804ACA0: .4byte gUnk_03000F50 _0804ACA4: .4byte gUnk_02033A90 thumb_func_start sub_0804ACA8 sub_0804ACA8: @ 0x0804ACA8 push {lr} ldr r0, _0804ACC0 @ =gUnk_03000FF0 ldrh r1, [r0, #2] movs r0, #0x81 lsls r0, r0, #1 ands r0, r1 cmp r0, #0 beq _0804ACC4 bl sub_0804AD18 b _0804ACC6 .align 2, 0 _0804ACC0: .4byte gUnk_03000FF0 _0804ACC4: movs r0, #0 _0804ACC6: pop {pc} thumb_func_start sub_0804ACC8 sub_0804ACC8: @ 0x0804ACC8 push {lr} ldr r0, _0804ACEC @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _0804ACE8 ldr r0, _0804ACF0 @ =gUnk_02033A90 ldrb r0, [r0, #0x17] adds r0, #0x5e bl sub_0807CD04 ldr r0, _0804ACF4 @ =gUnk_02032EDC bl sub_0804AD6C movs r0, #0 bl sub_080A71F4 _0804ACE8: pop {pc} .align 2, 0 _0804ACEC: .4byte gUnk_03000FD0 _0804ACF0: .4byte gUnk_02033A90 _0804ACF4: .4byte gUnk_02032EDC thumb_func_start sub_0804ACF8 sub_0804ACF8: @ 0x0804ACF8 push {lr} bl sub_0804AD18 cmp r0, #0 beq _0804AD12 ldr r0, _0804AD14 @ =gUnk_03000BF0 bl sub_0804AD6C bl sub_0805E5A8 movs r0, #0xf8 bl sub_080A3268 _0804AD12: pop {pc} .align 2, 0 _0804AD14: .4byte gUnk_03000BF0 thumb_func_start sub_0804AD18 sub_0804AD18: @ 0x0804AD18 push {lr} ldr r0, _0804AD30 @ =gUnk_02033A90 ldrb r1, [r0, #0x17] adds r2, r0, #0 cmp r1, #6 bhi _0804AD66 lsls r0, r1, #2 ldr r1, _0804AD34 @ =_0804AD38 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804AD30: .4byte gUnk_02033A90 _0804AD34: .4byte _0804AD38 _0804AD38: @ jump table .4byte _0804AD54 @ case 0 .4byte _0804AD54 @ case 1 .4byte _0804AD54 @ case 2 .4byte _0804AD66 @ case 3 .4byte _0804AD66 @ case 4 .4byte _0804AD66 @ case 5 .4byte _0804AD62 @ case 6 _0804AD54: ldrb r0, [r2, #0x17] adds r0, #0x5e bl sub_0807CC30 adds r1, r0, #0 cmp r1, #0 bne _0804AD68 _0804AD62: movs r0, #0 b _0804AD68 _0804AD66: movs r0, #0 _0804AD68: pop {pc} .align 2, 0 thumb_func_start sub_0804AD6C sub_0804AD6C: @ 0x0804AD6C push {r4, r5, r6, lr} mov r6, r8 push {r6} ldr r3, _0804ADD0 @ =gUnk_030010A0 movs r1, #0 movs r6, #1 strb r6, [r3, #8] strb r1, [r3, #9] ldr r4, _0804ADD4 @ =gUnk_02033A90 ldr r5, _0804ADD8 @ =gUnk_080D4140 ldrb r1, [r4, #0x16] lsls r1, r1, #2 adds r1, r1, r5 ldrh r1, [r1] ldrh r2, [r4, #0x12] adds r1, r1, r2 ldrh r2, [r0, #6] subs r1, r1, r2 movs r2, #0 mov r8, r2 strh r1, [r3, #0x10] ldrb r1, [r4, #0x16] lsls r1, r1, #1 adds r1, #1 lsls r1, r1, #1 adds r1, r1, r5 ldrh r1, [r1] ldrh r2, [r4, #0x14] adds r1, r1, r2 ldrh r2, [r0, #8] subs r1, r1, r2 strh r1, [r3, #0x12] ldrb r1, [r4, #0x16] lsls r1, r1, #1 strb r1, [r3, #0xe] strb r6, [r3, #0xf] ldrb r1, [r0, #4] strb r1, [r3, #0xc] ldrb r0, [r0, #5] strb r0, [r3, #0xd] mov r0, r8 strb r0, [r3, #0x14] bl sub_080300AC bl sub_080300C4 pop {r3} mov r8, r3 pop {r4, r5, r6, pc} .align 2, 0 _0804ADD0: .4byte gUnk_030010A0 _0804ADD4: .4byte gUnk_02033A90 _0804ADD8: .4byte gUnk_080D4140 thumb_func_start sub_0804ADDC sub_0804ADDC: @ 0x0804ADDC push {r4, lr} adds r4, r0, #0 cmp r4, #0 beq _0804ADF4 b _0804ADEE _0804ADE6: adds r0, r4, #0 adds r4, #0x10 bl sub_0804ADF8 _0804ADEE: ldrb r0, [r4] cmp r0, #0xff bne _0804ADE6 _0804ADF4: pop {r4, pc} .align 2, 0 thumb_func_start sub_0804ADF8 sub_0804ADF8: @ 0x0804ADF8 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r0, [r4] movs r6, #0xf ands r6, r0 ldrb r1, [r4, #1] movs r0, #0xf0 ands r0, r1 cmp r0, #0x50 bne _0804AE1C ldrb r1, [r4, #2] adds r0, r6, #0 bl sub_0805EB9C cmp r0, #0 beq _0804AE1C movs r0, #0 b _0804AEAC _0804AE1C: adds r0, r6, #0 bl sub_0805E768 adds r5, r0, #0 cmp r5, #0 beq _0804AEAA strb r6, [r5, #8] ldrb r0, [r4, #2] strb r0, [r5, #9] ldrb r0, [r4, #3] strb r0, [r5, #0xa] adds r0, r5, #0 adds r1, r4, #0 bl sub_0804AEB0 ldrb r1, [r4, #1] movs r7, #0xf0 adds r0, r7, #0 ands r0, r1 cmp r0, #0x10 beq _0804AEAA ldrb r0, [r4, #4] strb r0, [r5, #0xb] ldr r0, [r4, #4] movs r1, #0xff lsls r1, r1, #8 ands r0, r1 lsrs r0, r0, #8 strb r0, [r5, #0xe] cmp r6, #9 beq _0804AEAA adds r0, r5, #0 adds r1, r4, #0 bl sub_0804AF0C ldr r0, [r5, #4] cmp r0, #0 beq _0804AEAA ldrb r0, [r4] adds r2, r7, #0 ands r2, r0 movs r0, #0x10 ands r0, r2 cmp r0, #0 bne _0804AE94 movs r0, #0x20 ands r2, r0 cmp r2, #0 beq _0804AE88 adds r1, r5, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] b _0804AEAA _0804AE88: ldr r0, _0804AEA0 @ =gUnk_03000BF0 ldrb r1, [r0, #0xf] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0804AEA4 _0804AE94: adds r1, r5, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] b _0804AEAA .align 2, 0 _0804AEA0: .4byte gUnk_03000BF0 _0804AEA4: adds r0, r5, #0 bl sub_08016A30 _0804AEAA: adds r0, r5, #0 _0804AEAC: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0804AEB0 sub_0804AEB0: @ 0x0804AEB0 push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 ldrb r0, [r6, #1] movs r1, #0xf adds r2, r1, #0 ands r2, r0 ldrb r0, [r6] adds r4, r1, #0 ands r4, r0 ldr r0, [r5] cmp r0, #0 bne _0804AEF6 cmp r2, #0xf bne _0804AEE0 ldr r0, _0804AEDC @ =gUnk_081091E4 adds r0, r4, r0 ldrb r1, [r0] adds r0, r5, #0 bl sub_0805EA2C b _0804AEF6 .align 2, 0 _0804AEDC: .4byte gUnk_081091E4 _0804AEE0: cmp r2, #8 bne _0804AEEE adds r0, r5, #0 movs r1, #8 bl sub_0805EA2C b _0804AEF6 _0804AEEE: adds r0, r5, #0 adds r1, r2, #0 bl sub_0805EA2C _0804AEF6: adds r1, r5, #0 adds r1, #0x78 cmp r4, #9 bne _0804AF00 subs r1, #0x48 _0804AF00: adds r0, r6, #0 movs r2, #0x10 bl sub_0801D66C pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0804AF0C sub_0804AF0C: @ 0x0804AF0C push {r4, lr} adds r4, r0, #0 adds r2, r1, #0 ldrb r0, [r2, #1] movs r1, #0xf0 ands r1, r0 cmp r1, #0x20 beq _0804AF40 cmp r1, #0x20 bgt _0804AF26 cmp r1, #0 beq _0804AF2C b _0804AF88 _0804AF26: cmp r1, #0x40 beq _0804AF64 b _0804AF88 _0804AF2C: ldr r0, _0804AF3C @ =gUnk_03000BF0 ldrh r1, [r0, #6] ldrh r3, [r2, #8] adds r1, r1, r3 strh r1, [r4, #0x2e] ldrh r0, [r0, #8] b _0804AF58 .align 2, 0 _0804AF3C: .4byte gUnk_03000BF0 _0804AF40: adds r3, r4, #0 adds r3, #0x6d ldrb r1, [r3] movs r0, #0x20 orrs r0, r1 strb r0, [r3] ldr r1, _0804AF60 @ =gUnk_03000BF0 ldrh r0, [r1, #6] ldrh r3, [r2, #8] adds r0, r0, r3 strh r0, [r4, #0x2e] ldrh r0, [r1, #8] _0804AF58: ldrh r2, [r2, #0xa] adds r0, r0, r2 strh r0, [r4, #0x32] b _0804AF88 .align 2, 0 _0804AF60: .4byte gUnk_03000BF0 _0804AF64: ldr r1, _0804AF8C @ =gUnk_03000BF0 ldrh r0, [r1, #6] ldrh r3, [r2, #8] adds r0, r0, r3 strh r0, [r4, #0x2e] ldrh r0, [r1, #8] ldrh r1, [r2, #0xa] adds r0, r0, r1 strh r0, [r4, #0x32] ldr r1, [r2, #0xc] adds r0, r4, #0 bl sub_0807DAD0 cmp r0, #0 bne _0804AF88 adds r0, r4, #0 bl sub_0805E7BC _0804AF88: pop {r4, pc} .align 2, 0 _0804AF8C: .4byte gUnk_03000BF0 thumb_func_start sub_0804AF90 sub_0804AF90: @ 0x0804AF90 push {lr} ldr r0, _0804AFA8 @ =gUnk_02033A90 ldr r1, _0804AFAC @ =0x0000085C adds r0, r0, r1 ldr r0, [r0] ldr r0, [r0, #0x1c] bl sub_0804AFB0 bl sub_080A7C7C pop {pc} .align 2, 0 _0804AFA8: .4byte gUnk_02033A90 _0804AFAC: .4byte 0x0000085C thumb_func_start sub_0804AFB0 sub_0804AFB0: @ 0x0804AFB0 push {r4, lr} ldr r1, _0804AFD4 @ =gUnk_02017654 str r0, [r1] movs r2, #0 ldr r0, _0804AFD8 @ =gUnk_02034350 adds r3, r1, #0 adds r4, r0, #0 adds r4, #0x6c _0804AFC0: lsls r0, r2, #2 ldr r1, [r3] adds r0, r0, r1 ldr r0, [r0] stm r4!, {r0} adds r2, #1 cmp r2, #7 bls _0804AFC0 pop {r4, pc} .align 2, 0 _0804AFD4: .4byte gUnk_02017654 _0804AFD8: .4byte gUnk_02034350 thumb_func_start sub_0804AFDC sub_0804AFDC: @ 0x0804AFDC push {r4, lr} movs r4, #1 movs r0, #6 bl sub_0804B128 cmp r0, #0 beq _0804AFF0 bl _call_via_r0 adds r4, r0, #0 _0804AFF0: adds r0, r4, #0 pop {r4, pc} thumb_func_start sub_0804AFF4 sub_0804AFF4: @ 0x0804AFF4 push {lr} bl sub_080186EC movs r0, #5 bl sub_0804B128 cmp r0, #0 beq _0804B008 bl _call_via_r0 _0804B008: movs r0, #7 bl sub_0804B128 cmp r0, #0 beq _0804B016 bl _call_via_r0 _0804B016: bl sub_0804B16C pop {pc} thumb_func_start sub_0804B01C sub_0804B01C: @ 0x0804B01C push {lr} movs r0, #1 bl sub_0804B128 bl sub_0804ADDC movs r0, #0 bl sub_0804B128 bl sub_0804ADDC movs r0, #0x15 bl sub_0807CC30 cmp r0, #0 beq _0804B046 movs r0, #2 bl sub_0804B128 bl sub_0804B058 _0804B046: movs r0, #3 bl sub_0804B128 bl sub_0804B1AC bl sub_0801AC98 pop {pc} .align 2, 0 thumb_func_start sub_0804B058 sub_0804B058: @ 0x0804B058 push {r4, r5, lr} adds r4, r0, #0 cmp r4, #0 beq _0804B0AE ldrb r0, [r4] cmp r0, #0xff beq _0804B0AE movs r5, #0 _0804B068: cmp r5, #0x1f bhi _0804B09E ldrb r1, [r4] movs r0, #0xf ands r0, r1 cmp r0, #3 bne _0804B09E adds r0, r5, #0 bl sub_08049D1C cmp r0, #0 beq _0804B0A4 adds r0, r4, #0 bl sub_0804ADF8 adds r2, r0, #0 cmp r2, #0 beq _0804B0A4 ldrb r0, [r2, #8] cmp r0, #3 bne _0804B0A4 movs r0, #0x80 adds r2, #0x6c adds r1, r5, #0 orrs r1, r0 strb r1, [r2] b _0804B0A4 _0804B09E: adds r0, r4, #0 bl sub_0804ADF8 _0804B0A4: adds r5, #1 adds r4, #0x10 ldrb r0, [r4] cmp r0, #0xff bne _0804B068 _0804B0AE: pop {r4, r5, pc} thumb_func_start sub_0804B0B0 sub_0804B0B0: @ 0x0804B0B0 push {lr} movs r2, #1 bl sub_0804B0FC bl sub_0804ADDC pop {pc} .align 2, 0 thumb_func_start sub_0804B0C0 sub_0804B0C0: @ 0x0804B0C0 push {lr} adds r2, r1, #0 ldr r3, _0804B0E0 @ =gUnk_02017654 movs r1, #0 str r1, [r3] ldr r1, _0804B0E4 @ =gUnk_080D50FC lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] cmp r1, #0 beq _0804B0DE lsls r0, r2, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [r3] _0804B0DE: pop {pc} .align 2, 0 _0804B0E0: .4byte gUnk_02017654 _0804B0E4: .4byte gUnk_080D50FC thumb_func_start sub_0804B0E8 sub_0804B0E8: @ 0x0804B0E8 push {lr} movs r2, #4 bl sub_0804B0FC cmp r0, #0 beq _0804B0F8 bl _call_via_r0 _0804B0F8: pop {pc} .align 2, 0 thumb_func_start sub_0804B0FC sub_0804B0FC: @ 0x0804B0FC push {r4, lr} adds r3, r1, #0 adds r4, r2, #0 movs r2, #0 ldr r1, _0804B124 @ =gUnk_080D50FC lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] cmp r1, #0 beq _0804B120 lsls r0, r3, #2 adds r0, r0, r1 ldr r2, [r0] cmp r2, #0 beq _0804B120 lsls r0, r4, #2 adds r0, r0, r2 ldr r2, [r0] _0804B120: adds r0, r2, #0 pop {r4, pc} .align 2, 0 _0804B124: .4byte gUnk_080D50FC thumb_func_start sub_0804B128 sub_0804B128: @ 0x0804B128 push {lr} adds r2, r0, #0 ldr r0, _0804B138 @ =gUnk_02017654 ldr r1, [r0] cmp r1, #0 bne _0804B13C movs r0, #0 b _0804B166 .align 2, 0 _0804B138: .4byte gUnk_02017654 _0804B13C: cmp r2, #0x7f bls _0804B150 ldr r0, _0804B14C @ =gUnk_02034350 movs r1, #7 ands r1, r2 lsls r1, r1, #2 adds r0, #0x8c b _0804B162 .align 2, 0 _0804B14C: .4byte gUnk_02034350 _0804B150: cmp r2, #7 bls _0804B15C lsls r0, r2, #2 adds r0, r0, r1 ldr r0, [r0] b _0804B166 _0804B15C: ldr r0, _0804B168 @ =gUnk_02034350 lsls r1, r2, #2 adds r0, #0x6c _0804B162: adds r1, r1, r0 ldr r0, [r1] _0804B166: pop {pc} .align 2, 0 _0804B168: .4byte gUnk_02034350 thumb_func_start sub_0804B16C sub_0804B16C: @ 0x0804B16C push {r4, lr} ldr r4, _0804B1A4 @ =gUnk_02017660 _0804B170: ldrh r0, [r4, #4] cmp r0, #0 beq _0804B198 ldrb r0, [r4, #1] bl sub_0807CBD0 cmp r0, #0 beq _0804B198 ldrh r3, [r4, #4] ldrb r1, [r4, #6] movs r0, #1 ands r0, r1 movs r2, #1 cmp r0, #0 beq _0804B190 movs r2, #2 _0804B190: movs r0, #0x74 adds r1, r3, #0 bl sub_0807B314 _0804B198: adds r4, #8 ldr r0, _0804B1A8 @ =gUnk_020176A0 cmp r4, r0 blo _0804B170 pop {r4, pc} .align 2, 0 _0804B1A4: .4byte gUnk_02017660 _0804B1A8: .4byte gUnk_020176A0 thumb_func_start sub_0804B1AC sub_0804B1AC: @ 0x0804B1AC push {r4, lr} adds r4, r0, #0 cmp r4, #0 beq _0804B25A b _0804B254 _0804B1B6: ldrb r0, [r4] subs r0, #1 cmp r0, #0xc bhi _0804B252 lsls r0, r0, #2 ldr r1, _0804B1C8 @ =_0804B1CC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804B1C8: .4byte _0804B1CC _0804B1CC: @ jump table .4byte _0804B200 @ case 0 .4byte _0804B208 @ case 1 .4byte _0804B252 @ case 2 .4byte _0804B210 @ case 3 .4byte _0804B252 @ case 4 .4byte _0804B252 @ case 5 .4byte _0804B218 @ case 6 .4byte _0804B252 @ case 7 .4byte _0804B22C @ case 8 .4byte _0804B234 @ case 9 .4byte _0804B23C @ case 10 .4byte _0804B244 @ case 11 .4byte _0804B24C @ case 12 _0804B200: adds r0, r4, #0 bl sub_0804B290 b _0804B252 _0804B208: adds r0, r4, #0 bl sub_0804B29C b _0804B252 _0804B210: adds r0, r4, #0 bl sub_0804B300 b _0804B252 _0804B218: ldr r0, _0804B224 @ =gUnk_02033A90 ldr r1, _0804B228 @ =0x00000864 adds r0, r0, r1 ldrb r1, [r4, #3] str r1, [r0] b _0804B252 .align 2, 0 _0804B224: .4byte gUnk_02033A90 _0804B228: .4byte 0x00000864 _0804B22C: adds r0, r4, #0 bl sub_0804B334 b _0804B252 _0804B234: adds r0, r4, #0 bl sub_0804B340 b _0804B252 _0804B23C: adds r0, r4, #0 bl sub_0804B260 b _0804B252 _0804B244: adds r0, r4, #0 bl sub_0804B27C b _0804B252 _0804B24C: ldr r1, _0804B25C @ =gUnk_02034350 ldrb r0, [r4, #3] strb r0, [r1, #9] _0804B252: adds r4, #8 _0804B254: ldrb r0, [r4] cmp r0, #0 bne _0804B1B6 _0804B25A: pop {r4, pc} .align 2, 0 _0804B25C: .4byte gUnk_02034350 thumb_func_start sub_0804B260 sub_0804B260: @ 0x0804B260 push {lr} ldrb r0, [r0, #1] lsls r0, r0, #5 ldr r1, _0804B274 @ =gUnk_080015BC adds r0, r0, r1 ldr r1, _0804B278 @ =gUnk_02034398 movs r2, #0x20 bl sub_0801D66C pop {pc} .align 2, 0 _0804B274: .4byte gUnk_080015BC _0804B278: .4byte gUnk_02034398 thumb_func_start sub_0804B27C sub_0804B27C: @ 0x0804B27C push {lr} ldr r1, _0804B28C @ =gUnk_02033A90 ldrb r0, [r0, #1] strb r0, [r1, #1] bl sub_08054524 pop {pc} .align 2, 0 _0804B28C: .4byte gUnk_02033A90 thumb_func_start sub_0804B290 sub_0804B290: @ 0x0804B290 push {lr} ldrb r0, [r0, #1] bl sub_0807CCB4 pop {pc} .align 2, 0 thumb_func_start sub_0804B29C sub_0804B29C: @ 0x0804B29C push {r4, lr} adds r2, r0, #0 ldr r4, _0804B2EC @ =gUnk_02017660 movs r1, #0 _0804B2A4: ldrh r0, [r4, #4] cmp r0, #0 bne _0804B2F4 adds r0, r2, #0 adds r1, r4, #0 movs r2, #8 bl sub_0801D66C ldrb r1, [r4, #6] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0804B2FC ldr r0, _0804B2F0 @ =gUnk_03000BF0 ldrb r1, [r0, #0xf] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0804B2FC ldrb r0, [r4, #1] bl sub_0807CBD0 cmp r0, #0 bne _0804B2FC ldrb r1, [r4, #1] movs r0, #0x52 movs r2, #0 bl sub_080A2960 cmp r0, #0 beq _0804B2FC ldrh r1, [r4, #4] bl sub_0806F704 b _0804B2FC .align 2, 0 _0804B2EC: .4byte gUnk_02017660 _0804B2F0: .4byte gUnk_03000BF0 _0804B2F4: adds r1, #1 adds r4, #8 cmp r1, #7 bls _0804B2A4 _0804B2FC: pop {r4, pc} .align 2, 0 thumb_func_start sub_0804B300 sub_0804B300: @ 0x0804B300 push {r4, lr} adds r4, r0, #0 bl sub_0805E8D4 adds r1, r0, #0 cmp r1, #0 beq _0804B332 movs r0, #9 strb r0, [r1, #8] movs r0, #0x24 strb r0, [r1, #9] ldrh r0, [r4, #4] strh r0, [r1, #0x38] ldrh r0, [r4, #6] strh r0, [r1, #0x3a] ldrb r0, [r4, #2] adds r2, r1, #0 adds r2, #0x35 strb r0, [r2] ldrb r0, [r4, #1] strh r0, [r1, #0x3e] adds r0, r1, #0 movs r1, #6 bl sub_0805EA2C _0804B332: pop {r4, pc} thumb_func_start sub_0804B334 sub_0804B334: @ 0x0804B334 push {lr} ldrb r0, [r0, #3] movs r1, #1 bl sub_0805BB00 pop {pc} thumb_func_start sub_0804B340 sub_0804B340: @ 0x0804B340 push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #2] bl sub_0807CBD0 cmp r0, #0 beq _0804B35A ldrh r0, [r4, #6] ldrh r1, [r4, #4] ldrb r2, [r4, #1] bl sub_0807B314 b _0804B380 _0804B35A: ldr r1, _0804B384 @ =gUnk_02034350 ldrb r0, [r1, #1] cmp r0, #0 bne _0804B380 movs r0, #1 strb r0, [r1, #1] bl sub_0805E8D4 adds r1, r0, #0 cmp r1, #0 beq _0804B380 movs r0, #9 strb r0, [r1, #8] movs r0, #0x2a strb r0, [r1, #9] adds r0, r1, #0 movs r1, #6 bl sub_0805EA2C _0804B380: pop {r4, pc} .align 2, 0 _0804B384: .4byte gUnk_02034350 thumb_func_start sub_0804B388 sub_0804B388: @ 0x0804B388 push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 movs r0, #0x34 cmp r4, #1 bne _0804B396 movs r0, #0x26 _0804B396: adds r1, r5, #0 adds r2, r4, #0 bl sub_0807B314 movs r0, #0xf movs r1, #2 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _0804B3BA adds r0, #0x38 strb r4, [r0] adds r0, r1, #0 adds r1, r5, #0 bl sub_0806F704 _0804B3BA: movs r0, #1 rsbs r0, r0, #0 bl sub_080526F8 pop {r4, r5, pc} thumb_func_start sub_0804B3C4 sub_0804B3C4: @ 0x0804B3C4 push {lr} bl sub_0804B29C pop {pc} thumb_func_start sub_0804B3CC sub_0804B3CC: @ 0x0804B3CC movs r0, #1 bx lr thumb_func_start sub_0804B3D0 sub_0804B3D0: @ 0x0804B3D0 push {lr} movs r0, #0 bl sub_08030118 pop {pc} .align 2, 0 thumb_func_start sub_0804B3DC sub_0804B3DC: @ 0x0804B3DC movs r0, #1 bx lr thumb_func_start sub_0804B3E0 sub_0804B3E0: @ 0x0804B3E0 push {lr} movs r0, #1 bl sub_08030118 pop {pc} .align 2, 0 thumb_func_start sub_0804B3EC sub_0804B3EC: @ 0x0804B3EC movs r0, #1 bx lr thumb_func_start sub_0804B3F0 sub_0804B3F0: @ 0x0804B3F0 push {lr} movs r0, #2 bl sub_08030118 pop {pc} .align 2, 0 thumb_func_start sub_0804B3FC sub_0804B3FC: @ 0x0804B3FC movs r0, #1 bx lr thumb_func_start sub_0804B400 sub_0804B400: @ 0x0804B400 push {lr} movs r0, #3 bl sub_08030118 pop {pc} .align 2, 0 thumb_func_start sub_0804B40C sub_0804B40C: @ 0x0804B40C movs r0, #1 bx lr thumb_func_start sub_0804B410 sub_0804B410: @ 0x0804B410 push {lr} movs r0, #4 bl sub_08030118 pop {pc} .align 2, 0 thumb_func_start sub_0804B41C sub_0804B41C: @ 0x0804B41C movs r0, #1 bx lr thumb_func_start sub_0804B420 sub_0804B420: @ 0x0804B420 push {lr} movs r0, #5 bl sub_08030118 pop {pc} .align 2, 0 thumb_func_start sub_0804B42C sub_0804B42C: @ 0x0804B42C movs r0, #1 bx lr thumb_func_start sub_0804B430 sub_0804B430: @ 0x0804B430 push {lr} movs r0, #6 bl sub_08030118 pop {pc} .align 2, 0 thumb_func_start sub_0804B43C sub_0804B43C: @ 0x0804B43C movs r0, #1 bx lr thumb_func_start sub_0804B440 sub_0804B440: @ 0x0804B440 push {lr} movs r0, #7 bl sub_08030118 pop {pc} .align 2, 0 thumb_func_start sub_0804B44C sub_0804B44C: @ 0x0804B44C movs r0, #1 bx lr thumb_func_start sub_0804B450 sub_0804B450: @ 0x0804B450 push {lr} movs r0, #8 bl sub_08030118 pop {pc} .align 2, 0 thumb_func_start sub_0804B45C sub_0804B45C: @ 0x0804B45C movs r0, #1 bx lr thumb_func_start sub_0804B460 sub_0804B460: @ 0x0804B460 push {lr} movs r0, #9 bl sub_08030118 ldr r0, _0804B474 @ =gUnk_02033A90 movs r1, #3 strb r1, [r0, #3] movs r1, #0x4e strb r1, [r0] pop {pc} .align 2, 0 _0804B474: .4byte gUnk_02033A90 thumb_func_start sub_0804B478 sub_0804B478: @ 0x0804B478 movs r0, #1 bx lr thumb_func_start sub_0804B47C sub_0804B47C: @ 0x0804B47C push {lr} movs r0, #0xa bl sub_08030118 ldr r0, _0804B490 @ =gUnk_02033A90 movs r1, #3 strb r1, [r0, #3] movs r1, #0x4e strb r1, [r0] pop {pc} .align 2, 0 _0804B490: .4byte gUnk_02033A90 thumb_func_start sub_0804B494 sub_0804B494: @ 0x0804B494 movs r0, #1 bx lr thumb_func_start sub_0804B498 sub_0804B498: @ 0x0804B498 push {lr} movs r0, #0x23 bl sub_080575C8 bl sub_08057688 pop {pc} .align 2, 0 thumb_func_start sub_0804B4A8 sub_0804B4A8: @ 0x0804B4A8 movs r0, #1 bx lr thumb_func_start sub_0804B4AC sub_0804B4AC: @ 0x0804B4AC push {lr} movs r0, #0x23 bl sub_080575C8 pop {pc} .align 2, 0 thumb_func_start sub_0804B4B8 sub_0804B4B8: @ 0x0804B4B8 push {lr} movs r0, #0x23 bl sub_080575C8 pop {pc} .align 2, 0 thumb_func_start sub_0804B4C4 sub_0804B4C4: @ 0x0804B4C4 movs r0, #1 bx lr thumb_func_start sub_0804B4C8 sub_0804B4C8: @ 0x0804B4C8 push {lr} movs r0, #0x22 bl sub_080580B0 pop {pc} .align 2, 0 thumb_func_start sub_0804B4D4 sub_0804B4D4: @ 0x0804B4D4 push {lr} movs r0, #0x22 bl sub_080580B0 pop {pc} .align 2, 0 thumb_func_start sub_0804B4E0 sub_0804B4E0: @ 0x0804B4E0 movs r0, #1 bx lr thumb_func_start sub_0804B4E4 sub_0804B4E4: @ 0x0804B4E4 push {lr} movs r0, #0x22 bl sub_080580B0 movs r0, #2 bl sub_0807CA84 cmp r0, #0 beq _0804B4FC movs r0, #0x56 bl sub_0807CD04 _0804B4FC: pop {pc} .align 2, 0 thumb_func_start sub_0804B500 sub_0804B500: @ 0x0804B500 push {lr} movs r0, #0x22 bl sub_080580B0 pop {pc} .align 2, 0 thumb_func_start sub_0804B50C sub_0804B50C: @ 0x0804B50C movs r0, #1 bx lr thumb_func_start sub_0804B510 sub_0804B510: @ 0x0804B510 push {lr} movs r0, #0x1e bl sub_080575C8 pop {pc} .align 2, 0 thumb_func_start sub_0804B51C sub_0804B51C: @ 0x0804B51C push {lr} movs r0, #0x1e bl sub_080575C8 pop {pc} .align 2, 0 thumb_func_start sub_0804B528 sub_0804B528: @ 0x0804B528 movs r0, #1 bx lr thumb_func_start sub_0804B52C sub_0804B52C: @ 0x0804B52C push {lr} movs r0, #0x21 bl sub_080575C8 pop {pc} .align 2, 0 thumb_func_start sub_0804B538 sub_0804B538: @ 0x0804B538 push {lr} movs r0, #0x21 bl sub_080575C8 pop {pc} .align 2, 0 thumb_func_start sub_0804B544 sub_0804B544: @ 0x0804B544 movs r0, #1 bx lr thumb_func_start sub_0804B548 sub_0804B548: @ 0x0804B548 push {lr} movs r0, #0x1f bl sub_080575C8 pop {pc} .align 2, 0 thumb_func_start sub_0804B554 sub_0804B554: @ 0x0804B554 push {lr} movs r0, #0x1f bl sub_080575C8 pop {pc} .align 2, 0 thumb_func_start sub_0804B560 sub_0804B560: @ 0x0804B560 movs r0, #1 bx lr thumb_func_start sub_0804B564 sub_0804B564: @ 0x0804B564 push {lr} movs r0, #0x20 bl sub_080575C8 pop {pc} .align 2, 0 thumb_func_start sub_0804B570 sub_0804B570: @ 0x0804B570 push {lr} movs r0, #0x20 bl sub_080575C8 pop {pc} .align 2, 0 thumb_func_start sub_0804B57C sub_0804B57C: @ 0x0804B57C movs r0, #1 bx lr thumb_func_start sub_0804B580 sub_0804B580: @ 0x0804B580 push {lr} movs r0, #0x20 bl sub_080575C8 ldr r0, _0804B5A0 @ =gUnk_03001160 movs r1, #0x32 ldrsh r0, [r0, r1] ldr r1, _0804B5A4 @ =gUnk_03000BF0 ldrh r1, [r1, #8] subs r0, r0, r1 cmp r0, #0x40 ble _0804B59E ldr r0, _0804B5A8 @ =gUnk_080D6138 bl sub_0804ADDC _0804B59E: pop {pc} .align 2, 0 _0804B5A0: .4byte gUnk_03001160 _0804B5A4: .4byte gUnk_03000BF0 _0804B5A8: .4byte gUnk_080D6138 thumb_func_start sub_0804B5AC sub_0804B5AC: @ 0x0804B5AC push {lr} movs r0, #0x20 bl sub_080575C8 pop {pc} .align 2, 0 thumb_func_start sub_0804B5B8 sub_0804B5B8: @ 0x0804B5B8 movs r0, #1 bx lr thumb_func_start sub_0804B5BC sub_0804B5BC: @ 0x0804B5BC push {lr} ldr r0, _0804B5D0 @ =gUnk_030010A0 ldrh r0, [r0, #0x12] cmp r0, #0x40 bls _0804B5CC ldr r0, _0804B5D4 @ =gUnk_080D6210 bl sub_0804ADDC _0804B5CC: pop {pc} .align 2, 0 _0804B5D0: .4byte gUnk_030010A0 _0804B5D4: .4byte gUnk_080D6210 thumb_func_start sub_0804B5D8 sub_0804B5D8: @ 0x0804B5D8 movs r0, #1 bx lr thumb_func_start sub_0804B5DC sub_0804B5DC: @ 0x0804B5DC push {r4, r5, r6, lr} movs r0, #0x2c bl sub_0801E7F4 cmp r0, #0 beq _0804B5EE ldr r0, _0804B618 @ =gUnk_080D6340 bl sub_0804ADDC _0804B5EE: movs r6, #0 ldr r4, _0804B61C @ =gUnk_080D64F8 movs r5, #7 _0804B5F4: ldrh r0, [r4] adds r4, #2 bl sub_0807CA84 cmp r0, #0 beq _0804B602 adds r6, #1 _0804B602: subs r5, #1 cmp r5, #0 bge _0804B5F4 movs r0, #0x8b bl sub_0807CBD0 cmp r0, #0 beq _0804B648 ldr r4, _0804B620 @ =gUnk_080D6508 movs r5, #0 b _0804B628 .align 2, 0 _0804B618: .4byte gUnk_080D6340 _0804B61C: .4byte gUnk_080D64F8 _0804B620: .4byte gUnk_080D6508 _0804B624: adds r5, #1 adds r4, #2 _0804B628: cmp r5, r6 bge _0804B648 ldrh r0, [r4] bl sub_0807CBD0 cmp r0, #0 bne _0804B624 ldrh r0, [r4] bl sub_0807CCB4 movs r0, #0x8b bl sub_0807CD34 movs r0, #0x8c bl sub_0807CCB4 _0804B648: movs r0, #0x1f bl sub_0807CBD0 cmp r0, #0 beq _0804B658 ldr r0, _0804B6CC @ =gUnk_080D6360 bl sub_0804ADDC _0804B658: movs r0, #0x20 bl sub_0807CBD0 cmp r0, #0 beq _0804B668 ldr r0, _0804B6D0 @ =gUnk_080D6380 bl sub_0804ADDC _0804B668: movs r0, #0x21 bl sub_0807CBD0 cmp r0, #0 beq _0804B678 ldr r0, _0804B6D4 @ =gUnk_080D63A0 bl sub_0804ADDC _0804B678: movs r0, #0x22 bl sub_0807CBD0 cmp r0, #0 beq _0804B688 ldr r0, _0804B6D8 @ =gUnk_080D63C0 bl sub_0804ADDC _0804B688: movs r0, #0x23 bl sub_0807CBD0 cmp r0, #0 beq _0804B698 ldr r0, _0804B6DC @ =gUnk_080D63E0 bl sub_0804ADDC _0804B698: movs r0, #0x24 bl sub_0807CBD0 cmp r0, #0 beq _0804B6A8 ldr r0, _0804B6E0 @ =gUnk_080D6400 bl sub_0804ADDC _0804B6A8: movs r0, #0x25 bl sub_0807CBD0 cmp r0, #0 beq _0804B6B8 ldr r0, _0804B6E4 @ =gUnk_080D6420 bl sub_0804ADDC _0804B6B8: movs r0, #0x26 bl sub_0807CBD0 cmp r0, #0 beq _0804B6C8 ldr r0, _0804B6E8 @ =gUnk_080D6440 bl sub_0804ADDC _0804B6C8: pop {r4, r5, r6, pc} .align 2, 0 _0804B6CC: .4byte gUnk_080D6360 _0804B6D0: .4byte gUnk_080D6380 _0804B6D4: .4byte gUnk_080D63A0 _0804B6D8: .4byte gUnk_080D63C0 _0804B6DC: .4byte gUnk_080D63E0 _0804B6E0: .4byte gUnk_080D6400 _0804B6E4: .4byte gUnk_080D6420 _0804B6E8: .4byte gUnk_080D6440 thumb_func_start sub_0804B6EC sub_0804B6EC: @ 0x0804B6EC movs r0, #1 bx lr thumb_func_start sub_0804B6F0 sub_0804B6F0: @ 0x0804B6F0 push {lr} movs r0, #0x46 bl sub_0807CA84 cmp r0, #0 bne _0804B71C ldr r0, _0804B714 @ =gUnk_080D6578 bl sub_0804ADDC movs r0, #0x73 bl sub_0807CBD0 cmp r0, #0 bne _0804B722 ldr r0, _0804B718 @ =gUnk_080D6638 bl sub_0804ADDC b _0804B728 .align 2, 0 _0804B714: .4byte gUnk_080D6578 _0804B718: .4byte gUnk_080D6638 _0804B71C: ldr r0, _0804B72C @ =gUnk_080D6558 bl sub_0804ADDC _0804B722: ldr r0, _0804B730 @ =gUnk_080D6618 bl sub_0804ADDC _0804B728: pop {pc} .align 2, 0 _0804B72C: .4byte gUnk_080D6558 _0804B730: .4byte gUnk_080D6618 thumb_func_start sub_0804B734 sub_0804B734: @ 0x0804B734 movs r0, #1 bx lr thumb_func_start sub_0804B738 sub_0804B738: @ 0x0804B738 push {lr} ldr r0, _0804B770 @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #4 bls _0804B748 ldr r0, _0804B774 @ =gUnk_080D6714 bl sub_0804ADDC _0804B748: movs r0, #0x46 bl sub_0807CA84 cmp r0, #0 bne _0804B77C movs r0, #0x29 bl sub_0807CC30 cmp r0, #0 beq _0804B77C movs r0, #0x6a bl sub_0807CBD0 cmp r0, #0 beq _0804B77C ldr r0, _0804B778 @ =gUnk_080D6734 bl sub_0804ADDC b _0804B782 .align 2, 0 _0804B770: .4byte gUnk_02002A40 _0804B774: .4byte gUnk_080D6714 _0804B778: .4byte gUnk_080D6734 _0804B77C: ldr r0, _0804B784 @ =gUnk_080D66F4 bl sub_0804ADDC _0804B782: pop {pc} .align 2, 0 _0804B784: .4byte gUnk_080D66F4 thumb_func_start sub_0804B788 sub_0804B788: @ 0x0804B788 movs r0, #1 bx lr thumb_func_start sub_0804B78C sub_0804B78C: @ 0x0804B78C push {lr} ldr r0, _0804B7A0 @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #7 bls _0804B79C ldr r0, _0804B7A4 @ =gUnk_080D6924 bl sub_0804ADDC _0804B79C: pop {pc} .align 2, 0 _0804B7A0: .4byte gUnk_02002A40 _0804B7A4: .4byte gUnk_080D6924 thumb_func_start sub_0804B7A8 sub_0804B7A8: @ 0x0804B7A8 push {r4, lr} movs r0, #0x91 bl sub_0807CBD0 cmp r0, #0 beq _0804B7C8 bl sub_08000E50 movs r1, #3 bl __modsi3 adds r4, r0, #0 movs r0, #1 bl sub_0807CD34 b _0804B7D0 _0804B7C8: movs r4, #0 movs r0, #1 bl sub_0807CCB4 _0804B7D0: ldr r2, _0804B7E0 @ =gUnk_02034350 ldr r1, _0804B7E4 @ =gUnk_080D6A74 lsls r0, r4, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [r2, #0x78] movs r0, #1 pop {r4, pc} .align 2, 0 _0804B7E0: .4byte gUnk_02034350 _0804B7E4: .4byte gUnk_080D6A74 thumb_func_start sub_0804B7E8 sub_0804B7E8: @ 0x0804B7E8 push {lr} movs r0, #0x91 bl sub_0807CBD0 cmp r0, #0 beq _0804B81E movs r0, #0x91 bl sub_0807CD34 movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 bl sub_08050054 ldr r2, _0804B820 @ =gUnk_03001160 ldr r1, _0804B824 @ =gUnk_03000BF0 ldrh r0, [r1, #6] adds r0, #0x50 strh r0, [r2, #0x2e] ldrh r0, [r1, #8] adds r0, #0x38 strh r0, [r2, #0x32] ldr r2, _0804B828 @ =gUnk_08010A5C movs r0, #1 movs r1, #2 bl sub_080751E8 _0804B81E: pop {pc} .align 2, 0 _0804B820: .4byte gUnk_03001160 _0804B824: .4byte gUnk_03000BF0 _0804B828: .4byte gUnk_08010A5C thumb_func_start sub_0804B82C sub_0804B82C: @ 0x0804B82C push {r4, lr} movs r0, #0x91 bl sub_0807CBD0 cmp r0, #0 beq _0804B84A bl sub_08000E50 adds r4, r0, #0 movs r0, #1 ands r4, r0 movs r0, #2 bl sub_0807CD34 b _0804B852 _0804B84A: movs r4, #0 movs r0, #2 bl sub_0807CCB4 _0804B852: ldr r2, _0804B864 @ =gUnk_02034350 ldr r1, _0804B868 @ =gUnk_080D6B18 lsls r0, r4, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [r2, #0x78] movs r0, #1 pop {r4, pc} .align 2, 0 _0804B864: .4byte gUnk_02034350 _0804B868: .4byte gUnk_080D6B18 thumb_func_start sub_0804B86C sub_0804B86C: @ 0x0804B86C push {lr} movs r0, #0x91 bl sub_0807CBD0 cmp r0, #0 beq _0804B8A2 movs r0, #0x91 bl sub_0807CD34 movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 bl sub_08050054 ldr r2, _0804B8A4 @ =gUnk_03001160 ldr r1, _0804B8A8 @ =gUnk_03000BF0 ldrh r0, [r1, #6] adds r0, #0x50 strh r0, [r2, #0x2e] ldrh r0, [r1, #8] adds r0, #0x38 strh r0, [r2, #0x32] ldr r2, _0804B8AC @ =gUnk_08010A5C movs r0, #1 movs r1, #2 bl sub_080751E8 _0804B8A2: pop {pc} .align 2, 0 _0804B8A4: .4byte gUnk_03001160 _0804B8A8: .4byte gUnk_03000BF0 _0804B8AC: .4byte gUnk_08010A5C thumb_func_start sub_0804B8B0 sub_0804B8B0: @ 0x0804B8B0 push {r4, lr} movs r0, #0x91 bl sub_0807CBD0 cmp r0, #0 beq _0804B8D0 bl sub_08000E50 movs r1, #3 bl __modsi3 adds r4, r0, #0 movs r0, #3 bl sub_0807CD34 b _0804B8D8 _0804B8D0: movs r4, #0 movs r0, #3 bl sub_0807CCB4 _0804B8D8: ldr r2, _0804B8E8 @ =gUnk_02034350 ldr r1, _0804B8EC @ =gUnk_080D6BB8 lsls r0, r4, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [r2, #0x78] movs r0, #1 pop {r4, pc} .align 2, 0 _0804B8E8: .4byte gUnk_02034350 _0804B8EC: .4byte gUnk_080D6BB8 thumb_func_start sub_0804B8F0 sub_0804B8F0: @ 0x0804B8F0 push {lr} movs r0, #0x91 bl sub_0807CBD0 cmp r0, #0 beq _0804B926 movs r0, #0x91 bl sub_0807CD34 movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 bl sub_08050054 ldr r2, _0804B928 @ =gUnk_03001160 ldr r1, _0804B92C @ =gUnk_03000BF0 ldrh r0, [r1, #6] adds r0, #0x60 strh r0, [r2, #0x2e] ldrh r0, [r1, #8] adds r0, #0x38 strh r0, [r2, #0x32] ldr r2, _0804B930 @ =gUnk_08010A5C movs r0, #1 movs r1, #2 bl sub_080751E8 _0804B926: pop {pc} .align 2, 0 _0804B928: .4byte gUnk_03001160 _0804B92C: .4byte gUnk_03000BF0 _0804B930: .4byte gUnk_08010A5C thumb_func_start sub_0804B934 sub_0804B934: @ 0x0804B934 movs r0, #1 bx lr thumb_func_start sub_0804B938 sub_0804B938: @ 0x0804B938 push {lr} ldr r0, _0804B968 @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #3 bls _0804B9F2 movs r0, #0x2b bl sub_0807CC30 cmp r0, #0 beq _0804B970 movs r0, #0x2f bl sub_0807CC30 cmp r0, #0 bne _0804B984 movs r0, #0x30 bl sub_0807CC30 cmp r0, #0 bne _0804B9BC ldr r0, _0804B96C @ =gUnk_080D6C64 bl sub_0804ADDC b _0804B9F2 .align 2, 0 _0804B968: .4byte gUnk_02002A40 _0804B96C: .4byte gUnk_080D6C64 _0804B970: movs r0, #0x2c bl sub_0807CC30 cmp r0, #0 beq _0804B9A8 movs r0, #0x2e bl sub_0807CC30 cmp r0, #0 beq _0804B990 _0804B984: ldr r0, _0804B98C @ =gUnk_080D6D04 bl sub_0804ADDC b _0804B9F2 .align 2, 0 _0804B98C: .4byte gUnk_080D6D04 _0804B990: movs r0, #0x30 bl sub_0807CC30 cmp r0, #0 bne _0804B9D2 ldr r0, _0804B9A4 @ =gUnk_080D6C94 bl sub_0804ADDC b _0804B9F2 .align 2, 0 _0804B9A4: .4byte gUnk_080D6C94 _0804B9A8: movs r0, #0x2d bl sub_0807CC30 cmp r0, #0 beq _0804B9EC movs r0, #0x2e bl sub_0807CC30 cmp r0, #0 beq _0804B9C8 _0804B9BC: ldr r0, _0804B9C4 @ =gUnk_080D6CE4 bl sub_0804ADDC b _0804B9F2 .align 2, 0 _0804B9C4: .4byte gUnk_080D6CE4 _0804B9C8: movs r0, #0x2f bl sub_0807CC30 cmp r0, #0 beq _0804B9E0 _0804B9D2: ldr r0, _0804B9DC @ =gUnk_080D6CC4 bl sub_0804ADDC b _0804B9F2 .align 2, 0 _0804B9DC: .4byte gUnk_080D6CC4 _0804B9E0: ldr r0, _0804B9E8 @ =gUnk_080D6C34 bl sub_0804ADDC b _0804B9F2 .align 2, 0 _0804B9E8: .4byte gUnk_080D6C34 _0804B9EC: ldr r0, _0804B9F4 @ =gUnk_080D6BF4 bl sub_0804ADDC _0804B9F2: pop {pc} .align 2, 0 _0804B9F4: .4byte gUnk_080D6BF4 thumb_func_start sub_0804B9F8 sub_0804B9F8: @ 0x0804B9F8 movs r0, #1 bx lr thumb_func_start nullsub_176 nullsub_176: @ 0x0804B9FC bx lr .align 2, 0 thumb_func_start sub_0804BA00 sub_0804BA00: @ 0x0804BA00 movs r0, #1 bx lr thumb_func_start nullsub_177 nullsub_177: @ 0x0804BA04 bx lr .align 2, 0 thumb_func_start sub_0804BA08 sub_0804BA08: @ 0x0804BA08 movs r0, #1 bx lr thumb_func_start sub_0804BA0C sub_0804BA0C: @ 0x0804BA0C push {lr} ldr r0, _0804BA34 @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #7 bhi _0804BA1C ldr r0, _0804BA38 @ =gUnk_080D7038 bl sub_0804ADDC _0804BA1C: ldr r0, _0804BA3C @ =gUnk_02034350 ldrb r0, [r0] cmp r0, #0 bne _0804BA32 movs r2, #0xb2 lsls r2, r2, #2 movs r0, #2 movs r1, #0 movs r3, #0xa8 bl sub_08052CA4 _0804BA32: pop {pc} .align 2, 0 _0804BA34: .4byte gUnk_02002A40 _0804BA38: .4byte gUnk_080D7038 _0804BA3C: .4byte gUnk_02034350 thumb_func_start sub_0804BA40 sub_0804BA40: @ 0x0804BA40 movs r0, #1 bx lr thumb_func_start sub_0804BA44 sub_0804BA44: @ 0x0804BA44 push {r4, lr} ldr r4, _0804BA7C @ =gUnk_02002A40 ldrb r0, [r4, #8] cmp r0, #6 bne _0804BA54 ldr r0, _0804BA80 @ =gUnk_080D7140 bl sub_0804ADDC _0804BA54: ldrb r0, [r4, #8] cmp r0, #7 bne _0804BA60 ldr r0, _0804BA84 @ =gUnk_080D7170 bl sub_0804ADDC _0804BA60: ldrb r0, [r4, #8] cmp r0, #7 bls _0804BA72 ldr r0, _0804BA88 @ =gUnk_080D71A0 bl sub_0804ADDC ldrb r0, [r4, #8] cmp r0, #7 bhi _0804BA90 _0804BA72: ldr r0, _0804BA8C @ =gUnk_080D71D0 bl sub_0804ADDC b _0804BA96 .align 2, 0 _0804BA7C: .4byte gUnk_02002A40 _0804BA80: .4byte gUnk_080D7140 _0804BA84: .4byte gUnk_080D7170 _0804BA88: .4byte gUnk_080D71A0 _0804BA8C: .4byte gUnk_080D71D0 _0804BA90: ldr r0, _0804BA98 @ =gUnk_080D71F0 bl sub_0804ADDC _0804BA96: pop {r4, pc} .align 2, 0 _0804BA98: .4byte gUnk_080D71F0 thumb_func_start sub_0804BA9C sub_0804BA9C: @ 0x0804BA9C push {lr} movs r0, #0x51 bl sub_0807CC30 cmp r0, #0 beq _0804BAB2 ldr r0, _0804BAB8 @ =gUnk_02034350 ldr r1, _0804BABC @ =gUnk_080D7348 str r1, [r0, #0x6c] movs r1, #0 str r1, [r0, #0x74] _0804BAB2: movs r0, #1 pop {pc} .align 2, 0 _0804BAB8: .4byte gUnk_02034350 _0804BABC: .4byte gUnk_080D7348 thumb_func_start sub_0804BAC0 sub_0804BAC0: @ 0x0804BAC0 push {lr} movs r0, #3 bl sub_0807CC30 cmp r0, #0 bne _0804BAD2 ldr r0, _0804BAE8 @ =gUnk_080D7328 bl sub_0804ADDC _0804BAD2: movs r0, #0x64 bl sub_0807CC30 cmp r0, #0 beq _0804BAF4 ldr r0, _0804BAEC @ =gUnk_02033A90 ldr r1, _0804BAF0 @ =0x00000864 adds r0, r0, r1 movs r1, #0x1b str r1, [r0] b _0804BB0C .align 2, 0 _0804BAE8: .4byte gUnk_080D7328 _0804BAEC: .4byte gUnk_02033A90 _0804BAF0: .4byte 0x00000864 _0804BAF4: movs r0, #0x51 bl sub_0807CC30 cmp r0, #0 beq _0804BB0C ldr r0, _0804BB10 @ =gUnk_02033A90 ldr r2, _0804BB14 @ =0x00000864 adds r1, r0, r2 subs r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] _0804BB0C: pop {pc} .align 2, 0 _0804BB10: .4byte gUnk_02033A90 _0804BB14: .4byte 0x00000864 thumb_func_start sub_0804BB18 sub_0804BB18: @ 0x0804BB18 push {lr} movs r0, #0x51 bl sub_0807CC30 cmp r0, #0 beq _0804BB2E ldr r0, _0804BB34 @ =gUnk_02034350 ldr r1, _0804BB38 @ =gUnk_080D7410 str r1, [r0, #0x6c] movs r1, #0 str r1, [r0, #0x74] _0804BB2E: movs r0, #1 pop {pc} .align 2, 0 _0804BB34: .4byte gUnk_02034350 _0804BB38: .4byte gUnk_080D7410 thumb_func_start sub_0804BB3C sub_0804BB3C: @ 0x0804BB3C push {lr} movs r0, #0x51 bl sub_0807CC30 cmp r0, #0 bne _0804BB7C movs r0, #3 bl sub_0807CC30 cmp r0, #0 bne _0804BB58 ldr r0, _0804BB8C @ =gUnk_080D73B0 bl sub_0804ADDC _0804BB58: movs r0, #2 bl sub_0807CC30 cmp r0, #0 bne _0804BB72 movs r0, #0x15 bl sub_0807CC30 cmp r0, #0 beq _0804BB72 ldr r0, _0804BB90 @ =gUnk_080D73E0 bl sub_0804ADDC _0804BB72: movs r0, #0x64 bl sub_0807CC30 cmp r0, #0 beq _0804BB8A _0804BB7C: ldr r0, _0804BB94 @ =gUnk_02033A90 ldr r2, _0804BB98 @ =0x00000864 adds r1, r0, r2 subs r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] _0804BB8A: pop {pc} .align 2, 0 _0804BB8C: .4byte gUnk_080D73B0 _0804BB90: .4byte gUnk_080D73E0 _0804BB94: .4byte gUnk_02033A90 _0804BB98: .4byte 0x00000864 thumb_func_start sub_0804BB9C sub_0804BB9C: @ 0x0804BB9C movs r0, #1 bx lr thumb_func_start sub_0804BBA0 sub_0804BBA0: @ 0x0804BBA0 push {lr} movs r0, #0x64 bl sub_0807CC30 cmp r0, #0 beq _0804BBBA ldr r0, _0804BBDC @ =gUnk_02033A90 ldr r2, _0804BBE0 @ =0x00000864 adds r1, r0, r2 subs r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] _0804BBBA: movs r0, #0x51 bl sub_0807CC30 cmp r0, #0 beq _0804BBE8 ldr r0, _0804BBE4 @ =gUnk_080D7618 bl sub_0804ADDC ldr r0, _0804BBDC @ =gUnk_02033A90 ldr r2, _0804BBE0 @ =0x00000864 adds r1, r0, r2 subs r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] b _0804BC2E .align 2, 0 _0804BBDC: .4byte gUnk_02033A90 _0804BBE0: .4byte 0x00000864 _0804BBE4: .4byte gUnk_080D7618 _0804BBE8: movs r0, #0x15 bl sub_0807CC30 cmp r0, #0 bne _0804BC10 ldr r0, _0804BC04 @ =gUnk_080D74C8 bl sub_0804ADDC ldr r0, _0804BC08 @ =gUnk_02033A90 ldr r1, _0804BC0C @ =0x00000864 adds r0, r0, r1 movs r1, #0x1b str r1, [r0] b _0804BC2E .align 2, 0 _0804BC04: .4byte gUnk_080D74C8 _0804BC08: .4byte gUnk_02033A90 _0804BC0C: .4byte 0x00000864 _0804BC10: movs r0, #2 bl sub_0807CC30 cmp r0, #0 bne _0804BC28 ldr r0, _0804BC24 @ =gUnk_080D7588 bl sub_0804ADDC b _0804BC2E .align 2, 0 _0804BC24: .4byte gUnk_080D7588 _0804BC28: ldr r0, _0804BC30 @ =gUnk_080D75D8 bl sub_0804ADDC _0804BC2E: pop {pc} .align 2, 0 _0804BC30: .4byte gUnk_080D75D8 thumb_func_start sub_0804BC34 sub_0804BC34: @ 0x0804BC34 movs r0, #1 bx lr thumb_func_start sub_0804BC38 sub_0804BC38: @ 0x0804BC38 push {lr} movs r0, #0x9c bl sub_0807CBD0 cmp r0, #0 beq _0804BC4A ldr r0, _0804BC4C @ =gUnk_080D7690 bl sub_0804ADDC _0804BC4A: pop {pc} .align 2, 0 _0804BC4C: .4byte gUnk_080D7690 thumb_func_start sub_0804BC50 sub_0804BC50: @ 0x0804BC50 push {lr} movs r0, #0x9f bl sub_0807CBD0 cmp r0, #0 bne _0804BC68 ldr r1, _0804BC6C @ =gUnk_030010A0 movs r0, #5 strb r0, [r1, #0xf] movs r0, #0x1c bl sub_0807CD80 _0804BC68: movs r0, #1 pop {pc} .align 2, 0 _0804BC6C: .4byte gUnk_030010A0 thumb_func_start sub_0804BC70 sub_0804BC70: @ 0x0804BC70 push {lr} movs r0, #0x9f bl sub_0807CBD0 cmp r0, #0 bne _0804BCA0 movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 bl sub_08050054 ldr r2, _0804BCB0 @ =gUnk_03001160 ldr r1, _0804BCB4 @ =gUnk_03000BF0 ldrh r0, [r1, #6] adds r0, #0xb0 strh r0, [r2, #0x2e] ldrh r0, [r1, #8] adds r0, #0x40 strh r0, [r2, #0x32] ldr r2, _0804BCB8 @ =gUnk_08009E88 movs r0, #0 movs r1, #6 bl sub_080751E8 _0804BCA0: movs r0, #0x15 bl sub_0807CC30 cmp r0, #0 bne _0804BCBC bl sub_08052878 b _0804BCD0 .align 2, 0 _0804BCB0: .4byte gUnk_03001160 _0804BCB4: .4byte gUnk_03000BF0 _0804BCB8: .4byte gUnk_08009E88 _0804BCBC: movs r0, #0x64 bl sub_0807CC30 cmp r0, #0 beq _0804BCD0 ldr r0, _0804BCD4 @ =gUnk_02033A90 ldr r1, _0804BCD8 @ =0x00000864 adds r0, r0, r1 movs r1, #0x1b str r1, [r0] _0804BCD0: pop {pc} .align 2, 0 _0804BCD4: .4byte gUnk_02033A90 _0804BCD8: .4byte 0x00000864 thumb_func_start sub_0804BCDC sub_0804BCDC: @ 0x0804BCDC push {lr} ldr r0, _0804BCE8 @ =gUnk_0813AB80 movs r1, #4 bl sub_0808091C pop {pc} .align 2, 0 _0804BCE8: .4byte gUnk_0813AB80 thumb_func_start sub_0804BCEC sub_0804BCEC: @ 0x0804BCEC movs r0, #1 bx lr thumb_func_start nullsub_178 nullsub_178: @ 0x0804BCF0 bx lr .align 2, 0 thumb_func_start sub_0804BCF4 sub_0804BCF4: @ 0x0804BCF4 movs r0, #1 bx lr thumb_func_start nullsub_179 nullsub_179: @ 0x0804BCF8 bx lr .align 2, 0 thumb_func_start sub_0804BCFC sub_0804BCFC: @ 0x0804BCFC movs r0, #1 bx lr thumb_func_start nullsub_180 nullsub_180: @ 0x0804BD00 bx lr .align 2, 0 thumb_func_start sub_0804BD04 sub_0804BD04: @ 0x0804BD04 movs r0, #1 bx lr thumb_func_start nullsub_181 nullsub_181: @ 0x0804BD08 bx lr .align 2, 0 thumb_func_start sub_0804BD0C sub_0804BD0C: @ 0x0804BD0C movs r0, #1 bx lr thumb_func_start nullsub_182 nullsub_182: @ 0x0804BD10 bx lr .align 2, 0 thumb_func_start sub_0804BD14 sub_0804BD14: @ 0x0804BD14 movs r0, #1 bx lr thumb_func_start nullsub_183 nullsub_183: @ 0x0804BD18 bx lr .align 2, 0 thumb_func_start sub_0804BD1C sub_0804BD1C: @ 0x0804BD1C movs r0, #1 bx lr thumb_func_start nullsub_184 nullsub_184: @ 0x0804BD20 bx lr .align 2, 0 thumb_func_start sub_0804BD24 sub_0804BD24: @ 0x0804BD24 movs r0, #1 bx lr thumb_func_start nullsub_185 nullsub_185: @ 0x0804BD28 bx lr .align 2, 0 thumb_func_start sub_0804BD2C sub_0804BD2C: @ 0x0804BD2C movs r0, #1 bx lr thumb_func_start nullsub_186 nullsub_186: @ 0x0804BD30 bx lr .align 2, 0 thumb_func_start sub_0804BD34 sub_0804BD34: @ 0x0804BD34 movs r0, #1 bx lr thumb_func_start nullsub_187 nullsub_187: @ 0x0804BD38 bx lr .align 2, 0 thumb_func_start sub_0804BD3C sub_0804BD3C: @ 0x0804BD3C movs r0, #1 bx lr thumb_func_start nullsub_188 nullsub_188: @ 0x0804BD40 bx lr .align 2, 0 thumb_func_start sub_0804BD44 sub_0804BD44: @ 0x0804BD44 movs r0, #1 bx lr thumb_func_start nullsub_189 nullsub_189: @ 0x0804BD48 bx lr .align 2, 0 thumb_func_start sub_0804BD4C sub_0804BD4C: @ 0x0804BD4C movs r0, #1 bx lr thumb_func_start sub_0804BD50 sub_0804BD50: @ 0x0804BD50 push {r4, lr} movs r0, #6 bl sub_0807CA84 cmp r0, #0 beq _0804BD94 ldr r4, _0804BD98 @ =0x00004072 ldr r1, _0804BD9C @ =0x0000014D adds r0, r4, #0 movs r2, #1 bl sub_0800015E movs r1, #0x86 lsls r1, r1, #1 adds r0, r4, #0 movs r2, #1 bl sub_0800015E adds r4, #0x1e movs r1, #0xa6 lsls r1, r1, #1 adds r0, r4, #0 movs r2, #1 bl sub_0800015E movs r1, #0xc6 lsls r1, r1, #1 adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r0, _0804BDA0 @ =gUnk_080D7D34 bl sub_0804ADDC _0804BD94: pop {r4, pc} .align 2, 0 _0804BD98: .4byte 0x00004072 _0804BD9C: .4byte 0x0000014D _0804BDA0: .4byte gUnk_080D7D34 thumb_func_start sub_0804BDA4 sub_0804BDA4: @ 0x0804BDA4 movs r0, #1 bx lr thumb_func_start nullsub_190 nullsub_190: @ 0x0804BDA8 bx lr .align 2, 0 thumb_func_start sub_0804BDAC sub_0804BDAC: @ 0x0804BDAC movs r0, #1 bx lr thumb_func_start nullsub_191 nullsub_191: @ 0x0804BDB0 bx lr .align 2, 0 thumb_func_start sub_0804BDB4 sub_0804BDB4: @ 0x0804BDB4 movs r0, #1 bx lr thumb_func_start nullsub_192 nullsub_192: @ 0x0804BDB8 bx lr .align 2, 0 thumb_func_start sub_0804BDBC sub_0804BDBC: @ 0x0804BDBC movs r0, #1 bx lr thumb_func_start nullsub_193 nullsub_193: @ 0x0804BDC0 bx lr .align 2, 0 thumb_func_start sub_0804BDC4 sub_0804BDC4: @ 0x0804BDC4 movs r0, #1 bx lr thumb_func_start nullsub_194 nullsub_194: @ 0x0804BDC8 bx lr .align 2, 0 thumb_func_start sub_0804BDCC sub_0804BDCC: @ 0x0804BDCC movs r0, #1 bx lr thumb_func_start sub_0804BDD0 sub_0804BDD0: @ 0x0804BDD0 push {lr} movs r0, #3 bl sub_0807CBD0 cmp r0, #0 bne _0804BDE8 ldr r0, _0804BDE4 @ =gUnk_080D827C bl sub_0804ADDC b _0804BE00 .align 2, 0 _0804BDE4: .4byte gUnk_080D827C _0804BDE8: bl sub_0805BC4C movs r0, #0x76 movs r1, #0x82 movs r2, #2 bl sub_0807B314 movs r0, #0x76 movs r1, #0x8c movs r2, #2 bl sub_0807B314 _0804BE00: pop {pc} .align 2, 0 thumb_func_start sub_0804BE04 sub_0804BE04: @ 0x0804BE04 movs r0, #1 bx lr thumb_func_start nullsub_28 nullsub_28: @ 0x0804BE08 bx lr .align 2, 0 thumb_func_start sub_0804BE0C sub_0804BE0C: @ 0x0804BE0C movs r0, #1 bx lr thumb_func_start nullsub_29 nullsub_29: @ 0x0804BE10 bx lr .align 2, 0 thumb_func_start sub_0804BE14 sub_0804BE14: @ 0x0804BE14 movs r0, #1 bx lr thumb_func_start nullsub_30 nullsub_30: @ 0x0804BE18 bx lr .align 2, 0 thumb_func_start sub_0804BE1C sub_0804BE1C: @ 0x0804BE1C movs r0, #1 bx lr thumb_func_start nullsub_31 nullsub_31: @ 0x0804BE20 bx lr .align 2, 0 thumb_func_start sub_0804BE24 sub_0804BE24: @ 0x0804BE24 movs r0, #1 bx lr thumb_func_start nullsub_32 nullsub_32: @ 0x0804BE28 bx lr .align 2, 0 thumb_func_start sub_0804BE2C sub_0804BE2C: @ 0x0804BE2C movs r0, #1 bx lr thumb_func_start nullsub_33 nullsub_33: @ 0x0804BE30 bx lr .align 2, 0 thumb_func_start sub_0804BE34 sub_0804BE34: @ 0x0804BE34 movs r0, #1 bx lr thumb_func_start nullsub_34 nullsub_34: @ 0x0804BE38 bx lr .align 2, 0 thumb_func_start sub_0804BE3C sub_0804BE3C: @ 0x0804BE3C movs r0, #1 bx lr thumb_func_start nullsub_35 nullsub_35: @ 0x0804BE40 bx lr .align 2, 0 thumb_func_start sub_0804BE44 sub_0804BE44: @ 0x0804BE44 movs r0, #1 bx lr thumb_func_start nullsub_36 nullsub_36: @ 0x0804BE48 bx lr .align 2, 0 thumb_func_start sub_0804BE4C sub_0804BE4C: @ 0x0804BE4C movs r0, #1 bx lr thumb_func_start sub_0804BE50 sub_0804BE50: @ 0x0804BE50 push {lr} movs r0, #0x68 bl sub_0807CBD0 cmp r0, #0 bne _0804BE62 movs r0, #0x68 bl sub_0807CCB4 _0804BE62: movs r0, #0x2f bl sub_0801E7F4 cmp r0, #0 beq _0804BE78 ldr r0, _0804BE74 @ =gUnk_080D8B24 bl sub_0804ADDC b _0804BEDE .align 2, 0 _0804BE74: .4byte gUnk_080D8B24 _0804BE78: movs r0, #0x2b bl sub_0801E7F4 cmp r0, #0 beq _0804BE90 ldr r0, _0804BE8C @ =gUnk_080D8AC4 bl sub_0804ADDC b _0804BEDE .align 2, 0 _0804BE8C: .4byte gUnk_080D8AC4 _0804BE90: movs r0, #0x26 bl sub_0801E7F4 cmp r0, #0 beq _0804BEA8 ldr r0, _0804BEA4 @ =gUnk_080D8A74 bl sub_0804ADDC b _0804BEDE .align 2, 0 _0804BEA4: .4byte gUnk_080D8A74 _0804BEA8: movs r0, #0x2a bl sub_0801E7F4 cmp r0, #0 beq _0804BEC0 ldr r0, _0804BEBC @ =gUnk_080D8A34 bl sub_0804ADDC b _0804BEDE .align 2, 0 _0804BEBC: .4byte gUnk_080D8A34 _0804BEC0: movs r0, #0x25 bl sub_0801E7F4 cmp r0, #0 beq _0804BED8 ldr r0, _0804BED4 @ =gUnk_080D8A04 bl sub_0804ADDC b _0804BEDE .align 2, 0 _0804BED4: .4byte gUnk_080D8A04 _0804BED8: ldr r0, _0804BF1C @ =gUnk_080D89E4 bl sub_0804ADDC _0804BEDE: movs r0, #0x25 bl sub_0801E7F4 cmp r0, #0 beq _0804BEF2 ldr r0, _0804BF20 @ =gUnk_080D8BBC ldr r1, _0804BF24 @ =0x000007C5 movs r2, #1 bl sub_0807BB68 _0804BEF2: movs r0, #0x26 bl sub_0801E7F4 cmp r0, #0 beq _0804BF06 ldr r0, _0804BF28 @ =gUnk_080D8BFA ldr r1, _0804BF2C @ =0x00000503 movs r2, #1 bl sub_0807BB68 _0804BF06: movs r0, #0x2f bl sub_0801E7F4 cmp r0, #0 beq _0804BF1A ldr r0, _0804BF30 @ =gUnk_080D8C68 ldr r1, _0804BF34 @ =0x00000281 movs r2, #1 bl sub_0807BB68 _0804BF1A: pop {pc} .align 2, 0 _0804BF1C: .4byte gUnk_080D89E4 _0804BF20: .4byte gUnk_080D8BBC _0804BF24: .4byte 0x000007C5 _0804BF28: .4byte gUnk_080D8BFA _0804BF2C: .4byte 0x00000503 _0804BF30: .4byte gUnk_080D8C68 _0804BF34: .4byte 0x00000281 thumb_func_start sub_0804BF38 sub_0804BF38: @ 0x0804BF38 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, [r1, #4] lsls r0, r0, #4 ldr r1, _0804C000 @ =gUnk_080D8E50 adds r4, r0, r1 ldr r0, [r4] ldrh r1, [r4, #4] lsrs r1, r1, #4 movs r3, #0x3f ands r1, r3 ldrh r2, [r4, #6] lsrs r2, r2, #4 ands r2, r3 lsls r2, r2, #6 orrs r1, r2 movs r2, #1 bl sub_0807BB68 ldrh r0, [r4, #8] mov r8, r0 movs r5, #0 cmp r5, r8 bhs _0804BFE8 ldr r7, _0804C004 @ =gUnk_03000BF0 movs r1, #0 mov sl, r1 movs r6, #0 movs r3, #1 mov sb, r3 _0804BF7A: movs r0, #0xf movs r1, #0xf movs r2, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _0804BFA6 ldrh r0, [r7, #6] ldrh r1, [r4, #4] adds r0, r0, r1 adds r0, r0, r6 strh r0, [r2, #0x2e] ldrh r1, [r7, #8] ldrh r3, [r4, #6] adds r1, r1, r3 adds r0, r5, #0 mov r3, sb ands r0, r3 lsls r0, r0, #3 adds r1, r1, r0 strh r1, [r2, #0x32] _0804BFA6: movs r0, #0xf movs r1, #0x54 movs r2, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _0804BFE0 ldrh r0, [r7, #6] ldrh r1, [r4, #4] adds r0, r0, r1 adds r0, r0, r6 strh r0, [r2, #0x2e] ldrh r1, [r7, #8] ldrh r3, [r4, #6] adds r1, r1, r3 ldr r0, _0804C008 @ =0x0000FFF4 adds r1, r1, r0 adds r0, r5, #0 mov r3, sb ands r0, r3 lsls r0, r0, #3 adds r1, r1, r0 strh r1, [r2, #0x32] mov r0, sl strb r0, [r2, #0x15] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r2, #0x24] _0804BFE0: adds r6, #0x10 adds r5, #1 cmp r5, r8 blo _0804BF7A _0804BFE8: ldrh r0, [r4, #0xa] ldrh r1, [r4, #0xc] bl sub_08080964 ldrh r0, [r4, #0xe] bl sub_080A3268 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _0804C000: .4byte gUnk_080D8E50 _0804C004: .4byte gUnk_03000BF0 _0804C008: .4byte 0x0000FFF4 thumb_func_start sub_0804C00C sub_0804C00C: @ 0x0804C00C movs r0, #1 bx lr thumb_func_start nullsub_195 nullsub_195: @ 0x0804C010 bx lr .align 2, 0 thumb_func_start sub_0804C014 sub_0804C014: @ 0x0804C014 movs r0, #1 bx lr thumb_func_start sub_0804C018 sub_0804C018: @ 0x0804C018 push {r4, lr} movs r0, #0x20 bl sub_0807CC30 cmp r0, #0 bne _0804C044 movs r0, #0x3c bl sub_0807CA84 cmp r0, #1 bne _0804C054 ldr r0, _0804C03C @ =gUnk_080D90C8 bl sub_0804ADDC ldr r0, _0804C040 @ =gUnk_080D9108 bl sub_0804ADDC b _0804C054 .align 2, 0 _0804C03C: .4byte gUnk_080D90C8 _0804C040: .4byte gUnk_080D9108 _0804C044: movs r0, #0x21 bl sub_0807CC30 cmp r0, #0 bne _0804C054 ldr r0, _0804C0D0 @ =gUnk_080D9108 bl sub_0804ADDC _0804C054: movs r0, #0x3c bl sub_0807CA84 cmp r0, #2 beq _0804C090 ldr r0, _0804C0D4 @ =gUnk_080D9098 bl sub_0804ADDC movs r0, #0xbd lsls r0, r0, #1 ldr r1, _0804C0D8 @ =0x0000058E movs r2, #1 bl sub_0807B314 ldr r0, _0804C0DC @ =0x0000017B ldr r1, _0804C0E0 @ =0x0000058F movs r2, #1 bl sub_0807B314 movs r0, #0xbe lsls r0, r0, #1 ldr r1, _0804C0E4 @ =0x000005CE movs r2, #1 bl sub_0807B314 ldr r0, _0804C0E8 @ =0x0000017D ldr r1, _0804C0EC @ =0x000005CF movs r2, #1 bl sub_0807B314 _0804C090: bl sub_08054570 bl sub_08059278 ldr r4, _0804C0F0 @ =0x00004072 ldr r1, _0804C0F4 @ =0x00000A47 adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _0804C0F8 @ =0x00000C47 adds r0, r4, #0 movs r2, #1 bl sub_0800015E movs r0, #0x62 bl sub_0807CC30 cmp r0, #0 beq _0804C0C8 ldr r0, _0804C0FC @ =gUnk_030010A0 ldr r1, [r0, #0x10] ldr r0, _0804C100 @ =0x02780078 cmp r1, r0 bne _0804C0C8 movs r0, #0x72 bl sub_080A3268 _0804C0C8: movs r0, #0x62 bl sub_0807CD80 pop {r4, pc} .align 2, 0 _0804C0D0: .4byte gUnk_080D9108 _0804C0D4: .4byte gUnk_080D9098 _0804C0D8: .4byte 0x0000058E _0804C0DC: .4byte 0x0000017B _0804C0E0: .4byte 0x0000058F _0804C0E4: .4byte 0x000005CE _0804C0E8: .4byte 0x0000017D _0804C0EC: .4byte 0x000005CF _0804C0F0: .4byte 0x00004072 _0804C0F4: .4byte 0x00000A47 _0804C0F8: .4byte 0x00000C47 _0804C0FC: .4byte gUnk_030010A0 _0804C100: .4byte 0x02780078 thumb_func_start sub_0804C104 sub_0804C104: @ 0x0804C104 movs r0, #1 bx lr thumb_func_start sub_0804C108 sub_0804C108: @ 0x0804C108 push {lr} ldr r2, _0804C124 @ =gUnk_02033A90 ldrb r1, [r2] movs r0, #0x40 orrs r0, r1 strb r0, [r2] ldrb r0, [r2, #0xd] movs r1, #1 orrs r0, r1 strb r0, [r2, #0xd] bl sub_0804C128 pop {pc} .align 2, 0 _0804C124: .4byte gUnk_02033A90 thumb_func_start sub_0804C128 sub_0804C128: @ 0x0804C128 push {r4, r5, lr} movs r0, #0 bl sub_080AF250 ldr r0, _0804C15C @ =gUnk_02034350 ldrb r0, [r0] cmp r0, #0 bne _0804C13A b _0804C24C _0804C13A: ldr r1, _0804C160 @ =gUnk_02033A90 ldrb r3, [r1, #0xd] movs r0, #0xe ands r0, r3 adds r5, r1, #0 cmp r0, #0 bne _0804C164 movs r0, #0xf0 ands r0, r3 cmp r0, #0 bne _0804C19C movs r0, #0xf rsbs r0, r0, #0 ands r0, r3 movs r1, #2 orrs r0, r1 b _0804C19A .align 2, 0 _0804C15C: .4byte gUnk_02034350 _0804C160: .4byte gUnk_02033A90 _0804C164: ldr r2, _0804C18C @ =gUnk_03000BF0 ldr r1, _0804C190 @ =gUnk_080D9338 lsls r4, r3, #0x1c lsrs r0, r4, #0x1d adds r0, r0, r1 ldrb r1, [r2, #0x10] ldrb r0, [r0] cmp r1, r0 bne _0804C194 lsrs r0, r4, #0x1d adds r0, #1 movs r1, #7 ands r0, r1 lsls r0, r0, #1 movs r1, #0xf rsbs r1, r1, #0 ands r1, r3 orrs r1, r0 strb r1, [r5, #0xd] b _0804C19C .align 2, 0 _0804C18C: .4byte gUnk_03000BF0 _0804C190: .4byte gUnk_080D9338 _0804C194: movs r0, #0xf rsbs r0, r0, #0 ands r0, r3 _0804C19A: strb r0, [r5, #0xd] _0804C19C: ldrb r3, [r5, #0xd] movs r0, #0xe ands r0, r3 cmp r0, #0 bne _0804C1DE ldr r2, _0804C1D0 @ =gUnk_03000BF0 ldr r1, _0804C1D4 @ =gUnk_080D9340 lsls r4, r3, #0x18 lsrs r0, r4, #0x1c adds r0, r0, r1 ldrb r1, [r2, #0x10] ldrb r0, [r0] cmp r1, r0 bne _0804C1D8 lsrs r0, r4, #0x1c adds r0, #1 lsls r0, r0, #4 movs r1, #0xf ands r1, r3 orrs r1, r0 movs r0, #0xf rsbs r0, r0, #0 ands r1, r0 strb r1, [r5, #0xd] b _0804C1DE .align 2, 0 _0804C1D0: .4byte gUnk_03000BF0 _0804C1D4: .4byte gUnk_080D9340 _0804C1D8: movs r0, #0xf ands r0, r3 strb r0, [r5, #0xd] _0804C1DE: adds r4, r5, #0 ldrb r1, [r4, #0xd] movs r0, #0xe ands r0, r1 cmp r0, #0xc bne _0804C206 movs r0, #1 bl sub_080AF250 movs r0, #0x62 bl sub_0807CD04 bl sub_0804C290 ldrb r1, [r4, #0xd] movs r0, #0xf rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0xd] b _0804C254 _0804C206: movs r0, #0xf0 ands r0, r1 cmp r0, #0x60 bne _0804C250 movs r0, #1 bl sub_080AF250 movs r0, #0x5c bl sub_0807CBD0 cmp r0, #0 bne _0804C228 ldr r1, _0804C244 @ =0x00000107 movs r0, #0x73 movs r2, #1 bl sub_0807B314 _0804C228: ldr r0, _0804C248 @ =gUnk_080D9328 bl sub_0804B1AC movs r0, #0x62 bl sub_0807CD04 bl sub_0804C290 ldrb r1, [r5, #0xd] movs r0, #0xf ands r0, r1 strb r0, [r5, #0xd] b _0804C254 .align 2, 0 _0804C244: .4byte 0x00000107 _0804C248: .4byte gUnk_080D9328 _0804C24C: bl sub_0804C258 _0804C250: bl sub_0804C290 _0804C254: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0804C258 sub_0804C258: @ 0x0804C258 push {lr} ldr r3, _0804C288 @ =gUnk_02033A90 ldrb r0, [r3, #0xd] movs r2, #0xf rsbs r2, r2, #0 ands r2, r0 movs r0, #2 orrs r2, r0 movs r0, #0xf ands r2, r0 strb r2, [r3, #0xd] ldr r0, _0804C28C @ =gUnk_030010A0 ldrb r0, [r0, #0xe] cmp r0, #4 bne _0804C284 movs r1, #0xe adds r0, r2, #0 orrs r0, r1 strb r0, [r3, #0xd] movs r0, #1 bl sub_080AF250 _0804C284: pop {pc} .align 2, 0 _0804C288: .4byte gUnk_02033A90 _0804C28C: .4byte gUnk_030010A0 thumb_func_start sub_0804C290 sub_0804C290: @ 0x0804C290 push {lr} ldr r0, _0804C2B4 @ =gUnk_02033A90 ldrb r1, [r0, #0xd] movs r0, #0xe ands r0, r1 cmp r0, #0 beq _0804C2B2 lsls r1, r1, #0x1c lsrs r1, r1, #0x1d lsls r1, r1, #2 ldr r0, _0804C2B8 @ =gUnk_080D9348 adds r1, r1, r0 ldrh r0, [r1] ldrh r1, [r1, #2] movs r2, #1 bl sub_0807B314 _0804C2B2: pop {pc} .align 2, 0 _0804C2B4: .4byte gUnk_02033A90 _0804C2B8: .4byte gUnk_080D9348 thumb_func_start sub_0804C2BC sub_0804C2BC: @ 0x0804C2BC movs r0, #1 bx lr thumb_func_start nullsub_196 nullsub_196: @ 0x0804C2C0 bx lr .align 2, 0 thumb_func_start sub_0804C2C4 sub_0804C2C4: @ 0x0804C2C4 movs r0, #1 bx lr thumb_func_start nullsub_197 nullsub_197: @ 0x0804C2C8 bx lr .align 2, 0 thumb_func_start sub_0804C2CC sub_0804C2CC: @ 0x0804C2CC movs r0, #1 bx lr thumb_func_start sub_0804C2D0 sub_0804C2D0: @ 0x0804C2D0 push {lr} movs r0, #0 bl sub_08058324 pop {pc} .align 2, 0 thumb_func_start sub_0804C2DC sub_0804C2DC: @ 0x0804C2DC movs r0, #1 bx lr thumb_func_start sub_0804C2E0 sub_0804C2E0: @ 0x0804C2E0 push {lr} movs r0, #1 bl sub_08058324 pop {pc} .align 2, 0 thumb_func_start sub_0804C2EC sub_0804C2EC: @ 0x0804C2EC movs r0, #1 bx lr thumb_func_start sub_0804C2F0 sub_0804C2F0: @ 0x0804C2F0 push {lr} movs r0, #2 bl sub_08058324 movs r0, #0x29 bl sub_0807CC30 cmp r0, #0 beq _0804C312 movs r0, #0x2a bl sub_0807CC30 cmp r0, #0 bne _0804C312 ldr r0, _0804C314 @ =gUnk_080D9800 bl sub_0804ADDC _0804C312: pop {pc} .align 2, 0 _0804C314: .4byte gUnk_080D9800 thumb_func_start sub_0804C318 sub_0804C318: @ 0x0804C318 push {lr} bl sub_0804C2F0 pop {pc} thumb_func_start sub_0804C320 sub_0804C320: @ 0x0804C320 movs r0, #1 bx lr thumb_func_start sub_0804C324 sub_0804C324: @ 0x0804C324 push {lr} movs r0, #3 bl sub_08058324 pop {pc} .align 2, 0 thumb_func_start sub_0804C330 sub_0804C330: @ 0x0804C330 movs r0, #1 bx lr thumb_func_start sub_0804C334 sub_0804C334: @ 0x0804C334 push {lr} movs r0, #0x1e bl sub_0807CD04 movs r0, #0x5b bl sub_0801E7F4 cmp r0, #0 beq _0804C34C ldr r0, _0804C374 @ =gUnk_080D9CC8 bl sub_0804ADDC _0804C34C: ldr r0, _0804C378 @ =gUnk_02002A40 ldr r0, [r0, #0x40] movs r1, #0x80 lsls r1, r1, #0x16 ands r0, r1 cmp r0, #0 bne _0804C360 ldr r0, _0804C37C @ =gUnk_080D9CE8 bl sub_0804ADDC _0804C360: movs r0, #0x15 bl sub_0807CA84 cmp r0, #0 bne _0804C370 ldr r0, _0804C380 @ =gUnk_080D9C38 bl sub_0804ADDC _0804C370: pop {pc} .align 2, 0 _0804C374: .4byte gUnk_080D9CC8 _0804C378: .4byte gUnk_02002A40 _0804C37C: .4byte gUnk_080D9CE8 _0804C380: .4byte gUnk_080D9C38 thumb_func_start sub_0804C384 sub_0804C384: @ 0x0804C384 push {lr} ldr r0, _0804C39C @ =gUnk_02002A40 ldr r0, [r0, #0x40] movs r1, #0x80 lsls r1, r1, #0x16 ands r0, r1 cmp r0, #0 bne _0804C39A ldr r0, _0804C3A0 @ =gUnk_080D9CE8 bl sub_0804ADDC _0804C39A: pop {pc} .align 2, 0 _0804C39C: .4byte gUnk_02002A40 _0804C3A0: .4byte gUnk_080D9CE8 thumb_func_start sub_0804C3A4 sub_0804C3A4: @ 0x0804C3A4 movs r0, #1 bx lr thumb_func_start nullsub_198 nullsub_198: @ 0x0804C3A8 bx lr .align 2, 0 thumb_func_start sub_0804C3AC sub_0804C3AC: @ 0x0804C3AC movs r0, #1 bx lr thumb_func_start nullsub_199 nullsub_199: @ 0x0804C3B0 bx lr .align 2, 0 thumb_func_start sub_0804C3B4 sub_0804C3B4: @ 0x0804C3B4 movs r0, #1 bx lr thumb_func_start nullsub_200 nullsub_200: @ 0x0804C3B8 bx lr .align 2, 0 thumb_func_start sub_0804C3BC sub_0804C3BC: @ 0x0804C3BC movs r0, #1 bx lr thumb_func_start nullsub_201 nullsub_201: @ 0x0804C3C0 bx lr .align 2, 0 thumb_func_start sub_0804C3C4 sub_0804C3C4: @ 0x0804C3C4 movs r0, #1 bx lr thumb_func_start nullsub_202 nullsub_202: @ 0x0804C3C8 bx lr .align 2, 0 thumb_func_start sub_0804C3CC sub_0804C3CC: @ 0x0804C3CC push {lr} movs r0, #0x39 bl sub_0807CBD0 cmp r0, #0 bne _0804C3DE ldr r1, _0804C3E4 @ =gUnk_02034350 ldr r0, _0804C3E8 @ =gUnk_080DA230 str r0, [r1, #0x6c] _0804C3DE: movs r0, #1 pop {pc} .align 2, 0 _0804C3E4: .4byte gUnk_02034350 _0804C3E8: .4byte gUnk_080DA230 thumb_func_start nullsub_203 nullsub_203: @ 0x0804C3EC bx lr .align 2, 0 thumb_func_start sub_0804C3F0 sub_0804C3F0: @ 0x0804C3F0 movs r0, #1 bx lr thumb_func_start nullsub_204 nullsub_204: @ 0x0804C3F4 bx lr .align 2, 0 thumb_func_start sub_0804C3F8 sub_0804C3F8: @ 0x0804C3F8 movs r0, #1 bx lr thumb_func_start nullsub_205 nullsub_205: @ 0x0804C3FC bx lr .align 2, 0 thumb_func_start sub_0804C400 sub_0804C400: @ 0x0804C400 movs r0, #1 bx lr thumb_func_start nullsub_206 nullsub_206: @ 0x0804C404 bx lr .align 2, 0 thumb_func_start sub_0804C408 sub_0804C408: @ 0x0804C408 movs r0, #1 bx lr thumb_func_start nullsub_207 nullsub_207: @ 0x0804C40C bx lr .align 2, 0 thumb_func_start sub_0804C410 sub_0804C410: @ 0x0804C410 movs r0, #1 bx lr thumb_func_start nullsub_208 nullsub_208: @ 0x0804C414 bx lr .align 2, 0 thumb_func_start sub_0804C418 sub_0804C418: @ 0x0804C418 movs r0, #1 bx lr thumb_func_start nullsub_209 nullsub_209: @ 0x0804C41C bx lr .align 2, 0 thumb_func_start sub_0804C420 sub_0804C420: @ 0x0804C420 movs r0, #1 bx lr thumb_func_start sub_0804C424 sub_0804C424: @ 0x0804C424 push {lr} bl sub_0801AFE4 pop {pc} thumb_func_start sub_0804C42C sub_0804C42C: @ 0x0804C42C movs r0, #1 bx lr thumb_func_start sub_0804C430 sub_0804C430: @ 0x0804C430 push {lr} bl sub_0801AFE4 pop {pc} thumb_func_start sub_0804C438 sub_0804C438: @ 0x0804C438 movs r0, #1 bx lr thumb_func_start sub_0804C43C sub_0804C43C: @ 0x0804C43C push {lr} bl sub_0801AFE4 pop {pc} thumb_func_start sub_0804C444 sub_0804C444: @ 0x0804C444 movs r0, #1 bx lr thumb_func_start sub_0804C448 sub_0804C448: @ 0x0804C448 push {lr} bl sub_0801AFE4 pop {pc} thumb_func_start sub_0804C450 sub_0804C450: @ 0x0804C450 movs r0, #1 bx lr thumb_func_start sub_0804C454 sub_0804C454: @ 0x0804C454 push {lr} bl sub_0801AFE4 pop {pc} thumb_func_start sub_0804C45C sub_0804C45C: @ 0x0804C45C movs r0, #1 bx lr thumb_func_start sub_0804C460 sub_0804C460: @ 0x0804C460 push {lr} bl sub_0801AFE4 pop {pc} thumb_func_start sub_0804C468 sub_0804C468: @ 0x0804C468 movs r0, #1 bx lr thumb_func_start sub_0804C46C sub_0804C46C: @ 0x0804C46C push {lr} bl sub_0801AFE4 pop {pc} thumb_func_start sub_0804C474 sub_0804C474: @ 0x0804C474 movs r0, #1 bx lr thumb_func_start sub_0804C478 sub_0804C478: @ 0x0804C478 push {lr} bl sub_0801AFE4 pop {pc} thumb_func_start sub_0804C480 sub_0804C480: @ 0x0804C480 movs r0, #1 bx lr thumb_func_start sub_0804C484 sub_0804C484: @ 0x0804C484 push {lr} bl sub_0801AFE4 pop {pc} thumb_func_start sub_0804C48C sub_0804C48C: @ 0x0804C48C movs r0, #1 bx lr thumb_func_start sub_0804C490 sub_0804C490: @ 0x0804C490 push {r4, lr} movs r0, #0x5b bl sub_0807CA84 cmp r0, #0 bne _0804C4A8 ldr r0, _0804C4A4 @ =gUnk_080DAB44 bl sub_0804ADDC b _0804C4AE .align 2, 0 _0804C4A4: .4byte gUnk_080DAB44 _0804C4A8: ldr r0, _0804C4D8 @ =gUnk_080DAB64 bl sub_0804ADDC _0804C4AE: movs r0, #0x54 bl sub_0807CC30 cmp r0, #0 beq _0804C4F0 bl sub_08060354 cmp r0, #0 beq _0804C4F0 movs r0, #0 bl sub_0807CD10 movs r0, #0x3b bl sub_0807CC30 cmp r0, #0 bne _0804C4DC movs r4, #0xc8 lsls r4, r4, #6 b _0804C522 .align 2, 0 _0804C4D8: .4byte gUnk_080DAB64 _0804C4DC: movs r0, #0x3c bl sub_0807CC30 movs r4, #0x91 lsls r4, r4, #7 cmp r0, #0 bne _0804C522 movs r4, #0x8c lsls r4, r4, #7 b _0804C522 _0804C4F0: movs r0, #0x3d bl sub_0807CC30 cmp r0, #0 beq _0804C500 movs r4, #0x92 lsls r4, r4, #7 b _0804C522 _0804C500: movs r0, #0x3c bl sub_0807CC30 cmp r0, #0 beq _0804C510 movs r4, #0x94 lsls r4, r4, #7 b _0804C522 _0804C510: movs r0, #0x3b bl sub_0807CC30 movs r4, #0x92 lsls r4, r4, #8 cmp r0, #0 beq _0804C522 movs r4, #0xa4 lsls r4, r4, #7 _0804C522: movs r0, #0x80 lsls r0, r0, #8 ands r0, r4 cmp r0, #0 beq _0804C532 ldr r0, _0804C5B8 @ =gUnk_080DAB84 bl sub_0804ADDC _0804C532: movs r0, #0x80 lsls r0, r0, #7 ands r0, r4 cmp r0, #0 beq _0804C542 ldr r0, _0804C5BC @ =gUnk_080DAC54 bl sub_0804ADDC _0804C542: movs r0, #0x80 lsls r0, r0, #6 ands r0, r4 cmp r0, #0 beq _0804C552 ldr r0, _0804C5C0 @ =gUnk_080DAD24 bl sub_0804ADDC _0804C552: movs r0, #0x80 lsls r0, r0, #5 ands r0, r4 cmp r0, #0 beq _0804C562 ldr r0, _0804C5C4 @ =gUnk_080DABC4 bl sub_0804ADDC _0804C562: movs r0, #0x80 lsls r0, r0, #4 ands r0, r4 cmp r0, #0 beq _0804C572 ldr r0, _0804C5C8 @ =gUnk_080DAC94 bl sub_0804ADDC _0804C572: movs r0, #0x80 lsls r0, r0, #3 ands r0, r4 cmp r0, #0 beq _0804C582 ldr r0, _0804C5CC @ =gUnk_080DAD64 bl sub_0804ADDC _0804C582: movs r0, #0x80 lsls r0, r0, #2 ands r0, r4 cmp r0, #0 beq _0804C592 ldr r0, _0804C5D0 @ =gUnk_080DAC04 bl sub_0804ADDC _0804C592: movs r0, #0x80 lsls r0, r0, #1 ands r0, r4 cmp r0, #0 beq _0804C5A2 ldr r0, _0804C5D4 @ =gUnk_080DACD4 bl sub_0804ADDC _0804C5A2: movs r0, #0x80 ands r4, r0 cmp r4, #0 beq _0804C5B0 ldr r0, _0804C5D8 @ =gUnk_080DADA4 bl sub_0804ADDC _0804C5B0: bl sub_0801AFE4 pop {r4, pc} .align 2, 0 _0804C5B8: .4byte gUnk_080DAB84 _0804C5BC: .4byte gUnk_080DAC54 _0804C5C0: .4byte gUnk_080DAD24 _0804C5C4: .4byte gUnk_080DABC4 _0804C5C8: .4byte gUnk_080DAC94 _0804C5CC: .4byte gUnk_080DAD64 _0804C5D0: .4byte gUnk_080DAC04 _0804C5D4: .4byte gUnk_080DACD4 _0804C5D8: .4byte gUnk_080DADA4 thumb_func_start sub_0804C5DC sub_0804C5DC: @ 0x0804C5DC movs r0, #1 bx lr thumb_func_start sub_0804C5E0 sub_0804C5E0: @ 0x0804C5E0 push {lr} movs r0, #0x56 bl sub_0807CC30 cmp r0, #0 beq _0804C5F2 ldr r0, _0804C5F8 @ =gUnk_080DAEE8 bl sub_0804ADDC _0804C5F2: bl sub_0801AFE4 pop {pc} .align 2, 0 _0804C5F8: .4byte gUnk_080DAEE8 thumb_func_start sub_0804C5FC sub_0804C5FC: @ 0x0804C5FC movs r0, #1 bx lr thumb_func_start sub_0804C600 sub_0804C600: @ 0x0804C600 push {lr} movs r0, #0x56 bl sub_0807CC30 cmp r0, #0 beq _0804C612 ldr r0, _0804C618 @ =gUnk_080DAF80 bl sub_0804ADDC _0804C612: bl sub_0801AFE4 pop {pc} .align 2, 0 _0804C618: .4byte gUnk_080DAF80 thumb_func_start sub_0804C61C sub_0804C61C: @ 0x0804C61C movs r0, #1 bx lr thumb_func_start sub_0804C620 sub_0804C620: @ 0x0804C620 push {lr} movs r0, #0x56 bl sub_0807CC30 cmp r0, #0 beq _0804C632 ldr r0, _0804C638 @ =gUnk_080DB018 bl sub_0804ADDC _0804C632: bl sub_0801AFE4 pop {pc} .align 2, 0 _0804C638: .4byte gUnk_080DB018 thumb_func_start sub_0804C63C sub_0804C63C: @ 0x0804C63C movs r0, #1 bx lr thumb_func_start sub_0804C640 sub_0804C640: @ 0x0804C640 push {lr} bl sub_0801AFE4 pop {pc} thumb_func_start sub_0804C648 sub_0804C648: @ 0x0804C648 movs r0, #1 bx lr thumb_func_start sub_0804C64C sub_0804C64C: @ 0x0804C64C push {lr} bl sub_0801AFE4 pop {pc} thumb_func_start sub_0804C654 sub_0804C654: @ 0x0804C654 movs r0, #1 bx lr thumb_func_start sub_0804C658 sub_0804C658: @ 0x0804C658 push {lr} bl sub_0801AFE4 pop {pc} thumb_func_start sub_0804C660 sub_0804C660: @ 0x0804C660 movs r0, #1 bx lr thumb_func_start sub_0804C664 sub_0804C664: @ 0x0804C664 push {lr} ldr r0, _0804C67C @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #8 bls _0804C674 ldr r0, _0804C680 @ =gUnk_080DB238 bl sub_0804ADDC _0804C674: bl sub_0801AFE4 pop {pc} .align 2, 0 _0804C67C: .4byte gUnk_02002A40 _0804C680: .4byte gUnk_080DB238 thumb_func_start sub_0804C684 sub_0804C684: @ 0x0804C684 movs r0, #1 bx lr thumb_func_start sub_0804C688 sub_0804C688: @ 0x0804C688 push {lr} bl sub_0801AFE4 pop {pc} thumb_func_start sub_0804C690 sub_0804C690: @ 0x0804C690 movs r0, #1 bx lr thumb_func_start sub_0804C694 sub_0804C694: @ 0x0804C694 push {lr} bl sub_0801AFE4 pop {pc} thumb_func_start sub_0804C69C sub_0804C69C: @ 0x0804C69C movs r0, #1 bx lr thumb_func_start sub_0804C6A0 sub_0804C6A0: @ 0x0804C6A0 push {lr} bl sub_0801AFE4 pop {pc} thumb_func_start sub_0804C6A8 sub_0804C6A8: @ 0x0804C6A8 movs r0, #1 bx lr thumb_func_start sub_0804C6AC sub_0804C6AC: @ 0x0804C6AC push {lr} bl sub_0801AFE4 pop {pc} thumb_func_start sub_0804C6B4 sub_0804C6B4: @ 0x0804C6B4 movs r0, #1 bx lr thumb_func_start sub_0804C6B8 sub_0804C6B8: @ 0x0804C6B8 push {lr} movs r0, #0x46 bl sub_0807CA84 cmp r0, #0 bne _0804C6E4 movs r0, #0x3b bl sub_0807CA84 cmp r0, #0 bne _0804C6E4 movs r0, #0x71 bl sub_0807CBD0 cmp r0, #0 beq _0804C6E4 ldr r0, _0804C6E0 @ =gUnk_080DB4D0 bl sub_0804ADDC b _0804C6EA .align 2, 0 _0804C6E0: .4byte gUnk_080DB4D0 _0804C6E4: ldr r0, _0804C6F0 @ =gUnk_080DB4A0 bl sub_0804ADDC _0804C6EA: bl sub_0801AFE4 pop {pc} .align 2, 0 _0804C6F0: .4byte gUnk_080DB4A0 thumb_func_start sub_0804C6F4 sub_0804C6F4: @ 0x0804C6F4 movs r0, #1 bx lr thumb_func_start sub_0804C6F8 sub_0804C6F8: @ 0x0804C6F8 push {lr} bl sub_0801AFE4 pop {pc} thumb_func_start sub_0804C700 sub_0804C700: @ 0x0804C700 movs r0, #1 bx lr thumb_func_start sub_0804C704 sub_0804C704: @ 0x0804C704 push {lr} bl sub_0801AFE4 pop {pc} thumb_func_start sub_0804C70C sub_0804C70C: @ 0x0804C70C movs r0, #1 bx lr thumb_func_start sub_0804C710 sub_0804C710: @ 0x0804C710 push {lr} bl sub_0801AFE4 pop {pc} thumb_func_start sub_0804C718 sub_0804C718: @ 0x0804C718 movs r0, #1 bx lr thumb_func_start sub_0804C71C sub_0804C71C: @ 0x0804C71C push {lr} bl sub_0801AFE4 pop {pc} thumb_func_start sub_0804C724 sub_0804C724: @ 0x0804C724 movs r0, #1 bx lr thumb_func_start sub_0804C728 sub_0804C728: @ 0x0804C728 push {lr} bl sub_0801AFE4 pop {pc} thumb_func_start sub_0804C730 sub_0804C730: @ 0x0804C730 push {lr} movs r0, #0x29 bl sub_0807CC30 cmp r0, #0 beq _0804C74C movs r0, #0x73 bl sub_0807CBD0 cmp r0, #0 bne _0804C74C ldr r1, _0804C750 @ =gUnk_02034350 ldr r0, _0804C754 @ =gUnk_080DB910 str r0, [r1, #0x70] _0804C74C: movs r0, #1 pop {pc} .align 2, 0 _0804C750: .4byte gUnk_02034350 _0804C754: .4byte gUnk_080DB910 thumb_func_start sub_0804C758 sub_0804C758: @ 0x0804C758 push {lr} ldr r0, _0804C780 @ =gUnk_080DB8F0 bl sub_0804ADDC movs r0, #0x46 bl sub_0807CA84 cmp r0, #0 bne _0804C77A movs r0, #0x29 bl sub_0807CC30 cmp r0, #0 beq _0804C77A ldr r0, _0804C784 @ =gUnk_080DB820 bl sub_0804ADDC _0804C77A: bl sub_0801AFE4 pop {pc} .align 2, 0 _0804C780: .4byte gUnk_080DB8F0 _0804C784: .4byte gUnk_080DB820 thumb_func_start sub_0804C788 sub_0804C788: @ 0x0804C788 movs r0, #1 bx lr thumb_func_start sub_0804C78C sub_0804C78C: @ 0x0804C78C push {lr} movs r0, #0x46 bl sub_0807CA84 cmp r0, #0 bne _0804C7A2 movs r0, #0x73 bl sub_0807CBD0 cmp r0, #0 bne _0804C7A8 _0804C7A2: ldr r0, _0804C7B0 @ =gUnk_080DBA08 bl sub_0804ADDC _0804C7A8: bl sub_0801AFE4 pop {pc} .align 2, 0 _0804C7B0: .4byte gUnk_080DBA08 thumb_func_start sub_0804C7B4 sub_0804C7B4: @ 0x0804C7B4 movs r0, #1 bx lr thumb_func_start sub_0804C7B8 sub_0804C7B8: @ 0x0804C7B8 push {r4, r5, lr} movs r0, #0x60 bl sub_0807CBD0 cmp r0, #0 bne _0804C7CA ldr r0, _0804C7E4 @ =gUnk_080DBB50 bl sub_0804ADDC _0804C7CA: movs r0, #0x15 bl sub_0807CA84 cmp r0, #1 bne _0804C7F0 ldr r0, _0804C7E8 @ =gUnk_080DBB70 bl sub_0804ADDC ldr r0, _0804C7EC @ =gUnk_080DBB10 bl sub_0804ADDC b _0804C7F6 .align 2, 0 _0804C7E4: .4byte gUnk_080DBB50 _0804C7E8: .4byte gUnk_080DBB70 _0804C7EC: .4byte gUnk_080DBB10 _0804C7F0: ldr r0, _0804C824 @ =gUnk_080DBAD0 bl sub_0804ADDC _0804C7F6: movs r0, #0x62 bl sub_0807CBD0 cmp r0, #0 bne _0804C818 movs r5, #0xa0 lsls r5, r5, #1 movs r4, #0 _0804C806: ldr r0, _0804C828 @ =0x00004072 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 adds r4, #1 adds r5, #1 cmp r4, #0x12 bls _0804C806 _0804C818: ldr r0, _0804C82C @ =gUnk_080DBB90 bl sub_0804ADDC bl sub_0801AFE4 pop {r4, r5, pc} .align 2, 0 _0804C824: .4byte gUnk_080DBAD0 _0804C828: .4byte 0x00004072 _0804C82C: .4byte gUnk_080DBB90 thumb_func_start sub_0804C830 sub_0804C830: @ 0x0804C830 movs r0, #1 bx lr thumb_func_start nullsub_210 nullsub_210: @ 0x0804C834 bx lr .align 2, 0 thumb_func_start sub_0804C838 sub_0804C838: @ 0x0804C838 movs r0, #1 bx lr thumb_func_start nullsub_211 nullsub_211: @ 0x0804C83C bx lr .align 2, 0 thumb_func_start sub_0804C840 sub_0804C840: @ 0x0804C840 movs r0, #1 bx lr thumb_func_start nullsub_212 nullsub_212: @ 0x0804C844 bx lr .align 2, 0 thumb_func_start sub_0804C848 sub_0804C848: @ 0x0804C848 movs r0, #1 bx lr thumb_func_start nullsub_213 nullsub_213: @ 0x0804C84C bx lr .align 2, 0 thumb_func_start sub_0804C850 sub_0804C850: @ 0x0804C850 movs r0, #1 bx lr thumb_func_start nullsub_214 nullsub_214: @ 0x0804C854 bx lr .align 2, 0 thumb_func_start sub_0804C858 sub_0804C858: @ 0x0804C858 movs r0, #1 bx lr thumb_func_start nullsub_215 nullsub_215: @ 0x0804C85C bx lr .align 2, 0 thumb_func_start sub_0804C860 sub_0804C860: @ 0x0804C860 movs r0, #1 bx lr thumb_func_start nullsub_216 nullsub_216: @ 0x0804C864 bx lr .align 2, 0 thumb_func_start sub_0804C868 sub_0804C868: @ 0x0804C868 movs r0, #1 bx lr thumb_func_start nullsub_217 nullsub_217: @ 0x0804C86C bx lr .align 2, 0 thumb_func_start sub_0804C870 sub_0804C870: @ 0x0804C870 movs r0, #1 bx lr thumb_func_start nullsub_218 nullsub_218: @ 0x0804C874 bx lr .align 2, 0 thumb_func_start sub_0804C878 sub_0804C878: @ 0x0804C878 movs r0, #1 bx lr thumb_func_start nullsub_219 nullsub_219: @ 0x0804C87C bx lr .align 2, 0 thumb_func_start sub_0804C880 sub_0804C880: @ 0x0804C880 movs r0, #1 bx lr thumb_func_start sub_0804C884 sub_0804C884: @ 0x0804C884 push {lr} movs r0, #0x5b bl sub_0807CA84 cmp r0, #0 bne _0804C8B4 ldr r0, _0804C8AC @ =gUnk_080DC390 bl sub_0804ADDC movs r0, #0x80 lsls r0, r0, #2 movs r1, #0x80 bl sub_0807CB10 cmp r0, #0 bne _0804C8CA ldr r0, _0804C8B0 @ =gUnk_080DC3F0 bl sub_0804ADDC b _0804C8CA .align 2, 0 _0804C8AC: .4byte gUnk_080DC390 _0804C8B0: .4byte gUnk_080DC3F0 _0804C8B4: ldr r0, _0804C900 @ =gUnk_080DC430 bl sub_0804ADDC movs r0, #0x11 bl sub_0807CA84 cmp r0, #0 bne _0804C8CA ldr r0, _0804C904 @ =gUnk_080DC530 bl sub_0804ADDC _0804C8CA: movs r0, #0x80 lsls r0, r0, #2 movs r1, #0x83 bl sub_0807CB10 cmp r0, #0 bne _0804C8E8 movs r0, #0x11 bl sub_0807CA84 cmp r0, #0 beq _0804C8E8 ldr r0, _0804C908 @ =gUnk_080DC470 bl sub_0804ADDC _0804C8E8: movs r0, #0x8d bl sub_0807CBD0 cmp r0, #0 bne _0804C8F8 ldr r0, _0804C90C @ =gUnk_080DC4C0 bl sub_0804ADDC _0804C8F8: bl sub_08057E64 pop {pc} .align 2, 0 _0804C900: .4byte gUnk_080DC430 _0804C904: .4byte gUnk_080DC530 _0804C908: .4byte gUnk_080DC470 _0804C90C: .4byte gUnk_080DC4C0 thumb_func_start sub_0804C910 sub_0804C910: @ 0x0804C910 movs r0, #1 bx lr thumb_func_start nullsub_220 nullsub_220: @ 0x0804C914 bx lr .align 2, 0 thumb_func_start sub_0804C918 sub_0804C918: @ 0x0804C918 push {r4, r5, lr} ldr r4, _0804C940 @ =gUnk_086D4460 movs r1, #0xc0 lsls r1, r1, #0x13 movs r5, #0x80 lsls r5, r5, #7 adds r0, r4, #0 adds r2, r5, #0 bl sub_08000E96 adds r4, r4, r5 ldr r1, _0804C944 @ =0x06008000 adds r0, r4, #0 adds r2, r5, #0 bl sub_08000E96 movs r0, #0x19 bl sub_0801D714 pop {r4, r5, pc} .align 2, 0 _0804C940: .4byte gUnk_086D4460 _0804C944: .4byte 0x06008000 thumb_func_start sub_0804C948 sub_0804C948: @ 0x0804C948 movs r0, #1 bx lr thumb_func_start nullsub_221 nullsub_221: @ 0x0804C94C bx lr .align 2, 0 thumb_func_start sub_0804C950 sub_0804C950: @ 0x0804C950 movs r0, #1 bx lr thumb_func_start nullsub_222 nullsub_222: @ 0x0804C954 bx lr .align 2, 0 thumb_func_start sub_0804C958 sub_0804C958: @ 0x0804C958 movs r0, #1 bx lr thumb_func_start nullsub_223 nullsub_223: @ 0x0804C95C bx lr .align 2, 0 thumb_func_start sub_0804C960 sub_0804C960: @ 0x0804C960 movs r0, #1 bx lr thumb_func_start nullsub_224 nullsub_224: @ 0x0804C964 bx lr .align 2, 0 thumb_func_start sub_0804C968 sub_0804C968: @ 0x0804C968 movs r0, #1 bx lr thumb_func_start nullsub_225 nullsub_225: @ 0x0804C96C bx lr .align 2, 0 thumb_func_start sub_0804C970 sub_0804C970: @ 0x0804C970 movs r0, #1 bx lr thumb_func_start nullsub_226 nullsub_226: @ 0x0804C974 bx lr .align 2, 0 thumb_func_start sub_0804C978 sub_0804C978: @ 0x0804C978 movs r0, #1 bx lr thumb_func_start nullsub_227 nullsub_227: @ 0x0804C97C bx lr .align 2, 0 thumb_func_start sub_0804C980 sub_0804C980: @ 0x0804C980 movs r0, #1 bx lr thumb_func_start nullsub_228 nullsub_228: @ 0x0804C984 bx lr .align 2, 0 thumb_func_start sub_0804C988 sub_0804C988: @ 0x0804C988 movs r0, #1 bx lr thumb_func_start nullsub_229 nullsub_229: @ 0x0804C98C bx lr .align 2, 0 thumb_func_start sub_0804C990 sub_0804C990: @ 0x0804C990 movs r0, #1 bx lr thumb_func_start nullsub_230 nullsub_230: @ 0x0804C994 bx lr .align 2, 0 thumb_func_start sub_0804C998 sub_0804C998: @ 0x0804C998 movs r0, #1 bx lr thumb_func_start sub_0804C99C sub_0804C99C: @ 0x0804C99C push {lr} movs r0, #9 bl sub_0807CA84 cmp r0, #0 bne _0804C9AE ldr r0, _0804C9B0 @ =gUnk_080DCB10 bl sub_0804ADDC _0804C9AE: pop {pc} .align 2, 0 _0804C9B0: .4byte gUnk_080DCB10 thumb_func_start sub_0804C9B4 sub_0804C9B4: @ 0x0804C9B4 movs r0, #1 bx lr thumb_func_start nullsub_231 nullsub_231: @ 0x0804C9B8 bx lr .align 2, 0 thumb_func_start sub_0804C9BC sub_0804C9BC: @ 0x0804C9BC movs r0, #1 bx lr thumb_func_start nullsub_232 nullsub_232: @ 0x0804C9C0 bx lr .align 2, 0 thumb_func_start sub_0804C9C4 sub_0804C9C4: @ 0x0804C9C4 movs r0, #1 bx lr thumb_func_start nullsub_233 nullsub_233: @ 0x0804C9C8 bx lr .align 2, 0 thumb_func_start sub_0804C9CC sub_0804C9CC: @ 0x0804C9CC movs r0, #1 bx lr thumb_func_start nullsub_234 nullsub_234: @ 0x0804C9D0 bx lr .align 2, 0 thumb_func_start sub_0804C9D4 sub_0804C9D4: @ 0x0804C9D4 movs r0, #1 bx lr thumb_func_start nullsub_235 nullsub_235: @ 0x0804C9D8 bx lr .align 2, 0 thumb_func_start sub_0804C9DC sub_0804C9DC: @ 0x0804C9DC movs r0, #1 bx lr thumb_func_start nullsub_236 nullsub_236: @ 0x0804C9E0 bx lr .align 2, 0 thumb_func_start sub_0804C9E4 sub_0804C9E4: @ 0x0804C9E4 movs r0, #1 bx lr thumb_func_start nullsub_237 nullsub_237: @ 0x0804C9E8 bx lr .align 2, 0 thumb_func_start sub_0804C9EC sub_0804C9EC: @ 0x0804C9EC movs r0, #1 bx lr thumb_func_start nullsub_238 nullsub_238: @ 0x0804C9F0 bx lr .align 2, 0 thumb_func_start sub_0804C9F4 sub_0804C9F4: @ 0x0804C9F4 movs r0, #1 bx lr thumb_func_start nullsub_239 nullsub_239: @ 0x0804C9F8 bx lr .align 2, 0 thumb_func_start sub_0804C9FC sub_0804C9FC: @ 0x0804C9FC movs r0, #1 bx lr thumb_func_start nullsub_240 nullsub_240: @ 0x0804CA00 bx lr .align 2, 0 thumb_func_start sub_0804CA04 sub_0804CA04: @ 0x0804CA04 movs r0, #1 bx lr thumb_func_start nullsub_241 nullsub_241: @ 0x0804CA08 bx lr .align 2, 0 thumb_func_start sub_0804CA0C sub_0804CA0C: @ 0x0804CA0C movs r0, #1 bx lr thumb_func_start sub_0804CA10 sub_0804CA10: @ 0x0804CA10 push {lr} movs r0, #0x56 bl sub_0807CC30 cmp r0, #0 bne _0804CA22 ldr r0, _0804CA34 @ =gUnk_080DD214 bl sub_0804ADDC _0804CA22: movs r0, #0x7f bl sub_0807CBD0 cmp r0, #0 bne _0804CA3C ldr r0, _0804CA38 @ =gUnk_080DD274 bl sub_0804ADDC b _0804CA42 .align 2, 0 _0804CA34: .4byte gUnk_080DD214 _0804CA38: .4byte gUnk_080DD274 _0804CA3C: ldr r0, _0804CA4C @ =gUnk_080DD294 bl sub_0804ADDC _0804CA42: movs r0, #0x8e bl sub_0807CCB4 pop {pc} .align 2, 0 _0804CA4C: .4byte gUnk_080DD294 thumb_func_start sub_0804CA50 sub_0804CA50: @ 0x0804CA50 movs r0, #1 bx lr thumb_func_start sub_0804CA54 sub_0804CA54: @ 0x0804CA54 push {lr} ldr r0, _0804CA6C @ =gUnk_02002A40 ldr r0, [r0, #0x40] movs r1, #0x80 lsls r1, r1, #0x13 ands r0, r1 cmp r0, #0 bne _0804CA6A ldr r0, _0804CA70 @ =gUnk_080DD364 bl sub_0804ADDC _0804CA6A: pop {pc} .align 2, 0 _0804CA6C: .4byte gUnk_02002A40 _0804CA70: .4byte gUnk_080DD364 thumb_func_start sub_0804CA74 sub_0804CA74: @ 0x0804CA74 push {lr} ldr r0, _0804CA8C @ =gUnk_02002A40 ldr r0, [r0, #0x40] movs r1, #0x80 lsls r1, r1, #0x13 ands r0, r1 cmp r0, #0 bne _0804CA8A ldr r0, _0804CA90 @ =gUnk_080DD364 bl sub_0804ADDC _0804CA8A: pop {pc} .align 2, 0 _0804CA8C: .4byte gUnk_02002A40 _0804CA90: .4byte gUnk_080DD364 thumb_func_start sub_0804CA94 sub_0804CA94: @ 0x0804CA94 movs r0, #1 bx lr thumb_func_start nullsub_242 nullsub_242: @ 0x0804CA98 bx lr .align 2, 0 thumb_func_start sub_0804CA9C sub_0804CA9C: @ 0x0804CA9C movs r0, #1 bx lr thumb_func_start sub_0804CAA0 sub_0804CAA0: @ 0x0804CAA0 push {lr} movs r0, #0x24 bl sub_0807CC30 cmp r0, #0 beq _0804CAB2 ldr r0, _0804CAC4 @ =0x000006DE bl sub_0809F814 _0804CAB2: movs r0, #0xf3 bl sub_0807CBD0 cmp r0, #0 beq _0804CAC8 movs r0, #0xe0 bl sub_0809F814 b _0804CACE .align 2, 0 _0804CAC4: .4byte 0x000006DE _0804CAC8: ldr r0, _0804CAE0 @ =gUnk_080DD7E0 bl sub_0804ADDC _0804CACE: movs r0, #0xf5 bl sub_0807CBD0 cmp r0, #0 beq _0804CAE8 ldr r0, _0804CAE4 @ =0x00000BA3 bl sub_0809F814 b _0804CAEE .align 2, 0 _0804CAE0: .4byte gUnk_080DD7E0 _0804CAE4: .4byte 0x00000BA3 _0804CAE8: ldr r0, _0804CAF0 @ =gUnk_080DD840 bl sub_0804ADDC _0804CAEE: pop {pc} .align 2, 0 _0804CAF0: .4byte gUnk_080DD840 thumb_func_start sub_0804CAF4 sub_0804CAF4: @ 0x0804CAF4 movs r0, #1 bx lr thumb_func_start sub_0804CAF8 sub_0804CAF8: @ 0x0804CAF8 push {lr} bl sub_080300E8 movs r0, #0x24 bl sub_0807CCB4 pop {pc} .align 2, 0 thumb_func_start sub_0804CB08 sub_0804CB08: @ 0x0804CB08 movs r0, #1 bx lr thumb_func_start nullsub_37 nullsub_37: @ 0x0804CB0C bx lr .align 2, 0 thumb_func_start sub_0804CB10 sub_0804CB10: @ 0x0804CB10 movs r0, #1 bx lr thumb_func_start sub_0804CB14 sub_0804CB14: @ 0x0804CB14 push {lr} movs r0, #0x41 bl sub_0801E7F4 cmp r0, #0 beq _0804CB26 ldr r0, _0804CB28 @ =gUnk_080DDE88 bl sub_0804ADDC _0804CB26: pop {pc} .align 2, 0 _0804CB28: .4byte gUnk_080DDE88 thumb_func_start sub_0804CB2C sub_0804CB2C: @ 0x0804CB2C push {lr} movs r0, #0x80 lsls r0, r0, #1 movs r1, #0x27 bl sub_0807CB10 cmp r0, #0 beq _0804CB42 movs r0, #0x85 bl sub_08059340 _0804CB42: pop {pc} thumb_func_start sub_0804CB44 sub_0804CB44: @ 0x0804CB44 movs r0, #1 bx lr thumb_func_start nullsub_38 nullsub_38: @ 0x0804CB48 bx lr .align 2, 0 thumb_func_start sub_0804CB4C sub_0804CB4C: @ 0x0804CB4C movs r0, #1 bx lr thumb_func_start sub_0804CB50 sub_0804CB50: @ 0x0804CB50 push {lr} bl sub_080300E8 movs r0, #4 bl sub_0807CC30 cmp r0, #0 beq _0804CB70 movs r0, #3 bl sub_0807CBD0 cmp r0, #0 bne _0804CB70 ldr r0, _0804CB74 @ =gUnk_080DE008 bl sub_0804ADDC _0804CB70: pop {pc} .align 2, 0 _0804CB74: .4byte gUnk_080DE008 thumb_func_start sub_0804CB78 sub_0804CB78: @ 0x0804CB78 movs r0, #1 bx lr thumb_func_start sub_0804CB7C sub_0804CB7C: @ 0x0804CB7C push {lr} bl sub_080300E8 movs r0, #0x30 bl sub_0807CBD0 cmp r0, #0 bne _0804CB92 ldr r0, _0804CBA4 @ =gUnk_080DE1E0 bl sub_0804ADDC _0804CB92: movs r0, #0x31 bl sub_0807CBD0 cmp r0, #0 bne _0804CBA2 ldr r0, _0804CBA8 @ =gUnk_080DE200 bl sub_0804ADDC _0804CBA2: pop {pc} .align 2, 0 _0804CBA4: .4byte gUnk_080DE1E0 _0804CBA8: .4byte gUnk_080DE200 thumb_func_start sub_0804CBAC sub_0804CBAC: @ 0x0804CBAC movs r0, #1 bx lr thumb_func_start sub_0804CBB0 sub_0804CBB0: @ 0x0804CBB0 push {lr} ldr r0, _0804CBD8 @ =gUnk_03001160 movs r2, #0x32 ldrsh r1, [r0, r2] ldr r2, _0804CBDC @ =gUnk_03000BF0 ldrh r0, [r2, #8] subs r1, r1, r0 ldrh r0, [r2, #0x20] lsrs r0, r0, #1 cmp r1, r0 bge _0804CBD6 movs r0, #0x17 bl sub_0807CBD0 cmp r0, #0 bne _0804CBD6 ldr r0, _0804CBE0 @ =gUnk_080DE4C8 bl sub_0804ADDC _0804CBD6: pop {pc} .align 2, 0 _0804CBD8: .4byte gUnk_03001160 _0804CBDC: .4byte gUnk_03000BF0 _0804CBE0: .4byte gUnk_080DE4C8 thumb_func_start sub_0804CBE4 sub_0804CBE4: @ 0x0804CBE4 movs r0, #1 bx lr thumb_func_start nullsub_243 nullsub_243: @ 0x0804CBE8 bx lr .align 2, 0 thumb_func_start sub_0804CBEC sub_0804CBEC: @ 0x0804CBEC movs r0, #1 bx lr thumb_func_start sub_0804CBF0 sub_0804CBF0: @ 0x0804CBF0 push {lr} movs r0, #0x4b bl sub_0807CBD0 cmp r0, #0 bne _0804CC08 ldr r0, _0804CC04 @ =gUnk_080DE814 bl sub_0804ADDC b _0804CC4A .align 2, 0 _0804CC04: .4byte gUnk_080DE814 _0804CC08: movs r0, #0x4c bl sub_0807CBD0 cmp r0, #0 bne _0804CC2C ldr r0, _0804CC24 @ =gUnk_080DE834 bl sub_0804ADDC ldr r1, _0804CC28 @ =0x00000285 movs r0, #0x79 movs r2, #1 bl sub_0807B314 b _0804CC4A .align 2, 0 _0804CC24: .4byte gUnk_080DE834 _0804CC28: .4byte 0x00000285 _0804CC2C: ldr r1, _0804CC4C @ =0x00000285 movs r0, #0x7a movs r2, #1 bl sub_0807B314 movs r0, #0x24 bl sub_0807CBD0 cmp r0, #0 bne _0804CC4A ldr r1, _0804CC50 @ =0x00000205 movs r0, #0x73 movs r2, #1 bl sub_0807B314 _0804CC4A: pop {pc} .align 2, 0 _0804CC4C: .4byte 0x00000285 _0804CC50: .4byte 0x00000205 thumb_func_start sub_0804CC54 sub_0804CC54: @ 0x0804CC54 movs r0, #1 bx lr thumb_func_start nullsub_244 nullsub_244: @ 0x0804CC58 bx lr .align 2, 0 thumb_func_start sub_0804CC5C sub_0804CC5C: @ 0x0804CC5C movs r0, #1 bx lr thumb_func_start nullsub_245 nullsub_245: @ 0x0804CC60 bx lr .align 2, 0 thumb_func_start sub_0804CC64 sub_0804CC64: @ 0x0804CC64 movs r0, #1 bx lr thumb_func_start nullsub_246 nullsub_246: @ 0x0804CC68 bx lr .align 2, 0 thumb_func_start sub_0804CC6C sub_0804CC6C: @ 0x0804CC6C movs r0, #1 bx lr thumb_func_start sub_0804CC70 sub_0804CC70: @ 0x0804CC70 push {lr} ldr r0, _0804CC94 @ =gUnk_02002A40 ldrb r0, [r0, #7] cmp r0, #0 beq _0804CC7E cmp r0, #2 beq _0804CCA0 _0804CC7E: ldr r1, _0804CC98 @ =0x0000020B movs r0, #0x90 movs r2, #1 bl sub_0807B314 ldr r1, _0804CC9C @ =0x00000411 movs r0, #0x90 movs r2, #1 bl sub_0807B314 b _0804CCB4 .align 2, 0 _0804CC94: .4byte gUnk_02002A40 _0804CC98: .4byte 0x0000020B _0804CC9C: .4byte 0x00000411 _0804CCA0: ldr r1, _0804CCE4 @ =0x00000211 movs r0, #0x90 movs r2, #1 bl sub_0807B314 ldr r1, _0804CCE8 @ =0x0000040B movs r0, #0x90 movs r2, #1 bl sub_0807B314 _0804CCB4: movs r0, #0x15 bl sub_0807CBD0 cmp r0, #0 beq _0804CCCA movs r1, #0xc1 lsls r1, r1, #2 movs r0, #0x76 movs r2, #2 bl sub_0807B314 _0804CCCA: movs r0, #0x16 bl sub_0807CBD0 cmp r0, #0 beq _0804CCE0 movs r1, #0xc6 lsls r1, r1, #2 movs r0, #0x76 movs r2, #2 bl sub_0807B314 _0804CCE0: pop {pc} .align 2, 0 _0804CCE4: .4byte 0x00000211 _0804CCE8: .4byte 0x0000040B thumb_func_start sub_0804CCEC sub_0804CCEC: @ 0x0804CCEC movs r0, #1 bx lr thumb_func_start nullsub_247 nullsub_247: @ 0x0804CCF0 bx lr .align 2, 0 thumb_func_start sub_0804CCF4 sub_0804CCF4: @ 0x0804CCF4 movs r0, #1 bx lr thumb_func_start nullsub_248 nullsub_248: @ 0x0804CCF8 bx lr .align 2, 0 thumb_func_start sub_0804CCFC sub_0804CCFC: @ 0x0804CCFC movs r0, #1 bx lr thumb_func_start nullsub_249 nullsub_249: @ 0x0804CD00 bx lr .align 2, 0 thumb_func_start sub_0804CD04 sub_0804CD04: @ 0x0804CD04 movs r0, #1 bx lr thumb_func_start nullsub_250 nullsub_250: @ 0x0804CD08 bx lr .align 2, 0 thumb_func_start sub_0804CD0C sub_0804CD0C: @ 0x0804CD0C movs r0, #1 bx lr thumb_func_start nullsub_251 nullsub_251: @ 0x0804CD10 bx lr .align 2, 0 thumb_func_start sub_0804CD14 sub_0804CD14: @ 0x0804CD14 movs r0, #1 bx lr thumb_func_start nullsub_252 nullsub_252: @ 0x0804CD18 bx lr .align 2, 0 thumb_func_start sub_0804CD1C sub_0804CD1C: @ 0x0804CD1C movs r0, #1 bx lr thumb_func_start nullsub_253 nullsub_253: @ 0x0804CD20 bx lr .align 2, 0 thumb_func_start sub_0804CD24 sub_0804CD24: @ 0x0804CD24 movs r0, #1 bx lr thumb_func_start nullsub_254 nullsub_254: @ 0x0804CD28 bx lr .align 2, 0 thumb_func_start sub_0804CD2C sub_0804CD2C: @ 0x0804CD2C movs r0, #1 bx lr thumb_func_start nullsub_255 nullsub_255: @ 0x0804CD30 bx lr .align 2, 0 thumb_func_start sub_0804CD34 sub_0804CD34: @ 0x0804CD34 movs r0, #1 bx lr thumb_func_start nullsub_256 nullsub_256: @ 0x0804CD38 bx lr .align 2, 0 thumb_func_start sub_0804CD3C sub_0804CD3C: @ 0x0804CD3C movs r0, #1 bx lr thumb_func_start nullsub_257 nullsub_257: @ 0x0804CD40 bx lr .align 2, 0 thumb_func_start sub_0804CD44 sub_0804CD44: @ 0x0804CD44 movs r0, #1 bx lr thumb_func_start sub_0804CD48 sub_0804CD48: @ 0x0804CD48 push {r4, lr} movs r0, #0x48 bl sub_0807CBD0 adds r4, r0, #0 cmp r4, #0 bne _0804CD80 movs r0, #0x48 bl sub_0807CCB4 movs r0, #5 movs r1, #0 bl sub_080A7138 ldr r0, _0804CD94 @ =gUnk_02000070 strb r4, [r0] ldr r0, _0804CD98 @ =gUnk_03000FD0 strb r4, [r0] ldr r0, _0804CD9C @ =gUnk_0200B644 str r4, [r0] movs r1, #0xa0 lsls r1, r1, #0x13 ldr r2, _0804CDA0 @ =0x00007FFF adds r0, r2, #0 strh r0, [r1] movs r0, #1 bl sub_0801DA90 _0804CD80: movs r0, #2 bl sub_0807CC30 cmp r0, #0 beq _0804CDA8 ldr r0, _0804CDA4 @ =gUnk_080DF94C bl sub_0804ADDC b _0804CDBE .align 2, 0 _0804CD94: .4byte gUnk_02000070 _0804CD98: .4byte gUnk_03000FD0 _0804CD9C: .4byte gUnk_0200B644 _0804CDA0: .4byte 0x00007FFF _0804CDA4: .4byte gUnk_080DF94C _0804CDA8: ldr r0, _0804CDC0 @ =0x80100000 bl sub_080A3268 ldr r0, _0804CDC4 @ =gUnk_02033A90 movs r2, #0x86 lsls r2, r2, #4 adds r1, r0, r2 adds r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] _0804CDBE: pop {r4, pc} .align 2, 0 _0804CDC0: .4byte 0x80100000 _0804CDC4: .4byte gUnk_02033A90 thumb_func_start sub_0804CDC8 sub_0804CDC8: @ 0x0804CDC8 movs r0, #1 bx lr thumb_func_start nullsub_258 nullsub_258: @ 0x0804CDCC bx lr .align 2, 0 thumb_func_start sub_0804CDD0 sub_0804CDD0: @ 0x0804CDD0 movs r0, #1 bx lr thumb_func_start sub_0804CDD4 sub_0804CDD4: @ 0x0804CDD4 push {lr} bl sub_08058D34 ldr r2, _0804CDEC @ =gUnk_02033A90 ldrb r1, [r2] movs r0, #0x40 orrs r0, r1 strb r0, [r2] ldr r1, _0804CDF0 @ =gUnk_03001000 movs r0, #5 strb r0, [r1, #4] pop {pc} .align 2, 0 _0804CDEC: .4byte gUnk_02033A90 _0804CDF0: .4byte gUnk_03001000 thumb_func_start sub_0804CDF4 sub_0804CDF4: @ 0x0804CDF4 movs r0, #1 bx lr thumb_func_start sub_0804CDF8 sub_0804CDF8: @ 0x0804CDF8 push {lr} movs r0, #2 bl sub_0807CC30 cmp r0, #0 beq _0804CE18 movs r0, #0x80 lsls r0, r0, #1 movs r1, #1 bl sub_0807CB10 cmp r0, #0 bne _0804CE18 ldr r0, _0804CE1C @ =gUnk_080DFB78 bl sub_0804ADDC _0804CE18: pop {pc} .align 2, 0 _0804CE1C: .4byte gUnk_080DFB78 thumb_func_start sub_0804CE20 sub_0804CE20: @ 0x0804CE20 movs r0, #1 bx lr thumb_func_start nullsub_259 nullsub_259: @ 0x0804CE24 bx lr .align 2, 0 thumb_func_start sub_0804CE28 sub_0804CE28: @ 0x0804CE28 movs r0, #1 bx lr thumb_func_start nullsub_260 nullsub_260: @ 0x0804CE2C bx lr .align 2, 0 thumb_func_start sub_0804CE30 sub_0804CE30: @ 0x0804CE30 movs r0, #1 bx lr thumb_func_start nullsub_261 nullsub_261: @ 0x0804CE34 bx lr .align 2, 0 thumb_func_start sub_0804CE38 sub_0804CE38: @ 0x0804CE38 movs r0, #1 bx lr thumb_func_start nullsub_262 nullsub_262: @ 0x0804CE3C bx lr .align 2, 0 thumb_func_start sub_0804CE40 sub_0804CE40: @ 0x0804CE40 movs r0, #1 bx lr thumb_func_start nullsub_263 nullsub_263: @ 0x0804CE44 bx lr .align 2, 0 thumb_func_start sub_0804CE48 sub_0804CE48: @ 0x0804CE48 movs r0, #1 bx lr thumb_func_start nullsub_264 nullsub_264: @ 0x0804CE4C bx lr .align 2, 0 thumb_func_start sub_0804CE50 sub_0804CE50: @ 0x0804CE50 movs r0, #1 bx lr thumb_func_start nullsub_265 nullsub_265: @ 0x0804CE54 bx lr .align 2, 0 thumb_func_start sub_0804CE58 sub_0804CE58: @ 0x0804CE58 movs r0, #1 bx lr thumb_func_start nullsub_266 nullsub_266: @ 0x0804CE5C bx lr .align 2, 0 thumb_func_start sub_0804CE60 sub_0804CE60: @ 0x0804CE60 movs r0, #1 bx lr thumb_func_start nullsub_267 nullsub_267: @ 0x0804CE64 bx lr .align 2, 0 thumb_func_start sub_0804CE68 sub_0804CE68: @ 0x0804CE68 movs r0, #1 bx lr thumb_func_start nullsub_268 nullsub_268: @ 0x0804CE6C bx lr .align 2, 0 thumb_func_start sub_0804CE70 sub_0804CE70: @ 0x0804CE70 movs r0, #1 bx lr thumb_func_start nullsub_269 nullsub_269: @ 0x0804CE74 bx lr .align 2, 0 thumb_func_start sub_0804CE78 sub_0804CE78: @ 0x0804CE78 movs r0, #1 bx lr thumb_func_start nullsub_270 nullsub_270: @ 0x0804CE7C bx lr .align 2, 0 thumb_func_start sub_0804CE80 sub_0804CE80: @ 0x0804CE80 push {lr} movs r0, #3 bl sub_0807CC30 cmp r0, #0 beq _0804CE92 ldr r1, _0804CE98 @ =gUnk_02034350 ldr r0, _0804CE9C @ =gUnk_080E103C str r0, [r1, #0x70] _0804CE92: movs r0, #1 pop {pc} .align 2, 0 _0804CE98: .4byte gUnk_02034350 _0804CE9C: .4byte gUnk_080E103C thumb_func_start nullsub_271 nullsub_271: @ 0x0804CEA0 bx lr .align 2, 0 thumb_func_start sub_0804CEA4 sub_0804CEA4: @ 0x0804CEA4 movs r0, #1 bx lr thumb_func_start nullsub_272 nullsub_272: @ 0x0804CEA8 bx lr .align 2, 0 thumb_func_start sub_0804CEAC sub_0804CEAC: @ 0x0804CEAC movs r0, #1 bx lr thumb_func_start nullsub_273 nullsub_273: @ 0x0804CEB0 bx lr .align 2, 0 thumb_func_start sub_0804CEB4 sub_0804CEB4: @ 0x0804CEB4 movs r0, #1 bx lr thumb_func_start nullsub_274 nullsub_274: @ 0x0804CEB8 bx lr .align 2, 0 thumb_func_start sub_0804CEBC sub_0804CEBC: @ 0x0804CEBC movs r0, #1 bx lr thumb_func_start nullsub_275 nullsub_275: @ 0x0804CEC0 bx lr .align 2, 0 thumb_func_start sub_0804CEC4 sub_0804CEC4: @ 0x0804CEC4 movs r0, #1 bx lr thumb_func_start nullsub_276 nullsub_276: @ 0x0804CEC8 bx lr .align 2, 0 thumb_func_start sub_0804CECC sub_0804CECC: @ 0x0804CECC movs r0, #1 bx lr thumb_func_start nullsub_277 nullsub_277: @ 0x0804CED0 bx lr .align 2, 0 thumb_func_start sub_0804CED4 sub_0804CED4: @ 0x0804CED4 movs r0, #1 bx lr thumb_func_start sub_0804CED8 sub_0804CED8: @ 0x0804CED8 push {lr} movs r0, #3 bl sub_0807CC30 cmp r0, #0 beq _0804CF18 ldr r1, _0804CF04 @ =gUnk_0200B650 movs r0, #0 str r0, [r1] ldr r2, _0804CF08 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0804CF0C @ =0x0000FDFF ands r0, r1 strh r0, [r2] ldr r0, _0804CF10 @ =gUnk_03001160 bl sub_0807AABC ldr r0, _0804CF14 @ =gUnk_080E1814 bl sub_0804ADDC b _0804CF2E .align 2, 0 _0804CF04: .4byte gUnk_0200B650 _0804CF08: .4byte gUnk_03000F50 _0804CF0C: .4byte 0x0000FDFF _0804CF10: .4byte gUnk_03001160 _0804CF14: .4byte gUnk_080E1814 _0804CF18: ldr r0, _0804CF30 @ =0x80100000 bl sub_080A3268 ldr r0, _0804CF34 @ =gUnk_02033A90 movs r2, #0x86 lsls r2, r2, #4 adds r1, r0, r2 adds r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] _0804CF2E: pop {pc} .align 2, 0 _0804CF30: .4byte 0x80100000 _0804CF34: .4byte gUnk_02033A90 thumb_func_start sub_0804CF38 sub_0804CF38: @ 0x0804CF38 movs r0, #1 bx lr thumb_func_start nullsub_278 nullsub_278: @ 0x0804CF3C bx lr .align 2, 0 thumb_func_start sub_0804CF40 sub_0804CF40: @ 0x0804CF40 movs r0, #1 bx lr thumb_func_start sub_0804CF44 sub_0804CF44: @ 0x0804CF44 ldr r1, _0804CF58 @ =gUnk_030010A0 adds r2, r1, #0 adds r2, #0x38 movs r0, #0 strb r0, [r2] adds r1, #0x39 movs r0, #0x5a strb r0, [r1] bx lr .align 2, 0 _0804CF58: .4byte gUnk_030010A0 thumb_func_start sub_0804CF5C sub_0804CF5C: @ 0x0804CF5C movs r0, #1 bx lr thumb_func_start sub_0804CF60 sub_0804CF60: @ 0x0804CF60 push {lr} bl sub_080300E8 pop {pc} thumb_func_start sub_0804CF68 sub_0804CF68: @ 0x0804CF68 movs r0, #1 bx lr thumb_func_start nullsub_39 nullsub_39: @ 0x0804CF6C bx lr .align 2, 0 thumb_func_start sub_0804CF70 sub_0804CF70: @ 0x0804CF70 movs r0, #1 bx lr thumb_func_start sub_0804CF74 sub_0804CF74: @ 0x0804CF74 push {lr} bl sub_080300E8 pop {pc} thumb_func_start sub_0804CF7C sub_0804CF7C: @ 0x0804CF7C movs r0, #1 bx lr thumb_func_start nullsub_40 nullsub_40: @ 0x0804CF80 bx lr .align 2, 0 thumb_func_start sub_0804CF84 sub_0804CF84: @ 0x0804CF84 movs r0, #1 bx lr thumb_func_start nullsub_41 nullsub_41: @ 0x0804CF88 bx lr .align 2, 0 thumb_func_start sub_0804CF8C sub_0804CF8C: @ 0x0804CF8C movs r0, #1 bx lr thumb_func_start nullsub_42 nullsub_42: @ 0x0804CF90 bx lr .align 2, 0 thumb_func_start sub_0804CF94 sub_0804CF94: @ 0x0804CF94 movs r0, #1 bx lr thumb_func_start nullsub_43 nullsub_43: @ 0x0804CF98 bx lr .align 2, 0 thumb_func_start sub_0804CF9C sub_0804CF9C: @ 0x0804CF9C movs r0, #1 bx lr thumb_func_start nullsub_44 nullsub_44: @ 0x0804CFA0 bx lr .align 2, 0 thumb_func_start sub_0804CFA4 sub_0804CFA4: @ 0x0804CFA4 movs r0, #1 bx lr thumb_func_start nullsub_45 nullsub_45: @ 0x0804CFA8 bx lr .align 2, 0 thumb_func_start sub_0804CFAC sub_0804CFAC: @ 0x0804CFAC movs r0, #1 bx lr thumb_func_start sub_0804CFB0 sub_0804CFB0: @ 0x0804CFB0 push {lr} movs r0, #0x31 bl sub_0807CBE4 cmp r0, #0 bne _0804CFFE ldr r1, _0804CFD0 @ =gUnk_030010A0 adds r0, r1, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #0 bne _0804CFD8 ldr r0, _0804CFD4 @ =0x80100000 bl sub_080A3268 b _0804CFEE .align 2, 0 _0804CFD0: .4byte gUnk_030010A0 _0804CFD4: .4byte 0x80100000 _0804CFD8: adds r0, r1, #0 adds r0, #0x39 ldrb r0, [r0] cmp r0, #0 bne _0804CFEE ldr r0, _0804D000 @ =0x80050000 bl sub_080A3268 movs r0, #3 bl sub_08078A90 _0804CFEE: ldr r0, _0804D004 @ =gUnk_02033A90 movs r2, #0x86 lsls r2, r2, #4 adds r1, r0, r2 adds r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] _0804CFFE: pop {pc} .align 2, 0 _0804D000: .4byte 0x80050000 _0804D004: .4byte gUnk_02033A90 thumb_func_start sub_0804D008 sub_0804D008: @ 0x0804D008 movs r0, #1 bx lr thumb_func_start nullsub_279 nullsub_279: @ 0x0804D00C bx lr .align 2, 0 thumb_func_start sub_0804D010 sub_0804D010: @ 0x0804D010 movs r0, #1 bx lr thumb_func_start nullsub_280 nullsub_280: @ 0x0804D014 bx lr .align 2, 0 thumb_func_start sub_0804D018 sub_0804D018: @ 0x0804D018 movs r0, #1 bx lr thumb_func_start nullsub_281 nullsub_281: @ 0x0804D01C bx lr .align 2, 0 thumb_func_start sub_0804D020 sub_0804D020: @ 0x0804D020 movs r0, #1 bx lr thumb_func_start nullsub_282 nullsub_282: @ 0x0804D024 bx lr .align 2, 0 thumb_func_start sub_0804D028 sub_0804D028: @ 0x0804D028 movs r0, #1 bx lr thumb_func_start nullsub_283 nullsub_283: @ 0x0804D02C bx lr .align 2, 0 thumb_func_start sub_0804D030 sub_0804D030: @ 0x0804D030 movs r0, #1 bx lr thumb_func_start nullsub_284 nullsub_284: @ 0x0804D034 bx lr .align 2, 0 thumb_func_start sub_0804D038 sub_0804D038: @ 0x0804D038 movs r0, #1 bx lr thumb_func_start nullsub_285 nullsub_285: @ 0x0804D03C bx lr .align 2, 0 thumb_func_start sub_0804D040 sub_0804D040: @ 0x0804D040 movs r0, #1 bx lr thumb_func_start nullsub_286 nullsub_286: @ 0x0804D044 bx lr .align 2, 0 thumb_func_start sub_0804D048 sub_0804D048: @ 0x0804D048 movs r0, #1 bx lr thumb_func_start nullsub_287 nullsub_287: @ 0x0804D04C bx lr .align 2, 0 thumb_func_start sub_0804D050 sub_0804D050: @ 0x0804D050 movs r0, #1 bx lr thumb_func_start nullsub_288 nullsub_288: @ 0x0804D054 bx lr .align 2, 0 thumb_func_start sub_0804D058 sub_0804D058: @ 0x0804D058 movs r0, #1 bx lr thumb_func_start nullsub_289 nullsub_289: @ 0x0804D05C bx lr .align 2, 0 thumb_func_start sub_0804D060 sub_0804D060: @ 0x0804D060 movs r0, #1 bx lr thumb_func_start nullsub_290 nullsub_290: @ 0x0804D064 bx lr .align 2, 0 thumb_func_start sub_0804D068 sub_0804D068: @ 0x0804D068 movs r0, #1 bx lr thumb_func_start nullsub_291 nullsub_291: @ 0x0804D06C bx lr .align 2, 0 thumb_func_start sub_0804D070 sub_0804D070: @ 0x0804D070 movs r0, #1 bx lr thumb_func_start sub_0804D074 sub_0804D074: @ 0x0804D074 push {lr} movs r0, #4 bl sub_0807CD04 bl sub_080530C8 movs r0, #3 bl sub_0805B4D0 movs r0, #0x17 bl sub_0807CA84 cmp r0, #0 bne _0804D0A0 movs r0, #0x45 bl sub_0807CBD0 cmp r0, #0 beq _0804D0A0 ldr r0, _0804D0A4 @ =gUnk_080E3850 bl sub_0804ADDC _0804D0A0: pop {pc} .align 2, 0 _0804D0A4: .4byte gUnk_080E3850 thumb_func_start sub_0804D0A8 sub_0804D0A8: @ 0x0804D0A8 movs r0, #1 bx lr thumb_func_start sub_0804D0AC sub_0804D0AC: @ 0x0804D0AC push {lr} bl sub_0804D0B4 pop {pc} thumb_func_start sub_0804D0B4 sub_0804D0B4: @ 0x0804D0B4 push {lr} movs r0, #0x29 bl sub_0807CBD0 cmp r0, #0 bne _0804D0D2 movs r0, #0x29 bl sub_0807CCB4 movs r0, #0x4b bl sub_0807CCB4 movs r0, #0x4e bl sub_0807CCB4 _0804D0D2: pop {pc} thumb_func_start sub_0804D0D4 sub_0804D0D4: @ 0x0804D0D4 movs r0, #1 bx lr thumb_func_start nullsub_46 nullsub_46: @ 0x0804D0D8 bx lr .align 2, 0 thumb_func_start sub_0804D0DC sub_0804D0DC: @ 0x0804D0DC movs r0, #1 bx lr thumb_func_start nullsub_47 nullsub_47: @ 0x0804D0E0 bx lr .align 2, 0 thumb_func_start sub_0804D0E4 sub_0804D0E4: @ 0x0804D0E4 movs r0, #1 bx lr thumb_func_start nullsub_48 nullsub_48: @ 0x0804D0E8 bx lr .align 2, 0 thumb_func_start sub_0804D0EC sub_0804D0EC: @ 0x0804D0EC movs r0, #1 bx lr thumb_func_start nullsub_49 nullsub_49: @ 0x0804D0F0 bx lr .align 2, 0 thumb_func_start sub_0804D0F4 sub_0804D0F4: @ 0x0804D0F4 movs r0, #1 bx lr thumb_func_start nullsub_50 nullsub_50: @ 0x0804D0F8 bx lr .align 2, 0 thumb_func_start sub_0804D0FC sub_0804D0FC: @ 0x0804D0FC movs r0, #1 bx lr thumb_func_start nullsub_51 nullsub_51: @ 0x0804D100 bx lr .align 2, 0 thumb_func_start sub_0804D104 sub_0804D104: @ 0x0804D104 movs r0, #1 bx lr thumb_func_start nullsub_52 nullsub_52: @ 0x0804D108 bx lr .align 2, 0 thumb_func_start sub_0804D10C sub_0804D10C: @ 0x0804D10C movs r0, #1 bx lr thumb_func_start nullsub_53 nullsub_53: @ 0x0804D110 bx lr .align 2, 0 thumb_func_start sub_0804D114 sub_0804D114: @ 0x0804D114 movs r0, #1 bx lr thumb_func_start nullsub_54 nullsub_54: @ 0x0804D118 bx lr .align 2, 0 thumb_func_start sub_0804D11C sub_0804D11C: @ 0x0804D11C movs r0, #1 bx lr thumb_func_start nullsub_55 nullsub_55: @ 0x0804D120 bx lr .align 2, 0 thumb_func_start sub_0804D124 sub_0804D124: @ 0x0804D124 movs r0, #1 bx lr thumb_func_start nullsub_56 nullsub_56: @ 0x0804D128 bx lr .align 2, 0 thumb_func_start sub_0804D12C sub_0804D12C: @ 0x0804D12C movs r0, #1 bx lr thumb_func_start nullsub_57 nullsub_57: @ 0x0804D130 bx lr .align 2, 0 thumb_func_start sub_0804D134 sub_0804D134: @ 0x0804D134 movs r0, #1 bx lr thumb_func_start nullsub_58 nullsub_58: @ 0x0804D138 bx lr .align 2, 0 thumb_func_start sub_0804D13C sub_0804D13C: @ 0x0804D13C movs r0, #1 bx lr thumb_func_start sub_0804D140 sub_0804D140: @ 0x0804D140 push {lr} movs r0, #0x80 lsls r0, r0, #1 bl sub_0805308C movs r0, #5 bl sub_0807CC30 cmp r0, #0 beq _0804D160 ldr r0, _0804D15C @ =gUnk_080E49F4 bl sub_0804ADDC b _0804D176 .align 2, 0 _0804D15C: .4byte gUnk_080E49F4 _0804D160: ldr r0, _0804D178 @ =0x80100000 bl sub_080A3268 ldr r0, _0804D17C @ =gUnk_02033A90 movs r2, #0x86 lsls r2, r2, #4 adds r1, r0, r2 adds r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] _0804D176: pop {pc} .align 2, 0 _0804D178: .4byte 0x80100000 _0804D17C: .4byte gUnk_02033A90 thumb_func_start sub_0804D180 sub_0804D180: @ 0x0804D180 movs r0, #1 bx lr thumb_func_start nullsub_292 nullsub_292: @ 0x0804D184 bx lr .align 2, 0 thumb_func_start sub_0804D188 sub_0804D188: @ 0x0804D188 movs r0, #1 bx lr thumb_func_start sub_0804D18C sub_0804D18C: @ 0x0804D18C push {lr} movs r0, #0x48 bl sub_0807CBD0 cmp r0, #0 bne _0804D1A4 movs r0, #0x46 bl sub_0807CD34 ldr r0, _0804D1A8 @ =gUnk_080E4BD8 bl sub_0804ADDC _0804D1A4: pop {pc} .align 2, 0 _0804D1A8: .4byte gUnk_080E4BD8 thumb_func_start sub_0804D1AC sub_0804D1AC: @ 0x0804D1AC movs r0, #1 bx lr thumb_func_start sub_0804D1B0 sub_0804D1B0: @ 0x0804D1B0 push {lr} bl sub_0804D0B4 movs r0, #0x6c bl sub_0807CBD0 cmp r0, #0 beq _0804D1CC ldr r0, _0804D1C8 @ =gUnk_080E4CD8 bl sub_0804ADDC b _0804D1D2 .align 2, 0 _0804D1C8: .4byte gUnk_080E4CD8 _0804D1CC: ldr r0, _0804D1E4 @ =gUnk_080E4CF8 bl sub_0804ADDC _0804D1D2: movs r0, #0x4b bl sub_0807CBD0 cmp r0, #0 bne _0804D1E2 movs r0, #0x49 bl sub_0807CD34 _0804D1E2: pop {pc} .align 2, 0 _0804D1E4: .4byte gUnk_080E4CF8 thumb_func_start sub_0804D1E8 sub_0804D1E8: @ 0x0804D1E8 movs r0, #1 bx lr thumb_func_start nullsub_293 nullsub_293: @ 0x0804D1EC bx lr .align 2, 0 thumb_func_start sub_0804D1F0 sub_0804D1F0: @ 0x0804D1F0 movs r0, #1 bx lr thumb_func_start nullsub_294 nullsub_294: @ 0x0804D1F4 bx lr .align 2, 0 thumb_func_start sub_0804D1F8 sub_0804D1F8: @ 0x0804D1F8 movs r0, #1 bx lr thumb_func_start nullsub_295 nullsub_295: @ 0x0804D1FC bx lr .align 2, 0 thumb_func_start sub_0804D200 sub_0804D200: @ 0x0804D200 movs r0, #1 bx lr thumb_func_start nullsub_296 nullsub_296: @ 0x0804D204 bx lr .align 2, 0 thumb_func_start sub_0804D208 sub_0804D208: @ 0x0804D208 movs r0, #1 bx lr thumb_func_start nullsub_297 nullsub_297: @ 0x0804D20C bx lr .align 2, 0 thumb_func_start sub_0804D210 sub_0804D210: @ 0x0804D210 movs r0, #1 bx lr thumb_func_start nullsub_298 nullsub_298: @ 0x0804D214 bx lr .align 2, 0 thumb_func_start sub_0804D218 sub_0804D218: @ 0x0804D218 movs r0, #1 bx lr thumb_func_start nullsub_299 nullsub_299: @ 0x0804D21C bx lr .align 2, 0 thumb_func_start sub_0804D220 sub_0804D220: @ 0x0804D220 movs r0, #1 bx lr thumb_func_start nullsub_300 nullsub_300: @ 0x0804D224 bx lr .align 2, 0 thumb_func_start sub_0804D228 sub_0804D228: @ 0x0804D228 movs r0, #1 bx lr thumb_func_start sub_0804D22C sub_0804D22C: @ 0x0804D22C push {lr} movs r0, #0x59 bl sub_0807CBD0 cmp r0, #0 bne _0804D244 ldr r0, _0804D240 @ =gUnk_080E5660 bl sub_0804ADDC b _0804D24A .align 2, 0 _0804D240: .4byte gUnk_080E5660 _0804D244: ldr r0, _0804D24C @ =gUnk_080E5680 bl sub_0804ADDC _0804D24A: pop {pc} .align 2, 0 _0804D24C: .4byte gUnk_080E5680 thumb_func_start sub_0804D250 sub_0804D250: @ 0x0804D250 movs r0, #1 bx lr thumb_func_start nullsub_301 nullsub_301: @ 0x0804D254 bx lr .align 2, 0 thumb_func_start sub_0804D258 sub_0804D258: @ 0x0804D258 movs r0, #1 bx lr thumb_func_start nullsub_302 nullsub_302: @ 0x0804D25C bx lr .align 2, 0 thumb_func_start sub_0804D260 sub_0804D260: @ 0x0804D260 movs r0, #1 bx lr thumb_func_start nullsub_303 nullsub_303: @ 0x0804D264 bx lr .align 2, 0 thumb_func_start sub_0804D268 sub_0804D268: @ 0x0804D268 movs r0, #1 bx lr thumb_func_start nullsub_304 nullsub_304: @ 0x0804D26C bx lr .align 2, 0 thumb_func_start sub_0804D270 sub_0804D270: @ 0x0804D270 movs r0, #1 bx lr thumb_func_start nullsub_305 nullsub_305: @ 0x0804D274 bx lr .align 2, 0 thumb_func_start sub_0804D278 sub_0804D278: @ 0x0804D278 movs r0, #1 bx lr thumb_func_start sub_0804D27C sub_0804D27C: @ 0x0804D27C push {lr} bl sub_0804D0B4 movs r0, #0x4b bl sub_0807CBD0 cmp r0, #0 bne _0804D298 ldr r0, _0804D294 @ =gUnk_080E5E3C bl sub_0804ADDC b _0804D29E .align 2, 0 _0804D294: .4byte gUnk_080E5E3C _0804D298: ldr r0, _0804D2A0 @ =gUnk_080E5E5C bl sub_0804ADDC _0804D29E: pop {pc} .align 2, 0 _0804D2A0: .4byte gUnk_080E5E5C thumb_func_start sub_0804D2A4 sub_0804D2A4: @ 0x0804D2A4 movs r0, #1 bx lr thumb_func_start nullsub_306 nullsub_306: @ 0x0804D2A8 bx lr .align 2, 0 thumb_func_start sub_0804D2AC sub_0804D2AC: @ 0x0804D2AC movs r0, #1 bx lr thumb_func_start nullsub_307 nullsub_307: @ 0x0804D2B0 bx lr .align 2, 0 thumb_func_start sub_0804D2B4 sub_0804D2B4: @ 0x0804D2B4 movs r0, #1 bx lr thumb_func_start nullsub_308 nullsub_308: @ 0x0804D2B8 bx lr .align 2, 0 thumb_func_start sub_0804D2BC sub_0804D2BC: @ 0x0804D2BC movs r0, #1 bx lr thumb_func_start nullsub_309 nullsub_309: @ 0x0804D2C0 bx lr .align 2, 0 thumb_func_start sub_0804D2C4 sub_0804D2C4: @ 0x0804D2C4 movs r0, #1 bx lr thumb_func_start nullsub_310 nullsub_310: @ 0x0804D2C8 bx lr .align 2, 0 thumb_func_start sub_0804D2CC sub_0804D2CC: @ 0x0804D2CC movs r0, #1 bx lr thumb_func_start nullsub_311 nullsub_311: @ 0x0804D2D0 bx lr .align 2, 0 thumb_func_start sub_0804D2D4 sub_0804D2D4: @ 0x0804D2D4 movs r0, #1 bx lr thumb_func_start nullsub_312 nullsub_312: @ 0x0804D2D8 bx lr .align 2, 0 thumb_func_start sub_0804D2DC sub_0804D2DC: @ 0x0804D2DC movs r0, #1 bx lr thumb_func_start nullsub_313 nullsub_313: @ 0x0804D2E0 bx lr .align 2, 0 thumb_func_start sub_0804D2E4 sub_0804D2E4: @ 0x0804D2E4 movs r0, #1 bx lr thumb_func_start sub_0804D2E8 sub_0804D2E8: @ 0x0804D2E8 push {lr} movs r0, #0x32 bl sub_0807CBD0 cmp r0, #0 bne _0804D2FA ldr r0, _0804D2FC @ =gUnk_080E693C bl sub_0804ADDC _0804D2FA: pop {pc} .align 2, 0 _0804D2FC: .4byte gUnk_080E693C thumb_func_start sub_0804D300 sub_0804D300: @ 0x0804D300 movs r0, #1 bx lr thumb_func_start nullsub_314 nullsub_314: @ 0x0804D304 bx lr .align 2, 0 thumb_func_start sub_0804D308 sub_0804D308: @ 0x0804D308 movs r0, #1 bx lr thumb_func_start nullsub_315 nullsub_315: @ 0x0804D30C bx lr .align 2, 0 thumb_func_start sub_0804D310 sub_0804D310: @ 0x0804D310 movs r0, #1 bx lr thumb_func_start nullsub_316 nullsub_316: @ 0x0804D314 bx lr .align 2, 0 thumb_func_start sub_0804D318 sub_0804D318: @ 0x0804D318 movs r0, #1 bx lr thumb_func_start nullsub_317 nullsub_317: @ 0x0804D31C bx lr .align 2, 0 thumb_func_start sub_0804D320 sub_0804D320: @ 0x0804D320 movs r0, #1 bx lr thumb_func_start nullsub_318 nullsub_318: @ 0x0804D324 bx lr .align 2, 0 thumb_func_start sub_0804D328 sub_0804D328: @ 0x0804D328 movs r0, #1 bx lr thumb_func_start nullsub_319 nullsub_319: @ 0x0804D32C bx lr .align 2, 0 thumb_func_start sub_0804D330 sub_0804D330: @ 0x0804D330 movs r0, #1 bx lr thumb_func_start sub_0804D334 sub_0804D334: @ 0x0804D334 push {lr} bl sub_08054570 pop {pc} thumb_func_start sub_0804D33C sub_0804D33C: @ 0x0804D33C movs r0, #1 bx lr thumb_func_start sub_0804D340 sub_0804D340: @ 0x0804D340 push {lr} ldr r0, _0804D374 @ =0x00000312 movs r1, #0x84 lsls r1, r1, #1 movs r2, #1 bl sub_0807B314 bl sub_08054570 movs r0, #0xc4 bl sub_0807CBD0 cmp r0, #0 bne _0804D362 ldr r0, _0804D378 @ =gUnk_080E718C bl sub_0804ADDC _0804D362: movs r0, #0xc5 bl sub_0807CBD0 cmp r0, #0 bne _0804D372 ldr r0, _0804D37C @ =gUnk_080E71AC bl sub_0804ADDC _0804D372: pop {pc} .align 2, 0 _0804D374: .4byte 0x00000312 _0804D378: .4byte gUnk_080E718C _0804D37C: .4byte gUnk_080E71AC thumb_func_start sub_0804D380 sub_0804D380: @ 0x0804D380 movs r0, #1 bx lr thumb_func_start sub_0804D384 sub_0804D384: @ 0x0804D384 push {lr} movs r0, #0 bl sub_0805AF60 movs r0, #6 bl sub_0807CC30 cmp r0, #0 beq _0804D39C ldr r0, _0804D3B0 @ =gUnk_080E7314 bl sub_0804ADDC _0804D39C: movs r0, #0x7b bl sub_0807CBD0 cmp r0, #0 bne _0804D3B8 ldr r0, _0804D3B4 @ =gUnk_080E72C4 bl sub_0804ADDC b _0804D3EA .align 2, 0 _0804D3B0: .4byte gUnk_080E7314 _0804D3B4: .4byte gUnk_080E72C4 _0804D3B8: movs r0, #6 bl sub_0807CD04 movs r0, #0x43 bl sub_0807CA84 cmp r0, #0 bne _0804D3EA movs r0, #3 bl sub_08078A90 ldr r0, _0804D3EC @ =gUnk_080E72E4 bl sub_0804ADDC ldr r0, _0804D3F0 @ =gUnk_02033A90 movs r2, #0x86 lsls r2, r2, #4 adds r1, r0, r2 adds r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] ldr r0, _0804D3F4 @ =0x80100000 bl sub_080A3268 _0804D3EA: pop {pc} .align 2, 0 _0804D3EC: .4byte gUnk_080E72E4 _0804D3F0: .4byte gUnk_02033A90 _0804D3F4: .4byte 0x80100000 thumb_func_start sub_0804D3F8 sub_0804D3F8: @ 0x0804D3F8 movs r0, #1 bx lr thumb_func_start sub_0804D3FC sub_0804D3FC: @ 0x0804D3FC push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D408 sub_0804D408: @ 0x0804D408 movs r0, #1 bx lr thumb_func_start sub_0804D40C sub_0804D40C: @ 0x0804D40C push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D418 sub_0804D418: @ 0x0804D418 movs r0, #1 bx lr thumb_func_start sub_0804D41C sub_0804D41C: @ 0x0804D41C push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D428 sub_0804D428: @ 0x0804D428 movs r0, #1 bx lr thumb_func_start sub_0804D42C sub_0804D42C: @ 0x0804D42C push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D438 sub_0804D438: @ 0x0804D438 movs r0, #1 bx lr thumb_func_start sub_0804D43C sub_0804D43C: @ 0x0804D43C push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D448 sub_0804D448: @ 0x0804D448 movs r0, #1 bx lr thumb_func_start sub_0804D44C sub_0804D44C: @ 0x0804D44C push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D458 sub_0804D458: @ 0x0804D458 movs r0, #1 bx lr thumb_func_start sub_0804D45C sub_0804D45C: @ 0x0804D45C push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D468 sub_0804D468: @ 0x0804D468 movs r0, #1 bx lr thumb_func_start sub_0804D46C sub_0804D46C: @ 0x0804D46C push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D478 sub_0804D478: @ 0x0804D478 movs r0, #1 bx lr thumb_func_start sub_0804D47C sub_0804D47C: @ 0x0804D47C push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D488 sub_0804D488: @ 0x0804D488 movs r0, #1 bx lr thumb_func_start sub_0804D48C sub_0804D48C: @ 0x0804D48C push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D498 sub_0804D498: @ 0x0804D498 movs r0, #1 bx lr thumb_func_start sub_0804D49C sub_0804D49C: @ 0x0804D49C push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D4A8 sub_0804D4A8: @ 0x0804D4A8 movs r0, #1 bx lr thumb_func_start sub_0804D4AC sub_0804D4AC: @ 0x0804D4AC push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D4B8 sub_0804D4B8: @ 0x0804D4B8 movs r0, #1 bx lr thumb_func_start sub_0804D4BC sub_0804D4BC: @ 0x0804D4BC push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D4C8 sub_0804D4C8: @ 0x0804D4C8 movs r0, #1 bx lr thumb_func_start sub_0804D4CC sub_0804D4CC: @ 0x0804D4CC push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D4D8 sub_0804D4D8: @ 0x0804D4D8 movs r0, #1 bx lr thumb_func_start sub_0804D4DC sub_0804D4DC: @ 0x0804D4DC push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D4E8 sub_0804D4E8: @ 0x0804D4E8 movs r0, #1 bx lr thumb_func_start sub_0804D4EC sub_0804D4EC: @ 0x0804D4EC push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D4F8 sub_0804D4F8: @ 0x0804D4F8 movs r0, #1 bx lr thumb_func_start sub_0804D4FC sub_0804D4FC: @ 0x0804D4FC push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D508 sub_0804D508: @ 0x0804D508 movs r0, #1 bx lr thumb_func_start sub_0804D50C sub_0804D50C: @ 0x0804D50C push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D518 sub_0804D518: @ 0x0804D518 movs r0, #1 bx lr thumb_func_start sub_0804D51C sub_0804D51C: @ 0x0804D51C push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D528 sub_0804D528: @ 0x0804D528 movs r0, #1 bx lr thumb_func_start sub_0804D52C sub_0804D52C: @ 0x0804D52C push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D538 sub_0804D538: @ 0x0804D538 movs r0, #1 bx lr thumb_func_start nullsub_59 nullsub_59: @ 0x0804D53C bx lr .align 2, 0 thumb_func_start sub_0804D540 sub_0804D540: @ 0x0804D540 movs r0, #1 bx lr thumb_func_start sub_0804D544 sub_0804D544: @ 0x0804D544 push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D550 sub_0804D550: @ 0x0804D550 movs r0, #1 bx lr thumb_func_start sub_0804D554 sub_0804D554: @ 0x0804D554 push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D560 sub_0804D560: @ 0x0804D560 movs r0, #1 bx lr thumb_func_start sub_0804D564 sub_0804D564: @ 0x0804D564 push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D570 sub_0804D570: @ 0x0804D570 movs r0, #1 bx lr thumb_func_start sub_0804D574 sub_0804D574: @ 0x0804D574 push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D580 sub_0804D580: @ 0x0804D580 movs r0, #1 bx lr thumb_func_start sub_0804D584 sub_0804D584: @ 0x0804D584 push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D590 sub_0804D590: @ 0x0804D590 movs r0, #1 bx lr thumb_func_start nullsub_60 nullsub_60: @ 0x0804D594 bx lr .align 2, 0 thumb_func_start sub_0804D598 sub_0804D598: @ 0x0804D598 movs r0, #1 bx lr thumb_func_start nullsub_61 nullsub_61: @ 0x0804D59C bx lr .align 2, 0 thumb_func_start sub_0804D5A0 sub_0804D5A0: @ 0x0804D5A0 movs r0, #1 bx lr thumb_func_start nullsub_62 nullsub_62: @ 0x0804D5A4 bx lr .align 2, 0 thumb_func_start sub_0804D5A8 sub_0804D5A8: @ 0x0804D5A8 movs r0, #1 bx lr thumb_func_start nullsub_63 nullsub_63: @ 0x0804D5AC bx lr .align 2, 0 thumb_func_start sub_0804D5B0 sub_0804D5B0: @ 0x0804D5B0 movs r0, #1 bx lr thumb_func_start nullsub_64 nullsub_64: @ 0x0804D5B4 bx lr .align 2, 0 thumb_func_start sub_0804D5B8 sub_0804D5B8: @ 0x0804D5B8 movs r0, #1 bx lr thumb_func_start nullsub_65 nullsub_65: @ 0x0804D5BC bx lr .align 2, 0 thumb_func_start sub_0804D5C0 sub_0804D5C0: @ 0x0804D5C0 movs r0, #1 bx lr thumb_func_start sub_0804D5C4 sub_0804D5C4: @ 0x0804D5C4 push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D5D0 sub_0804D5D0: @ 0x0804D5D0 movs r0, #1 bx lr thumb_func_start sub_0804D5D4 sub_0804D5D4: @ 0x0804D5D4 push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D5E0 sub_0804D5E0: @ 0x0804D5E0 movs r0, #1 bx lr thumb_func_start sub_0804D5E4 sub_0804D5E4: @ 0x0804D5E4 push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D5F0 sub_0804D5F0: @ 0x0804D5F0 movs r0, #1 bx lr thumb_func_start sub_0804D5F4 sub_0804D5F4: @ 0x0804D5F4 push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D600 sub_0804D600: @ 0x0804D600 movs r0, #1 bx lr thumb_func_start nullsub_66 nullsub_66: @ 0x0804D604 bx lr .align 2, 0 thumb_func_start sub_0804D608 sub_0804D608: @ 0x0804D608 movs r0, #1 bx lr thumb_func_start nullsub_67 nullsub_67: @ 0x0804D60C bx lr .align 2, 0 thumb_func_start sub_0804D610 sub_0804D610: @ 0x0804D610 movs r0, #1 bx lr thumb_func_start nullsub_68 nullsub_68: @ 0x0804D614 bx lr .align 2, 0 thumb_func_start sub_0804D618 sub_0804D618: @ 0x0804D618 movs r0, #1 bx lr thumb_func_start nullsub_69 nullsub_69: @ 0x0804D61C bx lr .align 2, 0 thumb_func_start sub_0804D620 sub_0804D620: @ 0x0804D620 movs r0, #1 bx lr thumb_func_start nullsub_70 nullsub_70: @ 0x0804D624 bx lr .align 2, 0 thumb_func_start sub_0804D628 sub_0804D628: @ 0x0804D628 movs r0, #1 bx lr thumb_func_start nullsub_71 nullsub_71: @ 0x0804D62C bx lr .align 2, 0 thumb_func_start sub_0804D630 sub_0804D630: @ 0x0804D630 movs r0, #1 bx lr thumb_func_start sub_0804D634 sub_0804D634: @ 0x0804D634 push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D640 sub_0804D640: @ 0x0804D640 movs r0, #1 bx lr thumb_func_start sub_0804D644 sub_0804D644: @ 0x0804D644 push {lr} movs r0, #0 bl sub_0805AF60 movs r0, #0x70 bl sub_0807CBD0 cmp r0, #0 bne _0804D65C ldr r0, _0804D660 @ =gUnk_080EA09C bl sub_0804ADDC _0804D65C: pop {pc} .align 2, 0 _0804D660: .4byte gUnk_080EA09C thumb_func_start sub_0804D664 sub_0804D664: @ 0x0804D664 movs r0, #1 bx lr thumb_func_start sub_0804D668 sub_0804D668: @ 0x0804D668 push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D674 sub_0804D674: @ 0x0804D674 movs r0, #1 bx lr thumb_func_start sub_0804D678 sub_0804D678: @ 0x0804D678 push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D684 sub_0804D684: @ 0x0804D684 movs r0, #1 bx lr thumb_func_start sub_0804D688 sub_0804D688: @ 0x0804D688 push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D694 sub_0804D694: @ 0x0804D694 movs r0, #1 bx lr thumb_func_start sub_0804D698 sub_0804D698: @ 0x0804D698 push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D6A4 sub_0804D6A4: @ 0x0804D6A4 movs r0, #1 bx lr thumb_func_start sub_0804D6A8 sub_0804D6A8: @ 0x0804D6A8 push {lr} movs r0, #0 bl sub_0805AF60 pop {pc} .align 2, 0 thumb_func_start sub_0804D6B4 sub_0804D6B4: @ 0x0804D6B4 movs r0, #1 bx lr thumb_func_start nullsub_72 nullsub_72: @ 0x0804D6B8 bx lr .align 2, 0 thumb_func_start sub_0804D6BC sub_0804D6BC: @ 0x0804D6BC movs r0, #1 bx lr thumb_func_start nullsub_73 nullsub_73: @ 0x0804D6C0 bx lr .align 2, 0 thumb_func_start sub_0804D6C4 sub_0804D6C4: @ 0x0804D6C4 movs r0, #1 bx lr thumb_func_start sub_0804D6C8 sub_0804D6C8: @ 0x0804D6C8 push {lr} ldr r0, _0804D6E4 @ =0x80100000 bl sub_080A3268 ldr r0, _0804D6E8 @ =gUnk_02033A90 movs r2, #0x86 lsls r2, r2, #4 adds r1, r0, r2 adds r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] pop {pc} .align 2, 0 _0804D6E4: .4byte 0x80100000 _0804D6E8: .4byte gUnk_02033A90 thumb_func_start sub_0804D6EC sub_0804D6EC: @ 0x0804D6EC movs r0, #1 bx lr thumb_func_start sub_0804D6F0 sub_0804D6F0: @ 0x0804D6F0 push {lr} movs r0, #0 bl sub_0805D3C8 ldr r2, _0804D72C @ =gUnk_030010A0 adds r0, r2, #0 adds r0, #0x38 ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0804D74C adds r0, r2, #0 adds r0, #0x39 ldrb r0, [r0] cmp r0, #0 beq _0804D74C adds r0, r2, #0 adds r0, #0x3c ldrb r0, [r0] cmp r0, #1 bne _0804D734 ldr r1, _0804D730 @ =gUnk_03001160 adds r0, r2, #0 adds r0, #0x48 ldrh r0, [r0] strh r0, [r1, #0x2e] adds r0, r2, #0 adds r0, #0x4a b _0804D746 .align 2, 0 _0804D72C: .4byte gUnk_030010A0 _0804D730: .4byte gUnk_03001160 _0804D734: cmp r0, #0 bne _0804D74C ldr r1, _0804D750 @ =gUnk_03001160 adds r0, r2, #0 adds r0, #0x44 ldrh r0, [r0] strh r0, [r1, #0x2e] adds r0, r2, #0 adds r0, #0x46 _0804D746: ldrh r0, [r0] adds r0, #8 strh r0, [r1, #0x32] _0804D74C: pop {pc} .align 2, 0 _0804D750: .4byte gUnk_03001160 thumb_func_start sub_0804D754 sub_0804D754: @ 0x0804D754 movs r0, #1 bx lr thumb_func_start sub_0804D758 sub_0804D758: @ 0x0804D758 push {lr} movs r0, #6 bl sub_0805B4D0 pop {pc} .align 2, 0 thumb_func_start sub_0804D764 sub_0804D764: @ 0x0804D764 movs r0, #1 bx lr thumb_func_start nullsub_74 nullsub_74: @ 0x0804D768 bx lr .align 2, 0 thumb_func_start sub_0804D76C sub_0804D76C: @ 0x0804D76C movs r0, #1 bx lr thumb_func_start nullsub_75 nullsub_75: @ 0x0804D770 bx lr .align 2, 0 thumb_func_start sub_0804D774 sub_0804D774: @ 0x0804D774 push {lr} bl sub_080534AC movs r0, #1 pop {pc} .align 2, 0 thumb_func_start sub_0804D780 sub_0804D780: @ 0x0804D780 push {r4, r5, lr} movs r0, #4 bl sub_0805B4D0 movs r0, #0x77 bl sub_0807CBD0 cmp r0, #0 bne _0804D7A0 ldr r0, _0804D79C @ =gUnk_080EAD68 bl sub_0804ADDC b _0804D7D0 .align 2, 0 _0804D79C: .4byte gUnk_080EAD68 _0804D7A0: movs r0, #0x79 bl sub_0807CBD0 adds r5, r0, #0 cmp r5, #0 bne _0804D7D0 ldr r0, _0804D7D4 @ =gUnk_080EADB8 bl sub_0804ADDC ldr r4, _0804D7D8 @ =0x00004072 ldr r1, _0804D7DC @ =0x00000145 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _0804D7E0 @ =0x00000149 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r0, _0804D7E4 @ =gUnk_02033A90 ldr r1, _0804D7E8 @ =0x00000864 adds r0, r0, r1 str r5, [r0] _0804D7D0: pop {r4, r5, pc} .align 2, 0 _0804D7D4: .4byte gUnk_080EADB8 _0804D7D8: .4byte 0x00004072 _0804D7DC: .4byte 0x00000145 _0804D7E0: .4byte 0x00000149 _0804D7E4: .4byte gUnk_02033A90 _0804D7E8: .4byte 0x00000864 thumb_func_start sub_0804D7EC sub_0804D7EC: @ 0x0804D7EC push {r4, lr} ldr r4, _0804D7F4 @ =gUnk_080EAE00 b _0804D804 .align 2, 0 _0804D7F4: .4byte gUnk_080EAE00 _0804D7F8: ldrh r1, [r4] adds r4, #2 ldr r0, _0804D80C @ =0x00004072 movs r2, #1 bl sub_0807B314 _0804D804: ldrh r0, [r4] cmp r0, #0 bne _0804D7F8 pop {r4, pc} .align 2, 0 _0804D80C: .4byte 0x00004072 thumb_func_start sub_0804D810 sub_0804D810: @ 0x0804D810 push {r4, lr} ldr r4, _0804D818 @ =gUnk_080EAE00 b _0804D826 .align 2, 0 _0804D818: .4byte gUnk_080EAE00 _0804D81C: ldrh r0, [r4] adds r4, #2 movs r1, #1 bl sub_0807BA8C _0804D826: ldrh r0, [r4] cmp r0, #0 bne _0804D81C pop {r4, pc} .align 2, 0 thumb_func_start sub_0804D830 sub_0804D830: @ 0x0804D830 movs r0, #1 bx lr thumb_func_start sub_0804D834 sub_0804D834: @ 0x0804D834 push {r4, lr} ldr r4, _0804D86C @ =gUnk_02033A90 movs r0, #0 movs r1, #0x40 strb r1, [r4] strb r0, [r4, #1] movs r0, #0x51 bl sub_0807CC30 cmp r0, #0 beq _0804D894 movs r0, #0x7f bl sub_0807CBD0 cmp r0, #0 bne _0804D878 ldr r0, _0804D870 @ =gUnk_080EAEC0 bl sub_0804ADDC movs r0, #0x7f bl sub_0807CCB4 ldr r0, _0804D874 @ =0x00000864 adds r1, r4, r0 movs r0, #0x11 str r0, [r1] b _0804D8BC .align 2, 0 _0804D86C: .4byte gUnk_02033A90 _0804D870: .4byte gUnk_080EAEC0 _0804D874: .4byte 0x00000864 _0804D878: ldr r0, _0804D88C @ =gUnk_080EAF20 bl sub_0804ADDC ldr r2, _0804D890 @ =0x00000864 adds r1, r4, r2 subs r2, #4 adds r0, r4, r2 ldr r0, [r0] str r0, [r1] b _0804D8BC .align 2, 0 _0804D88C: .4byte gUnk_080EAF20 _0804D890: .4byte 0x00000864 _0804D894: movs r0, #0x79 bl sub_0807CBD0 cmp r0, #0 beq _0804D8AC ldr r1, _0804D8C4 @ =0x00000864 adds r0, r4, r1 movs r2, #0x86 lsls r2, r2, #4 adds r1, r4, r2 ldr r1, [r1] str r1, [r0] _0804D8AC: movs r0, #1 bl sub_0807CBD0 cmp r0, #0 bne _0804D8BC ldr r0, _0804D8C8 @ =gUnk_080EAE60 bl sub_0804ADDC _0804D8BC: movs r0, #0x5d bl sub_0807CD80 pop {r4, pc} .align 2, 0 _0804D8C4: .4byte 0x00000864 _0804D8C8: .4byte gUnk_080EAE60 thumb_func_start sub_0804D8CC sub_0804D8CC: @ 0x0804D8CC movs r0, #1 bx lr thumb_func_start nullsub_320 nullsub_320: @ 0x0804D8D0 bx lr .align 2, 0 thumb_func_start sub_0804D8D4 sub_0804D8D4: @ 0x0804D8D4 movs r0, #1 bx lr thumb_func_start nullsub_321 nullsub_321: @ 0x0804D8D8 bx lr .align 2, 0 thumb_func_start sub_0804D8DC sub_0804D8DC: @ 0x0804D8DC movs r0, #1 bx lr thumb_func_start nullsub_322 nullsub_322: @ 0x0804D8E0 bx lr .align 2, 0 thumb_func_start sub_0804D8E4 sub_0804D8E4: @ 0x0804D8E4 movs r0, #1 bx lr thumb_func_start nullsub_323 nullsub_323: @ 0x0804D8E8 bx lr .align 2, 0 thumb_func_start sub_0804D8EC sub_0804D8EC: @ 0x0804D8EC movs r0, #1 bx lr thumb_func_start nullsub_324 nullsub_324: @ 0x0804D8F0 bx lr .align 2, 0 thumb_func_start sub_0804D8F4 sub_0804D8F4: @ 0x0804D8F4 movs r0, #1 bx lr thumb_func_start nullsub_325 nullsub_325: @ 0x0804D8F8 bx lr .align 2, 0 thumb_func_start sub_0804D8FC sub_0804D8FC: @ 0x0804D8FC movs r0, #1 bx lr thumb_func_start nullsub_326 nullsub_326: @ 0x0804D900 bx lr .align 2, 0 thumb_func_start sub_0804D904 sub_0804D904: @ 0x0804D904 push {r4, r5, lr} movs r0, #0x51 bl sub_0807CC30 adds r5, r0, #0 cmp r5, #0 beq _0804D93C ldr r1, _0804D930 @ =gUnk_02034350 ldr r0, _0804D934 @ =gUnk_080EB604 str r0, [r1, #0x6c] movs r0, #0 str r0, [r1, #0x74] ldr r0, _0804D938 @ =gUnk_02033A90 movs r1, #0x86 lsls r1, r1, #4 adds r2, r0, r1 adds r1, #4 adds r0, r0, r1 movs r1, #0x11 str r1, [r0] str r1, [r2] b _0804D96A .align 2, 0 _0804D930: .4byte gUnk_02034350 _0804D934: .4byte gUnk_080EB604 _0804D938: .4byte gUnk_02033A90 _0804D93C: movs r0, #0x79 bl sub_0807CBD0 cmp r0, #0 beq _0804D96A ldr r4, _0804D970 @ =gUnk_02034350 str r5, [r4, #0x6c] movs r0, #0x7a bl sub_0807CBD0 adds r5, r0, #0 cmp r5, #0 bne _0804D96A movs r0, #0x1c bl sub_0807CD04 ldr r0, _0804D974 @ =gUnk_080EB5D4 str r0, [r4, #0x6c] adds r1, r4, #0 adds r1, #0x88 ldr r0, _0804D978 @ =sub_0804D9B0 str r0, [r1] str r5, [r4, #0x74] _0804D96A: movs r0, #1 pop {r4, r5, pc} .align 2, 0 _0804D970: .4byte gUnk_02034350 _0804D974: .4byte gUnk_080EB5D4 _0804D978: .4byte sub_0804D9B0 thumb_func_start sub_0804D97C sub_0804D97C: @ 0x0804D97C push {lr} movs r0, #0x51 bl sub_0807CC30 cmp r0, #0 beq _0804D996 ldr r0, _0804D9A8 @ =gUnk_02033A90 ldr r2, _0804D9AC @ =0x00000864 adds r1, r0, r2 subs r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] _0804D996: movs r0, #0x79 bl sub_0807CBD0 cmp r0, #0 beq _0804D9A4 bl sub_0804D9B0 _0804D9A4: pop {pc} .align 2, 0 _0804D9A8: .4byte gUnk_02033A90 _0804D9AC: .4byte 0x00000864 thumb_func_start sub_0804D9B0 sub_0804D9B0: @ 0x0804D9B0 push {lr} ldr r0, _0804D9EC @ =0x00000797 movs r1, #1 movs r2, #5 movs r3, #1 bl sub_0807BB98 ldr r0, _0804D9F0 @ =0x00000357 movs r1, #1 movs r2, #5 movs r3, #1 bl sub_0807BB98 ldr r0, _0804D9F4 @ =0x0000055F movs r1, #1 movs r2, #2 movs r3, #1 bl sub_0807BB98 ldr r0, _0804D9F8 @ =gUnk_080EB684 bl sub_0804ADDC ldr r0, _0804D9FC @ =gUnk_02033A90 ldr r2, _0804DA00 @ =0x00000864 adds r1, r0, r2 subs r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] pop {pc} .align 2, 0 _0804D9EC: .4byte 0x00000797 _0804D9F0: .4byte 0x00000357 _0804D9F4: .4byte 0x0000055F _0804D9F8: .4byte gUnk_080EB684 _0804D9FC: .4byte gUnk_02033A90 _0804DA00: .4byte 0x00000864 thumb_func_start sub_0804DA04 sub_0804DA04: @ 0x0804DA04 movs r0, #1 bx lr thumb_func_start nullsub_327 nullsub_327: @ 0x0804DA08 bx lr .align 2, 0 thumb_func_start sub_0804DA0C sub_0804DA0C: @ 0x0804DA0C movs r0, #1 bx lr thumb_func_start nullsub_328 nullsub_328: @ 0x0804DA10 bx lr .align 2, 0 thumb_func_start sub_0804DA14 sub_0804DA14: @ 0x0804DA14 movs r0, #1 bx lr thumb_func_start nullsub_329 nullsub_329: @ 0x0804DA18 bx lr .align 2, 0 thumb_func_start sub_0804DA1C sub_0804DA1C: @ 0x0804DA1C movs r0, #1 bx lr thumb_func_start nullsub_330 nullsub_330: @ 0x0804DA20 bx lr .align 2, 0 thumb_func_start sub_0804DA24 sub_0804DA24: @ 0x0804DA24 movs r0, #1 bx lr thumb_func_start nullsub_331 nullsub_331: @ 0x0804DA28 bx lr .align 2, 0 thumb_func_start sub_0804DA2C sub_0804DA2C: @ 0x0804DA2C push {lr} movs r0, #0x77 bl sub_0807CBD0 adds r1, r0, #0 cmp r1, #0 bne _0804DA40 ldr r0, _0804DA44 @ =gUnk_02034350 str r1, [r0, #0x6c] str r1, [r0, #0x74] _0804DA40: movs r0, #1 pop {pc} .align 2, 0 _0804DA44: .4byte gUnk_02034350 thumb_func_start sub_0804DA48 sub_0804DA48: @ 0x0804DA48 push {lr} movs r0, #0x77 bl sub_0807CBD0 cmp r0, #0 bne _0804DA60 ldr r0, _0804DA5C @ =gUnk_080EB9F4 bl sub_0804ADDC b _0804DA8C .align 2, 0 _0804DA5C: .4byte gUnk_080EB9F4 _0804DA60: movs r0, #0x78 bl sub_0807CBD0 cmp r0, #0 bne _0804DA76 ldr r0, _0804DA90 @ =gUnk_080EBAA4 bl sub_0804ADDC movs r0, #0x75 bl sub_0807CCB4 _0804DA76: movs r0, #0x7b bl sub_0807CBD0 cmp r0, #0 beq _0804DA8C ldr r0, _0804DA94 @ =gUnk_080EBAF4 bl sub_0804ADDC movs r0, #0x76 bl sub_0807CCB4 _0804DA8C: pop {pc} .align 2, 0 _0804DA90: .4byte gUnk_080EBAA4 _0804DA94: .4byte gUnk_080EBAF4 thumb_func_start sub_0804DA98 sub_0804DA98: @ 0x0804DA98 movs r0, #1 bx lr thumb_func_start nullsub_332 nullsub_332: @ 0x0804DA9C bx lr .align 2, 0 thumb_func_start sub_0804DAA0 sub_0804DAA0: @ 0x0804DAA0 movs r0, #1 bx lr thumb_func_start nullsub_333 nullsub_333: @ 0x0804DAA4 bx lr .align 2, 0 thumb_func_start sub_0804DAA8 sub_0804DAA8: @ 0x0804DAA8 movs r0, #1 bx lr thumb_func_start nullsub_334 nullsub_334: @ 0x0804DAAC bx lr .align 2, 0 thumb_func_start sub_0804DAB0 sub_0804DAB0: @ 0x0804DAB0 movs r0, #1 bx lr thumb_func_start nullsub_335 nullsub_335: @ 0x0804DAB4 bx lr .align 2, 0 thumb_func_start sub_0804DAB8 sub_0804DAB8: @ 0x0804DAB8 movs r0, #1 bx lr thumb_func_start nullsub_336 nullsub_336: @ 0x0804DABC bx lr .align 2, 0 thumb_func_start sub_0804DAC0 sub_0804DAC0: @ 0x0804DAC0 movs r0, #1 bx lr thumb_func_start nullsub_337 nullsub_337: @ 0x0804DAC4 bx lr .align 2, 0 thumb_func_start sub_0804DAC8 sub_0804DAC8: @ 0x0804DAC8 movs r0, #1 bx lr thumb_func_start nullsub_338 nullsub_338: @ 0x0804DACC bx lr .align 2, 0 thumb_func_start sub_0804DAD0 sub_0804DAD0: @ 0x0804DAD0 movs r0, #1 bx lr thumb_func_start sub_0804DAD4 sub_0804DAD4: @ 0x0804DAD4 push {lr} movs r0, #0x86 bl sub_0807CBD0 cmp r0, #0 beq _0804DAF0 movs r0, #0x4c bl sub_0807CBD0 cmp r0, #0 bne _0804DAF0 ldr r0, _0804DAF4 @ =gUnk_080EC2CC bl sub_0804ADDC _0804DAF0: pop {pc} .align 2, 0 _0804DAF4: .4byte gUnk_080EC2CC thumb_func_start sub_0804DAF8 sub_0804DAF8: @ 0x0804DAF8 movs r0, #1 bx lr thumb_func_start nullsub_339 nullsub_339: @ 0x0804DAFC bx lr .align 2, 0 thumb_func_start sub_0804DB00 sub_0804DB00: @ 0x0804DB00 movs r0, #1 bx lr thumb_func_start sub_0804DB04 sub_0804DB04: @ 0x0804DB04 push {lr} movs r0, #0x86 bl sub_0807CBD0 cmp r0, #0 beq _0804DB20 movs r0, #0x4d bl sub_0807CBD0 cmp r0, #0 bne _0804DB20 ldr r0, _0804DB24 @ =gUnk_080EC4E8 bl sub_0804ADDC _0804DB20: pop {pc} .align 2, 0 _0804DB24: .4byte gUnk_080EC4E8 thumb_func_start sub_0804DB28 sub_0804DB28: @ 0x0804DB28 movs r0, #1 bx lr thumb_func_start nullsub_340 nullsub_340: @ 0x0804DB2C bx lr .align 2, 0 thumb_func_start sub_0804DB30 sub_0804DB30: @ 0x0804DB30 movs r0, #1 bx lr thumb_func_start nullsub_341 nullsub_341: @ 0x0804DB34 bx lr .align 2, 0 thumb_func_start sub_0804DB38 sub_0804DB38: @ 0x0804DB38 movs r0, #1 bx lr thumb_func_start sub_0804DB3C sub_0804DB3C: @ 0x0804DB3C push {lr} movs r0, #0x86 bl sub_0807CBD0 cmp r0, #0 beq _0804DB58 movs r0, #0x53 bl sub_0807CBD0 cmp r0, #0 bne _0804DB58 ldr r0, _0804DB5C @ =gUnk_080EC820 bl sub_0804ADDC _0804DB58: pop {pc} .align 2, 0 _0804DB5C: .4byte gUnk_080EC820 thumb_func_start sub_0804DB60 sub_0804DB60: @ 0x0804DB60 movs r0, #1 bx lr thumb_func_start nullsub_342 nullsub_342: @ 0x0804DB64 bx lr .align 2, 0 thumb_func_start sub_0804DB68 sub_0804DB68: @ 0x0804DB68 movs r0, #1 bx lr thumb_func_start sub_0804DB6C sub_0804DB6C: @ 0x0804DB6C push {lr} movs r0, #0x86 bl sub_0807CBD0 cmp r0, #0 beq _0804DB88 movs r0, #0x56 bl sub_0807CBD0 cmp r0, #0 bne _0804DB88 ldr r0, _0804DB8C @ =gUnk_080ECA60 bl sub_0804ADDC _0804DB88: pop {pc} .align 2, 0 _0804DB8C: .4byte gUnk_080ECA60 thumb_func_start sub_0804DB90 sub_0804DB90: @ 0x0804DB90 movs r0, #1 bx lr thumb_func_start nullsub_343 nullsub_343: @ 0x0804DB94 bx lr .align 2, 0 thumb_func_start sub_0804DB98 sub_0804DB98: @ 0x0804DB98 movs r0, #1 bx lr thumb_func_start nullsub_344 nullsub_344: @ 0x0804DB9C bx lr .align 2, 0 thumb_func_start sub_0804DBA0 sub_0804DBA0: @ 0x0804DBA0 movs r0, #1 bx lr thumb_func_start nullsub_345 nullsub_345: @ 0x0804DBA4 bx lr .align 2, 0 thumb_func_start sub_0804DBA8 sub_0804DBA8: @ 0x0804DBA8 movs r0, #1 bx lr thumb_func_start nullsub_346 nullsub_346: @ 0x0804DBAC bx lr .align 2, 0 thumb_func_start sub_0804DBB0 sub_0804DBB0: @ 0x0804DBB0 movs r0, #1 bx lr thumb_func_start nullsub_347 nullsub_347: @ 0x0804DBB4 bx lr .align 2, 0 thumb_func_start sub_0804DBB8 sub_0804DBB8: @ 0x0804DBB8 movs r0, #1 bx lr thumb_func_start nullsub_348 nullsub_348: @ 0x0804DBBC bx lr .align 2, 0 thumb_func_start sub_0804DBC0 sub_0804DBC0: @ 0x0804DBC0 push {lr} movs r0, #0x79 bl sub_0807CBD0 cmp r0, #0 beq _0804DBD2 ldr r1, _0804DBD8 @ =gUnk_02034350 movs r0, #0 str r0, [r1, #0x74] _0804DBD2: movs r0, #1 pop {pc} .align 2, 0 _0804DBD8: .4byte gUnk_02034350 thumb_func_start sub_0804DBDC sub_0804DBDC: @ 0x0804DBDC push {lr} movs r0, #0x79 bl sub_0807CBD0 cmp r0, #0 beq _0804DC08 movs r0, #0x90 movs r1, #1 movs r2, #1 movs r3, #5 bl sub_0807BB98 ldr r0, _0804DC0C @ =gUnk_080ECFCC bl sub_0804ADDC ldr r0, _0804DC10 @ =gUnk_02033A90 ldr r2, _0804DC14 @ =0x00000864 adds r1, r0, r2 subs r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] _0804DC08: pop {pc} .align 2, 0 _0804DC0C: .4byte gUnk_080ECFCC _0804DC10: .4byte gUnk_02033A90 _0804DC14: .4byte 0x00000864 thumb_func_start sub_0804DC18 sub_0804DC18: @ 0x0804DC18 movs r0, #1 bx lr thumb_func_start nullsub_349 nullsub_349: @ 0x0804DC1C bx lr .align 2, 0 thumb_func_start sub_0804DC20 sub_0804DC20: @ 0x0804DC20 movs r0, #1 bx lr thumb_func_start nullsub_350 nullsub_350: @ 0x0804DC24 bx lr .align 2, 0 thumb_func_start sub_0804DC28 sub_0804DC28: @ 0x0804DC28 push {lr} movs r0, #0x51 bl sub_0807CC30 cmp r0, #0 beq _0804DC3E ldr r0, _0804DC44 @ =gUnk_02034350 ldr r1, _0804DC48 @ =gUnk_080ED1E4 str r1, [r0, #0x6c] movs r1, #0 str r1, [r0, #0x74] _0804DC3E: movs r0, #1 pop {pc} .align 2, 0 _0804DC44: .4byte gUnk_02034350 _0804DC48: .4byte gUnk_080ED1E4 thumb_func_start sub_0804DC4C sub_0804DC4C: @ 0x0804DC4C push {lr} movs r0, #0x51 bl sub_0807CC30 cmp r0, #0 beq _0804DC66 ldr r0, _0804DC68 @ =gUnk_02033A90 ldr r2, _0804DC6C @ =0x00000864 adds r1, r0, r2 subs r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] _0804DC66: pop {pc} .align 2, 0 _0804DC68: .4byte gUnk_02033A90 _0804DC6C: .4byte 0x00000864 thumb_func_start sub_0804DC70 sub_0804DC70: @ 0x0804DC70 movs r0, #1 bx lr thumb_func_start nullsub_351 nullsub_351: @ 0x0804DC74 bx lr .align 2, 0 thumb_func_start sub_0804DC78 sub_0804DC78: @ 0x0804DC78 movs r0, #1 bx lr thumb_func_start nullsub_352 nullsub_352: @ 0x0804DC7C bx lr .align 2, 0 thumb_func_start sub_0804DC80 sub_0804DC80: @ 0x0804DC80 movs r0, #1 bx lr thumb_func_start nullsub_353 nullsub_353: @ 0x0804DC84 bx lr .align 2, 0 thumb_func_start sub_0804DC88 sub_0804DC88: @ 0x0804DC88 movs r0, #1 bx lr thumb_func_start nullsub_354 nullsub_354: @ 0x0804DC8C bx lr .align 2, 0 thumb_func_start sub_0804DC90 sub_0804DC90: @ 0x0804DC90 movs r0, #1 bx lr thumb_func_start nullsub_355 nullsub_355: @ 0x0804DC94 bx lr .align 2, 0 thumb_func_start sub_0804DC98 sub_0804DC98: @ 0x0804DC98 movs r0, #1 bx lr thumb_func_start nullsub_356 nullsub_356: @ 0x0804DC9C bx lr .align 2, 0 thumb_func_start sub_0804DCA0 sub_0804DCA0: @ 0x0804DCA0 movs r0, #1 bx lr thumb_func_start nullsub_357 nullsub_357: @ 0x0804DCA4 bx lr .align 2, 0 thumb_func_start sub_0804DCA8 sub_0804DCA8: @ 0x0804DCA8 movs r0, #1 bx lr thumb_func_start nullsub_358 nullsub_358: @ 0x0804DCAC bx lr .align 2, 0 thumb_func_start sub_0804DCB0 sub_0804DCB0: @ 0x0804DCB0 movs r0, #1 bx lr thumb_func_start nullsub_359 nullsub_359: @ 0x0804DCB4 bx lr .align 2, 0 thumb_func_start sub_0804DCB8 sub_0804DCB8: @ 0x0804DCB8 movs r0, #1 bx lr thumb_func_start nullsub_360 nullsub_360: @ 0x0804DCBC bx lr .align 2, 0 thumb_func_start sub_0804DCC0 sub_0804DCC0: @ 0x0804DCC0 movs r0, #1 bx lr thumb_func_start nullsub_361 nullsub_361: @ 0x0804DCC4 bx lr .align 2, 0 thumb_func_start sub_0804DCC8 sub_0804DCC8: @ 0x0804DCC8 movs r0, #1 bx lr thumb_func_start nullsub_362 nullsub_362: @ 0x0804DCCC bx lr .align 2, 0 thumb_func_start sub_0804DCD0 sub_0804DCD0: @ 0x0804DCD0 movs r0, #1 bx lr thumb_func_start nullsub_363 nullsub_363: @ 0x0804DCD4 bx lr .align 2, 0 thumb_func_start sub_0804DCD8 sub_0804DCD8: @ 0x0804DCD8 movs r0, #1 bx lr thumb_func_start nullsub_364 nullsub_364: @ 0x0804DCDC bx lr .align 2, 0 thumb_func_start sub_0804DCE0 sub_0804DCE0: @ 0x0804DCE0 movs r0, #1 bx lr thumb_func_start nullsub_365 nullsub_365: @ 0x0804DCE4 bx lr .align 2, 0 thumb_func_start sub_0804DCE8 sub_0804DCE8: @ 0x0804DCE8 movs r0, #1 bx lr thumb_func_start nullsub_366 nullsub_366: @ 0x0804DCEC bx lr .align 2, 0 thumb_func_start sub_0804DCF0 sub_0804DCF0: @ 0x0804DCF0 movs r0, #1 bx lr thumb_func_start nullsub_367 nullsub_367: @ 0x0804DCF4 bx lr .align 2, 0 thumb_func_start sub_0804DCF8 sub_0804DCF8: @ 0x0804DCF8 movs r0, #1 bx lr thumb_func_start nullsub_368 nullsub_368: @ 0x0804DCFC bx lr .align 2, 0 thumb_func_start sub_0804DD00 sub_0804DD00: @ 0x0804DD00 movs r0, #1 bx lr thumb_func_start nullsub_369 nullsub_369: @ 0x0804DD04 bx lr .align 2, 0 thumb_func_start sub_0804DD08 sub_0804DD08: @ 0x0804DD08 movs r0, #1 bx lr thumb_func_start nullsub_370 nullsub_370: @ 0x0804DD0C bx lr .align 2, 0 thumb_func_start sub_0804DD10 sub_0804DD10: @ 0x0804DD10 movs r0, #1 bx lr thumb_func_start nullsub_371 nullsub_371: @ 0x0804DD14 bx lr .align 2, 0 thumb_func_start sub_0804DD18 sub_0804DD18: @ 0x0804DD18 push {lr} movs r0, #0x79 bl sub_0807CBD0 cmp r0, #0 beq _0804DD2C ldr r1, _0804DD30 @ =gUnk_02034350 movs r0, #0 str r0, [r1, #0x74] str r0, [r1, #0x6c] _0804DD2C: movs r0, #1 pop {pc} .align 2, 0 _0804DD30: .4byte gUnk_02034350 thumb_func_start sub_0804DD34 sub_0804DD34: @ 0x0804DD34 push {lr} movs r0, #0x79 bl sub_0807CBD0 cmp r0, #0 beq _0804DD60 movs r0, #3 movs r1, #2 movs r2, #5 movs r3, #1 bl sub_0807BB98 ldr r0, _0804DD64 @ =gUnk_080EE314 bl sub_0804ADDC ldr r0, _0804DD68 @ =gUnk_02033A90 ldr r2, _0804DD6C @ =0x00000864 adds r1, r0, r2 subs r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] _0804DD60: pop {pc} .align 2, 0 _0804DD64: .4byte gUnk_080EE314 _0804DD68: .4byte gUnk_02033A90 _0804DD6C: .4byte 0x00000864 thumb_func_start sub_0804DD70 sub_0804DD70: @ 0x0804DD70 movs r0, #1 bx lr thumb_func_start nullsub_372 nullsub_372: @ 0x0804DD74 bx lr .align 2, 0 thumb_func_start sub_0804DD78 sub_0804DD78: @ 0x0804DD78 push {lr} movs r0, #0x79 bl sub_0807CBD0 cmp r0, #0 beq _0804DD8A ldr r1, _0804DD90 @ =gUnk_02034350 movs r0, #0 str r0, [r1, #0x74] _0804DD8A: movs r0, #1 pop {pc} .align 2, 0 _0804DD90: .4byte gUnk_02034350 thumb_func_start sub_0804DD94 sub_0804DD94: @ 0x0804DD94 push {lr} movs r0, #0x79 bl sub_0807CBD0 cmp r0, #0 beq _0804DDC0 ldr r0, _0804DDC4 @ =0x00000392 movs r1, #2 movs r2, #2 movs r3, #5 bl sub_0807BB98 ldr r0, _0804DDC8 @ =gUnk_080EE5DC bl sub_0804ADDC ldr r0, _0804DDCC @ =gUnk_02033A90 ldr r2, _0804DDD0 @ =0x00000864 adds r1, r0, r2 subs r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] _0804DDC0: pop {pc} .align 2, 0 _0804DDC4: .4byte 0x00000392 _0804DDC8: .4byte gUnk_080EE5DC _0804DDCC: .4byte gUnk_02033A90 _0804DDD0: .4byte 0x00000864 thumb_func_start sub_0804DDD4 sub_0804DDD4: @ 0x0804DDD4 movs r0, #1 bx lr thumb_func_start nullsub_373 nullsub_373: @ 0x0804DDD8 bx lr .align 2, 0 thumb_func_start sub_0804DDDC sub_0804DDDC: @ 0x0804DDDC movs r0, #1 bx lr thumb_func_start sub_0804DDE0 sub_0804DDE0: @ 0x0804DDE0 push {lr} movs r0, #1 bl sub_0807CBD0 cmp r0, #0 beq _0804DDF2 ldr r0, _0804DDF4 @ =gUnk_080EE71C bl sub_0804ADDC _0804DDF2: pop {pc} .align 2, 0 _0804DDF4: .4byte gUnk_080EE71C thumb_func_start sub_0804DDF8 sub_0804DDF8: @ 0x0804DDF8 movs r0, #1 bx lr thumb_func_start nullsub_374 nullsub_374: @ 0x0804DDFC bx lr .align 2, 0 thumb_func_start sub_0804DE00 sub_0804DE00: @ 0x0804DE00 push {r4, r5, r6, lr} bl sub_080530C8 movs r0, #0xb bl sub_0801E7F4 cmp r0, #0 beq _0804DE32 movs r0, #0x19 bl sub_0807CC30 cmp r0, #0 bne _0804DE22 movs r0, #0x19 bl sub_0807CD04 b _0804DE32 _0804DE22: movs r0, #0x18 bl sub_0807CC30 cmp r0, #0 bne _0804DE32 movs r0, #0x18 bl sub_0807CD04 _0804DE32: ldr r5, _0804DE50 @ =gUnk_080D4250 ldr r4, _0804DE54 @ =gUnk_02002A40 ldrb r0, [r4, #8] lsls r0, r0, #2 adds r0, r0, r5 ldr r0, [r0] bl sub_0804AFB0 ldrb r0, [r4, #8] cmp r0, #1 beq _0804DE5C ldr r1, _0804DE58 @ =gUnk_02017654 ldr r0, [r5] str r0, [r1] b _0804DECC .align 2, 0 _0804DE50: .4byte gUnk_080D4250 _0804DE54: .4byte gUnk_02002A40 _0804DE58: .4byte gUnk_02017654 _0804DE5C: movs r0, #0x1c bl sub_0807CD04 ldr r4, _0804DEB4 @ =gUnk_02033A90 ldr r0, _0804DEB8 @ =0x0000085C adds r4, r4, r0 ldr r0, [r4] ldrh r5, [r0, #4] ldrh r6, [r0, #6] ldr r1, _0804DEBC @ =gUnk_03000BF0 movs r2, #0 movs r0, #0x15 strb r0, [r1, #4] strb r2, [r1, #5] bl sub_08052CFC ldr r0, [r4] movs r1, #0x98 lsls r1, r1, #1 adds r5, r5, r1 strh r5, [r0, #4] ldr r0, [r4] strh r6, [r0, #6] ldr r1, _0804DEC0 @ =gUnk_030010A0 ldr r0, [r4] ldrh r0, [r0] lsrs r0, r0, #1 strh r0, [r1, #0x10] bl sub_08052EA0 bl sub_0804AF90 movs r0, #0xcd bl sub_0807CBD0 cmp r0, #0 bne _0804DEC4 movs r1, #0x80 lsls r1, r1, #1 movs r0, #7 bl sub_08050054 b _0804DECC .align 2, 0 _0804DEB4: .4byte gUnk_02033A90 _0804DEB8: .4byte 0x0000085C _0804DEBC: .4byte gUnk_03000BF0 _0804DEC0: .4byte gUnk_030010A0 _0804DEC4: movs r0, #6 movs r1, #0x10 bl sub_08050054 _0804DECC: movs r0, #1 pop {r4, r5, r6, pc} thumb_func_start sub_0804DED0 sub_0804DED0: @ 0x0804DED0 push {r4, lr} bl sub_08054570 bl sub_08059D18 movs r0, #0xbb lsls r0, r0, #1 ldr r1, _0804DEF8 @ =0x0000066B movs r2, #1 bl sub_0807B314 ldr r0, _0804DEFC @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #1 bne _0804DF00 movs r0, #0 bl sub_0801D000 b _0804E112 .align 2, 0 _0804DEF8: .4byte 0x0000066B _0804DEFC: .4byte gUnk_02002A40 _0804DF00: ldr r0, _0804DF7C @ =0x00000DB4 bl sub_08018C58 movs r4, #0x80 lsls r4, r4, #2 adds r0, r4, #0 movs r1, #0x84 bl sub_0807CB10 cmp r0, #0 bne _0804DF1C ldr r0, _0804DF80 @ =gUnk_080EEB6C bl sub_0804ADDC _0804DF1C: adds r0, r4, #0 movs r1, #0x85 bl sub_0807CB10 cmp r0, #0 bne _0804DF2E ldr r0, _0804DF84 @ =gUnk_080EEB8C bl sub_0804ADDC _0804DF2E: movs r0, #0x67 bl sub_0807CA84 cmp r0, #0 bne _0804DF48 movs r0, #2 bl sub_0807CC30 cmp r0, #0 beq _0804DF48 ldr r0, _0804DF88 @ =gUnk_080EE88C bl sub_0804ADDC _0804DF48: movs r0, #0x28 bl sub_0801E7F4 cmp r0, #0 bne _0804DF58 ldr r0, _0804DF8C @ =gUnk_080EE8FC bl sub_0804ADDC _0804DF58: movs r0, #0x33 bl sub_0801E7F4 cmp r0, #0 beq _0804DF68 ldr r0, _0804DF90 @ =gUnk_080EE91C bl sub_0804ADDC _0804DF68: movs r0, #0x12 bl sub_0807CC30 cmp r0, #0 beq _0804DF98 ldr r0, _0804DF94 @ =gUnk_080EE93C bl sub_0804ADDC b _0804DF9E .align 2, 0 _0804DF7C: .4byte 0x00000DB4 _0804DF80: .4byte gUnk_080EEB6C _0804DF84: .4byte gUnk_080EEB8C _0804DF88: .4byte gUnk_080EE88C _0804DF8C: .4byte gUnk_080EE8FC _0804DF90: .4byte gUnk_080EE91C _0804DF94: .4byte gUnk_080EE93C _0804DF98: ldr r0, _0804DFF4 @ =gUnk_080EECBC bl sub_0804ADDC _0804DF9E: movs r0, #0x1b bl sub_0801E7F4 cmp r0, #0 beq _0804E02A ldr r0, _0804DFF8 @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #3 bls _0804E02A movs r0, #0x2e bl sub_0807CC30 cmp r0, #0 bne _0804E024 movs r0, #0x2f bl sub_0807CC30 cmp r0, #0 bne _0804E024 movs r0, #0x30 bl sub_0807CC30 cmp r0, #0 bne _0804E024 movs r0, #0x2b bl sub_0807CC30 cmp r0, #0 bne _0804E000 movs r0, #0x2c bl sub_0807CC30 cmp r0, #0 bne _0804E000 movs r0, #0x2d bl sub_0807CC30 cmp r0, #0 bne _0804E000 ldr r0, _0804DFFC @ =gUnk_080EE95C bl sub_0804ADDC b _0804E02A .align 2, 0 _0804DFF4: .4byte gUnk_080EECBC _0804DFF8: .4byte gUnk_02002A40 _0804DFFC: .4byte gUnk_080EE95C _0804E000: movs r0, #0x18 bl sub_0807CC30 cmp r0, #0 bne _0804E018 ldr r0, _0804E014 @ =gUnk_080EE97C bl sub_0804ADDC b _0804E02A .align 2, 0 _0804E014: .4byte gUnk_080EE97C _0804E018: ldr r0, _0804E020 @ =gUnk_080EE9BC bl sub_0804ADDC b _0804E02A .align 2, 0 _0804E020: .4byte gUnk_080EE9BC _0804E024: ldr r0, _0804E03C @ =gUnk_080EE99C bl sub_0804ADDC _0804E02A: movs r0, #0x2b bl sub_0807CC30 cmp r0, #0 beq _0804E044 ldr r0, _0804E040 @ =gUnk_080EE9FC bl sub_0804ADDC b _0804E07A .align 2, 0 _0804E03C: .4byte gUnk_080EE99C _0804E040: .4byte gUnk_080EE9FC _0804E044: movs r0, #0x2c bl sub_0807CC30 cmp r0, #0 beq _0804E05C ldr r0, _0804E058 @ =gUnk_080EEA1C bl sub_0804ADDC b _0804E07A .align 2, 0 _0804E058: .4byte gUnk_080EEA1C _0804E05C: movs r0, #0x2d bl sub_0807CC30 cmp r0, #0 beq _0804E074 ldr r0, _0804E070 @ =gUnk_080EEA3C bl sub_0804ADDC b _0804E07A .align 2, 0 _0804E070: .4byte gUnk_080EEA3C _0804E074: ldr r0, _0804E114 @ =gUnk_080EE9DC bl sub_0804ADDC _0804E07A: ldr r0, _0804E118 @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #4 bls _0804E0B0 movs r0, #0xb bl sub_0801E7F4 cmp r0, #0 bne _0804E0B0 movs r0, #0x2b bl sub_0807CC30 cmp r0, #0 bne _0804E0AA movs r0, #0x2c bl sub_0807CC30 cmp r0, #0 bne _0804E0AA movs r0, #0x2d bl sub_0807CC30 cmp r0, #0 beq _0804E0B0 _0804E0AA: ldr r0, _0804E11C @ =gUnk_080EEA5C bl sub_0804ADDC _0804E0B0: movs r0, #0xd0 bl sub_0807CBD0 cmp r0, #0 bne _0804E0CA movs r0, #0x14 bl sub_0807CA84 cmp r0, #0 beq _0804E0CA ldr r0, _0804E120 @ =gUnk_080EEABC bl sub_0804ADDC _0804E0CA: ldr r0, _0804E118 @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #3 bls _0804E0E2 movs r0, #0x1d bl sub_0807CC30 cmp r0, #0 beq _0804E0E2 ldr r0, _0804E124 @ =gUnk_080EEA7C bl sub_0804ADDC _0804E0E2: ldr r0, _0804E118 @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #5 bhi _0804E0FA movs r0, #0x29 bl sub_0807CC30 cmp r0, #0 bne _0804E0FA ldr r0, _0804E128 @ =gUnk_080EEA9C bl sub_0804ADDC _0804E0FA: ldr r0, _0804E118 @ =gUnk_02002A40 ldr r0, [r0, #0x40] movs r1, #0x80 lsls r1, r1, #0x14 ands r0, r1 cmp r0, #0 bne _0804E10E ldr r0, _0804E12C @ =gUnk_080EEBAC bl sub_0804ADDC _0804E10E: bl sub_0804E150 _0804E112: pop {r4, pc} .align 2, 0 _0804E114: .4byte gUnk_080EE9DC _0804E118: .4byte gUnk_02002A40 _0804E11C: .4byte gUnk_080EEA5C _0804E120: .4byte gUnk_080EEABC _0804E124: .4byte gUnk_080EEA7C _0804E128: .4byte gUnk_080EEA9C _0804E12C: .4byte gUnk_080EEBAC thumb_func_start sub_0804E130 sub_0804E130: @ 0x0804E130 push {lr} ldr r0, _0804E148 @ =gUnk_02002A40 ldr r0, [r0, #0x40] movs r1, #0x80 lsls r1, r1, #0x14 ands r0, r1 cmp r0, #0 bne _0804E146 ldr r0, _0804E14C @ =gUnk_080EEBAC bl sub_0804ADDC _0804E146: pop {pc} .align 2, 0 _0804E148: .4byte gUnk_02002A40 _0804E14C: .4byte gUnk_080EEBAC thumb_func_start sub_0804E150 sub_0804E150: @ 0x0804E150 push {r4, r5, lr} ldr r4, _0804E160 @ =gUnk_080EED2C ldr r0, _0804E164 @ =gUnk_02002A40 movs r5, #1 ldrb r0, [r0, #8] lsls r5, r0 b _0804E17C .align 2, 0 _0804E160: .4byte gUnk_080EED2C _0804E164: .4byte gUnk_02002A40 _0804E168: ldrh r0, [r4] ands r0, r5 cmp r0, #0 beq _0804E17A ldrh r0, [r4, #4] ldrh r1, [r4, #2] movs r2, #1 bl sub_0800015E _0804E17A: adds r4, #6 _0804E17C: ldrh r0, [r4, #2] cmp r0, #0 bne _0804E168 movs r0, #0xd1 bl sub_0807CBD0 cmp r0, #0 bne _0804E1BA ldr r4, _0804E198 @ =gUnk_080EED7A ldr r0, _0804E19C @ =gUnk_02002A40 movs r5, #1 ldrb r0, [r0, #8] lsls r5, r0 b _0804E1B4 .align 2, 0 _0804E198: .4byte gUnk_080EED7A _0804E19C: .4byte gUnk_02002A40 _0804E1A0: ldrh r0, [r4] ands r0, r5 cmp r0, #0 beq _0804E1B2 ldrh r0, [r4, #4] ldrh r1, [r4, #2] movs r2, #1 bl sub_0800015E _0804E1B2: adds r4, #6 _0804E1B4: ldrh r0, [r4] cmp r0, #0 bne _0804E1A0 _0804E1BA: movs r0, #0x29 bl sub_0807CC30 cmp r0, #0 bne _0804E1F2 ldr r4, _0804E1D0 @ =gUnk_080EED8C ldr r0, _0804E1D4 @ =gUnk_02002A40 movs r5, #1 ldrb r0, [r0, #8] lsls r5, r0 b _0804E1EC .align 2, 0 _0804E1D0: .4byte gUnk_080EED8C _0804E1D4: .4byte gUnk_02002A40 _0804E1D8: ldrh r0, [r4] ands r0, r5 cmp r0, #0 beq _0804E1EA ldrh r0, [r4, #4] ldrh r1, [r4, #2] movs r2, #1 bl sub_0800015E _0804E1EA: adds r4, #6 _0804E1EC: ldrh r0, [r4] cmp r0, #0 bne _0804E1D8 _0804E1F2: pop {r4, r5, pc} thumb_func_start sub_0804E1F4 sub_0804E1F4: @ 0x0804E1F4 movs r0, #1 bx lr thumb_func_start nullsub_76 nullsub_76: @ 0x0804E1F8 bx lr .align 2, 0 thumb_func_start sub_0804E1FC sub_0804E1FC: @ 0x0804E1FC movs r0, #1 bx lr thumb_func_start nullsub_77 nullsub_77: @ 0x0804E200 bx lr .align 2, 0 thumb_func_start sub_0804E204 sub_0804E204: @ 0x0804E204 movs r0, #1 bx lr thumb_func_start nullsub_78 nullsub_78: @ 0x0804E208 bx lr .align 2, 0 thumb_func_start sub_0804E20C sub_0804E20C: @ 0x0804E20C movs r0, #1 bx lr thumb_func_start nullsub_79 nullsub_79: @ 0x0804E210 bx lr .align 2, 0 thumb_func_start sub_0804E214 sub_0804E214: @ 0x0804E214 movs r0, #1 bx lr thumb_func_start nullsub_080 nullsub_080: @ 0x0804E218 bx lr .align 2, 0 thumb_func_start sub_0804E21C sub_0804E21C: @ 0x0804E21C movs r0, #1 bx lr thumb_func_start nullsub_081 nullsub_081: @ 0x0804E220 bx lr .align 2, 0 thumb_func_start sub_0804E224 sub_0804E224: @ 0x0804E224 movs r0, #1 bx lr thumb_func_start nullsub_082 nullsub_082: @ 0x0804E228 bx lr .align 2, 0 thumb_func_start sub_0804E22C sub_0804E22C: @ 0x0804E22C movs r0, #1 bx lr thumb_func_start nullsub_083 nullsub_083: @ 0x0804E230 bx lr .align 2, 0 thumb_func_start sub_0804E234 sub_0804E234: @ 0x0804E234 movs r0, #1 bx lr thumb_func_start nullsub_084 nullsub_084: @ 0x0804E238 bx lr .align 2, 0 thumb_func_start sub_0804E23C sub_0804E23C: @ 0x0804E23C movs r0, #1 bx lr thumb_func_start nullsub_085 nullsub_085: @ 0x0804E240 bx lr .align 2, 0 thumb_func_start sub_0804E244 sub_0804E244: @ 0x0804E244 movs r0, #1 bx lr thumb_func_start nullsub_086 nullsub_086: @ 0x0804E248 bx lr .align 2, 0 thumb_func_start sub_0804E24C sub_0804E24C: @ 0x0804E24C movs r0, #1 bx lr thumb_func_start nullsub_087 nullsub_087: @ 0x0804E250 bx lr .align 2, 0 thumb_func_start sub_0804E254 sub_0804E254: @ 0x0804E254 movs r0, #1 bx lr thumb_func_start nullsub_088 nullsub_088: @ 0x0804E258 bx lr .align 2, 0 thumb_func_start sub_0804E25C sub_0804E25C: @ 0x0804E25C push {lr} movs r0, #6 bl sub_0807CA84 cmp r0, #0 beq _0804E26E ldr r1, _0804E274 @ =gUnk_02034350 ldr r0, _0804E278 @ =gUnk_080F09A0 str r0, [r1, #0x70] _0804E26E: movs r0, #1 pop {pc} .align 2, 0 _0804E274: .4byte gUnk_02034350 _0804E278: .4byte gUnk_080F09A0 thumb_func_start sub_0804E27C sub_0804E27C: @ 0x0804E27C push {r4, lr} movs r0, #0x15 bl sub_0807CC30 cmp r0, #0 bne _0804E2AC ldr r0, _0804E2A0 @ =gUnk_080F0650 bl sub_0804ADDC ldr r0, _0804E2A4 @ =gUnk_02033A90 ldr r1, _0804E2A8 @ =0x00000864 adds r0, r0, r1 movs r1, #0x13 str r1, [r0] movs r0, #0x64 bl sub_0807CD04 b _0804E2C0 .align 2, 0 _0804E2A0: .4byte gUnk_080F0650 _0804E2A4: .4byte gUnk_02033A90 _0804E2A8: .4byte 0x00000864 _0804E2AC: movs r0, #0x64 bl sub_0807CC30 cmp r0, #0 beq _0804E2C0 ldr r0, _0804E300 @ =gUnk_02033A90 ldr r1, _0804E304 @ =0x00000864 adds r0, r0, r1 movs r1, #0x1b str r1, [r0] _0804E2C0: movs r0, #0x9c bl sub_0807CBD0 cmp r0, #0 bne _0804E318 ldr r0, _0804E308 @ =gUnk_080F0800 bl sub_0804ADDC ldr r4, _0804E30C @ =0x00004072 movs r1, #0x96 lsls r1, r1, #2 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 movs r1, #0xa6 lsls r1, r1, #2 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _0804E310 @ =0x00000266 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _0804E314 @ =0x000002A6 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 b _0804E3A6 .align 2, 0 _0804E300: .4byte gUnk_02033A90 _0804E304: .4byte 0x00000864 _0804E308: .4byte gUnk_080F0800 _0804E30C: .4byte 0x00004072 _0804E310: .4byte 0x00000266 _0804E314: .4byte 0x000002A6 _0804E318: movs r0, #6 bl sub_0807CA84 cmp r0, #0 bne _0804E348 ldr r0, _0804E360 @ =gUnk_080F08F0 bl sub_0804ADDC ldr r4, _0804E364 @ =0x00004072 adds r0, r4, #0 movs r1, #0x9e movs r2, #1 bl sub_0807B314 adds r0, r4, #0 movs r1, #0x9f movs r2, #1 bl sub_0807B314 adds r0, r4, #0 movs r1, #0xa0 movs r2, #1 bl sub_0807B314 _0804E348: ldr r0, _0804E368 @ =gUnk_080F0850 bl sub_0804ADDC movs r0, #0x42 bl sub_0807CA84 cmp r0, #0 bne _0804E370 ldr r0, _0804E36C @ =gUnk_080F0870 bl sub_0804ADDC b _0804E376 .align 2, 0 _0804E360: .4byte gUnk_080F08F0 _0804E364: .4byte 0x00004072 _0804E368: .4byte gUnk_080F0850 _0804E36C: .4byte gUnk_080F0870 _0804E370: ldr r0, _0804E3AC @ =gUnk_080F0890 bl sub_0804ADDC _0804E376: ldr r4, _0804E3B0 @ =0x00004072 movs r1, #0x96 lsls r1, r1, #2 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 movs r1, #0xa6 lsls r1, r1, #2 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 movs r0, #0x10 bl sub_0807CBD0 cmp r0, #0 beq _0804E3A6 ldr r0, _0804E3B4 @ =gUnk_080F0920 bl sub_0804ADDC movs r0, #0x10 bl sub_0807CD34 _0804E3A6: bl sub_080AF284 pop {r4, pc} .align 2, 0 _0804E3AC: .4byte gUnk_080F0890 _0804E3B0: .4byte 0x00004072 _0804E3B4: .4byte gUnk_080F0920 thumb_func_start sub_0804E3B8 sub_0804E3B8: @ 0x0804E3B8 push {lr} movs r0, #1 bl sub_0807CD34 movs r0, #1 pop {pc} thumb_func_start sub_0804E3C4 sub_0804E3C4: @ 0x0804E3C4 push {r4, r5, r6, lr} movs r0, #5 bl sub_0807CC30 rsbs r1, r0, #0 orrs r1, r0 lsrs r6, r1, #0x1f movs r0, #6 bl sub_0807CC30 cmp r0, #0 beq _0804E3DE movs r6, #2 _0804E3DE: movs r0, #0x55 bl sub_0807CC30 cmp r0, #0 beq _0804E3EA movs r6, #3 _0804E3EA: bl sub_08000E50 adds r4, r0, #0 ldr r1, _0804E448 @ =gUnk_080F0D58 lsls r0, r6, #2 adds r0, r0, r1 movs r5, #0x1f adds r1, r4, #0 ands r1, r5 ldr r0, [r0] adds r0, r0, r1 ldrb r6, [r0] ldr r1, _0804E44C @ =gUnk_080F0CB8 movs r0, #0xf ands r0, r6 lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl sub_0804ADDC lsrs r6, r6, #4 lsrs r4, r4, #8 ldr r1, _0804E450 @ =gUnk_080F0E08 lsls r0, r6, #2 adds r0, r0, r1 ands r4, r5 ldr r0, [r0] adds r0, r0, r4 ldrb r6, [r0] movs r0, #0xc6 bl sub_0807CBD0 cmp r0, #0 bne _0804E436 movs r0, #0xc6 bl sub_0807CCB4 movs r6, #0xe _0804E436: lsls r0, r6, #3 ldr r1, _0804E454 @ =gUnk_080F0E1C adds r0, r0, r1 bl sub_0804B3C4 ldr r0, _0804E458 @ =0x80100000 bl sub_080A3268 pop {r4, r5, r6, pc} .align 2, 0 _0804E448: .4byte gUnk_080F0D58 _0804E44C: .4byte gUnk_080F0CB8 _0804E450: .4byte gUnk_080F0E08 _0804E454: .4byte gUnk_080F0E1C _0804E458: .4byte 0x80100000 thumb_func_start sub_0804E45C sub_0804E45C: @ 0x0804E45C movs r0, #1 bx lr thumb_func_start sub_0804E460 sub_0804E460: @ 0x0804E460 push {lr} movs r0, #0x4a bl sub_0807CC30 cmp r0, #0 bne _0804E478 ldr r0, _0804E474 @ =gUnk_080F1C68 bl sub_0804ADDC b _0804E47E .align 2, 0 _0804E474: .4byte gUnk_080F1C68 _0804E478: ldr r0, _0804E480 @ =gUnk_080F1C88 bl sub_0804ADDC _0804E47E: pop {pc} .align 2, 0 _0804E480: .4byte gUnk_080F1C88 thumb_func_start sub_0804E484 sub_0804E484: @ 0x0804E484 movs r0, #1 bx lr thumb_func_start sub_0804E488 sub_0804E488: @ 0x0804E488 push {lr} movs r0, #0x2e bl sub_0807CC30 cmp r0, #0 beq _0804E4A0 ldr r0, _0804E49C @ =gUnk_080F1D90 bl sub_0804ADDC b _0804E4C8 .align 2, 0 _0804E49C: .4byte gUnk_080F1D90 _0804E4A0: movs r0, #0x2f bl sub_0807CC30 cmp r0, #0 beq _0804E4B8 ldr r0, _0804E4B4 @ =gUnk_080F1DB0 bl sub_0804ADDC b _0804E4C8 .align 2, 0 _0804E4B4: .4byte gUnk_080F1DB0 _0804E4B8: movs r0, #0x30 bl sub_0807CC30 cmp r0, #0 beq _0804E4C8 ldr r0, _0804E4CC @ =gUnk_080F1DD0 bl sub_0804ADDC _0804E4C8: pop {pc} .align 2, 0 _0804E4CC: .4byte gUnk_080F1DD0 thumb_func_start sub_0804E4D0 sub_0804E4D0: @ 0x0804E4D0 movs r0, #1 bx lr thumb_func_start nullsub_375 nullsub_375: @ 0x0804E4D4 bx lr .align 2, 0 thumb_func_start sub_0804E4D8 sub_0804E4D8: @ 0x0804E4D8 movs r0, #1 bx lr thumb_func_start nullsub_376 nullsub_376: @ 0x0804E4DC bx lr .align 2, 0 thumb_func_start sub_0804E4E0 sub_0804E4E0: @ 0x0804E4E0 movs r0, #1 bx lr thumb_func_start sub_0804E4E4 sub_0804E4E4: @ 0x0804E4E4 push {lr} ldr r0, _0804E518 @ =gUnk_080F2174 bl sub_0804ADDC movs r0, #0x3a bl sub_0807CA84 cmp r0, #0 bne _0804E506 movs r0, #0x2a bl sub_0807CC30 cmp r0, #0 beq _0804E506 ldr r0, _0804E51C @ =gUnk_080F2194 bl sub_0804ADDC _0804E506: ldr r0, _0804E520 @ =gUnk_030010A0 ldrb r0, [r0, #0xf] cmp r0, #1 bne _0804E514 ldr r0, _0804E524 @ =gUnk_080F21B4 bl sub_0804ADDC _0804E514: pop {pc} .align 2, 0 _0804E518: .4byte gUnk_080F2174 _0804E51C: .4byte gUnk_080F2194 _0804E520: .4byte gUnk_030010A0 _0804E524: .4byte gUnk_080F21B4 thumb_func_start sub_0804E528 sub_0804E528: @ 0x0804E528 movs r0, #1 bx lr thumb_func_start sub_0804E52C sub_0804E52C: @ 0x0804E52C push {lr} ldr r0, _0804E558 @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #7 bls _0804E53C ldr r0, _0804E55C @ =gUnk_080F23BC bl sub_0804ADDC _0804E53C: movs r0, #0x46 bl sub_0807CA84 cmp r0, #0 bne _0804E564 movs r0, #0x29 bl sub_0807CC30 cmp r0, #0 beq _0804E564 ldr r0, _0804E560 @ =gUnk_080F238C bl sub_0804ADDC b _0804E56A .align 2, 0 _0804E558: .4byte gUnk_02002A40 _0804E55C: .4byte gUnk_080F23BC _0804E560: .4byte gUnk_080F238C _0804E564: ldr r0, _0804E56C @ =gUnk_080F236C bl sub_0804ADDC _0804E56A: pop {pc} .align 2, 0 _0804E56C: .4byte gUnk_080F236C thumb_func_start sub_0804E570 sub_0804E570: @ 0x0804E570 movs r0, #1 bx lr thumb_func_start sub_0804E574 sub_0804E574: @ 0x0804E574 push {lr} ldr r0, _0804E588 @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #9 bhi _0804E608 lsls r0, r0, #2 ldr r1, _0804E58C @ =_0804E590 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804E588: .4byte gUnk_02002A40 _0804E58C: .4byte _0804E590 _0804E590: @ jump table .4byte _0804E5CC @ case 0 .4byte _0804E608 @ case 1 .4byte _0804E5CC @ case 2 .4byte _0804E608 @ case 3 .4byte _0804E5CC @ case 4 .4byte _0804E5B8 @ case 5 .4byte _0804E602 @ case 6 .4byte _0804E602 @ case 7 .4byte _0804E5FC @ case 8 .4byte _0804E5FC @ case 9 _0804E5B8: movs r0, #0x46 bl sub_0807CA84 cmp r0, #0 bne _0804E5F0 movs r0, #0x29 bl sub_0807CC30 cmp r0, #0 bne _0804E5D8 _0804E5CC: ldr r0, _0804E5D4 @ =gUnk_080F2570 bl sub_0804ADDC b _0804E608 .align 2, 0 _0804E5D4: .4byte gUnk_080F2570 _0804E5D8: movs r0, #0x39 bl sub_0807CA84 cmp r0, #0 bne _0804E608 ldr r0, _0804E5EC @ =gUnk_080F25C0 bl sub_0804ADDC b _0804E608 .align 2, 0 _0804E5EC: .4byte gUnk_080F25C0 _0804E5F0: ldr r0, _0804E5F8 @ =gUnk_080F2590 bl sub_0804ADDC b _0804E608 .align 2, 0 _0804E5F8: .4byte gUnk_080F2590 _0804E5FC: ldr r0, _0804E60C @ =gUnk_080F2600 bl sub_0804ADDC _0804E602: ldr r0, _0804E610 @ =gUnk_080F2590 bl sub_0804ADDC _0804E608: pop {pc} .align 2, 0 _0804E60C: .4byte gUnk_080F2600 _0804E610: .4byte gUnk_080F2590 thumb_func_start sub_0804E614 sub_0804E614: @ 0x0804E614 movs r0, #1 bx lr thumb_func_start sub_0804E618 sub_0804E618: @ 0x0804E618 push {lr} movs r0, #0x21 bl sub_0801E7F4 cmp r0, #0 beq _0804E67A movs r0, #0x42 bl sub_0807CBD0 cmp r0, #0 bne _0804E65C movs r0, #0x43 bl sub_0807CBD0 cmp r0, #0 bne _0804E650 ldr r0, _0804E648 @ =gUnk_080F2718 bl sub_0804ADDC ldr r0, _0804E64C @ =gUnk_080F2860 bl sub_0804B1AC b _0804E67A .align 2, 0 _0804E648: .4byte gUnk_080F2718 _0804E64C: .4byte gUnk_080F2860 _0804E650: ldr r0, _0804E658 @ =gUnk_080F2758 bl sub_0804ADDC b _0804E67A .align 2, 0 _0804E658: .4byte gUnk_080F2758 _0804E65C: movs r0, #0x3f bl sub_0807CBD0 cmp r0, #0 bne _0804E674 ldr r0, _0804E670 @ =gUnk_080F27D8 bl sub_0804ADDC b _0804E67A .align 2, 0 _0804E670: .4byte gUnk_080F27D8 _0804E674: ldr r0, _0804E67C @ =gUnk_080F2798 bl sub_0804ADDC _0804E67A: pop {pc} .align 2, 0 _0804E67C: .4byte gUnk_080F2798 thumb_func_start sub_0804E680 sub_0804E680: @ 0x0804E680 movs r0, #1 bx lr thumb_func_start sub_0804E684 sub_0804E684: @ 0x0804E684 push {lr} movs r0, #0x2b bl sub_0807CC30 cmp r0, #0 beq _0804E69C ldr r0, _0804E698 @ =gUnk_080F28D4 bl sub_0804ADDC b _0804E6C4 .align 2, 0 _0804E698: .4byte gUnk_080F28D4 _0804E69C: movs r0, #0x2c bl sub_0807CC30 cmp r0, #0 beq _0804E6B4 ldr r0, _0804E6B0 @ =gUnk_080F28F4 bl sub_0804ADDC b _0804E6C4 .align 2, 0 _0804E6B0: .4byte gUnk_080F28F4 _0804E6B4: movs r0, #0x2d bl sub_0807CC30 cmp r0, #0 beq _0804E6C4 ldr r0, _0804E6C8 @ =gUnk_080F2914 bl sub_0804ADDC _0804E6C4: pop {pc} .align 2, 0 _0804E6C8: .4byte gUnk_080F2914 thumb_func_start sub_0804E6CC sub_0804E6CC: @ 0x0804E6CC movs r0, #1 bx lr thumb_func_start nullsub_377 nullsub_377: @ 0x0804E6D0 bx lr .align 2, 0 thumb_func_start sub_0804E6D4 sub_0804E6D4: @ 0x0804E6D4 movs r0, #1 bx lr thumb_func_start nullsub_378 nullsub_378: @ 0x0804E6D8 bx lr .align 2, 0 thumb_func_start sub_0804E6DC sub_0804E6DC: @ 0x0804E6DC movs r0, #1 bx lr thumb_func_start nullsub_379 nullsub_379: @ 0x0804E6E0 bx lr .align 2, 0 thumb_func_start sub_0804E6E4 sub_0804E6E4: @ 0x0804E6E4 movs r0, #1 bx lr thumb_func_start sub_0804E6E8 sub_0804E6E8: @ 0x0804E6E8 push {lr} movs r0, #0x49 bl sub_0807CC30 cmp r0, #0 bne _0804E70A ldr r0, _0804E71C @ =gUnk_02033A90 movs r2, #0x86 lsls r2, r2, #4 adds r1, r0, r2 adds r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] ldr r0, _0804E720 @ =0x800B0036 bl sub_080A3268 _0804E70A: movs r0, #0x13 bl sub_0807CC30 cmp r0, #0 bne _0804E71A ldr r0, _0804E724 @ =gUnk_080F2E2C bl sub_0804ADDC _0804E71A: pop {pc} .align 2, 0 _0804E71C: .4byte gUnk_02033A90 _0804E720: .4byte 0x800B0036 _0804E724: .4byte gUnk_080F2E2C thumb_func_start sub_0804E728 sub_0804E728: @ 0x0804E728 movs r0, #1 bx lr thumb_func_start sub_0804E72C sub_0804E72C: @ 0x0804E72C push {lr} movs r0, #0x49 bl sub_0807CC30 cmp r0, #0 bne _0804E74E ldr r0, _0804E760 @ =gUnk_02033A90 movs r2, #0x86 lsls r2, r2, #4 adds r1, r0, r2 adds r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] ldr r0, _0804E764 @ =0x800B0036 bl sub_080A3268 _0804E74E: movs r0, #0x13 bl sub_0807CC30 cmp r0, #0 bne _0804E76C ldr r0, _0804E768 @ =gUnk_080F2E94 bl sub_0804ADDC b _0804E772 .align 2, 0 _0804E760: .4byte gUnk_02033A90 _0804E764: .4byte 0x800B0036 _0804E768: .4byte gUnk_080F2E94 _0804E76C: ldr r0, _0804E774 @ =gUnk_080F2EC4 bl sub_0804ADDC _0804E772: pop {pc} .align 2, 0 _0804E774: .4byte gUnk_080F2EC4 thumb_func_start sub_0804E778 sub_0804E778: @ 0x0804E778 movs r0, #1 bx lr thumb_func_start sub_0804E77C sub_0804E77C: @ 0x0804E77C push {lr} movs r0, #0x69 bl sub_0807CBD0 cmp r0, #0 beq _0804E792 movs r0, #0x3c bl sub_0807CA84 cmp r0, #1 bls _0804E798 _0804E792: ldr r0, _0804E79C @ =gUnk_080F2FD4 bl sub_0804ADDC _0804E798: pop {pc} .align 2, 0 _0804E79C: .4byte gUnk_080F2FD4 thumb_func_start sub_0804E7A0 sub_0804E7A0: @ 0x0804E7A0 movs r0, #1 bx lr thumb_func_start sub_0804E7A4 sub_0804E7A4: @ 0x0804E7A4 push {lr} movs r0, #0x36 bl sub_0807CA84 cmp r0, #1 bne _0804E7CC movs r0, #0x5b bl sub_0807CC30 cmp r0, #0 bne _0804E7CC ldr r0, _0804E7D0 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _0804E7CC ldr r0, _0804E7D4 @ =gUnk_080F30CC bl sub_0804ADDC _0804E7CC: pop {pc} .align 2, 0 _0804E7D0: .4byte gUnk_03003F80 _0804E7D4: .4byte gUnk_080F30CC thumb_func_start sub_0804E7D8 sub_0804E7D8: @ 0x0804E7D8 movs r0, #1 bx lr thumb_func_start sub_0804E7DC sub_0804E7DC: @ 0x0804E7DC push {r4, lr} movs r0, #0x13 bl sub_0807CC30 cmp r0, #0 bne _0804E818 movs r0, #0x46 bl sub_0807CBD0 adds r4, r0, #0 cmp r4, #0 bne _0804E818 movs r0, #5 movs r1, #1 movs r2, #4 movs r3, #4 bl sub_080A71C4 ldr r0, _0804E84C @ =gUnk_02000070 strb r4, [r0] movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 bl sub_08050054 ldr r2, _0804E850 @ =gUnk_08009B30 movs r0, #0 movs r1, #6 bl sub_080751E8 _0804E818: movs r0, #0x49 bl sub_0807CC30 cmp r0, #0 bne _0804E838 ldr r0, _0804E854 @ =gUnk_02033A90 movs r2, #0x86 lsls r2, r2, #4 adds r1, r0, r2 adds r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] ldr r0, _0804E858 @ =0x800B0036 bl sub_080A3268 _0804E838: ldr r0, _0804E85C @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 bne _0804E84A ldr r0, _0804E860 @ =gUnk_080F31D8 bl sub_0804ADDC _0804E84A: pop {r4, pc} .align 2, 0 _0804E84C: .4byte gUnk_02000070 _0804E850: .4byte gUnk_08009B30 _0804E854: .4byte gUnk_02033A90 _0804E858: .4byte 0x800B0036 _0804E85C: .4byte gUnk_03003F80 _0804E860: .4byte gUnk_080F31D8 thumb_func_start sub_0804E864 sub_0804E864: @ 0x0804E864 push {lr} ldr r2, _0804E888 @ =gUnk_03001160 ldr r1, _0804E88C @ =gUnk_03000BF0 ldrh r0, [r1, #6] adds r0, #0x90 strh r0, [r2, #0x2e] ldrh r0, [r1, #8] adds r0, #0x38 strh r0, [r2, #0x32] ldr r2, _0804E890 @ =gUnk_08009E58 movs r0, #1 movs r1, #6 bl sub_080751E8 movs r0, #0xa0 bl sub_080526A0 pop {pc} .align 2, 0 _0804E888: .4byte gUnk_03001160 _0804E88C: .4byte gUnk_03000BF0 _0804E890: .4byte gUnk_08009E58 thumb_func_start sub_0804E894 sub_0804E894: @ 0x0804E894 movs r0, #1 bx lr thumb_func_start sub_0804E898 sub_0804E898: @ 0x0804E898 push {r4, lr} movs r0, #0x12 bl sub_0807CA84 cmp r0, #0 beq _0804E8D8 ldr r0, _0804E8DC @ =gUnk_080F3260 bl sub_0804ADDC ldr r4, _0804E8E0 @ =0x00004072 ldr r1, _0804E8E4 @ =0x00000202 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _0804E8E8 @ =0x00000242 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 movs r1, #0x81 lsls r1, r1, #2 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 movs r1, #0x91 lsls r1, r1, #2 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 _0804E8D8: pop {r4, pc} .align 2, 0 _0804E8DC: .4byte gUnk_080F3260 _0804E8E0: .4byte 0x00004072 _0804E8E4: .4byte 0x00000202 _0804E8E8: .4byte 0x00000242 thumb_func_start sub_0804E8EC sub_0804E8EC: @ 0x0804E8EC movs r0, #1 bx lr thumb_func_start sub_0804E8F0 sub_0804E8F0: @ 0x0804E8F0 push {lr} bl sub_08054564 pop {pc} thumb_func_start sub_0804E8F8 sub_0804E8F8: @ 0x0804E8F8 movs r0, #1 bx lr thumb_func_start sub_0804E8FC sub_0804E8FC: @ 0x0804E8FC push {lr} movs r0, #0x1d bl sub_0807CC30 cmp r0, #0 bne _0804E914 ldr r0, _0804E910 @ =gUnk_080F36FC bl sub_0804ADDC b _0804E922 .align 2, 0 _0804E910: .4byte gUnk_080F36FC _0804E914: ldr r0, _0804E924 @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #3 bhi _0804E922 ldr r0, _0804E928 @ =gUnk_080F3604 bl sub_0804ADDC _0804E922: pop {pc} .align 2, 0 _0804E924: .4byte gUnk_02002A40 _0804E928: .4byte gUnk_080F3604 thumb_func_start sub_0804E92C sub_0804E92C: @ 0x0804E92C movs r0, #1 bx lr thumb_func_start sub_0804E930 sub_0804E930: @ 0x0804E930 push {lr} movs r0, #0x1d bl sub_0807CC30 cmp r0, #0 beq _0804E942 ldr r0, _0804E944 @ =gUnk_080F37D0 bl sub_0804ADDC _0804E942: pop {pc} .align 2, 0 _0804E944: .4byte gUnk_080F37D0 thumb_func_start sub_0804E948 sub_0804E948: @ 0x0804E948 movs r0, #1 bx lr thumb_func_start nullsub_380 nullsub_380: @ 0x0804E94C bx lr .align 2, 0 thumb_func_start sub_0804E950 sub_0804E950: @ 0x0804E950 movs r0, #1 bx lr thumb_func_start sub_0804E954 sub_0804E954: @ 0x0804E954 push {lr} movs r0, #0x46 bl sub_0807CA84 cmp r0, #0 bne _0804E97A movs r0, #0x29 bl sub_0807CC30 cmp r0, #0 beq _0804E97A movs r0, #0x3b bl sub_0807CA84 cmp r0, #0 bne _0804E97A ldr r0, _0804E988 @ =gUnk_080F3A48 bl sub_0804ADDC _0804E97A: ldr r0, _0804E98C @ =gUnk_030010A0 ldr r1, _0804E990 @ =0x00000F28 strh r1, [r0, #0x20] ldr r1, _0804E994 @ =0x0000082D strh r1, [r0, #0x22] pop {pc} .align 2, 0 _0804E988: .4byte gUnk_080F3A48 _0804E98C: .4byte gUnk_030010A0 _0804E990: .4byte 0x00000F28 _0804E994: .4byte 0x0000082D thumb_func_start sub_0804E998 sub_0804E998: @ 0x0804E998 push {lr} movs r0, #5 bl sub_0807CC30 cmp r0, #0 beq _0804E9BC movs r0, #4 bl sub_0807CBD0 cmp r0, #0 bne _0804E9BC ldr r1, _0804E9B4 @ =gUnk_02034350 ldr r0, _0804E9B8 @ =gUnk_080F3EA4 b _0804E9C0 .align 2, 0 _0804E9B4: .4byte gUnk_02034350 _0804E9B8: .4byte gUnk_080F3EA4 _0804E9BC: ldr r1, _0804E9C8 @ =gUnk_02034350 ldr r0, _0804E9CC @ =gUnk_080F3D44 _0804E9C0: str r0, [r1, #0x74] movs r0, #1 pop {pc} .align 2, 0 _0804E9C8: .4byte gUnk_02034350 _0804E9CC: .4byte gUnk_080F3D44 thumb_func_start sub_0804E9D0 sub_0804E9D0: @ 0x0804E9D0 push {r4, lr} movs r0, #5 bl sub_0807CC30 cmp r0, #0 beq _0804E9EC movs r0, #4 bl sub_0807CBD0 cmp r0, #0 bne _0804E9EC ldr r0, _0804EAC4 @ =gUnk_080F3C64 bl sub_0804ADDC _0804E9EC: movs r0, #0x12 bl sub_0801E7F4 cmp r0, #0 beq _0804E9FC ldr r0, _0804EAC8 @ =gUnk_080F3C94 bl sub_0804ADDC _0804E9FC: ldr r0, _0804EACC @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #3 bls _0804EA14 movs r0, #0x5c bl sub_0807CC30 cmp r0, #0 beq _0804EA14 ldr r0, _0804EAD0 @ =gUnk_080F3C44 bl sub_0804ADDC _0804EA14: ldr r4, _0804EAD4 @ =0x00004091 movs r1, #0xb2 lsls r1, r1, #3 adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _0804EAD8 @ =0x00000591 adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _0804EADC @ =0x00000592 adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _0804EAE0 @ =0x00000593 adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _0804EAE4 @ =0x00000594 adds r0, r4, #0 movs r2, #1 bl sub_0800015E movs r1, #0xba lsls r1, r1, #3 adds r0, r4, #0 movs r2, #1 bl sub_0800015E movs r1, #0xc2 lsls r1, r1, #3 adds r0, r4, #0 movs r2, #1 bl sub_0800015E movs r1, #0xca lsls r1, r1, #3 adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _0804EAE8 @ =0x000005D4 adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _0804EAEC @ =0x00000614 adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _0804EAF0 @ =0x00000654 adds r0, r4, #0 movs r2, #1 bl sub_0800015E movs r1, #0xd2 lsls r1, r1, #3 adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _0804EAF4 @ =0x00000691 adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _0804EAF8 @ =0x00000692 adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _0804EAFC @ =0x00000693 adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _0804EB00 @ =0x00000694 adds r0, r4, #0 movs r2, #1 bl sub_0800015E pop {r4, pc} .align 2, 0 _0804EAC4: .4byte gUnk_080F3C64 _0804EAC8: .4byte gUnk_080F3C94 _0804EACC: .4byte gUnk_02002A40 _0804EAD0: .4byte gUnk_080F3C44 _0804EAD4: .4byte 0x00004091 _0804EAD8: .4byte 0x00000591 _0804EADC: .4byte 0x00000592 _0804EAE0: .4byte 0x00000593 _0804EAE4: .4byte 0x00000594 _0804EAE8: .4byte 0x000005D4 _0804EAEC: .4byte 0x00000614 _0804EAF0: .4byte 0x00000654 _0804EAF4: .4byte 0x00000691 _0804EAF8: .4byte 0x00000692 _0804EAFC: .4byte 0x00000693 _0804EB00: .4byte 0x00000694 thumb_func_start sub_0804EB04 sub_0804EB04: @ 0x0804EB04 movs r0, #1 bx lr thumb_func_start nullsub_381 nullsub_381: @ 0x0804EB08 bx lr .align 2, 0 thumb_func_start sub_0804EB0C sub_0804EB0C: @ 0x0804EB0C movs r0, #1 bx lr thumb_func_start nullsub_382 nullsub_382: @ 0x0804EB10 bx lr .align 2, 0 thumb_func_start sub_0804EB14 sub_0804EB14: @ 0x0804EB14 movs r0, #1 bx lr thumb_func_start nullsub_383 nullsub_383: @ 0x0804EB18 bx lr .align 2, 0 thumb_func_start sub_0804EB1C sub_0804EB1C: @ 0x0804EB1C movs r0, #1 bx lr thumb_func_start nullsub_384 nullsub_384: @ 0x0804EB20 bx lr .align 2, 0 thumb_func_start sub_0804EB24 sub_0804EB24: @ 0x0804EB24 movs r0, #1 bx lr thumb_func_start nullsub_385 nullsub_385: @ 0x0804EB28 bx lr .align 2, 0 thumb_func_start sub_0804EB2C sub_0804EB2C: @ 0x0804EB2C movs r0, #1 bx lr thumb_func_start nullsub_386 nullsub_386: @ 0x0804EB30 bx lr .align 2, 0 thumb_func_start sub_0804EB34 sub_0804EB34: @ 0x0804EB34 movs r0, #1 bx lr thumb_func_start nullsub_387 nullsub_387: @ 0x0804EB38 bx lr .align 2, 0 thumb_func_start sub_0804EB3C sub_0804EB3C: @ 0x0804EB3C movs r0, #1 bx lr thumb_func_start nullsub_388 nullsub_388: @ 0x0804EB40 bx lr .align 2, 0 thumb_func_start sub_0804EB44 sub_0804EB44: @ 0x0804EB44 movs r0, #1 bx lr thumb_func_start nullsub_389 nullsub_389: @ 0x0804EB48 bx lr .align 2, 0 thumb_func_start sub_0804EB4C sub_0804EB4C: @ 0x0804EB4C movs r0, #1 bx lr thumb_func_start nullsub_390 nullsub_390: @ 0x0804EB50 bx lr .align 2, 0 thumb_func_start sub_0804EB54 sub_0804EB54: @ 0x0804EB54 ldr r2, _0804EB64 @ =gUnk_02033A90 ldrb r1, [r2] movs r0, #0x48 orrs r0, r1 strb r0, [r2] movs r0, #1 bx lr .align 2, 0 _0804EB64: .4byte gUnk_02033A90 thumb_func_start nullsub_391 nullsub_391: @ 0x0804EB68 bx lr .align 2, 0 thumb_func_start sub_0804EB6C sub_0804EB6C: @ 0x0804EB6C ldr r2, _0804EB7C @ =gUnk_02033A90 ldrb r1, [r2] movs r0, #0x48 orrs r0, r1 strb r0, [r2] movs r0, #1 bx lr .align 2, 0 _0804EB7C: .4byte gUnk_02033A90 thumb_func_start nullsub_392 nullsub_392: @ 0x0804EB80 bx lr .align 2, 0 thumb_func_start sub_0804EB84 sub_0804EB84: @ 0x0804EB84 ldr r2, _0804EB94 @ =gUnk_02033A90 ldrb r1, [r2] movs r0, #0x48 orrs r0, r1 strb r0, [r2] movs r0, #1 bx lr .align 2, 0 _0804EB94: .4byte gUnk_02033A90 thumb_func_start nullsub_393 nullsub_393: @ 0x0804EB98 bx lr .align 2, 0 thumb_func_start sub_0804EB9C sub_0804EB9C: @ 0x0804EB9C push {lr} movs r0, #0x58 movs r1, #5 bl sub_0801DD58 ldr r2, _0804EBB4 @ =gUnk_02033A90 ldrb r1, [r2] movs r0, #0x48 orrs r0, r1 strb r0, [r2] movs r0, #1 pop {pc} .align 2, 0 _0804EBB4: .4byte gUnk_02033A90 thumb_func_start nullsub_394 nullsub_394: @ 0x0804EBB8 bx lr .align 2, 0 thumb_func_start sub_0804EBBC sub_0804EBBC: @ 0x0804EBBC push {lr} movs r0, #0x58 movs r1, #6 bl sub_0801DD58 ldr r2, _0804EBD4 @ =gUnk_02033A90 ldrb r1, [r2] movs r0, #0x48 orrs r0, r1 strb r0, [r2] movs r0, #1 pop {pc} .align 2, 0 _0804EBD4: .4byte gUnk_02033A90 thumb_func_start nullsub_395 nullsub_395: @ 0x0804EBD8 bx lr .align 2, 0 thumb_func_start sub_0804EBDC sub_0804EBDC: @ 0x0804EBDC push {lr} movs r0, #0x51 bl sub_0807CC30 cmp r0, #0 beq _0804EBF2 ldr r0, _0804EBF8 @ =gUnk_02034350 ldr r1, _0804EBFC @ =gUnk_080F4EB0 str r1, [r0, #0x6c] movs r1, #0 str r1, [r0, #0x74] _0804EBF2: movs r0, #1 pop {pc} .align 2, 0 _0804EBF8: .4byte gUnk_02034350 _0804EBFC: .4byte gUnk_080F4EB0 thumb_func_start sub_0804EC00 sub_0804EC00: @ 0x0804EC00 push {lr} movs r0, #0x51 bl sub_0807CC30 cmp r0, #0 beq _0804EC1A ldr r0, _0804EC48 @ =gUnk_02033A90 ldr r2, _0804EC4C @ =0x00000864 adds r1, r0, r2 subs r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] _0804EC1A: movs r0, #0x14 bl sub_0807CC30 cmp r0, #0 bne _0804EC2A ldr r0, _0804EC50 @ =gUnk_080F4D50 bl sub_0804ADDC _0804EC2A: movs r0, #0x3e bl sub_0807CBD0 cmp r0, #0 bne _0804EC64 movs r0, #0x3b bl sub_0807CBD0 cmp r0, #0 bne _0804EC58 ldr r0, _0804EC54 @ =gUnk_080F4DB0 bl sub_0804ADDC b _0804EC5E .align 2, 0 _0804EC48: .4byte gUnk_02033A90 _0804EC4C: .4byte 0x00000864 _0804EC50: .4byte gUnk_080F4D50 _0804EC54: .4byte gUnk_080F4DB0 _0804EC58: ldr r0, _0804EC84 @ =gUnk_080F4DD0 bl sub_0804ADDC _0804EC5E: ldr r0, _0804EC88 @ =gUnk_080F4DF0 bl sub_0804ADDC _0804EC64: movs r0, #0x4e bl sub_0801E7F4 cmp r0, #0 beq _0804EC74 ldr r0, _0804EC8C @ =gUnk_080F4F10 bl sub_0804ADDC _0804EC74: ldr r0, _0804EC90 @ =gUnk_02002A40 ldr r0, [r0, #0x40] cmp r0, #0 blt _0804EC82 ldr r0, _0804EC94 @ =gUnk_080F4E10 bl sub_0804ADDC _0804EC82: pop {pc} .align 2, 0 _0804EC84: .4byte gUnk_080F4DD0 _0804EC88: .4byte gUnk_080F4DF0 _0804EC8C: .4byte gUnk_080F4F10 _0804EC90: .4byte gUnk_02002A40 _0804EC94: .4byte gUnk_080F4E10 thumb_func_start sub_0804EC98 sub_0804EC98: @ 0x0804EC98 push {lr} ldr r0, _0804ECAC @ =gUnk_02002A40 ldr r0, [r0, #0x40] cmp r0, #0 blt _0804ECA8 ldr r0, _0804ECB0 @ =gUnk_080F4E10 bl sub_0804ADDC _0804ECA8: pop {pc} .align 2, 0 _0804ECAC: .4byte gUnk_02002A40 _0804ECB0: .4byte gUnk_080F4E10 thumb_func_start sub_0804ECB4 sub_0804ECB4: @ 0x0804ECB4 movs r0, #1 bx lr thumb_func_start nullsub_396 nullsub_396: @ 0x0804ECB8 bx lr .align 2, 0 thumb_func_start sub_0804ECBC sub_0804ECBC: @ 0x0804ECBC push {lr} movs r0, #0x51 bl sub_0807CC30 cmp r0, #0 beq _0804ECDA ldr r1, _0804ECE0 @ =gUnk_02034350 ldr r0, _0804ECE4 @ =gUnk_080F5348 str r0, [r1, #0x6c] adds r2, r1, #0 adds r2, #0x88 ldr r0, _0804ECE8 @ =sub_0804ED18 str r0, [r2] movs r0, #0 str r0, [r1, #0x74] _0804ECDA: movs r0, #1 pop {pc} .align 2, 0 _0804ECE0: .4byte gUnk_02034350 _0804ECE4: .4byte gUnk_080F5348 _0804ECE8: .4byte sub_0804ED18 thumb_func_start sub_0804ECEC sub_0804ECEC: @ 0x0804ECEC push {lr} movs r0, #2 bl sub_0807CA84 cmp r0, #0 beq _0804ED0E ldr r0, _0804ED10 @ =gUnk_080F5328 bl sub_0804ADDC movs r0, #0x14 bl sub_0807CBD0 cmp r0, #0 bne _0804ED0E ldr r0, _0804ED14 @ =gUnk_080F5308 bl sub_0804ADDC _0804ED0E: pop {pc} .align 2, 0 _0804ED10: .4byte gUnk_080F5328 _0804ED14: .4byte gUnk_080F5308 thumb_func_start sub_0804ED18 sub_0804ED18: @ 0x0804ED18 ldr r0, _0804ED28 @ =gUnk_02033A90 ldr r2, _0804ED2C @ =0x00000864 adds r1, r0, r2 subs r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] bx lr .align 2, 0 _0804ED28: .4byte gUnk_02033A90 _0804ED2C: .4byte 0x00000864 thumb_func_start sub_0804ED30 sub_0804ED30: @ 0x0804ED30 movs r0, #1 bx lr thumb_func_start sub_0804ED34 sub_0804ED34: @ 0x0804ED34 push {lr} bl sub_080AF2E4 movs r0, #0x5d bl sub_0807CC30 cmp r0, #0 beq _0804ED4E ldr r0, _0804ED50 @ =gUnk_02033A90 ldr r1, _0804ED54 @ =0x00000864 adds r0, r0, r1 movs r1, #0x31 str r1, [r0] _0804ED4E: pop {pc} .align 2, 0 _0804ED50: .4byte gUnk_02033A90 _0804ED54: .4byte 0x00000864 thumb_func_start sub_0804ED58 sub_0804ED58: @ 0x0804ED58 movs r0, #1 bx lr thumb_func_start sub_0804ED5C sub_0804ED5C: @ 0x0804ED5C push {lr} movs r0, #0x79 bl sub_0807CBD0 cmp r0, #0 bne _0804ED6E ldr r0, _0804EDA8 @ =gUnk_080F54E8 bl sub_0804ADDC _0804ED6E: movs r0, #0x7a bl sub_0807CBD0 cmp r0, #0 bne _0804EDB0 movs r0, #2 bl sub_0807CA84 cmp r0, #0 beq _0804EE16 movs r0, #3 bl sub_0807CA84 cmp r0, #0 bne _0804EE16 movs r0, #0x40 bl sub_0807CA84 cmp r0, #0 beq _0804EE16 movs r0, #0x41 bl sub_0807CA84 cmp r0, #0 beq _0804EE16 ldr r0, _0804EDAC @ =gUnk_080F5508 bl sub_0804ADDC b _0804EE16 .align 2, 0 _0804EDA8: .4byte gUnk_080F54E8 _0804EDAC: .4byte gUnk_080F5508 _0804EDB0: movs r0, #0x7b bl sub_0807CBD0 cmp r0, #0 bne _0804EDE4 movs r0, #3 bl sub_0807CA84 cmp r0, #0 beq _0804EE16 movs r0, #4 bl sub_0807CA84 cmp r0, #0 bne _0804EE16 movs r0, #0x42 bl sub_0807CA84 cmp r0, #0 beq _0804EE16 ldr r0, _0804EDE0 @ =gUnk_080F5558 bl sub_0804ADDC b _0804EE16 .align 2, 0 _0804EDE0: .4byte gUnk_080F5558 _0804EDE4: movs r0, #0x7c bl sub_0807CBD0 cmp r0, #0 bne _0804EE10 movs r0, #6 bl sub_0807CA84 cmp r0, #0 bne _0804EE16 movs r0, #0x43 bl sub_0807CA84 cmp r0, #0 beq _0804EE16 ldr r0, _0804EE0C @ =gUnk_080F5598 bl sub_0804ADDC b _0804EE16 .align 2, 0 _0804EE0C: .4byte gUnk_080F5598 _0804EE10: ldr r0, _0804EE5C @ =gUnk_080F55D8 bl sub_0804ADDC _0804EE16: movs r0, #0x7a bl sub_0807CBD0 cmp r0, #0 beq _0804EE26 ldr r0, _0804EE60 @ =gUnk_080F5528 bl sub_0804ADDC _0804EE26: movs r0, #0x7b bl sub_0807CBD0 cmp r0, #0 beq _0804EE36 ldr r0, _0804EE64 @ =gUnk_080F5578 bl sub_0804ADDC _0804EE36: movs r0, #0x7c bl sub_0807CBD0 cmp r0, #0 beq _0804EE46 ldr r0, _0804EE68 @ =gUnk_080F55B8 bl sub_0804ADDC _0804EE46: movs r0, #0x5d bl sub_0807CC30 cmp r0, #0 beq _0804EE5A ldr r0, _0804EE6C @ =gUnk_02033A90 ldr r1, _0804EE70 @ =0x00000864 adds r0, r0, r1 movs r1, #0x31 str r1, [r0] _0804EE5A: pop {pc} .align 2, 0 _0804EE5C: .4byte gUnk_080F55D8 _0804EE60: .4byte gUnk_080F5528 _0804EE64: .4byte gUnk_080F5578 _0804EE68: .4byte gUnk_080F55B8 _0804EE6C: .4byte gUnk_02033A90 _0804EE70: .4byte 0x00000864 thumb_func_start sub_0804EE74 sub_0804EE74: @ 0x0804EE74 movs r0, #1 bx lr thumb_func_start sub_0804EE78 sub_0804EE78: @ 0x0804EE78 push {lr} movs r0, #0x78 bl sub_0807CBD0 cmp r0, #0 bne _0804EE94 movs r0, #0x7c bl sub_0807CBD0 cmp r0, #0 beq _0804EE94 ldr r0, _0804EEAC @ =gUnk_080F5660 bl sub_0804ADDC _0804EE94: movs r0, #0x5d bl sub_0807CC30 cmp r0, #0 beq _0804EEA8 ldr r0, _0804EEB0 @ =gUnk_02033A90 ldr r1, _0804EEB4 @ =0x00000864 adds r0, r0, r1 movs r1, #0x31 str r1, [r0] _0804EEA8: pop {pc} .align 2, 0 _0804EEAC: .4byte gUnk_080F5660 _0804EEB0: .4byte gUnk_02033A90 _0804EEB4: .4byte 0x00000864 thumb_func_start sub_0804EEB8 sub_0804EEB8: @ 0x0804EEB8 movs r0, #1 bx lr thumb_func_start sub_0804EEBC sub_0804EEBC: @ 0x0804EEBC push {lr} ldr r0, _0804EEF4 @ =gUnk_080F5758 bl sub_0804ADDC movs r0, #0x36 bl sub_0807CA84 cmp r0, #0 bne _0804EEE2 movs r0, #0x80 lsls r0, r0, #2 movs r1, #0x8f bl sub_0807CB10 cmp r0, #0 beq _0804EEE2 ldr r0, _0804EEF8 @ =gUnk_080F57E8 bl sub_0804ADDC _0804EEE2: movs r0, #0x55 bl sub_0807CBD0 cmp r0, #0 bne _0804EF00 ldr r0, _0804EEFC @ =gUnk_080F57A8 bl sub_0804ADDC b _0804EF54 .align 2, 0 _0804EEF4: .4byte gUnk_080F5758 _0804EEF8: .4byte gUnk_080F57E8 _0804EEFC: .4byte gUnk_080F57A8 _0804EF00: ldr r1, _0804EF34 @ =gUnk_080FD5A0 ldr r0, _0804EF38 @ =gUnk_02002A40 adds r0, #0xae ldrb r0, [r0] adds r0, r0, r1 ldrb r0, [r0] cmp r0, #0x1d bls _0804EF16 ldr r0, _0804EF3C @ =gUnk_080F57C8 bl sub_0804ADDC _0804EF16: movs r0, #0xb bl sub_0807CA84 cmp r0, #0 bne _0804EF44 movs r0, #0xc bl sub_0807CA84 cmp r0, #0 bne _0804EF44 ldr r0, _0804EF40 @ =gUnk_080F5888 bl sub_0804ADDC b _0804EF54 .align 2, 0 _0804EF34: .4byte gUnk_080FD5A0 _0804EF38: .4byte gUnk_02002A40 _0804EF3C: .4byte gUnk_080F57C8 _0804EF40: .4byte gUnk_080F5888 _0804EF44: movs r0, #0xcd bl sub_0807CBD0 cmp r0, #0 bne _0804EF54 ldr r0, _0804EF80 @ =gUnk_080F58A8 bl sub_0804ADDC _0804EF54: movs r0, #9 bl sub_0807CA84 cmp r0, #0 bne _0804EF68 movs r0, #4 bl sub_0807CC30 cmp r0, #0 beq _0804EF92 _0804EF68: ldr r0, _0804EF84 @ =gUnk_080F5868 bl sub_0804ADDC movs r0, #0x56 bl sub_0807CBD0 cmp r0, #0 bne _0804EF8C ldr r0, _0804EF88 @ =gUnk_080F5828 bl sub_0804ADDC b _0804EF92 .align 2, 0 _0804EF80: .4byte gUnk_080F58A8 _0804EF84: .4byte gUnk_080F5868 _0804EF88: .4byte gUnk_080F5828 _0804EF8C: ldr r0, _0804EFA4 @ =gUnk_080F5848 bl sub_0804ADDC _0804EF92: ldr r0, _0804EFA8 @ =gUnk_02002A40 adds r0, #0xbb ldrb r0, [r0] cmp r0, #0 bne _0804EFA2 ldr r0, _0804EFAC @ =gUnk_080F5788 bl sub_0804ADDC _0804EFA2: pop {pc} .align 2, 0 _0804EFA4: .4byte gUnk_080F5848 _0804EFA8: .4byte gUnk_02002A40 _0804EFAC: .4byte gUnk_080F5788 thumb_func_start sub_0804EFB0 sub_0804EFB0: @ 0x0804EFB0 movs r0, #1 bx lr thumb_func_start nullsub_397 nullsub_397: @ 0x0804EFB4 bx lr .align 2, 0 thumb_func_start sub_0804EFB8 sub_0804EFB8: @ 0x0804EFB8 movs r0, #1 bx lr thumb_func_start sub_0804EFBC sub_0804EFBC: @ 0x0804EFBC push {lr} movs r0, #0x38 bl sub_0807CA84 cmp r0, #1 bne _0804EFCE ldr r0, _0804EFD0 @ =gUnk_080F5B3C bl sub_0804ADDC _0804EFCE: pop {pc} .align 2, 0 _0804EFD0: .4byte gUnk_080F5B3C thumb_func_start sub_0804EFD4 sub_0804EFD4: @ 0x0804EFD4 movs r0, #1 bx lr thumb_func_start nullsub_398 nullsub_398: @ 0x0804EFD8 bx lr .align 2, 0 thumb_func_start sub_0804EFDC sub_0804EFDC: @ 0x0804EFDC push {lr} movs r0, #0x50 bl sub_0807CC30 cmp r0, #0 beq _0804EFEE ldr r1, _0804EFF4 @ =gUnk_030010A0 movs r0, #5 strb r0, [r1, #0xf] _0804EFEE: movs r0, #1 pop {pc} .align 2, 0 _0804EFF4: .4byte gUnk_030010A0 thumb_func_start sub_0804EFF8 sub_0804EFF8: @ 0x0804EFF8 push {lr} ldr r0, _0804F020 @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #7 bls _0804F008 ldr r0, _0804F024 @ =gUnk_080F5DD0 bl sub_0804ADDC _0804F008: movs r0, #0x50 bl sub_0807CC30 cmp r0, #0 beq _0804F01C ldr r2, _0804F028 @ =gUnk_08011C50 movs r0, #1 movs r1, #2 bl sub_080751E8 _0804F01C: pop {pc} .align 2, 0 _0804F020: .4byte gUnk_02002A40 _0804F024: .4byte gUnk_080F5DD0 _0804F028: .4byte gUnk_08011C50 thumb_func_start sub_0804F02C sub_0804F02C: @ 0x0804F02C movs r0, #1 bx lr thumb_func_start sub_0804F030 sub_0804F030: @ 0x0804F030 push {lr} movs r0, #0x80 lsls r0, r0, #1 movs r1, #0xd1 bl sub_0807CB10 cmp r0, #0 bne _0804F046 ldr r0, _0804F048 @ =gUnk_080F5E68 bl sub_0804ADDC _0804F046: pop {pc} .align 2, 0 _0804F048: .4byte gUnk_080F5E68 thumb_func_start sub_0804F04C sub_0804F04C: @ 0x0804F04C movs r0, #1 bx lr thumb_func_start sub_0804F050 sub_0804F050: @ 0x0804F050 push {lr} ldr r0, _0804F074 @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #4 bls _0804F060 ldr r0, _0804F078 @ =gUnk_080F5F38 bl sub_0804ADDC _0804F060: movs r0, #0x92 bl sub_0807CBD0 cmp r0, #0 bne _0804F080 ldr r0, _0804F07C @ =gUnk_080F5F58 bl sub_0804ADDC b _0804F086 .align 2, 0 _0804F074: .4byte gUnk_02002A40 _0804F078: .4byte gUnk_080F5F38 _0804F07C: .4byte gUnk_080F5F58 _0804F080: ldr r0, _0804F088 @ =gUnk_080F5F78 bl sub_0804ADDC _0804F086: pop {pc} .align 2, 0 _0804F088: .4byte gUnk_080F5F78 thumb_func_start sub_0804F08C sub_0804F08C: @ 0x0804F08C movs r0, #1 bx lr thumb_func_start nullsub_399 nullsub_399: @ 0x0804F090 bx lr .align 2, 0 thumb_func_start sub_0804F094 sub_0804F094: @ 0x0804F094 movs r0, #1 bx lr thumb_func_start nullsub_400 nullsub_400: @ 0x0804F098 bx lr .align 2, 0 thumb_func_start sub_0804F09C sub_0804F09C: @ 0x0804F09C push {lr} movs r0, #0x24 bl sub_0807CC30 cmp r0, #0 beq _0804F0BC movs r0, #0x80 lsls r0, r0, #1 movs r1, #0xdc bl sub_0807CB10 cmp r0, #0 beq _0804F0BC movs r0, #0x58 bl sub_0807CD04 _0804F0BC: movs r0, #1 pop {pc} thumb_func_start sub_0804F0C0 sub_0804F0C0: @ 0x0804F0C0 push {r4, lr} movs r0, #0x80 lsls r0, r0, #1 movs r1, #0xdc bl sub_0807CB10 cmp r0, #0 beq _0804F0D6 movs r0, #0x90 bl sub_0807CCB4 _0804F0D6: movs r0, #0xf bl sub_0801E7F4 cmp r0, #0 beq _0804F0E6 ldr r0, _0804F118 @ =gUnk_080F61BC bl sub_0804ADDC _0804F0E6: movs r0, #0x58 bl sub_0807CC30 cmp r0, #0 bne _0804F106 ldr r4, _0804F11C @ =0x00004072 ldr r1, _0804F120 @ =0x000004C7 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _0804F124 @ =0x00000507 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 _0804F106: movs r2, #0xf4 lsls r2, r2, #1 movs r3, #0xac lsls r3, r3, #1 movs r0, #8 movs r1, #0 bl sub_08052CA4 pop {r4, pc} .align 2, 0 _0804F118: .4byte gUnk_080F61BC _0804F11C: .4byte 0x00004072 _0804F120: .4byte 0x000004C7 _0804F124: .4byte 0x00000507 thumb_func_start sub_0804F128 sub_0804F128: @ 0x0804F128 movs r0, #1 bx lr thumb_func_start sub_0804F12C sub_0804F12C: @ 0x0804F12C push {lr} movs r0, #0x58 bl sub_0807CC30 cmp r0, #0 bne _0804F144 ldr r0, _0804F140 @ =gUnk_080F62E4 bl sub_0804ADDC b _0804F154 .align 2, 0 _0804F140: .4byte gUnk_080F62E4 _0804F144: movs r0, #0x63 bl sub_0807CBD0 cmp r0, #0 beq _0804F154 ldr r0, _0804F158 @ =gUnk_080F6324 bl sub_0804ADDC _0804F154: pop {pc} .align 2, 0 _0804F158: .4byte gUnk_080F6324 thumb_func_start sub_0804F15C sub_0804F15C: @ 0x0804F15C movs r0, #1 bx lr thumb_func_start nullsub_401 nullsub_401: @ 0x0804F160 bx lr .align 2, 0 thumb_func_start sub_0804F164 sub_0804F164: @ 0x0804F164 movs r0, #1 bx lr thumb_func_start sub_0804F168 sub_0804F168: @ 0x0804F168 push {lr} movs r0, #0xb1 bl sub_0807CBD0 cmp r0, #0 bne _0804F180 ldr r0, _0804F17C @ =gUnk_080F6564 bl sub_0804ADDC b _0804F186 .align 2, 0 _0804F17C: .4byte gUnk_080F6564 _0804F180: ldr r0, _0804F188 @ =gUnk_080F6584 bl sub_0804ADDC _0804F186: pop {pc} .align 2, 0 _0804F188: .4byte gUnk_080F6584 thumb_func_start sub_0804F18C sub_0804F18C: @ 0x0804F18C movs r0, #1 bx lr thumb_func_start sub_0804F190 sub_0804F190: @ 0x0804F190 push {lr} movs r0, #5 bl sub_0805B4D0 movs r0, #6 bl sub_0807CC30 cmp r0, #0 beq _0804F1B6 movs r0, #0x80 lsls r0, r0, #1 movs r1, #5 bl sub_0807CB10 cmp r0, #0 bne _0804F1B6 ldr r0, _0804F1D4 @ =gUnk_080F66AC bl sub_0804ADDC _0804F1B6: movs r2, #0xf4 lsls r2, r2, #1 movs r3, #0xac lsls r3, r3, #1 movs r0, #8 movs r1, #0 bl sub_08052CA4 ldr r2, _0804F1D8 @ =gUnk_02033A90 ldrb r1, [r2] movs r0, #0x80 orrs r0, r1 strb r0, [r2] pop {pc} .align 2, 0 _0804F1D4: .4byte gUnk_080F66AC _0804F1D8: .4byte gUnk_02033A90 thumb_func_start sub_0804F1DC sub_0804F1DC: @ 0x0804F1DC movs r0, #1 bx lr thumb_func_start nullsub_402 nullsub_402: @ 0x0804F1E0 bx lr .align 2, 0 thumb_func_start sub_0804F1E4 sub_0804F1E4: @ 0x0804F1E4 movs r0, #1 bx lr thumb_func_start nullsub_403 nullsub_403: @ 0x0804F1E8 bx lr .align 2, 0 thumb_func_start sub_0804F1EC sub_0804F1EC: @ 0x0804F1EC movs r0, #1 bx lr thumb_func_start nullsub_404 nullsub_404: @ 0x0804F1F0 bx lr .align 2, 0 thumb_func_start sub_0804F1F4 sub_0804F1F4: @ 0x0804F1F4 movs r0, #1 bx lr thumb_func_start nullsub_405 nullsub_405: @ 0x0804F1F8 bx lr .align 2, 0 thumb_func_start sub_0804F1FC sub_0804F1FC: @ 0x0804F1FC movs r0, #1 bx lr thumb_func_start nullsub_406 nullsub_406: @ 0x0804F200 bx lr .align 2, 0 thumb_func_start sub_0804F204 sub_0804F204: @ 0x0804F204 movs r0, #1 bx lr thumb_func_start nullsub_407 nullsub_407: @ 0x0804F208 bx lr .align 2, 0 thumb_func_start sub_0804F20C sub_0804F20C: @ 0x0804F20C movs r0, #1 bx lr thumb_func_start nullsub_408 nullsub_408: @ 0x0804F210 bx lr .align 2, 0 thumb_func_start sub_0804F214 sub_0804F214: @ 0x0804F214 movs r0, #1 bx lr thumb_func_start nullsub_409 nullsub_409: @ 0x0804F218 bx lr .align 2, 0 thumb_func_start sub_0804F21C sub_0804F21C: @ 0x0804F21C movs r0, #1 bx lr thumb_func_start nullsub_410 nullsub_410: @ 0x0804F220 bx lr .align 2, 0 thumb_func_start sub_0804F224 sub_0804F224: @ 0x0804F224 movs r0, #1 bx lr thumb_func_start nullsub_411 nullsub_411: @ 0x0804F228 bx lr .align 2, 0 thumb_func_start sub_0804F22C sub_0804F22C: @ 0x0804F22C movs r0, #1 bx lr thumb_func_start sub_0804F230 sub_0804F230: @ 0x0804F230 push {lr} movs r0, #0 bl sub_0805ADD8 pop {pc} .align 2, 0 thumb_func_start sub_0804F23C sub_0804F23C: @ 0x0804F23C push {lr} movs r0, #0x6d bl sub_0807CBD0 cmp r0, #0 bne _0804F252 movs r1, #0x80 lsls r1, r1, #1 movs r0, #7 bl sub_08050054 _0804F252: movs r0, #0x49 bl sub_0807CD04 movs r0, #1 pop {pc} thumb_func_start sub_0804F25C sub_0804F25C: @ 0x0804F25C push {r4, lr} movs r0, #0 bl sub_0805ADD8 movs r0, #0x6d bl sub_0807CBD0 cmp r0, #0 bne _0804F27A ldr r0, _0804F2B0 @ =gUnk_080F70A8 bl sub_0804ADDC movs r0, #0x1c bl sub_0807CD80 _0804F27A: movs r0, #0x15 bl sub_0807CC30 cmp r0, #0 bne _0804F28E ldr r0, _0804F2B4 @ =gUnk_02033A90 ldr r1, _0804F2B8 @ =0x00000864 adds r0, r0, r1 movs r1, #0x10 str r1, [r0] _0804F28E: ldr r4, _0804F2BC @ =gUnk_02002A40 ldr r0, [r4, #0x40] movs r1, #0x80 lsls r1, r1, #0x17 ands r0, r1 cmp r0, #0 bne _0804F2A2 ldr r0, _0804F2C0 @ =gUnk_080F70D8 bl sub_0804ADDC _0804F2A2: ldrb r0, [r4, #8] cmp r0, #3 bls _0804F2AE ldr r0, _0804F2C4 @ =gUnk_080F7088 bl sub_0804ADDC _0804F2AE: pop {r4, pc} .align 2, 0 _0804F2B0: .4byte gUnk_080F70A8 _0804F2B4: .4byte gUnk_02033A90 _0804F2B8: .4byte 0x00000864 _0804F2BC: .4byte gUnk_02002A40 _0804F2C0: .4byte gUnk_080F70D8 _0804F2C4: .4byte gUnk_080F7088 thumb_func_start sub_0804F2C8 sub_0804F2C8: @ 0x0804F2C8 push {lr} ldr r0, _0804F2E0 @ =gUnk_02002A40 ldr r0, [r0, #0x40] movs r1, #0x80 lsls r1, r1, #0x17 ands r0, r1 cmp r0, #0 bne _0804F2DE ldr r0, _0804F2E4 @ =gUnk_080F70D8 bl sub_0804ADDC _0804F2DE: pop {pc} .align 2, 0 _0804F2E0: .4byte gUnk_02002A40 _0804F2E4: .4byte gUnk_080F70D8 thumb_func_start sub_0804F2E8 sub_0804F2E8: @ 0x0804F2E8 movs r0, #1 bx lr thumb_func_start sub_0804F2EC sub_0804F2EC: @ 0x0804F2EC push {lr} movs r0, #0 bl sub_0805ADD8 pop {pc} .align 2, 0 thumb_func_start sub_0804F2F8 sub_0804F2F8: @ 0x0804F2F8 movs r0, #1 bx lr thumb_func_start sub_0804F2FC sub_0804F2FC: @ 0x0804F2FC push {lr} movs r0, #0 bl sub_0805ADD8 pop {pc} .align 2, 0 thumb_func_start sub_0804F308 sub_0804F308: @ 0x0804F308 push {lr} movs r0, #0x11 bl sub_0807CA84 cmp r0, #0 beq _0804F324 movs r0, #0x12 bl sub_0807CA84 cmp r0, #0 bne _0804F324 ldr r1, _0804F328 @ =gUnk_02034350 ldr r0, _0804F32C @ =gUnk_080F7680 str r0, [r1, #0x74] _0804F324: movs r0, #1 pop {pc} .align 2, 0 _0804F328: .4byte gUnk_02034350 _0804F32C: .4byte gUnk_080F7680 thumb_func_start sub_0804F330 sub_0804F330: @ 0x0804F330 push {r4, lr} movs r0, #0 bl sub_0805ADD8 ldr r0, _0804F38C @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #3 bls _0804F346 ldr r0, _0804F390 @ =gUnk_080F7500 bl sub_0804ADDC _0804F346: movs r0, #0x11 bl sub_0807CA84 cmp r0, #0 beq _0804F38A movs r0, #0x12 bl sub_0807CA84 cmp r0, #0 bne _0804F38A ldr r0, _0804F394 @ =gUnk_080F7550 bl sub_0804ADDC ldr r4, _0804F398 @ =0x00004072 ldr r1, _0804F39C @ =0x00000311 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _0804F3A0 @ =0x00000351 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _0804F3A4 @ =0x000003D9 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _0804F3A8 @ =0x00000419 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 _0804F38A: pop {r4, pc} .align 2, 0 _0804F38C: .4byte gUnk_02002A40 _0804F390: .4byte gUnk_080F7500 _0804F394: .4byte gUnk_080F7550 _0804F398: .4byte 0x00004072 _0804F39C: .4byte 0x00000311 _0804F3A0: .4byte 0x00000351 _0804F3A4: .4byte 0x000003D9 _0804F3A8: .4byte 0x00000419 thumb_func_start sub_0804F3AC sub_0804F3AC: @ 0x0804F3AC movs r0, #1 bx lr thumb_func_start sub_0804F3B0 sub_0804F3B0: @ 0x0804F3B0 push {lr} movs r0, #0 bl sub_0805ADD8 movs r0, #0x80 lsls r0, r0, #2 movs r1, #0x8f bl sub_0807CB10 cmp r0, #0 beq _0804F3DC movs r0, #0x1d bl sub_0807CC30 cmp r0, #0 bne _0804F3EC ldr r0, _0804F3D8 @ =gUnk_080F77C0 bl sub_0804ADDC b _0804F3EC .align 2, 0 _0804F3D8: .4byte gUnk_080F77C0 _0804F3DC: movs r0, #0x40 bl sub_0807CA84 cmp r0, #0 beq _0804F3EC ldr r0, _0804F444 @ =gUnk_080F77F0 bl sub_0804ADDC _0804F3EC: movs r0, #0x15 bl sub_0807CC30 cmp r0, #0 beq _0804F406 movs r0, #0x40 bl sub_0807CA84 cmp r0, #0 bne _0804F406 ldr r0, _0804F448 @ =gUnk_080F7810 bl sub_0804ADDC _0804F406: movs r0, #0x29 bl sub_0801E7F4 cmp r0, #0 bne _0804F42A ldr r0, _0804F44C @ =gUnk_080F7860 bl sub_0804ADDC ldr r0, _0804F450 @ =0x00004072 ldr r1, _0804F454 @ =0x00000D88 movs r2, #1 bl sub_0800015E ldr r0, _0804F458 @ =0x00004096 ldr r1, _0804F45C @ =0x00000DC8 movs r2, #1 bl sub_0800015E _0804F42A: ldr r0, _0804F460 @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #3 bls _0804F442 movs r0, #0x5c bl sub_0807CC30 cmp r0, #0 beq _0804F442 ldr r0, _0804F464 @ =gUnk_080F78A0 bl sub_0804ADDC _0804F442: pop {pc} .align 2, 0 _0804F444: .4byte gUnk_080F77F0 _0804F448: .4byte gUnk_080F7810 _0804F44C: .4byte gUnk_080F7860 _0804F450: .4byte 0x00004072 _0804F454: .4byte 0x00000D88 _0804F458: .4byte 0x00004096 _0804F45C: .4byte 0x00000DC8 _0804F460: .4byte gUnk_02002A40 _0804F464: .4byte gUnk_080F78A0 thumb_func_start sub_0804F468 sub_0804F468: @ 0x0804F468 push {lr} movs r0, #0x15 bl sub_0807CC30 cmp r0, #0 beq _0804F48A movs r0, #0x11 bl sub_0807CA84 cmp r0, #0 bne _0804F48A ldr r0, _0804F4D0 @ =gUnk_02034350 ldr r1, _0804F4D4 @ =gUnk_080F7CD0 str r1, [r0, #0x6c] adds r0, #0x88 ldr r1, _0804F4D8 @ =sub_0804F5E8 str r1, [r0] _0804F48A: movs r0, #3 bl sub_0807CC30 cmp r0, #0 beq _0804F4BA movs r0, #3 bl sub_0807CA84 cmp r0, #0 beq _0804F4BA movs r0, #0x8c bl sub_0807CBD0 adds r3, r0, #0 cmp r3, #0 bne _0804F4BA ldr r1, _0804F4D0 @ =gUnk_02034350 ldr r0, _0804F4DC @ =gUnk_080F7C80 str r0, [r1, #0x6c] adds r2, r1, #0 adds r2, #0x88 ldr r0, _0804F4E0 @ =sub_0804F4E4 str r0, [r2] str r3, [r1, #0x74] _0804F4BA: movs r0, #0x15 bl sub_0807CC30 cmp r0, #0 beq _0804F4CA movs r0, #0x64 bl sub_0807CD80 _0804F4CA: movs r0, #1 pop {pc} .align 2, 0 _0804F4D0: .4byte gUnk_02034350 _0804F4D4: .4byte gUnk_080F7CD0 _0804F4D8: .4byte sub_0804F5E8 _0804F4DC: .4byte gUnk_080F7C80 _0804F4E0: .4byte sub_0804F4E4 thumb_func_start sub_0804F4E4 sub_0804F4E4: @ 0x0804F4E4 push {lr} movs r0, #0 bl sub_0805ADD8 bl sub_0804F578 pop {pc} .align 2, 0 thumb_func_start sub_0804F4F4 sub_0804F4F4: @ 0x0804F4F4 push {r4, lr} bl sub_0804F4E4 movs r0, #0x8b bl sub_0807CBD0 cmp r0, #0 bne _0804F540 ldr r0, _0804F558 @ =gUnk_080F7D70 bl sub_0804ADDC movs r4, #0xba lsls r4, r4, #1 ldr r1, _0804F55C @ =0x000007A2 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _0804F560 @ =0x000007A3 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _0804F564 @ =0x000007A5 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _0804F568 @ =0x000007A6 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _0804F56C @ =0x000007A7 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 _0804F540: movs r0, #0x15 bl sub_0807CC30 cmp r0, #0 bne _0804F554 ldr r0, _0804F570 @ =gUnk_02033A90 ldr r1, _0804F574 @ =0x00000864 adds r0, r0, r1 movs r1, #0x13 str r1, [r0] _0804F554: pop {r4, pc} .align 2, 0 _0804F558: .4byte gUnk_080F7D70 _0804F55C: .4byte 0x000007A2 _0804F560: .4byte 0x000007A3 _0804F564: .4byte 0x000007A5 _0804F568: .4byte 0x000007A6 _0804F56C: .4byte 0x000007A7 _0804F570: .4byte gUnk_02033A90 _0804F574: .4byte 0x00000864 thumb_func_start sub_0804F578 sub_0804F578: @ 0x0804F578 push {lr} movs r0, #0x8e bl sub_0807CBD0 cmp r0, #0 bne _0804F590 ldr r0, _0804F58C @ =gUnk_080F7DC0 bl sub_0804ADDC b _0804F5CC .align 2, 0 _0804F58C: .4byte gUnk_080F7DC0 _0804F590: ldr r1, _0804F5D0 @ =0x0000094A movs r0, #0x37 movs r2, #1 bl sub_0807B314 ldr r1, _0804F5D4 @ =0x0000094B movs r0, #0x37 movs r2, #1 bl sub_0807B314 ldr r1, _0804F5D8 @ =0x0000094C movs r0, #0x37 movs r2, #1 bl sub_0807B314 ldr r1, _0804F5DC @ =0x0000098A movs r0, #0x37 movs r2, #1 bl sub_0807B314 ldr r1, _0804F5E0 @ =0x0000098B movs r0, #0x37 movs r2, #1 bl sub_0807B314 ldr r1, _0804F5E4 @ =0x0000098C movs r0, #0x37 movs r2, #1 bl sub_0807B314 _0804F5CC: pop {pc} .align 2, 0 _0804F5D0: .4byte 0x0000094A _0804F5D4: .4byte 0x0000094B _0804F5D8: .4byte 0x0000094C _0804F5DC: .4byte 0x0000098A _0804F5E0: .4byte 0x0000098B _0804F5E4: .4byte 0x0000098C thumb_func_start sub_0804F5E8 sub_0804F5E8: @ 0x0804F5E8 push {r4, lr} bl sub_0804F4E4 ldr r0, _0804F654 @ =0x000001D3 ldr r1, _0804F658 @ =0x00000BDE movs r2, #1 bl sub_0807B314 movs r4, #0xeb lsls r4, r4, #1 ldr r1, _0804F65C @ =0x00000BE2 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 movs r0, #0xea lsls r0, r0, #1 ldr r1, _0804F660 @ =0x00000C1F movs r2, #1 bl sub_0807B314 ldr r0, _0804F664 @ =0x000001D5 movs r1, #0xc2 lsls r1, r1, #4 movs r2, #1 bl sub_0807B314 ldr r1, _0804F668 @ =0x00000C5E adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r4, _0804F66C @ =0x00004072 ldr r1, _0804F670 @ =0x00000B9B adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _0804F674 @ =0x00000BDB adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _0804F678 @ =0x00000AA4 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _0804F67C @ =0x00000AE4 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 pop {r4, pc} .align 2, 0 _0804F654: .4byte 0x000001D3 _0804F658: .4byte 0x00000BDE _0804F65C: .4byte 0x00000BE2 _0804F660: .4byte 0x00000C1F _0804F664: .4byte 0x000001D5 _0804F668: .4byte 0x00000C5E _0804F66C: .4byte 0x00004072 _0804F670: .4byte 0x00000B9B _0804F674: .4byte 0x00000BDB _0804F678: .4byte 0x00000AA4 _0804F67C: .4byte 0x00000AE4 thumb_func_start sub_0804F680 sub_0804F680: @ 0x0804F680 push {r4, r5, lr} adds r4, r1, #0 adds r5, r2, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _0804F6A2 ldr r0, _0804F6A4 @ =gUnk_03000BF0 ldrh r1, [r0, #6] adds r1, r1, r4 strh r1, [r2, #0x2e] ldrh r0, [r0, #8] adds r0, r0, r5 strh r0, [r2, #0x32] _0804F6A2: pop {r4, r5, pc} .align 2, 0 _0804F6A4: .4byte gUnk_03000BF0 thumb_func_start sub_0804F6A8 sub_0804F6A8: @ 0x0804F6A8 push {r4, lr} adds r4, r0, #0 movs r1, #0xec lsls r1, r1, #1 movs r2, #0x84 lsls r2, r2, #1 bl sub_0804F680 movs r1, #0x86 lsls r1, r1, #2 movs r2, #0xc4 lsls r2, r2, #1 adds r0, r4, #0 bl sub_0804F680 pop {r4, pc} thumb_func_start sub_0804F6C8 sub_0804F6C8: @ 0x0804F6C8 push {r4, lr} adds r4, r0, #0 movs r1, #0xf4 lsls r1, r1, #1 movs r2, #0x84 lsls r2, r2, #1 bl sub_0804F680 movs r1, #0x82 lsls r1, r1, #2 movs r2, #0xc4 lsls r2, r2, #1 adds r0, r4, #0 bl sub_0804F680 pop {r4, pc} thumb_func_start sub_0804F6E8 sub_0804F6E8: @ 0x0804F6E8 push {r4, r5, lr} adds r4, r0, #0 movs r5, #0xfc lsls r5, r5, #1 movs r2, #0x84 lsls r2, r2, #1 adds r1, r5, #0 bl sub_0804F680 movs r1, #0x96 lsls r1, r1, #2 movs r2, #0x9c lsls r2, r2, #1 adds r0, r4, #0 bl sub_0804F680 movs r2, #0xc4 lsls r2, r2, #1 adds r0, r4, #0 adds r1, r5, #0 bl sub_0804F680 movs r1, #0xcc lsls r1, r1, #1 movs r2, #0xac lsls r2, r2, #1 adds r0, r4, #0 bl sub_0804F680 pop {r4, r5, pc} thumb_func_start sub_0804F724 sub_0804F724: @ 0x0804F724 push {r4, r5, lr} adds r4, r0, #0 movs r1, #0x82 lsls r1, r1, #2 movs r2, #0x84 lsls r2, r2, #1 bl sub_0804F680 movs r1, #0x96 lsls r1, r1, #2 movs r5, #0xa4 lsls r5, r5, #1 adds r0, r4, #0 adds r2, r5, #0 bl sub_0804F680 movs r1, #0xf4 lsls r1, r1, #1 movs r2, #0xc4 lsls r2, r2, #1 adds r0, r4, #0 bl sub_0804F680 movs r1, #0xcc lsls r1, r1, #1 adds r0, r4, #0 adds r2, r5, #0 bl sub_0804F680 pop {r4, r5, pc} thumb_func_start sub_0804F760 sub_0804F760: @ 0x0804F760 push {r4, lr} adds r4, r0, #0 movs r1, #0x86 lsls r1, r1, #2 movs r2, #0x84 lsls r2, r2, #1 bl sub_0804F680 movs r1, #0x96 lsls r1, r1, #2 movs r2, #0xac lsls r2, r2, #1 adds r0, r4, #0 bl sub_0804F680 movs r1, #0xec lsls r1, r1, #1 movs r2, #0xc4 lsls r2, r2, #1 adds r0, r4, #0 bl sub_0804F680 movs r1, #0xcc lsls r1, r1, #1 movs r2, #0x9c lsls r2, r2, #1 adds r0, r4, #0 bl sub_0804F680 pop {r4, pc} thumb_func_start sub_0804F79C sub_0804F79C: @ 0x0804F79C push {r4, lr} adds r4, r0, #0 movs r1, #0x35 movs r2, #0 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _0804F7D0 ldrb r1, [r2, #0x19] movs r0, #0x3f ands r0, r1 strb r0, [r2, #0x19] ldr r1, _0804F804 @ =gUnk_03000BF0 movs r3, #0xdc lsls r3, r3, #1 adds r0, r3, #0 ldrh r3, [r1, #6] adds r0, r0, r3 strh r0, [r2, #0x2e] movs r3, #0xa4 lsls r3, r3, #1 adds r0, r3, #0 ldrh r1, [r1, #8] adds r0, r0, r1 strh r0, [r2, #0x32] _0804F7D0: adds r0, r4, #0 movs r1, #0x35 movs r2, #0 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _0804F802 ldrb r1, [r2, #0x19] movs r0, #0x3f ands r0, r1 strb r0, [r2, #0x19] ldr r1, _0804F804 @ =gUnk_03000BF0 movs r3, #0x8e lsls r3, r3, #2 adds r0, r3, #0 ldrh r3, [r1, #6] adds r0, r0, r3 strh r0, [r2, #0x2e] movs r3, #0xa4 lsls r3, r3, #1 adds r0, r3, #0 ldrh r1, [r1, #8] adds r0, r0, r1 strh r0, [r2, #0x32] _0804F802: pop {r4, pc} .align 2, 0 _0804F804: .4byte gUnk_03000BF0 thumb_func_start sub_0804F808 sub_0804F808: @ 0x0804F808 push {r4, lr} ldr r4, _0804F824 @ =0x000001D3 ldr r1, _0804F828 @ =0x0000041D adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _0804F82C @ =0x00000621 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 pop {r4, pc} .align 2, 0 _0804F824: .4byte 0x000001D3 _0804F828: .4byte 0x0000041D _0804F82C: .4byte 0x00000621 thumb_func_start sub_0804F830 sub_0804F830: @ 0x0804F830 push {r4, lr} movs r4, #0xea lsls r4, r4, #1 ldr r1, _0804F850 @ =0x0000041E adds r0, r4, #0 movs r2, #1 bl sub_0807B314 movs r1, #0xc4 lsls r1, r1, #3 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 pop {r4, pc} .align 2, 0 _0804F850: .4byte 0x0000041E thumb_func_start sub_0804F854 sub_0804F854: @ 0x0804F854 push {r4, r5, lr} ldr r5, _0804F888 @ =0x000001D5 ldr r1, _0804F88C @ =0x0000041F adds r0, r5, #0 movs r2, #1 bl sub_0807B314 movs r4, #0xea lsls r4, r4, #1 ldr r1, _0804F890 @ =0x000004E5 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _0804F894 @ =0x0000061F adds r0, r5, #0 movs r2, #1 bl sub_0807B314 ldr r1, _0804F898 @ =0x00000559 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 pop {r4, r5, pc} .align 2, 0 _0804F888: .4byte 0x000001D5 _0804F88C: .4byte 0x0000041F _0804F890: .4byte 0x000004E5 _0804F894: .4byte 0x0000061F _0804F898: .4byte 0x00000559 thumb_func_start sub_0804F89C sub_0804F89C: @ 0x0804F89C push {r4, r5, lr} movs r5, #0xeb lsls r5, r5, #1 movs r1, #0x84 lsls r1, r1, #3 adds r0, r5, #0 movs r2, #1 bl sub_0807B314 ldr r4, _0804F8D0 @ =0x000001D5 ldr r1, _0804F8D4 @ =0x00000525 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _0804F8D8 @ =0x0000061E adds r0, r5, #0 movs r2, #1 bl sub_0807B314 ldr r1, _0804F8DC @ =0x00000519 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 pop {r4, r5, pc} .align 2, 0 _0804F8D0: .4byte 0x000001D5 _0804F8D4: .4byte 0x00000525 _0804F8D8: .4byte 0x0000061E _0804F8DC: .4byte 0x00000519 thumb_func_start sub_0804F8E0 sub_0804F8E0: @ 0x0804F8E0 push {r4, r5, lr} ldr r5, _0804F914 @ =0x000001D3 ldr r1, _0804F918 @ =0x00000421 adds r0, r5, #0 movs r2, #1 bl sub_0807B314 movs r4, #0xeb lsls r4, r4, #1 ldr r1, _0804F91C @ =0x00000565 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _0804F920 @ =0x0000061D adds r0, r5, #0 movs r2, #1 bl sub_0807B314 ldr r1, _0804F924 @ =0x000004D9 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 pop {r4, r5, pc} .align 2, 0 _0804F914: .4byte 0x000001D3 _0804F918: .4byte 0x00000421 _0804F91C: .4byte 0x00000565 _0804F920: .4byte 0x0000061D _0804F924: .4byte 0x000004D9 thumb_func_start sub_0804F928 sub_0804F928: @ 0x0804F928 push {lr} ldr r0, _0804F93C @ =0x0000041D movs r1, #1 bl sub_0807BA8C ldr r0, _0804F940 @ =0x00000621 movs r1, #1 bl sub_0807BA8C pop {pc} .align 2, 0 _0804F93C: .4byte 0x0000041D _0804F940: .4byte 0x00000621 thumb_func_start sub_0804F944 sub_0804F944: @ 0x0804F944 push {lr} ldr r0, _0804F95C @ =0x0000041E movs r1, #1 bl sub_0807BA8C movs r0, #0xc4 lsls r0, r0, #3 movs r1, #1 bl sub_0807BA8C pop {pc} .align 2, 0 _0804F95C: .4byte 0x0000041E thumb_func_start sub_0804F960 sub_0804F960: @ 0x0804F960 push {lr} ldr r0, _0804F984 @ =0x0000041F movs r1, #1 bl sub_0807BA8C ldr r0, _0804F988 @ =0x000004E5 movs r1, #1 bl sub_0807BA8C ldr r0, _0804F98C @ =0x0000061F movs r1, #1 bl sub_0807BA8C ldr r0, _0804F990 @ =0x00000559 movs r1, #1 bl sub_0807BA8C pop {pc} .align 2, 0 _0804F984: .4byte 0x0000041F _0804F988: .4byte 0x000004E5 _0804F98C: .4byte 0x0000061F _0804F990: .4byte 0x00000559 thumb_func_start sub_0804F994 sub_0804F994: @ 0x0804F994 push {lr} movs r0, #0x84 lsls r0, r0, #3 movs r1, #1 bl sub_0807BA8C ldr r0, _0804F9BC @ =0x00000525 movs r1, #1 bl sub_0807BA8C ldr r0, _0804F9C0 @ =0x0000061E movs r1, #1 bl sub_0807BA8C ldr r0, _0804F9C4 @ =0x00000519 movs r1, #1 bl sub_0807BA8C pop {pc} .align 2, 0 _0804F9BC: .4byte 0x00000525 _0804F9C0: .4byte 0x0000061E _0804F9C4: .4byte 0x00000519 thumb_func_start sub_0804F9C8 sub_0804F9C8: @ 0x0804F9C8 push {lr} ldr r0, _0804F9EC @ =0x00000421 movs r1, #1 bl sub_0807BA8C ldr r0, _0804F9F0 @ =0x00000565 movs r1, #1 bl sub_0807BA8C ldr r0, _0804F9F4 @ =0x0000061D movs r1, #1 bl sub_0807BA8C ldr r0, _0804F9F8 @ =0x000004D9 movs r1, #1 bl sub_0807BA8C pop {pc} .align 2, 0 _0804F9EC: .4byte 0x00000421 _0804F9F0: .4byte 0x00000565 _0804F9F4: .4byte 0x0000061D _0804F9F8: .4byte 0x000004D9 thumb_func_start sub_0804F9FC sub_0804F9FC: @ 0x0804F9FC movs r0, #1 bx lr thumb_func_start sub_0804FA00 sub_0804FA00: @ 0x0804FA00 push {lr} movs r0, #0 bl sub_0805ADD8 ldr r0, _0804FA24 @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #3 bls _0804FA20 movs r0, #0x5c bl sub_0807CC30 cmp r0, #0 beq _0804FA20 ldr r0, _0804FA28 @ =gUnk_080F806C bl sub_0804ADDC _0804FA20: pop {pc} .align 2, 0 _0804FA24: .4byte gUnk_02002A40 _0804FA28: .4byte gUnk_080F806C thumb_func_start sub_0804FA2C sub_0804FA2C: @ 0x0804FA2C movs r0, #1 bx lr thumb_func_start sub_0804FA30 sub_0804FA30: @ 0x0804FA30 push {lr} movs r0, #0 bl sub_0805ADD8 movs r0, #3 bl sub_0807CC30 cmp r0, #0 beq _0804FA5C movs r0, #3 bl sub_0807CA84 cmp r0, #0 beq _0804FA5C movs r0, #0x9c bl sub_0807CBD0 cmp r0, #0 bne _0804FA5C ldr r0, _0804FA60 @ =gUnk_080F82E0 bl sub_0804ADDC _0804FA5C: pop {pc} .align 2, 0 _0804FA60: .4byte gUnk_080F82E0 thumb_func_start sub_0804FA64 sub_0804FA64: @ 0x0804FA64 movs r0, #1 bx lr thumb_func_start sub_0804FA68 sub_0804FA68: @ 0x0804FA68 push {lr} movs r0, #0 bl sub_0805ADD8 movs r0, #0x21 bl sub_0801E7F4 cmp r0, #0 beq _0804FA8E movs r0, #0x80 lsls r0, r0, #2 movs r1, #0x42 bl sub_0807CB10 cmp r0, #0 bne _0804FA8E ldr r0, _0804FA90 @ =gUnk_080F8430 bl sub_0804ADDC _0804FA8E: pop {pc} .align 2, 0 _0804FA90: .4byte gUnk_080F8430 thumb_func_start sub_0804FA94 sub_0804FA94: @ 0x0804FA94 movs r0, #1 bx lr thumb_func_start sub_0804FA98 sub_0804FA98: @ 0x0804FA98 push {lr} movs r0, #0x57 bl sub_0807CC30 cmp r0, #0 beq _0804FAB0 ldr r0, _0804FAAC @ =gUnk_080F85D8 bl sub_0804ADDC b _0804FAB6 .align 2, 0 _0804FAAC: .4byte gUnk_080F85D8 _0804FAB0: ldr r0, _0804FAC8 @ =gUnk_080F85F8 bl sub_0804ADDC _0804FAB6: movs r0, #0xc bl sub_0807CA84 cmp r0, #0 bne _0804FAC6 movs r0, #8 bl sub_0807CD34 _0804FAC6: pop {pc} .align 2, 0 _0804FAC8: .4byte gUnk_080F85F8 thumb_func_start sub_0804FACC sub_0804FACC: @ 0x0804FACC movs r0, #1 bx lr thumb_func_start nullsub_412 nullsub_412: @ 0x0804FAD0 bx lr .align 2, 0 thumb_func_start sub_0804FAD4 sub_0804FAD4: @ 0x0804FAD4 movs r0, #1 bx lr thumb_func_start nullsub_413 nullsub_413: @ 0x0804FAD8 bx lr .align 2, 0 thumb_func_start sub_0804FADC sub_0804FADC: @ 0x0804FADC movs r0, #1 bx lr thumb_func_start nullsub_414 nullsub_414: @ 0x0804FAE0 bx lr .align 2, 0 thumb_func_start sub_0804FAE4 sub_0804FAE4: @ 0x0804FAE4 movs r0, #1 bx lr thumb_func_start nullsub_415 nullsub_415: @ 0x0804FAE8 bx lr .align 2, 0 thumb_func_start sub_0804FAEC sub_0804FAEC: @ 0x0804FAEC movs r0, #1 bx lr thumb_func_start nullsub_416 nullsub_416: @ 0x0804FAF0 bx lr .align 2, 0 thumb_func_start sub_0804FAF4 sub_0804FAF4: @ 0x0804FAF4 movs r0, #1 bx lr thumb_func_start nullsub_417 nullsub_417: @ 0x0804FAF8 bx lr .align 2, 0 thumb_func_start sub_0804FAFC sub_0804FAFC: @ 0x0804FAFC movs r0, #1 bx lr thumb_func_start nullsub_418 nullsub_418: @ 0x0804FB00 bx lr .align 2, 0 thumb_func_start sub_0804FB04 sub_0804FB04: @ 0x0804FB04 movs r0, #1 bx lr thumb_func_start nullsub_419 nullsub_419: @ 0x0804FB08 bx lr .align 2, 0 thumb_func_start sub_0804FB0C sub_0804FB0C: @ 0x0804FB0C movs r0, #1 bx lr thumb_func_start nullsub_420 nullsub_420: @ 0x0804FB10 bx lr .align 2, 0 thumb_func_start sub_0804FB14 sub_0804FB14: @ 0x0804FB14 movs r0, #1 bx lr thumb_func_start nullsub_421 nullsub_421: @ 0x0804FB18 bx lr .align 2, 0 thumb_func_start sub_0804FB1C sub_0804FB1C: @ 0x0804FB1C movs r0, #1 bx lr thumb_func_start nullsub_422 nullsub_422: @ 0x0804FB20 bx lr .align 2, 0 thumb_func_start sub_0804FB24 sub_0804FB24: @ 0x0804FB24 movs r0, #1 bx lr thumb_func_start nullsub_423 nullsub_423: @ 0x0804FB28 bx lr .align 2, 0 thumb_func_start sub_0804FB2C sub_0804FB2C: @ 0x0804FB2C movs r0, #1 bx lr thumb_func_start sub_0804FB30 sub_0804FB30: @ 0x0804FB30 push {lr} movs r0, #0x11 bl sub_0807CBD0 cmp r0, #0 beq _0804FB64 movs r0, #0 bl sub_0807CD10 movs r0, #1 bl sub_0807CD10 movs r0, #0x80 lsls r0, r0, #1 bl sub_0805308C movs r0, #0x12 bl sub_0807CBD0 cmp r0, #0 bne _0804FB64 movs r0, #0x73 movs r1, #0xcb movs r2, #1 bl sub_0807B314 _0804FB64: pop {pc} .align 2, 0 thumb_func_start sub_0804FB68 sub_0804FB68: @ 0x0804FB68 movs r0, #1 bx lr thumb_func_start nullsub_089 nullsub_089: @ 0x0804FB6C bx lr .align 2, 0 thumb_func_start sub_0804FB70 sub_0804FB70: @ 0x0804FB70 movs r0, #1 bx lr thumb_func_start nullsub_90 nullsub_90: @ 0x0804FB74 bx lr .align 2, 0 thumb_func_start sub_0804FB78 sub_0804FB78: @ 0x0804FB78 movs r0, #1 bx lr thumb_func_start nullsub_91 nullsub_91: @ 0x0804FB7C bx lr .align 2, 0 thumb_func_start sub_0804FB80 sub_0804FB80: @ 0x0804FB80 movs r0, #1 bx lr thumb_func_start nullsub_92 nullsub_92: @ 0x0804FB84 bx lr .align 2, 0 thumb_func_start sub_0804FB88 sub_0804FB88: @ 0x0804FB88 movs r0, #1 bx lr thumb_func_start nullsub_93 nullsub_93: @ 0x0804FB8C bx lr .align 2, 0 thumb_func_start sub_0804FB90 sub_0804FB90: @ 0x0804FB90 movs r0, #1 bx lr thumb_func_start nullsub_94 nullsub_94: @ 0x0804FB94 bx lr .align 2, 0 thumb_func_start sub_0804FB98 sub_0804FB98: @ 0x0804FB98 movs r0, #1 bx lr thumb_func_start nullsub_95 nullsub_95: @ 0x0804FB9C bx lr .align 2, 0 thumb_func_start sub_0804FBA0 sub_0804FBA0: @ 0x0804FBA0 movs r0, #1 bx lr thumb_func_start nullsub_96 nullsub_96: @ 0x0804FBA4 bx lr .align 2, 0 thumb_func_start sub_0804FBA8 sub_0804FBA8: @ 0x0804FBA8 movs r0, #1 bx lr thumb_func_start nullsub_97 nullsub_97: @ 0x0804FBAC bx lr .align 2, 0 thumb_func_start sub_0804FBB0 sub_0804FBB0: @ 0x0804FBB0 movs r0, #1 bx lr thumb_func_start nullsub_98 nullsub_98: @ 0x0804FBB4 bx lr .align 2, 0 thumb_func_start sub_0804FBB8 sub_0804FBB8: @ 0x0804FBB8 movs r0, #1 bx lr thumb_func_start sub_0804FBBC sub_0804FBBC: @ 0x0804FBBC push {lr} ldr r0, _0804FBD4 @ =gUnk_02002A40 ldr r0, [r0, #0x40] movs r1, #0x80 lsls r1, r1, #0x12 ands r0, r1 cmp r0, #0 bne _0804FBD2 ldr r0, _0804FBD8 @ =gUnk_080F9304 bl sub_0804ADDC _0804FBD2: pop {pc} .align 2, 0 _0804FBD4: .4byte gUnk_02002A40 _0804FBD8: .4byte gUnk_080F9304 thumb_func_start sub_0804FBDC sub_0804FBDC: @ 0x0804FBDC push {lr} ldr r0, _0804FBF4 @ =gUnk_02002A40 ldr r0, [r0, #0x40] movs r1, #0x80 lsls r1, r1, #0x12 ands r0, r1 cmp r0, #0 bne _0804FBF2 ldr r0, _0804FBF8 @ =gUnk_080F9304 bl sub_0804ADDC _0804FBF2: pop {pc} .align 2, 0 _0804FBF4: .4byte gUnk_02002A40 _0804FBF8: .4byte gUnk_080F9304 thumb_func_start sub_0804FBFC sub_0804FBFC: @ 0x0804FBFC movs r0, #1 bx lr thumb_func_start nullsub_424 nullsub_424: @ 0x0804FC00 bx lr .align 2, 0 thumb_func_start sub_0804FC04 sub_0804FC04: @ 0x0804FC04 movs r0, #1 bx lr thumb_func_start nullsub_425 nullsub_425: @ 0x0804FC08 bx lr .align 2, 0 thumb_func_start sub_0804FC0C sub_0804FC0C: @ 0x0804FC0C movs r0, #1 bx lr thumb_func_start nullsub_426 nullsub_426: @ 0x0804FC10 bx lr .align 2, 0 thumb_func_start sub_0804FC14 sub_0804FC14: @ 0x0804FC14 movs r0, #1 bx lr thumb_func_start nullsub_427 nullsub_427: @ 0x0804FC18 bx lr .align 2, 0 thumb_func_start sub_0804FC1C sub_0804FC1C: @ 0x0804FC1C movs r0, #1 bx lr thumb_func_start nullsub_428 nullsub_428: @ 0x0804FC20 bx lr .align 2, 0 thumb_func_start sub_0804FC24 sub_0804FC24: @ 0x0804FC24 movs r0, #1 bx lr thumb_func_start nullsub_429 nullsub_429: @ 0x0804FC28 bx lr .align 2, 0 thumb_func_start sub_0804FC2C sub_0804FC2C: @ 0x0804FC2C movs r0, #1 bx lr thumb_func_start nullsub_430 nullsub_430: @ 0x0804FC30 bx lr .align 2, 0 thumb_func_start sub_0804FC34 sub_0804FC34: @ 0x0804FC34 movs r0, #1 bx lr thumb_func_start nullsub_431 nullsub_431: @ 0x0804FC38 bx lr .align 2, 0 thumb_func_start sub_0804FC3C sub_0804FC3C: @ 0x0804FC3C movs r0, #1 bx lr thumb_func_start nullsub_432 nullsub_432: @ 0x0804FC40 bx lr .align 2, 0 thumb_func_start sub_0804FC44 sub_0804FC44: @ 0x0804FC44 movs r0, #1 bx lr thumb_func_start nullsub_433 nullsub_433: @ 0x0804FC48 bx lr .align 2, 0 thumb_func_start sub_0804FC4C sub_0804FC4C: @ 0x0804FC4C push {lr} movs r0, #0xe bl sub_0801E7F4 cmp r0, #0 bne _0804FC5E ldr r1, _0804FC64 @ =gUnk_02034350 ldr r0, _0804FC68 @ =gUnk_080F9BF8 str r0, [r1, #0x6c] _0804FC5E: movs r0, #1 pop {pc} .align 2, 0 _0804FC64: .4byte gUnk_02034350 _0804FC68: .4byte gUnk_080F9BF8 thumb_func_start sub_0804FC6C sub_0804FC6C: @ 0x0804FC6C push {lr} movs r0, #2 bl sub_0805B4D0 movs r0, #0 bl sub_0806D0B0 pop {pc} thumb_func_start sub_0804FC7C sub_0804FC7C: @ 0x0804FC7C movs r0, #1 bx lr thumb_func_start nullsub_99 nullsub_99: @ 0x0804FC80 bx lr .align 2, 0 thumb_func_start sub_0804FC84 sub_0804FC84: @ 0x0804FC84 movs r0, #1 bx lr thumb_func_start nullsub_100 nullsub_100: @ 0x0804FC88 bx lr .align 2, 0 thumb_func_start sub_0804FC8C sub_0804FC8C: @ 0x0804FC8C movs r0, #1 bx lr thumb_func_start nullsub_101 nullsub_101: @ 0x0804FC90 bx lr .align 2, 0 thumb_func_start sub_0804FC94 sub_0804FC94: @ 0x0804FC94 movs r0, #1 bx lr thumb_func_start nullsub_102 nullsub_102: @ 0x0804FC98 bx lr .align 2, 0 thumb_func_start sub_0804FC9C sub_0804FC9C: @ 0x0804FC9C movs r0, #1 bx lr thumb_func_start nullsub_103 nullsub_103: @ 0x0804FCA0 bx lr .align 2, 0 thumb_func_start sub_0804FCA4 sub_0804FCA4: @ 0x0804FCA4 movs r0, #1 bx lr thumb_func_start sub_0804FCA8 sub_0804FCA8: @ 0x0804FCA8 push {lr} movs r0, #0x14 bl sub_0801E7F4 cmp r0, #0 beq _0804FCBA ldr r0, _0804FCCC @ =gUnk_080F9FA8 bl sub_0804ADDC _0804FCBA: movs r0, #0x38 bl sub_0807CA84 cmp r0, #0 bne _0804FCCA ldr r0, _0804FCD0 @ =gUnk_080F9F88 bl sub_0804ADDC _0804FCCA: pop {pc} .align 2, 0 _0804FCCC: .4byte gUnk_080F9FA8 _0804FCD0: .4byte gUnk_080F9F88 thumb_func_start sub_0804FCD4 sub_0804FCD4: @ 0x0804FCD4 movs r0, #1 bx lr thumb_func_start nullsub_434 nullsub_434: @ 0x0804FCD8 bx lr .align 2, 0 thumb_func_start sub_0804FCDC sub_0804FCDC: @ 0x0804FCDC movs r0, #1 bx lr thumb_func_start nullsub_435 nullsub_435: @ 0x0804FCE0 bx lr .align 2, 0 thumb_func_start sub_0804FCE4 sub_0804FCE4: @ 0x0804FCE4 movs r0, #1 bx lr thumb_func_start nullsub_436 nullsub_436: @ 0x0804FCE8 bx lr .align 2, 0 thumb_func_start sub_0804FCEC sub_0804FCEC: @ 0x0804FCEC movs r0, #1 bx lr thumb_func_start nullsub_437 nullsub_437: @ 0x0804FCF0 bx lr .align 2, 0 thumb_func_start sub_0804FCF4 sub_0804FCF4: @ 0x0804FCF4 movs r0, #1 bx lr thumb_func_start nullsub_438 nullsub_438: @ 0x0804FCF8 bx lr .align 2, 0 thumb_func_start sub_0804FCFC sub_0804FCFC: @ 0x0804FCFC movs r0, #1 bx lr thumb_func_start nullsub_439 nullsub_439: @ 0x0804FD00 bx lr .align 2, 0 thumb_func_start sub_0804FD04 sub_0804FD04: @ 0x0804FD04 movs r0, #1 bx lr thumb_func_start nullsub_440 nullsub_440: @ 0x0804FD08 bx lr .align 2, 0 thumb_func_start sub_0804FD0C sub_0804FD0C: @ 0x0804FD0C movs r0, #1 bx lr thumb_func_start nullsub_441 nullsub_441: @ 0x0804FD10 bx lr .align 2, 0 thumb_func_start sub_0804FD14 sub_0804FD14: @ 0x0804FD14 movs r0, #1 bx lr thumb_func_start nullsub_442 nullsub_442: @ 0x0804FD18 bx lr .align 2, 0 thumb_func_start sub_0804FD1C sub_0804FD1C: @ 0x0804FD1C movs r0, #1 bx lr thumb_func_start nullsub_443 nullsub_443: @ 0x0804FD20 bx lr .align 2, 0 thumb_func_start sub_0804FD24 sub_0804FD24: @ 0x0804FD24 movs r0, #1 bx lr thumb_func_start nullsub_444 nullsub_444: @ 0x0804FD28 bx lr .align 2, 0 thumb_func_start sub_0804FD2C sub_0804FD2C: @ 0x0804FD2C movs r0, #1 bx lr thumb_func_start nullsub_445 nullsub_445: @ 0x0804FD30 bx lr .align 2, 0 thumb_func_start sub_0804FD34 sub_0804FD34: @ 0x0804FD34 movs r0, #1 bx lr thumb_func_start nullsub_446 nullsub_446: @ 0x0804FD38 bx lr .align 2, 0 thumb_func_start sub_0804FD3C sub_0804FD3C: @ 0x0804FD3C movs r0, #1 bx lr thumb_func_start nullsub_447 nullsub_447: @ 0x0804FD40 bx lr .align 2, 0 thumb_func_start sub_0804FD44 sub_0804FD44: @ 0x0804FD44 movs r0, #1 bx lr thumb_func_start nullsub_448 nullsub_448: @ 0x0804FD48 bx lr .align 2, 0 thumb_func_start sub_0804FD4C sub_0804FD4C: @ 0x0804FD4C movs r0, #1 bx lr thumb_func_start nullsub_449 nullsub_449: @ 0x0804FD50 bx lr .align 2, 0 thumb_func_start sub_0804FD54 sub_0804FD54: @ 0x0804FD54 movs r0, #1 bx lr thumb_func_start sub_0804FD58 sub_0804FD58: @ 0x0804FD58 push {lr} movs r0, #0x21 bl sub_0801E7F4 cmp r0, #0 bne _0804FD6A ldr r0, _0804FD6C @ =gUnk_080FA5D0 bl sub_0804ADDC _0804FD6A: pop {pc} .align 2, 0 _0804FD6C: .4byte gUnk_080FA5D0 thumb_func_start sub_0804FD70 sub_0804FD70: @ 0x0804FD70 movs r0, #1 bx lr thumb_func_start nullsub_450 nullsub_450: @ 0x0804FD74 bx lr .align 2, 0 thumb_func_start sub_0804FD78 sub_0804FD78: @ 0x0804FD78 movs r0, #1 bx lr thumb_func_start nullsub_451 nullsub_451: @ 0x0804FD7C bx lr .align 2, 0 thumb_func_start sub_0804FD80 sub_0804FD80: @ 0x0804FD80 movs r0, #1 bx lr thumb_func_start nullsub_452 nullsub_452: @ 0x0804FD84 bx lr .align 2, 0 thumb_func_start sub_0804FD88 sub_0804FD88: @ 0x0804FD88 movs r0, #1 bx lr thumb_func_start nullsub_453 nullsub_453: @ 0x0804FD8C bx lr .align 2, 0 thumb_func_start sub_0804FD90 sub_0804FD90: @ 0x0804FD90 movs r0, #1 bx lr thumb_func_start nullsub_454 nullsub_454: @ 0x0804FD94 bx lr .align 2, 0 thumb_func_start sub_0804FD98 sub_0804FD98: @ 0x0804FD98 movs r0, #1 bx lr thumb_func_start nullsub_455 nullsub_455: @ 0x0804FD9C bx lr .align 2, 0 thumb_func_start sub_0804FDA0 sub_0804FDA0: @ 0x0804FDA0 movs r0, #1 bx lr thumb_func_start nullsub_456 nullsub_456: @ 0x0804FDA4 bx lr .align 2, 0 thumb_func_start sub_0804FDA8 sub_0804FDA8: @ 0x0804FDA8 movs r0, #1 bx lr thumb_func_start nullsub_457 nullsub_457: @ 0x0804FDAC bx lr .align 2, 0 thumb_func_start sub_0804FDB0 sub_0804FDB0: @ 0x0804FDB0 movs r0, #1 bx lr thumb_func_start nullsub_458 nullsub_458: @ 0x0804FDB4 bx lr .align 2, 0 thumb_func_start sub_0804FDB8 sub_0804FDB8: @ 0x0804FDB8 movs r0, #1 bx lr thumb_func_start nullsub_459 nullsub_459: @ 0x0804FDBC bx lr .align 2, 0 thumb_func_start sub_0804FDC0 sub_0804FDC0: @ 0x0804FDC0 movs r0, #1 bx lr thumb_func_start nullsub_460 nullsub_460: @ 0x0804FDC4 bx lr .align 2, 0 thumb_func_start sub_0804FDC8 sub_0804FDC8: @ 0x0804FDC8 movs r0, #1 bx lr thumb_func_start nullsub_461 nullsub_461: @ 0x0804FDCC bx lr .align 2, 0 thumb_func_start sub_0804FDD0 sub_0804FDD0: @ 0x0804FDD0 movs r0, #1 bx lr thumb_func_start nullsub_462 nullsub_462: @ 0x0804FDD4 bx lr .align 2, 0 thumb_func_start sub_0804FDD8 sub_0804FDD8: @ 0x0804FDD8 movs r0, #1 bx lr thumb_func_start nullsub_463 nullsub_463: @ 0x0804FDDC bx lr .align 2, 0 thumb_func_start sub_0804FDE0 sub_0804FDE0: @ 0x0804FDE0 push {lr} movs r0, #0x51 bl sub_0807CC30 cmp r0, #0 beq _0804FDF6 ldr r0, _0804FDFC @ =gUnk_02034350 ldr r1, _0804FE00 @ =gUnk_080FAD48 str r1, [r0, #0x6c] movs r1, #0 str r1, [r0, #0x74] _0804FDF6: movs r0, #1 pop {pc} .align 2, 0 _0804FDFC: .4byte gUnk_02034350 _0804FE00: .4byte gUnk_080FAD48 thumb_func_start sub_0804FE04 sub_0804FE04: @ 0x0804FE04 push {lr} movs r0, #0x51 bl sub_0807CC30 cmp r0, #0 beq _0804FE28 ldr r0, _0804FE20 @ =gUnk_02033A90 ldr r2, _0804FE24 @ =0x00000864 adds r1, r0, r2 subs r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] b _0804FE2E .align 2, 0 _0804FE20: .4byte gUnk_02033A90 _0804FE24: .4byte 0x00000864 _0804FE28: ldr r0, _0804FE3C @ =gUnk_080FACB8 bl sub_0804ADDC _0804FE2E: movs r0, #0 bl sub_0805B4D0 bl sub_08059994 pop {pc} .align 2, 0 _0804FE3C: .4byte gUnk_080FACB8 thumb_func_start sub_0804FE40 sub_0804FE40: @ 0x0804FE40 push {lr} movs r0, #0 bl sub_0805B4D0 pop {pc} .align 2, 0 thumb_func_start sub_0804FE4C sub_0804FE4C: @ 0x0804FE4C movs r0, #1 bx lr thumb_func_start nullsub_104 nullsub_104: @ 0x0804FE50 bx lr .align 2, 0 thumb_func_start sub_0804FE54 sub_0804FE54: @ 0x0804FE54 movs r0, #1 bx lr thumb_func_start sub_0804FE58 sub_0804FE58: @ 0x0804FE58 push {lr} movs r0, #1 bl sub_0805B4D0 movs r0, #3 bl sub_0807CC30 cmp r0, #0 beq _0804FE7A movs r0, #2 bl sub_0807CBD0 cmp r0, #0 bne _0804FE7A ldr r0, _0804FEA0 @ =gUnk_080FAFE4 bl sub_0804ADDC _0804FE7A: ldr r0, _0804FEA4 @ =gUnk_02002A40 ldr r0, [r0, #0x40] movs r1, #0x80 lsls r1, r1, #0x11 ands r0, r1 cmp r0, #0 bne _0804FE8E ldr r0, _0804FEA8 @ =gUnk_080FB004 bl sub_0804ADDC _0804FE8E: movs r0, #2 bl sub_0807CA84 cmp r0, #0 beq _0804FE9E movs r0, #0x56 bl sub_0807CD04 _0804FE9E: pop {pc} .align 2, 0 _0804FEA0: .4byte gUnk_080FAFE4 _0804FEA4: .4byte gUnk_02002A40 _0804FEA8: .4byte gUnk_080FB004 thumb_func_start sub_0804FEAC sub_0804FEAC: @ 0x0804FEAC push {lr} ldr r0, _0804FEC4 @ =gUnk_02002A40 ldr r0, [r0, #0x40] movs r1, #0x80 lsls r1, r1, #0x11 ands r0, r1 cmp r0, #0 bne _0804FEC2 ldr r0, _0804FEC8 @ =gUnk_080FB004 bl sub_0804ADDC _0804FEC2: pop {pc} .align 2, 0 _0804FEC4: .4byte gUnk_02002A40 _0804FEC8: .4byte gUnk_080FB004 thumb_func_start sub_0804FECC sub_0804FECC: @ 0x0804FECC movs r0, #1 bx lr thumb_func_start nullsub_464 nullsub_464: @ 0x0804FED0 bx lr .align 2, 0 thumb_func_start sub_0804FED4 sub_0804FED4: @ 0x0804FED4 movs r0, #1 bx lr thumb_func_start sub_0804FED8 sub_0804FED8: @ 0x0804FED8 push {lr} movs r0, #0xbb lsls r0, r0, #1 ldr r1, _0804FEE8 @ =0x0000066F movs r2, #1 bl sub_0807B314 pop {pc} .align 2, 0 _0804FEE8: .4byte 0x0000066F thumb_func_start sub_0804FEEC sub_0804FEEC: @ 0x0804FEEC movs r0, #1 bx lr thumb_func_start nullsub_465 nullsub_465: @ 0x0804FEF0 bx lr .align 2, 0 thumb_func_start sub_0804FEF4 sub_0804FEF4: @ 0x0804FEF4 movs r0, #1 bx lr thumb_func_start nullsub_466 nullsub_466: @ 0x0804FEF8 bx lr .align 2, 0 thumb_func_start sub_0804FEFC sub_0804FEFC: @ 0x0804FEFC movs r0, #1 bx lr thumb_func_start nullsub_467 nullsub_467: @ 0x0804FF00 bx lr .align 2, 0 thumb_func_start sub_0804FF04 sub_0804FF04: @ 0x0804FF04 movs r0, #1 bx lr thumb_func_start nullsub_468 nullsub_468: @ 0x0804FF08 bx lr .align 2, 0 thumb_func_start sub_0804FF0C sub_0804FF0C: @ 0x0804FF0C movs r0, #1 bx lr thumb_func_start nullsub_469 nullsub_469: @ 0x0804FF10 bx lr .align 2, 0 thumb_func_start sub_0804FF14 sub_0804FF14: @ 0x0804FF14 movs r0, #1 bx lr thumb_func_start nullsub_470 nullsub_470: @ 0x0804FF18 bx lr .align 2, 0 thumb_func_start sub_0804FF1C sub_0804FF1C: @ 0x0804FF1C movs r0, #1 bx lr thumb_func_start nullsub_471 nullsub_471: @ 0x0804FF20 bx lr .align 2, 0 thumb_func_start sub_0804FF24 sub_0804FF24: @ 0x0804FF24 movs r0, #1 bx lr thumb_func_start nullsub_472 nullsub_472: @ 0x0804FF28 bx lr .align 2, 0 thumb_func_start sub_0804FF2C sub_0804FF2C: @ 0x0804FF2C movs r0, #1 bx lr thumb_func_start nullsub_473 nullsub_473: @ 0x0804FF30 bx lr .align 2, 0 thumb_func_start sub_0804FF34 sub_0804FF34: @ 0x0804FF34 movs r0, #1 bx lr thumb_func_start nullsub_474 nullsub_474: @ 0x0804FF38 bx lr .align 2, 0 thumb_func_start sub_0804FF3C sub_0804FF3C: @ 0x0804FF3C movs r0, #1 bx lr thumb_func_start nullsub_475 nullsub_475: @ 0x0804FF40 bx lr .align 2, 0 thumb_func_start sub_0804FF44 sub_0804FF44: @ 0x0804FF44 movs r0, #1 bx lr thumb_func_start nullsub_476 nullsub_476: @ 0x0804FF48 bx lr .align 2, 0 thumb_func_start sub_0804FF4C sub_0804FF4C: @ 0x0804FF4C movs r0, #1 bx lr thumb_func_start nullsub_477 nullsub_477: @ 0x0804FF50 bx lr .align 2, 0 thumb_func_start sub_0804FF54 sub_0804FF54: @ 0x0804FF54 movs r0, #1 bx lr thumb_func_start nullsub_478 nullsub_478: @ 0x0804FF58 bx lr .align 2, 0 thumb_func_start sub_0804FF5C sub_0804FF5C: @ 0x0804FF5C movs r0, #1 bx lr thumb_func_start sub_0804FF60 sub_0804FF60: @ 0x0804FF60 push {lr} movs r0, #0x70 bl sub_0807CBD0 cmp r0, #0 bne _0804FF72 movs r0, #0x70 bl sub_0807CCB4 _0804FF72: pop {pc} thumb_func_start sub_0804FF74 sub_0804FF74: @ 0x0804FF74 movs r0, #1 bx lr thumb_func_start nullsub_105 nullsub_105: @ 0x0804FF78 bx lr .align 2, 0 thumb_func_start sub_0804FF7C sub_0804FF7C: @ 0x0804FF7C movs r0, #1 bx lr thumb_func_start nullsub_106 nullsub_106: @ 0x0804FF80 bx lr .align 2, 0 thumb_func_start sub_0804FF84 sub_0804FF84: @ 0x0804FF84 movs r1, #0x80 lsls r1, r1, #0x12 strb r0, [r1, #6] ldr r1, _0804FF94 @ =gUnk_0200B644 movs r0, #1 rsbs r0, r0, #0 str r0, [r1] bx lr .align 2, 0 _0804FF94: .4byte gUnk_0200B644 thumb_func_start sub_0804FF98 sub_0804FF98: @ 0x0804FF98 push {r4, r5, r6, r7, lr} ldr r6, _0804FFD4 @ =gUnk_020354C0 ldr r1, _0804FFD8 @ =gUnk_0200B644 ldr r4, [r1] movs r0, #0 str r0, [r1] movs r5, #0 cmp r4, #0 beq _0804FFD0 ldr r7, _0804FFDC @ =gUnk_03005E98 _0804FFAC: movs r0, #1 ands r0, r4 cmp r0, #0 beq _0804FFC6 ldr r0, _0804FFE0 @ =gUnk_020176A0 adds r0, r5, r0 movs r2, #0xa0 lsls r2, r2, #0x13 adds r1, r5, r2 ldrh r2, [r6, #2] ldrb r3, [r6, #1] bl _call_via_r7 _0804FFC6: adds r5, #0x20 adds r6, #4 lsrs r4, r4, #1 cmp r4, #0 bne _0804FFAC _0804FFD0: pop {r4, r5, r6, r7, pc} .align 2, 0 _0804FFD4: .4byte gUnk_020354C0 _0804FFD8: .4byte gUnk_0200B644 _0804FFDC: .4byte gUnk_03005E98 _0804FFE0: .4byte gUnk_020176A0 thumb_func_start sub_0804FFE4 sub_0804FFE4: @ 0x0804FFE4 push {r4, lr} ldr r4, _08050000 @ =gUnk_03000FD0 adds r0, r4, #0 movs r1, #0x1c bl sub_0801D630 ldr r0, _08050004 @ =gUnk_020354C0 movs r1, #0x80 bl sub_0801D630 movs r0, #1 rsbs r0, r0, #0 str r0, [r4, #4] pop {r4, pc} .align 2, 0 _08050000: .4byte gUnk_03000FD0 _08050004: .4byte gUnk_020354C0 thumb_func_start sub_08050008 sub_08050008: @ 0x08050008 push {lr} ldr r0, _0805001C @ =gUnk_020354C0 movs r1, #0x80 bl sub_0801D630 ldr r1, _08050020 @ =gUnk_03000FD0 movs r0, #1 rsbs r0, r0, #0 str r0, [r1, #4] pop {pc} .align 2, 0 _0805001C: .4byte gUnk_020354C0 _08050020: .4byte gUnk_03000FD0 thumb_func_start sub_08050024 sub_08050024: @ 0x08050024 push {lr} bl sub_0801E104 movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 bl sub_08050054 pop {pc} .align 2, 0 thumb_func_start sub_08050038 sub_08050038: @ 0x08050038 push {lr} adds r3, r0, #0 ldr r2, _0805004C @ =gUnk_03000FD0 ldrh r1, [r2, #8] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08050050 strh r3, [r2, #0xe] b _08050052 .align 2, 0 _0805004C: .4byte gUnk_03000FD0 _08050050: strh r3, [r2, #0xc] _08050052: pop {pc} thumb_func_start sub_08050054 sub_08050054: @ 0x08050054 push {r4, r5, lr} adds r5, r0, #0 ldr r2, _08050078 @ =gUnk_03000FD0 movs r3, #0 strh r1, [r2, #0xa] strh r5, [r2, #8] movs r0, #1 strb r0, [r2] adds r0, #0xff strh r0, [r2, #0xc] strh r3, [r2, #0xe] movs r0, #2 ands r0, r5 adds r4, r2, #0 cmp r0, #0 beq _0805007C movs r0, #0xf8 b _0805007E .align 2, 0 _08050078: .4byte gUnk_03000FD0 _0805007C: movs r0, #0 _0805007E: strb r0, [r4, #2] movs r0, #8 ands r0, r5 cmp r0, #0 beq _080500A4 ldr r1, _080500E4 @ =gUnk_03000000 movs r0, #1 strb r0, [r1, #2] ldr r2, _080500E8 @ =gUnk_03000F50 ldrh r0, [r2, #0x14] movs r1, #0x40 orrs r0, r1 strh r0, [r2, #0x14] ldrh r0, [r2, #0x20] orrs r0, r1 strh r0, [r2, #0x20] ldrh r0, [r2, #0x2c] orrs r1, r0 strh r1, [r2, #0x2c] _080500A4: movs r0, #0x10 ands r0, r5 cmp r0, #0 beq _080500E0 ldrh r0, [r4, #0x16] ldrh r1, [r4, #0x18] bl sub_0801E1B8 movs r1, #0x12 ldrsh r0, [r4, r1] movs r2, #0x14 ldrsh r1, [r4, r2] movs r3, #0x10 ldrsh r2, [r4, r3] bl sub_0801E1EC movs r0, #1 ands r0, r5 cmp r0, #0 bne _080500E0 ldrh r1, [r4, #8] ldr r0, _080500EC @ =0x0000FFFB ands r0, r1 strh r0, [r4, #8] bl sub_08050008 ldr r1, _080500F0 @ =gUnk_0200B644 movs r0, #1 rsbs r0, r0, #0 str r0, [r1] _080500E0: pop {r4, r5, pc} .align 2, 0 _080500E4: .4byte gUnk_03000000 _080500E8: .4byte gUnk_03000F50 _080500EC: .4byte 0x0000FFFB _080500F0: .4byte gUnk_0200B644 thumb_func_start sub_080500F4 sub_080500F4: @ 0x080500F4 ldr r1, _0805010C @ =gUnk_03000FD0 strh r0, [r1, #0xa] ldrh r0, [r1, #8] movs r2, #1 eors r0, r2 strh r0, [r1, #8] strb r2, [r1] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r1, #0xc] bx lr .align 2, 0 _0805010C: .4byte gUnk_03000FD0 thumb_func_start sub_08050110 sub_08050110: @ 0x08050110 push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 adds r4, r2, #0 movs r1, #1 ands r1, r4 cmp r1, #0 beq _08050130 ldr r1, _0805012C @ =gUnk_03000FD0 movs r0, #0x96 strh r0, [r1, #0x10] adds r2, r1, #0 b _08050136 .align 2, 0 _0805012C: .4byte gUnk_03000FD0 _08050130: ldr r0, _0805014C @ =gUnk_03000FD0 strh r1, [r0, #0x10] adds r2, r0, #0 _08050136: movs r1, #0 strh r5, [r2, #0x12] strh r6, [r2, #0x14] ldr r0, _08050150 @ =0x00003F3F strh r0, [r2, #0x16] strh r1, [r2, #0x18] adds r0, r4, #0 adds r1, r3, #0 bl sub_08050054 pop {r4, r5, r6, pc} .align 2, 0 _0805014C: .4byte gUnk_03000FD0 _08050150: .4byte 0x00003F3F thumb_func_start sub_08050154 sub_08050154: @ 0x08050154 push {r4, r5, r6, lr} ldr r4, _08050180 @ =gUnk_03000FD0 ldrh r0, [r4, #8] movs r5, #0x1c ands r5, r0 movs r6, #0 ldrb r0, [r4] cmp r0, #0 beq _080501BE ldrh r0, [r4, #0xc] ldrh r1, [r4, #0xa] subs r0, r0, r1 strh r0, [r4, #0xc] lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldrh r2, [r4, #0xe] movs r3, #0xe ldrsh r1, [r4, r3] cmp r0, r1 bgt _080501B8 strh r2, [r4, #0xc] b _080501B8 .align 2, 0 _08050180: .4byte gUnk_03000FD0 _08050184: mvns r0, r5 adds r0, #1 ands r0, r5 eors r5, r0 cmp r0, #8 beq _080501A8 cmp r0, #8 bhi _0805019A cmp r0, #4 beq _080501A0 b _080501B8 _0805019A: cmp r0, #0x10 beq _080501B0 b _080501B8 _080501A0: adds r0, r4, #0 bl sub_080501C0 b _080501B6 _080501A8: adds r0, r4, #0 bl sub_08050230 b _080501B6 _080501B0: adds r0, r4, #0 bl sub_080502A4 _080501B6: orrs r6, r0 _080501B8: cmp r5, #0 bne _08050184 strb r6, [r4] _080501BE: pop {r4, r5, r6, pc} thumb_func_start sub_080501C0 sub_080501C0: @ 0x080501C0 push {r4, r5, r6, r7, lr} adds r3, r0, #0 ldrh r1, [r3, #8] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080501DA movs r0, #0xc ldrsh r1, [r3, r0] movs r0, #0x80 lsls r0, r0, #1 subs r5, r0, r1 b _080501DE _080501DA: movs r2, #0xc ldrsh r5, [r3, r2] _080501DE: ldr r0, _080501F8 @ =gUnk_03000FD0 ldr r2, [r0, #4] ldr r1, _080501FC @ =gUnk_020354C0 movs r4, #0 ldr r7, _08050200 @ =gUnk_0200B644 movs r6, #1 _080501EA: adds r0, r2, #0 ands r0, r6 cmp r0, #0 beq _08050204 strb r6, [r1] strh r5, [r1, #2] b _08050208 .align 2, 0 _080501F8: .4byte gUnk_03000FD0 _080501FC: .4byte gUnk_020354C0 _08050200: .4byte gUnk_0200B644 _08050204: strb r0, [r1] strh r0, [r1, #2] _08050208: ldrb r0, [r3, #2] strb r0, [r1, #1] lsrs r2, r2, #1 adds r4, #1 adds r1, #4 cmp r4, #0x1f bls _080501EA movs r0, #1 rsbs r0, r0, #0 str r0, [r7] movs r0, #0xe ldrsh r1, [r3, r0] movs r2, #0xc ldrsh r0, [r3, r2] eors r1, r0 rsbs r0, r1, #0 orrs r0, r1 lsrs r0, r0, #0x1f pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08050230 sub_08050230: @ 0x08050230 push {r4, r5, lr} ldrh r4, [r0, #8] ldrh r0, [r0, #0xc] lsls r5, r0, #0x10 asrs r2, r5, #0x14 movs r0, #0xf ands r2, r0 movs r0, #1 ands r4, r0 cmp r4, #0 beq _0805024A movs r0, #0xf subs r2, r0, r2 _0805024A: ldr r3, _08050264 @ =gUnk_03000F50 ldr r1, _08050268 @ =gUnk_080FC3C4 lsls r0, r2, #1 adds r0, r0, r1 ldrh r1, [r0] adds r0, r3, #0 adds r0, #0x64 strh r1, [r0] cmp r5, #0 beq _0805026C movs r0, #1 b _08050298 .align 2, 0 _08050264: .4byte gUnk_03000F50 _08050268: .4byte gUnk_080FC3C4 _0805026C: ldr r1, _0805029C @ =gUnk_03000000 movs r0, #0 strb r0, [r1, #2] cmp r4, #0 bne _08050296 ldrh r2, [r3, #8] ldr r1, _080502A0 @ =0x0000FFBF adds r0, r1, #0 ands r0, r2 strh r0, [r3, #8] ldrh r2, [r3, #0x14] adds r0, r1, #0 ands r0, r2 strh r0, [r3, #0x14] ldrh r2, [r3, #0x20] adds r0, r1, #0 ands r0, r2 strh r0, [r3, #0x20] ldrh r0, [r3, #0x2c] ands r1, r0 strh r1, [r3, #0x2c] _08050296: movs r0, #0 _08050298: pop {r4, r5, pc} .align 2, 0 _0805029C: .4byte gUnk_03000000 _080502A0: .4byte 0x0000FFBF thumb_func_start sub_080502A4 sub_080502A4: @ 0x080502A4 push {r4, lr} ldrh r1, [r0, #8] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080502E4 ldr r4, _080502E0 @ =gUnk_03000FD0 ldrh r0, [r4, #0x10] ldrh r1, [r4, #0xa] subs r0, r0, r1 strh r0, [r4, #0x10] lsls r0, r0, #0x10 cmp r0, #0 bgt _080502C4 movs r0, #0 strh r0, [r4, #0x10] _080502C4: movs r1, #0x12 ldrsh r0, [r4, r1] movs r2, #0x14 ldrsh r1, [r4, r2] movs r3, #0x10 ldrsh r2, [r4, r3] bl sub_0801E1EC movs r1, #0x10 ldrsh r0, [r4, r1] cmp r0, #0 bne _08050314 movs r0, #0 b _08050316 .align 2, 0 _080502E0: .4byte gUnk_03000FD0 _080502E4: ldr r4, _08050310 @ =gUnk_03000FD0 ldrh r0, [r4, #0xa] ldrh r2, [r4, #0x10] adds r0, r0, r2 strh r0, [r4, #0x10] movs r3, #0x12 ldrsh r0, [r4, r3] movs r2, #0x14 ldrsh r1, [r4, r2] movs r3, #0x10 ldrsh r2, [r4, r3] bl sub_0801E1EC movs r1, #0x10 ldrsh r0, [r4, r1] cmp r0, #0x96 ble _08050314 bl sub_0801E104 movs r0, #0 b _08050316 .align 2, 0 _08050310: .4byte gUnk_03000FD0 _08050314: movs r0, #1 _08050316: pop {r4, pc} thumb_func_start sub_08050318 sub_08050318: @ 0x08050318 push {r4, r5, r6, lr} sub sp, #0x18 adds r6, r0, #0 adds r4, r1, #0 bl sub_08050384 ldr r0, _08050374 @ =gUnk_080FC844 mov r1, sp movs r2, #0x18 bl sub_0801D66C ldr r1, _08050378 @ =gUnk_020227E8 adds r0, r4, #0 bl sub_08056FEC mov r2, sp mov r1, sp ldr r5, _0805037C @ =gUnk_080FC85C lsls r4, r6, #1 adds r4, r4, r6 lsls r4, r4, #1 adds r0, r4, r5 ldrh r0, [r0] lsls r0, r0, #0xc ldrh r1, [r1, #0x10] orrs r0, r1 strh r0, [r2, #0x10] adds r0, r5, #2 adds r0, r4, r0 ldrh r0, [r0] mov r1, sp bl sub_0805F46C adds r5, #4 adds r4, r4, r5 ldrh r0, [r4] cmp r0, #0 beq _08050368 bl sub_080A3268 _08050368: ldr r1, _08050380 @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0xe] add sp, #0x18 pop {r4, r5, r6, pc} .align 2, 0 _08050374: .4byte gUnk_080FC844 _08050378: .4byte gUnk_020227E8 _0805037C: .4byte gUnk_080FC85C _08050380: .4byte gUnk_03000F50 thumb_func_start sub_08050384 sub_08050384: @ 0x08050384 push {lr} movs r0, #0 movs r1, #0 bl sub_0801C4A0 ldr r0, _080503A0 @ =gUnk_02034CB0 movs r1, #0x80 lsls r1, r1, #4 bl sub_0801D630 ldr r1, _080503A4 @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0xe] pop {pc} .align 2, 0 _080503A0: .4byte gUnk_02034CB0 _080503A4: .4byte gUnk_03000F50 thumb_func_start sub_080503A8 sub_080503A8: @ 0x080503A8 push {lr} bl sub_0801D7EC ldr r1, _080503B8 @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0x1a] strh r0, [r1, #0x26] pop {pc} .align 2, 0 _080503B8: .4byte gUnk_03000F50 thumb_func_start sub_080503BC sub_080503BC: @ 0x080503BC push {r4, lr} ldr r1, _080503D8 @ =gUnk_02032EC0 strb r0, [r1, #4] ldr r0, _080503DC @ =gUnk_02034CB0 movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 bl sub_0801D630 ldr r0, _080503E0 @ =gUnk_02021F30 adds r1, r4, #0 bl sub_0801D630 pop {r4, pc} .align 2, 0 _080503D8: .4byte gUnk_02032EC0 _080503DC: .4byte gUnk_02034CB0 _080503E0: .4byte gUnk_02021F30 thumb_func_start sub_080503E4 sub_080503E4: @ 0x080503E4 push {lr} adds r1, r0, #0 cmp r1, #2 bls _080503F2 movs r2, #1 movs r1, #1 b _080503FE _080503F2: ldr r0, _08050410 @ =0x000004B4 muls r0, r1, r0 ldr r1, _08050414 @ =gUnk_02019EEC adds r0, r0, r1 ldrb r2, [r0, #2] ldrb r1, [r0, #3] _080503FE: movs r0, #0x80 lsls r0, r0, #0x12 strb r2, [r0, #5] strb r1, [r0, #6] ldr r1, _08050418 @ =gUnk_0200B644 movs r0, #1 rsbs r0, r0, #0 str r0, [r1] pop {pc} .align 2, 0 _08050410: .4byte 0x000004B4 _08050414: .4byte gUnk_02019EEC _08050418: .4byte gUnk_0200B644 thumb_func_start sub_0805041C sub_0805041C: @ 0x0805041C push {r4, lr} adds r4, r0, #0 cmp r4, #2 bhi _0805043A movs r0, #0x80 lsls r0, r0, #0x12 strb r4, [r0, #4] ldr r2, _08050444 @ =0x000004B4 adds r0, r4, #0 muls r0, r2, r0 ldr r1, _08050448 @ =gUnk_02019EEC adds r0, r0, r1 ldr r1, _0805044C @ =gUnk_02002A40 bl sub_0801D66C _0805043A: adds r0, r4, #0 bl sub_080503E4 pop {r4, pc} .align 2, 0 _08050444: .4byte 0x000004B4 _08050448: .4byte gUnk_02019EEC _0805044C: .4byte gUnk_02002A40 thumb_func_start sub_08050450 sub_08050450: @ 0x08050450 push {r4, lr} bl sub_080AD90C ldr r1, _080504D8 @ =gUnk_080FC8A4 ldr r0, _080504DC @ =gUnk_03001000 ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 ldr r4, _080504E0 @ =gUnk_02032EC0 ldrb r1, [r4, #4] ldrb r0, [r4, #2] cmp r0, r1 beq _0805048A movs r0, #0 strb r1, [r4, #2] ldr r1, _080504E4 @ =gUnk_03000F50 strh r0, [r1, #0xa] strh r0, [r1, #0xc] strh r0, [r1, #0x16] strh r0, [r1, #0x18] strh r0, [r1, #0x22] strh r0, [r1, #0x24] ldr r0, _080504E8 @ =gUnk_02000080 movs r1, #0x30 bl sub_0801D630 _0805048A: bl sub_080507FC ldr r1, _080504EC @ =gUnk_080FC8B0 ldrb r0, [r4, #2] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 ldr r4, _080504F0 @ =gUnk_02019EE0 movs r0, #0 strb r0, [r4] bl sub_0805E5C0 bl sub_0805066C bl sub_0801C1D4 bl sub_0801C208 bl sub_080AD9B0 bl sub_080AD918 movs r0, #0x80 lsls r0, r0, #0x12 ldrb r1, [r0, #7] ldrb r0, [r4, #3] cmp r0, r1 beq _080504D4 strb r1, [r4, #3] movs r0, #6 bl sub_080503A8 movs r0, #0xf bl sub_080503A8 _080504D4: pop {r4, pc} .align 2, 0 _080504D8: .4byte gUnk_080FC8A4 _080504DC: .4byte gUnk_03001000 _080504E0: .4byte gUnk_02032EC0 _080504E4: .4byte gUnk_03000F50 _080504E8: .4byte gUnk_02000080 _080504EC: .4byte gUnk_080FC8B0 _080504F0: .4byte gUnk_02019EE0 thumb_func_start sub_080504F4 sub_080504F4: @ 0x080504F4 push {r4, lr} movs r0, #1 bl sub_0801DA90 bl sub_080A3210 movs r0, #0xc0 lsls r0, r0, #0x13 movs r1, #0x80 bl sub_0801D630 bl sub_08056418 bl sub_0805E60C bl sub_08080668 bl sub_080ADD30 movs r0, #0 bl sub_0801CFA8 ldr r0, _080505DC @ =gUnk_0200AF00 movs r1, #0xcd lsls r1, r1, #2 bl sub_0801D630 ldr r4, _080505E0 @ =gUnk_02019EE0 ldr r1, _080505E4 @ =0x00000E28 adds r0, r4, #0 bl sub_0801D630 movs r0, #7 strb r0, [r4, #3] movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] movs r1, #0 cmp r0, #1 bls _08050546 movs r1, #3 _08050546: strb r1, [r4, #6] ldr r4, _080505E8 @ =gUnk_02032EC0 movs r1, #0xed lsls r1, r1, #2 adds r0, r4, #0 bl sub_0801D630 movs r0, #8 strb r0, [r4, #2] movs r0, #0 bl sub_080503BC bl sub_0805616C movs r0, #0 bl sub_08050624 movs r0, #1 bl sub_08050624 movs r0, #2 bl sub_08050624 bl sub_08056208 movs r0, #5 bl sub_080503A8 movs r0, #9 bl sub_0801D714 movs r4, #0 _08050586: movs r0, #0x48 adds r1, r4, #0 movs r2, #0 bl sub_080A2960 adds r4, #1 cmp r4, #0x19 bls _08050586 ldr r0, _080505EC @ =gUnk_080FC8D0 bl sub_080A70AC bl sub_080507FC ldr r1, _080505F0 @ =gUnk_03000F50 ldrh r2, [r1] movs r3, #0xf8 lsls r3, r3, #5 adds r0, r3, #0 orrs r0, r2 strh r0, [r1] ldr r0, _080505F4 @ =0x00001E0B strh r0, [r1, #0x2c] adds r2, r1, #0 adds r2, #0x66 ldr r0, _080505F8 @ =0x00000844 strh r0, [r2] adds r1, #0x68 ldr r0, _080505FC @ =0x00000A0F strh r0, [r1] ldr r0, _08050600 @ =gUnk_02024490 movs r1, #1 strb r1, [r0] ldr r0, _08050604 @ =gUnk_03001000 strb r1, [r0, #3] movs r0, #7 bl sub_080A3268 movs r0, #4 movs r1, #8 bl sub_08050054 pop {r4, pc} .align 2, 0 _080505DC: .4byte gUnk_0200AF00 _080505E0: .4byte gUnk_02019EE0 _080505E4: .4byte 0x00000E28 _080505E8: .4byte gUnk_02032EC0 _080505EC: .4byte gUnk_080FC8D0 _080505F0: .4byte gUnk_03000F50 _080505F4: .4byte 0x00001E0B _080505F8: .4byte 0x00000844 _080505FC: .4byte 0x00000A0F _08050600: .4byte gUnk_02024490 _08050604: .4byte gUnk_03001000 thumb_func_start nullsub_479 nullsub_479: @ 0x08050608 bx lr .align 2, 0 thumb_func_start sub_0805060C sub_0805060C: @ 0x0805060C push {lr} ldr r0, _08050620 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _0805061C movs r0, #2 bl sub_08056010 _0805061C: pop {pc} .align 2, 0 _08050620: .4byte gUnk_03000FD0 thumb_func_start sub_08050624 sub_08050624: @ 0x08050624 push {r4, r5, lr} adds r4, r0, #0 ldr r0, _08050648 @ =0x000004B4 adds r1, r4, #0 muls r1, r0, r1 ldr r0, _0805064C @ =gUnk_02019EEC adds r1, r1, r0 adds r0, r4, #0 bl sub_0807CF28 adds r5, r0, #0 movs r0, #1 rsbs r0, r0, #0 cmp r5, r0 beq _08050650 cmp r5, #0 beq _08050656 b _0805065C .align 2, 0 _08050648: .4byte 0x000004B4 _0805064C: .4byte gUnk_02019EEC _08050650: adds r0, r4, #0 bl sub_0807CF48 _08050656: adds r0, r4, #0 bl sub_0805194C _0805065C: ldr r0, _08050668 @ =gUnk_02019EE0 adds r0, #8 adds r0, r4, r0 strb r5, [r0] pop {r4, r5, pc} .align 2, 0 _08050668: .4byte gUnk_02019EE0 thumb_func_start sub_0805066C sub_0805066C: @ 0x0805066C push {r4, lr} movs r1, #0 ldr r4, _080506F0 @ =gUnk_02019EE0 ldrb r0, [r4, #1] subs r0, #1 strb r0, [r4, #1] lsls r0, r0, #0x18 cmp r0, #0 bne _08050690 movs r0, #0x10 strb r0, [r4, #1] ldrb r0, [r4, #2] adds r0, #1 movs r1, #0xf bl __modsi3 strb r0, [r4, #2] movs r1, #1 _08050690: ldrb r0, [r4, #2] cmp r0, #0 bne _080506AA movs r0, #1 strb r0, [r4, #2] bl sub_08000E50 movs r1, #7 ands r1, r0 lsls r1, r1, #4 adds r1, #8 strb r1, [r4, #1] movs r1, #1 _080506AA: cmp r1, #0 beq _080506EE ldr r1, _080506F4 @ =gUnk_080FC8DE ldrb r0, [r4, #2] lsls r0, r0, #1 adds r0, r0, r1 ldrh r4, [r0] ldr r0, _080506F8 @ =gUnk_085A2E80 adds r4, r4, r0 ldr r1, _080506FC @ =0x00011AA0 adds r0, r4, r1 movs r1, #0xb movs r2, #1 bl sub_0801D754 ldr r1, _08050700 @ =0x00011BA0 adds r0, r4, r1 movs r1, #0xc movs r2, #1 bl sub_0801D754 ldr r1, _08050704 @ =0x00011CA0 adds r0, r4, r1 movs r1, #0xd movs r2, #1 bl sub_0801D754 ldr r0, _08050708 @ =0x00011DA0 adds r4, r4, r0 adds r0, r4, #0 movs r1, #0xe movs r2, #1 bl sub_0801D754 _080506EE: pop {r4, pc} .align 2, 0 _080506F0: .4byte gUnk_02019EE0 _080506F4: .4byte gUnk_080FC8DE _080506F8: .4byte gUnk_085A2E80 _080506FC: .4byte 0x00011AA0 _08050700: .4byte 0x00011BA0 _08050704: .4byte 0x00011CA0 _08050708: .4byte 0x00011DA0 thumb_func_start sub_0805070C sub_0805070C: @ 0x0805070C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} bl sub_0805F2C8 adds r5, r0, #0 cmp r5, #0 beq _0805077A movs r0, #0 strb r0, [r5, #2] movs r0, #5 strb r0, [r5, #3] movs r0, #1 strb r0, [r5, #1] movs r0, #0x30 strh r0, [r5, #4] ldr r0, _08050780 @ =gUnk_02000D00 str r0, [r5, #8] movs r6, #0 _08050732: movs r0, #0 strh r0, [r5, #6] ldr r0, [r5, #8] movs r1, #0x80 lsls r1, r1, #2 bl sub_0801D630 ldr r0, _08050784 @ =0x000004B4 adds r1, r6, #0 muls r1, r0, r1 ldr r0, _08050788 @ =gUnk_02019F6C adds r7, r1, r0 movs r4, #0 lsls r0, r6, #9 mov r8, r0 adds r6, #1 _08050752: adds r0, r7, r4 ldrb r0, [r0] adds r1, r5, #0 bl sub_0805F7DC adds r4, #1 cmp r4, #5 ble _08050752 ldr r0, [r5, #8] ldr r1, _0805078C @ =0x06014000 add r1, r8 movs r2, #0x80 lsls r2, r2, #2 bl sub_0801D66C cmp r6, #2 bls _08050732 adds r0, r5, #0 bl sub_0805F300 _0805077A: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08050780: .4byte gUnk_02000D00 _08050784: .4byte 0x000004B4 _08050788: .4byte gUnk_02019F6C _0805078C: .4byte 0x06014000 thumb_func_start sub_08050790 sub_08050790: @ 0x08050790 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} bl sub_0805F2C8 adds r6, r0, #0 cmp r6, #0 beq _080507F0 movs r0, #0 strb r0, [r6, #2] movs r0, #5 strb r0, [r6, #3] movs r0, #1 strb r0, [r6, #1] movs r0, #0x80 strh r0, [r6, #4] ldr r0, _080507F8 @ =gUnk_02000D00 str r0, [r6, #8] movs r1, #0 _080507B6: movs r0, #0 strh r0, [r6, #6] lsls r4, r1, #4 movs r5, #0 lsls r7, r1, #0xa adds r1, #1 mov r8, r1 _080507C4: adds r0, r4, #0 adds r1, r6, #0 bl sub_0805F7DC adds r4, #1 adds r5, #1 cmp r5, #0xf bls _080507C4 movs r0, #0xc0 lsls r0, r0, #0x13 adds r1, r7, r0 ldr r0, _080507F8 @ =gUnk_02000D00 movs r2, #0x80 lsls r2, r2, #3 bl sub_0801D66C mov r1, r8 cmp r1, #0xf bls _080507B6 adds r0, r6, #0 bl sub_0805F300 _080507F0: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _080507F8: .4byte gUnk_02000D00 thumb_func_start sub_080507FC sub_080507FC: @ 0x080507FC ldr r0, _0805080C @ =gUnk_0200AF00 movs r1, #0xa0 lsls r1, r1, #1 strh r1, [r0, #0x1a] movs r1, #0x24 strh r1, [r0, #0x20] bx lr .align 2, 0 _0805080C: .4byte gUnk_0200AF00 thumb_func_start sub_08050810 sub_08050810: @ 0x08050810 ldr r0, _0805081C @ =gUnk_0200AF00 movs r1, #0xd0 strh r1, [r0, #0x1a] movs r1, #0x24 strh r1, [r0, #0x20] bx lr .align 2, 0 _0805081C: .4byte gUnk_0200AF00 thumb_func_start sub_08050820 sub_08050820: @ 0x08050820 push {lr} ldr r1, _0805083C @ =gUnk_080FC8FC ldr r0, _08050840 @ =gUnk_02000080 ldrb r0, [r0, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 ldr r0, _08050844 @ =gUnk_02019EE0 ldrb r0, [r0, #6] bl sub_08050A64 pop {pc} .align 2, 0 _0805083C: .4byte gUnk_080FC8FC _08050840: .4byte gUnk_02000080 _08050844: .4byte gUnk_02019EE0 thumb_func_start sub_08050848 sub_08050848: @ 0x08050848 push {lr} movs r0, #7 bl sub_080503A8 bl sub_0805070C ldr r0, _08050868 @ =gUnk_02019EE0 movs r1, #0 strb r1, [r0, #7] ldrb r0, [r0, #6] bl sub_08050AFC movs r0, #1 bl sub_080A7114 pop {pc} .align 2, 0 _08050868: .4byte gUnk_02019EE0 thumb_func_start sub_0805086C sub_0805086C: @ 0x0805086C push {lr} ldr r1, _08050880 @ =gUnk_080FC908 ldr r0, _08050884 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08050880: .4byte gUnk_080FC908 _08050884: .4byte gUnk_02000080 thumb_func_start sub_08050888 sub_08050888: @ 0x08050888 push {r4, lr} ldr r0, _080508C4 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080508DC ldr r4, _080508C8 @ =gUnk_02019EE0 ldrb r1, [r4, #7] adds r0, r4, #0 adds r0, #8 adds r0, r1, r0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080508D0 cmp r0, #1 beq _080508D6 adds r0, r1, #0 bl sub_0805194C ldrb r1, [r4, #7] adds r1, #1 movs r0, #0 bl sub_08050318 ldr r1, _080508CC @ =gUnk_02000080 movs r0, #0x1e strh r0, [r1, #8] movs r0, #1 b _080508DA .align 2, 0 _080508C4: .4byte gUnk_03000FD0 _080508C8: .4byte gUnk_02019EE0 _080508CC: .4byte gUnk_02000080 _080508D0: adds r0, r1, #0 bl sub_0805194C _080508D6: ldr r1, _080508E0 @ =gUnk_02000080 movs r0, #2 _080508DA: strb r0, [r1, #6] _080508DC: pop {r4, pc} .align 2, 0 _080508E0: .4byte gUnk_02000080 thumb_func_start sub_080508E4 sub_080508E4: @ 0x080508E4 push {lr} ldr r2, _08050900 @ =gUnk_02000080 ldrh r0, [r2, #8] cmp r0, #0 bne _08050908 ldr r0, _08050904 @ =gUnk_03000FF0 ldrh r1, [r0, #2] movs r0, #9 ands r0, r1 cmp r0, #0 beq _0805090C movs r0, #2 strb r0, [r2, #6] b _0805090C .align 2, 0 _08050900: .4byte gUnk_02000080 _08050904: .4byte gUnk_03000FF0 _08050908: subs r0, #1 strh r0, [r2, #8] _0805090C: pop {pc} .align 2, 0 thumb_func_start sub_08050910 sub_08050910: @ 0x08050910 push {lr} bl sub_08050384 ldr r1, _08050930 @ =gUnk_02019EE0 ldrb r0, [r1, #7] adds r0, #1 strb r0, [r1, #7] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #2 bls _08050934 movs r0, #2 bl sub_080A7114 b _0805093A .align 2, 0 _08050930: .4byte gUnk_02019EE0 _08050934: ldr r1, _0805093C @ =gUnk_02000080 movs r0, #0 strb r0, [r1, #6] _0805093A: pop {pc} .align 2, 0 _0805093C: .4byte gUnk_02000080 thumb_func_start sub_08050940 sub_08050940: @ 0x08050940 push {r4, r5, r6, lr} ldr r3, _0805099C @ =gUnk_02019EE0 ldrb r0, [r3] cmp r0, #0 beq _0805094C b _08050A58 _0805094C: ldrb r4, [r3, #6] ldr r0, _080509A0 @ =gUnk_03000FF0 ldrh r2, [r0, #2] ldrh r1, [r0] movs r0, #0x80 lsls r0, r0, #2 ands r0, r1 cmp r0, #0 beq _08050974 adds r0, r3, #0 adds r0, #8 adds r0, r4, r0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08050974 movs r0, #0xc1 rsbs r0, r0, #0 ands r2, r0 _08050974: movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] movs r6, #3 cmp r0, #1 bls _08050982 movs r6, #4 _08050982: ldr r0, _080509A4 @ =gUnk_02032EC0 ldrb r5, [r0, #2] adds r1, r0, #0 cmp r2, #0x40 beq _080509B6 cmp r2, #0x40 bhi _080509A8 cmp r2, #1 beq _080509E0 cmp r2, #8 beq _080509E0 b _08050A10 .align 2, 0 _0805099C: .4byte gUnk_02019EE0 _080509A0: .4byte gUnk_03000FF0 _080509A4: .4byte gUnk_02032EC0 _080509A8: cmp r2, #0x80 beq _080509BE movs r0, #0x80 lsls r0, r0, #1 cmp r2, r0 beq _080509C8 b _08050A10 _080509B6: cmp r4, #0 ble _08050A10 subs r4, #1 b _08050A10 _080509BE: subs r0, r6, #1 cmp r0, r4 ble _08050A10 adds r4, #1 b _08050A10 _080509C8: ldr r0, _080509DC @ =gUnk_02019EE0 adds r0, #8 adds r0, r4, r0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08050A10 movs r5, #3 b _08050A10 .align 2, 0 _080509DC: .4byte gUnk_02019EE0 _080509E0: adds r0, r4, #0 bl sub_0805041C cmp r4, #3 bne _080509EE movs r5, #2 b _08050A0E _080509EE: ldr r0, _08050A04 @ =gUnk_02019EE0 adds r0, #8 adds r0, r4, r0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08050A08 cmp r0, #1 beq _08050A0C b _08050A0E .align 2, 0 _08050A04: .4byte gUnk_02019EE0 _08050A08: movs r5, #1 b _08050A0E _08050A0C: movs r5, #4 _08050A0E: ldr r1, _08050A5C @ =gUnk_02032EC0 _08050A10: ldrb r0, [r1, #2] cmp r0, r5 beq _08050A22 adds r0, r5, #0 bl sub_080503BC movs r0, #0x6a bl sub_080A3268 _08050A22: adds r0, r4, r6 adds r1, r6, #0 bl __modsi3 adds r4, r0, #0 ldr r5, _08050A60 @ =gUnk_02019EE0 ldrb r0, [r5, #6] cmp r0, r4 beq _08050A42 strb r4, [r5, #6] adds r0, r4, #0 bl sub_08050AFC movs r0, #0x69 bl sub_080A3268 _08050A42: adds r0, r5, #0 adds r0, #8 ldrb r5, [r5, #6] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08050A58 bl sub_08050810 _08050A58: pop {r4, r5, r6, pc} .align 2, 0 _08050A5C: .4byte gUnk_02032EC0 _08050A60: .4byte gUnk_02019EE0 thumb_func_start sub_08050A64 sub_08050A64: @ 0x08050A64 push {r4, lr} ldr r1, _08050AF0 @ =gUnk_02019EE0 adds r1, #8 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08050AEC ldr r4, _08050AF4 @ =gUnk_03001010 movs r0, #0 strh r0, [r4, #4] strh r0, [r4, #6] movs r0, #0x80 lsls r0, r0, #3 strh r0, [r4, #8] movs r0, #0x40 bl sub_0807CA84 cmp r0, #0 beq _08050A9E movs r0, #0xa2 strh r0, [r4] movs r0, #0x36 strh r0, [r4, #2] ldr r0, _08050AF8 @ =0x00000145 movs r1, #0x24 bl sub_080ADA14 _08050A9E: movs r0, #0x41 bl sub_0807CA84 cmp r0, #0 beq _08050AB8 movs r0, #0x96 strh r0, [r4] movs r0, #0x3d strh r0, [r4, #2] ldr r0, _08050AF8 @ =0x00000145 movs r1, #0x22 bl sub_080ADA14 _08050AB8: movs r0, #0x42 bl sub_0807CA84 cmp r0, #0 beq _08050AD2 movs r0, #0xae strh r0, [r4] movs r0, #0x3d strh r0, [r4, #2] ldr r0, _08050AF8 @ =0x00000145 movs r1, #0x23 bl sub_080ADA14 _08050AD2: movs r0, #0x43 bl sub_0807CA84 cmp r0, #0 beq _08050AEC movs r0, #0xa2 strh r0, [r4] movs r0, #0x44 strh r0, [r4, #2] ldr r0, _08050AF8 @ =0x00000145 movs r1, #0x21 bl sub_080ADA14 _08050AEC: pop {r4, pc} .align 2, 0 _08050AF0: .4byte gUnk_02019EE0 _08050AF4: .4byte gUnk_03001010 _08050AF8: .4byte 0x00000145 thumb_func_start sub_08050AFC sub_08050AFC: @ 0x08050AFC push {r4, r5, lr} adds r4, r0, #0 bl sub_0805041C ldr r5, _08050B30 @ =gUnk_02021F30 movs r1, #0x80 lsls r1, r1, #4 adds r0, r5, #0 bl sub_0801D630 ldr r0, _08050B34 @ =gUnk_02019EE0 adds r0, #8 adds r4, r4, r0 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #1 bne _08050B28 movs r1, #0xa7 lsls r1, r1, #2 adds r0, r5, r1 bl sub_08050B3C _08050B28: ldr r1, _08050B38 @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0x1a] pop {r4, r5, pc} .align 2, 0 _08050B30: .4byte gUnk_02021F30 _08050B34: .4byte gUnk_02019EE0 _08050B38: .4byte gUnk_03000F50 thumb_func_start sub_08050B3C sub_08050B3C: @ 0x08050B3C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 str r0, [sp] ldr r1, _08050C18 @ =gUnk_02002A40 adds r0, r1, #0 adds r0, #0xaa ldrb r0, [r0] lsrs r2, r0, #1 cmp r2, #0 bne _08050B5A movs r2, #1 _08050B5A: adds r0, r1, #0 adds r0, #0xab ldrb r0, [r0] lsrs r3, r0, #1 cmp r3, #0 beq _08050C0A cmp r2, r3 ble _08050B6C adds r2, r3, #0 _08050B6C: movs r0, #3 ands r0, r2 str r0, [sp, #4] adds r0, r2, #0 asrs r5, r0, #2 mov ip, r5 cmp r5, #0xa ble _08050B80 movs r2, #0xa mov ip, r2 _08050B80: adds r6, r5, #0 subs r6, #0xa mov sb, r6 cmp r6, #0 bge _08050B8E movs r7, #0 mov sb, r7 _08050B8E: adds r0, r3, #0 asrs r3, r0, #2 adds r0, r3, #0 cmp r3, #0xa ble _08050B9A movs r3, #0xa _08050B9A: adds r4, r0, #0 subs r4, #0xa ldr r2, [sp] ldr r0, _08050C1C @ =0x0000F24C mov sl, r0 strh r0, [r2] ldr r1, _08050C20 @ =0x040000D4 movs r7, #0xa mov r8, r7 mov r0, r8 mov r7, ip subs r0, r0, r7 lsls r0, r0, #1 ldr r7, _08050C24 @ =gUnk_080FC914 mov ip, r7 add r0, ip str r0, [r1] adds r0, r2, #2 str r0, [r1, #4] movs r0, #0x80 lsls r0, r0, #0x18 orrs r3, r0 str r3, [r1, #8] ldr r0, [r1, #8] cmp r4, #0 ble _08050BEE adds r2, #0x40 mov r3, sl strh r3, [r2] mov r7, r8 mov r3, sb subs r0, r7, r3 lsls r0, r0, #1 add r0, ip str r0, [r1] adds r0, r2, #2 str r0, [r1, #4] movs r7, #0x80 lsls r7, r7, #0x18 orrs r4, r7 str r4, [r1, #8] ldr r0, [r1, #8] _08050BEE: ldr r0, [sp, #4] cmp r0, #0 beq _08050C0A ldr r2, [sp] cmp r5, #9 ble _08050BFE adds r5, r6, #0 adds r2, #0x40 _08050BFE: lsls r0, r5, #1 adds r0, r0, r2 ldr r2, [sp, #4] ldr r3, _08050C28 @ =0xFFFFF24D adds r1, r2, r3 strh r1, [r0, #2] _08050C0A: 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 _08050C18: .4byte gUnk_02002A40 _08050C1C: .4byte 0x0000F24C _08050C20: .4byte 0x040000D4 _08050C24: .4byte gUnk_080FC914 _08050C28: .4byte 0xFFFFF24D thumb_func_start sub_08050C2C sub_08050C2C: @ 0x08050C2C push {lr} ldr r1, _08050C48 @ =gUnk_080FC93C ldr r0, _08050C4C @ =gUnk_02000080 ldrb r0, [r0, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 ldr r0, _08050C50 @ =gUnk_02019EE0 ldrb r0, [r0, #6] bl sub_08050A64 pop {pc} .align 2, 0 _08050C48: .4byte gUnk_080FC93C _08050C4C: .4byte gUnk_02000080 _08050C50: .4byte gUnk_02019EE0 thumb_func_start sub_08050C54 sub_08050C54: @ 0x08050C54 push {r4, lr} ldr r0, _08050C78 @ =gUnk_02019EE0 ldrb r0, [r0] cmp r0, #0 beq _08050C60 b _08050D60 _08050C60: ldr r0, _08050C7C @ =gUnk_02000080 ldrb r4, [r0, #1] ldr r0, _08050C80 @ =gUnk_03000FF0 ldrh r0, [r0, #2] subs r0, #1 cmp r0, #0x1f bhi _08050D44 lsls r0, r0, #2 ldr r1, _08050C84 @ =_08050C88 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08050C78: .4byte gUnk_02019EE0 _08050C7C: .4byte gUnk_02000080 _08050C80: .4byte gUnk_03000FF0 _08050C84: .4byte _08050C88 _08050C88: @ jump table .4byte _08050D08 @ case 0 .4byte _08050D30 @ case 1 .4byte _08050D44 @ case 2 .4byte _08050D44 @ case 3 .4byte _08050D44 @ case 4 .4byte _08050D44 @ case 5 .4byte _08050D44 @ case 6 .4byte _08050D08 @ case 7 .4byte _08050D44 @ case 8 .4byte _08050D44 @ case 9 .4byte _08050D44 @ case 10 .4byte _08050D44 @ case 11 .4byte _08050D44 @ case 12 .4byte _08050D44 @ case 13 .4byte _08050D44 @ case 14 .4byte _08050D42 @ case 15 .4byte _08050D44 @ case 16 .4byte _08050D44 @ case 17 .4byte _08050D44 @ case 18 .4byte _08050D44 @ case 19 .4byte _08050D44 @ case 20 .4byte _08050D44 @ case 21 .4byte _08050D44 @ case 22 .4byte _08050D44 @ case 23 .4byte _08050D44 @ case 24 .4byte _08050D44 @ case 25 .4byte _08050D44 @ case 26 .4byte _08050D44 @ case 27 .4byte _08050D44 @ case 28 .4byte _08050D44 @ case 29 .4byte _08050D44 @ case 30 .4byte _08050D3E @ case 31 _08050D08: cmp r4, #0 bne _08050D12 ldr r0, _08050D28 @ =0x80080000 bl sub_080A3268 _08050D12: ldr r1, _08050D2C @ =gUnk_02000080 movs r0, #0xf strh r0, [r1, #8] movs r0, #1 bl sub_080A7114 movs r0, #0x6a bl sub_080A3268 b _08050D44 .align 2, 0 _08050D28: .4byte 0x80080000 _08050D2C: .4byte gUnk_02000080 _08050D30: movs r0, #0x6c bl sub_080A3268 movs r0, #0 bl sub_080503BC b _08050D44 _08050D3E: subs r4, #1 b _08050D44 _08050D42: adds r4, #1 _08050D44: cmp r4, #0 bge _08050D4A movs r4, #0 _08050D4A: cmp r4, #2 ble _08050D50 movs r4, #2 _08050D50: ldr r1, _08050D64 @ =gUnk_02000080 ldrb r0, [r1, #1] cmp r0, r4 beq _08050D60 strb r4, [r1, #1] movs r0, #0x69 bl sub_080A3268 _08050D60: pop {r4, pc} .align 2, 0 _08050D64: .4byte gUnk_02000080 thumb_func_start sub_08050D68 sub_08050D68: @ 0x08050D68 push {lr} ldr r1, _08050D84 @ =gUnk_02000080 ldrh r0, [r1, #8] cmp r0, #0 bne _08050D94 ldrb r0, [r1, #1] cmp r0, #1 beq _08050D88 cmp r0, #1 ble _08050D80 cmp r0, #2 beq _08050D8C _08050D80: movs r0, #7 b _08050D8E .align 2, 0 _08050D84: .4byte gUnk_02000080 _08050D88: movs r0, #5 b _08050D8E _08050D8C: movs r0, #6 _08050D8E: bl sub_080503BC b _08050D98 _08050D94: subs r0, #1 strh r0, [r1, #8] _08050D98: pop {pc} .align 2, 0 thumb_func_start sub_08050D9C sub_08050D9C: @ 0x08050D9C push {lr} ldr r1, _08050DB0 @ =gUnk_080FC944 ldr r0, _08050DB4 @ =gUnk_02000080 ldrb r0, [r0, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08050DB0: .4byte gUnk_080FC944 _08050DB4: .4byte gUnk_02000080 thumb_func_start sub_08050DB8 sub_08050DB8: @ 0x08050DB8 push {lr} ldr r0, _08050DDC @ =gUnk_020344B0 movs r1, #0x80 lsls r1, r1, #4 bl sub_0801D630 movs r0, #0xc bl sub_080503A8 ldr r1, _08050DE0 @ =gUnk_02000080 movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] strb r0, [r1, #4] movs r0, #1 bl sub_080A7114 pop {pc} .align 2, 0 _08050DDC: .4byte gUnk_020344B0 _08050DE0: .4byte gUnk_02000080 thumb_func_start sub_08050DE4 sub_08050DE4: @ 0x08050DE4 push {r4, lr} ldr r0, _08050E0C @ =gUnk_02019EE0 ldrb r0, [r0] cmp r0, #0 bne _08050E80 movs r1, #0x80 lsls r1, r1, #0x12 ldrb r4, [r1, #7] ldr r0, _08050E10 @ =gUnk_03000FF0 ldrh r0, [r0, #2] cmp r0, #8 beq _08050E26 cmp r0, #8 bgt _08050E14 cmp r0, #1 beq _08050E26 cmp r0, #2 beq _08050E50 b _08050E62 .align 2, 0 _08050E0C: .4byte gUnk_02019EE0 _08050E10: .4byte gUnk_03000FF0 _08050E14: cmp r0, #0x40 beq _08050E1E cmp r0, #0x80 beq _08050E22 b _08050E62 _08050E1E: subs r4, #1 b _08050E62 _08050E22: adds r4, #1 b _08050E62 _08050E26: movs r0, #0x6a bl sub_080A3268 ldr r0, _08050E44 @ =gUnk_02000080 ldrb r0, [r0, #4] cmp r0, r4 beq _08050E48 movs r0, #2 bl sub_080A7114 movs r0, #8 movs r1, #0 bl sub_08050318 b _08050E62 .align 2, 0 _08050E44: .4byte gUnk_02000080 _08050E48: movs r0, #0 bl sub_080503BC b _08050E62 _08050E50: ldr r0, _08050E84 @ =gUnk_02000080 ldrb r4, [r0, #4] strb r4, [r1, #7] movs r0, #0x6c bl sub_080A3268 movs r0, #0 bl sub_080503BC _08050E62: cmp r4, #1 bgt _08050E68 movs r4, #2 _08050E68: cmp r4, #6 ble _08050E6E movs r4, #6 _08050E6E: movs r1, #0x80 lsls r1, r1, #0x12 ldrb r0, [r1, #7] cmp r0, r4 beq _08050E80 strb r4, [r1, #7] movs r0, #0x69 bl sub_080A3268 _08050E80: pop {r4, pc} .align 2, 0 _08050E84: .4byte gUnk_02000080 thumb_func_start sub_08050E88 sub_08050E88: @ 0x08050E88 push {lr} movs r0, #2 bl sub_0807CDA4 cmp r0, #0 beq _08050E9A movs r0, #0 bl sub_080503BC _08050E9A: pop {pc} thumb_func_start sub_08050E9C sub_08050E9C: @ 0x08050E9C push {lr} ldr r1, _08050EB0 @ =gUnk_080FC950 ldr r0, _08050EB4 @ =gUnk_02000080 ldrb r0, [r0, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08050EB0: .4byte gUnk_080FC950 _08050EB4: .4byte gUnk_02000080 thumb_func_start sub_08050EB8 sub_08050EB8: @ 0x08050EB8 push {lr} movs r0, #0xe bl sub_080503A8 ldr r2, _08050EE8 @ =gUnk_02019EE0 ldrb r1, [r2, #6] ldr r0, _08050EEC @ =0x000004B4 muls r1, r0, r1 adds r0, r2, #0 adds r0, #0xc adds r1, r1, r0 ldrb r0, [r1, #2] movs r3, #0 strb r0, [r2, #4] ldrb r0, [r1, #3] strb r0, [r2, #5] ldr r1, _08050EF0 @ =gUnk_02000080 strb r3, [r1, #1] movs r0, #0xff strh r0, [r1, #8] movs r0, #1 bl sub_080A7114 pop {pc} .align 2, 0 _08050EE8: .4byte gUnk_02019EE0 _08050EEC: .4byte 0x000004B4 _08050EF0: .4byte gUnk_02000080 thumb_func_start sub_08050EF4 sub_08050EF4: @ 0x08050EF4 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r0, _08050F40 @ =gUnk_02019EE0 ldrb r1, [r0] adds r6, r0, #0 cmp r1, #0 bne _08050FF4 ldrb r1, [r6, #6] ldr r0, _08050F44 @ =0x000004B4 muls r1, r0, r1 adds r0, r6, #0 adds r0, #0xc adds r1, r1, r0 ldr r0, _08050F48 @ =gUnk_02000080 ldrb r3, [r0, #1] adds r4, r1, #3 mov ip, r0 cmp r3, #0 bne _08050F1E adds r4, r1, #2 _08050F1E: ldrb r2, [r4] movs r5, #0 ldr r0, _08050F4C @ =gUnk_03000FF0 ldrh r0, [r0, #2] mov r8, r2 cmp r0, #0x10 beq _08050F7A cmp r0, #0x10 bgt _08050F56 cmp r0, #2 beq _08050F8C cmp r0, #2 bgt _08050F50 cmp r0, #1 beq _08050F82 b _08050F8E .align 2, 0 _08050F40: .4byte gUnk_02019EE0 _08050F44: .4byte 0x000004B4 _08050F48: .4byte gUnk_02000080 _08050F4C: .4byte gUnk_03000FF0 _08050F50: cmp r0, #8 beq _08050F82 b _08050F8E _08050F56: cmp r0, #0x40 beq _08050F6A cmp r0, #0x40 bgt _08050F64 cmp r0, #0x20 beq _08050F72 b _08050F8E _08050F64: cmp r0, #0x80 beq _08050F6E b _08050F8E _08050F6A: movs r3, #0 b _08050F8E _08050F6E: movs r3, #1 b _08050F8E _08050F72: cmp r2, #0 beq _08050F8E subs r2, #1 b _08050F8E _08050F7A: cmp r2, #1 bhi _08050F8E adds r2, #1 b _08050F8E _08050F82: ldrh r0, [r6, #4] movs r5, #2 ldrh r7, [r1, #2] cmp r0, r7 bne _08050F8E _08050F8C: movs r5, #3 _08050F8E: cmp r5, #0 beq _08050FD0 cmp r5, #2 beq _08050F9C cmp r5, #3 beq _08050FAC b _08050FBA _08050F9C: movs r0, #8 movs r1, #0 bl sub_08050318 movs r0, #0x6a bl sub_080A3268 b _08050FBA _08050FAC: ldrb r0, [r6, #4] strb r0, [r1, #2] ldrb r0, [r6, #5] strb r0, [r1, #3] movs r0, #0x6c bl sub_080A3268 _08050FBA: adds r0, r5, #0 bl sub_080A7114 ldr r0, _08050FCC @ =gUnk_02019EE0 ldrb r0, [r0, #6] bl sub_0805041C b _08050FF4 .align 2, 0 _08050FCC: .4byte gUnk_02019EE0 _08050FD0: mov r1, ip ldrb r0, [r1, #1] cmp r0, r3 beq _08050FE2 strb r3, [r1, #1] movs r0, #0x69 bl sub_080A3268 b _08050FF4 _08050FE2: cmp r2, r8 beq _08050FF4 strb r2, [r4] ldrb r0, [r6, #6] bl sub_080503E4 movs r0, #0x69 bl sub_080A3268 _08050FF4: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08050FFC sub_08050FFC: @ 0x08050FFC push {lr} movs r0, #0 bl sub_0807CDA4 adds r1, r0, #0 movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 beq _08051014 cmp r1, #1 beq _0805102A b _08051030 _08051014: ldr r1, _08051034 @ =gUnk_02000080 movs r0, #0x1e strh r0, [r1, #8] ldr r0, _08051038 @ =gUnk_02019EE0 ldrb r0, [r0, #6] bl sub_0805194C movs r0, #9 movs r1, #0 bl sub_08050318 _0805102A: movs r0, #3 bl sub_080A7114 _08051030: pop {pc} .align 2, 0 _08051034: .4byte gUnk_02000080 _08051038: .4byte gUnk_02019EE0 thumb_func_start sub_0805103C sub_0805103C: @ 0x0805103C push {lr} ldr r0, _08051050 @ =gUnk_02000080 ldrb r1, [r0, #8] adds r2, r0, #0 cmp r1, #0 beq _08051054 cmp r1, #0xff beq _0805106C b _08051060 .align 2, 0 _08051050: .4byte gUnk_02000080 _08051054: ldr r0, _08051068 @ =gUnk_03000FF0 ldrh r1, [r0, #2] movs r0, #9 ands r0, r1 cmp r0, #0 beq _08051072 _08051060: ldrh r0, [r2, #8] subs r0, #1 strh r0, [r2, #8] b _08051072 .align 2, 0 _08051068: .4byte gUnk_03000FF0 _0805106C: movs r0, #0 bl sub_080503BC _08051072: pop {pc} thumb_func_start sub_08051074 sub_08051074: @ 0x08051074 push {lr} ldr r1, _08051088 @ =gUnk_080FC960 ldr r0, _0805108C @ =gUnk_02000080 ldrb r0, [r0, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08051088: .4byte gUnk_080FC960 _0805108C: .4byte gUnk_02000080 thumb_func_start sub_08051090 sub_08051090: @ 0x08051090 push {lr} movs r0, #8 bl sub_080503A8 bl sub_08050790 bl sub_0805070C bl sub_08051458 ldr r1, _080510B4 @ =gUnk_03000F50 movs r0, #0xff strh r0, [r1, #0x18] strh r0, [r1, #0x24] movs r0, #1 bl sub_080A7114 pop {pc} .align 2, 0 _080510B4: .4byte gUnk_03000F50 thumb_func_start sub_080510B8 sub_080510B8: @ 0x080510B8 push {r4, r5, r6, r7, lr} ldr r0, _080510E4 @ =gUnk_02019EE0 ldrb r0, [r0] cmp r0, #0 beq _080510C4 b _0805134C _080510C4: movs r7, #0 ldr r0, _080510E8 @ =gUnk_03000FF0 ldrh r1, [r0, #2] adds r2, r0, #0 cmp r1, #8 bne _080510D2 b _080511C8 _080510D2: cmp r1, #8 bgt _080510EC cmp r1, #1 bne _080510DC b _080511F2 _080510DC: cmp r1, #2 beq _080511B8 b _08051100 .align 2, 0 _080510E4: .4byte gUnk_02019EE0 _080510E8: .4byte gUnk_03000FF0 _080510EC: movs r0, #0x80 lsls r0, r0, #1 cmp r1, r0 bne _080510F6 b _0805122C _080510F6: movs r0, #0x80 lsls r0, r0, #2 cmp r1, r0 bne _08051100 b _0805121C _08051100: movs r6, #0 movs r5, #0 ldrh r0, [r2, #4] cmp r0, #0x20 beq _08051128 cmp r0, #0x20 bgt _08051114 cmp r0, #0x10 beq _0805112E b _08051130 _08051114: cmp r0, #0x40 beq _0805111E cmp r0, #0x80 beq _08051124 b _08051130 _0805111E: movs r5, #1 rsbs r5, r5, #0 b _08051130 _08051124: movs r5, #1 b _08051130 _08051128: movs r6, #1 rsbs r6, r6, #0 b _08051130 _0805112E: movs r6, #1 _08051130: ldr r4, _0805117C @ =gUnk_02000080 ldrb r0, [r4, #0x11] adds r0, r0, r5 adds r0, #6 movs r1, #6 bl __modsi3 strb r0, [r4, #0x11] orrs r5, r6 cmp r5, #0 beq _0805114C movs r0, #0x67 bl sub_080A3268 _0805114C: cmp r6, #0 beq _0805123A ldrb r0, [r4, #0x11] cmp r0, #5 beq _08051184 ldrb r0, [r4, #0x10] adds r0, r0, r6 adds r0, #0xd movs r1, #0xd bl __modsi3 strb r0, [r4, #0x10] ldr r1, _08051180 @ =gUnk_080FC980 movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] cmp r0, #0 beq _08051172 adds r1, #0x10 _08051172: ldrb r0, [r4, #0x10] adds r0, r1, r0 ldrb r0, [r0] strb r0, [r4, #0x12] b _0805123A .align 2, 0 _0805117C: .4byte gUnk_02000080 _08051180: .4byte gUnk_080FC980 _08051184: movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] adds r5, r0, #0 movs r1, #4 cmp r5, #0 bne _08051194 movs r1, #5 _08051194: ldrb r0, [r4, #0x12] adds r0, r0, r6 adds r0, r0, r1 bl __modsi3 strb r0, [r4, #0x12] ldr r1, _080511B4 @ =gUnk_080FC9A0 cmp r5, #0 beq _080511A8 adds r1, #8 _080511A8: ldrb r0, [r4, #0x12] adds r0, r1, r0 ldrb r0, [r0] strb r0, [r4, #0x10] b _0805123A .align 2, 0 _080511B4: .4byte gUnk_080FC9A0 _080511B8: ldr r0, _080511C4 @ =gUnk_02000080 ldrb r0, [r0, #0x13] cmp r0, #0 beq _080511EC movs r7, #5 b _0805123A .align 2, 0 _080511C4: .4byte gUnk_02000080 _080511C8: movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] movs r1, #3 cmp r0, #0 bne _080511D6 movs r1, #4 _080511D6: ldr r2, _080511E8 @ =gUnk_02000080 ldrb r0, [r2, #0x11] cmp r0, #5 bne _080511EC ldrb r2, [r2, #0x12] cmp r1, r2 bne _080511EC movs r7, #8 b _0805123A .align 2, 0 _080511E8: .4byte gUnk_02000080 _080511EC: bl sub_08051358 b _0805123A _080511F2: ldr r1, _08051210 @ =gUnk_02000080 ldrb r0, [r1, #0x11] cmp r0, #5 bne _08051218 ldr r2, _08051214 @ =gUnk_080FC970 ldrb r1, [r1, #0x12] movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] cmp r0, #0 beq _0805120A adds r1, #8 _0805120A: adds r0, r1, r2 ldrb r7, [r0] b _0805123A .align 2, 0 _08051210: .4byte gUnk_02000080 _08051214: .4byte gUnk_080FC970 _08051218: movs r7, #6 b _0805123A _0805121C: movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] movs r7, #1 cmp r0, #0 bne _0805123A movs r7, #4 b _0805123A _0805122C: movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] movs r7, #2 cmp r0, #0 bne _0805123A movs r7, #7 _0805123A: ldr r0, _08051250 @ =gUnk_02000080 ldrb r4, [r0, #1] subs r0, r7, #1 cmp r0, #7 bhi _08051322 lsls r0, r0, #2 ldr r1, _08051254 @ =_08051258 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08051250: .4byte gUnk_02000080 _08051254: .4byte _08051258 _08051258: @ jump table .4byte _08051278 @ case 0 .4byte _0805127C @ case 1 .4byte _08051280 @ case 2 .4byte _08051284 @ case 3 .4byte _08051288 @ case 4 .4byte _080512C0 @ case 5 .4byte _080512B8 @ case 6 .4byte _080512EC @ case 7 _08051278: movs r4, #0 b _08051322 _0805127C: movs r4, #1 b _08051322 _08051280: movs r4, #2 b _08051322 _08051284: adds r4, #1 b _08051322 _08051288: ldr r3, _080512B0 @ =gUnk_02000080 ldrb r0, [r3, #0x13] cmp r0, #0 beq _08051322 subs r0, #1 movs r2, #0 strb r0, [r3, #0x13] ldr r1, _080512B4 @ =gUnk_02002A40 ldrb r0, [r3, #0x13] adds r1, #0x80 adds r0, r0, r1 strb r2, [r0] ldrb r0, [r3, #0x13] adds r0, #1 adds r0, r0, r1 strb r2, [r0] movs r0, #0x6c bl sub_08051574 b _08051322 .align 2, 0 _080512B0: .4byte gUnk_02000080 _080512B4: .4byte gUnk_02002A40 _080512B8: movs r0, #0 bl sub_08051480 b _08051322 _080512C0: ldr r2, _080512E4 @ =gUnk_02001A40 ldr r0, _080512E8 @ =gUnk_02000080 ldrb r1, [r0, #0x10] lsls r1, r1, #1 ldrb r0, [r0, #0x11] lsls r0, r0, #6 adds r0, #0xc3 adds r1, r1, r0 lsls r1, r1, #1 adds r1, r1, r2 ldrh r0, [r1] lsrs r0, r0, #1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 bl sub_08051480 b _08051322 .align 2, 0 _080512E4: .4byte gUnk_02001A40 _080512E8: .4byte gUnk_02000080 _080512EC: movs r3, #5 ldr r0, _08051350 @ =gUnk_02002A40 adds r6, r0, #0 adds r6, #0x80 movs r5, #0 _080512F6: adds r2, r3, r6 ldrb r1, [r2] cmp r1, #0 beq _08051302 cmp r1, #0x20 bne _0805130A _08051302: strb r5, [r2] subs r3, #1 cmp r3, #0 bge _080512F6 _0805130A: adds r0, #0x80 ldrb r0, [r0] movs r7, #3 cmp r0, #0 beq _08051316 movs r7, #2 _08051316: movs r0, #0x6a bl sub_08051574 adds r0, r7, #0 bl sub_080A7114 _08051322: movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] movs r1, #2 cmp r0, #0 bne _08051330 movs r1, #3 _08051330: adds r0, r4, r1 bl __modsi3 adds r4, r0, #0 ldr r1, _08051354 @ =gUnk_02000080 ldrb r0, [r1, #1] cmp r0, r4 beq _0805134C strb r4, [r1, #1] bl sub_08051458 movs r0, #0x68 bl sub_080A3268 _0805134C: pop {r4, r5, r6, r7, pc} .align 2, 0 _08051350: .4byte gUnk_02002A40 _08051354: .4byte gUnk_02000080 thumb_func_start sub_08051358 sub_08051358: @ 0x08051358 push {lr} ldr r2, _08051384 @ =gUnk_02000080 movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] movs r1, #3 cmp r0, #0 bne _0805136A movs r1, #4 _0805136A: strb r1, [r2, #0x12] ldrh r1, [r2, #0x10] ldr r0, _08051388 @ =0x0000050B cmp r1, r0 beq _08051382 movs r0, #5 strb r0, [r2, #0x11] movs r0, #0xb strb r0, [r2, #0x10] movs r0, #0x67 bl sub_080A3268 _08051382: pop {pc} .align 2, 0 _08051384: .4byte gUnk_02000080 _08051388: .4byte 0x0000050B thumb_func_start sub_0805138C sub_0805138C: @ 0x0805138C push {lr} ldr r1, _080513A0 @ =gUnk_080FC9B0 ldr r0, _080513A4 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _080513A0: .4byte gUnk_080FC9B0 _080513A4: .4byte gUnk_02000080 thumb_func_start sub_080513A8 sub_080513A8: @ 0x080513A8 push {lr} movs r0, #5 movs r1, #0 bl sub_08050318 ldr r1, _080513BC @ =gUnk_02000080 movs r0, #1 strb r0, [r1, #6] pop {pc} .align 2, 0 _080513BC: .4byte gUnk_02000080 thumb_func_start sub_080513C0 sub_080513C0: @ 0x080513C0 push {lr} movs r0, #0 bl sub_0807CDA4 adds r2, r0, #0 cmp r2, #0 beq _08051412 cmp r2, #0 bgt _080513DC movs r0, #1 rsbs r0, r0, #0 cmp r2, r0 beq _080513F8 b _08051412 _080513DC: cmp r2, #1 bne _08051412 ldr r1, _080513F4 @ =gUnk_02019EE0 adds r0, r1, #0 adds r0, #8 ldrb r1, [r1, #6] adds r0, r0, r1 strb r2, [r0] movs r0, #3 bl sub_080A7114 b _08051412 .align 2, 0 _080513F4: .4byte gUnk_02019EE0 _080513F8: ldr r0, _08051414 @ =gUnk_02019EE0 ldrb r0, [r0, #6] bl sub_0805194C movs r0, #6 movs r1, #0 bl sub_08050318 ldr r1, _08051418 @ =gUnk_02000080 movs r0, #0x1e strh r0, [r1, #8] movs r0, #2 strb r0, [r1, #6] _08051412: pop {pc} .align 2, 0 _08051414: .4byte gUnk_02019EE0 _08051418: .4byte gUnk_02000080 thumb_func_start sub_0805141C sub_0805141C: @ 0x0805141C push {lr} ldr r1, _0805143C @ =gUnk_02000080 ldrh r0, [r1, #8] cmp r0, #0 bne _08051444 ldr r0, _08051440 @ =gUnk_03000FF0 ldrh r1, [r0, #2] movs r0, #9 ands r0, r1 cmp r0, #0 beq _08051448 movs r0, #3 bl sub_080A7114 b _08051448 .align 2, 0 _0805143C: .4byte gUnk_02000080 _08051440: .4byte gUnk_03000FF0 _08051444: subs r0, #1 strh r0, [r1, #8] _08051448: pop {pc} .align 2, 0 thumb_func_start sub_0805144C sub_0805144C: @ 0x0805144C push {lr} movs r0, #0 bl sub_080503BC pop {pc} .align 2, 0 thumb_func_start sub_08051458 sub_08051458: @ 0x08051458 push {lr} ldr r0, _08051474 @ =gUnk_02000080 ldrb r0, [r0, #1] adds r0, #9 bl sub_080503A8 ldr r0, _08051478 @ =gUnk_02001B40 ldr r1, _0805147C @ =gUnk_02022030 movs r2, #0x80 lsls r2, r2, #3 bl sub_0801D66C pop {pc} .align 2, 0 _08051474: .4byte gUnk_02000080 _08051478: .4byte gUnk_02001B40 _0805147C: .4byte gUnk_02022030 thumb_func_start sub_08051480 sub_08051480: @ 0x08051480 push {r4, lr} adds r4, r0, #0 bl sub_080514BC ldr r2, _080514B4 @ =gUnk_02000080 ldrb r1, [r2, #0x13] cmp r0, #0 beq _080514B0 cmp r0, #1 beq _08051498 adds r4, r0, #0 subs r1, #1 _08051498: cmp r1, #5 bls _0805149E movs r1, #5 _0805149E: adds r0, r1, #1 strb r0, [r2, #0x13] ldr r0, _080514B8 @ =gUnk_02002A40 adds r0, #0x80 adds r0, r1, r0 strb r4, [r0] movs r0, #0x6b bl sub_08051574 _080514B0: pop {r4, pc} .align 2, 0 _080514B4: .4byte gUnk_02000080 _080514B8: .4byte gUnk_02002A40 thumb_func_start sub_080514BC sub_080514BC: @ 0x080514BC push {lr} adds r2, r0, #0 movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] cmp r0, #0 bne _080514D6 cmp r2, #0 beq _080514DA cmp r2, #0xf bhi _080514D6 cmp r2, #0xe bhs _080514DA _080514D6: movs r0, #1 b _08051572 _080514DA: ldr r0, _08051500 @ =gUnk_02000080 ldrb r1, [r0, #0x13] cmp r1, #0 beq _08051570 ldr r0, _08051504 @ =gUnk_02002A40 adds r0, r0, r1 adds r0, #0x7f ldrb r1, [r0] adds r0, r1, #0 subs r0, #0xa4 cmp r0, #0x28 bhi _08051522 cmp r2, #0xe beq _0805153C cmp r2, #0xe bhi _08051508 cmp r2, #0 beq _0805150E b _0805153C .align 2, 0 _08051500: .4byte gUnk_02000080 _08051504: .4byte gUnk_02002A40 _08051508: cmp r2, #0xf beq _08051518 b _0805153C _0805150E: cmp r1, #0xc2 bhi _0805151C adds r0, r1, #0 adds r0, #0x33 b _08051572 _08051518: cmp r1, #0xc2 bls _08051570 _0805151C: adds r0, r1, #0 adds r0, #0xa b _08051572 _08051522: adds r0, r1, #0 subs r0, #0xcd cmp r0, #9 bhi _0805154C cmp r2, #0xe beq _08051546 cmp r2, #0xe bhi _08051538 cmp r2, #0 beq _08051540 b _0805154C _08051538: cmp r2, #0xf bne _0805154C _0805153C: adds r0, r1, #0 b _08051572 _08051540: adds r0, r1, #0 adds r0, #0x29 b _08051572 _08051546: adds r0, r1, #0 subs r0, #0xa b _08051572 _0805154C: adds r0, r1, #0 subs r0, #0xd7 cmp r0, #0x28 bhi _08051570 cmp r2, #0xe beq _08051560 cmp r2, #0xe bls _08051560 cmp r2, #0xf beq _08051566 _08051560: adds r0, r1, #0 subs r0, #0x33 b _08051572 _08051566: cmp r1, #0xf5 bls _08051570 adds r0, r1, #0 subs r0, #0x29 b _08051572 _08051570: movs r0, #0 _08051572: pop {pc} thumb_func_start sub_08051574 sub_08051574: @ 0x08051574 push {lr} bl sub_080A3268 ldr r0, _08051594 @ =gUnk_02002A40 ldr r3, _08051598 @ =gUnk_02019EE0 ldrb r1, [r3, #6] ldr r2, _0805159C @ =0x000004B4 muls r1, r2, r1 adds r3, #0xc adds r1, r1, r3 bl sub_0801D66C bl sub_0805070C pop {pc} .align 2, 0 _08051594: .4byte gUnk_02002A40 _08051598: .4byte gUnk_02019EE0 _0805159C: .4byte 0x000004B4 thumb_func_start sub_080515A0 sub_080515A0: @ 0x080515A0 push {lr} ldr r1, _080515BC @ =gUnk_080FC9BC ldr r0, _080515C0 @ =gUnk_02000080 ldrb r0, [r0, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 ldr r0, _080515C4 @ =gUnk_02019EE0 ldrb r0, [r0, #6] bl sub_08050A64 pop {pc} .align 2, 0 _080515BC: .4byte gUnk_080FC9BC _080515C0: .4byte gUnk_02000080 _080515C4: .4byte gUnk_02019EE0 thumb_func_start sub_080515C8 sub_080515C8: @ 0x080515C8 push {lr} movs r0, #1 bl sub_080A7114 pop {pc} .align 2, 0 thumb_func_start sub_080515D4 sub_080515D4: @ 0x080515D4 push {r4, lr} ldr r0, _080515FC @ =gUnk_02019EE0 ldrb r0, [r0] cmp r0, #0 beq _080515E0 b _080516D8 _080515E0: ldr r1, _08051600 @ =gUnk_02000080 movs r0, #4 strh r0, [r1, #8] ldrb r4, [r1, #1] ldr r0, _08051604 @ =gUnk_03000FF0 ldrh r0, [r0, #2] subs r0, #1 cmp r0, #0x1f bhi _080516C8 lsls r0, r0, #2 ldr r1, _08051608 @ =_0805160C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080515FC: .4byte gUnk_02019EE0 _08051600: .4byte gUnk_02000080 _08051604: .4byte gUnk_03000FF0 _08051608: .4byte _0805160C _0805160C: @ jump table .4byte _08051694 @ case 0 .4byte _0805168C @ case 1 .4byte _080516C8 @ case 2 .4byte _080516C8 @ case 3 .4byte _080516C8 @ case 4 .4byte _080516C8 @ case 5 .4byte _080516C8 @ case 6 .4byte _08051694 @ case 7 .4byte _080516C8 @ case 8 .4byte _080516C8 @ case 9 .4byte _080516C8 @ case 10 .4byte _080516C8 @ case 11 .4byte _080516C8 @ case 12 .4byte _080516C8 @ case 13 .4byte _080516C8 @ case 14 .4byte _080516C6 @ case 15 .4byte _080516C8 @ case 16 .4byte _080516C8 @ case 17 .4byte _080516C8 @ case 18 .4byte _080516C8 @ case 19 .4byte _080516C8 @ case 20 .4byte _080516C8 @ case 21 .4byte _080516C8 @ case 22 .4byte _080516C8 @ case 23 .4byte _080516C8 @ case 24 .4byte _080516C8 @ case 25 .4byte _080516C8 @ case 26 .4byte _080516C8 @ case 27 .4byte _080516C8 @ case 28 .4byte _080516C8 @ case 29 .4byte _080516C8 @ case 30 .4byte _080516C2 @ case 31 _0805168C: ldr r1, _080516B0 @ =gUnk_02000080 movs r0, #0 strb r0, [r1, #1] movs r4, #0 _08051694: cmp r4, #1 bne _080516B4 movs r0, #4 movs r1, #0 bl sub_08050318 movs r0, #2 bl sub_080A7114 movs r0, #0x6a bl sub_080A3268 b _080516C8 .align 2, 0 _080516B0: .4byte gUnk_02000080 _080516B4: movs r0, #0 bl sub_080503BC movs r0, #0x6c bl sub_080A3268 b _080516C8 _080516C2: movs r4, #0 b _080516C8 _080516C6: movs r4, #1 _080516C8: ldr r1, _080516DC @ =gUnk_02000080 ldrb r0, [r1, #1] cmp r0, r4 beq _080516D8 strb r4, [r1, #1] movs r0, #0x69 bl sub_080A3268 _080516D8: pop {r4, pc} .align 2, 0 _080516DC: .4byte gUnk_02000080 thumb_func_start sub_080516E0 sub_080516E0: @ 0x080516E0 push {r4, lr} movs r0, #1 bl sub_0807CDA4 cmp r0, #0 beq _08051706 ldr r4, _08051708 @ =gUnk_02019EE0 ldrb r0, [r4, #6] bl sub_0805194C ldrb r0, [r4, #6] bl sub_08050AFC ldr r1, _0805170C @ =gUnk_02000080 movs r0, #2 strh r0, [r1, #8] movs r0, #0 bl sub_080503BC _08051706: pop {r4, pc} .align 2, 0 _08051708: .4byte gUnk_02019EE0 _0805170C: .4byte gUnk_02000080 thumb_func_start sub_08051710 sub_08051710: @ 0x08051710 push {lr} ldr r1, _0805172C @ =gUnk_080FC9C8 ldr r0, _08051730 @ =gUnk_02000080 ldrb r0, [r0, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 ldr r0, _08051734 @ =gUnk_02019EE0 ldrb r0, [r0, #6] bl sub_08050A64 pop {pc} .align 2, 0 _0805172C: .4byte gUnk_080FC9C8 _08051730: .4byte gUnk_02000080 _08051734: .4byte gUnk_02019EE0 thumb_func_start sub_08051738 sub_08051738: @ 0x08051738 push {r4, r5, r6, r7, lr} ldr r1, _08051768 @ =gUnk_02019EE0 movs r0, #4 strb r0, [r1, #7] movs r4, #0 movs r3, #0 adds r5, r1, #0 adds r7, r5, #0 adds r7, #8 ldr r6, _0805176C @ =gUnk_02000090 _0805174C: adds r0, r3, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08051770 ldrb r1, [r5, #6] movs r2, #4 eors r1, r3 rsbs r0, r1, #0 orrs r0, r1 asrs r0, r0, #0x1f ands r2, r0 b _08051774 .align 2, 0 _08051768: .4byte gUnk_02019EE0 _0805176C: .4byte gUnk_02000090 _08051770: adds r4, #1 adds r2, r4, #0 _08051774: adds r0, r3, r6 strb r2, [r0] adds r3, #1 cmp r3, #2 bls _0805174C cmp r4, #0 bne _0805179C ldr r1, _08051798 @ =gUnk_02000080 movs r0, #0x3c strh r0, [r1, #8] movs r0, #1 movs r1, #0 bl sub_08050318 movs r0, #3 bl sub_080A7114 b _080517A2 .align 2, 0 _08051798: .4byte gUnk_02000080 _0805179C: movs r0, #1 bl sub_080A7114 _080517A2: adds r4, #1 ldr r0, _080517B0 @ =gUnk_02000080 strb r4, [r0, #0x16] movs r1, #4 strb r1, [r0, #0x13] strb r4, [r0, #0x14] pop {r4, r5, r6, r7, pc} .align 2, 0 _080517B0: .4byte gUnk_02000080 thumb_func_start sub_080517B4 sub_080517B4: @ 0x080517B4 push {r4, lr} adds r2, r0, #0 ldr r0, _080517E4 @ =gUnk_02019EE0 ldrb r1, [r0, #7] adds r4, r0, #0 cmp r2, #0 beq _080517DE adds r1, r1, r2 cmp r1, #4 bhi _080517DC ldr r3, _080517E8 @ =gUnk_02000090 _080517CA: adds r0, r1, r3 ldrb r0, [r0] cmp r0, #0 beq _080517D6 cmp r0, #4 bne _080517DE _080517D6: adds r1, r1, r2 cmp r1, #4 bls _080517CA _080517DC: ldrb r1, [r4, #7] _080517DE: adds r0, r1, #0 pop {r4, pc} .align 2, 0 _080517E4: .4byte gUnk_02019EE0 _080517E8: .4byte gUnk_02000090 thumb_func_start sub_080517EC sub_080517EC: @ 0x080517EC push {r4, lr} ldr r0, _08051810 @ =gUnk_02019EE0 ldrb r1, [r0] adds r2, r0, #0 cmp r1, #0 bne _0805186E movs r4, #0 ldr r0, _08051814 @ =gUnk_03000FF0 ldrh r0, [r0, #2] cmp r0, #8 beq _0805182C cmp r0, #8 bgt _08051818 cmp r0, #1 beq _0805182C cmp r0, #2 beq _08051848 b _08051858 .align 2, 0 _08051810: .4byte gUnk_02019EE0 _08051814: .4byte gUnk_03000FF0 _08051818: cmp r0, #0x40 beq _08051822 cmp r0, #0x80 beq _08051828 b _08051858 _08051822: movs r4, #1 rsbs r4, r4, #0 b _08051858 _08051828: movs r4, #1 b _08051858 _0805182C: ldrb r0, [r2, #7] cmp r0, #2 bhi _08051848 movs r0, #2 movs r1, #0 bl sub_08050318 movs r0, #2 bl sub_080A7114 movs r0, #0x6a bl sub_080A3268 b _08051858 _08051848: movs r0, #4 strb r0, [r2, #7] movs r0, #0x6c bl sub_080A3268 movs r0, #0 bl sub_080503BC _08051858: adds r0, r4, #0 bl sub_080517B4 ldr r1, _08051870 @ =gUnk_02019EE0 ldrb r2, [r1, #7] cmp r0, r2 beq _0805186E strb r0, [r1, #7] movs r0, #0x69 bl sub_080A3268 _0805186E: pop {r4, pc} .align 2, 0 _08051870: .4byte gUnk_02019EE0 thumb_func_start sub_08051874 sub_08051874: @ 0x08051874 push {r4, lr} movs r1, #0x80 lsls r1, r1, #0x12 ldr r4, _080518B8 @ =gUnk_02019EE0 ldrb r0, [r4, #7] strb r0, [r1, #4] movs r0, #0 bl sub_0807CDA4 adds r1, r0, #0 adds r0, r4, #0 adds r0, #8 ldrb r2, [r4, #7] adds r0, r0, r2 strb r1, [r0] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 beq _080518C4 cmp r1, #1 bne _080518DE ldr r0, _080518BC @ =gUnk_02002A40 ldrb r1, [r4, #7] ldr r2, _080518C0 @ =0x000004B4 muls r1, r2, r1 adds r3, r4, #0 adds r3, #0xc adds r1, r1, r3 bl sub_0801D66C movs r0, #0 bl sub_080503BC b _080518DE .align 2, 0 _080518B8: .4byte gUnk_02019EE0 _080518BC: .4byte gUnk_02002A40 _080518C0: .4byte 0x000004B4 _080518C4: ldrb r0, [r4, #7] bl sub_0805194C movs r0, #3 movs r1, #0 bl sub_08050318 ldr r1, _080518E0 @ =gUnk_02000080 movs r0, #0x1e strh r0, [r1, #8] movs r0, #3 bl sub_080A7114 _080518DE: pop {r4, pc} .align 2, 0 _080518E0: .4byte gUnk_02000080 thumb_func_start sub_080518E4 sub_080518E4: @ 0x080518E4 push {lr} ldr r1, _08051904 @ =gUnk_02000080 ldrh r0, [r1, #8] cmp r0, #0 bne _0805190C ldr r0, _08051908 @ =gUnk_03000FF0 ldrh r1, [r0, #2] movs r0, #9 ands r0, r1 cmp r0, #0 beq _08051910 movs r0, #0 bl sub_080503BC b _08051910 .align 2, 0 _08051904: .4byte gUnk_02000080 _08051908: .4byte gUnk_03000FF0 _0805190C: subs r0, #1 strh r0, [r1, #8] _08051910: pop {pc} .align 2, 0 thumb_func_start sub_08051914 sub_08051914: @ 0x08051914 push {lr} ldr r1, _08051940 @ =gUnk_02000080 ldrb r0, [r1, #5] cmp r0, #0 bne _0805193E movs r0, #1 strb r0, [r1, #5] movs r2, #0x80 lsls r2, r2, #0x12 ldr r1, _08051944 @ =gUnk_02002A40 ldrb r0, [r1, #2] strb r0, [r2, #5] ldrb r0, [r1, #3] strb r0, [r2, #6] ldr r1, _08051948 @ =gUnk_03001000 movs r0, #2 strb r0, [r1, #3] movs r0, #5 movs r1, #8 bl sub_08050054 _0805193E: pop {pc} .align 2, 0 _08051940: .4byte gUnk_02000080 _08051944: .4byte gUnk_02002A40 _08051948: .4byte gUnk_03001000 thumb_func_start sub_0805194C sub_0805194C: @ 0x0805194C push {r4, lr} ldr r3, _08051980 @ =gUnk_02019EE0 adds r1, r3, #0 adds r1, #8 adds r1, r0, r1 movs r2, #0 strb r2, [r1] ldr r1, _08051984 @ =0x000004B4 adds r4, r0, #0 muls r4, r1, r4 adds r3, #0xc adds r4, r4, r3 adds r0, r4, #0 bl sub_0801D630 movs r0, #1 strb r0, [r4, #2] strb r0, [r4, #3] adds r1, r4, #0 adds r1, #0xaa movs r0, #0x18 strb r0, [r1] adds r4, #0xab strb r0, [r4] pop {r4, pc} .align 2, 0 _08051980: .4byte gUnk_02019EE0 _08051984: .4byte 0x000004B4 thumb_func_start sub_08051988 sub_08051988: @ 0x08051988 push {lr} ldr r1, _080519A4 @ =gUnk_030010A0 ldr r0, [r1] adds r0, #1 str r0, [r1] ldr r1, _080519A8 @ =gUnk_080FC9D8 ldr r0, _080519AC @ =gUnk_03001000 ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _080519A4: .4byte gUnk_030010A0 _080519A8: .4byte gUnk_080FC9D8 _080519AC: .4byte gUnk_03001000 thumb_func_start sub_080519B0 sub_080519B0: @ 0x080519B0 push {r4, r5, lr} ldr r0, _08051A04 @ =gUnk_03000FD0 ldrb r5, [r0] cmp r5, #0 bne _08051A02 movs r0, #1 bl sub_0801DA90 bl sub_080A3210 bl sub_0801DA7C bl sub_080A7124 bl sub_0807059C ldr r4, _08051A08 @ =gUnk_030010A0 adds r0, r4, #0 movs r1, #0xb0 bl sub_0801D630 bl sub_08049CD4 bl sub_080300AC bl sub_0807CA18 ldr r0, _08051A0C @ =gUnk_02002AC8 adds r1, r4, #0 adds r1, #0xc movs r2, #0x20 bl sub_0801D66C movs r0, #4 strb r0, [r4, #9] bl sub_08053518 ldr r1, _08051A10 @ =gUnk_03001000 movs r0, #1 strb r0, [r1, #3] strb r5, [r1, #4] _08051A02: pop {r4, r5, pc} .align 2, 0 _08051A04: .4byte gUnk_03000FD0 _08051A08: .4byte gUnk_030010A0 _08051A0C: .4byte gUnk_02002AC8 _08051A10: .4byte gUnk_03001000 thumb_func_start sub_08051A14 sub_08051A14: @ 0x08051A14 push {lr} movs r0, #1 bl sub_0801DA90 ldr r1, _08051A70 @ =gUnk_03000FD0 movs r0, #1 rsbs r0, r0, #0 str r0, [r1, #4] ldr r0, _08051A74 @ =gUnk_03000000 ldr r1, _08051A78 @ =0x00000B74 bl sub_0801D630 ldr r0, _08051A7C @ =gUnk_02032EC0 movs r1, #0xed lsls r1, r1, #2 bl sub_0801D630 bl sub_0805E60C bl sub_080197AC bl sub_08080668 bl sub_080ADD30 movs r0, #1 bl sub_0801CFA8 bl sub_0806FD8C ldr r2, _08051A80 @ =gUnk_03000BF0 ldr r1, _08051A84 @ =gUnk_030010A0 ldrb r0, [r1, #0xc] strb r0, [r2, #4] ldrb r0, [r1, #0xd] strb r0, [r2, #5] bl sub_08053320 ldr r1, _08051A88 @ =gUnk_02024490 movs r0, #1 strb r0, [r1] ldr r1, _08051A8C @ =gUnk_03001000 movs r0, #2 strb r0, [r1, #3] pop {pc} .align 2, 0 _08051A70: .4byte gUnk_03000FD0 _08051A74: .4byte gUnk_03000000 _08051A78: .4byte 0x00000B74 _08051A7C: .4byte gUnk_02032EC0 _08051A80: .4byte gUnk_03000BF0 _08051A84: .4byte gUnk_030010A0 _08051A88: .4byte gUnk_02024490 _08051A8C: .4byte gUnk_03001000 thumb_func_start sub_08051A90 sub_08051A90: @ 0x08051A90 push {lr} ldr r1, _08051AA4 @ =gUnk_080FC9E8 ldr r0, _08051AA8 @ =gUnk_03001000 ldrb r0, [r0, #4] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08051AA4: .4byte gUnk_080FC9E8 _08051AA8: .4byte gUnk_03001000 thumb_func_start sub_08051AAC sub_08051AAC: @ 0x08051AAC push {lr} bl sub_0805E5A8 ldr r1, _08051AE4 @ =gUnk_03000F50 movs r2, #0 movs r0, #0xba lsls r0, r0, #5 strh r0, [r1] ldr r1, _08051AE8 @ =gUnk_03001000 movs r0, #1 strb r0, [r1, #4] ldr r0, _08051AEC @ =gUnk_030010A0 strb r2, [r0, #8] strb r2, [r0, #4] strb r2, [r0, #5] bl sub_08056418 bl sub_08052CFC movs r0, #0 bl sub_0801C370 bl sub_08051D40 bl sub_0801855C pop {pc} .align 2, 0 _08051AE4: .4byte gUnk_03000F50 _08051AE8: .4byte gUnk_03001000 _08051AEC: .4byte gUnk_030010A0 thumb_func_start sub_08051AF0 sub_08051AF0: @ 0x08051AF0 push {r4, r5, lr} bl sub_0805E5C0 bl sub_0805BBBC cmp r0, #0 bne _08051B02 bl sub_0807FC40 _08051B02: bl sub_0801B060 bl sub_08000108 bl sub_0801C344 bl sub_0805E5F8 bl sub_080AD90C bl sub_0801C208 bl sub_08078CB4 bl sub_080AD9B0 bl sub_080AD918 ldr r0, _08051BB0 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08051BAE ldr r0, _08051BB4 @ =gUnk_03000BF0 ldrh r0, [r0] cmp r0, #0 bne _08051BAE bl sub_08052F1C ldr r5, _08051BB8 @ =gUnk_02033A90 movs r0, #0x86 lsls r0, r0, #4 adds r3, r5, r0 ldr r1, _08051BBC @ =0x00000864 adds r0, r5, r1 ldr r1, [r3] ldr r2, [r0] cmp r1, r2 beq _08051B5A str r2, [r3] ldr r0, _08051BC0 @ =0x800B0000 orrs r2, r0 adds r0, r2, #0 bl sub_080A3268 _08051B5A: bl sub_0805E9F4 bl sub_0805BC04 adds r4, r0, #0 cmp r4, #0 bne _08051BAE bl sub_08052C5C bl sub_0805E5B4 bl sub_08051E04 bl sub_080300C4 ldr r1, _08051BC4 @ =gUnk_03001000 movs r0, #2 strb r0, [r1, #4] movs r0, #0 bl sub_08078A90 ldr r0, _08051BC8 @ =gUnk_02034490 strb r4, [r0] adds r0, r5, #0 adds r0, #0x28 ldrb r0, [r0] cmp r0, #0xff beq _08051B96 bl sub_0801855C _08051B96: bl sub_08052BF8 bl sub_08053178 ldr r0, _08051BCC @ =gUnk_02034350 ldrb r0, [r0] cmp r0, #0 bne _08051BAE movs r0, #0 movs r1, #1 bl sub_0805E4E0 _08051BAE: pop {r4, r5, pc} .align 2, 0 _08051BB0: .4byte gUnk_03000FD0 _08051BB4: .4byte gUnk_03000BF0 _08051BB8: .4byte gUnk_02033A90 _08051BBC: .4byte 0x00000864 _08051BC0: .4byte 0x800B0000 _08051BC4: .4byte gUnk_03001000 _08051BC8: .4byte gUnk_02034490 _08051BCC: .4byte gUnk_02034350 thumb_func_start sub_08051BD0 sub_08051BD0: @ 0x08051BD0 push {lr} bl sub_080705AC cmp r0, #0 bne _08051C9C bl sub_0804AA84 cmp r0, #0 bne _08051C9C bl sub_0805340C ldr r0, _08051C5C @ =gUnk_03001000 ldrb r0, [r0, #4] cmp r0, #2 bne _08051C9C ldr r0, _08051C60 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08051C02 ldr r0, _08051C64 @ =gUnk_03003DC0 ldrh r0, [r0, #8] cmp r0, #0 beq _08051C06 _08051C02: bl sub_08078B48 _08051C06: bl sub_080AD90C bl sub_0805E5C0 bl sub_08080A40 bl sub_080175F4 bl sub_0807FC40 bl sub_0801B060 bl sub_08000108 bl sub_08052C3C bl sub_0801C344 bl sub_0805E5F8 bl sub_0801C208 bl sub_08078CB4 bl sub_080AD9B0 bl sub_0805291C bl sub_08052C5C bl sub_080528B4 bl sub_080185F8 bl sub_080AD918 ldr r0, _08051C68 @ =gUnk_03000BF0 ldrh r2, [r0] cmp r2, #1 beq _08051C6C cmp r2, #2 beq _08051C88 b _08051C9C .align 2, 0 _08051C5C: .4byte gUnk_03001000 _08051C60: .4byte gUnk_02000050 _08051C64: .4byte gUnk_03003DC0 _08051C68: .4byte gUnk_03000BF0 _08051C6C: ldr r0, _08051C80 @ =gUnk_03003F80 movs r1, #0x17 strb r1, [r0, #0xc] ldr r0, _08051C84 @ =gUnk_03001000 strb r2, [r0, #4] bl sub_0805E59C bl sub_08051D98 b _08051C9C .align 2, 0 _08051C80: .4byte gUnk_03003F80 _08051C84: .4byte gUnk_03001000 _08051C88: ldr r1, _08051CA0 @ =gUnk_03003F80 movs r0, #0x17 strb r0, [r1, #0xc] ldr r1, _08051CA4 @ =gUnk_03001000 movs r0, #1 strb r0, [r1, #4] bl sub_0805E59C bl sub_08051DCC _08051C9C: pop {pc} .align 2, 0 _08051CA0: .4byte gUnk_03003F80 _08051CA4: .4byte gUnk_03001000 thumb_func_start sub_08051CA8 sub_08051CA8: @ 0x08051CA8 push {lr} bl sub_080705AC cmp r0, #0 bne _08051CEA bl sub_0805E5C0 bl sub_080175F4 bl sub_0801C344 bl sub_0805E5F8 bl sub_080AD90C bl sub_0801C208 bl sub_08078CB4 bl sub_080AD9B0 bl sub_0805291C bl sub_080528B4 bl sub_080AD918 ldr r0, _08051CEC @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08051CEA bl sub_0805E5B4 _08051CEA: pop {pc} .align 2, 0 _08051CEC: .4byte gUnk_03000FD0 thumb_func_start sub_08051CF0 sub_08051CF0: @ 0x08051CF0 push {r4, r5, r6, lr} bl sub_080AD90C bl sub_0801C208 bl sub_080AD9B0 ldr r5, _08051D20 @ =gUnk_03001000 movs r6, #1 strb r6, [r5, #0xb] bl sub_080AD918 ldr r0, _08051D24 @ =gUnk_03000FD0 ldrb r4, [r0] cmp r4, #0 bne _08051D1E movs r0, #1 bl sub_0801DA90 strb r6, [r5, #3] strb r4, [r5, #4] ldr r0, _08051D28 @ =gUnk_030010A0 strb r6, [r0, #8] _08051D1E: pop {r4, r5, r6, pc} .align 2, 0 _08051D20: .4byte gUnk_03001000 _08051D24: .4byte gUnk_03000FD0 _08051D28: .4byte gUnk_030010A0 thumb_func_start sub_08051D2C sub_08051D2C: @ 0x08051D2C push {lr} movs r0, #7 movs r1, #8 bl sub_08050054 movs r0, #3 bl sub_08056010 pop {pc} .align 2, 0 thumb_func_start sub_08051D40 sub_08051D40: @ 0x08051D40 push {lr} bl sub_08052EA0 bl sub_0804AF90 bl sub_0804AFDC bl sub_080524A8 ldr r1, _08051D90 @ =gUnk_03004030 movs r0, #0 str r0, [r1] bl sub_0807C740 ldr r1, _08051D94 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] bl sub_0805283C movs r0, #0 movs r1, #0 bl sub_0801D79C bl sub_0804B01C bl sub_080609AC bl sub_0804AFF4 bl sub_0805329C bl sub_08000108 movs r0, #1 rsbs r0, r0, #0 bl sub_0805BB74 bl sub_080531F8 pop {pc} .align 2, 0 _08051D90: .4byte gUnk_03004030 _08051D94: .4byte gUnk_02000070 thumb_func_start sub_08051D98 sub_08051D98: @ 0x08051D98 push {lr} bl sub_08052EA0 ldr r1, _08051DC8 @ =gUnk_02034350 movs r0, #1 strb r0, [r1] bl sub_0805E9A8 bl sub_0804AF90 bl sub_0804AFDC bl sub_0807C0DC bl sub_0805283C bl sub_0804B01C bl sub_0804AFF4 movs r0, #1 bl sub_08078A90 pop {pc} .align 2, 0 _08051DC8: .4byte gUnk_02034350 thumb_func_start sub_08051DCC sub_08051DCC: @ 0x08051DCC push {r4, lr} ldr r1, _08051DFC @ =gUnk_03000BF0 ldr r4, _08051E00 @ =gUnk_030010A0 ldrb r0, [r4, #0xc] strb r0, [r1, #4] ldrb r0, [r4, #0xd] strb r0, [r1, #5] bl sub_080528F0 movs r0, #3 strb r0, [r4, #9] bl sub_08052CFC bl sub_08052EA0 bl sub_0805E9A8 bl sub_0804AF90 bl sub_0804AFDC bl sub_0805283C pop {r4, pc} .align 2, 0 _08051DFC: .4byte gUnk_03000BF0 _08051E00: .4byte gUnk_030010A0 thumb_func_start sub_08051E04 sub_08051E04: @ 0x08051E04 push {lr} bl sub_08052620 cmp r0, #0 beq _08051E60 ldr r1, _08051E2C @ =gUnk_03001160 movs r2, #0x2e ldrsh r0, [r1, r2] cmp r0, #0 bge _08051E1A adds r0, #0xf _08051E1A: asrs r2, r0, #4 movs r3, #0x32 ldrsh r0, [r1, r3] cmp r0, #0 bge _08051E26 adds r0, #0xf _08051E26: asrs r1, r0, #4 ldr r3, _08051E30 @ =gUnk_08127F94 b _08051E36 .align 2, 0 _08051E2C: .4byte gUnk_03001160 _08051E30: .4byte gUnk_08127F94 _08051E34: adds r3, #8 _08051E36: ldrb r0, [r3] cmp r0, #0xff beq _08051E60 cmp r0, r2 bhi _08051E34 ldrb r0, [r3, #2] cmp r0, r2 blo _08051E34 ldrb r0, [r3, #1] cmp r0, r1 bhi _08051E34 ldrb r0, [r3, #3] cmp r0, r1 blo _08051E34 ldr r2, _08051E64 @ =gUnk_02002A40 movs r1, #1 ldrb r3, [r3, #4] lsls r1, r3 ldr r0, [r2, #0x40] orrs r0, r1 str r0, [r2, #0x40] _08051E60: pop {pc} .align 2, 0 _08051E64: .4byte gUnk_02002A40 thumb_func_start sub_08051E68 sub_08051E68: @ 0x08051E68 push {lr} ldr r1, _08051E7C @ =gUnk_080FCA08 ldr r0, _08051E80 @ =gUnk_02000080 ldrb r0, [r0, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08051E7C: .4byte gUnk_080FCA08 _08051E80: .4byte gUnk_02000080 thumb_func_start sub_08051E84 sub_08051E84: @ 0x08051E84 push {r4, r5, r6, lr} ldr r0, _08051EF0 @ =gUnk_02032EC0 ldrb r4, [r0, #3] lsls r4, r4, #3 ldr r0, _08051EF4 @ =gUnk_080FCA20 adds r4, r4, r0 ldr r5, _08051EF8 @ =gUnk_03000BF0 ldrb r0, [r4] strb r0, [r5, #4] ldrb r0, [r4, #1] strb r0, [r5, #5] bl sub_08053320 ldrb r0, [r5, #4] bl sub_08052D58 ldr r1, _08051EFC @ =gUnk_02033A90 movs r6, #0 strh r0, [r1, #4] ldrb r0, [r4] ldrb r1, [r4, #1] bl sub_0804B0C0 ldrb r0, [r4] ldrb r1, [r4, #1] bl sub_08052FD8 ldrh r0, [r4, #4] ldrh r1, [r5, #6] adds r0, r0, r1 strh r0, [r5, #0xa] ldrh r0, [r4, #6] ldrh r1, [r5, #8] adds r0, r0, r1 strh r0, [r5, #0xc] ldr r1, _08051F00 @ =gUnk_02000080 ldrb r0, [r4, #2] strb r0, [r1] ldrb r2, [r4, #3] movs r0, #0xf ands r0, r2 strb r0, [r1, #3] str r4, [r1, #0xc] ldrb r0, [r1, #5] adds r0, #1 strb r0, [r1, #5] strb r6, [r1, #6] movs r0, #0x96 lsls r0, r0, #1 strh r0, [r1, #8] bl sub_08051F04 pop {r4, r5, r6, pc} .align 2, 0 _08051EF0: .4byte gUnk_02032EC0 _08051EF4: .4byte gUnk_080FCA20 _08051EF8: .4byte gUnk_03000BF0 _08051EFC: .4byte gUnk_02033A90 _08051F00: .4byte gUnk_02000080 thumb_func_start sub_08051F04 sub_08051F04: @ 0x08051F04 push {lr} ldr r1, _08051F38 @ =gUnk_080FCA14 ldr r0, _08051F3C @ =gUnk_02000080 ldrb r0, [r0] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 bl sub_080AD90C bl sub_0805E5C0 bl sub_080AD9B0 bl sub_080AD918 bl sub_0807FC40 bl sub_0801B060 bl sub_0805E5F8 bl sub_08000108 pop {pc} .align 2, 0 _08051F38: .4byte gUnk_080FCA14 _08051F3C: .4byte gUnk_02000080 thumb_func_start sub_08051F40 sub_08051F40: @ 0x08051F40 push {lr} ldr r0, _08051F60 @ =gUnk_080FCA20 ldr r2, _08051F64 @ =gUnk_02032EC0 ldrb r1, [r2, #3] lsls r1, r1, #3 adds r1, r1, r0 ldrb r1, [r1, #3] movs r0, #0xf0 ands r0, r1 cmp r0, #0 beq _08051F68 lsrs r1, r1, #4 movs r0, #2 bl sub_080A7138 b _08051F76 .align 2, 0 _08051F60: .4byte gUnk_080FCA20 _08051F64: .4byte gUnk_02032EC0 _08051F68: movs r0, #3 strb r0, [r2] movs r0, #0x10 bl sub_080500F4 bl sub_08056418 _08051F76: pop {pc} thumb_func_start sub_08051F78 sub_08051F78: @ 0x08051F78 push {lr} ldr r0, _08051F94 @ =gUnk_02032EC0 ldrb r3, [r0, #3] lsls r3, r3, #3 ldr r0, _08051F98 @ =gUnk_080FCA20 adds r3, r3, r0 ldrb r0, [r3] ldrb r1, [r3, #1] ldrh r2, [r3, #4] ldrh r3, [r3, #6] bl sub_08051F9C pop {pc} .align 2, 0 _08051F94: .4byte gUnk_02032EC0 _08051F98: .4byte gUnk_080FCA20 thumb_func_start sub_08051F9C sub_08051F9C: @ 0x08051F9C push {r4, r5, r6, lr} mov r6, r8 push {r6} adds r6, r2, #0 mov r8, r3 ldr r5, _08051FE0 @ =gUnk_03000F50 ldrh r2, [r5] movs r4, #0xc0 lsls r4, r4, #7 ands r4, r2 bl sub_08052FF4 ldr r1, _08051FE4 @ =gUnk_03000BF0 ldrh r0, [r1, #6] adds r0, r0, r6 movs r6, #0 strh r0, [r1, #0xa] ldrh r0, [r1, #8] add r0, r8 strh r0, [r1, #0xc] bl sub_0807C740 ldr r1, _08051FE8 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] ldr r0, _08051FEC @ =gUnk_0200B644 str r6, [r0] ldrh r0, [r5] orrs r4, r0 strh r4, [r5] pop {r3} mov r8, r3 pop {r4, r5, r6, pc} .align 2, 0 _08051FE0: .4byte gUnk_03000F50 _08051FE4: .4byte gUnk_03000BF0 _08051FE8: .4byte gUnk_02000070 _08051FEC: .4byte gUnk_0200B644 thumb_func_start sub_08051FF0 sub_08051FF0: @ 0x08051FF0 push {lr} ldr r0, _08052000 @ =gUnk_02000080 ldr r1, [r0, #0xc] ldrb r0, [r1] ldrb r1, [r1, #1] bl sub_0804B0B0 pop {pc} .align 2, 0 _08052000: .4byte gUnk_02000080 thumb_func_start sub_08052004 sub_08052004: @ 0x08052004 ldr r1, _0805200C @ =gUnk_02000080 movs r0, #2 strb r0, [r1, #5] bx lr .align 2, 0 _0805200C: .4byte gUnk_02000080 thumb_func_start sub_08052010 sub_08052010: @ 0x08052010 push {r4, lr} bl sub_080A3210 bl sub_08056418 movs r0, #1 bl sub_0801DA90 ldr r0, _0805207C @ =gUnk_02021F30 movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 bl sub_0801D630 ldr r0, _08052080 @ =gUnk_020344B0 adds r1, r4, #0 bl sub_0801D630 bl sub_080A4D34 movs r0, #0xa bl sub_0801D714 movs r0, #0 movs r1, #0 bl sub_0801D79C movs r0, #4 bl sub_0801D7EC movs r0, #0xc0 lsls r0, r0, #0x13 movs r1, #0x20 bl sub_0801D630 ldr r0, _08052084 @ =gUnk_02000080 movs r1, #0x30 bl sub_0801D630 ldr r1, _08052088 @ =gUnk_03000F50 ldrh r2, [r1] movs r3, #0x80 lsls r3, r3, #5 adds r0, r3, #0 orrs r0, r2 strh r0, [r1] ldr r0, _0805208C @ =0x00001C01 strh r0, [r1, #0x14] ldr r0, _08052090 @ =0x00001D05 strh r0, [r1, #0x20] movs r0, #1 strh r0, [r1, #0x1a] strh r0, [r1, #0x26] pop {r4, pc} .align 2, 0 _0805207C: .4byte gUnk_02021F30 _08052080: .4byte gUnk_020344B0 _08052084: .4byte gUnk_02000080 _08052088: .4byte gUnk_03000F50 _0805208C: .4byte 0x00001C01 _08052090: .4byte 0x00001D05 thumb_func_start sub_08052094 sub_08052094: @ 0x08052094 push {r4, lr} ldr r1, _080520BC @ =gUnk_080FCA70 ldr r4, _080520C0 @ =gUnk_03001000 ldrb r0, [r4, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 ldrb r0, [r4, #3] cmp r0, #0 beq _080520B8 bl sub_080AD90C bl sub_080523D4 bl sub_080AD918 _080520B8: pop {r4, pc} .align 2, 0 _080520BC: .4byte gUnk_080FCA70 _080520C0: .4byte gUnk_03001000 thumb_func_start sub_080520C4 sub_080520C4: @ 0x080520C4 push {lr} ldr r1, _080520D4 @ =gUnk_03001000 strb r0, [r1, #3] movs r0, #0 bl sub_080A7114 pop {pc} .align 2, 0 _080520D4: .4byte gUnk_03001000 thumb_func_start sub_080520D8 sub_080520D8: @ 0x080520D8 push {r4, lr} ldr r4, _08052118 @ =gUnk_03000FD0 ldrb r0, [r4] cmp r0, #0 bne _08052114 bl sub_08052010 ldr r1, _0805211C @ =gUnk_02000080 movs r0, #0x50 strb r0, [r1, #0x10] movs r2, #0x3c movs r0, #0x3c strh r0, [r1, #8] ldr r0, _08052120 @ =gUnk_02002A40 adds r0, #0xaa movs r1, #0x18 strb r1, [r0] ldr r0, _08052124 @ =gUnk_03001000 strb r2, [r0, #5] movs r0, #0xa bl sub_080A3268 movs r0, #4 bl sub_080500F4 ldr r0, _08052128 @ =0xFFFF0001 str r0, [r4, #4] movs r0, #1 bl sub_080520C4 _08052114: pop {r4, pc} .align 2, 0 _08052118: .4byte gUnk_03000FD0 _0805211C: .4byte gUnk_02000080 _08052120: .4byte gUnk_02002A40 _08052124: .4byte gUnk_03001000 _08052128: .4byte 0xFFFF0001 thumb_func_start sub_0805212C sub_0805212C: @ 0x0805212C push {r4, lr} ldr r4, _0805214C @ =gUnk_03000FD0 ldrb r0, [r4] cmp r0, #0 bne _0805219C ldr r1, _08052150 @ =gUnk_03001000 ldrb r0, [r1, #5] cmp r0, #0 bne _08052198 ldr r1, _08052154 @ =gUnk_02000080 ldrb r0, [r1, #0x10] cmp r0, #0x25 bls _08052158 subs r0, #1 strb r0, [r1, #0x10] b _0805219C .align 2, 0 _0805214C: .4byte gUnk_03000FD0 _08052150: .4byte gUnk_03001000 _08052154: .4byte gUnk_02000080 _08052158: ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _0805219C movs r0, #2 bl sub_080520C4 movs r0, #0 movs r1, #0 bl sub_08052418 ldr r2, _08052190 @ =gUnk_03000F50 ldrh r0, [r2] movs r3, #0xc0 lsls r3, r3, #3 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r0, _08052194 @ =0x0000FFFF str r0, [r4, #4] movs r0, #4 movs r1, #0x10 bl sub_08050054 b _0805219C .align 2, 0 _08052190: .4byte gUnk_03000F50 _08052194: .4byte 0x0000FFFF _08052198: subs r0, #1 strb r0, [r1, #5] _0805219C: pop {r4, pc} .align 2, 0 thumb_func_start sub_080521A0 sub_080521A0: @ 0x080521A0 push {r4, lr} ldr r0, _080521C4 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 beq _080521AC b _080522E8 _080521AC: ldr r0, _080521C8 @ =gUnk_02000080 ldrb r1, [r0, #5] adds r2, r0, #0 cmp r1, #4 bls _080521B8 b _080522D4 _080521B8: lsls r0, r1, #2 ldr r1, _080521CC @ =_080521D0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080521C4: .4byte gUnk_03000FD0 _080521C8: .4byte gUnk_02000080 _080521CC: .4byte _080521D0 _080521D0: @ jump table .4byte _080521E4 @ case 0 .4byte _08052208 @ case 1 .4byte _08052278 @ case 2 .4byte _080522B0 @ case 3 .4byte _080522D4 @ case 4 _080521E4: movs r1, #0 movs r0, #0x1e strh r0, [r2, #8] strb r1, [r2, #3] movs r0, #1 bl sub_080A7114 movs r0, #0 movs r1, #0 bl sub_08052418 ldr r1, _08052204 @ =gUnk_03000FD0 movs r0, #1 rsbs r0, r0, #0 str r0, [r1, #4] b _080522E8 .align 2, 0 _08052204: .4byte gUnk_03000FD0 _08052208: ldrh r0, [r2, #8] cmp r0, #0 bne _080522B6 ldrb r4, [r2, #3] ldr r0, _08052224 @ =gUnk_03000FF0 ldrh r0, [r0, #2] cmp r0, #0x40 beq _0805222E cmp r0, #0x40 bgt _08052228 cmp r0, #1 beq _08052236 b _0805225A .align 2, 0 _08052224: .4byte gUnk_03000FF0 _08052228: cmp r0, #0x80 beq _08052232 b _0805225A _0805222E: movs r4, #0 b _0805225A _08052232: movs r4, #1 b _0805225A _08052236: cmp r4, #0 beq _0805223E movs r2, #4 b _08052248 _0805223E: movs r0, #8 movs r1, #0 bl sub_08050318 movs r2, #2 _08052248: ldr r1, _08052274 @ =gUnk_02000080 movs r0, #0x3c strh r0, [r1, #8] adds r0, r2, #0 bl sub_080A7114 movs r0, #0x6a bl sub_080A3268 _0805225A: ldr r1, _08052274 @ =gUnk_02000080 ldrb r0, [r1, #3] cmp r0, r4 beq _080522E8 strb r4, [r1, #3] movs r0, #0 adds r1, r4, #0 bl sub_08052418 movs r0, #0x69 bl sub_080A3268 b _080522E8 .align 2, 0 _08052274: .4byte gUnk_02000080 _08052278: movs r0, #0 bl sub_0807CDA4 adds r1, r0, #0 ldr r2, _08052298 @ =gUnk_02000080 strb r1, [r2] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 beq _0805229C cmp r1, #1 bne _080522E8 movs r0, #4 bl sub_080A7114 b _080522E8 .align 2, 0 _08052298: .4byte gUnk_02000080 _0805229C: movs r0, #0x3c strh r0, [r2, #8] movs r0, #9 movs r1, #0 bl sub_08050318 movs r0, #3 bl sub_080A7114 b _080522E8 _080522B0: ldrh r0, [r2, #8] cmp r0, #0 beq _080522BC _080522B6: subs r0, #1 strh r0, [r2, #8] b _080522E8 _080522BC: ldr r0, _080522D0 @ =gUnk_03000FF0 ldrh r1, [r0, #2] movs r0, #0xb ands r0, r1 cmp r0, #0 beq _080522E8 movs r0, #0 bl sub_080A7114 b _080522E8 .align 2, 0 _080522D0: .4byte gUnk_03000FF0 _080522D4: ldr r2, _080522EC @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _080522F0 @ =0x0000FDFF ands r0, r1 strh r0, [r2] bl sub_08050384 movs r0, #3 bl sub_080520C4 _080522E8: pop {r4, pc} .align 2, 0 _080522EC: .4byte gUnk_03000F50 _080522F0: .4byte 0x0000FDFF thumb_func_start sub_080522F4 sub_080522F4: @ 0x080522F4 push {r4, lr} ldr r0, _08052320 @ =gUnk_02000080 ldrb r1, [r0, #5] adds r3, r0, #0 cmp r1, #1 beq _08052324 cmp r1, #1 bgt _080523AC cmp r1, #0 bne _080523AC movs r1, #0 movs r0, #0x1e strh r0, [r3, #8] strb r1, [r3, #3] movs r0, #1 bl sub_080A7114 movs r0, #1 movs r1, #0 bl sub_08052418 b _080523CC .align 2, 0 _08052320: .4byte gUnk_02000080 _08052324: ldr r2, _08052340 @ =gUnk_03000F50 ldrh r1, [r2] movs r4, #0x80 lsls r4, r4, #2 adds r0, r4, #0 orrs r0, r1 strh r0, [r2] ldrh r0, [r3, #8] cmp r0, #0 beq _08052344 subs r0, #1 strh r0, [r3, #8] b _080523CC .align 2, 0 _08052340: .4byte gUnk_03000F50 _08052344: ldrb r4, [r3, #3] ldr r0, _08052358 @ =gUnk_03000FF0 ldrh r0, [r0, #2] cmp r0, #0x40 beq _08052362 cmp r0, #0x40 bgt _0805235C cmp r0, #1 beq _0805236A b _0805238C .align 2, 0 _08052358: .4byte gUnk_03000FF0 _0805235C: cmp r0, #0x80 beq _08052366 b _0805238C _08052362: movs r4, #0 b _0805238C _08052366: movs r4, #1 b _0805238C _0805236A: movs r0, #2 bl sub_080A7114 movs r0, #0x6a bl sub_080A3268 cmp r4, #0 bne _08052384 movs r0, #5 movs r1, #8 bl sub_08050054 b _0805238C _08052384: movs r0, #7 movs r1, #8 bl sub_08050054 _0805238C: ldr r1, _080523A8 @ =gUnk_02000080 ldrb r0, [r1, #3] cmp r0, r4 beq _080523CC strb r4, [r1, #3] movs r0, #1 adds r1, r4, #0 bl sub_08052418 movs r0, #0x69 bl sub_080A3268 b _080523CC .align 2, 0 _080523A8: .4byte gUnk_02000080 _080523AC: ldr r0, _080523C4 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080523CC ldrb r0, [r3, #3] cmp r0, #0 bne _080523C8 movs r0, #2 bl sub_08056010 b _080523CC .align 2, 0 _080523C4: .4byte gUnk_03000FD0 _080523C8: bl sub_080560A8 _080523CC: pop {r4, pc} .align 2, 0 thumb_func_start nullsub_107 nullsub_107: @ 0x080523D0 bx lr .align 2, 0 thumb_func_start sub_080523D4 sub_080523D4: @ 0x080523D4 push {r4, r5, r6, lr} ldr r1, _08052408 @ =gUnk_03001010 movs r0, #0 strh r0, [r1, #4] strh r0, [r1, #6] movs r0, #0x86 lsls r0, r0, #8 strh r0, [r1, #8] ldr r0, _0805240C @ =gUnk_02000080 ldrb r0, [r0, #0x10] strh r0, [r1, #2] movs r4, #0 adds r6, r1, #0 ldr r5, _08052410 @ =gUnk_080FCA84 _080523F0: adds r0, r4, r5 ldrb r0, [r0] strh r0, [r6] ldr r0, _08052414 @ =0x000001FD adds r1, r4, #0 bl sub_080ADA14 adds r4, #1 cmp r4, #7 bls _080523F0 pop {r4, r5, r6, pc} .align 2, 0 _08052408: .4byte gUnk_03001010 _0805240C: .4byte gUnk_02000080 _08052410: .4byte gUnk_080FCA84 _08052414: .4byte 0x000001FD thumb_func_start sub_08052418 sub_08052418: @ 0x08052418 push {r4, r5, r6, lr} sub sp, #0x18 adds r6, r0, #0 adds r4, r1, #0 ldr r0, _08052494 @ =gUnk_02021F30 movs r1, #0x80 lsls r1, r1, #4 bl sub_0801D630 ldr r0, _08052498 @ =gUnk_020227E8 movs r1, #0xf str r1, [r0] str r1, [r0, #8] str r1, [r0, #0x10] str r1, [r0, #0x18] lsls r4, r4, #3 adds r0, #1 adds r4, r4, r0 movs r5, #1 strb r5, [r4] ldr r4, _0805249C @ =gUnk_080FCA8C adds r0, r4, #0 mov r1, sp movs r2, #0x18 bl sub_0801D66C lsls r2, r6, #1 adds r2, r2, r6 lsls r2, r2, #2 ldr r0, _080524A0 @ =gUnk_080FCAA4 adds r2, r2, r0 movs r0, #0x80 lsls r0, r0, #0x12 ldrb r1, [r0, #7] adds r1, r2, r1 ldrb r0, [r2, #8] lsls r0, r0, #5 ldrb r1, [r1] adds r0, r0, r1 lsls r0, r0, #1 ldr r1, [r4] adds r1, r1, r0 str r1, [sp] mov r4, sp ldrb r0, [r2, #9] adds r1, r5, #0 ands r1, r0 ldrb r3, [r4, #0x13] movs r0, #2 rsbs r0, r0, #0 ands r0, r3 orrs r0, r1 strb r0, [r4, #0x13] ldrh r0, [r2, #0xa] mov r1, sp bl sub_0805F46C ldr r0, _080524A4 @ =gUnk_03000F50 strh r5, [r0, #0x1a] add sp, #0x18 pop {r4, r5, r6, pc} .align 2, 0 _08052494: .4byte gUnk_02021F30 _08052498: .4byte gUnk_020227E8 _0805249C: .4byte gUnk_080FCA8C _080524A0: .4byte gUnk_080FCAA4 _080524A4: .4byte gUnk_03000F50 thumb_func_start sub_080524A8 sub_080524A8: @ 0x080524A8 push {r4, r5, r6, lr} bl sub_080784C8 ldr r0, _08052510 @ =gUnk_03000B80 movs r1, #0x70 bl sub_0801D630 ldr r6, _08052514 @ =gUnk_03003F80 adds r0, r6, #0 movs r1, #0xb0 bl sub_0801D630 movs r0, #1 rsbs r0, r0, #0 adds r1, r6, #0 adds r1, #0x40 movs r2, #0x40 bl sub_0801D610 ldr r4, _08052518 @ =gUnk_03001160 adds r0, r4, #0 movs r1, #0x88 bl sub_0801D630 ldr r0, _0805251C @ =gUnk_03000BF0 str r4, [r0, #0x30] ldr r1, _08052520 @ =gUnk_080FCAC8 ldr r5, _08052524 @ =gUnk_030010A0 ldrb r0, [r5, #0xf] adds r0, r0, r1 ldrb r0, [r0] strb r0, [r6, #0xc] movs r0, #0x14 bl sub_0807CC30 cmp r0, #0 bne _080524FA ldr r0, [r6, #0x30] movs r1, #8 orrs r0, r1 str r0, [r6, #0x30] _080524FA: ldrb r0, [r5, #0xf] subs r0, #2 adds r2, r5, #0 cmp r0, #0xa bhi _080525C2 lsls r0, r0, #2 ldr r1, _08052528 @ =_0805252C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08052510: .4byte gUnk_03000B80 _08052514: .4byte gUnk_03003F80 _08052518: .4byte gUnk_03001160 _0805251C: .4byte gUnk_03000BF0 _08052520: .4byte gUnk_080FCAC8 _08052524: .4byte gUnk_030010A0 _08052528: .4byte _0805252C _0805252C: @ jump table .4byte _08052558 @ case 0 .4byte _08052576 @ case 1 .4byte _08052564 @ case 2 .4byte _080525C2 @ case 3 .4byte _08052558 @ case 4 .4byte _08052584 @ case 5 .4byte _08052584 @ case 6 .4byte _080525C2 @ case 7 .4byte _080525A0 @ case 8 .4byte _080525AC @ case 9 .4byte _080525B8 @ case 10 _08052558: ldr r0, _08052560 @ =0x0000FF40 strh r0, [r4, #0x36] b _080525C0 .align 2, 0 _08052560: .4byte 0x0000FF40 _08052564: ldr r0, _0805257C @ =gUnk_03003F80 adds r0, #0x38 movs r1, #0x10 strb r1, [r0] ldr r1, _08052580 @ =gUnk_030010A0 ldrb r0, [r1, #0xe] lsls r0, r0, #2 strb r0, [r4, #0x15] adds r2, r1, #0 _08052576: movs r0, #0xe0 strh r0, [r4, #0x24] b _080525C2 .align 2, 0 _0805257C: .4byte gUnk_03003F80 _08052580: .4byte gUnk_030010A0 _08052584: ldr r1, _08052598 @ =gUnk_03003F80 adds r2, r1, #0 adds r2, #0x38 movs r0, #1 strb r0, [r2] ldr r2, _0805259C @ =gUnk_030010A0 ldrb r0, [r2, #0xf] adds r1, #0x39 strb r0, [r1] b _080525C2 .align 2, 0 _08052598: .4byte gUnk_03003F80 _0805259C: .4byte gUnk_030010A0 _080525A0: ldr r0, _080525A8 @ =gUnk_03003F80 adds r0, #0x38 movs r1, #1 b _080525BE .align 2, 0 _080525A8: .4byte gUnk_03003F80 _080525AC: ldr r0, _080525B4 @ =gUnk_03003F80 adds r0, #0x38 movs r1, #3 b _080525BE .align 2, 0 _080525B4: .4byte gUnk_03003F80 _080525B8: ldr r0, _08052614 @ =gUnk_03003F80 adds r0, #0x38 movs r1, #4 _080525BE: strb r1, [r0] _080525C0: ldr r2, _08052618 @ =gUnk_030010A0 _080525C2: movs r0, #1 strb r0, [r4, #8] ldrb r1, [r4, #0x10] movs r0, #0xa0 orrs r0, r1 strb r0, [r4, #0x10] adds r3, r4, #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] ldr r0, _0805261C @ =gUnk_02002A40 adds r0, #0xaa ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x45 strb r0, [r1] ldrh r0, [r2, #0x10] strh r0, [r4, #0x2e] ldrh r0, [r2, #0x12] strh r0, [r4, #0x32] ldrb r0, [r2, #0xe] strb r0, [r4, #0x14] ldrb r1, [r2, #0x14] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 movs r1, #1 bl sub_0805EA2C bl sub_08017640 pop {r4, r5, r6, pc} .align 2, 0 _08052614: .4byte gUnk_03003F80 _08052618: .4byte gUnk_030010A0 _0805261C: .4byte gUnk_02002A40 thumb_func_start sub_08052620 sub_08052620: @ 0x08052620 push {lr} movs r1, #0 ldr r0, _08052634 @ =gUnk_02033A90 ldrb r0, [r0] cmp r0, #0x81 bne _0805262E movs r1, #1 _0805262E: adds r0, r1, #0 pop {pc} .align 2, 0 _08052634: .4byte gUnk_02033A90 thumb_func_start sub_08052638 sub_08052638: @ 0x08052638 push {lr} movs r2, #0 ldr r1, _08052650 @ =gUnk_08127D30 lsls r0, r0, #2 adds r0, r0, r1 ldrb r0, [r0] cmp r0, #0x81 bne _0805264A movs r2, #1 _0805264A: adds r0, r2, #0 pop {pc} .align 2, 0 _08052650: .4byte gUnk_08127D30 thumb_func_start sub_08052654 sub_08052654: @ 0x08052654 ldr r0, _0805265C @ =gUnk_02033A90 ldrb r0, [r0] lsrs r0, r0, #7 bx lr .align 2, 0 _0805265C: .4byte gUnk_02033A90 thumb_func_start sub_08052660 sub_08052660: @ 0x08052660 ldr r0, _0805266C @ =gUnk_02033A90 ldrb r0, [r0] lsrs r0, r0, #2 movs r1, #1 ands r0, r1 bx lr .align 2, 0 _0805266C: .4byte gUnk_02033A90 thumb_func_start sub_08052670 sub_08052670: @ 0x08052670 ldr r0, _0805267C @ =gUnk_02033A90 ldrb r0, [r0] lsrs r0, r0, #4 movs r1, #1 ands r0, r1 bx lr .align 2, 0 _0805267C: .4byte gUnk_02033A90 thumb_func_start sub_08052680 sub_08052680: @ 0x08052680 ldr r0, _0805268C @ =gUnk_02033A90 ldrb r0, [r0] lsrs r0, r0, #6 movs r1, #1 ands r0, r1 bx lr .align 2, 0 _0805268C: .4byte gUnk_02033A90 thumb_func_start sub_08052690 sub_08052690: @ 0x08052690 ldr r0, _0805269C @ =gUnk_02033A90 ldrb r0, [r0] lsrs r0, r0, #3 movs r1, #1 ands r0, r1 bx lr .align 2, 0 _0805269C: .4byte gUnk_02033A90 thumb_func_start sub_080526A0 sub_080526A0: @ 0x080526A0 push {lr} ldr r2, _080526C4 @ =gUnk_02002AE8 ldrb r1, [r2, #2] adds r1, r1, r0 cmp r1, #0 bge _080526AE movs r1, #0 _080526AE: ldrb r0, [r2, #3] cmp r0, r1 bge _080526B6 adds r1, r0, #0 _080526B6: strb r1, [r2, #2] ldr r0, _080526C8 @ =gUnk_03001160 adds r0, #0x45 strb r1, [r0] adds r0, r1, #0 pop {pc} .align 2, 0 _080526C4: .4byte gUnk_02002AE8 _080526C8: .4byte gUnk_03001160 thumb_func_start sub_080526CC sub_080526CC: @ 0x080526CC push {lr} ldr r3, _080526DC @ =gUnk_02002AE8 ldrh r1, [r3, #0x18] adds r2, r1, r0 cmp r2, #0 bge _080526E0 movs r2, #0 b _080526F0 .align 2, 0 _080526DC: .4byte gUnk_02002AE8 _080526E0: ldr r1, _080526F4 @ =gUnk_080FD590 ldrb r0, [r3] lsls r0, r0, #2 adds r0, r0, r1 ldrh r0, [r0] cmp r2, r0 ble _080526F0 adds r2, r0, #0 _080526F0: strh r2, [r3, #0x18] pop {pc} .align 2, 0 _080526F4: .4byte gUnk_080FD590 thumb_func_start sub_080526F8 sub_080526F8: @ 0x080526F8 push {r4, lr} adds r4, r0, #0 bl sub_08052724 cmp r0, #0 beq _08052718 ldr r0, _0805271C @ =gUnk_02033A90 ldrb r1, [r0, #3] ldr r0, _08052720 @ =gUnk_02002E9C adds r1, r1, r0 ldrb r0, [r1] adds r0, r0, r4 cmp r0, #0 bge _08052716 movs r0, #0 _08052716: strb r0, [r1] _08052718: pop {r4, pc} .align 2, 0 _0805271C: .4byte gUnk_02033A90 _08052720: .4byte gUnk_02002E9C thumb_func_start sub_08052724 sub_08052724: @ 0x08052724 ldr r0, _08052730 @ =gUnk_02033A90 ldrb r0, [r0] lsrs r0, r0, #1 movs r1, #1 ands r0, r1 bx lr .align 2, 0 _08052730: .4byte gUnk_02033A90 thumb_func_start sub_08052734 sub_08052734: @ 0x08052734 push {r4, lr} bl sub_08052724 cmp r0, #0 beq _0805274C ldr r0, _08052758 @ =gUnk_02002A40 ldr r1, _0805275C @ =gUnk_02033A90 ldr r2, _08052760 @ =0x0000045C adds r0, r0, r2 ldrb r1, [r1, #3] adds r0, r0, r1 ldrb r4, [r0] _0805274C: adds r0, r4, #0 cmp r0, #0 beq _08052754 movs r0, #1 _08052754: pop {r4, pc} .align 2, 0 _08052758: .4byte gUnk_02002A40 _0805275C: .4byte gUnk_02033A90 _08052760: .4byte 0x0000045C thumb_func_start sub_08052764 sub_08052764: @ 0x08052764 push {r4, lr} bl sub_08052724 cmp r0, #0 beq _08052784 ldr r0, _08052790 @ =gUnk_02002A40 ldr r1, _08052794 @ =gUnk_02033A90 ldr r2, _08052798 @ =0x0000046C adds r0, r0, r2 ldrb r1, [r1, #3] adds r0, r0, r1 ldrb r1, [r0] movs r0, #4 ands r0, r1 lsls r0, r0, #0x18 lsrs r4, r0, #0x18 _08052784: adds r0, r4, #0 cmp r0, #0 beq _0805278C movs r0, #1 _0805278C: pop {r4, pc} .align 2, 0 _08052790: .4byte gUnk_02002A40 _08052794: .4byte gUnk_02033A90 _08052798: .4byte 0x0000046C thumb_func_start sub_0805279C sub_0805279C: @ 0x0805279C push {lr} bl sub_08052724 cmp r0, #0 beq _080527C8 ldr r0, _080527BC @ =gUnk_02002A40 ldr r1, _080527C0 @ =gUnk_02033A90 ldr r2, _080527C4 @ =0x0000046C adds r0, r0, r2 ldrb r1, [r1, #3] adds r0, r0, r1 ldrb r0, [r0] lsrs r0, r0, #1 movs r1, #1 ands r0, r1 b _080527CA .align 2, 0 _080527BC: .4byte gUnk_02002A40 _080527C0: .4byte gUnk_02033A90 _080527C4: .4byte 0x0000046C _080527C8: movs r0, #0 _080527CA: pop {pc} thumb_func_start sub_080527CC sub_080527CC: @ 0x080527CC push {lr} bl sub_08052724 cmp r0, #0 beq _080527F8 ldr r0, _080527EC @ =gUnk_02002A40 ldr r1, _080527F0 @ =gUnk_02033A90 ldr r2, _080527F4 @ =0x0000046C adds r0, r0, r2 ldrb r1, [r1, #3] adds r0, r0, r1 ldrb r1, [r0] movs r0, #1 ands r0, r1 b _080527FA .align 2, 0 _080527EC: .4byte gUnk_02002A40 _080527F0: .4byte gUnk_02033A90 _080527F4: .4byte 0x0000046C _080527F8: movs r0, #0 _080527FA: pop {pc} thumb_func_start sub_080527FC sub_080527FC: @ 0x080527FC push {r4, lr} adds r4, r0, #0 bl sub_08053320 bl sub_080AE1D8 bl sub_080ADE24 movs r0, #1 bl sub_0801C370 adds r0, r4, #0 bl sub_0801AE44 ldr r0, _08052830 @ =gUnk_02024090 ldr r1, _08052834 @ =gUnk_020176A0 movs r2, #0x80 lsls r2, r2, #3 bl sub_0801D66C ldr r1, _08052838 @ =gUnk_0200B644 movs r0, #1 rsbs r0, r0, #0 str r0, [r1] pop {r4, pc} .align 2, 0 _08052830: .4byte gUnk_02024090 _08052834: .4byte gUnk_020176A0 _08052838: .4byte gUnk_0200B644 thumb_func_start sub_0805283C sub_0805283C: @ 0x0805283C push {r4, lr} ldr r0, _08052868 @ =gUnk_02033A90 ldr r1, _0805286C @ =0x00000864 adds r4, r0, r1 ldr r1, _08052870 @ =gUnk_08127D30 ldr r0, _08052874 @ =gUnk_03000BF0 ldrb r0, [r0, #4] lsls r0, r0, #2 adds r0, r0, r1 ldrb r0, [r0, #3] str r0, [r4] movs r0, #0x8c lsls r0, r0, #4 movs r1, #0x7c bl sub_0807CB10 cmp r0, #0 beq _08052864 movs r0, #0x33 str r0, [r4] _08052864: pop {r4, pc} .align 2, 0 _08052868: .4byte gUnk_02033A90 _0805286C: .4byte 0x00000864 _08052870: .4byte gUnk_08127D30 _08052874: .4byte gUnk_03000BF0 thumb_func_start sub_08052878 sub_08052878: @ 0x08052878 push {lr} ldr r0, _08052894 @ =gUnk_02033A90 movs r2, #0x86 lsls r2, r2, #4 adds r1, r0, r2 adds r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] ldr r0, _08052898 @ =0x80010000 bl sub_080A3268 pop {pc} .align 2, 0 _08052894: .4byte gUnk_02033A90 _08052898: .4byte 0x80010000 thumb_func_start sub_0805289C sub_0805289C: @ 0x0805289C ldr r0, _080528AC @ =gUnk_02033A90 ldr r2, _080528B0 @ =0x00000864 adds r1, r0, r2 subs r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] bx lr .align 2, 0 _080528AC: .4byte gUnk_02033A90 _080528B0: .4byte 0x00000864 thumb_func_start sub_080528B4 sub_080528B4: @ 0x080528B4 push {lr} ldr r0, _080528C4 @ =gUnk_030010A0 ldrb r0, [r0, #5] cmp r0, #0 bne _080528C8 movs r0, #0 b _080528E6 .align 2, 0 _080528C4: .4byte gUnk_030010A0 _080528C8: bl sub_0804FFE4 ldr r1, _080528E8 @ =gUnk_03001000 movs r2, #0 movs r0, #3 strb r0, [r1, #3] strb r2, [r1, #4] movs r0, #5 movs r1, #8 bl sub_08050054 ldr r0, _080528EC @ =0x80100000 bl sub_080A3268 movs r0, #1 _080528E6: pop {pc} .align 2, 0 _080528E8: .4byte gUnk_03001000 _080528EC: .4byte 0x80100000 thumb_func_start sub_080528F0 sub_080528F0: @ 0x080528F0 push {lr} ldr r1, _08052914 @ =gUnk_02033A90 ldr r2, _08052918 @ =0x00000888 adds r0, r1, r2 ldr r2, [r0] cmp r2, #0 beq _08052910 movs r3, #0x89 lsls r3, r3, #4 adds r0, r1, r3 ldr r1, [r0] cmp r1, #0 beq _08052910 adds r0, r2, #0 bl _call_via_r1 _08052910: pop {pc} .align 2, 0 _08052914: .4byte gUnk_02033A90 _08052918: .4byte 0x00000888 thumb_func_start sub_0805291C sub_0805291C: @ 0x0805291C push {r4, lr} ldr r4, _08052948 @ =gUnk_030010A0 ldrb r0, [r4, #8] cmp r0, #0 beq _080529F4 ldr r0, _0805294C @ =gUnk_02002A40 adds r0, #0xaa ldrb r0, [r0] cmp r0, #0 beq _080529F4 ldr r0, _08052950 @ =gUnk_03003F80 adds r0, #0xa8 ldrb r0, [r0] cmp r0, #0x12 beq _080529F4 bl sub_080529F8 cmp r0, #0 beq _08052954 movs r0, #0 strb r0, [r4, #8] b _080529F6 .align 2, 0 _08052948: .4byte gUnk_030010A0 _0805294C: .4byte gUnk_02002A40 _08052950: .4byte gUnk_03003F80 _08052954: ldrb r0, [r4, #9] subs r0, #1 cmp r0, #8 bhi _080529D4 lsls r0, r0, #2 ldr r1, _08052968 @ =_0805296C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08052968: .4byte _0805296C _0805296C: @ jump table .4byte _08052990 @ case 0 .4byte _080529A4 @ case 1 .4byte _080529D4 @ case 2 .4byte _080529A8 @ case 3 .4byte _080529B2 @ case 4 .4byte _080529BC @ case 5 .4byte _080529C8 @ case 6 .4byte _080529C8 @ case 7 .4byte _0805299A @ case 8 _08052990: movs r0, #0xd movs r1, #8 bl sub_08050054 b _080529DC _0805299A: movs r0, #0xd movs r1, #3 bl sub_08050054 b _080529DC _080529A4: movs r0, #7 b _080529AA _080529A8: movs r0, #5 _080529AA: movs r1, #4 bl sub_08050054 b _080529DC _080529B2: movs r0, #5 movs r1, #0x10 bl sub_08050054 b _080529DC _080529BC: movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 bl sub_08050054 b _080529DC _080529C8: movs r1, #0x80 lsls r1, r1, #1 movs r0, #7 bl sub_08050054 b _080529DC _080529D4: movs r0, #7 movs r1, #0x10 bl sub_08050054 _080529DC: bl sub_080528F0 ldr r0, _080529F0 @ =gUnk_03001000 movs r1, #3 strb r1, [r0, #4] movs r1, #1 strb r1, [r0, #0xb] movs r0, #1 b _080529F6 .align 2, 0 _080529F0: .4byte gUnk_03001000 _080529F4: movs r0, #0 _080529F6: pop {r4, pc} thumb_func_start sub_080529F8 sub_080529F8: @ 0x080529F8 push {r4, r5, r6, lr} ldr r1, _08052A34 @ =gUnk_030010A0 ldrh r4, [r1, #0xa] ldr r2, _08052A38 @ =gUnk_080FCAD6 ldrh r0, [r2] cmp r0, #0 beq _08052A48 ldr r3, _08052A3C @ =gUnk_03003F80 movs r6, #0 movs r0, #0x39 adds r0, r0, r3 mov ip, r0 movs r5, #0x1e _08052A12: ldrh r0, [r2] cmp r4, r0 bne _08052A40 strb r5, [r3, #0xc] adds r0, r3, #0 adds r0, #0x38 strb r6, [r0] ldrh r0, [r2, #2] mov r3, ip strb r0, [r3] ldrb r0, [r1, #0xf] cmp r0, #0 bne _08052A30 ldrh r0, [r2, #2] strb r0, [r1, #0xf] _08052A30: movs r0, #1 b _08052A4A .align 2, 0 _08052A34: .4byte gUnk_030010A0 _08052A38: .4byte gUnk_080FCAD6 _08052A3C: .4byte gUnk_03003F80 _08052A40: adds r2, #4 ldrh r0, [r2] cmp r0, #0 bne _08052A12 _08052A48: movs r0, #0 _08052A4A: pop {r4, r5, r6, pc} thumb_func_start sub_08052A4C sub_08052A4C: @ 0x08052A4C push {r4, r5, lr} ldr r2, _08052A88 @ =gUnk_030010A0 movs r0, #1 strb r0, [r2, #8] ldr r5, _08052A8C @ =gUnk_03001160 ldr r3, _08052A90 @ =gUnk_03000BF0 ldrh r0, [r5, #0x2e] ldrh r1, [r3, #6] subs r0, r0, r1 movs r1, #0xfe lsls r1, r1, #2 adds r4, r1, #0 ands r0, r4 strh r0, [r2, #0x10] ldrh r0, [r5, #0x32] ldrh r1, [r3, #8] subs r0, r0, r1 ands r0, r4 strh r0, [r2, #0x12] movs r0, #4 strb r0, [r2, #0xe] movs r0, #0xa strb r0, [r2, #0xf] ldrb r0, [r3, #4] strb r0, [r2, #0xc] ldrb r0, [r3, #5] subs r0, #1 strb r0, [r2, #0xd] pop {r4, r5, pc} .align 2, 0 _08052A88: .4byte gUnk_030010A0 _08052A8C: .4byte gUnk_03001160 _08052A90: .4byte gUnk_03000BF0 thumb_func_start sub_08052A94 sub_08052A94: @ 0x08052A94 push {lr} ldr r0, _08052AAC @ =gUnk_030010A0 ldrb r0, [r0, #9] subs r0, #1 cmp r0, #8 bhi _08052B1C lsls r0, r0, #2 ldr r1, _08052AB0 @ =_08052AB4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08052AAC: .4byte gUnk_030010A0 _08052AB0: .4byte _08052AB4 _08052AB4: @ jump table .4byte _08052AD8 @ case 0 .4byte _08052AE6 @ case 1 .4byte _08052B22 @ case 2 .4byte _08052B1C @ case 3 .4byte _08052B08 @ case 4 .4byte _08052AF0 @ case 5 .4byte _08052AFC @ case 6 .4byte _08052B12 @ case 7 .4byte _08052ADC @ case 8 _08052AD8: movs r0, #0xc b _08052B14 _08052ADC: movs r0, #0xc movs r1, #3 bl sub_08050054 b _08052B22 _08052AE6: movs r0, #6 movs r1, #4 bl sub_08050054 b _08052B22 _08052AF0: movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 bl sub_08050054 b _08052B22 _08052AFC: movs r1, #0x80 lsls r1, r1, #1 movs r0, #7 bl sub_08050054 b _08052B22 _08052B08: movs r0, #4 movs r1, #0x10 bl sub_08050054 b _08052B22 _08052B12: movs r0, #6 _08052B14: movs r1, #8 bl sub_08050054 b _08052B22 _08052B1C: movs r0, #0x10 bl sub_080500F4 _08052B22: pop {pc} thumb_func_start sub_08052B24 sub_08052B24: @ 0x08052B24 push {lr} ldr r0, _08052B90 @ =gUnk_03000FF0 ldrh r1, [r0] movs r0, #4 ands r0, r1 cmp r0, #0 beq _08052B8A ldr r2, _08052B94 @ =gUnk_03003F80 adds r0, r2, #0 adds r0, #0x8b ldrb r0, [r0] cmp r0, #0 bne _08052B8A ldr r0, _08052B98 @ =gUnk_02034490 ldrb r0, [r0] cmp r0, #0 bne _08052B8A ldr r0, _08052B9C @ =gUnk_0200AF00 ldrb r0, [r0, #1] cmp r0, #0 bne _08052B8A ldr r0, [r2, #0x30] movs r1, #0x8c lsls r1, r1, #1 ands r0, r1 cmp r0, #0 bne _08052B8A adds r0, r2, #0 adds r0, #0xa9 ldrb r0, [r0] cmp r0, #1 bgt _08052B8A ldr r0, [r2, #0x2c] cmp r0, #0 bne _08052B8A ldr r1, _08052BA0 @ =gUnk_03001160 adds r0, r1, #0 adds r0, #0x7a ldrh r0, [r0] cmp r0, #0 bne _08052B8A movs r3, #0x36 ldrsh r0, [r1, r3] movs r1, #0x80 lsls r1, r1, #8 ands r0, r1 cmp r0, #0 beq _08052BA4 ldrb r0, [r2, #0xa] cmp r0, #0 bne _08052BA4 _08052B8A: movs r0, #0 b _08052BB4 .align 2, 0 _08052B90: .4byte gUnk_03000FF0 _08052B94: .4byte gUnk_03003F80 _08052B98: .4byte gUnk_02034490 _08052B9C: .4byte gUnk_0200AF00 _08052BA0: .4byte gUnk_03001160 _08052BA4: bl sub_0801862C movs r0, #0x13 bl sub_08078160 bl sub_0805E544 movs r0, #1 _08052BB4: pop {pc} .align 2, 0 thumb_func_start sub_08052BB8 sub_08052BB8: @ 0x08052BB8 push {lr} ldr r0, _08052BE0 @ =gUnk_030010A0 adds r2, r0, #0 adds r2, #0x35 ldrb r1, [r2] adds r3, r0, #0 cmp r1, #0 bne _08052BEC ldr r0, _08052BE4 @ =gUnk_03001160 movs r2, #0x32 ldrsh r1, [r0, r2] ldr r0, _08052BE8 @ =gUnk_03000BF0 movs r2, #0xc ldrsh r0, [r0, r2] subs r1, r1, r0 movs r2, #0xd cmp r1, #0x60 ble _08052BEE movs r2, #1 b _08052BEE .align 2, 0 _08052BE0: .4byte gUnk_030010A0 _08052BE4: .4byte gUnk_03001160 _08052BE8: .4byte gUnk_03000BF0 _08052BEC: ldrb r2, [r2] _08052BEE: ldrh r0, [r3, #0x36] adds r1, r2, #0 bl sub_080563C8 pop {pc} thumb_func_start sub_08052BF8 sub_08052BF8: @ 0x08052BF8 push {lr} ldr r2, _08052C34 @ =gUnk_030010A0 adds r1, r2, #0 adds r1, #0x31 ldrb r0, [r1] cmp r0, #0 bne _08052C30 movs r0, #1 strb r0, [r1] ldr r0, _08052C38 @ =gUnk_02033A90 ldrb r1, [r0, #1] adds r0, r2, #0 adds r0, #0x2e strb r1, [r0] bl sub_0805E8D4 adds r1, r0, #0 cmp r1, #0 beq _08052C30 movs r0, #9 strb r0, [r1, #8] movs r0, #0xf strb r0, [r1, #9] strb r0, [r1, #0xa] adds r0, r1, #0 movs r1, #0 bl sub_0805EA2C _08052C30: pop {pc} .align 2, 0 _08052C34: .4byte gUnk_030010A0 _08052C38: .4byte gUnk_02033A90 thumb_func_start sub_08052C3C sub_08052C3C: @ 0x08052C3C push {lr} ldr r2, _08052C58 @ =gUnk_02033A90 ldrb r0, [r2, #0x18] cmp r0, #0 bne _08052C48 strb r0, [r2, #0x1a] _08052C48: ldrb r0, [r2, #0x1a] cmp r0, #0 beq _08052C56 subs r0, #1 movs r1, #0 strb r0, [r2, #0x1a] strb r1, [r2, #0x18] _08052C56: pop {pc} .align 2, 0 _08052C58: .4byte gUnk_02033A90 thumb_func_start sub_08052C5C sub_08052C5C: @ 0x08052C5C push {lr} bl sub_08052680 cmp r0, #0 bne _08052C98 bl sub_08052620 cmp r0, #0 beq _08052C84 ldr r2, _08052C7C @ =gUnk_030010A0 ldr r1, _08052C80 @ =gUnk_03001160 ldrh r0, [r1, #0x2e] strh r0, [r2, #0x20] ldrh r0, [r1, #0x32] strh r0, [r2, #0x22] b _08052C98 .align 2, 0 _08052C7C: .4byte gUnk_030010A0 _08052C80: .4byte gUnk_03001160 _08052C84: bl sub_08052660 cmp r0, #0 beq _08052C98 ldr r2, _08052C9C @ =gUnk_030010A0 ldr r1, _08052CA0 @ =gUnk_03001160 ldrh r0, [r1, #0x2e] strh r0, [r2, #0x1c] ldrh r0, [r1, #0x32] strh r0, [r2, #0x1e] _08052C98: pop {pc} .align 2, 0 _08052C9C: .4byte gUnk_030010A0 _08052CA0: .4byte gUnk_03001160 thumb_func_start sub_08052CA4 sub_08052CA4: @ 0x08052CA4 push {r4, lr} ldr r4, _08052CC8 @ =gUnk_0811E214 lsls r0, r0, #2 adds r0, r0, r4 lsls r4, r1, #2 adds r4, r4, r1 lsls r4, r4, #1 ldr r1, [r0] adds r1, r1, r4 ldr r4, _08052CCC @ =gUnk_030010A0 ldrh r0, [r1] adds r0, r0, r2 strh r0, [r4, #0x20] ldrh r0, [r1, #2] adds r0, r0, r3 strh r0, [r4, #0x22] pop {r4, pc} .align 2, 0 _08052CC8: .4byte gUnk_0811E214 _08052CCC: .4byte gUnk_030010A0 thumb_func_start sub_08052CD0 sub_08052CD0: @ 0x08052CD0 push {r4, lr} ldr r4, _08052CF4 @ =gUnk_0811E214 lsls r0, r0, #2 adds r0, r0, r4 lsls r4, r1, #2 adds r4, r4, r1 lsls r4, r4, #1 ldr r1, [r0] adds r1, r1, r4 ldr r4, _08052CF8 @ =gUnk_030010A0 ldrh r0, [r1] adds r0, r0, r2 strh r0, [r4, #0x1c] ldrh r0, [r1, #2] adds r0, r0, r3 strh r0, [r4, #0x1e] pop {r4, pc} .align 2, 0 _08052CF4: .4byte gUnk_0811E214 _08052CF8: .4byte gUnk_030010A0 thumb_func_start sub_08052CFC sub_08052CFC: @ 0x08052CFC push {r4, lr} ldr r4, _08052D44 @ =gUnk_02033A90 ldr r1, _08052D48 @ =0x00000894 adds r0, r4, #0 bl sub_0801D630 ldr r0, _08052D4C @ =gUnk_03000BF0 ldrb r1, [r0, #4] lsls r1, r1, #2 ldr r0, _08052D50 @ =gUnk_08127D30 adds r1, r1, r0 ldrb r0, [r1] strb r0, [r4] ldrb r0, [r1, #1] strb r0, [r4, #1] ldrb r0, [r1, #1] subs r0, #0x17 strb r0, [r4, #3] ldr r2, _08052D54 @ =gUnk_0811E454 ldrb r0, [r1, #2] lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] strh r0, [r4, #4] ldrb r0, [r1, #2] strb r0, [r4, #6] movs r0, #0xb4 strb r0, [r4, #0x1a] adds r0, #0x4c strh r0, [r4, #0xa] bl sub_08052A94 bl sub_08052DA8 pop {r4, pc} .align 2, 0 _08052D44: .4byte gUnk_02033A90 _08052D48: .4byte 0x00000894 _08052D4C: .4byte gUnk_03000BF0 _08052D50: .4byte gUnk_08127D30 _08052D54: .4byte gUnk_0811E454 thumb_func_start sub_08052D58 sub_08052D58: @ 0x08052D58 lsls r0, r0, #2 ldr r1, _08052D6C @ =gUnk_08127D30 adds r0, r0, r1 ldr r1, _08052D70 @ =gUnk_0811E454 ldrb r0, [r0, #2] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] bx lr .align 2, 0 _08052D6C: .4byte gUnk_08127D30 _08052D70: .4byte gUnk_0811E454 thumb_func_start sub_08052D74 sub_08052D74: @ 0x08052D74 push {r4, r5, lr} adds r3, r0, #0 adds r4, r1, #0 ldr r0, _08052D98 @ =gUnk_03001000 ldrb r0, [r0, #4] cmp r0, #7 beq _08052D96 ldr r0, _08052D9C @ =gUnk_02033A90 ldr r5, _08052DA0 @ =0x00000888 adds r1, r0, r5 str r3, [r1] ldr r3, _08052DA4 @ =0x0000088C adds r1, r0, r3 str r4, [r1] adds r5, #8 adds r0, r0, r5 str r2, [r0] _08052D96: pop {r4, r5, pc} .align 2, 0 _08052D98: .4byte gUnk_03001000 _08052D9C: .4byte gUnk_02033A90 _08052DA0: .4byte 0x00000888 _08052DA4: .4byte 0x0000088C thumb_func_start sub_08052DA8 sub_08052DA8: @ 0x08052DA8 push {r4, r5, r6, r7, lr} ldr r1, _08052DF8 @ =gUnk_0811E214 ldr r0, _08052DFC @ =gUnk_03000BF0 ldrb r0, [r0, #4] lsls r0, r0, #2 adds r0, r0, r1 ldr r4, [r0] ldr r7, _08052E00 @ =gUnk_02033ACC movs r5, #0 ldrh r0, [r4] ldr r1, _08052E04 @ =0x0000FFFF cmp r0, r1 beq _08052DE8 adds r6, r1, #0 _08052DC4: ldrh r0, [r4, #8] cmp r0, r6 beq _08052DD8 ldr r0, _08052DFC @ =gUnk_03000BF0 ldrb r2, [r0, #4] adds r0, r7, #0 adds r1, r4, #0 adds r3, r5, #0 bl sub_08052E10 _08052DD8: adds r7, #0x20 adds r5, #1 adds r4, #0xa cmp r5, #0x3f bhi _08052DE8 ldrh r0, [r4] cmp r0, r6 bne _08052DC4 _08052DE8: bl sub_08052E8C ldr r1, _08052E08 @ =gUnk_02033A90 ldr r2, _08052E0C @ =0x0000085C adds r1, r1, r2 str r0, [r1] pop {r4, r5, r6, r7, pc} .align 2, 0 _08052DF8: .4byte gUnk_0811E214 _08052DFC: .4byte gUnk_03000BF0 _08052E00: .4byte gUnk_02033ACC _08052E04: .4byte 0x0000FFFF _08052E08: .4byte gUnk_02033A90 _08052E0C: .4byte 0x0000085C thumb_func_start sub_08052E10 sub_08052E10: @ 0x08052E10 push {r4, r5, lr} adds r5, r0, #0 ldrh r0, [r1] strh r0, [r5, #4] ldrh r0, [r1, #2] strh r0, [r5, #6] ldrh r0, [r1, #4] strh r0, [r5] ldrh r0, [r1, #6] strh r0, [r5, #2] ldr r4, _08052E74 @ =gUnk_0810246C lsls r2, r2, #2 adds r4, r2, r4 ldrh r0, [r1, #8] ldr r1, [r4] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [r5, #8] ldr r0, _08052E78 @ =gUnk_08107988 adds r0, r2, r0 ldr r0, [r0] lsls r3, r3, #2 adds r0, r3, r0 ldr r0, [r0] str r0, [r5, #0xc] ldr r0, _08052E7C @ =gUnk_0810309C adds r0, r2, r0 ldr r0, [r0] str r0, [r5, #0x10] ldr r0, _08052E80 @ =gUnk_080B755C adds r0, r2, r0 ldr r0, [r0] str r0, [r5, #0x14] ldr r0, _08052E84 @ =gUnk_0813A7F0 adds r0, r2, r0 ldr r0, [r0] adds r0, r3, r0 ldr r0, [r0] str r0, [r5, #0x18] ldr r0, _08052E88 @ =gUnk_080D50FC adds r2, r2, r0 ldr r0, [r2] cmp r0, #0 beq _08052E70 adds r0, r3, r0 ldr r0, [r0] str r0, [r5, #0x1c] _08052E70: pop {r4, r5, pc} .align 2, 0 _08052E74: .4byte gUnk_0810246C _08052E78: .4byte gUnk_08107988 _08052E7C: .4byte gUnk_0810309C _08052E80: .4byte gUnk_080B755C _08052E84: .4byte gUnk_0813A7F0 _08052E88: .4byte gUnk_080D50FC thumb_func_start sub_08052E8C sub_08052E8C: @ 0x08052E8C ldr r0, _08052E98 @ =gUnk_03000BF0 ldrb r0, [r0, #5] lsls r0, r0, #5 ldr r1, _08052E9C @ =gUnk_02033ACC adds r0, r0, r1 bx lr .align 2, 0 _08052E98: .4byte gUnk_03000BF0 _08052E9C: .4byte gUnk_02033ACC thumb_func_start sub_08052EA0 sub_08052EA0: @ 0x08052EA0 push {r4, lr} ldr r4, _08052EE4 @ =gUnk_02034350 adds r0, r4, #0 movs r1, #0xcc bl sub_0801D630 movs r0, #0xff strb r0, [r4, #0x10] strb r0, [r4, #0x11] strb r0, [r4, #0x12] strb r0, [r4, #0x13] adds r0, #1 strh r0, [r4, #0xc] ldr r2, _08052EE8 @ =gUnk_02033A90 ldr r1, _08052EEC @ =gUnk_08127D30 ldr r0, _08052EF0 @ =gUnk_03000BF0 ldrb r0, [r0, #4] lsls r0, r0, #2 adds r0, r0, r1 ldrb r0, [r0, #1] strb r0, [r2, #1] bl sub_08049D30 bl sub_0807DA70 bl sub_08054524 bl sub_080186D4 bl sub_0806F364 bl sub_080530C8 pop {r4, pc} .align 2, 0 _08052EE4: .4byte gUnk_02034350 _08052EE8: .4byte gUnk_02033A90 _08052EEC: .4byte gUnk_08127D30 _08052EF0: .4byte gUnk_03000BF0 thumb_func_start sub_08052EF4 sub_08052EF4: @ 0x08052EF4 push {lr} cmp r0, #0 bge _08052EFE ldr r0, _08052F10 @ =gUnk_03000BF0 ldrb r0, [r0, #4] _08052EFE: lsls r0, r0, #2 ldr r1, _08052F14 @ =gUnk_08127D30 adds r0, r0, r1 ldr r1, _08052F18 @ =gUnk_0811E454 ldrb r0, [r0, #2] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] pop {pc} .align 2, 0 _08052F10: .4byte gUnk_03000BF0 _08052F14: .4byte gUnk_08127D30 _08052F18: .4byte gUnk_0811E454 thumb_func_start sub_08052F1C sub_08052F1C: @ 0x08052F1C push {r4, r5, r6, lr} ldr r2, _08052F4C @ =gUnk_02033A90 ldrb r1, [r2, #0xd] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08052FCC ldr r0, _08052F50 @ =gUnk_02034350 ldrb r0, [r0] cmp r0, #0 beq _08052FCC movs r5, #0 movs r4, #0 ldr r0, _08052F54 @ =gUnk_03000BF0 ldrb r1, [r0, #0x10] adds r3, r0, #0 cmp r1, #1 beq _08052F62 cmp r1, #1 bgt _08052F58 cmp r1, #0 beq _08052F62 b _08052F72 .align 2, 0 _08052F4C: .4byte gUnk_02033A90 _08052F50: .4byte gUnk_02034350 _08052F54: .4byte gUnk_03000BF0 _08052F58: cmp r1, #2 beq _08052F62 cmp r1, #3 beq _08052F6A b _08052F72 _08052F62: ldr r1, _08052FD0 @ =0x0000085C adds r0, r2, r1 ldr r0, [r0] ldrh r5, [r0, #2] _08052F6A: ldr r1, _08052FD0 @ =0x0000085C adds r0, r2, r1 ldr r0, [r0] ldrh r4, [r0] _08052F72: ldr r0, _08052FD0 @ =0x0000085C adds r2, r2, r0 ldr r1, [r2] ldrh r0, [r1, #4] adds r0, r0, r4 strh r0, [r1, #4] ldr r1, [r2] ldrh r0, [r1, #6] adds r0, r0, r5 strh r0, [r1, #6] ldrh r0, [r3, #6] adds r0, r0, r4 strh r0, [r3, #6] ldrh r0, [r3, #8] adds r0, r0, r5 strh r0, [r3, #8] ldrh r0, [r3, #0xa] adds r0, r0, r4 strh r0, [r3, #0xa] ldrh r0, [r3, #0xc] adds r0, r0, r5 strh r0, [r3, #0xc] ldr r2, _08052FD4 @ =gUnk_03003D70 adds r6, r2, #0 adds r6, #0x48 _08052FA4: ldr r1, [r2, #4] adds r3, r2, #0 adds r3, #8 cmp r1, r2 beq _08052FC6 _08052FAE: ldrb r0, [r1, #8] cmp r0, #9 beq _08052FC0 ldrh r0, [r1, #0x2e] adds r0, r0, r4 strh r0, [r1, #0x2e] ldrh r0, [r1, #0x32] adds r0, r0, r5 strh r0, [r1, #0x32] _08052FC0: ldr r1, [r1, #4] cmp r1, r2 bne _08052FAE _08052FC6: adds r2, r3, #0 cmp r2, r6 blo _08052FA4 _08052FCC: pop {r4, r5, r6, pc} .align 2, 0 _08052FD0: .4byte 0x0000085C _08052FD4: .4byte gUnk_03003D70 thumb_func_start sub_08052FD8 sub_08052FD8: @ 0x08052FD8 push {lr} bl sub_08052FF4 ldr r1, _08052FF0 @ =gUnk_03000BF0 movs r0, #0 str r0, [r1, #0x30] bl sub_0807C860 bl sub_0807C740 pop {pc} .align 2, 0 _08052FF0: .4byte gUnk_03000BF0 thumb_func_start sub_08052FF4 sub_08052FF4: @ 0x08052FF4 push {r4, r5, r6, lr} adds r6, r0, #0 adds r4, r1, #0 bl sub_08080668 bl sub_080197AC ldr r0, _0805306C @ =gUnk_03000BF0 strb r6, [r0, #4] strb r4, [r0, #5] ldr r1, _08053070 @ =gUnk_03000F50 movs r0, #0xba lsls r0, r0, #5 strh r0, [r1] ldr r5, _08053074 @ =gUnk_020342CC adds r0, r5, #0 movs r1, #0x20 bl sub_0801D630 str r5, [r5, #0x20] ldr r0, _08053078 @ =gUnk_0811E214 lsls r6, r6, #2 adds r0, r6, r0 lsls r2, r4, #2 adds r4, r2, r4 lsls r4, r4, #1 ldr r0, [r0] adds r0, r0, r4 ldrh r1, [r0] strh r1, [r5, #4] ldrh r1, [r0, #2] strh r1, [r5, #6] ldrh r1, [r0, #4] strh r1, [r5] ldrh r1, [r0, #6] strh r1, [r5, #2] ldr r1, _0805307C @ =gUnk_0810246C adds r1, r6, r1 ldrh r0, [r0, #8] ldr r1, [r1] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [r5, #8] ldr r0, _08053080 @ =gUnk_08107988 adds r0, r6, r0 ldr r0, [r0] adds r2, r2, r0 ldr r0, [r2] str r0, [r5, #0xc] ldr r0, _08053084 @ =gUnk_0810309C adds r0, r6, r0 ldr r0, [r0] str r0, [r5, #0x10] ldr r0, _08053088 @ =gUnk_080B755C adds r6, r6, r0 ldr r0, [r6] str r0, [r5, #0x14] pop {r4, r5, r6, pc} .align 2, 0 _0805306C: .4byte gUnk_03000BF0 _08053070: .4byte gUnk_03000F50 _08053074: .4byte gUnk_020342CC _08053078: .4byte gUnk_0811E214 _0805307C: .4byte gUnk_0810246C _08053080: .4byte gUnk_08107988 _08053084: .4byte gUnk_0810309C _08053088: .4byte gUnk_080B755C thumb_func_start sub_0805308C sub_0805308C: @ 0x0805308C push {lr} adds r1, r0, #0 ldr r2, _080530AC @ =gUnk_02034350 movs r3, #0xc ldrsh r0, [r2, r3] adds r1, r1, r0 cmp r1, #0 bge _0805309E movs r1, #0 _0805309E: movs r0, #0x80 lsls r0, r0, #1 cmp r1, r0 ble _080530A8 adds r1, r0, #0 _080530A8: strh r1, [r2, #0xc] pop {pc} .align 2, 0 _080530AC: .4byte gUnk_02034350 thumb_func_start sub_080530B0 sub_080530B0: @ 0x080530B0 push {lr} ldr r0, _080530C0 @ =gUnk_080FCAF8 ldr r1, _080530C4 @ =gUnk_030010EC movs r2, #0x20 bl sub_0801D66C pop {pc} .align 2, 0 _080530C0: .4byte gUnk_080FCAF8 _080530C4: .4byte gUnk_030010EC thumb_func_start sub_080530C8 sub_080530C8: @ 0x080530C8 push {r4, r5, lr} movs r4, #1 movs r5, #0xc0 lsls r5, r5, #2 adds r0, r5, #0 movs r1, #0x78 bl sub_0807CB10 cmp r0, #0 beq _080530E0 movs r4, #9 b _08053138 _080530E0: movs r0, #6 bl sub_0807CC30 cmp r0, #0 beq _080530EE movs r4, #8 b _08053138 _080530EE: adds r0, r5, #0 movs r1, #0x32 bl sub_0807CB10 cmp r0, #0 beq _080530FE movs r4, #7 b _08053138 _080530FE: movs r0, #5 bl sub_0807CC30 cmp r0, #0 beq _0805310C movs r4, #6 b _08053138 _0805310C: movs r0, #4 bl sub_0807CC30 cmp r0, #0 beq _0805311A movs r4, #5 b _08053138 _0805311A: movs r0, #0x80 lsls r0, r0, #1 movs r1, #0x9c bl sub_0807CB10 cmp r0, #0 beq _0805312C movs r4, #4 b _08053138 _0805312C: movs r0, #2 bl sub_0807CC30 cmp r0, #0 beq _08053138 movs r4, #2 _08053138: ldr r0, _08053140 @ =gUnk_02002A40 strb r4, [r0, #8] pop {r4, r5, pc} .align 2, 0 _08053140: .4byte gUnk_02002A40 thumb_func_start sub_08053144 sub_08053144: @ 0x08053144 push {lr} movs r0, #0x51 bl sub_0807CC30 cmp r0, #0 beq _08053154 movs r0, #0 b _0805316E _08053154: movs r1, #0 ldr r0, _08053170 @ =gUnk_02033A90 ldrb r2, [r0, #1] cmp r2, #0 beq _0805316C ldr r0, _08053174 @ =gUnk_030010A0 adds r0, #0x2e ldrb r1, [r0] eors r1, r2 rsbs r0, r1, #0 orrs r0, r1 lsrs r1, r0, #0x1f _0805316C: adds r0, r1, #0 _0805316E: pop {pc} .align 2, 0 _08053170: .4byte gUnk_02033A90 _08053174: .4byte gUnk_030010A0 thumb_func_start sub_08053178 sub_08053178: @ 0x08053178 push {r4, r5, lr} bl sub_08053144 cmp r0, #0 beq _080531E6 ldr r0, _080531E8 @ =gUnk_030010A0 ldr r5, _080531EC @ =gUnk_02033A90 ldrb r1, [r5, #1] adds r0, #0x2e strb r1, [r0] movs r0, #0x15 bl sub_0807CC30 cmp r0, #0 beq _080531E6 movs r0, #0x51 bl sub_0807CC30 cmp r0, #0 bne _080531DC bl sub_0805E8D4 adds r4, r0, #0 cmp r4, #0 beq _080531DC movs r0, #9 strb r0, [r4, #8] movs r0, #0x39 strb r0, [r4, #9] adds r0, r4, #0 movs r1, #8 bl sub_0805EA2C ldr r0, _080531F0 @ =gUnk_02034350 ldrb r0, [r0] cmp r0, #0 bne _080531DC ldr r0, _080531F4 @ =gUnk_02002AA0 ldrb r1, [r5, #1] bl sub_0801D5A8 cmp r0, #0 bne _080531DC movs r0, #1 strb r0, [r4, #0xb] movs r0, #3 bl sub_08078A90 bl sub_0805E5A8 _080531DC: ldr r0, _080531F4 @ =gUnk_02002AA0 ldr r1, _080531EC @ =gUnk_02033A90 ldrb r1, [r1, #1] bl sub_0801D5BC _080531E6: pop {r4, r5, pc} .align 2, 0 _080531E8: .4byte gUnk_030010A0 _080531EC: .4byte gUnk_02033A90 _080531F0: .4byte gUnk_02034350 _080531F4: .4byte gUnk_02002AA0 thumb_func_start sub_080531F8 sub_080531F8: @ 0x080531F8 push {r4, r5, lr} ldr r1, _0805323C @ =gUnk_03003F80 ldr r4, _08053240 @ =gUnk_03001160 ldrh r0, [r4, #0x2e] strh r0, [r1, #0x16] ldrh r0, [r4, #0x32] strh r0, [r1, #0x18] bl sub_08053144 cmp r0, #0 beq _08053238 ldr r5, _08053244 @ =gUnk_030010AC ldr r1, _08053248 @ =gUnk_02002AC8 adds r0, r5, #0 movs r2, #0x20 bl sub_0801D66C bl sub_08052660 cmp r0, #0 beq _08053238 adds r1, r5, #0 subs r1, #0xc ldr r2, _0805324C @ =gUnk_03000BF0 ldrb r0, [r2, #4] strb r0, [r1, #0x16] ldrb r0, [r2, #5] strb r0, [r1, #0x17] ldrh r0, [r4, #0x2e] strh r0, [r1, #0x18] ldrh r0, [r4, #0x32] strh r0, [r1, #0x1a] _08053238: pop {r4, r5, pc} .align 2, 0 _0805323C: .4byte gUnk_03003F80 _08053240: .4byte gUnk_03001160 _08053244: .4byte gUnk_030010AC _08053248: .4byte gUnk_02002AC8 _0805324C: .4byte gUnk_03000BF0 thumb_func_start sub_08053250 sub_08053250: @ 0x08053250 push {r4, lr} ldr r0, _0805328C @ =gUnk_030010A0 movs r1, #0 strb r1, [r0, #0xf] ldr r3, _08053290 @ =gUnk_03001160 ldr r4, _08053294 @ =gUnk_03000BF0 ldrh r1, [r3, #0x2e] ldrh r2, [r4, #6] subs r1, r1, r2 strh r1, [r0, #0x10] ldrh r1, [r3, #0x32] ldrh r2, [r4, #8] subs r1, r1, r2 strh r1, [r0, #0x12] ldrb r1, [r3, #0x14] strb r1, [r0, #0xe] adds r3, #0x38 ldrb r1, [r3] strb r1, [r0, #0x14] ldrb r1, [r4, #4] strb r1, [r0, #0xc] ldrb r1, [r4, #5] strb r1, [r0, #0xd] adds r0, #0xc ldr r1, _08053298 @ =gUnk_02002AC8 movs r2, #0x20 bl sub_0801D66C pop {r4, pc} .align 2, 0 _0805328C: .4byte gUnk_030010A0 _08053290: .4byte gUnk_03001160 _08053294: .4byte gUnk_03000BF0 _08053298: .4byte gUnk_02002AC8 thumb_func_start sub_0805329C sub_0805329C: @ 0x0805329C push {lr} bl sub_08053144 cmp r0, #0 beq _080532E0 ldr r0, _080532B8 @ =gUnk_03000BF0 ldrb r0, [r0, #4] cmp r0, #0x48 beq _080532C2 cmp r0, #0x48 bgt _080532BC cmp r0, #0x18 beq _080532D6 b _080532DC .align 2, 0 _080532B8: .4byte gUnk_03000BF0 _080532BC: cmp r0, #0x50 beq _080532D0 b _080532DC _080532C2: ldr r1, _080532CC @ =gUnk_02002A40 movs r0, #0 strb r0, [r1, #7] b _080532E0 .align 2, 0 _080532CC: .4byte gUnk_02002A40 _080532D0: bl sub_080530B0 b _080532E0 _080532D6: bl sub_080532E4 b _080532E0 _080532DC: bl sub_08053460 _080532E0: pop {pc} .align 2, 0 thumb_func_start sub_080532E4 sub_080532E4: @ 0x080532E4 ldr r0, _08053318 @ =gUnk_0811E214 movs r1, #0xb0 lsls r1, r1, #1 adds r0, r0, r1 ldr r0, [r0] movs r3, #0xa5 lsls r3, r3, #1 adds r2, r0, r3 ldr r1, _0805331C @ =gUnk_030010A0 movs r0, #0x58 strb r0, [r1, #0x16] movs r0, #0x21 strb r0, [r1, #0x17] ldrh r0, [r2, #4] lsrs r0, r0, #1 ldrh r3, [r2] adds r0, r0, r3 strh r0, [r1, #0x18] strh r0, [r1, #0x1c] ldrh r0, [r2, #6] ldrh r2, [r2, #2] adds r0, r0, r2 adds r0, #0xa0 strh r0, [r1, #0x1a] strh r0, [r1, #0x1e] bx lr .align 2, 0 _08053318: .4byte gUnk_0811E214 _0805331C: .4byte gUnk_030010A0 thumb_func_start sub_08053320 sub_08053320: @ 0x08053320 push {r4, lr} ldr r0, _0805337C @ =gUnk_02034CB0 movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 bl sub_0801D630 ldr r0, _08053380 @ =gUnk_02021F30 adds r1, r4, #0 bl sub_0801D630 ldr r0, _08053384 @ =gUnk_020344B0 adds r1, r4, #0 bl sub_0801D630 ldr r0, _08053388 @ =gUnk_02001A40 movs r1, #0x80 lsls r1, r1, #5 bl sub_0801D630 movs r0, #0x10 bl sub_0801D7EC movs r0, #0x17 bl sub_0801D7EC ldr r0, _0805338C @ =gUnk_03000BF0 ldrb r0, [r0, #4] cmp r0, #4 bne _08053362 movs r0, #0x1a bl sub_0801D7EC _08053362: bl sub_08053390 movs r0, #0xb bl sub_0801D714 movs r0, #0xc bl sub_0801D714 movs r0, #0 movs r1, #0 bl sub_0801D79C pop {r4, pc} .align 2, 0 _0805337C: .4byte gUnk_02034CB0 _08053380: .4byte gUnk_02021F30 _08053384: .4byte gUnk_020344B0 _08053388: .4byte gUnk_02001A40 _0805338C: .4byte gUnk_03000BF0 thumb_func_start sub_08053390 sub_08053390: @ 0x08053390 push {lr} movs r0, #8 bl sub_0807CA84 movs r1, #0x19 cmp r0, #0 beq _080533A0 movs r1, #0x18 _080533A0: adds r0, r1, #0 bl sub_0801D7EC movs r0, #0xa bl sub_0807CA84 cmp r0, #0 beq _080533B6 movs r0, #0x1d bl sub_0801D7EC _080533B6: movs r0, #0xc bl sub_0807CA84 movs r1, #0x1b cmp r0, #0 beq _080533C4 movs r1, #0x1c _080533C4: adds r0, r1, #0 bl sub_0801D7EC pop {pc} thumb_func_start sub_080533CC sub_080533CC: @ 0x080533CC ldr r0, _08053400 @ =gUnk_020178E0 ldr r2, _08053404 @ =0xFFFFFE00 adds r1, r0, r2 ldrh r2, [r0] strh r2, [r1] adds r0, #2 adds r1, #2 ldrh r2, [r0] strh r2, [r1] adds r0, #2 adds r1, #2 ldrh r2, [r0] strh r2, [r1] adds r0, #2 adds r1, #2 ldrh r2, [r0] strh r2, [r1] ldrh r0, [r0, #2] strh r0, [r1, #2] ldr r2, _08053408 @ =gUnk_0200B644 ldr r0, [r2] movs r1, #8 orrs r0, r1 str r0, [r2] bx lr .align 2, 0 _08053400: .4byte gUnk_020178E0 _08053404: .4byte 0xFFFFFE00 _08053408: .4byte gUnk_0200B644 thumb_func_start sub_0805340C sub_0805340C: @ 0x0805340C push {r4, r5, r6, lr} ldr r5, _08053428 @ =gUnk_02002ECC movs r4, #0 ldr r6, _0805342C @ =gUnk_080FCB18 _08053414: ldm r6!, {r1} adds r0, r5, #0 bl _call_via_r1 adds r4, #1 adds r5, #4 cmp r4, #7 bls _08053414 pop {r4, r5, r6, pc} .align 2, 0 _08053428: .4byte gUnk_02002ECC _0805342C: .4byte gUnk_080FCB18 thumb_func_start nullsub_480 nullsub_480: @ 0x08053430 bx lr .align 2, 0 thumb_func_start sub_08053434 sub_08053434: @ 0x08053434 push {lr} adds r1, r0, #0 ldr r0, _0805345C @ =gUnk_02033A90 ldrb r0, [r0, #1] cmp r0, #0x1d bne _0805345A ldr r0, [r1] cmp r0, #0 beq _0805345A subs r0, #1 str r0, [r1] cmp r0, #0 bne _0805345A bl sub_08053460 movs r0, #5 movs r1, #6 bl sub_080A7138 _0805345A: pop {pc} .align 2, 0 _0805345C: .4byte gUnk_02033A90 thumb_func_start sub_08053460 sub_08053460: @ 0x08053460 push {lr} ldr r0, _08053488 @ =gUnk_02002A40 ldr r1, _0805348C @ =0x0000048C adds r0, r0, r1 movs r1, #0 str r1, [r0] movs r0, #0x8c lsls r0, r0, #4 movs r1, #0x79 bl sub_0807CB10 cmp r0, #0 beq _08053480 movs r0, #0x1c bl sub_0807CD80 _08053480: ldr r0, _08053490 @ =gUnk_080FCB38 bl sub_0805356C pop {pc} .align 2, 0 _08053488: .4byte gUnk_02002A40 _0805348C: .4byte 0x0000048C _08053490: .4byte gUnk_080FCB38 thumb_func_start sub_08053494 sub_08053494: @ 0x08053494 ldr r0, _080534A0 @ =gUnk_02002A40 ldr r1, _080534A4 @ =0x0000048C adds r0, r0, r1 ldr r1, _080534A8 @ =0x00002A30 str r1, [r0] bx lr .align 2, 0 _080534A0: .4byte gUnk_02002A40 _080534A4: .4byte 0x0000048C _080534A8: .4byte 0x00002A30 thumb_func_start sub_080534AC sub_080534AC: @ 0x080534AC push {r4, lr} movs r4, #0x8c lsls r4, r4, #4 adds r0, r4, #0 movs r1, #0x7c bl sub_0807CB10 cmp r0, #0 beq _080534D6 adds r0, r4, #0 movs r1, #0x7c bl sub_0807CD20 ldr r0, _080534D8 @ =gUnk_02002A40 ldr r1, _080534DC @ =0x0000048C adds r0, r0, r1 movs r1, #0 str r1, [r0] ldr r0, _080534E0 @ =0x80100000 bl sub_080A3268 _080534D6: pop {r4, pc} .align 2, 0 _080534D8: .4byte gUnk_02002A40 _080534DC: .4byte 0x0000048C _080534E0: .4byte 0x80100000 thumb_func_start sub_080534E4 sub_080534E4: @ 0x080534E4 push {lr} adds r1, r0, #0 ldr r0, _080534FC @ =gUnk_03000BF0 ldrb r0, [r0, #4] cmp r0, #0x1a beq _080534FA ldr r0, [r1] cmp r0, #0 beq _080534FA subs r0, #1 str r0, [r1] _080534FA: pop {pc} .align 2, 0 _080534FC: .4byte gUnk_03000BF0 thumb_func_start sub_08053500 sub_08053500: @ 0x08053500 ldr r0, _0805350C @ =gUnk_02002A40 ldr r1, _08053510 @ =0x00000494 adds r0, r0, r1 ldr r1, _08053514 @ =0x00008CA0 str r1, [r0] bx lr .align 2, 0 _0805350C: .4byte gUnk_02002A40 _08053510: .4byte 0x00000494 _08053514: .4byte 0x00008CA0 thumb_func_start sub_08053518 sub_08053518: @ 0x08053518 push {lr} bl sub_08053460 ldr r0, _08053568 @ =gUnk_080FCB62 bl sub_0805356C movs r0, #0x1b bl sub_0807CC30 cmp r0, #0 bne _08053534 movs r0, #0x1a bl sub_0807CD80 _08053534: movs r0, #0x40 bl sub_0807CA84 cmp r0, #0 bne _08053544 movs r0, #2 bl sub_0807CD80 _08053544: movs r0, #0x41 bl sub_0807CA84 cmp r0, #0 bne _08053554 movs r0, #3 bl sub_0807CD80 _08053554: movs r0, #0x42 bl sub_0807CA84 cmp r0, #0 bne _08053564 movs r0, #5 bl sub_0807CD80 _08053564: pop {pc} .align 2, 0 _08053568: .4byte gUnk_080FCB62 thumb_func_start sub_0805356C sub_0805356C: @ 0x0805356C push {r4, r5, lr} adds r4, r0, #0 ldrh r0, [r4] ldr r1, _0805358C @ =0x0000FFFF cmp r0, r1 beq _0805358A adds r5, r1, #0 _0805357A: ldrh r0, [r4] ldrh r1, [r4, #2] bl sub_0807CD20 adds r4, #4 ldrh r0, [r4] cmp r0, r5 bne _0805357A _0805358A: pop {r4, r5, pc} .align 2, 0 _0805358C: .4byte 0x0000FFFF thumb_func_start sub_08053590 sub_08053590: @ 0x08053590 push {lr} ldr r1, _080535A4 @ =gUnk_080FCBB4 ldr r0, _080535A8 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _080535A4: .4byte gUnk_080FCBB4 _080535A8: .4byte gUnk_02000080 thumb_func_start sub_080535AC sub_080535AC: @ 0x080535AC push {lr} ldr r2, _080535DC @ =gUnk_02000080 movs r1, #1 strb r1, [r2, #6] movs r0, #0x78 strh r0, [r2, #8] ldr r0, _080535E0 @ =gUnk_02032EC0 strb r1, [r0, #6] ldr r0, _080535E4 @ =gUnk_02000070 strb r1, [r0] ldr r2, _080535E8 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _080535EC @ =0x0000FEFF ands r0, r1 strh r0, [r2] ldr r0, _080535F0 @ =gUnk_080FCB94 bl sub_0804ADDC movs r0, #6 movs r1, #8 bl sub_08050054 pop {pc} .align 2, 0 _080535DC: .4byte gUnk_02000080 _080535E0: .4byte gUnk_02032EC0 _080535E4: .4byte gUnk_02000070 _080535E8: .4byte gUnk_03000F50 _080535EC: .4byte 0x0000FEFF _080535F0: .4byte gUnk_080FCB94 thumb_func_start sub_080535F4 sub_080535F4: @ 0x080535F4 push {lr} ldr r0, _0805360C @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08053608 bl sub_0805E5B4 ldr r1, _08053610 @ =gUnk_02000080 movs r0, #2 strb r0, [r1, #6] _08053608: pop {pc} .align 2, 0 _0805360C: .4byte gUnk_03000FD0 _08053610: .4byte gUnk_02000080 thumb_func_start nullsub_481 nullsub_481: @ 0x08053614 bx lr .align 2, 0 thumb_func_start sub_08053618 sub_08053618: @ 0x08053618 push {lr} ldr r1, _08053630 @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _0805362C bl sub_08052004 _0805362C: pop {pc} .align 2, 0 _08053630: .4byte gUnk_02000080 thumb_func_start sub_08053634 sub_08053634: @ 0x08053634 push {lr} ldr r1, _08053644 @ =gUnk_02032EC0 movs r0, #3 strb r0, [r1] bl sub_08056418 pop {pc} .align 2, 0 _08053644: .4byte gUnk_02032EC0 thumb_func_start sub_08053648 sub_08053648: @ 0x08053648 push {lr} movs r0, #0x2d movs r1, #0 movs r2, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _08053674 ldr r0, _08053678 @ =gUnk_03000BF0 movs r3, #0xb4 lsls r3, r3, #2 adds r1, r3, #0 ldrh r3, [r0, #6] adds r1, r1, r3 strh r1, [r2, #0x2e] movs r3, #0xa4 lsls r3, r3, #1 adds r1, r3, #0 ldrh r0, [r0, #8] adds r1, r1, r0 strh r1, [r2, #0x32] _08053674: pop {pc} .align 2, 0 _08053678: .4byte gUnk_03000BF0 thumb_func_start sub_0805367C sub_0805367C: @ 0x0805367C ldr r1, _08053688 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] bx lr .align 2, 0 _08053688: .4byte gUnk_02000080 thumb_func_start sub_0805368C sub_0805368C: @ 0x0805368C push {lr} movs r0, #6 movs r1, #0x5d movs r2, #6 bl sub_0805EB00 cmp r0, #0 beq _080536A6 bl sub_0805E7BC movs r0, #0xf0 bl sub_080A3268 _080536A6: pop {pc} thumb_func_start sub_080536A8 sub_080536A8: @ 0x080536A8 push {lr} movs r0, #5 movs r1, #5 movs r2, #4 movs r3, #0x10 bl sub_080A71C4 pop {pc} thumb_func_start sub_080536B8 sub_080536B8: @ 0x080536B8 push {lr} movs r0, #5 movs r1, #3 movs r2, #4 movs r3, #4 bl sub_080A71C4 movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 bl sub_08050054 pop {pc} .align 2, 0 thumb_func_start sub_080536D4 sub_080536D4: @ 0x080536D4 push {lr} ldr r1, _080536E8 @ =gUnk_080FCCFC ldr r0, _080536EC @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _080536E8: .4byte gUnk_080FCCFC _080536EC: .4byte gUnk_02000080 thumb_func_start sub_080536F0 sub_080536F0: @ 0x080536F0 push {lr} ldr r1, _08053704 @ =gUnk_080FCD38 ldr r0, _08053708 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08053704: .4byte gUnk_080FCD38 _08053708: .4byte gUnk_02000080 thumb_func_start sub_0805370C sub_0805370C: @ 0x0805370C push {lr} ldr r1, _08053730 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] ldr r1, _08053734 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] bl sub_08051FF0 ldr r0, _08053738 @ =gUnk_080FCC54 bl sub_0804ADDC movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {pc} .align 2, 0 _08053730: .4byte gUnk_02000080 _08053734: .4byte gUnk_02000070 _08053738: .4byte gUnk_080FCC54 thumb_func_start sub_0805373C sub_0805373C: @ 0x0805373C push {lr} ldr r1, _08053750 @ =gUnk_080FCD40 ldr r0, _08053754 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08053750: .4byte gUnk_080FCD40 _08053754: .4byte gUnk_02000080 thumb_func_start sub_08053758 sub_08053758: @ 0x08053758 push {r4, lr} ldr r1, _080537DC @ =gUnk_02000080 movs r2, #0 movs r3, #1 strb r3, [r1, #6] movs r4, #0 movs r0, #0x78 strh r0, [r1, #8] movs r0, #0x1e strh r0, [r1, #0xa] strb r4, [r1, #0x10] ldr r0, _080537E0 @ =gUnk_02032EC0 strb r3, [r0, #6] ldr r0, _080537E4 @ =gUnk_02025EB0 str r2, [r0] ldr r0, _080537E8 @ =gUnk_0200B650 str r2, [r0] ldr r0, _080537EC @ =gUnk_03000BF0 str r2, [r0, #0x30] strh r2, [r0, #0xc] strh r2, [r0, #0xa] bl sub_0801B170 movs r0, #0 bl sub_0801DA90 ldr r2, _080537F0 @ =gUnk_03000F50 movs r0, #0x99 lsls r0, r0, #6 strh r0, [r2] adds r1, r2, #0 adds r1, #0x66 ldr r0, _080537F4 @ =0x00002244 strh r0, [r1] adds r1, #2 movs r0, #0x80 lsls r0, r0, #5 strh r0, [r1] subs r1, #8 movs r0, #0x1f strh r0, [r1] adds r1, #2 movs r0, #0x3f strh r0, [r1] subs r1, #0xa movs r0, #0xf0 strh r0, [r1] adds r1, #4 movs r0, #0x60 strh r0, [r1] ldr r0, _080537F8 @ =0x00001C4E strh r0, [r2, #0x14] ldr r0, _080537FC @ =0x00001DC1 strh r0, [r2, #0x20] movs r0, #0xf bl sub_080A3268 bl sub_0805E5B4 movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 bl sub_08050054 pop {r4, pc} .align 2, 0 _080537DC: .4byte gUnk_02000080 _080537E0: .4byte gUnk_02032EC0 _080537E4: .4byte gUnk_02025EB0 _080537E8: .4byte gUnk_0200B650 _080537EC: .4byte gUnk_03000BF0 _080537F0: .4byte gUnk_03000F50 _080537F4: .4byte 0x00002244 _080537F8: .4byte 0x00001C4E _080537FC: .4byte 0x00001DC1 thumb_func_start sub_08053800 sub_08053800: @ 0x08053800 push {r4, r5, lr} ldr r0, _0805387C @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _0805387A ldr r1, _08053880 @ =gUnk_02000080 ldrb r5, [r1, #0x10] lsls r4, r5, #1 adds r4, r4, r5 lsls r4, r4, #2 ldr r0, _08053884 @ =gUnk_080FCCB4 adds r4, r4, r0 ldrh r0, [r4, #8] movs r2, #0 strh r0, [r1, #8] movs r0, #0x1e strh r0, [r1, #0xa] ldrb r0, [r1, #0x10] adds r0, #1 strb r0, [r1, #0x10] ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] strb r2, [r1, #7] adds r0, r5, #0 adds r0, #0x8a bl sub_0801D714 adds r0, r5, #0 adds r0, #0x3a bl sub_0801D7EC ldr r0, _08053888 @ =gUnk_02021F30 movs r1, #0x80 lsls r1, r1, #4 bl sub_0801D630 ldr r0, _0805388C @ =0x00000F01 adds r5, r5, r0 ldr r1, [r4] adds r0, r5, #0 bl sub_0805F46C ldr r2, _08053890 @ =gUnk_03000F50 movs r0, #1 strh r0, [r2, #0x1a] adds r1, r2, #0 adds r1, #0x68 movs r0, #0x10 strh r0, [r1] ldrh r1, [r4, #4] adds r0, r2, #0 adds r0, #0x58 strh r1, [r0] ldrh r1, [r4, #6] adds r0, #4 strh r1, [r0] ldrh r1, [r4, #0xa] movs r0, #4 bl sub_08050054 _0805387A: pop {r4, r5, pc} .align 2, 0 _0805387C: .4byte gUnk_03000FD0 _08053880: .4byte gUnk_02000080 _08053884: .4byte gUnk_080FCCB4 _08053888: .4byte gUnk_02021F30 _0805388C: .4byte 0x00000F01 _08053890: .4byte gUnk_03000F50 thumb_func_start sub_08053894 sub_08053894: @ 0x08053894 push {r4, lr} ldr r0, _080538B4 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080538F8 ldr r1, _080538B8 @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] ldrh r0, [r1, #0xa] adds r4, r1, #0 cmp r0, #0 beq _080538BC subs r0, #1 strh r0, [r4, #0xa] b _080538E4 .align 2, 0 _080538B4: .4byte gUnk_03000FD0 _080538B8: .4byte gUnk_02000080 _080538BC: ldr r0, _080538FC @ =gUnk_030010A0 ldr r0, [r0] movs r1, #1 ands r0, r1 cmp r0, #0 bne _080538E4 ldrb r1, [r4, #7] cmp r1, #0xf bhi _080538E4 adds r1, #1 strb r1, [r4, #7] lsls r1, r1, #0x18 ldr r3, _08053900 @ =gUnk_03000F50 lsrs r2, r1, #0x10 lsrs r1, r1, #0x19 movs r0, #0x10 subs r0, r0, r1 orrs r2, r0 adds r3, #0x68 strh r2, [r3] _080538E4: ldrh r0, [r4, #8] cmp r0, #0 bne _080538F8 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] movs r0, #5 movs r1, #8 bl sub_08050054 _080538F8: pop {r4, pc} .align 2, 0 _080538FC: .4byte gUnk_030010A0 _08053900: .4byte gUnk_03000F50 thumb_func_start sub_08053904 sub_08053904: @ 0x08053904 push {r4, lr} ldr r0, _08053924 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08053968 ldr r1, _08053928 @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] ldrh r0, [r1, #0xa] adds r4, r1, #0 cmp r0, #0 beq _0805392C subs r0, #1 strh r0, [r4, #0xa] b _08053954 .align 2, 0 _08053924: .4byte gUnk_03000FD0 _08053928: .4byte gUnk_02000080 _0805392C: ldr r0, _0805396C @ =gUnk_030010A0 ldr r0, [r0] movs r1, #1 ands r0, r1 cmp r0, #0 bne _08053954 ldrb r1, [r4, #7] cmp r1, #0xf bhi _08053954 adds r1, #1 strb r1, [r4, #7] lsls r1, r1, #0x18 ldr r3, _08053970 @ =gUnk_03000F50 lsrs r2, r1, #0x10 lsrs r1, r1, #0x19 movs r0, #0x10 subs r0, r0, r1 orrs r2, r0 adds r3, #0x68 strh r2, [r3] _08053954: ldrh r0, [r4, #8] cmp r0, #0 bne _08053968 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] movs r0, #5 movs r1, #1 bl sub_08050054 _08053968: pop {r4, pc} .align 2, 0 _0805396C: .4byte gUnk_030010A0 _08053970: .4byte gUnk_03000F50 thumb_func_start sub_08053974 sub_08053974: @ 0x08053974 push {lr} ldr r0, _080539AC @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080539A8 bl sub_0804FFE4 movs r0, #1 bl sub_0801DA90 bl sub_080197AC bl sub_08051F78 ldr r0, _080539B0 @ =gUnk_080FCBC4 bl sub_0804ADDC movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 bl sub_08050054 ldr r1, _080539B4 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] _080539A8: pop {pc} .align 2, 0 _080539AC: .4byte gUnk_03000FD0 _080539B0: .4byte gUnk_080FCBC4 _080539B4: .4byte gUnk_02000080 thumb_func_start nullsub_482 nullsub_482: @ 0x080539B8 bx lr .align 2, 0 thumb_func_start sub_080539BC sub_080539BC: @ 0x080539BC push {lr} bl sub_080197AC bl sub_0805E89C movs r0, #0x22 movs r1, #0x11 movs r2, #0 movs r3, #0 bl sub_08051F9C movs r0, #0x22 movs r1, #0x11 bl sub_0804B0B0 ldr r0, _080539EC @ =gUnk_080FCC14 bl sub_0804ADDC ldr r1, _080539F0 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] pop {pc} .align 2, 0 _080539EC: .4byte gUnk_080FCC14 _080539F0: .4byte gUnk_02000080 thumb_func_start sub_080539F4 sub_080539F4: @ 0x080539F4 push {lr} ldr r0, _08053A14 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08053A10 movs r0, #1 bl sub_0801DA90 ldr r0, _08053A18 @ =gUnk_02000080 ldrb r1, [r0, #6] adds r1, #1 strb r1, [r0, #6] movs r1, #0x3c strh r1, [r0, #8] _08053A10: pop {pc} .align 2, 0 _08053A14: .4byte gUnk_03000FD0 _08053A18: .4byte gUnk_02000080 thumb_func_start sub_08053A1C sub_08053A1C: @ 0x08053A1C push {r4, lr} ldr r1, _08053A50 @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _08053A4E ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] movs r4, #8 movs r0, #8 strh r0, [r1, #8] ldr r0, _08053A54 @ =0x00000F07 bl sub_08056378 ldr r1, _08053A58 @ =gUnk_02000050 movs r0, #1 strb r0, [r1, #6] strb r4, [r1, #7] movs r0, #4 movs r1, #8 bl sub_08050054 _08053A4E: pop {r4, pc} .align 2, 0 _08053A50: .4byte gUnk_02000080 _08053A54: .4byte 0x00000F07 _08053A58: .4byte gUnk_02000050 thumb_func_start sub_08053A5C sub_08053A5C: @ 0x08053A5C push {lr} ldr r0, _08053A88 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08053A86 ldr r1, _08053A8C @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _08053A86 ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] movs r0, #5 movs r1, #8 bl sub_08050054 _08053A86: pop {pc} .align 2, 0 _08053A88: .4byte gUnk_02000050 _08053A8C: .4byte gUnk_02000080 thumb_func_start sub_08053A90 sub_08053A90: @ 0x08053A90 push {lr} ldr r0, _08053AA8 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08053AA4 ldr r1, _08053AAC @ =gUnk_02032EC0 movs r0, #3 strb r0, [r1] bl sub_080197AC _08053AA4: pop {pc} .align 2, 0 _08053AA8: .4byte gUnk_03000FD0 _08053AAC: .4byte gUnk_02032EC0 thumb_func_start sub_08053AB0 sub_08053AB0: @ 0x08053AB0 push {lr} ldr r1, _08053AC4 @ =gUnk_080FCDD4 ldr r0, _08053AC8 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08053AC4: .4byte gUnk_080FCDD4 _08053AC8: .4byte gUnk_02000080 thumb_func_start sub_08053ACC sub_08053ACC: @ 0x08053ACC push {lr} ldr r1, _08053AF4 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] ldr r1, _08053AF8 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] bl sub_08051FF0 ldr r0, _08053AFC @ =gUnk_080FCD84 bl sub_0804ADDC movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 bl sub_08050054 pop {pc} .align 2, 0 _08053AF4: .4byte gUnk_02000080 _08053AF8: .4byte gUnk_02000070 _08053AFC: .4byte gUnk_080FCD84 thumb_func_start sub_08053B00 sub_08053B00: @ 0x08053B00 ldr r1, _08053B0C @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] bx lr .align 2, 0 _08053B0C: .4byte gUnk_02000080 thumb_func_start sub_08053B10 sub_08053B10: @ 0x08053B10 push {lr} movs r0, #1 bl sub_0807CC3C cmp r0, #0 beq _08053B34 ldr r0, _08053B38 @ =gUnk_02000080 ldrb r1, [r0, #5] adds r1, #1 strb r1, [r0, #5] movs r0, #1 bl sub_0801DA90 movs r1, #0x80 lsls r1, r1, #1 movs r0, #4 bl sub_08050054 _08053B34: pop {pc} .align 2, 0 _08053B38: .4byte gUnk_02000080 thumb_func_start sub_08053B3C sub_08053B3C: @ 0x08053B3C push {r4, lr} movs r4, #0x80 lsls r4, r4, #1 movs r0, #5 movs r1, #4 movs r2, #5 adds r3, r4, #0 bl sub_080A71C4 movs r0, #5 adds r1, r4, #0 bl sub_08050054 pop {r4, pc} thumb_func_start sub_08053B58 sub_08053B58: @ 0x08053B58 push {lr} ldr r1, _08053B6C @ =gUnk_080FCEB0 ldr r0, _08053B70 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08053B6C: .4byte gUnk_080FCEB0 _08053B70: .4byte gUnk_02000080 thumb_func_start sub_08053B74 sub_08053B74: @ 0x08053B74 push {lr} ldr r1, _08053BA0 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] ldr r1, _08053BA4 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] ldr r0, _08053BA8 @ =gUnk_080FCDE0 bl sub_0804ADDC bl sub_0805E5B4 bl sub_0805E470 movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 bl sub_08050054 pop {pc} .align 2, 0 _08053BA0: .4byte gUnk_02000080 _08053BA4: .4byte gUnk_02000070 _08053BA8: .4byte gUnk_080FCDE0 thumb_func_start sub_08053BAC sub_08053BAC: @ 0x08053BAC ldr r1, _08053BB8 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] bx lr .align 2, 0 _08053BB8: .4byte gUnk_02000080 thumb_func_start sub_08053BBC sub_08053BBC: @ 0x08053BBC push {lr} movs r0, #0 bl sub_0807CC3C cmp r0, #0 beq _08053BE0 ldr r0, _08053BE4 @ =gUnk_02000080 ldrb r1, [r0, #5] adds r1, #1 strb r1, [r0, #5] movs r0, #1 bl sub_0801DA90 movs r1, #0x80 lsls r1, r1, #1 movs r0, #4 bl sub_08050054 _08053BE0: pop {pc} .align 2, 0 _08053BE4: .4byte gUnk_02000080 thumb_func_start sub_08053BE8 sub_08053BE8: @ 0x08053BE8 push {r4, lr} movs r4, #0x80 lsls r4, r4, #1 movs r0, #5 movs r1, #2 movs r2, #5 adds r3, r4, #0 bl sub_080A71C4 movs r0, #5 adds r1, r4, #0 bl sub_08050054 pop {r4, pc} thumb_func_start sub_08053C04 sub_08053C04: @ 0x08053C04 push {lr} ldr r1, _08053C18 @ =gUnk_080FCEEC ldr r0, _08053C1C @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08053C18: .4byte gUnk_080FCEEC _08053C1C: .4byte gUnk_02000080 thumb_func_start sub_08053C20 sub_08053C20: @ 0x08053C20 push {lr} ldr r1, _08053C50 @ =gUnk_02000080 movs r2, #1 strb r2, [r1, #6] movs r0, #0x78 strh r0, [r1, #8] ldr r0, _08053C54 @ =gUnk_02000070 strb r2, [r0] bl sub_08051FF0 movs r0, #4 bl sub_0805B4D0 ldr r0, _08053C58 @ =gUnk_080FCEBC bl sub_0804ADDC movs r0, #4 movs r1, #0x10 bl sub_08050054 movs r0, #0x33 bl sub_080A3268 pop {pc} .align 2, 0 _08053C50: .4byte gUnk_02000080 _08053C54: .4byte gUnk_02000070 _08053C58: .4byte gUnk_080FCEBC thumb_func_start nullsub_483 nullsub_483: @ 0x08053C5C bx lr .align 2, 0 thumb_func_start sub_08053C60 sub_08053C60: @ 0x08053C60 push {lr} movs r0, #5 movs r1, #2 bl sub_08050054 movs r0, #0xf4 bl sub_080A3268 ldr r0, _08053C80 @ =0x80100000 bl sub_080A3268 movs r0, #3 bl sub_08056010 pop {pc} .align 2, 0 _08053C80: .4byte 0x80100000 thumb_func_start sub_08053C84 sub_08053C84: @ 0x08053C84 ldr r1, _08053C8C @ =gUnk_02000080 movs r0, #2 strb r0, [r1, #6] bx lr .align 2, 0 _08053C8C: .4byte gUnk_02000080 thumb_func_start sub_08053C90 sub_08053C90: @ 0x08053C90 push {lr} ldr r1, _08053CA4 @ =gUnk_080FCEF8 ldr r0, _08053CA8 @ =gUnk_02000080 ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08053CA4: .4byte gUnk_080FCEF8 _08053CA8: .4byte gUnk_02000080 thumb_func_start sub_08053CAC sub_08053CAC: @ 0x08053CAC push {lr} ldr r1, _08053CC0 @ =gUnk_080FCFA4 ldr r0, _08053CC4 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08053CC0: .4byte gUnk_080FCFA4 _08053CC4: .4byte gUnk_02000080 thumb_func_start sub_08053CC8 sub_08053CC8: @ 0x08053CC8 push {r4, r5, r6, lr} ldr r6, _08053D20 @ =gUnk_02000080 ldrb r4, [r6, #3] lsls r4, r4, #4 ldr r0, _08053D24 @ =gUnk_080FCF04 adds r4, r4, r0 adds r0, r4, #0 adds r0, #8 str r0, [r6, #0xc] ldr r0, [r4] bl sub_0804ADDC ldrb r0, [r4, #4] ldrb r1, [r4, #5] movs r2, #1 bl sub_0804B0FC bl sub_0804ADDC ldrb r0, [r4, #4] ldrb r1, [r4, #5] movs r2, #2 bl sub_0804B0FC bl sub_0804ADDC movs r5, #1 strb r5, [r6, #6] ldr r2, _08053D28 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _08053D2C @ =0x0000FEFF ands r0, r1 strh r0, [r2] ldr r0, _08053D30 @ =gUnk_02000070 strb r5, [r0] movs r0, #4 movs r1, #0x10 bl sub_08050054 ldrb r0, [r4, #5] cmp r0, #0x1d bne _08053D1E strh r5, [r6, #0xa] _08053D1E: pop {r4, r5, r6, pc} .align 2, 0 _08053D20: .4byte gUnk_02000080 _08053D24: .4byte gUnk_080FCF04 _08053D28: .4byte gUnk_03000F50 _08053D2C: .4byte 0x0000FEFF _08053D30: .4byte gUnk_02000070 thumb_func_start sub_08053D34 sub_08053D34: @ 0x08053D34 push {r4, lr} ldr r1, _08053D88 @ =gUnk_02000080 ldrh r0, [r1, #0xa] cmp r0, #0 beq _08053D72 movs r0, #0 strh r0, [r1, #0xa] movs r4, #0xd0 lsls r4, r4, #3 adds r0, r4, #0 movs r1, #0x3d bl sub_0807CB10 cmp r0, #0 beq _08053D5C movs r0, #0x74 movs r1, #0xc4 movs r2, #1 bl sub_0807B314 _08053D5C: adds r0, r4, #0 movs r1, #0x3e bl sub_0807CB10 cmp r0, #0 beq _08053D72 movs r0, #0x74 movs r1, #0xcc movs r2, #1 bl sub_0807B314 _08053D72: ldr r0, _08053D8C @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08053D86 ldr r1, _08053D88 @ =gUnk_02000080 movs r0, #0x78 strh r0, [r1, #8] ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] _08053D86: pop {r4, pc} .align 2, 0 _08053D88: .4byte gUnk_02000080 _08053D8C: .4byte gUnk_03000FD0 thumb_func_start sub_08053D90 sub_08053D90: @ 0x08053D90 push {lr} ldr r1, _08053DB0 @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _08053DAC ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] movs r0, #0x10 bl sub_080500F4 _08053DAC: pop {pc} .align 2, 0 _08053DB0: .4byte gUnk_02000080 thumb_func_start sub_08053DB4 sub_08053DB4: @ 0x08053DB4 push {r4, r5, lr} ldr r0, _08053E20 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08053E1C ldr r5, _08053E24 @ =gUnk_02000080 ldr r4, [r5, #0xc] ldrb r0, [r4, #4] ldrb r1, [r4, #5] bl sub_08052FF4 bl sub_0807C740 ldr r1, _08053E28 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] ldr r1, _08053E2C @ =gUnk_03000BF0 movs r0, #6 ldrsb r0, [r4, r0] ldrh r2, [r1, #0xa] adds r0, r0, r2 strh r0, [r1, #0xa] movs r0, #7 ldrsb r0, [r4, r0] ldrh r2, [r1, #0xc] adds r0, r0, r2 strh r0, [r1, #0xc] ldr r0, [r4] bl sub_0804ADDC ldrb r0, [r4, #4] ldrb r1, [r4, #5] movs r2, #1 bl sub_0804B0FC bl sub_0804ADDC ldrb r0, [r4, #4] ldrb r1, [r4, #5] movs r2, #2 bl sub_0804B0FC bl sub_0804ADDC movs r0, #0x78 strh r0, [r5, #8] ldrb r0, [r5, #6] adds r0, #1 strb r0, [r5, #6] movs r0, #0x10 bl sub_080500F4 _08053E1C: pop {r4, r5, pc} .align 2, 0 _08053E20: .4byte gUnk_03000FD0 _08053E24: .4byte gUnk_02000080 _08053E28: .4byte gUnk_02000070 _08053E2C: .4byte gUnk_03000BF0 thumb_func_start sub_08053E30 sub_08053E30: @ 0x08053E30 push {lr} ldr r0, _08053E50 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08053E4E ldr r1, _08053E54 @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _08053E4E ldrb r0, [r1, #5] adds r0, #1 strb r0, [r1, #5] _08053E4E: pop {pc} .align 2, 0 _08053E50: .4byte gUnk_03000FD0 _08053E54: .4byte gUnk_02000080 thumb_func_start sub_08053E58 sub_08053E58: @ 0x08053E58 push {lr} ldr r1, _08053E6C @ =gUnk_080FD108 ldr r0, _08053E70 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08053E6C: .4byte gUnk_080FD108 _08053E70: .4byte gUnk_02000080 thumb_func_start sub_08053E74 sub_08053E74: @ 0x08053E74 push {r4, lr} ldr r0, _08053EB0 @ =gUnk_080FCFB8 ldr r4, _08053EB4 @ =gUnk_02000080 str r0, [r4, #0xc] ldr r0, [r0] bl sub_0804ADDC movs r0, #0x78 strh r0, [r4, #8] movs r0, #0x3c strh r0, [r4, #0xa] ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] ldr r2, _08053EB8 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _08053EBC @ =0x0000FEFF ands r0, r1 strh r0, [r2] ldr r1, _08053EC0 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #1 bl sub_0805E450 movs r0, #4 movs r1, #8 bl sub_08050054 pop {r4, pc} .align 2, 0 _08053EB0: .4byte gUnk_080FCFB8 _08053EB4: .4byte gUnk_02000080 _08053EB8: .4byte gUnk_03000F50 _08053EBC: .4byte 0x0000FEFF _08053EC0: .4byte gUnk_02000070 thumb_func_start sub_08053EC4 sub_08053EC4: @ 0x08053EC4 push {r4, lr} ldr r0, _08053EF4 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08053EF0 ldr r4, _08053EF8 @ =gUnk_02000080 ldrh r0, [r4, #0xa] subs r0, #1 strh r0, [r4, #0xa] lsls r0, r0, #0x10 cmp r0, #0 bne _08053EF0 ldr r1, [r4, #0xc] adds r0, r1, #0 adds r0, #0xc str r0, [r4, #0xc] ldr r0, [r1, #4] bl sub_0804ADDC ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] _08053EF0: pop {r4, pc} .align 2, 0 _08053EF4: .4byte gUnk_03000FD0 _08053EF8: .4byte gUnk_02000080 thumb_func_start sub_08053EFC sub_08053EFC: @ 0x08053EFC push {lr} ldr r1, _08053F1C @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _08053F18 ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] movs r0, #8 bl sub_080500F4 _08053F18: pop {pc} .align 2, 0 _08053F1C: .4byte gUnk_02000080 thumb_func_start sub_08053F20 sub_08053F20: @ 0x08053F20 push {r4, r5, lr} ldr r0, _08053F78 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08053F74 bl sub_0805E89C ldr r5, _08053F7C @ =gUnk_02000080 ldr r4, [r5, #0xc] ldrb r0, [r4, #8] ldrb r1, [r4, #9] bl sub_08052FF4 bl sub_0807C740 ldr r1, _08053F80 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] ldr r1, _08053F84 @ =gUnk_03000BF0 movs r0, #0xa ldrsb r0, [r4, r0] ldrh r2, [r1, #0xa] adds r0, r0, r2 strh r0, [r1, #0xa] movs r0, #0xb ldrsb r0, [r4, r0] ldrh r2, [r1, #0xc] adds r0, r0, r2 strh r0, [r1, #0xc] ldr r0, [r4] bl sub_0804ADDC movs r0, #0x78 strh r0, [r5, #8] movs r0, #0x3c strh r0, [r5, #0xa] ldrb r0, [r5, #6] adds r0, #1 strb r0, [r5, #6] movs r0, #8 bl sub_080500F4 _08053F74: pop {r4, r5, pc} .align 2, 0 _08053F78: .4byte gUnk_03000FD0 _08053F7C: .4byte gUnk_02000080 _08053F80: .4byte gUnk_02000070 _08053F84: .4byte gUnk_03000BF0 thumb_func_start sub_08053F88 sub_08053F88: @ 0x08053F88 push {lr} ldr r0, _08053FAC @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08053FAA ldr r1, _08053FB0 @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _08053FAA ldrb r0, [r1, #5] adds r0, #1 strb r0, [r1, #5] bl sub_0805E470 _08053FAA: pop {pc} .align 2, 0 _08053FAC: .4byte gUnk_03000FD0 _08053FB0: .4byte gUnk_02000080 thumb_func_start sub_08053FB4 sub_08053FB4: @ 0x08053FB4 push {lr} ldr r1, _08053FC8 @ =gUnk_080FD138 ldr r0, _08053FCC @ =gUnk_02000080 ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08053FC8: .4byte gUnk_080FD138 _08053FCC: .4byte gUnk_02000080 thumb_func_start sub_08053FD0 sub_08053FD0: @ 0x08053FD0 lsls r0, r0, #3 ldr r1, _08053FDC @ =gUnk_080FD964 adds r0, r0, r1 ldrh r0, [r0, #4] bx lr .align 2, 0 _08053FDC: .4byte gUnk_080FD964 thumb_func_start sub_08053FE0 sub_08053FE0: @ 0x08053FE0 lsls r0, r0, #3 ldr r1, _08053FEC @ =gUnk_080FD964 adds r0, r0, r1 ldrh r0, [r0] bx lr .align 2, 0 _08053FEC: .4byte gUnk_080FD964 thumb_func_start sub_08053FF0 sub_08053FF0: @ 0x08053FF0 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 adds r7, r1, #0 bl sub_0807CA84 adds r5, r0, #0 lsls r1, r6, #3 ldr r0, _08054010 @ =gUnk_080FD5B4 adds r4, r1, r0 cmp r5, #0 bne _08054014 ldrh r0, [r4, #4] mov r8, r0 b _08054018 .align 2, 0 _08054010: .4byte gUnk_080FD5B4 _08054014: ldrh r2, [r4, #6] mov r8, r2 _08054018: adds r0, r6, #0 bl sub_080544C8 cmp r0, #0 bne _08054034 adds r0, r6, #0 bl sub_08054398 cmp r5, #0 bne _08054034 adds r0, r6, #0 movs r1, #1 bl sub_0807CAA0 _08054034: ldrb r0, [r4, #1] cmp r0, #0x12 bls _0805403C b _0805427C _0805403C: lsls r0, r0, #2 ldr r1, _08054048 @ =_0805404C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08054048: .4byte _0805404C _0805404C: @ jump table .4byte _0805427C @ case 0 .4byte _08054098 @ case 1 .4byte _080540A6 @ case 2 .4byte _080540C0 @ case 3 .4byte _08054104 @ case 4 .4byte _0805414C @ case 5 .4byte _08054154 @ case 6 .4byte _08054194 @ case 7 .4byte _080541B6 @ case 8 .4byte _080541F0 @ case 9 .4byte _08054212 @ case 10 .4byte _080541F8 @ case 11 .4byte _08054238 @ case 12 .4byte _08054174 @ case 13 .4byte _08054240 @ case 14 .4byte _0805425C @ case 15 .4byte _08054264 @ case 16 .4byte _080541B0 @ case 17 .4byte _0805417C @ case 18 _08054098: ldrb r0, [r4, #2] bl sub_080526A0 movs r0, #0x71 bl sub_080A3268 b _0805427C _080540A6: ldr r0, _080540BC @ =gUnk_080FD5A8 ldrb r1, [r4, #2] lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] bl sub_080526CC movs r0, #0x6f bl sub_080A3268 b _0805427C .align 2, 0 _080540BC: .4byte gUnk_080FD5A8 _080540C0: movs r5, #0 movs r4, #0x1c b _080540CA _080540C6: adds r4, r1, #1 adds r5, #1 _080540CA: cmp r5, #3 bls _080540D0 b _0805427C _080540D0: adds r0, r4, #0 bl sub_0807CA84 adds r1, r4, #0 cmp r0, #0 bne _080540C6 adds r6, r4, #0 ldr r0, _08054100 @ =gUnk_02002A40 adds r0, #0xb6 adds r1, r5, r0 ldrb r0, [r1] cmp r0, #0 bne _080540EE movs r0, #0x20 strb r0, [r1] _080540EE: adds r0, r6, #0 movs r1, #1 bl sub_0807CAA0 adds r0, r6, #0 bl sub_08054398 b _0805427C .align 2, 0 _08054100: .4byte gUnk_02002A40 _08054104: movs r5, #0 ldr r0, _08054144 @ =gUnk_02002A40 adds r2, r0, #0 adds r2, #0xb6 ldrb r1, [r2] adds r3, r0, #0 cmp r1, #0x20 beq _08054126 adds r1, r2, #0 _08054116: adds r5, #1 cmp r5, #3 bls _0805411E b _0805427C _0805411E: adds r0, r5, r1 ldrb r0, [r0] cmp r0, #0x20 bne _08054116 _08054126: cmp r5, #3 bls _0805412C b _0805427C _0805412C: adds r0, r3, #0 adds r0, #0xb6 adds r0, r5, r0 strb r6, [r0] adds r0, r6, #0 movs r1, #1 bl sub_0807CAA0 ldr r0, _08054148 @ =0x00000109 bl sub_080A3268 b _0805427C .align 2, 0 _08054144: .4byte gUnk_02002A40 _08054148: .4byte 0x00000109 _0805414C: movs r0, #1 bl sub_080526F8 b _0805424E _08054154: ldr r1, _08054168 @ =gUnk_02002A40 ldr r0, _0805416C @ =gUnk_02033A90 ldr r2, _08054170 @ =0x0000046C adds r1, r1, r2 ldrb r0, [r0, #3] adds r1, r1, r0 ldrb r0, [r1] ldrb r2, [r4, #2] orrs r0, r2 b _0805427A .align 2, 0 _08054168: .4byte gUnk_02002A40 _0805416C: .4byte gUnk_02033A90 _08054170: .4byte 0x0000046C _08054174: movs r0, #0x72 bl sub_0801E738 b _0805427C _0805417C: cmp r6, #0xb bne _0805418A movs r0, #0xc movs r1, #0 bl sub_0807CAA0 b _080541B0 _0805418A: movs r0, #0xb movs r1, #0 bl sub_0807CAA0 b _080541B0 _08054194: cmp r6, #7 bne _080541A2 movs r0, #8 movs r1, #0 bl sub_0807CAA0 b _080541AA _080541A2: movs r0, #7 movs r1, #0 bl sub_0807CAA0 _080541AA: movs r0, #0x63 bl sub_080542F4 _080541B0: bl sub_08053390 b _0805427C _080541B6: cmp r5, #0 bne _080541CA movs r0, #7 movs r1, #1 bl sub_0807CAA0 movs r0, #7 bl sub_08054398 b _080541E2 _080541CA: ldr r0, _080541EC @ =gUnk_02002A40 adds r1, r0, #0 adds r1, #0xae ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #3 bls _080541E2 movs r0, #3 strb r0, [r1] _080541E2: movs r0, #0x63 bl sub_080542F4 b _0805427C .align 2, 0 _080541EC: .4byte gUnk_02002A40 _080541F0: ldrb r0, [r4, #2] bl sub_080542F4 b _0805424E _080541F8: movs r0, #0x66 bl sub_0807CA84 cmp r0, #0 bne _0805420A movs r0, #0x66 movs r1, #1 bl sub_0807CAA0 _0805420A: movs r0, #0x63 bl sub_08054330 b _080541B0 _08054212: ldr r0, _08054234 @ =gUnk_02002A40 adds r1, r0, #0 adds r1, #0xaf ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #3 bls _0805422A movs r0, #3 strb r0, [r1] _0805422A: movs r0, #0x63 bl sub_08054330 b _0805427C .align 2, 0 _08054234: .4byte gUnk_02002A40 _08054238: ldrb r0, [r4, #2] bl sub_08054330 b _0805424E _08054240: movs r0, #0x3f movs r1, #1 bl sub_0807CAA0 adds r0, r7, #0 bl sub_080542C0 _0805424E: ldr r0, _08054258 @ =0x00000103 bl sub_080A3268 b _0805427C .align 2, 0 _08054258: .4byte 0x00000103 _0805425C: adds r0, r7, #0 bl sub_0801E738 b _0805427C _08054264: ldr r0, _08054284 @ =gUnk_02002A40 adds r1, r0, #0 adds r1, #0xa8 ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #3 bls _0805427C movs r0, #3 _0805427A: strb r0, [r1] _0805427C: mov r0, r8 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08054284: .4byte gUnk_02002A40 thumb_func_start sub_08054288 sub_08054288: @ 0x08054288 push {lr} ldr r1, _08054298 @ =gUnk_080FD5B4 lsls r0, r0, #3 adds r0, r0, r1 ldrh r0, [r0, #6] bl sub_08056378 pop {pc} .align 2, 0 _08054298: .4byte gUnk_080FD5B4 thumb_func_start sub_0805429C sub_0805429C: @ 0x0805429C ldr r1, _080542A8 @ =gUnk_080FD5B4 lsls r0, r0, #3 adds r0, r0, r1 ldrh r0, [r0, #4] bx lr .align 2, 0 _080542A8: .4byte gUnk_080FD5B4 thumb_func_start sub_080542AC sub_080542AC: @ 0x080542AC ldr r1, _080542BC @ =gUnk_080FD5B4 lsls r0, r0, #3 adds r0, r0, r1 ldrb r1, [r0, #3] movs r0, #1 ands r0, r1 bx lr .align 2, 0 _080542BC: .4byte gUnk_080FD5B4 thumb_func_start sub_080542C0 sub_080542C0: @ 0x080542C0 push {lr} adds r2, r0, #0 cmp r2, #0 bne _080542CA movs r2, #1 _080542CA: ldr r1, _080542DC @ =gUnk_02002A40 adds r0, r1, #0 adds r0, #0xc2 ldrh r0, [r0] adds r2, r2, r0 cmp r2, #0 bge _080542E0 movs r2, #0 b _080542E8 .align 2, 0 _080542DC: .4byte gUnk_02002A40 _080542E0: ldr r3, _080542F0 @ =0x000003E7 cmp r2, r3 ble _080542E8 adds r2, r3, #0 _080542E8: adds r0, r1, #0 adds r0, #0xc2 strh r2, [r0] pop {pc} .align 2, 0 _080542F0: .4byte 0x000003E7 thumb_func_start sub_080542F4 sub_080542F4: @ 0x080542F4 push {lr} adds r3, r0, #0 ldr r1, _08054318 @ =gUnk_02002A40 adds r0, r1, #0 adds r0, #0xac ldrb r0, [r0] adds r3, r3, r0 ldr r2, _0805431C @ =gUnk_080FD5A0 adds r0, r1, #0 adds r0, #0xae ldrb r0, [r0] adds r0, r0, r2 ldrb r2, [r0] cmp r3, #0 bge _08054320 movs r3, #0 b _08054326 .align 2, 0 _08054318: .4byte gUnk_02002A40 _0805431C: .4byte gUnk_080FD5A0 _08054320: cmp r2, r3 bge _08054326 adds r3, r2, #0 _08054326: adds r0, r1, #0 adds r0, #0xac strb r3, [r0] pop {pc} .align 2, 0 thumb_func_start sub_08054330 sub_08054330: @ 0x08054330 push {lr} adds r3, r0, #0 ldr r1, _08054354 @ =gUnk_02002A40 adds r0, r1, #0 adds r0, #0xad ldrb r0, [r0] adds r3, r3, r0 ldr r2, _08054358 @ =gUnk_080FD5A4 adds r0, r1, #0 adds r0, #0xaf ldrb r0, [r0] adds r0, r0, r2 ldrb r2, [r0] cmp r3, #0 bge _0805435C movs r3, #0 b _08054362 .align 2, 0 _08054354: .4byte gUnk_02002A40 _08054358: .4byte gUnk_080FD5A4 _0805435C: cmp r2, r3 bge _08054362 adds r3, r2, #0 _08054362: adds r0, r1, #0 adds r0, #0xad strb r3, [r0] pop {pc} .align 2, 0 thumb_func_start sub_0805436C sub_0805436C: @ 0x0805436C push {lr} adds r2, r0, #0 ldr r1, _08054380 @ =gUnk_02002A40 adds r0, r1, #0 adds r0, #0xb4 ldrb r0, [r0] cmp r2, r0 bne _08054384 movs r1, #0 b _08054392 .align 2, 0 _08054380: .4byte gUnk_02002A40 _08054384: adds r0, r1, #0 adds r0, #0xb5 movs r1, #2 ldrb r0, [r0] cmp r2, r0 bne _08054392 movs r1, #1 _08054392: adds r0, r1, #0 pop {pc} .align 2, 0 thumb_func_start sub_08054398 sub_08054398: @ 0x08054398 push {r4, r5, lr} adds r5, r0, #0 cmp r5, #0x46 bhi _080543A8 movs r0, #0 movs r1, #1 bl sub_0807CAA0 _080543A8: subs r0, r5, #1 cmp r0, #0x1e bhi _08054410 movs r1, #2 ldr r2, _080543C0 @ =gUnk_02002A40 adds r0, r2, #0 adds r0, #0xb4 ldrb r0, [r0] cmp r0, #0 bne _080543C4 movs r1, #0 b _080543D0 .align 2, 0 _080543C0: .4byte gUnk_02002A40 _080543C4: adds r0, r2, #0 adds r0, #0xb5 ldrb r0, [r0] cmp r0, #0 bne _080543D0 movs r1, #1 _080543D0: cmp r1, #2 bne _0805440A ldr r3, _080543F0 @ =gUnk_080FD5B4 lsls r0, r5, #3 adds r0, r0, r3 ldrb r4, [r0] adds r0, r2, #0 adds r0, #0xb4 ldrb r0, [r0] lsls r0, r0, #3 adds r0, r0, r3 ldrb r0, [r0] cmp r4, r0 bne _080543F4 movs r1, #0 b _08054406 .align 2, 0 _080543F0: .4byte gUnk_080FD5B4 _080543F4: adds r0, r2, #0 adds r0, #0xb5 ldrb r0, [r0] lsls r0, r0, #3 adds r0, r0, r3 ldrb r0, [r0] cmp r4, r0 bne _08054406 movs r1, #1 _08054406: cmp r1, #2 beq _08054410 _0805440A: adds r0, r5, #0 bl sub_08054414 _08054410: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08054414 sub_08054414: @ 0x08054414 push {r4, r5, r6, r7, lr} adds r4, r0, #0 subs r0, r4, #1 cmp r0, #0x1e bhi _08054456 cmp r1, #1 bhi _08054456 movs r2, #0 cmp r1, #0 bne _0805442A movs r2, #1 _0805442A: ldr r0, _08054458 @ =gUnk_02002A40 adds r0, #0xb4 adds r6, r1, r0 ldrb r7, [r6] adds r5, r2, r0 ldrb r3, [r5] ldr r2, _0805445C @ =gUnk_080FD5B4 lsls r1, r3, #3 adds r1, r1, r2 lsls r0, r4, #3 adds r0, r0, r2 ldrb r1, [r1] ldrb r0, [r0] cmp r1, r0 bne _0805444A adds r3, r7, #0 _0805444A: strb r4, [r6] strb r3, [r5] ldr r1, _08054460 @ =gUnk_0200AF00 movs r0, #0x7f strb r0, [r1, #0x13] strb r0, [r1, #0x14] _08054456: pop {r4, r5, r6, r7, pc} .align 2, 0 _08054458: .4byte gUnk_02002A40 _0805445C: .4byte gUnk_080FD5B4 _08054460: .4byte gUnk_0200AF00 thumb_func_start sub_08054464 sub_08054464: @ 0x08054464 push {r4, lr} adds r4, r0, #0 ldr r3, _08054498 @ =gUnk_02002A40 cmp r1, #3 bls _0805448C movs r1, #0 adds r2, r3, #0 adds r2, #0xb6 ldrb r0, [r2] cmp r0, #0x20 beq _08054488 _0805447A: adds r1, #1 cmp r1, #3 bhi _08054494 adds r0, r1, r2 ldrb r0, [r0] cmp r0, #0x20 bne _0805447A _08054488: cmp r1, #3 bhi _08054494 _0805448C: adds r0, r3, #0 adds r0, #0xb6 adds r0, r1, r0 strb r4, [r0] _08054494: adds r0, r1, #0 pop {r4, pc} .align 2, 0 _08054498: .4byte gUnk_02002A40 thumb_func_start sub_0805449C sub_0805449C: @ 0x0805449C push {lr} cmp r0, #1 blo _080544AE cmp r0, #4 bls _080544AA cmp r0, #6 bne _080544AE _080544AA: movs r0, #1 b _080544B0 _080544AE: movs r0, #0 _080544B0: pop {pc} .align 2, 0 thumb_func_start sub_080544B4 sub_080544B4: @ 0x080544B4 push {lr} cmp r0, #0xe bhi _080544C2 cmp r0, #0xd blo _080544C2 movs r0, #1 b _080544C4 _080544C2: movs r0, #0 _080544C4: pop {pc} .align 2, 0 thumb_func_start sub_080544C8 sub_080544C8: @ 0x080544C8 push {lr} cmp r0, #0x1f bhi _080544D6 cmp r0, #0x1c blo _080544D6 movs r0, #1 b _080544D8 _080544D6: movs r0, #0 _080544D8: pop {pc} .align 2, 0 thumb_func_start sub_080544DC sub_080544DC: @ 0x080544DC push {lr} adds r2, r0, #0 ldr r1, _080544F0 @ =gUnk_02002A40 adds r0, r1, #0 adds r0, #0xb6 ldrb r0, [r0] cmp r2, r0 bne _080544F4 movs r0, #1 b _08054520 .align 2, 0 _080544F0: .4byte gUnk_02002A40 _080544F4: adds r0, r1, #0 adds r0, #0xb7 ldrb r0, [r0] cmp r2, r0 bne _08054502 movs r0, #2 b _08054520 _08054502: adds r0, r1, #0 adds r0, #0xb8 ldrb r0, [r0] cmp r2, r0 bne _08054510 movs r0, #3 b _08054520 _08054510: adds r0, r1, #0 adds r0, #0xb9 ldrb r0, [r0] cmp r2, r0 beq _0805451E movs r0, #0 b _08054520 _0805451E: movs r0, #4 _08054520: pop {pc} .align 2, 0 thumb_func_start sub_08054524 sub_08054524: @ 0x08054524 push {lr} ldr r0, _08054550 @ =gUnk_02033A90 ldrb r1, [r0, #1] cmp r1, #0 bne _08054534 ldr r0, _08054554 @ =gUnk_030010A0 adds r0, #0x2e ldrb r1, [r0] _08054534: cmp r1, #0x16 bls _0805453A movs r1, #0 _0805453A: ldr r0, _08054558 @ =gUnk_080FE1C6 adds r0, r1, r0 ldrb r1, [r0] lsls r0, r1, #5 ldr r1, _0805455C @ =gUnk_080015BC adds r0, r0, r1 ldr r1, _08054560 @ =gUnk_02034398 movs r2, #0x20 bl sub_0801D66C pop {pc} .align 2, 0 _08054550: .4byte gUnk_02033A90 _08054554: .4byte gUnk_030010A0 _08054558: .4byte gUnk_080FE1C6 _0805455C: .4byte gUnk_080015BC _08054560: .4byte gUnk_02034398 thumb_func_start sub_08054564 sub_08054564: @ 0x08054564 ldr r1, _0805456C @ =gUnk_02034350 movs r0, #1 strb r0, [r1, #2] bx lr .align 2, 0 _0805456C: .4byte gUnk_02034350 thumb_func_start sub_08054570 sub_08054570: @ 0x08054570 ldr r1, _08054578 @ =gUnk_02034350 movs r0, #0 strb r0, [r1, #2] bx lr .align 2, 0 _08054578: .4byte gUnk_02034350 thumb_func_start sub_0805457C sub_0805457C: @ 0x0805457C push {r4, r5, r6, r7, lr} sub sp, #0x20 adds r6, r0, #0 adds r3, r1, #0 ldr r0, _080545A4 @ =gUnk_02034350 ldrb r1, [r0, #2] adds r5, r0, #0 cmp r1, #1 bne _08054590 b _0805474C _08054590: ldr r2, _080545A8 @ =gUnk_08001A1C movs r4, #0 cmp r3, #0x19 bhi _0805463C lsls r0, r3, #2 ldr r1, _080545AC @ =_080545B0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080545A4: .4byte gUnk_02034350 _080545A8: .4byte gUnk_08001A1C _080545AC: .4byte _080545B0 _080545B0: @ jump table .4byte _0805463C @ case 0 .4byte _08054618 @ case 1 .4byte _08054618 @ case 2 .4byte _08054618 @ case 3 .4byte _08054618 @ case 4 .4byte _08054618 @ case 5 .4byte _08054618 @ case 6 .4byte _08054618 @ case 7 .4byte _08054618 @ case 8 .4byte _08054618 @ case 9 .4byte _08054618 @ case 10 .4byte _08054618 @ case 11 .4byte _08054618 @ case 12 .4byte _0805463C @ case 13 .4byte _0805463C @ case 14 .4byte _0805463A @ case 15 .4byte _08054634 @ case 16 .4byte _08054634 @ case 17 .4byte _08054634 @ case 18 .4byte _08054634 @ case 19 .4byte _08054634 @ case 20 .4byte _08054634 @ case 21 .4byte _08054634 @ case 22 .4byte _08054634 @ case 23 .4byte _08054624 @ case 24 .4byte _08054624 @ case 25 _08054618: lsls r1, r3, #5 ldr r0, _08054620 @ =gUnk_0800137C adds r4, r1, r0 b _0805463C .align 2, 0 _08054620: .4byte gUnk_0800137C _08054624: ldrb r0, [r5, #0xa] ldr r4, _08054630 @ =gUnk_0800191C cmp r0, #0 beq _0805463C adds r4, #0x20 b _0805463C .align 2, 0 _08054630: .4byte gUnk_0800191C _08054634: lsls r1, r3, #5 ldr r0, _08054650 @ =gUnk_0800161C adds r2, r1, r0 _0805463A: ldr r4, _08054654 @ =gUnk_02034398 _0805463C: cmp r4, #0 bne _08054642 b _0805474C _08054642: ldr r0, _08054658 @ =gUnk_02002A40 adds r0, #0xb3 ldrb r1, [r0] cmp r1, #0 bne _08054660 ldr r3, _0805465C @ =gUnk_08001A1C b _08054666 .align 2, 0 _08054650: .4byte gUnk_0800161C _08054654: .4byte gUnk_02034398 _08054658: .4byte gUnk_02002A40 _0805465C: .4byte gUnk_08001A1C _08054660: lsls r1, r1, #5 ldr r0, _0805473C @ =gUnk_0800143C adds r3, r1, r0 _08054666: mov r0, sp adds r1, r4, #0 bl sub_08000F14 ldr r4, _08054740 @ =gUnk_02002A40 adds r0, r4, #0 adds r0, #0xaa ldrb r0, [r0] cmp r0, #8 bhi _08054684 mov r1, sp mov r0, sp ldrh r0, [r0, #8] adds r0, #5 strh r0, [r1, #8] _08054684: adds r0, r4, #0 adds r0, #0xac ldrb r0, [r0] cmp r0, #0 bne _08054698 mov r1, sp mov r0, sp ldrh r0, [r0, #0xc] adds r0, #3 strh r0, [r1, #0xc] _08054698: adds r0, r4, #0 adds r0, #0xad ldrb r0, [r0] cmp r0, #0 bne _080546AC mov r1, sp mov r0, sp ldrh r0, [r0, #0xe] adds r0, #3 strh r0, [r1, #0xe] _080546AC: adds r0, r4, #0 adds r0, #0xc0 ldrh r0, [r0] cmp r0, #0xa bhi _080546C0 mov r1, sp mov r0, sp ldrh r0, [r0, #4] adds r0, #1 strh r0, [r1, #4] _080546C0: ldr r2, _08054744 @ =gUnk_08001A1C adds r0, r4, #0 adds r0, #0xbb ldrb r0, [r0] adds r3, r2, #0 cmp r0, #0 beq _080546D0 adds r2, #0x20 _080546D0: movs r1, #0x8b lsls r1, r1, #1 adds r0, r4, r1 ldrb r0, [r0] cmp r0, #0 beq _080546DE adds r3, #0x40 _080546DE: mov r0, sp mov r1, sp bl sub_08000F2C adds r4, r0, #0 bl sub_08000E50 adds r2, r0, #0 asrs r5, r2, #0x18 movs r0, #0xf ands r5, r0 adds r0, r2, #0 adds r1, r4, #0 bl __modsi3 adds r2, r0, #0 movs r3, #0 lsls r0, r5, #1 add r0, sp movs r4, #0 ldrsh r1, [r0, r4] cmp r1, r2 bgt _08054726 movs r4, #0xf _0805470E: adds r3, #1 adds r5, #1 ands r5, r4 cmp r3, #0xf bhi _08054726 lsls r0, r5, #1 add r0, sp movs r7, #0 ldrsh r0, [r0, r7] adds r1, r1, r0 cmp r1, r2 ble _0805470E _08054726: ldr r0, _08054748 @ =gUnk_080FE1B4 adds r0, r5, r0 ldrb r1, [r0] cmp r1, #0 beq _0805474C adds r0, r6, #0 movs r2, #0 bl sub_08054754 b _0805474E .align 2, 0 _0805473C: .4byte gUnk_0800143C _08054740: .4byte gUnk_02002A40 _08054744: .4byte gUnk_08001A1C _08054748: .4byte gUnk_080FE1B4 _0805474C: movs r0, #0 _0805474E: add sp, #0x20 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08054754 sub_08054754: @ 0x08054754 push {r4, r5, r6, lr} adds r6, r0, #0 adds r4, r1, #0 adds r5, r2, #0 cmp r4, #0x5e beq _08054786 cmp r4, #0x5e bhi _08054772 cmp r4, #0x5c beq _080547A6 cmp r4, #0x5c bhi _08054782 cmp r4, #0x3f beq _08054794 b _080547DA _08054772: cmp r4, #0xfc blo _080547DA cmp r4, #0xfe bls _080547A6 cmp r4, #0xff bne _080547DA movs r0, #1 b _08054788 _08054782: movs r0, #0x65 b _08054788 _08054786: movs r0, #9 _08054788: bl sub_0807CA84 cmp r0, #0 bne _080547DA _08054790: movs r0, #0 b _0805486C _08054794: movs r0, #0x40 bl sub_0807CA84 cmp r0, #0 beq _08054790 cmp r5, #0 bne _080547DA movs r5, #1 b _080547DA _080547A6: movs r0, #0x67 bl sub_0807CA84 cmp r0, #0 beq _08054790 ldr r0, _080547FC @ =gUnk_02034350 ldrb r0, [r0, #5] cmp r0, #3 bhi _08054790 cmp r4, #0x5c beq _080547DA adds r5, r4, #0 subs r5, #0xfc bl sub_08000E50 movs r1, #0x3f ands r1, r0 ldr r2, _08054800 @ =gUnk_080FE1DD lsls r0, r5, #6 adds r1, r1, r0 adds r1, r1, r2 ldrb r5, [r1] movs r4, #0x5c cmp r5, #0 bne _080547DA movs r4, #0 _080547DA: cmp r4, #0 beq _0805486A cmp r4, #0xff beq _08054842 movs r0, #0 adds r1, r4, #0 adds r2, r5, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _0805486A ldr r0, _08054804 @ =gUnk_03001160 cmp r6, r0 bne _08054808 movs r0, #1 b _0805480A .align 2, 0 _080547FC: .4byte gUnk_02034350 _08054800: .4byte gUnk_080FE1DD _08054804: .4byte gUnk_03001160 _08054808: movs r0, #0 _0805480A: strb r0, [r2, #0xe] ldrb r0, [r6, #8] cmp r0, #6 bne _08054838 ldrb r0, [r6, #9] cmp r0, #0x63 bne _0805481C str r2, [r6, #0x54] b _08054838 _0805481C: cmp r0, #0x1e bne _08054838 ldrb r0, [r6, #0x14] lsls r0, r0, #3 movs r3, #0x80 rsbs r3, r3, #0 adds r1, r3, #0 orrs r0, r1 strb r0, [r2, #0x15] movs r0, #0xc0 strh r0, [r2, #0x24] movs r0, #0xc0 lsls r0, r0, #9 str r0, [r2, #0x20] _08054838: adds r0, r6, #0 adds r1, r2, #0 bl sub_0806FA24 b _0805486A _08054842: movs r0, #7 movs r1, #0 bl sub_0804AA60 adds r2, r0, #0 cmp r2, #0 beq _0805486A ldrh r0, [r6, #0x2e] strh r0, [r2, #0x2e] ldrh r0, [r6, #0x32] strh r0, [r2, #0x32] adds r0, r6, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r2, #0 adds r0, #0x38 strb r1, [r0] adds r0, r2, #0 bl sub_08016A04 _0805486A: adds r0, r4, #0 _0805486C: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08054870 sub_08054870: @ 0x08054870 push {lr} ldr r1, _08054884 @ =gUnk_080FE2A0 ldr r0, _08054888 @ =gUnk_02000080 ldrb r0, [r0, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08054884: .4byte gUnk_080FE2A0 _08054888: .4byte gUnk_02000080 thumb_func_start sub_0805488C sub_0805488C: @ 0x0805488C push {r4, lr} ldr r4, _080548DC @ =gUnk_02032EC0 ldrb r1, [r4, #3] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, _080548E0 @ =gUnk_080FE320 adds r0, r0, r1 ldr r2, _080548E4 @ =gUnk_02000080 ldrb r1, [r0] movs r3, #0 strb r1, [r2] ldrb r1, [r0, #1] strb r1, [r2, #3] ldrb r1, [r4, #3] strb r1, [r2, #4] str r0, [r2, #0xc] ldrb r0, [r2, #5] adds r0, #1 strb r0, [r2, #5] strb r3, [r2, #6] movs r0, #0x96 lsls r0, r0, #1 strh r0, [r2, #8] movs r0, #0 bl sub_0801DA90 ldrb r0, [r4, #3] movs r1, #1 bl sub_08054974 bl sub_0806F364 movs r0, #0xff bl sub_0807CD8C bl sub_080548E8 pop {r4, pc} .align 2, 0 _080548DC: .4byte gUnk_02032EC0 _080548E0: .4byte gUnk_080FE320 _080548E4: .4byte gUnk_02000080 thumb_func_start sub_080548E8 sub_080548E8: @ 0x080548E8 push {lr} ldr r1, _08054918 @ =gUnk_080FE2AC ldr r0, _0805491C @ =gUnk_02000080 ldrb r0, [r0] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 bl sub_080AD90C bl sub_0805E5C0 bl sub_080AD9B0 bl sub_080AD918 bl sub_0807FC40 bl sub_0801B060 bl sub_08000108 pop {pc} .align 2, 0 _08054918: .4byte gUnk_080FE2AC _0805491C: .4byte gUnk_02000080 thumb_func_start sub_08054920 sub_08054920: @ 0x08054920 push {lr} bl sub_08056418 bl sub_0806F38C ldr r1, _08054948 @ =gUnk_080C9CBC ldr r0, _0805494C @ =gUnk_02022740 ldrb r0, [r0, #3] lsls r0, r0, #3 adds r0, r0, r1 ldrb r0, [r0, #7] cmp r0, #0 beq _08054954 ldr r0, _08054950 @ =gUnk_02032EC0 ldrb r1, [r0, #3] movs r0, #0xa bl sub_080A7138 b _08054962 .align 2, 0 _08054948: .4byte gUnk_080C9CBC _0805494C: .4byte gUnk_02022740 _08054950: .4byte gUnk_02032EC0 _08054954: ldr r1, _08054964 @ =gUnk_02032EC0 movs r0, #3 strb r0, [r1] movs r0, #7 movs r1, #0x10 bl sub_08050054 _08054962: pop {pc} .align 2, 0 _08054964: .4byte gUnk_02032EC0 thumb_func_start sub_08054968 sub_08054968: @ 0x08054968 ldr r1, _08054970 @ =gUnk_02000080 movs r0, #2 strb r0, [r1, #5] bx lr .align 2, 0 _08054970: .4byte gUnk_02000080 thumb_func_start sub_08054974 sub_08054974: @ 0x08054974 push {r4, r5, r6, lr} adds r5, r1, #0 lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #2 ldr r0, _080549B0 @ =gUnk_080FE320 adds r6, r1, r0 ldrb r0, [r6, #2] ldrb r1, [r6, #3] bl sub_0804B0C0 ldr r4, _080549B4 @ =gUnk_03000BF0 ldrb r0, [r6, #2] strb r0, [r4, #4] ldrb r0, [r6, #3] strb r0, [r4, #5] bl sub_08053320 ldrb r0, [r4, #4] bl sub_08052D58 ldr r1, _080549B8 @ =gUnk_02033A90 strh r0, [r1, #4] cmp r5, #0 beq _080549BC ldrb r0, [r6, #2] ldrb r1, [r6, #3] bl sub_08052FD8 b _080549CE .align 2, 0 _080549B0: .4byte gUnk_080FE320 _080549B4: .4byte gUnk_03000BF0 _080549B8: .4byte gUnk_02033A90 _080549BC: ldrb r0, [r6, #2] ldrb r1, [r6, #3] bl sub_08052FF4 bl sub_0807C740 ldr r1, _08054A00 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] _080549CE: ldr r2, _08054A04 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _08054A08 @ =0x00001FFF ands r0, r1 strh r0, [r2] ldr r1, _08054A0C @ =gUnk_03000BF0 ldrh r0, [r6, #4] ldrh r2, [r1, #6] adds r0, r0, r2 strh r0, [r1, #0xa] ldrh r0, [r6, #6] ldrh r2, [r1, #8] adds r0, r0, r2 strh r0, [r1, #0xc] ldrb r0, [r6, #2] cmp r0, #2 bne _080549F4 bl sub_08059D18 _080549F4: ldr r0, _08054A10 @ =gUnk_02032EC0 ldrb r0, [r0, #3] bl sub_08018710 pop {r4, r5, r6, pc} .align 2, 0 _08054A00: .4byte gUnk_02000070 _08054A04: .4byte gUnk_03000F50 _08054A08: .4byte 0x00001FFF _08054A0C: .4byte gUnk_03000BF0 _08054A10: .4byte gUnk_02032EC0 thumb_func_start sub_08054A14 sub_08054A14: @ 0x08054A14 push {lr} lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #2 ldr r0, _08054A38 @ =gUnk_080FE320 adds r2, r1, r0 ldrb r0, [r2, #0x11] cmp r0, #0xd bhi _08054A34 ldr r1, _08054A3C @ =gUnk_0811E454 lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] ldrh r1, [r2, #0x12] bl sub_0807CC9C _08054A34: pop {pc} .align 2, 0 _08054A38: .4byte gUnk_080FE320 _08054A3C: .4byte gUnk_0811E454 thumb_func_start sub_08054A40 sub_08054A40: @ 0x08054A40 push {r4, lr} adds r4, r0, #0 ldr r1, _08054A5C @ =gUnk_080FEEA8 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r4, #0x41 movs r0, #0 strb r0, [r4] pop {r4, pc} .align 2, 0 _08054A5C: .4byte gUnk_080FEEA8 thumb_func_start sub_08054A60 sub_08054A60: @ 0x08054A60 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #0xa0 orrs r0, r1 strb r0, [r4, #0x10] movs r0, #1 strb r0, [r4, #0xc] movs r0, #4 strb r0, [r4, #0xe] movs r0, #0xff strb r0, [r4, #0x1e] ldrb r1, [r4, #0x11] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r4, #0x11] adds r1, r4, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] subs r1, #1 movs r0, #0x80 strb r0, [r1] ldr r0, _08054AC4 @ =gUnk_03001160 ldrb r1, [r0, #0x14] movs r0, #0xe ands r0, r1 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_0806FBD8 cmp r0, #0 bne _08054AAC bl sub_0805E780 _08054AAC: adds r0, r4, #0 bl sub_0801766C adds r0, r4, #0 movs r1, #1 movs r2, #3 bl sub_080AE008 adds r0, r4, #0 bl sub_08054AC8 pop {r4, pc} .align 2, 0 _08054AC4: .4byte gUnk_03001160 thumb_func_start sub_08054AC8 sub_08054AC8: @ 0x08054AC8 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldr r5, _08054B14 @ =gUnk_03001160 ldrb r1, [r5, #0x14] movs r0, #0xe ands r0, r1 strb r0, [r4, #0x14] ldr r1, [r4, #0x48] ldr r2, _08054B18 @ =gUnk_080FEEB0 ldrb r0, [r4, #0x14] adds r0, r0, r2 ldrb r0, [r0] strb r0, [r1] ldr r1, [r4, #0x48] ldrb r0, [r4, #0x14] adds r0, #1 adds r0, r0, r2 ldrb r0, [r0] strb r0, [r1, #1] ldr r0, [r4, #0x48] movs r1, #4 strb r1, [r0, #6] ldr r0, [r4, #0x48] strb r1, [r0, #7] ldrb r7, [r5, #0x1e] adds r6, r7, #0 cmp r6, #0x36 bhi _08054B06 ldrh r0, [r5, #0x12] cmp r0, #6 beq _08054B1C _08054B06: movs r0, #0xff strb r0, [r4, #0x1e] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] b _08054B68 .align 2, 0 _08054B14: .4byte gUnk_03001160 _08054B18: .4byte gUnk_080FEEB0 _08054B1C: ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldrb r2, [r5, #0x18] movs r1, #0x40 ands r1, r2 ldrb r3, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r3 orrs r0, r1 lsrs r2, r2, #7 lsls r2, r2, #7 movs r1, #0x7f ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldrb r0, [r4, #0x1e] cmp r6, r0 beq _08054B52 strb r7, [r4, #0x1e] ldrb r1, [r4, #0x1e] ldrh r2, [r4, #0x12] adds r0, r4, #0 bl sub_080042D0 _08054B52: adds r0, r5, #0 adds r0, #0x5a ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x5a strb r0, [r1] adds r0, r5, #0 adds r0, #0x5b ldrb r0, [r0] adds r1, #1 strb r0, [r1] _08054B68: movs r0, #0x10 bl sub_0805436C cmp r0, #1 bhi _08054BFC ldrb r0, [r4, #0x1e] cmp r0, #0xff beq _08054BE8 ldr r0, _08054BF4 @ =gUnk_03001160 ldrb r0, [r0, #0x18] lsls r0, r0, #0x1e cmp r0, #0 beq _08054BE8 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _08054BE8 movs r0, #4 strb r0, [r4, #0xe] movs r0, #0x45 movs r1, #0 movs r2, #0x10 bl sub_080A2960 adds r5, r0, #0 cmp r5, #0 beq _08054BE8 movs r3, #0x80 lsls r3, r3, #0xa adds r0, r4, #0 adds r1, r5, #0 movs r2, #0 bl sub_0806FA48 adds r0, r4, #0 adds r0, #0x29 ldrb r1, [r0] lsls r1, r1, #0x1d adds r3, r5, #0 adds r3, #0x29 lsrs r1, r1, #0x1d ldrb r2, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] ldr r1, _08054BF8 @ =gUnk_080FEEB0 ldrb r0, [r4, #0x14] adds r0, r0, r1 ldrb r0, [r0] adds r2, r5, #0 adds r2, #0x62 strb r0, [r2] ldrb r0, [r4, #0x14] adds r0, #1 adds r0, r0, r1 ldrb r1, [r0] adds r0, r5, #0 adds r0, #0x63 strb r1, [r0] _08054BE8: ldr r1, _08054BF4 @ =gUnk_03001160 adds r0, r4, #0 bl sub_08078E84 b _08054C00 .align 2, 0 _08054BF4: .4byte gUnk_03001160 _08054BF8: .4byte gUnk_080FEEB0 _08054BFC: bl sub_0805E780 _08054C00: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08054C04 sub_08054C04: @ 0x08054C04 push {lr} ldr r1, _08054C18 @ =gUnk_080FEEB8 ldr r0, _08054C1C @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08054C18: .4byte gUnk_080FEEB8 _08054C1C: .4byte gUnk_02000080 thumb_func_start sub_08054C20 sub_08054C20: @ 0x08054C20 push {r4, lr} ldr r4, _08054C50 @ =gUnk_02000080 ldrb r0, [r4, #4] movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08055B70 ldrb r0, [r4, #4] movs r1, #0 bl sub_0801876C ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] ldr r1, _08054C54 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r4, pc} .align 2, 0 _08054C50: .4byte gUnk_02000080 _08054C54: .4byte gUnk_02000070 thumb_func_start sub_08054C58 sub_08054C58: @ 0x08054C58 push {lr} ldr r0, _08054C80 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08054C7C movs r0, #0xff bl sub_0807CC3C cmp r0, #0 beq _08054C7C movs r0, #7 movs r1, #0x10 bl sub_08050054 ldr r1, _08054C84 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] _08054C7C: pop {pc} .align 2, 0 _08054C80: .4byte gUnk_03000FD0 _08054C84: .4byte gUnk_02000080 thumb_func_start sub_08054C88 sub_08054C88: @ 0x08054C88 push {r4, lr} ldr r0, _08054CB8 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08054CB4 ldr r4, _08054CBC @ =gUnk_02000080 ldrb r0, [r4, #4] movs r1, #0 bl sub_08054974 movs r0, #6 movs r1, #0x10 bl sub_08050054 movs r0, #0x73 bl sub_080A3268 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] movs r0, #0x78 strh r0, [r4, #8] _08054CB4: pop {r4, pc} .align 2, 0 _08054CB8: .4byte gUnk_03000FD0 _08054CBC: .4byte gUnk_02000080 thumb_func_start sub_08054CC0 sub_08054CC0: @ 0x08054CC0 push {lr} ldr r0, _08054CE0 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08054CDE ldr r1, _08054CE4 @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _08054CDE ldrb r0, [r1, #5] adds r0, #1 strb r0, [r1, #5] _08054CDE: pop {pc} .align 2, 0 _08054CE0: .4byte gUnk_03000FD0 _08054CE4: .4byte gUnk_02000080 thumb_func_start sub_08054CE8 sub_08054CE8: @ 0x08054CE8 push {lr} ldr r1, _08054CFC @ =gUnk_080FEEC8 ldr r0, _08054D00 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08054CFC: .4byte gUnk_080FEEC8 _08054D00: .4byte gUnk_02000080 thumb_func_start sub_08054D04 sub_08054D04: @ 0x08054D04 push {r4, lr} ldr r4, _08054D34 @ =gUnk_02000080 ldr r1, [r4, #0xc] ldrb r0, [r1, #2] ldrb r1, [r1, #3] bl sub_0804B0B0 ldrb r0, [r4, #4] movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08055B70 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] ldr r1, _08054D38 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r4, pc} .align 2, 0 _08054D34: .4byte gUnk_02000080 _08054D38: .4byte gUnk_02000070 thumb_func_start sub_08054D3C sub_08054D3C: @ 0x08054D3C push {r4, lr} ldr r0, _08054D6C @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08054D6A movs r0, #0xff bl sub_0807CC3C cmp r0, #0 beq _08054D6A ldr r4, _08054D70 @ =gUnk_02000080 ldrb r0, [r4, #4] movs r1, #1 bl sub_0801876C ldrb r0, [r4, #4] bl sub_080553E0 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] movs r0, #0x78 strh r0, [r4, #8] _08054D6A: pop {r4, pc} .align 2, 0 _08054D6C: .4byte gUnk_03000FD0 _08054D70: .4byte gUnk_02000080 thumb_func_start sub_08054D74 sub_08054D74: @ 0x08054D74 push {lr} ldr r1, _08054D8C @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _08054D8A ldrb r0, [r1, #5] adds r0, #1 strb r0, [r1, #5] _08054D8A: pop {pc} .align 2, 0 _08054D8C: .4byte gUnk_02000080 thumb_func_start sub_08054D90 sub_08054D90: @ 0x08054D90 push {lr} ldr r1, _08054DA4 @ =gUnk_080FEF34 ldr r0, _08054DA8 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08054DA4: .4byte gUnk_080FEF34 _08054DA8: .4byte gUnk_02000080 thumb_func_start sub_08054DAC sub_08054DAC: @ 0x08054DAC push {r4, lr} ldr r4, _08054DF0 @ =gUnk_02000080 ldr r1, [r4, #0xc] ldrb r0, [r1, #2] ldrb r1, [r1, #3] bl sub_0804B0B0 ldr r0, _08054DF4 @ =gUnk_080FEED4 bl sub_0804ADDC movs r0, #2 bl sub_0805B4D0 movs r0, #0 bl sub_0806D0B0 ldrb r0, [r4, #4] movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08055B70 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] ldr r1, _08054DF8 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r4, pc} .align 2, 0 _08054DF0: .4byte gUnk_02000080 _08054DF4: .4byte gUnk_080FEED4 _08054DF8: .4byte gUnk_02000070 thumb_func_start nullsub_484 nullsub_484: @ 0x08054DFC bx lr .align 2, 0 thumb_func_start sub_08054E00 sub_08054E00: @ 0x08054E00 push {lr} ldr r1, _08054E14 @ =gUnk_080FEF3C ldr r0, _08054E18 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08054E14: .4byte gUnk_080FEF3C _08054E18: .4byte gUnk_02000080 thumb_func_start sub_08054E1C sub_08054E1C: @ 0x08054E1C push {r4, r5, lr} ldr r5, _08054E54 @ =gUnk_02000080 ldr r4, [r5, #0xc] ldrb r0, [r4, #2] ldrb r1, [r4, #3] bl sub_0804B0B0 ldrb r0, [r4, #2] ldrb r1, [r4, #3] bl sub_0804B0E8 ldrb r0, [r5, #4] movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08055B70 ldrb r0, [r5, #6] adds r0, #1 strb r0, [r5, #6] ldr r1, _08054E58 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r4, r5, pc} .align 2, 0 _08054E54: .4byte gUnk_02000080 _08054E58: .4byte gUnk_02000070 thumb_func_start sub_08054E5C sub_08054E5C: @ 0x08054E5C push {r4, lr} ldr r0, _08054E94 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08054E92 movs r0, #0xff bl sub_0807CC3C cmp r0, #0 beq _08054E92 ldr r4, _08054E98 @ =gUnk_02000080 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] movs r0, #0xb4 strh r0, [r4, #8] movs r0, #6 movs r1, #0x10 bl sub_08050054 ldrb r0, [r4, #4] bl sub_080553E0 ldrb r0, [r4, #4] movs r1, #1 bl sub_0801876C _08054E92: pop {r4, pc} .align 2, 0 _08054E94: .4byte gUnk_03000FD0 _08054E98: .4byte gUnk_02000080 thumb_func_start sub_08054E9C sub_08054E9C: @ 0x08054E9C push {lr} ldr r1, _08054EB4 @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _08054EB2 ldrb r0, [r1, #5] adds r0, #1 strb r0, [r1, #5] _08054EB2: pop {pc} .align 2, 0 _08054EB4: .4byte gUnk_02000080 thumb_func_start sub_08054EB8 sub_08054EB8: @ 0x08054EB8 push {r4, lr} adds r4, r0, #0 bl sub_0805E8D4 adds r3, r0, #0 cmp r3, #0 beq _08054EF6 movs r0, #9 strb r0, [r3, #8] movs r0, #0x24 strb r0, [r3, #9] ldr r2, _08054EF8 @ =gUnk_03000BF0 ldrh r0, [r4, #0x2e] ldrh r1, [r2, #6] subs r0, r0, r1 strh r0, [r3, #0x38] ldrh r0, [r4, #0x32] ldrh r1, [r2, #8] subs r0, r0, r1 subs r0, #0x10 strh r0, [r3, #0x3a] adds r1, r3, #0 adds r1, #0x35 movs r0, #1 strb r0, [r1] movs r0, #0x79 strh r0, [r3, #0x3e] adds r0, r3, #0 movs r1, #6 bl sub_0805EA2C _08054EF6: pop {r4, pc} .align 2, 0 _08054EF8: .4byte gUnk_03000BF0 thumb_func_start sub_08054EFC sub_08054EFC: @ 0x08054EFC push {r4, r5, lr} adds r4, r0, #0 movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _08054F5C @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 subs r1, #0x40 ldr r0, _08054F60 @ =0x00004074 movs r2, #1 bl sub_0800015E adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 movs r1, #0x35 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _08054F54 ldrh r0, [r1, #0x32] subs r0, #0x10 strh r0, [r1, #0x32] adds r0, r4, #0 bl sub_0806FAD8 _08054F54: movs r0, #0xfd bl sub_080A3268 pop {r4, r5, pc} .align 2, 0 _08054F5C: .4byte gUnk_03000BF0 _08054F60: .4byte 0x00004074 thumb_func_start sub_08054F64 sub_08054F64: @ 0x08054F64 push {lr} ldrb r0, [r0, #0xb] ldr r3, _08054F7C @ =gUnk_02033280 ldr r2, [r3] adds r1, r2, #0 ands r1, r0 cmp r1, r0 beq _08054F80 movs r0, #0 strb r0, [r3, #6] b _08054F8C .align 2, 0 _08054F7C: .4byte gUnk_02033280 _08054F80: bics r2, r1 str r2, [r3] ldrb r1, [r3, #7] movs r0, #1 orrs r0, r1 strb r0, [r3, #7] _08054F8C: pop {pc} .align 2, 0 thumb_func_start sub_08054F90 sub_08054F90: @ 0x08054F90 push {lr} ldr r1, _08054FA4 @ =gUnk_080FF120 ldr r0, _08054FA8 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08054FA4: .4byte gUnk_080FF120 _08054FA8: .4byte gUnk_02000080 thumb_func_start sub_08054FAC sub_08054FAC: @ 0x08054FAC push {r4, r5, r6, lr} ldr r6, _08055008 @ =gUnk_02000080 ldr r5, [r6, #0xc] ldr r1, _0805500C @ =gUnk_080FF108 ldrb r0, [r5, #1] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl sub_0804ADDC ldrb r0, [r5, #1] movs r1, #0 cmp r0, #0 beq _08054FCA movs r1, #3 _08054FCA: ldrb r0, [r6, #4] movs r2, #0 movs r3, #0 bl sub_08055B70 ldrb r0, [r6, #6] adds r0, #1 movs r4, #0 strb r0, [r6, #6] ldr r1, _08055010 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #4 movs r1, #0x10 bl sub_08050054 strh r4, [r6, #0xa] movs r0, #0x80 lsls r0, r0, #3 movs r1, #0x77 bl sub_0807CB10 cmp r0, #0 beq _08055004 ldrb r0, [r5, #2] cmp r0, #0x2f bne _08055004 movs r0, #1 strh r0, [r6, #0xa] _08055004: pop {r4, r5, r6, pc} .align 2, 0 _08055008: .4byte gUnk_02000080 _0805500C: .4byte gUnk_080FF108 _08055010: .4byte gUnk_02000070 thumb_func_start sub_08055014 sub_08055014: @ 0x08055014 push {lr} ldr r1, _08055030 @ =gUnk_02000080 ldrh r0, [r1, #0xa] cmp r0, #0 beq _0805502C movs r0, #0 strh r0, [r1, #0xa] ldr r1, _08055034 @ =0x00000407 movs r0, #0x74 movs r2, #1 bl sub_0807B314 _0805502C: pop {pc} .align 2, 0 _08055030: .4byte gUnk_02000080 _08055034: .4byte 0x00000407 thumb_func_start sub_08055038 sub_08055038: @ 0x08055038 push {lr} ldr r1, _0805504C @ =gUnk_080FF148 ldr r0, _08055050 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _0805504C: .4byte gUnk_080FF148 _08055050: .4byte gUnk_02000080 thumb_func_start sub_08055054 sub_08055054: @ 0x08055054 push {r4, lr} ldr r0, _08055080 @ =gUnk_080FF128 bl sub_0804ADDC ldr r4, _08055084 @ =gUnk_02000080 ldrb r0, [r4, #4] movs r1, #2 movs r2, #0 movs r3, #0 bl sub_08055B70 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] ldr r1, _08055088 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r4, pc} .align 2, 0 _08055080: .4byte gUnk_080FF128 _08055084: .4byte gUnk_02000080 _08055088: .4byte gUnk_02000070 thumb_func_start sub_0805508C sub_0805508C: @ 0x0805508C bx lr .align 2, 0 thumb_func_start sub_08055090 sub_08055090: @ 0x08055090 bx lr .align 2, 0 thumb_func_start sub_08055094 sub_08055094: @ 0x08055094 push {lr} ldr r1, _080550A8 @ =gUnk_080FF174 ldr r0, _080550AC @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _080550A8: .4byte gUnk_080FF174 _080550AC: .4byte gUnk_02000080 thumb_func_start sub_080550B0 sub_080550B0: @ 0x080550B0 push {r4, lr} ldr r4, _080550E8 @ =gUnk_02000080 ldr r1, [r4, #0xc] ldrb r0, [r1, #2] ldrb r1, [r1, #3] bl sub_0804B0B0 ldr r0, _080550EC @ =gUnk_080FF154 bl sub_0804ADDC ldrb r0, [r4, #4] movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08055B70 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] ldr r1, _080550F0 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r4, pc} .align 2, 0 _080550E8: .4byte gUnk_02000080 _080550EC: .4byte gUnk_080FF154 _080550F0: .4byte gUnk_02000070 thumb_func_start nullsub_487 nullsub_487: @ 0x080550F4 bx lr .align 2, 0 thumb_func_start sub_080550F8 sub_080550F8: @ 0x080550F8 push {lr} ldr r1, _0805510C @ =gUnk_080FF1CC ldr r0, _08055110 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _0805510C: .4byte gUnk_080FF1CC _08055110: .4byte gUnk_02000080 thumb_func_start sub_08055114 sub_08055114: @ 0x08055114 push {r4, lr} ldr r0, _08055150 @ =gUnk_080FF17C bl sub_0804ADDC ldr r0, _08055154 @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #9 beq _0805512A ldr r0, _08055158 @ =0x00000DB4 bl sub_08018C58 _0805512A: ldr r4, _0805515C @ =gUnk_02000080 ldrb r0, [r4, #4] movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08055B70 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] ldr r1, _08055160 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r4, pc} .align 2, 0 _08055150: .4byte gUnk_080FF17C _08055154: .4byte gUnk_02002A40 _08055158: .4byte 0x00000DB4 _0805515C: .4byte gUnk_02000080 _08055160: .4byte gUnk_02000070 thumb_func_start nullsub_488 nullsub_488: @ 0x08055164 bx lr .align 2, 0 thumb_func_start sub_08055168 sub_08055168: @ 0x08055168 push {lr} ldr r1, _0805517C @ =gUnk_080FF1F4 ldr r0, _08055180 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _0805517C: .4byte gUnk_080FF1F4 _08055180: .4byte gUnk_02000080 thumb_func_start sub_08055184 sub_08055184: @ 0x08055184 push {r4, r5, r6, lr} mov r6, r8 push {r6} ldr r5, _0805520C @ =gUnk_02000080 ldr r0, [r5, #0xc] ldrb r1, [r0, #1] movs r0, #0xf ands r0, r1 lsls r4, r0, #1 adds r4, r4, r0 lsls r4, r4, #1 ldr r0, _08055210 @ =gUnk_080FF1D4 adds r4, r4, r0 movs r1, #0 ldrsh r0, [r4, r1] bl sub_0801D7EC ldr r2, _08055214 @ =gUnk_03000F50 ldrh r0, [r4, #2] movs r6, #0 movs r3, #0 mov r8, r3 strh r0, [r2, #0x2e] ldrh r0, [r4, #4] strh r0, [r2, #0x30] ldr r0, _08055218 @ =0x00001E05 strh r0, [r2, #0x2c] adds r1, r2, #0 adds r1, #0x66 ldr r0, _0805521C @ =0x00003648 strh r0, [r1] adds r1, #2 movs r0, #0x10 strh r0, [r1] ldrh r0, [r2] movs r3, #0x80 lsls r3, r3, #4 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldrb r0, [r5, #4] movs r1, #1 bl sub_0801876C ldrb r0, [r5, #4] movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08055B70 ldrb r0, [r5, #6] adds r0, #1 strb r0, [r5, #6] strb r6, [r5, #7] movs r0, #0x3c strh r0, [r5, #8] mov r0, r8 strh r0, [r5, #0xa] ldr r1, _08055220 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r3} mov r8, r3 pop {r4, r5, r6, pc} .align 2, 0 _0805520C: .4byte gUnk_02000080 _08055210: .4byte gUnk_080FF1D4 _08055214: .4byte gUnk_03000F50 _08055218: .4byte 0x00001E05 _0805521C: .4byte 0x00003648 _08055220: .4byte gUnk_02000070 thumb_func_start sub_08055224 sub_08055224: @ 0x08055224 push {lr} ldr r0, _08055244 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08055240 movs r0, #0xff bl sub_0807CC3C cmp r0, #0 beq _08055240 ldr r1, _08055248 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] _08055240: pop {pc} .align 2, 0 _08055244: .4byte gUnk_03000FD0 _08055248: .4byte gUnk_02000080 thumb_func_start sub_0805524C sub_0805524C: @ 0x0805524C push {r4, lr} ldr r3, _08055270 @ =gUnk_02000080 ldrb r0, [r3, #7] cmp r0, #0 bne _08055274 ldrh r0, [r3, #8] subs r0, #1 strh r0, [r3, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _080552D6 ldrb r0, [r3, #7] adds r0, #1 strb r0, [r3, #7] movs r0, #0xf6 bl sub_080A3268 b _080552D6 .align 2, 0 _08055270: .4byte gUnk_02000080 _08055274: ldr r0, _080552A4 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #7 ands r0, r1 cmp r0, #0 bne _080552D6 ldr r4, _080552A8 @ =gUnk_080FF204 ldrh r2, [r3, #0xa] lsls r0, r2, #1 adds r0, r0, r4 ldrh r1, [r0] ldr r0, _080552AC @ =0x0000FFFF cmp r1, r0 beq _080552B4 ldr r1, _080552B0 @ =gUnk_03000F50 adds r0, r2, #1 strh r0, [r3, #0xa] lsls r0, r2, #1 adds r0, r0, r4 ldrh r0, [r0] adds r1, #0x68 strh r0, [r1] b _080552D6 .align 2, 0 _080552A4: .4byte gUnk_030010A0 _080552A8: .4byte gUnk_080FF204 _080552AC: .4byte 0x0000FFFF _080552B0: .4byte gUnk_03000F50 _080552B4: ldr r1, _080552D8 @ =gUnk_03000F50 ldrh r2, [r1] ldr r0, _080552DC @ =0x0000F7FF ands r0, r2 strh r0, [r1] adds r1, #0x68 movs r0, #0x80 lsls r0, r0, #5 strh r0, [r1] movs r0, #0x78 strh r0, [r3, #8] ldrb r0, [r3, #6] adds r0, #1 strb r0, [r3, #6] movs r0, #0x73 bl sub_080A3268 _080552D6: pop {r4, pc} .align 2, 0 _080552D8: .4byte gUnk_03000F50 _080552DC: .4byte 0x0000F7FF thumb_func_start sub_080552E0 sub_080552E0: @ 0x080552E0 push {lr} ldr r1, _080552F8 @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _080552F6 ldrb r0, [r1, #5] adds r0, #1 strb r0, [r1, #5] _080552F6: pop {pc} .align 2, 0 _080552F8: .4byte gUnk_02000080 thumb_func_start sub_080552FC sub_080552FC: @ 0x080552FC push {lr} ldr r1, _08055310 @ =gUnk_080FF228 ldr r0, _08055314 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08055310: .4byte gUnk_080FF228 _08055314: .4byte gUnk_02000080 thumb_func_start sub_08055318 sub_08055318: @ 0x08055318 push {r4, lr} ldr r4, _08055348 @ =gUnk_02000080 ldrb r0, [r4, #4] movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08055B70 ldrb r0, [r4, #4] movs r1, #0 bl sub_0801876C ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] ldr r1, _0805534C @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r4, pc} .align 2, 0 _08055348: .4byte gUnk_02000080 _0805534C: .4byte gUnk_02000070 thumb_func_start sub_08055350 sub_08055350: @ 0x08055350 push {lr} ldr r0, _08055378 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08055374 movs r0, #0xff bl sub_0807CC3C cmp r0, #0 beq _08055374 movs r0, #7 movs r1, #0x10 bl sub_08050054 ldr r1, _0805537C @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] _08055374: pop {pc} .align 2, 0 _08055378: .4byte gUnk_03000FD0 _0805537C: .4byte gUnk_02000080 thumb_func_start sub_08055380 sub_08055380: @ 0x08055380 push {r4, lr} ldr r0, _080553B0 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080553AC ldr r4, _080553B4 @ =gUnk_02000080 ldrb r0, [r4, #4] movs r1, #0 bl sub_08054974 movs r0, #6 movs r1, #0x10 bl sub_08050054 movs r0, #0x73 bl sub_080A3268 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] movs r0, #0x78 strh r0, [r4, #8] _080553AC: pop {r4, pc} .align 2, 0 _080553B0: .4byte gUnk_03000FD0 _080553B4: .4byte gUnk_02000080 thumb_func_start sub_080553B8 sub_080553B8: @ 0x080553B8 push {lr} ldr r0, _080553D8 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080553D6 ldr r1, _080553DC @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _080553D6 ldrb r0, [r1, #5] adds r0, #1 strb r0, [r1, #5] _080553D6: pop {pc} .align 2, 0 _080553D8: .4byte gUnk_03000FD0 _080553DC: .4byte gUnk_02000080 thumb_func_start sub_080553E0 sub_080553E0: @ 0x080553E0 push {r4, lr} ldr r0, _0805540C @ =gUnk_02000080 ldr r4, [r0, #0xc] movs r0, #0xf movs r1, #0x43 movs r2, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _08055408 ldr r0, _08055410 @ =gUnk_03000BF0 ldrh r1, [r0, #6] ldrh r3, [r4, #8] adds r1, r1, r3 strh r1, [r2, #0x2e] ldrh r0, [r0, #8] ldrh r4, [r4, #0xa] adds r0, r0, r4 strh r0, [r2, #0x32] _08055408: pop {r4, pc} .align 2, 0 _0805540C: .4byte gUnk_02000080 _08055410: .4byte gUnk_03000BF0 thumb_func_start sub_08055414 sub_08055414: @ 0x08055414 push {lr} ldr r1, _08055428 @ =gUnk_080FF238 ldr r0, _0805542C @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08055428: .4byte gUnk_080FF238 _0805542C: .4byte gUnk_02000080 thumb_func_start sub_08055430 sub_08055430: @ 0x08055430 push {r4, lr} ldr r4, _08055460 @ =gUnk_02000080 ldr r1, [r4, #0xc] ldrb r0, [r1, #2] ldrb r1, [r1, #3] bl sub_0804B0E8 ldrb r0, [r4, #4] movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08055B70 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] ldr r1, _08055464 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r4, pc} .align 2, 0 _08055460: .4byte gUnk_02000080 _08055464: .4byte gUnk_02000070 thumb_func_start sub_08055468 sub_08055468: @ 0x08055468 push {lr} ldr r0, _08055490 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _0805548C movs r0, #0xff bl sub_0807CC3C cmp r0, #0 beq _0805548C movs r0, #7 movs r1, #0x10 bl sub_08050054 ldr r1, _08055494 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] _0805548C: pop {pc} .align 2, 0 _08055490: .4byte gUnk_03000FD0 _08055494: .4byte gUnk_02000080 thumb_func_start sub_08055498 sub_08055498: @ 0x08055498 push {r4, lr} ldr r0, _080554CC @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080554CA ldr r4, _080554D0 @ =gUnk_02000080 ldrb r0, [r4, #4] movs r1, #1 bl sub_0801876C ldrb r0, [r4, #4] bl sub_080553E0 movs r0, #6 movs r1, #0x10 bl sub_08050054 movs r0, #0x73 bl sub_080A3268 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] movs r0, #0x78 strh r0, [r4, #8] _080554CA: pop {r4, pc} .align 2, 0 _080554CC: .4byte gUnk_03000FD0 _080554D0: .4byte gUnk_02000080 thumb_func_start sub_080554D4 sub_080554D4: @ 0x080554D4 push {lr} ldr r0, _080554F4 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080554F2 ldr r1, _080554F8 @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _080554F2 ldrb r0, [r1, #5] adds r0, #1 strb r0, [r1, #5] _080554F2: pop {pc} .align 2, 0 _080554F4: .4byte gUnk_03000FD0 _080554F8: .4byte gUnk_02000080 thumb_func_start sub_080554FC sub_080554FC: @ 0x080554FC push {lr} ldr r1, _08055510 @ =gUnk_080FF248 ldr r0, _08055514 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08055510: .4byte gUnk_080FF248 _08055514: .4byte gUnk_02000080 thumb_func_start sub_08055518 sub_08055518: @ 0x08055518 push {r4, lr} ldr r4, _08055540 @ =gUnk_02000080 ldrb r0, [r4, #4] movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08055B70 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] ldr r1, _08055544 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r4, pc} .align 2, 0 _08055540: .4byte gUnk_02000080 _08055544: .4byte gUnk_02000070 thumb_func_start sub_08055548 sub_08055548: @ 0x08055548 push {r4, lr} ldr r0, _08055578 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08055576 movs r0, #0xff bl sub_0807CC3C cmp r0, #0 beq _08055576 ldr r4, _0805557C @ =gUnk_02000080 ldrb r0, [r4, #4] movs r1, #1 bl sub_0801876C ldrb r0, [r4, #4] bl sub_080553E0 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] movs r0, #0xb4 strh r0, [r4, #8] _08055576: pop {r4, pc} .align 2, 0 _08055578: .4byte gUnk_03000FD0 _0805557C: .4byte gUnk_02000080 thumb_func_start sub_08055580 sub_08055580: @ 0x08055580 push {lr} ldr r1, _08055598 @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _08055596 ldrb r0, [r1, #5] adds r0, #1 strb r0, [r1, #5] _08055596: pop {pc} .align 2, 0 _08055598: .4byte gUnk_02000080 thumb_func_start sub_0805559C sub_0805559C: @ 0x0805559C push {lr} ldr r1, _080555B0 @ =gUnk_080FF254 ldr r0, _080555B4 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _080555B0: .4byte gUnk_080FF254 _080555B4: .4byte gUnk_02000080 thumb_func_start sub_080555B8 sub_080555B8: @ 0x080555B8 push {r4, r5, lr} ldr r5, _08055600 @ =gUnk_02000080 ldr r4, [r5, #0xc] ldr r1, _08055604 @ =gUnk_0811E454 ldrb r0, [r4, #0x11] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] ldrh r1, [r4, #0x12] bl sub_0807CC9C ldrb r0, [r4, #2] ldrb r1, [r4, #3] bl sub_0804B0E8 movs r0, #0x11 bl sub_0801D7EC ldrb r0, [r5, #4] movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08055B70 ldrb r0, [r5, #6] adds r0, #1 strb r0, [r5, #6] ldr r1, _08055608 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r4, r5, pc} .align 2, 0 _08055600: .4byte gUnk_02000080 _08055604: .4byte gUnk_0811E454 _08055608: .4byte gUnk_02000070 thumb_func_start sub_0805560C sub_0805560C: @ 0x0805560C push {lr} ldr r0, _0805562C @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08055628 movs r0, #0xff bl sub_0807CC3C cmp r0, #0 beq _08055628 ldr r1, _08055630 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] _08055628: pop {pc} .align 2, 0 _0805562C: .4byte gUnk_03000FD0 _08055630: .4byte gUnk_02000080 thumb_func_start sub_08055634 sub_08055634: @ 0x08055634 push {r4, r5, lr} ldr r4, _0805566C @ =gUnk_02000080 ldr r5, [r4, #0xc] movs r0, #0x2c movs r1, #0 movs r2, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _0805565C ldr r0, _08055670 @ =gUnk_03000BF0 ldrh r1, [r5, #8] ldrh r3, [r0, #6] adds r1, r1, r3 strh r1, [r2, #0x2e] ldrh r1, [r5, #0xa] ldrh r0, [r0, #8] adds r1, r1, r0 strh r1, [r2, #0x32] _0805565C: ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] movs r0, #0xc3 lsls r0, r0, #1 strh r0, [r4, #8] pop {r4, r5, pc} .align 2, 0 _0805566C: .4byte gUnk_02000080 _08055670: .4byte gUnk_03000BF0 thumb_func_start sub_08055674 sub_08055674: @ 0x08055674 push {lr} ldr r1, _0805568C @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _0805568A ldrb r0, [r1, #5] adds r0, #1 strb r0, [r1, #5] _0805568A: pop {pc} .align 2, 0 _0805568C: .4byte gUnk_02000080 thumb_func_start sub_08055690 sub_08055690: @ 0x08055690 push {lr} ldr r1, _080556A4 @ =gUnk_080FF284 ldr r0, _080556A8 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _080556A4: .4byte gUnk_080FF284 _080556A8: .4byte gUnk_02000080 thumb_func_start sub_080556AC sub_080556AC: @ 0x080556AC push {r4, lr} ldr r4, _080556E4 @ =gUnk_02000080 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] ldr r1, _080556E8 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] ldr r1, [r4, #0xc] ldrb r0, [r1, #2] ldrb r1, [r1, #3] bl sub_0804B0B0 ldr r0, _080556EC @ =gUnk_080FF264 bl sub_0804ADDC ldrb r0, [r4, #4] movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08055B70 movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r4, pc} .align 2, 0 _080556E4: .4byte gUnk_02000080 _080556E8: .4byte gUnk_02000070 _080556EC: .4byte gUnk_080FF264 thumb_func_start nullsub_489 nullsub_489: @ 0x080556F0 bx lr .align 2, 0 thumb_func_start sub_080556F4 sub_080556F4: @ 0x080556F4 push {lr} ldr r1, _08055708 @ =gUnk_080FF28C ldr r0, _0805570C @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08055708: .4byte gUnk_080FF28C _0805570C: .4byte gUnk_02000080 thumb_func_start sub_08055710 sub_08055710: @ 0x08055710 push {r4, lr} ldr r4, _0805575C @ =gUnk_02000080 ldr r1, [r4, #0xc] ldrb r0, [r1, #2] ldrb r1, [r1, #3] bl sub_0804B0B0 ldr r0, _08055760 @ =gUnk_080FEE48 bl sub_0804ADF8 adds r1, r0, #0 cmp r1, #0 beq _08055734 movs r0, #2 strb r0, [r1, #0xb] adds r1, #0x86 ldr r0, _08055764 @ =0x000080FF strh r0, [r1] _08055734: ldrb r0, [r4, #4] bl sub_08054A14 ldrb r0, [r4, #4] movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08055B70 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] ldr r1, _08055768 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r4, pc} .align 2, 0 _0805575C: .4byte gUnk_02000080 _08055760: .4byte gUnk_080FEE48 _08055764: .4byte 0x000080FF _08055768: .4byte gUnk_02000070 thumb_func_start sub_0805576C sub_0805576C: @ 0x0805576C push {lr} ldr r0, _08055790 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _0805578C movs r0, #0xff bl sub_0807CC3C cmp r0, #0 beq _0805578C ldr r0, _08055794 @ =gUnk_02000080 ldrb r1, [r0, #6] adds r1, #1 strb r1, [r0, #6] movs r1, #0x78 strh r1, [r0, #8] _0805578C: pop {pc} .align 2, 0 _08055790: .4byte gUnk_03000FD0 _08055794: .4byte gUnk_02000080 thumb_func_start sub_08055798 sub_08055798: @ 0x08055798 push {lr} ldr r1, _080557B0 @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _080557AE ldrb r0, [r1, #5] adds r0, #1 strb r0, [r1, #5] _080557AE: pop {pc} .align 2, 0 _080557B0: .4byte gUnk_02000080 thumb_func_start sub_080557B4 sub_080557B4: @ 0x080557B4 push {lr} ldr r1, _080557C8 @ =gUnk_080FF2B8 ldr r0, _080557CC @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _080557C8: .4byte gUnk_080FF2B8 _080557CC: .4byte gUnk_02000080 thumb_func_start sub_080557D0 sub_080557D0: @ 0x080557D0 push {r4, lr} ldr r4, _08055808 @ =gUnk_02000080 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] ldr r1, _0805580C @ =gUnk_02000070 movs r0, #1 strb r0, [r1] ldr r1, [r4, #0xc] ldrb r0, [r1, #2] ldrb r1, [r1, #3] bl sub_0804B0B0 ldr r0, _08055810 @ =gUnk_080FF298 bl sub_0804ADDC ldrb r0, [r4, #4] movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08055B70 movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r4, pc} .align 2, 0 _08055808: .4byte gUnk_02000080 _0805580C: .4byte gUnk_02000070 _08055810: .4byte gUnk_080FF298 thumb_func_start nullsub_490 nullsub_490: @ 0x08055814 bx lr .align 2, 0 thumb_func_start sub_08055818 sub_08055818: @ 0x08055818 push {lr} ldr r1, _0805582C @ =gUnk_080FF300 ldr r0, _08055830 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _0805582C: .4byte gUnk_080FF300 _08055830: .4byte gUnk_02000080 thumb_func_start sub_08055834 sub_08055834: @ 0x08055834 push {r4, lr} ldr r0, _08055870 @ =gUnk_080FF2C0 bl sub_0804ADDC ldr r0, _08055874 @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #9 beq _0805584A ldr r0, _08055878 @ =0x00000DB4 bl sub_08018C58 _0805584A: ldr r4, _0805587C @ =gUnk_02000080 ldrb r0, [r4, #4] movs r1, #1 movs r2, #0 movs r3, #0 bl sub_08055B70 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] ldr r1, _08055880 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r4, pc} .align 2, 0 _08055870: .4byte gUnk_080FF2C0 _08055874: .4byte gUnk_02002A40 _08055878: .4byte 0x00000DB4 _0805587C: .4byte gUnk_02000080 _08055880: .4byte gUnk_02000070 thumb_func_start nullsub_491 nullsub_491: @ 0x08055884 bx lr .align 2, 0 thumb_func_start sub_08055888 sub_08055888: @ 0x08055888 push {lr} ldr r1, _0805589C @ =gUnk_080FF328 ldr r0, _080558A0 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _0805589C: .4byte gUnk_080FF328 _080558A0: .4byte gUnk_02000080 thumb_func_start sub_080558A4 sub_080558A4: @ 0x080558A4 push {r4, lr} ldr r4, _080558DC @ =gUnk_02000080 ldr r1, [r4, #0xc] ldrb r0, [r1, #2] ldrb r1, [r1, #3] bl sub_0804B0B0 ldr r0, _080558E0 @ =gUnk_080FF308 bl sub_0804ADDC ldrb r0, [r4, #4] movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08055B70 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] ldr r1, _080558E4 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r4, pc} .align 2, 0 _080558DC: .4byte gUnk_02000080 _080558E0: .4byte gUnk_080FF308 _080558E4: .4byte gUnk_02000070 thumb_func_start nullsub_492 nullsub_492: @ 0x080558E8 bx lr .align 2, 0 thumb_func_start sub_080558EC sub_080558EC: @ 0x080558EC push {lr} ldr r1, _08055900 @ =gUnk_080FF330 ldr r0, _08055904 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08055900: .4byte gUnk_080FF330 _08055904: .4byte gUnk_02000080 thumb_func_start sub_08055908 sub_08055908: @ 0x08055908 push {r4, r5, lr} ldr r5, _08055940 @ =gUnk_02000080 ldr r4, [r5, #0xc] ldrb r0, [r4, #2] ldrb r1, [r4, #3] bl sub_0804B0B0 ldrb r0, [r4, #2] ldrb r1, [r4, #3] bl sub_0804B0E8 ldrb r0, [r5, #4] movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08055B70 ldrb r0, [r5, #6] adds r0, #1 strb r0, [r5, #6] ldr r1, _08055944 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r4, r5, pc} .align 2, 0 _08055940: .4byte gUnk_02000080 _08055944: .4byte gUnk_02000070 thumb_func_start sub_08055948 sub_08055948: @ 0x08055948 push {lr} ldr r0, _08055970 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _0805596C movs r0, #0xff bl sub_0807CC3C cmp r0, #0 beq _0805596C bl sub_08055994 ldr r0, _08055974 @ =gUnk_02000080 ldrb r1, [r0, #6] adds r1, #1 strb r1, [r0, #6] movs r1, #0x78 strh r1, [r0, #8] _0805596C: pop {pc} .align 2, 0 _08055970: .4byte gUnk_03000FD0 _08055974: .4byte gUnk_02000080 thumb_func_start sub_08055978 sub_08055978: @ 0x08055978 push {lr} ldr r1, _08055990 @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _0805598E ldrb r0, [r1, #5] adds r0, #1 strb r0, [r1, #5] _0805598E: pop {pc} .align 2, 0 _08055990: .4byte gUnk_02000080 thumb_func_start sub_08055994 sub_08055994: @ 0x08055994 push {r4, lr} ldr r4, _080559D8 @ =gUnk_02000080 ldrb r0, [r4, #4] lsls r0, r0, #3 ldr r1, _080559DC @ =gUnk_080FEAC8 adds r0, r0, r1 ldrb r1, [r0, #6] movs r0, #1 ands r0, r1 movs r3, #1 cmp r0, #0 beq _080559AE movs r3, #2 _080559AE: ldr r0, [r4, #0xc] ldrh r1, [r0, #8] lsrs r1, r1, #4 movs r2, #0x3f ands r1, r2 ldrh r0, [r0, #0xa] lsrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r1, r0 movs r0, #0x73 adds r2, r3, #0 bl sub_0807B314 ldrb r0, [r4, #4] bl sub_080553E0 movs r0, #0x73 bl sub_080A3268 pop {r4, pc} .align 2, 0 _080559D8: .4byte gUnk_02000080 _080559DC: .4byte gUnk_080FEAC8 thumb_func_start sub_080559E0 sub_080559E0: @ 0x080559E0 push {lr} ldr r1, _080559F4 @ =gUnk_080FF35C ldr r0, _080559F8 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _080559F4: .4byte gUnk_080FF35C _080559F8: .4byte gUnk_02000080 thumb_func_start sub_080559FC sub_080559FC: @ 0x080559FC push {r4, lr} ldr r4, _08055A30 @ =gUnk_02000080 ldr r0, [r4, #0xc] ldrb r0, [r0, #1] cmp r0, #0 beq _08055A0E ldr r0, _08055A34 @ =gUnk_080FF33C bl sub_0804ADDC _08055A0E: ldrb r0, [r4, #4] movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08055B70 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] ldr r1, _08055A38 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r4, pc} .align 2, 0 _08055A30: .4byte gUnk_02000080 _08055A34: .4byte gUnk_080FF33C _08055A38: .4byte gUnk_02000070 thumb_func_start sub_08055A3C sub_08055A3C: @ 0x08055A3C push {lr} ldr r0, _08055A64 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08055A60 movs r0, #0xff bl sub_0807CC3C cmp r0, #0 beq _08055A60 movs r0, #7 movs r1, #0x10 bl sub_08050054 ldr r1, _08055A68 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] _08055A60: pop {pc} .align 2, 0 _08055A64: .4byte gUnk_03000FD0 _08055A68: .4byte gUnk_02000080 thumb_func_start sub_08055A6C sub_08055A6C: @ 0x08055A6C push {r4, lr} ldr r0, _08055AA0 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08055A9E ldr r4, _08055AA4 @ =gUnk_02000080 ldrb r0, [r4, #4] movs r1, #1 bl sub_0801876C ldrb r0, [r4, #4] bl sub_080553E0 movs r0, #6 movs r1, #0x10 bl sub_08050054 movs r0, #0x73 bl sub_080A3268 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] movs r0, #0x78 strh r0, [r4, #8] _08055A9E: pop {r4, pc} .align 2, 0 _08055AA0: .4byte gUnk_03000FD0 _08055AA4: .4byte gUnk_02000080 thumb_func_start sub_08055AA8 sub_08055AA8: @ 0x08055AA8 push {lr} ldr r0, _08055AC8 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08055AC6 ldr r1, _08055ACC @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _08055AC6 ldrb r0, [r1, #5] adds r0, #1 strb r0, [r1, #5] _08055AC6: pop {pc} .align 2, 0 _08055AC8: .4byte gUnk_03000FD0 _08055ACC: .4byte gUnk_02000080 thumb_func_start sub_08055AD0 sub_08055AD0: @ 0x08055AD0 push {lr} ldr r1, _08055AE4 @ =gUnk_080FF36C ldr r0, _08055AE8 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08055AE4: .4byte gUnk_080FF36C _08055AE8: .4byte gUnk_02000080 thumb_func_start sub_08055AEC sub_08055AEC: @ 0x08055AEC push {r4, lr} ldr r4, _08055B2C @ =gUnk_02000080 ldrb r0, [r4, #4] movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08055B70 ldr r0, [r4, #0xc] ldrb r0, [r0, #1] lsls r0, r0, #4 ldr r1, _08055B30 @ =gUnk_080FED18 adds r0, r0, r1 bl sub_0804ADF8 adds r1, r0, #0 cmp r1, #0 beq _08055B14 movs r0, #1 strb r0, [r1, #0xb] _08055B14: ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] ldr r1, _08055B34 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r4, pc} .align 2, 0 _08055B2C: .4byte gUnk_02000080 _08055B30: .4byte gUnk_080FED18 _08055B34: .4byte gUnk_02000070 thumb_func_start sub_08055B38 sub_08055B38: @ 0x08055B38 push {lr} ldr r0, _08055B4C @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08055B48 ldr r1, _08055B50 @ =gUnk_02000080 movs r0, #0x78 strh r0, [r1, #8] _08055B48: pop {pc} .align 2, 0 _08055B4C: .4byte gUnk_03000FD0 _08055B50: .4byte gUnk_02000080 thumb_func_start sub_08055B54 sub_08055B54: @ 0x08055B54 push {lr} ldr r1, _08055B6C @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _08055B6A ldrb r0, [r1, #5] adds r0, #1 strb r0, [r1, #5] _08055B6A: pop {pc} .align 2, 0 _08055B6C: .4byte gUnk_02000080 thumb_func_start sub_08055B70 sub_08055B70: @ 0x08055B70 push {r4, r5, r6, lr} adds r0, r1, #0 adds r5, r2, #0 adds r6, r3, #0 ldr r1, _08055BA4 @ =gUnk_02000080 ldr r4, [r1, #0xc] lsls r0, r0, #4 ldr r1, _08055BA8 @ =gUnk_080FF378 adds r0, r0, r1 bl sub_0804ADF8 adds r3, r0, #0 cmp r3, #0 beq _08055BA2 ldrh r0, [r4, #8] ldr r1, _08055BAC @ =gUnk_03000BF0 adds r0, r0, r5 ldrh r2, [r1, #6] adds r0, r0, r2 strh r0, [r3, #0x2e] ldrh r0, [r4, #0xa] adds r0, r0, r6 ldrh r1, [r1, #8] adds r0, r0, r1 strh r0, [r3, #0x32] _08055BA2: pop {r4, r5, r6, pc} .align 2, 0 _08055BA4: .4byte gUnk_02000080 _08055BA8: .4byte gUnk_080FF378 _08055BAC: .4byte gUnk_03000BF0 thumb_func_start sub_08055BB0 sub_08055BB0: @ 0x08055BB0 push {lr} ldr r1, _08055BC4 @ =gUnk_080FF3C8 ldr r0, _08055BC8 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08055BC4: .4byte gUnk_080FF3C8 _08055BC8: .4byte gUnk_02000080 thumb_func_start sub_08055BCC sub_08055BCC: @ 0x08055BCC push {r4, lr} ldr r4, _08055BFC @ =gUnk_02000080 ldrb r0, [r4, #4] movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08055B70 ldrb r0, [r4, #4] movs r1, #0 bl sub_0801876C ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] ldr r1, _08055C00 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r4, pc} .align 2, 0 _08055BFC: .4byte gUnk_02000080 _08055C00: .4byte gUnk_02000070 thumb_func_start sub_08055C04 sub_08055C04: @ 0x08055C04 push {lr} ldr r0, _08055C2C @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08055C28 movs r0, #0xff bl sub_0807CC3C cmp r0, #0 beq _08055C28 movs r0, #7 movs r1, #0x10 bl sub_08050054 ldr r1, _08055C30 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] _08055C28: pop {pc} .align 2, 0 _08055C2C: .4byte gUnk_03000FD0 _08055C30: .4byte gUnk_02000080 thumb_func_start sub_08055C34 sub_08055C34: @ 0x08055C34 push {r4, r5, lr} sub sp, #4 ldr r0, _08055C64 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08055CA6 ldr r5, _08055C68 @ =gUnk_02000080 ldr r4, [r5, #0xc] ldrb r0, [r5, #4] bl sub_080553E0 ldrb r1, [r4, #1] movs r0, #0x80 ands r0, r1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 beq _08055C6C ldrb r0, [r5, #4] movs r1, #0 bl sub_08054974 b _08055C8C .align 2, 0 _08055C64: .4byte gUnk_03000FD0 _08055C68: .4byte gUnk_02000080 _08055C6C: str r0, [sp] movs r0, #6 movs r1, #0x9e movs r2, #6 movs r3, #0 bl sub_0805EB2C adds r4, r0, #0 cmp r4, #0 beq _08055C8C ldr r0, [r4, #0x54] bl sub_0805E7BC adds r0, r4, #0 bl sub_0805E7BC _08055C8C: movs r0, #6 movs r1, #0x10 bl sub_08050054 movs r0, #0x73 bl sub_080A3268 ldr r0, _08055CAC @ =gUnk_02000080 ldrb r1, [r0, #6] adds r1, #1 strb r1, [r0, #6] movs r1, #0x78 strh r1, [r0, #8] _08055CA6: add sp, #4 pop {r4, r5, pc} .align 2, 0 _08055CAC: .4byte gUnk_02000080 thumb_func_start sub_08055CB0 sub_08055CB0: @ 0x08055CB0 push {lr} ldr r0, _08055CD0 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08055CCE ldr r1, _08055CD4 @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _08055CCE ldrb r0, [r1, #5] adds r0, #1 strb r0, [r1, #5] _08055CCE: pop {pc} .align 2, 0 _08055CD0: .4byte gUnk_03000FD0 _08055CD4: .4byte gUnk_02000080 thumb_func_start sub_08055CD8 sub_08055CD8: @ 0x08055CD8 push {lr} ldr r1, _08055CEC @ =gUnk_080FF3E8 ldr r0, _08055CF0 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08055CEC: .4byte gUnk_080FF3E8 _08055CF0: .4byte gUnk_02000080 thumb_func_start sub_08055CF4 sub_08055CF4: @ 0x08055CF4 push {r4, lr} ldr r4, _08055D24 @ =gUnk_02000080 ldr r1, [r4, #0xc] ldrb r0, [r1, #2] ldrb r1, [r1, #3] bl sub_0804B0B0 ldrb r0, [r4, #4] movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08055B70 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] ldr r1, _08055D28 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r4, pc} .align 2, 0 _08055D24: .4byte gUnk_02000080 _08055D28: .4byte gUnk_02000070 thumb_func_start sub_08055D2C sub_08055D2C: @ 0x08055D2C push {r4, lr} ldr r0, _08055D5C @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08055D5A movs r0, #0xff bl sub_0807CC3C cmp r0, #0 beq _08055D5A ldr r4, _08055D60 @ =gUnk_02000080 ldrb r0, [r4, #4] movs r1, #1 bl sub_0801876C ldrb r0, [r4, #4] bl sub_080553E0 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] movs r0, #0x78 strh r0, [r4, #8] _08055D5A: pop {r4, pc} .align 2, 0 _08055D5C: .4byte gUnk_03000FD0 _08055D60: .4byte gUnk_02000080 thumb_func_start sub_08055D64 sub_08055D64: @ 0x08055D64 push {lr} ldr r1, _08055D7C @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _08055D7A ldrb r0, [r1, #5] adds r0, #1 strb r0, [r1, #5] _08055D7A: pop {pc} .align 2, 0 _08055D7C: .4byte gUnk_02000080 thumb_func_start sub_08055D80 sub_08055D80: @ 0x08055D80 push {lr} ldr r1, _08055D94 @ =gUnk_080FF3F4 ldr r0, _08055D98 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08055D94: .4byte gUnk_080FF3F4 _08055D98: .4byte gUnk_02000080 thumb_func_start sub_08055D9C sub_08055D9C: @ 0x08055D9C push {lr} ldr r1, _08055DB8 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] ldr r1, _08055DBC @ =gUnk_02000070 movs r0, #1 strb r0, [r1] movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {pc} .align 2, 0 _08055DB8: .4byte gUnk_02000080 _08055DBC: .4byte gUnk_02000070 thumb_func_start sub_08055DC0 sub_08055DC0: @ 0x08055DC0 push {lr} ldr r0, _08055DE0 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08055DDC ldr r0, _08055DE4 @ =0x00000A01 bl sub_08056378 ldr r1, _08055DE8 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] movs r0, #0x78 strh r0, [r1, #8] _08055DDC: pop {pc} .align 2, 0 _08055DE0: .4byte gUnk_03000FD0 _08055DE4: .4byte 0x00000A01 _08055DE8: .4byte gUnk_02000080 thumb_func_start sub_08055DEC sub_08055DEC: @ 0x08055DEC push {lr} ldr r1, _08055E04 @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _08055E02 ldrb r0, [r1, #5] adds r0, #1 strb r0, [r1, #5] _08055E02: pop {pc} .align 2, 0 _08055E04: .4byte gUnk_02000080 thumb_func_start sub_08055E08 sub_08055E08: @ 0x08055E08 push {lr} ldr r1, _08055E1C @ =gUnk_080FF420 ldr r0, _08055E20 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _08055E1C: .4byte gUnk_080FF420 _08055E20: .4byte gUnk_02000080 thumb_func_start sub_08055E24 sub_08055E24: @ 0x08055E24 push {r4, lr} ldr r4, _08055E5C @ =gUnk_02000080 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] ldr r1, _08055E60 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] ldr r1, [r4, #0xc] ldrb r0, [r1, #2] ldrb r1, [r1, #3] bl sub_0804B0B0 ldr r0, _08055E64 @ =gUnk_080FF400 bl sub_0804ADDC ldrb r0, [r4, #4] movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08055B70 movs r0, #4 movs r1, #0x10 bl sub_08050054 pop {r4, pc} .align 2, 0 _08055E5C: .4byte gUnk_02000080 _08055E60: .4byte gUnk_02000070 _08055E64: .4byte gUnk_080FF400 thumb_func_start nullsub_493 nullsub_493: @ 0x08055E68 bx lr .align 2, 0 thumb_func_start sub_08055E6C sub_08055E6C: @ 0x08055E6C push {r4, r5, r6, lr} bl sub_08055F70 bl sub_080A3204 bl sub_0805616C bl sub_0807CE90 bl sub_080560B8 bl sub_08056208 ldr r1, _08055EEC @ =gUnk_02000010 movs r0, #0xc1 strb r0, [r1, #4] bl sub_0804FFE4 ldr r1, _08055EF0 @ =0x040000D4 movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r1] ldr r0, _08055EF4 @ =gUnk_020176A0 str r0, [r1, #4] ldr r0, _08055EF8 @ =0x84000080 str r0, [r1, #8] ldr r0, [r1, #8] movs r0, #1 bl sub_0804FF84 bl sub_08056418 bl sub_080ADD30 ldr r1, _08055EFC @ =gUnk_03001150 ldr r0, _08055F00 @ =0x01234567 str r0, [r1] ldr r4, _08055F04 @ =gUnk_03001000 adds r0, r4, #0 movs r1, #0x10 bl sub_0801D630 movs r0, #0 bl sub_08056010 adds r6, r4, #0 _08055EC8: bl sub_0801D6C0 bl sub_08055FF4 cmp r0, #0 beq _08055ED8 bl sub_080560A8 _08055ED8: ldrb r0, [r6, #1] ldr r1, _08055F04 @ =gUnk_03001000 cmp r0, #0 beq _08055F08 cmp r0, #1 bne _08055F08 bl sub_08056260 b _08055F64 .align 2, 0 _08055EEC: .4byte gUnk_02000010 _08055EF0: .4byte 0x040000D4 _08055EF4: .4byte gUnk_020176A0 _08055EF8: .4byte 0x84000080 _08055EFC: .4byte gUnk_03001150 _08055F00: .4byte 0x01234567 _08055F04: .4byte gUnk_03001000 _08055F08: ldrb r0, [r1, #8] cmp r0, #0 beq _08055F22 ldr r4, _08055F34 @ =gUnk_03001000 movs r5, #0xff _08055F12: bl VBlankIntrWait ldrb r0, [r4, #8] subs r0, #1 strb r0, [r4, #8] ands r0, r5 cmp r0, #0 bne _08055F12 _08055F22: ldr r1, _08055F34 @ =gUnk_03001000 ldrb r0, [r1, #9] cmp r0, #0 beq _08055F44 subs r0, #1 strb r0, [r1, #9] ldrb r4, [r1, #0xa] b _08055F3C .align 2, 0 _08055F34: .4byte gUnk_03001000 _08055F38: bl VBlankIntrWait _08055F3C: adds r0, r4, #0 subs r4, #1 cmp r0, #0 bgt _08055F38 _08055F44: ldrh r0, [r6, #0xc] adds r0, #1 strh r0, [r6, #0xc] ldr r1, _08055F6C @ =gUnk_08100CBC ldrb r0, [r6, #2] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 bl sub_08056458 bl sub_08050154 bl sub_080A3480 _08055F64: bl sub_08016E78 b _08055EC8 .align 2, 0 _08055F6C: .4byte gUnk_08100CBC thumb_func_start sub_08055F70 sub_08055F70: @ 0x08055F70 push {lr} bl sub_08056020 movs r0, #0xfe bl RegisterRamReset movs r1, #0xa0 lsls r1, r1, #0x13 ldr r2, _08055FC8 @ =0x00007FFF adds r0, r2, #0 strh r0, [r1] ldr r1, _08055FCC @ =0x04000204 ldr r2, _08055FD0 @ =0x00004014 adds r0, r2, #0 strh r0, [r1] ldr r2, _08055FD4 @ =0x0003FFD0 ldr r0, _08055FD8 @ =gUnk_02000030 adds r1, r2, #0 bl sub_0801D630 ldr r0, _08055FDC @ =gUnk_080B2CD8 ldr r3, _08055FE0 @ =sub_080B197C subs r2, r0, r3 cmp r2, #0 beq _08055FAA ldr r1, _08055FE4 @ =gUnk_030056F0 adds r0, r3, #0 bl sub_0801D66C _08055FAA: ldr r0, _08055FE8 @ =gUnk_080B2CD8 ldr r3, _08055FEC @ =gUnk_080B2CD8 subs r2, r0, r3 cmp r2, #0 beq _08055FBC ldr r1, _08055FF0 @ =gUnk_02038560 adds r0, r3, #0 bl sub_0801D66C _08055FBC: movs r0, #0 bl sub_0801DA90 bl sub_08016B34 pop {pc} .align 2, 0 _08055FC8: .4byte 0x00007FFF _08055FCC: .4byte 0x04000204 _08055FD0: .4byte 0x00004014 _08055FD4: .4byte 0x0003FFD0 _08055FD8: .4byte gUnk_02000030 _08055FDC: .4byte gUnk_080B2CD8 _08055FE0: .4byte sub_080B197C _08055FE4: .4byte gUnk_030056F0 _08055FE8: .4byte gUnk_080B2CD8 _08055FEC: .4byte gUnk_080B2CD8 _08055FF0: .4byte gUnk_02038560 thumb_func_start sub_08055FF4 sub_08055FF4: @ 0x08055FF4 push {lr} movs r2, #0 ldr r0, _0805600C @ =gUnk_03000FF0 ldrh r1, [r0] movs r0, #0xf ands r0, r1 cmp r0, #0xf bne _08056006 movs r2, #1 _08056006: adds r0, r2, #0 pop {pc} .align 2, 0 _0805600C: .4byte gUnk_03000FF0 thumb_func_start sub_08056010 sub_08056010: @ 0x08056010 ldr r1, _0805601C @ =gUnk_03001000 movs r2, #0 strb r0, [r1, #2] strb r2, [r1, #3] strb r2, [r1, #4] bx lr .align 2, 0 _0805601C: .4byte gUnk_03001000 thumb_func_start sub_08056020 sub_08056020: @ 0x08056020 push {r4, lr} ldr r2, _08056088 @ =0x04000208 movs r1, #0 strh r1, [r2] ldr r0, _0805608C @ =0x04000200 strh r1, [r0] ldr r0, _08056090 @ =0x04000004 strh r1, [r0] ldr r0, _08056094 @ =0x04000202 strh r1, [r0] strh r1, [r2] ldr r1, _08056098 @ =0x040000B0 ldrh r2, [r1, #0xa] ldr r4, _0805609C @ =0x0000C5FF adds r0, r4, #0 ands r0, r2 strh r0, [r1, #0xa] ldrh r2, [r1, #0xa] ldr r3, _080560A0 @ =0x00007FFF adds r0, r3, #0 ands r0, r2 strh r0, [r1, #0xa] ldrh r0, [r1, #0xa] adds r1, #0xc ldrh r2, [r1, #0xa] adds r0, r4, #0 ands r0, r2 strh r0, [r1, #0xa] ldrh r2, [r1, #0xa] adds r0, r3, #0 ands r0, r2 strh r0, [r1, #0xa] ldrh r0, [r1, #0xa] adds r1, #0xc ldrh r2, [r1, #0xa] adds r0, r4, #0 ands r0, r2 strh r0, [r1, #0xa] ldrh r2, [r1, #0xa] adds r0, r3, #0 ands r0, r2 strh r0, [r1, #0xa] ldrh r0, [r1, #0xa] ldr r0, _080560A4 @ =0x040000D4 ldrh r1, [r0, #0xa] ands r4, r1 strh r4, [r0, #0xa] ldrh r1, [r0, #0xa] ands r3, r1 strh r3, [r0, #0xa] ldrh r0, [r0, #0xa] pop {r4, pc} .align 2, 0 _08056088: .4byte 0x04000208 _0805608C: .4byte 0x04000200 _08056090: .4byte 0x04000004 _08056094: .4byte 0x04000202 _08056098: .4byte 0x040000B0 _0805609C: .4byte 0x0000C5FF _080560A0: .4byte 0x00007FFF _080560A4: .4byte 0x040000D4 thumb_func_start sub_080560A8 sub_080560A8: @ 0x080560A8 push {lr} bl sub_08056020 movs r0, #0xde bl SoftReset pop {pc} .align 2, 0 thumb_func_start sub_080560B8 sub_080560B8: @ 0x080560B8 push {r4, lr} bl sub_08056134 cmp r0, #0 bne _080560F8 movs r0, #0x80 lsls r0, r0, #0x12 bl sub_0807CF30 adds r1, r0, #0 movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 blt _080560E4 cmp r1, #0 ble _080560E4 cmp r1, #1 bne _080560E4 bl sub_08056134 cmp r0, #0 bne _080560F8 _080560E4: ldr r0, _08056128 @ =gUnk_08100CD4 movs r4, #0x80 lsls r4, r4, #0x12 adds r1, r4, #0 movs r2, #0x10 bl sub_0801D66C adds r0, r4, #0 bl sub_0807CF10 _080560F8: ldr r2, _0805612C @ =gUnk_02000010 ldr r1, [r2] ldr r0, _08056130 @ =0x4D435A33 eors r1, r0 rsbs r0, r1, #0 orrs r0, r1 lsrs r0, r0, #0x1f ldrb r1, [r2, #4] cmp r1, #0 beq _08056112 cmp r1, #0xc1 beq _08056112 movs r0, #1 _08056112: cmp r0, #0 beq _08056124 ldr r4, _0805612C @ =gUnk_02000010 adds r0, r4, #0 movs r1, #0x20 bl sub_0801D630 ldr r0, _08056130 @ =0x4D435A33 str r0, [r4] _08056124: pop {r4, pc} .align 2, 0 _08056128: .4byte gUnk_08100CD4 _0805612C: .4byte gUnk_02000010 _08056130: .4byte 0x4D435A33 thumb_func_start sub_08056134 sub_08056134: @ 0x08056134 push {lr} movs r2, #0x80 lsls r2, r2, #0x12 ldr r1, [r2] ldr r0, _08056164 @ =0x4D435A33 cmp r1, r0 bne _08056160 ldrb r0, [r2, #4] cmp r0, #2 bhi _08056160 ldrb r0, [r2, #5] cmp r0, #2 bhi _08056160 ldrb r0, [r2, #6] cmp r0, #2 bhi _08056160 ldrb r0, [r2, #7] cmp r0, #1 bne _08056160 ldrb r0, [r2, #0xe] cmp r0, #0 beq _08056168 _08056160: movs r0, #0 b _0805616A .align 2, 0 _08056164: .4byte 0x4D435A33 _08056168: movs r0, #1 _0805616A: pop {pc} thumb_func_start sub_0805616C sub_0805616C: @ 0x0805616C push {lr} ldr r0, _080561E8 @ =0x80040000 bl sub_080A3268 ldr r0, _080561EC @ =gUnk_03000F50 adds r3, r0, #0 adds r3, #0x6c ldrb r2, [r3] adds r0, #0x6d movs r1, #0 strb r2, [r0] strb r1, [r3] ldr r1, _080561F0 @ =0x040000B0 ldrh r2, [r1, #0xa] ldr r0, _080561F4 @ =0x0000C5FF ands r0, r2 strh r0, [r1, #0xa] ldrh r2, [r1, #0xa] ldr r0, _080561F8 @ =0x00007FFF ands r0, r2 strh r0, [r1, #0xa] ldrh r0, [r1, #0xa] ldr r0, [r1, #8] movs r2, #0x80 lsls r2, r2, #0x18 cmp r0, #0 bge _080561AA _080561A2: ldr r0, [r1, #8] ands r0, r2 cmp r0, #0 bne _080561A2 _080561AA: ldr r2, _080561FC @ =0x040000BC ldr r0, [r2, #8] movs r1, #0x80 lsls r1, r1, #0x18 cmp r0, #0 bge _080561BE _080561B6: ldr r0, [r2, #8] ands r0, r1 cmp r0, #0 bne _080561B6 _080561BE: ldr r2, _08056200 @ =0x040000C8 ldr r0, [r2, #8] movs r1, #0x80 lsls r1, r1, #0x18 cmp r0, #0 bge _080561D2 _080561CA: ldr r0, [r2, #8] ands r0, r1 cmp r0, #0 bne _080561CA _080561D2: ldr r2, _08056204 @ =0x040000D4 ldr r0, [r2, #8] movs r1, #0x80 lsls r1, r1, #0x18 cmp r0, #0 bge _080561E6 _080561DE: ldr r0, [r2, #8] ands r0, r1 cmp r0, #0 bne _080561DE _080561E6: pop {pc} .align 2, 0 _080561E8: .4byte 0x80040000 _080561EC: .4byte gUnk_03000F50 _080561F0: .4byte 0x040000B0 _080561F4: .4byte 0x0000C5FF _080561F8: .4byte 0x00007FFF _080561FC: .4byte 0x040000BC _08056200: .4byte 0x040000C8 _08056204: .4byte 0x040000D4 thumb_func_start sub_08056208 sub_08056208: @ 0x08056208 push {lr} ldr r0, _08056224 @ =0x80060000 bl sub_080A3268 ldr r0, _08056228 @ =gUnk_03000F50 adds r3, r0, #0 adds r3, #0x6d ldrb r2, [r3] adds r0, #0x6c movs r1, #0 strb r2, [r0] strb r1, [r3] pop {pc} .align 2, 0 _08056224: .4byte 0x80060000 _08056228: .4byte gUnk_03000F50 thumb_func_start sub_0805622C sub_0805622C: @ 0x0805622C ldr r3, _08056248 @ =gUnk_03000F50 str r0, [r3, #0x70] str r1, [r3, #0x74] str r2, [r3, #0x78] adds r3, #0x6c movs r2, #1 movs r0, #1 strb r0, [r3] ldr r1, _0805624C @ =gUnk_03003DE4 ldrb r0, [r1] eors r0, r2 strb r0, [r1] bx lr .align 2, 0 _08056248: .4byte gUnk_03000F50 _0805624C: .4byte gUnk_03003DE4 thumb_func_start sub_08056250 sub_08056250: @ 0x08056250 ldr r0, _0805625C @ =gUnk_03000F50 adds r0, #0x6c movs r1, #0 strb r1, [r0] bx lr .align 2, 0 _0805625C: .4byte gUnk_03000F50 thumb_func_start sub_08056260 sub_08056260: @ 0x08056260 push {r4, r5, r6, lr} mov r6, sb mov r5, r8 push {r5, r6} movs r1, #0x80 lsls r1, r1, #0x13 movs r0, #0x80 strh r0, [r1] ldr r1, _080562B8 @ =0x04000132 ldr r2, _080562BC @ =0x00008304 adds r0, r2, #0 strh r0, [r1] ldr r6, _080562C0 @ =0x04000208 movs r0, #0 mov r8, r0 strh r0, [r6] ldr r5, _080562C4 @ =0x04000200 ldrh r4, [r5] movs r1, #0xc0 lsls r1, r1, #6 adds r0, r1, #0 strh r0, [r5] movs r2, #1 mov sb, r2 strh r2, [r6] bl SoundBiasReset svc #3 bl SoundBiasSet mov r0, r8 strh r0, [r6] strh r4, [r5] mov r1, sb strh r1, [r6] ldr r0, _080562C8 @ =gUnk_03001000 ldrb r1, [r0, #1] mov r2, r8 strb r2, [r0, #1] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, pc} .align 2, 0 _080562B8: .4byte 0x04000132 _080562BC: .4byte 0x00008304 _080562C0: .4byte 0x04000208 _080562C4: .4byte 0x04000200 _080562C8: .4byte gUnk_03001000 thumb_func_start sub_080562CC sub_080562CC: @ 0x080562CC push {r4, r5, r6, lr} ldr r6, _080562FC @ =gUnk_03000BF0 movs r4, #0xa ldrsh r5, [r6, r4] ldrh r4, [r6, #6] subs r5, r5, r4 subs r5, r5, r0 adds r5, #0xf0 movs r4, #0xc ldrsh r0, [r6, r4] ldrh r4, [r6, #8] subs r0, r0, r4 subs r0, r0, r1 adds r0, #0xa0 adds r2, #0xf0 adds r3, #0xa0 movs r1, #0 cmp r5, r2 bhs _080562F8 cmp r0, r3 bhs _080562F8 movs r1, #1 _080562F8: adds r0, r1, #0 pop {r4, r5, r6, pc} .align 2, 0 _080562FC: .4byte gUnk_03000BF0 thumb_func_start sub_08056300 sub_08056300: @ 0x08056300 push {r4, lr} adds r4, r0, #0 b _0805631C _08056306: ldrh r0, [r4, #2] ldrh r1, [r4, #4] ldrh r2, [r4, #6] ldrh r3, [r4, #8] bl sub_080562CC cmp r0, #0 beq _0805631A ldrh r0, [r4] b _08056324 _0805631A: adds r4, #0xa _0805631C: ldrh r0, [r4] cmp r0, #0xff bne _08056306 movs r0, #0xff _08056324: pop {r4, pc} .align 2, 0 thumb_func_start sub_08056328 sub_08056328: @ 0x08056328 push {lr} bl sub_0805E780 pop {pc} thumb_func_start sub_08056330 sub_08056330: @ 0x08056330 push {lr} bl sub_0805E780 pop {pc} thumb_func_start sub_08056338 sub_08056338: @ 0x08056338 push {lr} movs r2, #1 rsbs r2, r2, #0 ldr r0, _08056358 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08056354 ldr r1, _0805635C @ =gUnk_02000040 ldrb r0, [r1] cmp r0, #3 bne _08056354 ldrb r2, [r1, #1] _08056354: adds r0, r2, #0 pop {pc} .align 2, 0 _08056358: .4byte gUnk_02000050 _0805635C: .4byte gUnk_02000040 thumb_func_start sub_08056360 sub_08056360: @ 0x08056360 push {lr} ldr r2, _08056374 @ =gUnk_02000050 ldrb r1, [r2] movs r0, #0x7f ands r0, r1 cmp r0, #0 beq _08056372 movs r0, #0x88 strb r0, [r2] _08056372: pop {pc} .align 2, 0 _08056374: .4byte gUnk_02000050 thumb_func_start sub_08056378 sub_08056378: @ 0x08056378 push {lr} adds r2, r0, #0 ldr r0, _0805638C @ =gUnk_03000BF0 ldr r1, [r0, #0x30] cmp r1, #0 beq _08056390 adds r0, r2, #0 bl sub_08056398 b _08056396 .align 2, 0 _0805638C: .4byte gUnk_03000BF0 _08056390: adds r0, r2, #0 bl sub_080563EC _08056396: pop {pc} thumb_func_start sub_08056398 sub_08056398: @ 0x08056398 push {r4, lr} adds r4, r1, #0 bl sub_080563EC movs r1, #0x32 ldrsh r0, [r4, r1] movs r2, #0x36 ldrsh r1, [r4, r2] adds r0, r0, r1 ldr r1, _080563C0 @ =gUnk_03000BF0 movs r2, #0xc ldrsh r1, [r1, r2] subs r0, r0, r1 cmp r0, #0x58 ble _080563BC ldr r1, _080563C4 @ =gUnk_02000050 movs r0, #1 strb r0, [r1, #7] _080563BC: pop {r4, pc} .align 2, 0 _080563C0: .4byte gUnk_03000BF0 _080563C4: .4byte gUnk_02000050 thumb_func_start sub_080563C8 sub_080563C8: @ 0x080563C8 push {lr} adds r2, r1, #0 movs r1, #1 bl sub_080563D4 pop {pc} thumb_func_start sub_080563D4 sub_080563D4: @ 0x080563D4 push {r4, r5, lr} adds r4, r1, #0 adds r5, r2, #0 bl sub_080563EC ldr r0, _080563E8 @ =gUnk_02000050 strb r4, [r0, #6] strb r5, [r0, #7] pop {r4, r5, pc} .align 2, 0 _080563E8: .4byte gUnk_02000050 thumb_func_start sub_080563EC sub_080563EC: @ 0x080563EC push {r4, r5, lr} adds r5, r0, #0 ldr r4, _08056414 @ =gUnk_02000050 adds r0, r4, #0 movs r1, #0x20 bl sub_0801D630 strh r5, [r4, #8] movs r0, #0x63 strb r0, [r4, #2] movs r0, #0x1a strb r0, [r4, #4] movs r0, #4 strb r0, [r4, #5] movs r1, #1 strb r1, [r4, #6] movs r0, #0xc strb r0, [r4, #7] strb r1, [r4] pop {r4, r5, pc} .align 2, 0 _08056414: .4byte gUnk_02000050 thumb_func_start sub_08056418 sub_08056418: @ 0x08056418 push {lr} ldr r0, _08056444 @ =gUnk_02000050 movs r1, #0x20 bl sub_0801D630 ldr r0, _08056448 @ =gUnk_02022780 movs r1, #0xa8 bl sub_0801D630 ldr r0, _0805644C @ =gUnk_02036A40 movs r1, #8 bl sub_0801D630 ldr r0, _08056450 @ =gUnk_02036A38 movs r1, #8 bl sub_0801D630 ldr r0, _08056454 @ =gUnk_02000040 movs r1, #4 bl sub_0801D630 pop {pc} .align 2, 0 _08056444: .4byte gUnk_02000050 _08056448: .4byte gUnk_02022780 _0805644C: .4byte gUnk_02036A40 _08056450: .4byte gUnk_02036A38 _08056454: .4byte gUnk_02000040 thumb_func_start sub_08056458 sub_08056458: @ 0x08056458 push {r4, r5, lr} ldr r0, _08056484 @ =gUnk_02000050 ldrb r0, [r0] cmp r0, #1 bne _08056470 ldr r0, _08056488 @ =gUnk_02022780 movs r1, #0xa8 bl sub_0801D630 movs r0, #1 bl sub_080564C8 _08056470: ldr r2, _08056488 @ =gUnk_02022780 adds r1, r2, #0 adds r1, #0x8a ldrb r0, [r1] cmp r0, #0 beq _0805648C subs r0, #1 strb r0, [r1] b _080564A2 .align 2, 0 _08056484: .4byte gUnk_02000050 _08056488: .4byte gUnk_02022780 _0805648C: ldr r5, _080564C0 @ =gUnk_08107BC8 adds r4, r2, #0 adds r4, #0x88 _08056492: ldrb r0, [r4] lsls r0, r0, #2 adds r0, r0, r5 ldr r0, [r0] bl _call_via_r0 cmp r0, #0 bne _08056492 _080564A2: ldr r0, _080564C4 @ =gUnk_02022780 adds r1, r0, #0 adds r1, #0x9d ldrb r0, [r1] cmp r0, #0 beq _080564B6 movs r0, #0 strb r0, [r1] bl sub_08056F70 _080564B6: bl sub_08056C68 bl sub_08056D70 pop {r4, r5, pc} .align 2, 0 _080564C0: .4byte gUnk_08107BC8 _080564C4: .4byte gUnk_02022780 thumb_func_start sub_080564C8 sub_080564C8: @ 0x080564C8 ldr r1, _080564D8 @ =gUnk_02022780 adds r2, r1, #0 adds r2, #0x88 movs r3, #0 strb r0, [r2] adds r1, #0x89 strb r3, [r1] bx lr .align 2, 0 _080564D8: .4byte gUnk_02022780 thumb_func_start sub_080564DC sub_080564DC: @ 0x080564DC ldr r0, _080564E8 @ =gUnk_02022780 adds r0, #0x99 movs r1, #0 strb r1, [r0] movs r0, #0 bx lr .align 2, 0 _080564E8: .4byte gUnk_02022780 thumb_func_start sub_080564EC sub_080564EC: @ 0x080564EC push {r4, lr} ldr r0, _08056598 @ =gUnk_02036A40 movs r1, #8 bl sub_0801D630 ldr r0, _0805659C @ =gUnk_02024030 movs r1, #0x18 bl sub_0801D630 ldr r4, _080565A0 @ =gUnk_02022780 adds r0, r4, #0 movs r1, #0xa8 bl sub_0801D630 ldr r0, _080565A4 @ =gUnk_02000050 adds r1, r4, #0 movs r2, #0x20 bl sub_0801D66C ldrb r0, [r4, #2] cmp r0, #0x63 bne _08056520 movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #5] strb r0, [r4, #2] _08056520: adds r1, r4, #0 adds r1, #0x9c movs r0, #0xff strb r0, [r1] adds r0, r4, #0 adds r0, #0x20 ldrh r1, [r4, #8] bl sub_0805EEB4 adds r3, r4, #0 adds r3, #0x5c movs r0, #2 strb r0, [r3] movs r0, #0xe strb r0, [r3, #1] adds r3, #2 movs r2, #0 ldr r0, _080565A8 @ =gUnk_02002A40 adds r0, #0x80 ldrb r1, [r0] cmp r1, #0 beq _08056560 adds r4, r0, #0 _0805654E: strb r1, [r3] adds r3, #1 adds r2, #1 cmp r2, #5 bhi _08056560 adds r0, r2, r4 ldrb r1, [r0] cmp r1, #0 bne _0805654E _08056560: movs r0, #2 strb r0, [r3] movs r0, #0xf strb r0, [r3, #1] movs r0, #0 strb r0, [r3, #2] ldr r4, _080565A0 @ =gUnk_02022780 adds r0, r4, #0 bl sub_08056FBC ldr r0, _080565AC @ =gUnk_08107BE0 str r0, [r4, #0x2c] ldr r0, _080565B0 @ =gUnk_02000D00 str r0, [r4, #0x58] adds r4, #0x54 movs r0, #0xd0 strh r0, [r4] movs r0, #2 bl sub_08056C54 movs r0, #0 bl sub_08056BDC movs r0, #2 bl sub_080564C8 movs r0, #1 pop {r4, pc} .align 2, 0 _08056598: .4byte gUnk_02036A40 _0805659C: .4byte gUnk_02024030 _080565A0: .4byte gUnk_02022780 _080565A4: .4byte gUnk_02000050 _080565A8: .4byte gUnk_02002A40 _080565AC: .4byte gUnk_08107BE0 _080565B0: .4byte gUnk_02000D00 thumb_func_start sub_080565B4 sub_080565B4: @ 0x080565B4 push {r4, lr} ldr r4, _080565F4 @ =gUnk_02022780 adds r1, r4, #0 adds r1, #0x89 ldrb r0, [r1] cmp r0, #0 bne _080565DA movs r0, #1 strb r0, [r1] adds r1, #0x10 strb r0, [r1] ldrb r0, [r4, #3] subs r1, #0x46 ldrb r1, [r1] bl sub_08056F88 movs r0, #0x65 bl sub_080A3268 _080565DA: movs r0, #1 bl sub_08056CC0 cmp r0, #0 beq _080565F0 adds r1, r4, #0 adds r1, #0x99 movs r0, #2 strb r0, [r1] bl sub_080564C8 _080565F0: movs r0, #0 pop {r4, pc} .align 2, 0 _080565F4: .4byte gUnk_02022780 thumb_func_start sub_080565F8 sub_080565F8: @ 0x080565F8 push {r4, lr} ldr r4, _0805663C @ =gUnk_02022780 adds r1, r4, #0 adds r1, #0x89 ldrb r0, [r1] cmp r0, #0 bne _0805661C movs r0, #1 strb r0, [r1] adds r1, #0x10 movs r0, #3 strb r0, [r1] movs r0, #0 bl sub_08056BDC movs r0, #0x66 bl sub_080A3268 _0805661C: movs r0, #1 rsbs r0, r0, #0 bl sub_08056CC0 cmp r0, #0 beq _08056636 adds r1, r4, #0 adds r1, #0x99 movs r0, #0 strb r0, [r1] movs r0, #2 bl sub_080564C8 _08056636: movs r0, #0 pop {r4, pc} .align 2, 0 _0805663C: .4byte gUnk_02022780 thumb_func_start sub_08056640 sub_08056640: @ 0x08056640 push {lr} movs r0, #0 bl sub_08056C54 movs r0, #0 bl sub_080564C8 movs r0, #0 pop {pc} .align 2, 0 thumb_func_start sub_08056654 sub_08056654: @ 0x08056654 push {lr} movs r0, #4 bl sub_08056C54 ldr r2, _0805667C @ =gUnk_08107BF4 ldr r0, _08056680 @ =gUnk_02022780 adds r1, r0, #0 adds r1, #0x89 ldrb r1, [r1] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 movs r0, #0 bl sub_08056CC0 movs r0, #0 pop {pc} .align 2, 0 _0805667C: .4byte gUnk_08107BF4 _08056680: .4byte gUnk_02022780 thumb_func_start sub_08056684 sub_08056684: @ 0x08056684 push {r4, lr} adds r2, r0, #0 ldr r4, _080566AC @ =gUnk_02022780 adds r0, r4, #0 adds r0, #0x20 ldrb r1, [r0] movs r3, #1 adds r0, r3, #0 ands r0, r1 cmp r0, #0 bne _080566B0 adds r0, r4, #0 adds r0, #0x99 ldrb r0, [r0] cmp r0, #0 bne _080566B6 movs r0, #5 bl sub_080564C8 b _080566B6 .align 2, 0 _080566AC: .4byte gUnk_02022780 _080566B0: adds r0, r2, #0 adds r0, #0x89 strb r3, [r0] _080566B6: pop {r4, pc} thumb_func_start sub_080566B8 sub_080566B8: @ 0x080566B8 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x95 ldrb r0, [r1] cmp r0, #0 beq _080566CC subs r0, #1 strb r0, [r1] b _0805674E _080566CC: ldr r0, _08056740 @ =gUnk_03000FF0 ldrh r1, [r0] movs r0, #2 ands r0, r1 movs r2, #1 cmp r0, #0 beq _080566DC movs r2, #8 _080566DC: adds r1, r4, #0 adds r1, #0x92 ldrb r0, [r1] subs r0, r0, r2 strb r0, [r1] lsls r0, r0, #0x18 adds r7, r1, #0 cmp r0, #0 bgt _0805674E movs r5, #0 ldr r2, _08056744 @ =gUnk_08107C0C _080566F2: adds r5, #1 ldrb r0, [r4, #2] adds r0, r0, r2 ldrb r0, [r0] ldrb r3, [r1] adds r0, r0, r3 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 ble _080566F2 movs r6, #0 _08056708: adds r0, r4, #0 bl sub_08056750 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 cmp r1, #0 beq _08056732 adds r0, r4, #0 adds r0, #0x95 ldrb r0, [r0] cmp r0, #0 bne _08056732 adds r0, r4, #0 adds r0, #0x8a ldrb r0, [r0] cmp r0, #0 bne _08056732 adds r6, r6, r1 subs r5, #1 cmp r5, #0 bgt _08056708 _08056732: cmp r6, #0 beq _0805674C ldr r0, _08056748 @ =gUnk_02022780 adds r0, #0x9d movs r1, #1 strb r1, [r0] b _0805674E .align 2, 0 _08056740: .4byte gUnk_03000FF0 _08056744: .4byte gUnk_08107C0C _08056748: .4byte gUnk_02022780 _0805674C: strb r6, [r7] _0805674E: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08056750 sub_08056750: @ 0x08056750 push {r4, r5, r6, r7, lr} adds r5, r0, #0 ldrh r7, [r5, #0x24] cmp r7, #0 beq _0805675C b _0805694C _0805675C: adds r4, r5, #0 adds r4, #0x20 adds r0, r4, #0 bl sub_0805EFE8 adds r7, r0, #0 cmp r7, #0xe bls _0805676E b _08056942 _0805676E: lsls r0, r7, #2 ldr r1, _08056778 @ =_0805677C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08056778: .4byte _0805677C _0805677C: @ jump table .4byte _080567B8 @ case 0 .4byte _080567DE @ case 1 .4byte _08056802 @ case 2 .4byte _0805680A @ case 3 .4byte _08056812 @ case 4 .4byte _08056838 @ case 5 .4byte _08056844 @ case 6 .4byte _08056858 @ case 7 .4byte _0805688C @ case 8 .4byte _08056894 @ case 9 .4byte _080568AC @ case 10 .4byte _08056942 @ case 11 .4byte _080568B2 @ case 12 .4byte _08056914 @ case 13 .4byte _0805693A @ case 14 _080567B8: ldr r0, _080567D4 @ =gUnk_02000040 ldrb r0, [r0] cmp r0, #1 bne _080567D8 adds r1, r5, #0 adds r1, #0x89 movs r0, #5 strb r0, [r1] movs r0, #0 movs r1, #0 bl sub_08056ABC b _08056942 .align 2, 0 _080567D4: .4byte gUnk_02000040 _080567D8: adds r1, r5, #0 adds r1, #0x89 b _0805692C _080567DE: adds r1, r5, #0 adds r1, #0x8a movs r0, #2 strb r0, [r1] adds r0, r5, #0 adds r0, #0x98 ldrb r0, [r0] cmp r0, #0 bne _080567F8 movs r0, #1 bl sub_08056BDC b _08056942 _080567F8: adds r1, r5, #0 adds r1, #0x89 movs r0, #3 strb r0, [r1] b _08056942 _08056802: movs r0, #3 bl sub_080564C8 b _08056942 _0805680A: movs r0, #4 bl sub_080564C8 b _08056942 _08056812: adds r0, r4, #0 movs r1, #0 bl sub_0805F324 adds r3, r0, #0 adds r4, r5, #0 adds r4, #0x56 adds r0, r5, #0 adds r0, #0x54 ldrh r0, [r0] ldrh r2, [r4] subs r0, r0, r2 subs r0, r0, r3 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 adds r2, r2, r0 strh r2, [r4] b _08056942 _08056838: ldr r1, _08056840 @ =gUnk_02000050 ldrh r0, [r5, #0x22] strb r0, [r1, #1] b _08056942 .align 2, 0 _08056840: .4byte gUnk_02000050 _08056844: ldr r0, _08056854 @ =gUnk_0200005C ldrh r1, [r5, #0x22] movs r2, #0x1f ands r1, r2 bl sub_0801D5BC b _08056942 .align 2, 0 _08056854: .4byte gUnk_0200005C _08056858: ldrh r3, [r5, #0x22] cmp r3, #0xe beq _08056864 cmp r3, #0xf beq _08056874 b _0805687A _08056864: adds r0, r5, #0 adds r0, #0x8f ldrb r0, [r0] adds r1, r5, #0 adds r1, #0x91 strb r0, [r1] movs r3, #2 b _0805687A _08056874: adds r0, r5, #0 adds r0, #0x91 ldrb r3, [r0] _0805687A: adds r1, r5, #0 adds r1, #0x90 movs r0, #0 strb r0, [r1] adds r0, r5, #0 adds r1, r3, #0 bl sub_080569C4 b _08056942 _0805688C: ldrh r0, [r5, #0x22] bl sub_080A3268 b _08056942 _08056894: ldr r1, _080568A8 @ =gUnk_02022780 ldrh r0, [r5, #0x22] strb r0, [r1, #3] ldrh r0, [r5, #0x22] adds r1, r5, #0 adds r1, #0x53 ldrb r1, [r1] bl sub_08056F88 b _08056942 .align 2, 0 _080568A8: .4byte gUnk_02022780 _080568AC: ldrh r0, [r5, #0x22] strb r0, [r5, #7] b _08056942 _080568B2: ldr r6, _0805690C @ =gUnk_02000040 ldrb r0, [r6] cmp r0, #1 beq _080568D2 adds r0, r6, #0 movs r1, #4 bl sub_0801D630 ldr r4, _08056910 @ =gUnk_02024030 adds r0, r4, #0 movs r1, #0x18 bl sub_0801D630 movs r0, #1 strb r0, [r4] strb r0, [r6] _080568D2: ldr r2, _08056910 @ =gUnk_02024030 movs r0, #2 ldrsb r0, [r2, r0] cmp r0, #3 bgt _08056942 lsls r0, r0, #1 adds r1, r2, #0 adds r1, #0x10 adds r0, r0, r1 ldrh r1, [r5, #0x26] strh r1, [r0] movs r0, #2 ldrsb r0, [r2, r0] lsls r0, r0, #1 adds r1, r2, #0 adds r1, #8 adds r0, r0, r1 adds r3, r5, #0 adds r3, #0x56 ldrh r1, [r3] strh r1, [r0] ldrb r0, [r2, #2] adds r0, #1 strb r0, [r2, #2] ldrh r0, [r3] adds r0, #8 strh r0, [r3] b _08056942 .align 2, 0 _0805690C: .4byte gUnk_02000040 _08056910: .4byte gUnk_02024030 _08056914: ldrh r3, [r5, #0x22] cmp r3, #0xfe beq _08056928 cmp r3, #0xff bne _08056932 adds r1, r5, #0 adds r1, #0x8e movs r0, #1 strb r0, [r1] b _08056942 _08056928: adds r1, r5, #0 adds r1, #0x8e _0805692C: movs r0, #2 strb r0, [r1] b _08056942 _08056932: adds r0, r5, #0 adds r0, #0x95 strb r3, [r0] b _08056942 _0805693A: ldrh r1, [r5, #0x22] adds r0, r5, #0 adds r0, #0x94 strb r1, [r0] _08056942: lsrs r0, r7, #8 cmp r0, #0 bne _0805694C movs r0, #0 b _080569C2 _0805694C: ldr r0, _08056960 @ =gUnk_02022780 adds r0, #0x99 ldrb r0, [r0] cmp r0, #2 beq _08056964 movs r0, #3 bl sub_080564C8 movs r0, #0 b _080569C2 .align 2, 0 _08056960: .4byte gUnk_02022780 _08056964: ldr r1, _08056994 @ =gUnk_02000050 ldrb r0, [r1, #1] cmp r0, #0 bne _08056970 movs r0, #0x80 strb r0, [r1, #1] _08056970: movs r0, #0 strh r0, [r5, #0x24] lsrs r0, r7, #8 cmp r0, #7 bne _08056998 adds r0, r5, #0 adds r0, #0x8f ldrb r0, [r0] movs r1, #0x80 adds r2, r5, #0 adds r2, #0x90 orrs r1, r0 strb r1, [r2] adds r0, r5, #0 movs r1, #0 bl sub_080569C4 b _080569B4 .align 2, 0 _08056994: .4byte gUnk_02000050 _08056998: adds r2, r5, #0 adds r2, #0x90 ldrb r1, [r2] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080569B4 ldrb r3, [r2] movs r0, #0 strb r0, [r2] adds r0, r5, #0 adds r1, r3, #0 bl sub_080569C4 _080569B4: adds r1, r5, #0 adds r1, #0x50 adds r0, r7, #0 bl sub_0805F7DC lsls r0, r0, #0x10 lsrs r0, r0, #0x10 _080569C2: pop {r4, r5, r6, r7, pc} thumb_func_start sub_080569C4 sub_080569C4: @ 0x080569C4 movs r2, #7 ands r2, r1 adds r1, r0, #0 adds r1, #0x8f strb r2, [r1] adds r0, #0x52 strb r2, [r0] bx lr thumb_func_start sub_080569D4 sub_080569D4: @ 0x080569D4 push {r4, r5, r6, lr} adds r6, r0, #0 ldr r0, _080569F0 @ =gUnk_02024030 movs r5, #3 ldrsb r5, [r0, r5] ldr r0, _080569F4 @ =gUnk_03000FF0 ldrh r0, [r0, #2] cmp r0, #8 beq _08056A02 cmp r0, #8 bgt _080569F8 cmp r0, #1 beq _08056A02 b _08056A6A .align 2, 0 _080569F0: .4byte gUnk_02024030 _080569F4: .4byte gUnk_03000FF0 _080569F8: cmp r0, #0x10 beq _08056A68 cmp r0, #0x20 beq _08056A64 b _08056A6A _08056A02: ldr r0, _08056A18 @ =gUnk_02024030 lsls r1, r5, #1 adds r0, #0x10 adds r1, r1, r0 ldrh r1, [r1] cmp r1, #0 bne _08056A20 ldr r1, _08056A1C @ =gUnk_08107C14 adds r0, r6, #0 adds r0, #0x20 b _08056A30 .align 2, 0 _08056A18: .4byte gUnk_02024030 _08056A1C: .4byte gUnk_08107C14 _08056A20: strh r1, [r6, #8] adds r4, r6, #0 adds r4, #0x20 adds r0, r4, #0 bl sub_0805EEB4 ldr r1, _08056A58 @ =gUnk_08107C0F adds r0, r4, #0 _08056A30: bl sub_0805EF40 ldr r2, _08056A5C @ =gUnk_02000040 ldr r0, _08056A60 @ =gUnk_02024030 ldrb r1, [r0, #3] strb r1, [r2, #1] movs r1, #3 strb r1, [r2] movs r1, #0x18 bl sub_0801D630 movs r0, #0x6a bl sub_080A3268 adds r1, r6, #0 adds r1, #0x89 movs r0, #1 strb r0, [r1] b _08056A6A .align 2, 0 _08056A58: .4byte gUnk_08107C0F _08056A5C: .4byte gUnk_02000040 _08056A60: .4byte gUnk_02024030 _08056A64: subs r5, #1 b _08056A6A _08056A68: adds r5, #1 _08056A6A: ldr r4, _08056A8C @ =gUnk_02024030 movs r1, #2 ldrsb r1, [r4, r1] adds r0, r5, r1 bl __modsi3 adds r5, r0, #0 movs r6, #3 ldrsb r6, [r4, r6] cmp r5, r6 beq _08056A90 strb r5, [r4, #3] movs r0, #0x69 bl sub_080A3268 movs r1, #1 b _08056A92 .align 2, 0 _08056A8C: .4byte gUnk_02024030 _08056A90: movs r1, #0 _08056A92: ldr r2, _08056AB4 @ =gUnk_02000040 ldrb r0, [r2] cmp r0, #1 bne _08056AA4 ldr r1, _08056AB8 @ =gUnk_02024030 movs r0, #2 strb r0, [r2] strb r0, [r1] movs r1, #1 _08056AA4: cmp r1, #0 beq _08056AB0 adds r0, r5, #0 adds r1, r6, #0 bl sub_08056ABC _08056AB0: pop {r4, r5, r6, pc} .align 2, 0 _08056AB4: .4byte gUnk_02000040 _08056AB8: .4byte gUnk_02024030 thumb_func_start sub_08056ABC sub_08056ABC: @ 0x08056ABC push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 ldr r7, _08056B14 @ =gUnk_02022780 movs r0, #0x56 adds r0, r0, r7 mov sb, r0 ldrh r0, [r0] mov r8, r0 ldr r4, _08056B18 @ =gUnk_02024030 lsls r1, r1, #1 adds r4, #8 adds r1, r1, r4 ldrh r0, [r1] mov r1, sb strh r0, [r1] adds r6, r7, #0 adds r6, #0x50 movs r0, #0 adds r1, r6, #0 bl sub_0805F8E4 lsls r5, r5, #1 adds r5, r5, r4 ldrh r0, [r5] mov r1, sb strh r0, [r1] movs r0, #1 adds r1, r6, #0 bl sub_0805F8E4 mov r1, r8 mov r0, sb strh r1, [r0] adds r1, r7, #0 adds r1, #0x9d movs r0, #1 strb r0, [r1] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _08056B14: .4byte gUnk_02022780 _08056B18: .4byte gUnk_02024030 thumb_func_start sub_08056B1C sub_08056B1C: @ 0x08056B1C push {r4, r5, lr} adds r4, r0, #0 ldr r1, _08056B44 @ =gUnk_02000050 movs r0, #0 strb r0, [r1, #1] adds r1, r4, #0 adds r1, #0x94 ldrb r0, [r1] adds r5, r0, #0 cmp r5, #0 beq _08056B48 subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 bne _08056B7A subs r1, #0xb movs r0, #4 b _08056B78 .align 2, 0 _08056B44: .4byte gUnk_02000050 _08056B48: ldr r0, _08056B68 @ =gUnk_03000FF0 ldrh r1, [r0, #2] ldr r0, _08056B6C @ =0x000001F3 ands r0, r1 cmp r0, #0 beq _08056B70 movs r0, #0x68 bl sub_080A3268 adds r0, r4, #0 adds r0, #0x9a strb r5, [r0] adds r1, r4, #0 adds r1, #0x89 movs r0, #4 b _08056B78 .align 2, 0 _08056B68: .4byte gUnk_03000FF0 _08056B6C: .4byte 0x000001F3 _08056B70: adds r1, r4, #0 adds r1, #0x9a ldrb r0, [r1] adds r0, #1 _08056B78: strb r0, [r1] _08056B7A: pop {r4, r5, pc} thumb_func_start sub_08056B7C sub_08056B7C: @ 0x08056B7C push {r4, lr} adds r4, r0, #0 movs r0, #0 bl sub_08056BDC adds r0, r4, #0 adds r0, #0x8f ldrb r0, [r0] movs r1, #0x40 orrs r1, r0 adds r0, r4, #0 bl sub_080569C4 adds r4, #0x89 movs r0, #1 strb r0, [r4] pop {r4, pc} .align 2, 0 thumb_func_start sub_08056BA0 sub_08056BA0: @ 0x08056BA0 push {r4, lr} adds r4, r0, #0 ldr r1, _08056BD0 @ =gUnk_02000050 movs r0, #0 strb r0, [r1, #1] movs r0, #7 bl sub_08056C54 adds r4, #0x8e ldrb r0, [r4] cmp r0, #1 beq _08056BCE cmp r0, #2 beq _08056BC8 ldr r0, _08056BD4 @ =gUnk_03000FF0 ldrh r1, [r0, #2] ldr r0, _08056BD8 @ =0x000001F3 ands r0, r1 cmp r0, #0 beq _08056BCE _08056BC8: movs r0, #4 bl sub_080564C8 _08056BCE: pop {r4, pc} .align 2, 0 _08056BD0: .4byte gUnk_02000050 _08056BD4: .4byte gUnk_03000FF0 _08056BD8: .4byte 0x000001F3 thumb_func_start sub_08056BDC sub_08056BDC: @ 0x08056BDC push {r4, r5, lr} adds r5, r0, #0 ldr r4, _08056C24 @ =gUnk_02022780 adds r0, r4, #0 adds r0, #0x98 strb r5, [r0] cmp r5, #0 bne _08056C30 movs r0, #1 rsbs r0, r0, #0 ldr r1, _08056C28 @ =gUnk_02000D00 movs r2, #0xd0 lsls r2, r2, #4 bl sub_0801D610 bl sub_08056F70 adds r1, r4, #0 adds r1, #0x9e ldr r0, _08056C2C @ =0x0000F082 strh r0, [r1] adds r1, #2 adds r0, #1 strh r0, [r1] adds r1, #2 adds r0, #0x33 strh r0, [r1] adds r1, #2 adds r0, #1 strh r0, [r1] adds r0, r4, #0 adds r0, #0x56 strh r5, [r0] subs r1, #0x50 movs r0, #0xd0 b _08056C3C .align 2, 0 _08056C24: .4byte gUnk_02022780 _08056C28: .4byte gUnk_02000D00 _08056C2C: .4byte 0x0000F082 _08056C30: adds r1, r4, #0 adds r1, #0x56 movs r0, #0xd0 strh r0, [r1] subs r1, #2 adds r0, #0xd0 _08056C3C: strh r0, [r1] ldr r0, _08056C50 @ =gUnk_02022780 adds r1, r0, #0 adds r1, #0x8f ldrb r2, [r1] movs r1, #0x40 orrs r1, r2 bl sub_080569C4 pop {r4, r5, pc} .align 2, 0 _08056C50: .4byte gUnk_02022780 thumb_func_start sub_08056C54 sub_08056C54: @ 0x08056C54 ldr r2, _08056C60 @ =gUnk_02000050 ldr r1, _08056C64 @ =gUnk_02022780 strb r0, [r1] strb r0, [r2] bx lr .align 2, 0 _08056C60: .4byte gUnk_02000050 _08056C64: .4byte gUnk_02022780 thumb_func_start sub_08056C68 sub_08056C68: @ 0x08056C68 push {r4, r5, r6, lr} ldr r5, _08056CB8 @ =gUnk_02036A38 ldrb r0, [r5, #1] cmp r0, #0 beq _08056CB4 movs r0, #0 strb r0, [r5, #1] ldrb r0, [r5, #5] lsls r0, r0, #5 ldrb r1, [r5, #4] adds r0, r0, r1 lsls r0, r0, #1 ldr r1, _08056CBC @ =gUnk_02034CB0 adds r1, r0, r1 ldrb r0, [r5, #7] adds r0, #2 movs r6, #0 _08056C8A: movs r2, #0 adds r4, r1, #0 adds r4, #0x40 subs r3, r0, #1 _08056C92: strh r6, [r1] adds r1, #2 adds r2, #1 ldrb r0, [r5, #6] adds r0, #2 cmp r2, r0 blt _08056C92 adds r1, r4, #0 adds r0, r3, #0 cmp r0, #0 bgt _08056C8A ldrb r0, [r5, #5] ldrb r1, [r5, #7] bl sub_0801C4A0 bl sub_0801C494 _08056CB4: pop {r4, r5, r6, pc} .align 2, 0 _08056CB8: .4byte gUnk_02036A38 _08056CBC: .4byte gUnk_02034CB0 thumb_func_start sub_08056CC0 sub_08056CC0: @ 0x08056CC0 push {r4, r5, r6, r7, lr} movs r7, #0 ldr r2, _08056CE0 @ =gUnk_02022780 adds r3, r2, #0 adds r3, #0x9b ldrb r1, [r3] adds r1, r1, r0 strb r1, [r3] lsls r1, r1, #0x18 asrs r1, r1, #0x18 mov ip, r2 cmp r1, #0 bgt _08056CE4 strb r7, [r3] b _08056CEC .align 2, 0 _08056CE0: .4byte gUnk_02022780 _08056CE4: cmp r1, #7 ble _08056CEE movs r0, #8 strb r0, [r3] _08056CEC: movs r7, #1 _08056CEE: ldr r2, _08056D54 @ =gUnk_02036A40 mov r4, ip adds r1, r4, #0 adds r1, #0x9b movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08056D58 adds r5, r0, #0 ldrb r0, [r4, #4] lsls r0, r0, #1 muls r0, r5, r0 lsrs r3, r0, #4 strb r3, [r2, #6] movs r6, #1 adds r0, r3, #0 ands r0, r6 ldrb r1, [r4, #4] cmp r0, #0 beq _08056D1A adds r0, r3, #1 strb r0, [r2, #6] _08056D1A: lsrs r1, r1, #1 ldrb r0, [r4, #6] adds r1, r1, r0 ldrb r0, [r2, #6] lsrs r0, r0, #1 subs r1, r1, r0 strb r1, [r2, #4] ldrb r0, [r4, #5] lsls r0, r0, #1 muls r0, r5, r0 lsrs r3, r0, #4 strb r3, [r2, #7] adds r0, r3, #0 ands r0, r6 ldrb r1, [r4, #5] cmp r0, #0 beq _08056D40 adds r0, r3, #1 strb r0, [r2, #7] _08056D40: lsrs r1, r1, #1 mov r3, ip ldrb r3, [r3, #7] adds r1, r1, r3 ldrb r0, [r2, #7] lsrs r0, r0, #1 subs r1, r1, r0 strb r1, [r2, #5] b _08056D66 .align 2, 0 _08056D54: .4byte gUnk_02036A40 _08056D58: movs r0, #0xff strb r0, [r2, #5] movs r0, #1 rsbs r0, r0, #0 strb r0, [r2, #4] strb r0, [r2, #7] strb r0, [r2, #6] _08056D66: movs r0, #1 strb r0, [r2, #1] adds r0, r7, #0 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08056D70 sub_08056D70: @ 0x08056D70 push {r4, lr} ldr r0, _08056DB4 @ =gUnk_02022780 adds r0, #0x9b ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08056DB0 ldr r4, _08056DB8 @ =gUnk_02036A40 ldrb r0, [r4, #5] lsls r0, r0, #5 ldrb r1, [r4, #4] adds r0, r0, r1 lsls r0, r0, #1 ldr r1, _08056DBC @ =gUnk_02034CB0 adds r0, r0, r1 ldr r3, _08056DC0 @ =0x0000F07B ldrb r1, [r4, #6] ldrb r2, [r4, #7] bl sub_08056DC8 bl sub_08056EC0 bl sub_08056F1C ldr r2, _08056DC4 @ =gUnk_02036A38 ldr r0, [r4] ldr r1, [r4, #4] str r0, [r2] str r1, [r2, #4] bl sub_0801C494 _08056DB0: pop {r4, pc} .align 2, 0 _08056DB4: .4byte gUnk_02022780 _08056DB8: .4byte gUnk_02036A40 _08056DBC: .4byte gUnk_02034CB0 _08056DC0: .4byte 0x0000F07B _08056DC4: .4byte gUnk_02036A38 thumb_func_start sub_08056DC8 sub_08056DC8: @ 0x08056DC8 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r7, r0, #0 adds r4, r1, #0 adds r6, r2, #0 mov r8, r3 adds r3, r7, #0 lsls r0, r6, #6 adds r0, #0x40 adds r2, r3, r0 mov r0, r8 strh r0, [r3] adds r3, #2 movs r1, #0x80 lsls r1, r1, #4 mov sb, r1 mov r0, r8 mov r5, sb orrs r0, r5 strh r0, [r2] adds r2, #2 cmp r4, #0 ble _08056E4C mov r0, r8 adds r0, #1 strh r0, [r3] adds r3, #2 adds r1, r0, #0 orrs r1, r5 strh r1, [r2] adds r2, #2 subs r4, #2 adds r1, r4, #0 subs r4, #1 mov ip, r0 cmp r1, #0 ble _08056E30 mov r5, r8 adds r5, #2 adds r1, r5, #0 mov r0, sb orrs r1, r0 _08056E20: strh r5, [r3] adds r3, #2 strh r1, [r2] adds r2, #2 adds r0, r4, #0 subs r4, #1 cmp r0, #0 bgt _08056E20 _08056E30: movs r1, #0x80 lsls r1, r1, #3 adds r0, r1, #0 mov r1, ip orrs r1, r0 strh r1, [r3] adds r3, #2 movs r5, #0xc0 lsls r5, r5, #4 adds r0, r5, #0 mov r1, ip orrs r1, r0 strh r1, [r2] adds r2, #2 _08056E4C: movs r0, #0x80 lsls r0, r0, #3 adds r5, r0, #0 mov r0, r8 orrs r0, r5 strh r0, [r3] movs r0, #0xc0 lsls r0, r0, #4 adds r1, r0, #0 mov r0, r8 orrs r0, r1 strh r0, [r2] adds r7, #0x40 adds r3, #0x40 cmp r6, #0 ble _08056EB6 mov r0, r8 adds r0, #3 strh r0, [r7] adds r1, r0, #0 orrs r1, r5 strh r1, [r3] adds r7, #0x40 adds r3, #0x40 subs r6, #2 adds r1, r6, #0 subs r6, #1 adds r2, r0, #0 cmp r1, #0 ble _08056EA0 mov r4, r8 adds r4, #4 adds r1, r4, #0 orrs r1, r5 _08056E90: strh r4, [r7] strh r1, [r3] adds r7, #0x40 adds r3, #0x40 adds r0, r6, #0 subs r6, #1 cmp r0, #0 bgt _08056E90 _08056EA0: movs r1, #0x80 lsls r1, r1, #4 adds r0, r1, #0 adds r1, r2, #0 orrs r1, r0 strh r1, [r7] movs r5, #0xc0 lsls r5, r5, #4 adds r0, r5, #0 orrs r2, r0 strh r2, [r3] _08056EB6: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08056EC0 sub_08056EC0: @ 0x08056EC0 push {r4, r5, r6, r7, lr} ldr r6, _08056F10 @ =gUnk_02036A40 ldrb r0, [r6, #6] cmp r0, #0 beq _08056F0E ldrb r0, [r6, #7] cmp r0, #0 beq _08056F0E adds r4, r0, #0 ldrb r0, [r6, #5] lsls r0, r0, #5 ldrb r1, [r6, #4] adds r0, r0, r1 lsls r0, r0, #1 ldr r1, _08056F14 @ =gUnk_02034CB2 adds r5, r0, r1 movs r0, #4 subs r0, r0, r4 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r1, r0, #1 ldr r7, _08056F18 @ =gUnk_0202281E _08056EEC: ldrb r3, [r6, #6] lsls r0, r1, #1 adds r0, r0, r7 ldrh r2, [r0] adds r5, #0x40 adds r0, r1, #1 subs r4, #1 adds r1, r5, #0 _08056EFC: strh r2, [r1] adds r1, #2 adds r2, #2 subs r3, #1 cmp r3, #0 bgt _08056EFC adds r1, r0, #0 cmp r4, #0 bne _08056EEC _08056F0E: pop {r4, r5, r6, r7, pc} .align 2, 0 _08056F10: .4byte gUnk_02036A40 _08056F14: .4byte gUnk_02034CB2 _08056F18: .4byte gUnk_0202281E thumb_func_start sub_08056F1C sub_08056F1C: @ 0x08056F1C push {lr} ldr r0, _08056F58 @ =gUnk_02022780 adds r0, #0x98 ldr r0, [r0] ldr r1, _08056F5C @ =0x0010FF00 ands r0, r1 ldr r1, _08056F60 @ =0x00100200 cmp r0, r1 bne _08056F54 ldr r2, _08056F64 @ =gUnk_02036A40 ldrb r1, [r2, #5] lsls r1, r1, #5 ldrb r0, [r2, #4] adds r1, r1, r0 lsls r1, r1, #1 ldr r0, _08056F68 @ =gUnk_02034CB0 adds r1, r1, r0 ldrb r0, [r2, #7] adds r0, #1 lsls r0, r0, #5 subs r0, #2 ldrb r2, [r2, #6] adds r0, r0, r2 lsls r0, r0, #1 adds r1, r1, r0 ldr r2, _08056F6C @ =0x0000F080 adds r0, r2, #0 strh r0, [r1] _08056F54: pop {pc} .align 2, 0 _08056F58: .4byte gUnk_02022780 _08056F5C: .4byte 0x0010FF00 _08056F60: .4byte 0x00100200 _08056F64: .4byte gUnk_02036A40 _08056F68: .4byte gUnk_02034CB0 _08056F6C: .4byte 0x0000F080 thumb_func_start sub_08056F70 sub_08056F70: @ 0x08056F70 push {lr} ldr r0, _08056F80 @ =gUnk_02000D00 ldr r1, _08056F84 @ =0x0600D040 movs r2, #0xd0 lsls r2, r2, #4 bl sub_08000E96 pop {pc} .align 2, 0 _08056F80: .4byte gUnk_02000D00 _08056F84: .4byte 0x0600D040 thumb_func_start sub_08056F88 sub_08056F88: @ 0x08056F88 push {r4, lr} adds r3, r0, #0 adds r4, r1, #0 cmp r3, #0xf bls _08056F94 movs r3, #0 _08056F94: lsls r2, r3, #4 orrs r2, r4 ldr r0, _08056FB4 @ =gUnk_02022780 adds r1, r0, #0 adds r1, #0x9c ldrb r0, [r1] cmp r0, r2 beq _08056FB0 strb r2, [r1] ldr r2, _08056FB8 @ =0x0600CF60 adds r0, r3, #0 adds r1, r4, #0 bl sub_0805F918 _08056FB0: pop {r4, pc} .align 2, 0 _08056FB4: .4byte gUnk_02022780 _08056FB8: .4byte 0x0600CF60 thumb_func_start sub_08056FBC sub_08056FBC: @ 0x08056FBC push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x68 bl sub_08056FEC ldr r0, [r4, #0x14] adds r1, r4, #0 adds r1, #0x70 bl sub_08056FEC ldr r0, [r4, #0x18] adds r1, r4, #0 adds r1, #0x78 bl sub_08056FEC ldr r0, [r4, #0x1c] adds r1, r4, #0 adds r1, #0x80 bl sub_08056FEC pop {r4, pc} .align 2, 0 thumb_func_start sub_08056FEC sub_08056FEC: @ 0x08056FEC push {r4, r5, r6, r7, lr} sub sp, #8 adds r2, r0, #0 adds r5, r1, #0 bl sub_0801D51C adds r2, r0, #0 ldr r0, _08057040 @ =0x0FFFFFFF ands r2, r0 movs r4, #0 movs r3, #0xf _08057002: mov r0, sp adds r1, r0, r4 adds r0, r2, #0 ands r0, r3 strb r0, [r1] adds r4, #1 lsrs r2, r2, #4 cmp r2, #0 bne _08057002 movs r3, #0 subs r2, r4, #1 cmp r2, #0 blt _08057032 movs r6, #0x30 _0805701E: adds r1, r5, r3 mov r7, sp adds r0, r7, r2 ldrb r0, [r0] orrs r0, r6 strb r0, [r1] adds r3, #1 subs r2, #1 cmp r2, #0 bge _0805701E _08057032: adds r1, r5, r3 movs r0, #0 strb r0, [r1] adds r0, r4, #0 add sp, #8 pop {r4, r5, r6, r7, pc} .align 2, 0 _08057040: .4byte 0x0FFFFFFF thumb_func_start sub_08057044 sub_08057044: @ 0x08057044 push {r4, r5, lr} sub sp, #8 adds r5, r1, #0 adds r4, r2, #0 mov r1, sp bl sub_08056FEC ldr r2, [sp] movs r1, #3 subs r1, r1, r0 lsls r1, r1, #3 lsls r2, r1 orrs r2, r4 str r2, [r5] add sp, #8 pop {r4, r5, pc} thumb_func_start sub_08057064 sub_08057064: @ 0x08057064 push {r4, r5, lr} adds r4, r0, #0 ldr r1, _080570AC @ =gUnk_08107C5C ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldr r1, _080570B0 @ =gUnk_08107C48 adds r5, r4, #0 adds r5, #0x21 ldrb r0, [r5] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldr r1, _080570B4 @ =gUnk_08107C40 ldrb r0, [r5] adds r0, r0, r1 ldrb r1, [r0] cmp r1, #0 beq _080570AA adds r2, r4, #0 adds r2, #0x20 ldrb r0, [r2] cmp r0, r1 beq _080570AA strb r1, [r2] adds r0, r1, #0 bl sub_0801D7EC _080570AA: pop {r4, r5, pc} .align 2, 0 _080570AC: .4byte gUnk_08107C5C _080570B0: .4byte gUnk_08107C48 _080570B4: .4byte gUnk_08107C40 thumb_func_start sub_080570B8 sub_080570B8: @ 0x080570B8 push {r4, lr} adds r4, r0, #0 adds r0, #0x20 ldrb r0, [r0] bl sub_0801D7EC movs r0, #0 str r0, [r4, #0x34] adds r1, r4, #0 adds r1, #0x21 ldrb r0, [r1] cmp r0, #3 bne _080570E0 ldr r1, _080570DC @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0x32] b _080570F0 .align 2, 0 _080570DC: .4byte gUnk_03000F50 _080570E0: ldr r0, _080570F4 @ =gUnk_08107C48 ldrb r1, [r1] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _080570F0: pop {r4, pc} .align 2, 0 _080570F4: .4byte gUnk_08107C48 thumb_func_start sub_080570F8 sub_080570F8: @ 0x080570F8 push {lr} ldr r1, _08057110 @ =gUnk_03000F50 ldrh r2, [r1] ldr r0, _08057114 @ =0x0000F7FF ands r0, r2 movs r2, #0 strh r0, [r1] adds r1, #0x66 strh r2, [r1] bl sub_08056250 pop {pc} .align 2, 0 _08057110: .4byte gUnk_03000F50 _08057114: .4byte 0x0000F7FF thumb_func_start sub_08057118 sub_08057118: @ 0x08057118 push {r4, lr} adds r3, r0, #0 movs r1, #0 strb r1, [r3, #0xe] adds r0, #0x20 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, #1 strb r1, [r0] movs r0, #1 strb r0, [r3, #0xc] ldr r1, _08057160 @ =gUnk_03000F50 ldr r0, _08057164 @ =0x00001E04 strh r0, [r1, #0x2c] ldrh r0, [r1] movs r4, #0x80 lsls r4, r4, #4 adds r2, r4, #0 orrs r0, r2 strh r0, [r1] adds r2, r1, #0 adds r2, #0x66 ldr r0, _08057168 @ =0x00003648 strh r0, [r2] adds r1, #0x68 movs r0, #0x80 lsls r0, r0, #5 strh r0, [r1] ldr r1, _0805716C @ =sub_080570B8 ldr r2, _08057170 @ =sub_080570F8 adds r0, r3, #0 bl sub_08052D74 pop {r4, pc} .align 2, 0 _08057160: .4byte gUnk_03000F50 _08057164: .4byte 0x00001E04 _08057168: .4byte 0x00003648 _0805716C: .4byte sub_080570B8 _08057170: .4byte sub_080570F8 thumb_func_start sub_08057174 sub_08057174: @ 0x08057174 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] bl sub_0804B128 adds r3, r0, #0 ldrb r0, [r3] cmp r0, #0xff bne _08057188 b _0805728A _08057188: ldr r1, _080571E8 @ =gUnk_03001160 movs r2, #0x2e ldrsh r0, [r1, r2] cmp r0, #0 bge _08057194 adds r0, #0xf _08057194: asrs r6, r0, #4 movs r7, #0x32 ldrsh r0, [r1, r7] cmp r0, #0 bge _080571A0 adds r0, #0xf _080571A0: asrs r5, r0, #4 movs r0, #0x21 adds r0, r0, r4 mov ip, r0 _080571A8: ldrb r0, [r3] mov r1, ip ldrb r1, [r1] cmp r0, r1 beq _08057282 ldr r1, _080571EC @ =gUnk_03000BF0 ldrh r0, [r1, #6] lsrs r0, r0, #4 ldrb r7, [r3, #1] adds r2, r0, r7 ldrh r0, [r1, #8] lsrs r0, r0, #4 ldrb r1, [r3, #2] adds r0, r0, r1 subs r0, r5, r0 ldrb r7, [r3, #4] cmp r0, r7 bhs _08057282 subs r0, r6, r2 ldrb r1, [r3, #3] cmp r0, r1 bhs _08057282 ldrb r0, [r3] subs r0, #1 cmp r0, #5 bhi _08057268 lsls r0, r0, #2 ldr r1, _080571F0 @ =_080571F4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080571E8: .4byte gUnk_03001160 _080571EC: .4byte gUnk_03000BF0 _080571F0: .4byte _080571F4 _080571F4: @ jump table .4byte _0805720C @ case 0 .4byte _08057220 @ case 1 .4byte _08057258 @ case 2 .4byte _08057246 @ case 3 .4byte _08057216 @ case 4 .4byte _08057236 @ case 5 _0805720C: mov r2, ip ldrb r0, [r2] cmp r0, #2 bne _08057268 b _08057260 _08057216: mov r7, ip ldrb r0, [r7] cmp r0, #6 bne _08057268 b _08057260 _08057220: mov r0, ip ldrb r1, [r0] cmp r1, #0 bne _08057268 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r4, #0xe] adds r0, r4, #0 adds r0, #0x20 strb r1, [r0] b _08057268 _08057236: mov r2, ip ldrb r1, [r2] cmp r1, #0 bne _08057268 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r4, #0xe] b _08057268 _08057246: mov r7, ip ldrb r1, [r7] cmp r1, #0 bne _08057268 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r4, #0xe] str r1, [r4, #0x34] b _08057268 _08057258: mov r1, ip ldrb r0, [r1] cmp r0, #4 bne _08057268 _08057260: movs r0, #3 strb r0, [r4, #0xc] movs r0, #9 strb r0, [r4, #0xe] _08057268: ldrb r0, [r4, #0xc] cmp r0, #1 beq _08057282 movs r0, #8 strb r0, [r4, #0xf] ldrb r0, [r3] mov r2, ip strb r0, [r2] adds r1, r4, #0 adds r1, #0x22 movs r0, #1 strb r0, [r1] b _0805728A _08057282: adds r3, #5 ldrb r0, [r3] cmp r0, #0xff bne _080571A8 _0805728A: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0805728C sub_0805728C: @ 0x0805728C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _080572CA movs r0, #8 strb r0, [r4, #0xf] ldr r2, _080572CC @ =gUnk_03000F50 ldr r3, _080572D0 @ =gUnk_08107C1C ldrb r0, [r4, #0xe] adds r1, r0, #1 strb r1, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x17 adds r0, r0, r3 ldrh r0, [r0] adds r2, #0x68 strh r0, [r2] lsls r1, r1, #0x18 lsrs r1, r1, #0x18 cmp r1, #0xa bne _080572CA movs r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x22 movs r0, #0 strb r0, [r1] _080572CA: pop {r4, pc} .align 2, 0 _080572CC: .4byte gUnk_03000F50 _080572D0: .4byte gUnk_08107C1C thumb_func_start sub_080572D4 sub_080572D4: @ 0x080572D4 push {r4, r5, lr} adds r3, r0, #0 ldrb r0, [r3, #0xf] subs r0, #1 strb r0, [r3, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08057320 movs r0, #8 strb r0, [r3, #0xf] ldr r5, _08057324 @ =gUnk_03000F50 ldr r2, _08057328 @ =gUnk_08107C1C ldrb r0, [r3, #0xe] adds r1, r0, #0 adds r1, #0xff strb r1, [r3, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x17 adds r0, r0, r2 ldrh r2, [r0] adds r0, r5, #0 adds r0, #0x68 movs r4, #0 strh r2, [r0] lsls r1, r1, #0x18 lsrs r1, r1, #0x18 cmp r1, #0xff bne _08057320 movs r0, #1 strb r0, [r3, #0xc] adds r0, r3, #0 adds r0, #0x22 strb r4, [r0] subs r0, #1 strb r4, [r0] adds r0, r5, #0 adds r0, #0x6c strb r4, [r0] _08057320: pop {r4, r5, pc} .align 2, 0 _08057324: .4byte gUnk_03000F50 _08057328: .4byte gUnk_08107C1C thumb_func_start sub_0805732C sub_0805732C: @ 0x0805732C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r6, r0, #0 adds r5, r1, #0 ldr r2, _08057390 @ =gUnk_03003DE4 ldrb r1, [r2] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 ldr r1, _08057394 @ =gUnk_02017AA0 adds r4, r0, r1 movs r3, #0 mov ip, r2 mov r8, r1 ldr r0, _08057398 @ =gUnk_080C9160 mov sb, r0 movs r2, #0xff ldr r1, _0805739C @ =gUnk_03000F50 _08057354: adds r0, r5, r3 ands r0, r2 lsls r0, r0, #1 add r0, sb movs r7, #0 ldrsh r0, [r0, r7] muls r0, r6, r0 lsrs r0, r0, #8 ldrh r7, [r1, #0x2e] adds r0, r0, r7 strh r0, [r4] adds r4, #2 adds r3, #1 cmp r3, #0x9f bls _08057354 mov r0, ip ldrb r1, [r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 add r0, r8 ldr r1, _080573A0 @ =0x0400001C ldr r2, _080573A4 @ =0xA2600001 bl sub_0805622C pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _08057390: .4byte gUnk_03003DE4 _08057394: .4byte gUnk_02017AA0 _08057398: .4byte gUnk_080C9160 _0805739C: .4byte gUnk_03000F50 _080573A0: .4byte 0x0400001C _080573A4: .4byte 0xA2600001 thumb_func_start nullsub_494 nullsub_494: @ 0x080573A8 bx lr .align 2, 0 thumb_func_start sub_080573AC sub_080573AC: @ 0x080573AC push {r4, r5, r6, lr} adds r6, r0, #0 ldr r2, _08057434 @ =gUnk_03000BF0 ldr r0, [r2, #0x28] ldr r1, _08057438 @ =0xFFFFE000 adds r0, r0, r1 str r0, [r2, #0x28] ldr r0, [r2, #0x2c] ldr r1, _0805743C @ =0xFFFFF000 adds r0, r0, r1 str r0, [r2, #0x2c] ldr r5, _08057440 @ =gUnk_03000F50 movs r1, #0xa ldrsh r0, [r2, r1] ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #1 ldrh r1, [r2, #0x2a] adds r0, r0, r1 strh r0, [r5, #0x2e] movs r1, #0xc ldrsh r0, [r2, r1] ldrh r1, [r2, #8] subs r0, r0, r1 asrs r0, r0, #1 ldrh r2, [r2, #0x2e] adds r0, r0, r2 strh r0, [r5, #0x30] ldr r2, _08057444 @ =gUnk_080C9160 ldr r4, _08057448 @ =gUnk_030010A0 ldr r1, [r4] ldrb r0, [r4] adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r2 movs r2, #0 ldrsh r0, [r0, r2] asrs r0, r0, #5 adds r0, #0x10 bl sub_0805732C adds r0, r6, #0 adds r0, #0x22 ldrb r0, [r0] cmp r0, #0 bne _08057430 ldr r0, [r4] movs r1, #0x1f ands r0, r1 cmp r0, #0 bne _08057430 adds r2, r6, #0 adds r2, #0x24 ldrb r0, [r2] adds r0, #1 movs r1, #7 ands r0, r1 strb r0, [r2] ldr r1, _0805744C @ =gUnk_08107C30 ldrb r0, [r2] lsls r0, r0, #1 adds r0, r0, r1 ldrh r1, [r0] adds r0, r5, #0 adds r0, #0x68 strh r1, [r0] _08057430: pop {r4, r5, r6, pc} .align 2, 0 _08057434: .4byte gUnk_03000BF0 _08057438: .4byte 0xFFFFE000 _0805743C: .4byte 0xFFFFF000 _08057440: .4byte gUnk_03000F50 _08057444: .4byte gUnk_080C9160 _08057448: .4byte gUnk_030010A0 _0805744C: .4byte gUnk_08107C30 thumb_func_start sub_08057450 sub_08057450: @ 0x08057450 push {r4, r5, r6, lr} adds r3, r0, #0 ldr r4, _08057504 @ =gUnk_03000F50 movs r0, #0x10 strh r0, [r4, #0x2e] ldr r0, _08057508 @ =gUnk_03000BF0 movs r2, #0xc ldrsh r1, [r0, r2] ldrh r0, [r0, #8] subs r1, r1, r0 asrs r1, r1, #2 movs r2, #0x3f adds r0, r1, #0 ands r0, r2 strh r0, [r4, #0x30] cmp r1, #0 bge _08057474 adds r1, #0x3f _08057474: asrs r0, r1, #6 lsls r0, r0, #9 ldr r1, _0805750C @ =gUnk_02001A40 adds r1, r0, r1 str r1, [r4, #0x34] ldr r0, [r3, #0x34] cmp r0, r1 beq _0805748A str r1, [r3, #0x34] movs r0, #1 strh r0, [r4, #0x32] _0805748A: adds r0, r3, #0 adds r0, #0x22 ldrb r0, [r0] ldr r5, _08057510 @ =gUnk_030010A0 cmp r0, #0 bne _080574BE ldr r0, [r5] movs r1, #0x1f ands r0, r1 cmp r0, #0 bne _080574BE adds r2, r3, #0 adds r2, #0x24 ldrb r0, [r2] adds r0, #1 movs r1, #7 ands r0, r1 strb r0, [r2] ldr r1, _08057514 @ =gUnk_08107C30 ldrb r0, [r2] lsls r0, r0, #1 adds r0, r0, r1 ldrh r1, [r0] adds r0, r4, #0 adds r0, #0x68 strh r1, [r0] _080574BE: ldr r0, [r5] movs r1, #7 ands r0, r1 cmp r0, #0 bne _08057502 adds r0, r3, #0 adds r0, #0x23 ldrb r1, [r0] lsls r1, r1, #5 ldr r2, _08057518 @ =gUnk_085B4180 adds r1, r1, r2 movs r5, #0 adds r6, r0, #0 adds r4, r1, #0 adds r4, #0xe _080574DC: adds r0, r5, #0 adds r0, #0x87 ldrh r1, [r4] bl sub_0801D79C adds r0, r5, #0 adds r0, #0x8c ldrh r1, [r4, #0xa] bl sub_0801D79C adds r4, #2 adds r5, #1 cmp r5, #3 bls _080574DC ldrb r0, [r6] adds r0, #1 movs r1, #3 ands r0, r1 strb r0, [r6] _08057502: pop {r4, r5, r6, pc} .align 2, 0 _08057504: .4byte gUnk_03000F50 _08057508: .4byte gUnk_03000BF0 _0805750C: .4byte gUnk_02001A40 _08057510: .4byte gUnk_030010A0 _08057514: .4byte gUnk_08107C30 _08057518: .4byte gUnk_085B4180 thumb_func_start sub_0805751C sub_0805751C: @ 0x0805751C push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xc] cmp r1, #0 bne _0805753A movs r0, #1 strb r0, [r4, #0xc] ldr r0, _08057544 @ =gUnk_03000F50 strh r1, [r0, #0x32] strh r1, [r0, #0x1a] ldr r1, _08057548 @ =sub_080576A0 adds r0, r4, #0 movs r2, #0 bl sub_08052D74 _0805753A: adds r0, r4, #0 bl sub_0805754C pop {r4, pc} .align 2, 0 _08057544: .4byte gUnk_03000F50 _08057548: .4byte sub_080576A0 thumb_func_start sub_0805754C sub_0805754C: @ 0x0805754C push {r4, r5, r6, lr} adds r2, r0, #0 ldr r3, _080575BC @ =gUnk_03000BF0 movs r0, #0xc ldrsh r1, [r3, r0] ldrh r0, [r3, #8] subs r1, r1, r0 asrs r0, r1, #3 adds r1, r1, r0 ldr r4, _080575C0 @ =gUnk_03000F50 movs r6, #0x3f adds r0, r1, #0 ands r0, r6 strh r0, [r4, #0x30] adds r0, r1, #0 cmp r1, #0 bge _08057570 adds r0, #0x3f _08057570: asrs r0, r0, #6 lsls r0, r0, #9 ldr r5, _080575C4 @ =gUnk_02002F00 adds r1, r0, r5 str r1, [r4, #0x34] ldr r0, [r2, #0x38] cmp r0, r1 beq _08057586 str r1, [r2, #0x38] movs r0, #1 strh r0, [r4, #0x32] _08057586: movs r0, #0xc ldrsh r1, [r3, r0] ldrh r0, [r3, #8] subs r1, r1, r0 asrs r0, r1, #2 adds r1, r1, r0 adds r0, r1, #0 ands r0, r6 strh r0, [r4, #0x18] adds r0, r1, #0 cmp r0, #0 bge _080575A0 adds r0, #0x3f _080575A0: asrs r0, r0, #6 lsls r0, r0, #9 movs r3, #0x80 lsls r3, r3, #6 adds r1, r5, r3 adds r1, r0, r1 str r1, [r4, #0x1c] ldr r0, [r2, #0x3c] cmp r0, r1 beq _080575BA str r1, [r2, #0x3c] movs r0, #1 strh r0, [r4, #0x1a] _080575BA: pop {r4, r5, r6, pc} .align 2, 0 _080575BC: .4byte gUnk_03000BF0 _080575C0: .4byte gUnk_03000F50 _080575C4: .4byte gUnk_02002F00 thumb_func_start sub_080575C8 sub_080575C8: @ 0x080575C8 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldr r0, _08057664 @ =gUnk_0200B650 movs r5, #0 str r5, [r0] movs r0, #0x80 lsls r0, r0, #0x13 strh r5, [r0] adds r0, r4, #0 bl sub_0801D7EC ldr r0, _08057668 @ =gUnk_02034350 strb r4, [r0, #0x10] ldr r3, _0805766C @ =gUnk_03000BF0 movs r0, #0xc ldrsh r1, [r3, r0] ldrh r0, [r3, #8] subs r1, r1, r0 asrs r0, r1, #3 adds r1, r1, r0 ldr r2, _08057670 @ =gUnk_03000F50 movs r7, #0x3f adds r0, r1, #0 ands r0, r7 strh r0, [r2, #0x30] strh r5, [r2, #0x2e] adds r0, r1, #0 cmp r1, #0 bge _08057604 adds r0, #0x3f _08057604: asrs r0, r0, #6 lsls r0, r0, #9 ldr r4, _08057674 @ =gUnk_02002F00 adds r0, r0, r4 str r0, [r2, #0x34] ldr r0, _08057678 @ =0x00001D49 strh r0, [r2, #0x2c] movs r6, #1 strh r6, [r2, #0x32] movs r0, #0xc ldrsh r1, [r3, r0] ldrh r0, [r3, #8] subs r1, r1, r0 asrs r0, r1, #2 adds r1, r1, r0 adds r0, r1, #0 ands r0, r7 strh r0, [r2, #0x18] strh r5, [r2, #0x16] adds r0, r1, #0 cmp r0, #0 bge _08057632 adds r0, #0x3f _08057632: asrs r0, r0, #6 lsls r0, r0, #9 movs r3, #0x80 lsls r3, r3, #6 adds r1, r4, r3 adds r0, r0, r1 str r0, [r2, #0x1c] ldr r0, _0805767C @ =0x00001E49 strh r0, [r2, #0x14] strh r6, [r2, #0x1a] adds r1, r2, #0 adds r1, #0x66 ldr r0, _08057680 @ =0x00003C48 strh r0, [r1] adds r1, #2 ldr r0, _08057684 @ =0x00000609 strh r0, [r1] ldrh r0, [r2] movs r3, #0xa0 lsls r3, r3, #4 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] pop {r4, r5, r6, r7, pc} .align 2, 0 _08057664: .4byte gUnk_0200B650 _08057668: .4byte gUnk_02034350 _0805766C: .4byte gUnk_03000BF0 _08057670: .4byte gUnk_03000F50 _08057674: .4byte gUnk_02002F00 _08057678: .4byte 0x00001D49 _0805767C: .4byte 0x00001E49 _08057680: .4byte 0x00003C48 _08057684: .4byte 0x00000609 thumb_func_start sub_08057688 sub_08057688: @ 0x08057688 ldr r0, _08057694 @ =gUnk_03000F50 ldr r1, _08057698 @ =0x00001D48 strh r1, [r0, #0x2c] ldr r1, _0805769C @ =0x00001E48 strh r1, [r0, #0x14] bx lr .align 2, 0 _08057694: .4byte gUnk_03000F50 _08057698: .4byte 0x00001D48 _0805769C: .4byte 0x00001E48 thumb_func_start sub_080576A0 sub_080576A0: @ 0x080576A0 push {r4, lr} adds r4, r0, #0 ldr r0, _080576BC @ =gUnk_02034350 ldrb r0, [r0, #0x10] bl sub_0801D7EC movs r0, #0 str r0, [r4, #0x38] str r0, [r4, #0x3c] adds r0, r4, #0 bl sub_0805754C pop {r4, pc} .align 2, 0 _080576BC: .4byte gUnk_02034350 thumb_func_start sub_080576C0 sub_080576C0: @ 0x080576C0 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080576EC movs r0, #1 strb r0, [r4, #0xc] ldrh r0, [r4, #0x38] ldr r2, _080576E8 @ =gUnk_03000BF0 ldrh r1, [r2, #6] adds r0, r0, r1 subs r0, #0x20 str r0, [r4, #0x20] ldrh r0, [r4, #0x3a] ldrh r1, [r2, #8] adds r0, r0, r1 subs r0, #0x20 str r0, [r4, #0x24] b _080577AA .align 2, 0 _080576E8: .4byte gUnk_03000BF0 _080576EC: ldr r0, [r4, #0x20] ldr r1, [r4, #0x24] movs r2, #0x40 movs r3, #0x40 bl sub_0806FBFC cmp r0, #0 beq _080577A8 ldr r5, _08057738 @ =gUnk_02033A90 ldr r0, [r4, #0x20] adds r0, #0x20 strh r0, [r5, #0x12] ldr r1, [r4, #0x24] ldr r2, _0805773C @ =gUnk_08107C6C ldrb r0, [r4, #0xa] adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #0x20 adds r1, r1, r0 strh r1, [r5, #0x14] adds r0, r4, #0 adds r0, #0x34 ldrb r0, [r0] strb r0, [r5, #0x16] ldrb r0, [r4, #0xa] strb r0, [r5, #0x17] movs r0, #0x14 bl sub_0807CC30 cmp r0, #0 bne _08057740 movs r0, #1 strb r0, [r5, #0x18] movs r0, #5 strb r0, [r5, #0x17] b _080577AA .align 2, 0 _08057738: .4byte gUnk_02033A90 _0805773C: .4byte gUnk_08107C6C _08057740: ldr r2, _08057758 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x20 ands r0, r1 cmp r0, #0 beq _0805775C ldrb r0, [r2, #2] cmp r0, #0 bne _0805775C movs r0, #2 strb r0, [r5, #0x18] b _0805776A .align 2, 0 _08057758: .4byte gUnk_03003F80 _0805775C: bl sub_08057810 cmp r0, #0 beq _0805776A ldr r1, _080577A0 @ =gUnk_02033A90 movs r0, #3 strb r0, [r1, #0x18] _0805776A: ldrh r0, [r4, #0x38] ldrh r1, [r4, #0x3a] ldrb r2, [r4, #0xe] bl sub_080002C0 cmp r0, #0x3d bne _080577AA ldrh r0, [r4, #0x38] ldr r2, _080577A4 @ =gUnk_03000BF0 ldrh r1, [r2, #6] adds r0, r0, r1 ldrh r1, [r4, #0x3a] ldrh r2, [r2, #8] adds r1, r1, r2 ldrb r2, [r4, #0xe] bl sub_080577AC ldrb r0, [r4, #0xf] cmp r0, #0 bne _080577AA movs r0, #1 strb r0, [r4, #0xf] movs r0, #0xa9 lsls r0, r0, #1 bl sub_080A3268 b _080577AA .align 2, 0 _080577A0: .4byte gUnk_02033A90 _080577A4: .4byte gUnk_03000BF0 _080577A8: strb r0, [r4, #0xf] _080577AA: pop {r4, r5, pc} thumb_func_start sub_080577AC sub_080577AC: @ 0x080577AC push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 adds r7, r1, #0 mov r8, r2 bl sub_08000E50 adds r5, r0, #0 movs r0, #7 ands r0, r5 cmp r0, #0 bne _08057808 movs r0, #0xf movs r1, #0x26 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08057808 lsrs r3, r5, #8 movs r0, #0xf ands r3, r0 lsrs r2, r5, #0x10 ands r2, r0 cmp r2, #4 ble _080577E6 rsbs r2, r2, #0 _080577E6: lsrs r0, r5, #0x18 movs r1, #1 ands r0, r1 cmp r0, #0 beq _080577F2 rsbs r3, r3, #0 _080577F2: adds r0, r6, r3 strh r0, [r4, #0x2e] adds r0, r7, r2 strh r0, [r4, #0x32] adds r0, r4, #0 adds r0, #0x38 mov r1, r8 strb r1, [r0] adds r0, r4, #0 bl sub_08016A04 _08057808: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08057810 sub_08057810: @ 0x08057810 push {lr} ldr r2, _08057848 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _08057850 adds r0, r2, #0 adds r0, #0xaa ldrb r0, [r0] cmp r0, #0 bne _08057850 ldr r0, _0805784C @ =gUnk_02033A90 ldrb r0, [r0, #0x17] cmp r0, #6 beq _08057850 ldrb r0, [r2, #5] cmp r0, #0 bne _08057850 adds r0, r2, #0 adds r0, #0xa8 ldrb r0, [r0] cmp r0, #1 bgt _08057850 cmp r0, #0 blt _08057850 movs r0, #1 b _08057852 .align 2, 0 _08057848: .4byte gUnk_03003F80 _0805784C: .4byte gUnk_02033A90 _08057850: movs r0, #0 _08057852: pop {pc} thumb_func_start sub_08057854 sub_08057854: @ 0x08057854 push {lr} ldr r2, _08057868 @ =gUnk_08107C70 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08057868: .4byte gUnk_08107C70 thumb_func_start sub_0805786C sub_0805786C: @ 0x0805786C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} mov r8, r0 bl sub_080805F8 ldr r6, _080578D4 @ =gUnk_03004030 ldrb r0, [r6, #8] cmp r0, #0 beq _08057914 ldr r0, [r6] cmp r0, #0 bne _080578C0 movs r0, #0xff strb r0, [r6, #0xa] ldr r0, _080578D8 @ =gUnk_03000BF0 ldrb r5, [r0, #5] ldr r7, _080578DC @ =gUnk_08107DC0 ldrb r0, [r0, #4] lsls r0, r0, #2 adds r0, r0, r7 ldr r4, [r0] adds r0, r4, #0 adds r1, r5, #0 bl sub_08057AA8 adds r4, r0, #0 cmp r4, #0 beq _080578C0 ldrb r5, [r4, #5] ldrb r0, [r4, #4] lsls r0, r0, #2 adds r0, r0, r7 ldr r4, [r0] adds r0, r4, #0 adds r1, r5, #0 bl sub_08057AA8 adds r4, r0, #0 cmp r4, #0 beq _080578C0 str r4, [r6] _080578C0: ldr r0, _080578D8 @ =gUnk_03000BF0 ldrb r5, [r0, #5] ldr r1, _080578DC @ =gUnk_08107DC0 ldrb r0, [r0, #4] lsls r0, r0, #2 adds r0, r0, r1 ldr r4, [r0] movs r6, #0x81 lsls r6, r6, #7 b _08057906 .align 2, 0 _080578D4: .4byte gUnk_03004030 _080578D8: .4byte gUnk_03000BF0 _080578DC: .4byte gUnk_08107DC0 _080578E0: ldrh r1, [r4] adds r1, #0x3f adds r0, r6, #0 movs r2, #1 bl sub_0800015E ldrh r1, [r4] adds r1, #0x40 adds r0, r6, #0 movs r2, #1 bl sub_0800015E ldrh r1, [r4] adds r1, #0x41 adds r0, r6, #0 movs r2, #1 bl sub_0800015E adds r4, #8 _08057906: adds r0, r4, #0 adds r1, r5, #0 bl sub_08057AA8 adds r4, r0, #0 cmp r4, #0 bne _080578E0 _08057914: movs r0, #1 mov r1, r8 strb r0, [r1, #0xc] pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08057920 sub_08057920: @ 0x08057920 push {r4, r5, r6, lr} adds r6, r0, #0 ldr r0, _08057934 @ =gUnk_03000BF0 ldrb r5, [r0, #5] ldr r1, _08057938 @ =gUnk_08107DC0 ldrb r0, [r0, #4] lsls r0, r0, #2 adds r0, r0, r1 ldr r4, [r0] b _0805793E .align 2, 0 _08057934: .4byte gUnk_03000BF0 _08057938: .4byte gUnk_08107DC0 _0805793C: adds r4, #8 _0805793E: adds r0, r4, #0 adds r1, r5, #0 bl sub_08057AA8 adds r4, r0, #0 cmp r4, #0 beq _08057958 adds r0, r6, #0 adds r1, r4, #0 bl sub_0805795C cmp r0, #0 beq _0805793C _08057958: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0805795C sub_0805795C: @ 0x0805795C push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r6, r1, #0 ldr r0, _080579BC @ =gUnk_03004030 ldrb r0, [r0, #8] cmp r0, #0 beq _080579C8 ldr r1, _080579C0 @ =gUnk_03001160 ldr r3, _080579C4 @ =gUnk_03000BF0 ldrh r2, [r1, #0x2e] ldrh r0, [r3, #6] subs r2, r2, r0 lsls r2, r2, #0x10 lsrs r2, r2, #0x10 ldrh r0, [r1, #0x32] ldrh r1, [r3, #8] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 ldrh r3, [r6] movs r1, #0x3f ands r1, r3 lsls r1, r1, #4 adds r1, #8 movs r0, #0xfc lsls r0, r0, #4 ands r0, r3 lsls r0, r0, #0xe movs r3, #0xc0 lsls r3, r3, #0xd adds r0, r0, r3 lsrs r3, r0, #0x10 subs r2, r2, r1 adds r0, r2, #0 adds r0, #0x18 cmp r0, #0x30 bhi _08057A14 subs r0, r4, r3 adds r0, #8 cmp r0, #0x10 bhi _08057A14 cmp r4, r3 bhs _08057A00 adds r0, r2, #0 adds r0, #0xc cmp r0, #0x18 bls _08057A14 b _08057A00 .align 2, 0 _080579BC: .4byte gUnk_03004030 _080579C0: .4byte gUnk_03001160 _080579C4: .4byte gUnk_03000BF0 _080579C8: ldr r3, _08057A0C @ =gUnk_03001160 movs r1, #0x2e ldrsh r0, [r3, r1] ldr r2, _08057A10 @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r0, r0, r1 asrs r4, r0, #4 movs r1, #0x3f ands r4, r1 movs r0, #0x32 ldrsh r5, [r3, r0] ldrh r2, [r2, #8] subs r0, r5, r2 asrs r0, r0, #4 ands r0, r1 lsls r0, r0, #6 orrs r4, r0 ldrh r1, [r6] cmp r4, r1 bne _08057A14 lsrs r0, r4, #6 lsls r0, r0, #4 adds r0, r2, r0 adds r0, #6 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 cmp r5, r3 bge _08057A14 _08057A00: adds r0, r7, #0 adds r1, r6, #0 bl sub_08057A18 movs r0, #1 b _08057A16 .align 2, 0 _08057A0C: .4byte gUnk_03001160 _08057A10: .4byte gUnk_03000BF0 _08057A14: movs r0, #0 _08057A16: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08057A18 sub_08057A18: @ 0x08057A18 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r5, r1, #0 bl sub_0805E5A8 ldr r6, _08057A94 @ =gUnk_03004030 ldrb r0, [r6, #9] strb r0, [r6, #0xa] ldr r3, _08057A98 @ =gUnk_03000BF0 ldrb r0, [r3, #4] strb r0, [r6, #9] ldr r1, _08057A9C @ =gUnk_030010A0 ldrb r0, [r5, #4] strb r0, [r1, #0xc] ldrb r0, [r5, #5] strb r0, [r1, #0xd] ldrb r0, [r5, #4] strb r0, [r3, #4] ldrb r0, [r5, #5] strb r0, [r3, #5] str r5, [r6] ldr r4, _08057AA0 @ =gUnk_03001160 ldrh r1, [r4, #0x2e] ldrh r0, [r3, #6] subs r1, r1, r0 ldrh r2, [r5] movs r0, #0x3f ands r0, r2 lsls r0, r0, #4 subs r1, r1, r0 strh r1, [r6, #4] ldrh r1, [r4, #0x32] ldrh r0, [r3, #8] subs r1, r1, r0 ldrh r2, [r5] movs r0, #0xfc lsls r0, r0, #4 ands r0, r2 lsrs r0, r0, #2 subs r1, r1, r0 strh r1, [r6, #6] ldrb r1, [r6, #8] cmp r1, #0 bne _08057A86 ldrb r0, [r5, #5] movs r2, #0x80 orrs r0, r2 ldrb r3, [r6, #0xb] cmp r0, r3 beq _08057A80 ldr r0, _08057AA4 @ =gUnk_02034480 strh r1, [r0] _08057A80: ldrb r0, [r5, #5] orrs r0, r2 strb r0, [r6, #0xb] _08057A86: ldrb r0, [r5, #3] bl sub_08080930 adds r0, r7, #0 bl sub_0805E900 pop {r4, r5, r6, r7, pc} .align 2, 0 _08057A94: .4byte gUnk_03004030 _08057A98: .4byte gUnk_03000BF0 _08057A9C: .4byte gUnk_030010A0 _08057AA0: .4byte gUnk_03001160 _08057AA4: .4byte gUnk_02034480 thumb_func_start sub_08057AA8 sub_08057AA8: @ 0x08057AA8 push {lr} adds r2, r0, #0 ldrh r0, [r2] ldr r3, _08057AC0 @ =0x0000FFFF cmp r0, r3 beq _08057ACC _08057AB4: ldrb r0, [r2, #2] cmp r0, r1 bne _08057AC4 adds r0, r2, #0 b _08057ACE .align 2, 0 _08057AC0: .4byte 0x0000FFFF _08057AC4: adds r2, #8 ldrh r0, [r2] cmp r0, r3 bne _08057AB4 _08057ACC: movs r0, #0 _08057ACE: pop {pc} thumb_func_start sub_08057AD0 sub_08057AD0: @ 0x08057AD0 push {lr} ldr r2, _08057AE4 @ =gUnk_08108044 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08057AE4: .4byte gUnk_08108044 thumb_func_start sub_08057AE8 sub_08057AE8: @ 0x08057AE8 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xb] movs r1, #3 ands r1, r0 lsls r1, r1, #1 ldrb r0, [r5, #0xe] cmp r0, #1 bne _08057B04 ldr r0, _08057B00 @ =0x00000323 strh r0, [r5, #0x30] b _08057B12 .align 2, 0 _08057B00: .4byte 0x00000323 _08057B04: movs r0, #2 ands r0, r1 movs r2, #0x36 cmp r0, #0 beq _08057B10 movs r2, #0x37 _08057B10: strh r2, [r5, #0x30] _08057B12: ldr r2, _08057B9C @ =gUnk_08108024 lsls r3, r1, #1 adds r0, r3, r2 ldrh r0, [r0] movs r4, #0 strh r0, [r5, #0x28] adds r1, #1 lsls r1, r1, #1 adds r2, r1, r2 ldrh r0, [r2] strh r0, [r5, #0x2a] ldr r2, _08057BA0 @ =gUnk_08108034 adds r3, r3, r2 ldrh r0, [r3] strh r0, [r5, #0x2c] adds r1, r1, r2 ldrh r0, [r1] strh r0, [r5, #0x2e] ldrb r2, [r5, #0xb] lsrs r0, r2, #2 movs r1, #0xf ands r0, r1 adds r0, #1 strh r0, [r5, #0x32] movs r0, #0x1c strb r0, [r5, #0xe] strb r4, [r5, #0xf] movs r0, #0x80 ands r0, r2 movs r1, #1 cmp r0, #0 beq _08057B54 movs r1, #2 _08057B54: strb r1, [r5, #0xc] cmp r1, #2 bne _08057B9A ldrh r0, [r5, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _08057B9A ldrh r0, [r5, #0x32] cmp r0, #0 beq _08057B94 _08057B6A: ldrh r1, [r5, #0x28] ldrh r2, [r5, #0x2a] adds r0, r5, #0 bl sub_08057CA4 ldrh r0, [r5, #0x30] movs r2, #0x38 ldrsh r1, [r5, r2] movs r3, #0x3a ldrsh r2, [r5, r3] lsls r2, r2, #6 orrs r1, r2 ldrh r2, [r5, #0x3c] bl sub_0807B7D8 ldrh r0, [r5, #0x32] subs r0, #1 strh r0, [r5, #0x32] lsls r0, r0, #0x10 cmp r0, #0 bne _08057B6A _08057B94: adds r0, r5, #0 bl sub_0805E900 _08057B9A: pop {r4, r5, pc} .align 2, 0 _08057B9C: .4byte gUnk_08108024 _08057BA0: .4byte gUnk_08108034 thumb_func_start sub_08057BA4 sub_08057BA4: @ 0x08057BA4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08057C24 movs r0, #8 strb r0, [r4, #0xe] ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _08057BF6 ldrh r0, [r4, #0x32] ldrb r1, [r4, #0xf] cmp r0, r1 beq _08057C24 ldrh r1, [r4, #0x28] ldrh r2, [r4, #0x2a] adds r0, r4, #0 bl sub_08057CA4 ldrh r0, [r4, #0x30] movs r2, #0x38 ldrsh r1, [r4, r2] movs r3, #0x3a ldrsh r2, [r4, r3] lsls r2, r2, #6 orrs r1, r2 ldrh r2, [r4, #0x3c] bl sub_0807B7D8 ldrb r0, [r4, #0xf] adds r0, #1 strb r0, [r4, #0xf] movs r0, #0x71 bl sub_080A3268 b _08057C24 _08057BF6: ldrb r0, [r4, #0xf] cmp r0, #0 beq _08057C24 movs r1, #0x38 ldrsh r0, [r4, r1] movs r2, #0x3a ldrsh r1, [r4, r2] lsls r1, r1, #6 orrs r0, r1 ldrh r1, [r4, #0x3c] bl sub_0807BA8C ldrh r1, [r4, #0x2c] ldrh r2, [r4, #0x2e] adds r0, r4, #0 bl sub_08057CA4 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] movs r0, #0x71 bl sub_080A3268 _08057C24: pop {r4, pc} .align 2, 0 thumb_func_start sub_08057C28 sub_08057C28: @ 0x08057C28 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #0 bne _08057C44 ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _08057C9C ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] b _08057C9C _08057C44: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08057C9C movs r0, #8 strb r0, [r4, #0xe] ldrh r0, [r4, #0x32] ldrb r1, [r4, #0xf] cmp r0, r1 beq _08057C88 ldrh r1, [r4, #0x28] ldrh r2, [r4, #0x2a] adds r0, r4, #0 bl sub_08057CA4 ldrh r0, [r4, #0x30] movs r2, #0x38 ldrsh r1, [r4, r2] movs r3, #0x3a ldrsh r2, [r4, r3] lsls r2, r2, #6 orrs r1, r2 ldrh r2, [r4, #0x3c] bl sub_0807B7D8 ldrb r0, [r4, #0xf] adds r0, #1 strb r0, [r4, #0xf] movs r0, #0x71 bl sub_080A3268 b _08057C9C _08057C88: ldrh r1, [r4, #0x30] ldr r0, _08057CA0 @ =0x00000323 cmp r1, r0 beq _08057C96 movs r0, #0x72 bl sub_080A3268 _08057C96: adds r0, r4, #0 bl sub_0805E900 _08057C9C: pop {r4, pc} .align 2, 0 _08057CA0: .4byte 0x00000323 thumb_func_start sub_08057CA4 sub_08057CA4: @ 0x08057CA4 ldrh r3, [r0, #0x38] adds r3, r3, r1 strh r3, [r0, #0x38] ldrh r1, [r0, #0x3a] adds r1, r1, r2 strh r1, [r0, #0x3a] bx lr .align 2, 0 thumb_func_start sub_08057CB4 sub_08057CB4: @ 0x08057CB4 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08057CD6 movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xa] bl sub_0804B128 str r0, [r4, #0x20] cmp r0, #0 bne _08057CD6 adds r0, r4, #0 bl sub_0805E900 b _08057D42 _08057CD6: ldrb r0, [r4, #0xe] cmp r0, #0 beq _08057CE4 ldr r0, _08057D44 @ =gUnk_03003F80 ldrb r0, [r0, #0x12] cmp r0, #0x1e bne _08057D42 _08057CE4: ldr r4, [r4, #0x20] ldrh r0, [r4] ldr r1, _08057D48 @ =0x0000FFFF cmp r0, r1 beq _08057D42 ldr r5, _08057D4C @ =gUnk_03001160 adds r6, r1, #0 _08057CF2: ldrb r2, [r4, #7] movs r0, #3 ands r0, r2 adds r1, r5, #0 adds r1, #0x38 ldrb r1, [r1] ands r0, r1 cmp r0, #0 beq _08057D3A ldr r0, _08057D44 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08057D18 movs r0, #0x10 ands r0, r2 cmp r0, #0 beq _08057D3A _08057D18: ldrh r0, [r4] ldrh r1, [r4, #2] ldrb r2, [r4, #4] ldrb r3, [r4, #5] bl sub_0800293E cmp r0, #0 beq _08057D3A movs r1, #0x36 ldrsh r0, [r5, r1] cmp r0, #0 bne _08057D3A ldrb r0, [r4, #6] bl sub_0804B128 bl sub_08080840 _08057D3A: adds r4, #8 ldrh r0, [r4] cmp r0, r6 bne _08057CF2 _08057D42: pop {r4, r5, r6, pc} .align 2, 0 _08057D44: .4byte gUnk_03003F80 _08057D48: .4byte 0x0000FFFF _08057D4C: .4byte gUnk_03001160 thumb_func_start sub_08057D50 sub_08057D50: @ 0x08057D50 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08057D7C movs r0, #1 strb r0, [r4, #0xc] movs r0, #8 strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x20 movs r0, #0xff strb r0, [r1] adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 ldr r1, _08057DC0 @ =sub_08057E30 adds r0, r4, #0 movs r2, #0 bl sub_08052D74 _08057D7C: adds r0, r4, #0 bl sub_08057E40 cmp r0, #0 beq _08057D9A ldr r0, _08057DC4 @ =gUnk_02034350 ldrb r5, [r0, #0x10] adds r1, r4, #0 adds r1, #0x20 ldrb r0, [r1] cmp r0, r5 beq _08057D9A movs r0, #0 strb r5, [r1] strb r0, [r4, #0xe] _08057D9A: ldr r0, _08057DC8 @ =gUnk_03000BF0 ldrh r3, [r0] cmp r3, #0 bne _08057E2A adds r0, r4, #0 adds r0, #0x20 ldrb r5, [r0] lsls r1, r5, #6 ldr r0, _08057DCC @ =gUnk_081080A4 adds r2, r1, r0 ldrb r1, [r4, #0xe] cmp r1, #7 bgt _08057DD0 cmp r1, #1 bge _08057E04 cmp r1, #0 beq _08057DD6 b _08057E2A .align 2, 0 _08057DC0: .4byte sub_08057E30 _08057DC4: .4byte gUnk_02034350 _08057DC8: .4byte gUnk_03000BF0 _08057DCC: .4byte gUnk_081080A4 _08057DD0: cmp r1, #8 beq _08057E20 b _08057E2A _08057DD6: ldr r1, _08057DF8 @ =gUnk_02034490 movs r0, #1 strb r0, [r1] ldr r0, [r2] ldr r1, _08057DFC @ =gUnk_085A2E80 adds r0, r0, r1 ldr r1, [r2, #4] movs r2, #0x80 lsls r2, r2, #5 bl sub_08000E96 ldr r0, _08057E00 @ =gUnk_081081E4 adds r0, r5, r0 ldrb r0, [r0] bl sub_0801D714 b _08057E24 .align 2, 0 _08057DF8: .4byte gUnk_02034490 _08057DFC: .4byte gUnk_085A2E80 _08057E00: .4byte gUnk_081081E4 _08057E04: lsls r1, r1, #3 adds r1, r1, r2 ldr r0, [r1] ldr r2, _08057E1C @ =gUnk_085A2E80 adds r0, r0, r2 ldr r1, [r1, #4] movs r2, #0x80 lsls r2, r2, #5 bl sub_08000E96 b _08057E24 .align 2, 0 _08057E1C: .4byte gUnk_085A2E80 _08057E20: ldr r0, _08057E2C @ =gUnk_02034490 strb r3, [r0] _08057E24: ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] _08057E2A: pop {r4, r5, pc} .align 2, 0 _08057E2C: .4byte gUnk_02034490 thumb_func_start sub_08057E30 sub_08057E30: @ 0x08057E30 push {lr} ldr r0, _08057E3C @ =gUnk_02034350 ldrb r0, [r0, #0x10] bl sub_08057E7C pop {pc} .align 2, 0 _08057E3C: .4byte gUnk_02034350 thumb_func_start sub_08057E40 sub_08057E40: @ 0x08057E40 push {lr} ldr r0, _08057E54 @ =gUnk_08108050 bl sub_08056300 adds r1, r0, #0 cmp r1, #0xff bne _08057E58 movs r0, #0 b _08057E5E .align 2, 0 _08057E54: .4byte gUnk_08108050 _08057E58: ldr r0, _08057E60 @ =gUnk_02034350 strb r1, [r0, #0x10] movs r0, #1 _08057E5E: pop {pc} .align 2, 0 _08057E60: .4byte gUnk_02034350 thumb_func_start sub_08057E64 sub_08057E64: @ 0x08057E64 push {lr} ldr r0, _08057E78 @ =gUnk_08108050 bl sub_08056300 cmp r0, #0xff beq _08057E74 bl sub_08057E7C _08057E74: pop {pc} .align 2, 0 _08057E78: .4byte gUnk_08108050 thumb_func_start sub_08057E7C sub_08057E7C: @ 0x08057E7C push {r4, r5, r6, lr} adds r4, r0, #0 cmp r4, #4 bhi _08057EB6 ldr r0, _08057EB8 @ =gUnk_081081E4 adds r0, r4, r0 ldrb r0, [r0] bl sub_0801D714 lsls r1, r4, #6 ldr r0, _08057EBC @ =gUnk_081080A4 adds r1, r1, r0 movs r3, #0 ldr r2, _08057EC0 @ =0x040000D4 ldr r6, _08057EC4 @ =gUnk_085A2E80 ldr r5, _08057EC8 @ =0x84000400 _08057E9C: ldr r0, [r1] adds r0, r0, r6 str r0, [r2] ldr r0, [r1, #4] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] adds r3, #1 adds r1, #8 cmp r3, #7 bls _08057E9C ldr r0, _08057ECC @ =gUnk_02034350 strb r4, [r0, #0x10] _08057EB6: pop {r4, r5, r6, pc} .align 2, 0 _08057EB8: .4byte gUnk_081081E4 _08057EBC: .4byte gUnk_081080A4 _08057EC0: .4byte 0x040000D4 _08057EC4: .4byte gUnk_085A2E80 _08057EC8: .4byte 0x84000400 _08057ECC: .4byte gUnk_02034350 thumb_func_start sub_08057ED0 sub_08057ED0: @ 0x08057ED0 push {r4, lr} adds r4, r0, #0 bl sub_08057F20 ldrb r1, [r4, #0xc] cmp r1, #0 bne _08057EF2 movs r0, #1 strb r0, [r4, #0xc] ldr r0, _08057EF4 @ =gUnk_03000F50 strh r1, [r0, #0x1a] strh r1, [r0, #0x32] ldr r1, _08057EF8 @ =sub_08057EFC adds r0, r4, #0 movs r2, #0 bl sub_08052D74 _08057EF2: pop {r4, pc} .align 2, 0 _08057EF4: .4byte gUnk_03000F50 _08057EF8: .4byte sub_08057EFC thumb_func_start sub_08057EFC sub_08057EFC: @ 0x08057EFC push {r4, lr} adds r4, r0, #0 ldr r0, _08057F1C @ =gUnk_02034350 ldrb r0, [r0, #0x10] bl sub_0801D7EC bl sub_08058034 movs r0, #0 str r0, [r4, #0x3c] str r0, [r4, #0x38] adds r0, r4, #0 bl sub_08057F20 pop {r4, pc} .align 2, 0 _08057F1C: .4byte gUnk_02034350 thumb_func_start sub_08057F20 sub_08057F20: @ 0x08057F20 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r7, r0, #0 ldr r5, _08057FF4 @ =gUnk_03000BF0 movs r0, #0xa ldrsh r1, [r5, r0] ldrh r0, [r5, #6] subs r4, r1, r0 lsrs r2, r4, #3 adds r2, r4, r2 ldrh r0, [r5, #0x1e] movs r1, #0x80 lsls r1, r1, #3 subs r0, r1, r0 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 adds r4, r2, r0 ldr r6, _08057FF8 @ =gUnk_03000F50 adds r0, r4, #0 movs r1, #0xf ands r0, r1 strh r0, [r6, #0x2e] movs r1, #0xc ldrsh r0, [r5, r1] ldrh r1, [r5, #8] subs r0, r0, r1 movs r1, #0x30 subs r0, r1, r0 asrs r0, r0, #2 mov sl, r1 mov r1, sl subs r0, r1, r0 strh r0, [r6, #0x30] ldr r0, _08057FFC @ =gUnk_02001A40 mov r8, r0 str r0, [r6, #0x34] ldr r1, _08058000 @ =gUnk_02006F00 mov sb, r1 adds r0, r4, #0 mov r2, r8 bl sub_08058004 lsrs r0, r4, #4 lsls r4, r0, #1 ldr r0, [r7, #0x38] cmp r0, r4 beq _08057F8C str r4, [r7, #0x38] movs r0, #1 strh r0, [r6, #0x32] _08057F8C: movs r0, #0xa ldrsh r1, [r5, r0] ldrh r0, [r5, #6] subs r4, r1, r0 lsrs r2, r4, #2 adds r2, r4, r2 ldrh r0, [r5, #0x1e] movs r1, #0x80 lsls r1, r1, #3 subs r0, r1, r0 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 adds r4, r2, r0 adds r0, r4, #0 movs r1, #0xf ands r0, r1 strh r0, [r6, #0x16] movs r1, #0xc ldrsh r0, [r5, r1] ldrh r1, [r5, #8] subs r0, r0, r1 movs r1, #0x30 subs r0, r1, r0 asrs r0, r0, #1 mov r1, sl subs r0, r1, r0 strh r0, [r6, #0x18] movs r2, #0x80 lsls r2, r2, #4 add r2, r8 str r2, [r6, #0x1c] movs r1, #0x80 lsls r1, r1, #6 add r1, sb adds r0, r4, #0 bl sub_08058004 lsrs r0, r4, #4 lsls r4, r0, #1 ldr r0, [r7, #0x3c] cmp r0, r4 beq _08057FE8 str r4, [r7, #0x3c] movs r0, #1 strh r0, [r6, #0x1a] _08057FE8: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _08057FF4: .4byte gUnk_03000BF0 _08057FF8: .4byte gUnk_03000F50 _08057FFC: .4byte gUnk_02001A40 _08058000: .4byte gUnk_02006F00 thumb_func_start sub_08058004 sub_08058004: @ 0x08058004 push {r4, r5, r6, lr} movs r4, #0x20 lsrs r0, r0, #4 lsls r0, r0, #2 adds r1, r1, r0 ldr r3, _0805802C @ =0x040000D4 ldr r6, _08058030 @ =0x80000020 movs r5, #0x80 lsls r5, r5, #1 _08058016: str r1, [r3] str r2, [r3, #4] str r6, [r3, #8] ldr r0, [r3, #8] adds r1, r1, r5 adds r2, #0x40 subs r4, #1 cmp r4, #0 bne _08058016 pop {r4, r5, r6, pc} .align 2, 0 _0805802C: .4byte 0x040000D4 _08058030: .4byte 0x80000020 thumb_func_start sub_08058034 sub_08058034: @ 0x08058034 push {r4, r5, r6, lr} ldr r6, _08058080 @ =gUnk_02002F00 movs r0, #0x80 lsls r0, r0, #7 adds r5, r6, r0 movs r4, #0 _08058040: adds r0, r6, #0 adds r1, r5, #0 bl sub_08058084 movs r1, #0x80 lsls r1, r1, #4 adds r6, r6, r1 adds r5, #0x40 adds r4, #1 cmp r4, #3 bls _08058040 ldr r0, _08058080 @ =gUnk_02002F00 movs r1, #0x80 lsls r1, r1, #6 adds r6, r0, r1 movs r1, #0xc0 lsls r1, r1, #7 adds r5, r0, r1 movs r4, #0 _08058066: adds r0, r6, #0 adds r1, r5, #0 bl sub_08058084 movs r0, #0x80 lsls r0, r0, #4 adds r6, r6, r0 adds r5, #0x40 adds r4, #1 cmp r4, #3 bls _08058066 pop {r4, r5, r6, pc} .align 2, 0 _08058080: .4byte gUnk_02002F00 thumb_func_start sub_08058084 sub_08058084: @ 0x08058084 push {r4, r5, r6, lr} adds r3, r0, #0 movs r4, #0 ldr r2, _080580A8 @ =0x040000D4 ldr r6, _080580AC @ =0x80000020 movs r5, #0x80 lsls r5, r5, #1 _08058092: str r3, [r2] str r1, [r2, #4] str r6, [r2, #8] ldr r0, [r2, #8] adds r4, #1 adds r3, #0x40 adds r1, r1, r5 cmp r4, #0x1f bls _08058092 pop {r4, r5, r6, pc} .align 2, 0 _080580A8: .4byte 0x040000D4 _080580AC: .4byte 0x80000020 thumb_func_start sub_080580B0 sub_080580B0: @ 0x080580B0 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, _080581B0 @ =gUnk_0200B650 movs r1, #0 str r1, [r0] movs r0, #0x80 lsls r0, r0, #0x13 strh r1, [r0] adds r0, r4, #0 bl sub_0801D7EC ldr r0, _080581B4 @ =gUnk_02034350 strb r4, [r0, #0x10] bl sub_08058034 ldr r5, _080581B8 @ =gUnk_03000BF0 movs r0, #0xa ldrsh r1, [r5, r0] ldrh r0, [r5, #6] subs r7, r1, r0 asrs r2, r7, #3 adds r2, r7, r2 ldrh r0, [r5, #0x1e] movs r4, #0x80 lsls r4, r4, #3 subs r0, r4, r0 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 adds r7, r2, r0 ldr r1, _080581BC @ =gUnk_02006F00 mov sb, r1 ldr r2, _080581C0 @ =gUnk_02001A40 mov r8, r2 adds r0, r7, #0 bl sub_08058004 ldr r0, _080581C4 @ =gUnk_03000F50 mov sl, r0 movs r1, #0xf ands r7, r1 strh r7, [r0, #0x2e] movs r2, #0xc ldrsh r0, [r5, r2] ldrh r1, [r5, #8] subs r0, r0, r1 movs r6, #0x30 subs r0, r6, r0 asrs r0, r0, #1 movs r3, #0x30 subs r0, r3, r0 mov r1, sl strh r0, [r1, #0x30] ldr r0, _080581C8 @ =0x00001D09 strh r0, [r1, #0x2c] mov r2, r8 str r2, [r1, #0x34] movs r0, #1 strh r0, [r1, #0x32] movs r2, #0xa ldrsh r1, [r5, r2] ldrh r0, [r5, #6] subs r7, r1, r0 asrs r1, r7, #2 adds r1, r7, r1 ldrh r0, [r5, #0x1e] subs r4, r4, r0 lsrs r0, r4, #0x1f adds r4, r4, r0 asrs r4, r4, #1 adds r7, r1, r4 movs r0, #0x80 lsls r0, r0, #6 add sb, r0 movs r1, #0x80 lsls r1, r1, #4 add r8, r1 adds r0, r7, #0 mov r1, sb mov r2, r8 str r3, [sp] bl sub_08058004 movs r2, #0xf ands r7, r2 mov r0, sl strh r7, [r0, #0x16] movs r1, #0xc ldrsh r0, [r5, r1] ldrh r1, [r5, #8] subs r0, r0, r1 subs r6, r6, r0 asrs r6, r6, #1 ldr r3, [sp] subs r3, r3, r6 mov r2, sl strh r3, [r2, #0x18] ldr r0, _080581CC @ =0x00001E09 strh r0, [r2, #0x14] mov r0, r8 str r0, [r2, #0x1c] movs r1, #1 strh r1, [r2, #0x1a] mov r1, sl adds r1, #0x66 ldr r0, _080581D0 @ =0x00003C48 strh r0, [r1] adds r1, #2 ldr r0, _080581D4 @ =0x00000609 strh r0, [r1] ldrh r1, [r2] movs r2, #0xa0 lsls r2, r2, #4 adds r0, r2, #0 orrs r0, r1 mov r1, sl strh r0, [r1] add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _080581B0: .4byte gUnk_0200B650 _080581B4: .4byte gUnk_02034350 _080581B8: .4byte gUnk_03000BF0 _080581BC: .4byte gUnk_02006F00 _080581C0: .4byte gUnk_02001A40 _080581C4: .4byte gUnk_03000F50 _080581C8: .4byte 0x00001D09 _080581CC: .4byte 0x00001E09 _080581D0: .4byte 0x00003C48 _080581D4: .4byte 0x00000609 thumb_func_start sub_080581D8 sub_080581D8: @ 0x080581D8 push {r4, lr} adds r4, r0, #0 bl sub_08058210 ldrb r1, [r4, #0xc] cmp r1, #0 bne _080581F8 movs r0, #1 strb r0, [r4, #0xc] ldr r0, _080581FC @ =gUnk_03000F50 strh r1, [r0, #0x1a] ldr r1, _08058200 @ =sub_08058204 adds r0, r4, #0 movs r2, #0 bl sub_08052D74 _080581F8: pop {r4, pc} .align 2, 0 _080581FC: .4byte gUnk_03000F50 _08058200: .4byte sub_08058204 thumb_func_start sub_08058204 sub_08058204: @ 0x08058204 push {lr} ldrb r0, [r0, #0xa] bl sub_08058324 pop {pc} .align 2, 0 thumb_func_start sub_08058210 sub_08058210: @ 0x08058210 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] bl sub_08058244 adds r3, r0, #0 ldr r0, [r4, #0x3c] cmp r0, r3 beq _08058234 str r3, [r4, #0x3c] ldr r1, _08058238 @ =gUnk_02006F00 ldr r2, _0805823C @ =gUnk_02001A40 adds r0, r3, #0 bl sub_080582A0 ldr r1, _08058240 @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0x1a] _08058234: pop {r4, pc} .align 2, 0 _08058238: .4byte gUnk_02006F00 _0805823C: .4byte gUnk_02001A40 _08058240: .4byte gUnk_03000F50 thumb_func_start sub_08058244 sub_08058244: @ 0x08058244 push {r4, r5, r6, lr} mov r6, r8 push {r6} adds r6, r0, #0 ldr r5, _08058294 @ =gUnk_03000BF0 movs r1, #0xc ldrsh r0, [r5, r1] ldrh r4, [r5, #8] subs r0, r0, r4 lsls r0, r0, #5 ldrh r1, [r5, #0x20] subs r1, #0xa0 bl __divsi3 ldr r2, _08058298 @ =gUnk_03000F50 mov r8, r2 adds r4, r4, r0 strh r4, [r2, #0x18] movs r0, #0xa ldrsh r1, [r5, r0] ldrh r0, [r5, #6] subs r1, r1, r0 ldr r0, _0805829C @ =gUnk_081081EC lsls r6, r6, #1 adds r6, r6, r0 ldrh r0, [r6] muls r0, r1, r0 ldrh r1, [r5, #0x1e] subs r1, #0xf0 bl __divsi3 movs r2, #0xf adds r1, r0, #0 ands r1, r2 mov r2, r8 strh r1, [r2, #0x16] pop {r3} mov r8, r3 pop {r4, r5, r6, pc} .align 2, 0 _08058294: .4byte gUnk_03000BF0 _08058298: .4byte gUnk_03000F50 _0805829C: .4byte gUnk_081081EC thumb_func_start sub_080582A0 sub_080582A0: @ 0x080582A0 push {r4, r5, r6, lr} movs r4, #0x20 lsrs r0, r0, #4 lsls r0, r0, #2 adds r1, r1, r0 ldr r3, _080582C8 @ =0x040000D4 ldr r6, _080582CC @ =0x80000020 movs r5, #0x80 lsls r5, r5, #1 _080582B2: str r1, [r3] str r2, [r3, #4] str r6, [r3, #8] ldr r0, [r3, #8] adds r1, r1, r5 adds r2, #0x40 subs r4, #1 cmp r4, #0 bne _080582B2 pop {r4, r5, r6, pc} .align 2, 0 _080582C8: .4byte 0x040000D4 _080582CC: .4byte 0x80000020 thumb_func_start sub_080582D0 sub_080582D0: @ 0x080582D0 push {r4, r5, lr} ldr r4, _080582F4 @ =gUnk_02002F00 movs r0, #0x80 lsls r0, r0, #7 adds r5, r4, r0 adds r0, r4, #0 adds r1, r5, #0 bl sub_080582F8 movs r0, #0x80 lsls r0, r0, #4 adds r4, r4, r0 adds r5, #0x40 adds r0, r4, #0 adds r1, r5, #0 bl sub_080582F8 pop {r4, r5, pc} .align 2, 0 _080582F4: .4byte gUnk_02002F00 thumb_func_start sub_080582F8 sub_080582F8: @ 0x080582F8 push {r4, r5, r6, lr} adds r3, r0, #0 movs r4, #0 ldr r2, _0805831C @ =0x040000D4 ldr r6, _08058320 @ =0x80000020 movs r5, #0x80 lsls r5, r5, #1 _08058306: str r3, [r2] str r1, [r2, #4] str r6, [r2, #8] ldr r0, [r2, #8] adds r4, #1 adds r3, #0x40 adds r1, r1, r5 cmp r4, #0x1f bls _08058306 pop {r4, r5, r6, pc} .align 2, 0 _0805831C: .4byte 0x040000D4 _08058320: .4byte 0x80000020 thumb_func_start sub_08058324 sub_08058324: @ 0x08058324 push {r4, lr} adds r4, r0, #0 ldr r1, _0805836C @ =gUnk_0200B650 movs r0, #0 str r0, [r1] adds r0, r4, #0 adds r0, #0x86 bl sub_0801D714 adds r0, r4, #0 adds r0, #0x36 bl sub_0801D7EC bl sub_080582D0 adds r0, r4, #0 bl sub_08058244 ldr r1, _08058370 @ =gUnk_02006F00 ldr r4, _08058374 @ =gUnk_02001A40 adds r2, r4, #0 bl sub_080582A0 ldr r1, _08058378 @ =gUnk_03000F50 ldr r0, _0805837C @ =0x00001D47 strh r0, [r1, #0x14] str r4, [r1, #0x1c] movs r0, #1 strh r0, [r1, #0x1a] ldrh r2, [r1] movs r3, #0x80 lsls r3, r3, #2 adds r0, r3, #0 orrs r0, r2 strh r0, [r1] pop {r4, pc} .align 2, 0 _0805836C: .4byte gUnk_0200B650 _08058370: .4byte gUnk_02006F00 _08058374: .4byte gUnk_02001A40 _08058378: .4byte gUnk_03000F50 _0805837C: .4byte 0x00001D47 thumb_func_start sub_08058380 sub_08058380: @ 0x08058380 push {lr} ldr r2, _08058394 @ =gUnk_081081F4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08058394: .4byte gUnk_081081F4 thumb_func_start sub_08058398 sub_08058398: @ 0x08058398 push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #0x3c] bl sub_0807CBE4 cmp r0, #0 beq _080583AA bl sub_0805E780 _080583AA: adds r0, r4, #0 adds r0, #0x3a ldrb r1, [r0] lsls r1, r1, #3 strh r1, [r4, #0x24] adds r0, #1 ldrb r2, [r0] lsls r2, r2, #3 strh r2, [r4, #0x26] subs r0, #3 ldrb r0, [r0] lsls r0, r0, #4 adds r1, r1, r0 strh r1, [r4, #0x20] adds r0, r4, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #4 adds r2, r2, r0 strh r2, [r4, #0x22] adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 ldrh r0, [r4, #0x3e] cmp r0, #0 bne _080583E4 movs r0, #2 b _080583E6 _080583E4: movs r0, #1 _080583E6: strb r0, [r4, #0xc] pop {r4, pc} .align 2, 0 thumb_func_start sub_080583EC sub_080583EC: @ 0x080583EC push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _08058404 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_08058408 _08058404: pop {r4, pc} .align 2, 0 thumb_func_start sub_08058408 sub_08058408: @ 0x08058408 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r6, _0805843C @ =gUnk_03003F80 ldr r5, [r6, #0x30] movs r0, #8 ands r5, r0 cmp r5, #0 bne _08058488 ldrh r0, [r4, #0x20] ldrh r1, [r4, #0x22] ldrh r2, [r4, #0x24] ldrh r3, [r4, #0x26] bl sub_0800293E cmp r0, #0 beq _08058488 ldrb r0, [r4, #0xa] cmp r0, #1 beq _08058488 cmp r0, #1 ble _08058450 cmp r0, #2 beq _08058440 cmp r0, #3 beq _0805847C b _08058450 .align 2, 0 _0805843C: .4byte gUnk_03003F80 _08058440: adds r0, r4, #0 bl sub_080585DC ldr r0, [r6, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _08058488 _08058450: adds r0, r4, #0 bl sub_080585DC adds r0, r4, #0 bl sub_0805848C cmp r0, #0 beq _08058488 movs r0, #3 bl sub_08078A90 bl sub_08078B48 bl sub_0805E544 movs r0, #0 movs r1, #3 strb r1, [r4, #0xc] strb r0, [r4, #0xd] movs r0, #0x1e strb r0, [r4, #0xe] b _08058488 _0805847C: movs r0, #4 strb r0, [r4, #0xc] strb r5, [r4, #0xd] ldrh r0, [r4, #0x36] bl sub_080186C0 _08058488: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0805848C sub_0805848C: @ 0x0805848C push {lr} ldr r0, _080584A4 @ =gUnk_03003F80 adds r0, #0xa8 ldrb r0, [r0] subs r0, #5 cmp r0, #0x17 bhi _08058510 lsls r0, r0, #2 ldr r1, _080584A8 @ =_080584AC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080584A4: .4byte gUnk_03003F80 _080584A8: .4byte _080584AC _080584AC: @ jump table .4byte _0805850C @ case 0 .4byte _08058510 @ case 1 .4byte _0805850C @ case 2 .4byte _0805850C @ case 3 .4byte _08058510 @ case 4 .4byte _0805850C @ case 5 .4byte _0805850C @ case 6 .4byte _0805850C @ case 7 .4byte _0805850C @ case 8 .4byte _0805850C @ case 9 .4byte _0805850C @ case 10 .4byte _0805850C @ case 11 .4byte _0805850C @ case 12 .4byte _0805850C @ case 13 .4byte _0805850C @ case 14 .4byte _0805850C @ case 15 .4byte _0805850C @ case 16 .4byte _0805850C @ case 17 .4byte _0805850C @ case 18 .4byte _0805850C @ case 19 .4byte _08058510 @ case 20 .4byte _08058510 @ case 21 .4byte _0805850C @ case 22 .4byte _0805850C @ case 23 _0805850C: movs r0, #0 b _08058512 _08058510: movs r0, #1 _08058512: pop {pc} thumb_func_start sub_08058514 sub_08058514: @ 0x08058514 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #1 beq _08058532 cmp r0, #1 bgt _08058528 cmp r0, #0 beq _08058570 b _080585A6 _08058528: cmp r0, #2 beq _08058570 cmp r0, #3 beq _08058584 b _080585A6 _08058532: ldr r2, _08058564 @ =gUnk_03003F80 ldr r0, [r2, #0x30] ldr r1, _08058568 @ =0x00001235 ands r0, r1 cmp r0, #0 bne _080585A6 ldr r0, _0805856C @ =gUnk_03001160 movs r1, #0x36 ldrsh r0, [r0, r1] cmp r0, #0 bne _080585A6 strb r0, [r2, #2] ldrh r0, [r4, #0x36] adds r1, r4, #0 adds r1, #0x35 ldrb r1, [r1] bl sub_08078AA8 ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] movs r0, #0x1e strb r0, [r4, #0xe] b _080585A6 .align 2, 0 _08058564: .4byte gUnk_03003F80 _08058568: .4byte 0x00001235 _0805856C: .4byte gUnk_03001160 _08058570: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080585A6 ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] b _080585A6 _08058584: ldr r0, _080585A8 @ =gUnk_03001160 ldrb r0, [r0, #0xc] cmp r0, #1 beq _08058590 cmp r0, #9 bne _080585A6 _08058590: ldr r0, _080585AC @ =gUnk_03003F80 adds r0, #0x8b movs r1, #1 strb r1, [r0] bl sub_0805E564 ldrh r0, [r4, #0x3c] bl sub_0807CCC8 bl sub_0805E780 _080585A6: pop {r4, pc} .align 2, 0 _080585A8: .4byte gUnk_03001160 _080585AC: .4byte gUnk_03003F80 thumb_func_start sub_080585B0 sub_080585B0: @ 0x080585B0 push {r4, lr} adds r4, r0, #0 ldr r0, _080585D8 @ =gUnk_02033A90 adds r0, #0x28 ldrb r0, [r0] cmp r0, #0xff beq _080585C2 bl sub_0805E780 _080585C2: ldrh r0, [r4, #0x3c] bl sub_0807CBE4 cmp r0, #0 beq _080585D4 bl sub_0801855C bl sub_0805E780 _080585D4: pop {r4, pc} .align 2, 0 _080585D8: .4byte gUnk_02033A90 thumb_func_start sub_080585DC sub_080585DC: @ 0x080585DC push {lr} ldrh r0, [r0, #0x3c] bl sub_0807CBE4 cmp r0, #0 beq _080585EC bl sub_0805E780 _080585EC: pop {pc} .align 2, 0 thumb_func_start sub_080585F0 sub_080585F0: @ 0x080585F0 push {lr} ldr r2, _08058604 @ =gUnk_08108208 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08058604: .4byte gUnk_08108208 thumb_func_start sub_08058608 sub_08058608: @ 0x08058608 push {lr} ldr r2, _0805861C @ =gUnk_08108210 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805861C: .4byte gUnk_08108210 thumb_func_start sub_08058620 sub_08058620: @ 0x08058620 push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 bne _08058648 movs r0, #1 strb r0, [r4, #0xc] ldrh r0, [r4, #0x3c] cmp r0, #0 bne _0805863E adds r0, r4, #0 bl sub_080586EC _0805863E: adds r0, r4, #0 movs r1, #3 bl sub_0805E3A0 b _0805864C _08058648: bl sub_0805E780 _0805864C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08058650 sub_08058650: @ 0x08058650 push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #0x3c] bl sub_0807CBE4 cmp r0, #0 beq _08058698 adds r0, r4, #0 bl sub_080586EC adds r0, r4, #0 adds r0, #0x35 ldrb r0, [r0] cmp r0, #0 bne _08058692 ldr r1, _0805869C @ =gUnk_02034350 ldrb r0, [r1, #9] movs r3, #0x33 cmp r0, #0 beq _0805867A adds r3, r0, #0 _0805867A: ldr r0, _080586A0 @ =gUnk_02033A90 movs r1, #0x86 lsls r1, r1, #4 adds r0, r0, r1 ldr r2, [r0] adds r1, r4, #0 adds r1, #0x20 strb r2, [r1] str r3, [r0] adds r0, r3, #0 bl sub_080A3268 _08058692: ldr r0, _080586A4 @ =0x00000B0F bl sub_080186C0 _08058698: pop {r4, pc} .align 2, 0 _0805869C: .4byte gUnk_02034350 _080586A0: .4byte gUnk_02033A90 _080586A4: .4byte 0x00000B0F thumb_func_start sub_080586A8 sub_080586A8: @ 0x080586A8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 bne _080586E4 ldrh r0, [r4, #0x3e] bl sub_0807CCC8 ldrh r0, [r4, #0x3c] cmp r0, #0 beq _080586E0 adds r0, r4, #0 adds r0, #0x35 ldrb r0, [r0] cmp r0, #0 bne _080586E0 ldr r1, _080586E8 @ =gUnk_02033A90 movs r0, #0x86 lsls r0, r0, #4 adds r1, r1, r0 adds r0, r4, #0 adds r0, #0x20 ldrb r0, [r0] str r0, [r1] bl sub_080A3268 bl sub_0801855C _080586E0: bl sub_0805E780 _080586E4: pop {r4, pc} .align 2, 0 _080586E8: .4byte gUnk_02033A90 thumb_func_start sub_080586EC sub_080586EC: @ 0x080586EC push {r4, r5, r6, r7, lr} adds r7, r0, #0 movs r1, #0 movs r0, #2 strb r0, [r7, #0xc] strb r1, [r7, #0xe] movs r6, #0 adds r0, r7, #0 bl sub_08058760 adds r5, r0, #0 cmp r5, #0 bne _0805870A bl sub_0805E780 _0805870A: ldrb r0, [r7, #0xb] bl sub_0804B128 adds r4, r0, #0 cmp r4, #0 beq _0805875C b _08058756 _08058718: adds r0, r4, #0 adds r4, #0x10 bl sub_0804ADF8 adds r3, r0, #0 cmp r3, #0 beq _08058744 ldrb r0, [r3, #8] cmp r0, #3 bne _08058744 adds r2, r3, #0 adds r2, #0x6d ldrb r0, [r2] movs r1, #0x40 orrs r1, r0 strb r1, [r2] adds r2, r6, #0 adds r6, #1 adds r0, r5, #0 adds r1, r3, #0 bl sub_08058798 _08058744: cmp r6, #6 bls _08058756 movs r6, #0 adds r0, r7, #0 bl sub_08058760 adds r5, r0, #0 cmp r5, #0 beq _0805875C _08058756: ldrb r0, [r4] cmp r0, #0xff bne _08058718 _0805875C: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08058760 sub_08058760: @ 0x08058760 push {r4, r5, lr} adds r5, r0, #0 bl sub_0805E8D4 adds r4, r0, #0 cmp r4, #0 beq _08058794 movs r0, #9 strb r0, [r4, #8] movs r0, #0xb strb r0, [r4, #9] movs r0, #1 strb r0, [r4, #0xa] str r5, [r4, #0x14] ldrb r0, [r5, #0xe] adds r0, #1 strb r0, [r5, #0xe] adds r0, r4, #0 adds r0, #0x20 movs r1, #0x20 bl sub_0801D630 adds r0, r4, #0 movs r1, #8 bl sub_0805EA2C _08058794: adds r0, r4, #0 pop {r4, r5, pc} thumb_func_start sub_08058798 sub_08058798: @ 0x08058798 lsls r2, r2, #2 adds r3, r0, #0 adds r3, #0x20 adds r3, r3, r2 str r1, [r3] ldrb r1, [r0, #0xe] adds r1, #1 strb r1, [r0, #0xe] bx lr .align 2, 0 thumb_func_start sub_080587AC sub_080587AC: @ 0x080587AC push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080587C2 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #3 bl sub_0805E3A0 _080587C2: movs r3, #0 movs r2, #0 adds r5, r4, #0 adds r5, #0x20 _080587CA: lsls r0, r2, #2 adds r1, r5, r0 ldr r0, [r1] cmp r0, #0 beq _080587E0 ldr r0, [r0, #4] cmp r0, #0 bne _080587DE str r0, [r1] b _080587E0 _080587DE: movs r3, #1 _080587E0: adds r0, r2, #1 lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #7 bls _080587CA cmp r3, #0 bne _080587FE ldr r1, [r4, #0x14] ldrb r0, [r1, #0xe] cmp r0, #0 beq _080587FA subs r0, #1 strb r0, [r1, #0xe] _080587FA: bl sub_0805E780 _080587FE: pop {r4, r5, pc} thumb_func_start sub_08058800 sub_08058800: @ 0x08058800 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r5, r1, #0 ldr r6, _08058830 @ =gUnk_03003DB0 ldr r3, [r6, #4] cmp r3, r6 beq _0805884A ldr r0, _08058834 @ =0x0000FFFF mov ip, r0 ldr r7, _08058838 @ =0x00000B09 _08058814: ldrh r1, [r3, #8] mov r0, ip ands r0, r1 cmp r0, r7 bne _08058844 movs r2, #0 adds r1, r3, #0 adds r1, #0x20 _08058824: ldr r0, [r1] cmp r4, r0 bne _0805883C str r5, [r1] b _0805884A .align 2, 0 _08058830: .4byte gUnk_03003DB0 _08058834: .4byte 0x0000FFFF _08058838: .4byte 0x00000B09 _0805883C: adds r1, #4 adds r2, #1 cmp r2, #7 bls _08058824 _08058844: ldr r3, [r3, #4] cmp r3, r6 bne _08058814 _0805884A: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0805884C sub_0805884C: @ 0x0805884C push {r4, lr} adds r4, r0, #0 ldr r1, _08058880 @ =gUnk_0810821C ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_08058BC8 ldr r0, _08058884 @ =gUnk_03003DE4 ldrb r1, [r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 ldr r1, _08058888 @ =gUnk_02017AA0 adds r0, r0, r1 ldr r1, _0805888C @ =0x04000020 ldr r2, _08058890 @ =0xA2600008 bl sub_0805622C pop {r4, pc} .align 2, 0 _08058880: .4byte gUnk_0810821C _08058884: .4byte gUnk_03003DE4 _08058888: .4byte gUnk_02017AA0 _0805888C: .4byte 0x04000020 _08058890: .4byte 0xA2600008 thumb_func_start sub_08058894 sub_08058894: @ 0x08058894 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldr r0, _080588C4 @ =0x00001234 str r0, [r4, #0x28] movs r0, #0x15 movs r1, #2 bl sub_0807CC60 rsbs r1, r0, #0 orrs r1, r0 lsrs r1, r1, #0x1f strb r1, [r4, #0xe] adds r0, r4, #0 bl sub_08058CB0 ldr r1, _080588C8 @ =sub_08058D34 adds r0, r4, #0 movs r2, #0 bl sub_08052D74 pop {r4, pc} .align 2, 0 _080588C4: .4byte 0x00001234 _080588C8: .4byte sub_08058D34 thumb_func_start sub_080588CC sub_080588CC: @ 0x080588CC push {r4, lr} adds r4, r0, #0 bl sub_08058CFC adds r0, r4, #0 bl sub_08058A04 ldr r0, _080588E8 @ =gUnk_030010A0 ldrb r0, [r0, #8] cmp r0, #0 beq _080588EC movs r0, #2 strb r0, [r4, #0xc] b _080588F2 .align 2, 0 _080588E8: .4byte gUnk_030010A0 _080588EC: adds r0, r4, #0 bl sub_080588F8 _080588F2: pop {r4, pc} thumb_func_start nullsub_108 nullsub_108: @ 0x080588F4 bx lr .align 2, 0 thumb_func_start sub_080588F8 sub_080588F8: @ 0x080588F8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] cmp r0, #0 bne _08058952 movs r0, #0x26 ldrsh r2, [r4, r0] ldr r0, [r4, #0x28] subs r1, r0, r2 cmp r1, #0 blt _08058914 cmp r1, #8 bhi _0805891A b _08058968 _08058914: subs r0, r2, r0 cmp r0, #8 bls _08058968 _0805891A: ldr r0, _08058934 @ =0x00001234 str r0, [r4, #0x28] movs r2, #0x26 ldrsh r1, [r4, r2] ldr r0, _08058938 @ =0x0000FFFE ands r1, r0 cmp r1, #0xa0 beq _08058940 cmp r1, #0xa0 bgt _0805893C cmp r1, #0x48 beq _08058940 b _08058968 .align 2, 0 _08058934: .4byte 0x00001234 _08058938: .4byte 0x0000FFFE _0805893C: cmp r1, #0xf0 bne _08058968 _08058940: movs r3, #0x26 ldrsh r0, [r4, r3] str r0, [r4, #0x28] movs r0, #0x2d strb r0, [r4, #0xf] movs r0, #0x8c bl sub_080A3268 b _08058968 _08058952: subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x29 bls _08058964 ldr r0, [r4, #0x28] subs r0, #2 b _08058966 _08058964: ldr r0, [r4, #0x28] _08058966: strh r0, [r4, #0x26] _08058968: ldrb r0, [r4, #0xe] cmp r0, #0 beq _080589DE ldr r0, _080589A4 @ =gUnk_03001160 movs r2, #0x32 ldrsh r1, [r0, r2] ldr r0, _080589A8 @ =gUnk_03000BF0 ldrh r0, [r0, #8] subs r2, r1, r0 adds r1, r2, #0 subs r1, #0x50 cmp r1, #0 bge _08058986 movs r1, #0x50 subs r1, r1, r2 _08058986: lsrs r1, r1, #3 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #0xc movs r3, #0x80 lsls r3, r3, #7 adds r1, r0, r3 ldrb r0, [r4, #0xf] cmp r0, #0 bne _080589DE cmp r2, #0x48 bgt _080589AC ldr r0, [r4, #0x24] subs r0, r0, r1 b _080589B4 .align 2, 0 _080589A4: .4byte gUnk_03001160 _080589A8: .4byte gUnk_03000BF0 _080589AC: cmp r2, #0x57 ble _080589B6 ldr r0, [r4, #0x24] adds r0, r0, r1 _080589B4: str r0, [r4, #0x24] _080589B6: ldr r2, [r4, #0x2c] ldr r0, [r4, #0x24] subs r1, r2, r0 adds r3, r0, #0 cmp r1, #0 blt _080589CC movs r0, #0x80 lsls r0, r0, #0xd cmp r1, r0 bhi _080589D6 b _080589DE _080589CC: subs r1, r3, r2 movs r0, #0x80 lsls r0, r0, #0xd cmp r1, r0 bls _080589DE _080589D6: str r3, [r4, #0x2c] movs r0, #0x8b bl sub_080A3268 _080589DE: movs r0, #0x26 ldrsh r1, [r4, r0] str r1, [r4, #0x20] cmp r1, #0 bge _080589F0 ldr r0, _080589EC @ =0x000001FF b _080589F8 .align 2, 0 _080589EC: .4byte 0x000001FF _080589F0: ldr r0, _08058A00 @ =0x000001FF cmp r1, r0 ble _080589FC movs r0, #0 _080589F8: str r0, [r4, #0x20] strh r0, [r4, #0x26] _080589FC: pop {r4, pc} .align 2, 0 _08058A00: .4byte 0x000001FF thumb_func_start sub_08058A04 sub_08058A04: @ 0x08058A04 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 ldr r6, _08058A68 @ =gUnk_03001160 movs r0, #0x2e ldrsh r1, [r6, r0] ldr r7, _08058A6C @ =gUnk_03000BF0 ldrh r0, [r7, #6] subs r1, r1, r0 mov r8, r1 movs r0, #0x32 ldrsh r1, [r6, r0] ldrh r0, [r7, #8] subs r5, r1, r0 ldr r0, [r4, #0x20] ldr r1, _08058A70 @ =0xFFFFFEE8 adds r0, r0, r1 cmp r0, #0xc bhi _08058A78 movs r0, #0x17 bl sub_0807CC30 cmp r0, #0 beq _08058A78 mov r0, r8 subs r0, #0x6d cmp r0, #0x16 bhi _08058A78 adds r0, r5, #0 subs r0, #0x45 cmp r0, #0x16 bhi _08058A78 movs r0, #0x36 ldrsh r2, [r6, r0] cmp r2, #0 bne _08058A78 ldr r0, _08058A74 @ =gUnk_03003F80 movs r1, #3 strb r1, [r0, #0xc] adds r0, #0x38 strb r2, [r0] ldrh r0, [r7, #6] adds r0, #0x78 strh r0, [r6, #0x2e] ldrh r0, [r7, #8] adds r0, #0x50 strh r0, [r6, #0x32] b _08058AFC .align 2, 0 _08058A68: .4byte gUnk_03001160 _08058A6C: .4byte gUnk_03000BF0 _08058A70: .4byte 0xFFFFFEE8 _08058A74: .4byte gUnk_03003F80 _08058A78: mov r1, r8 cmp r1, #0x77 bgt _08058AC0 cmp r5, #0x4f bgt _08058AA0 ldr r3, _08058A9C @ =gUnk_08108228 adds r0, r4, #0 movs r1, #0x88 movs r2, #0xb0 bl sub_08058B08 cmp r0, #0 beq _08058AFC adds r0, r4, #0 movs r1, #0 bl sub_08058B5C b _08058AFC .align 2, 0 _08058A9C: .4byte gUnk_08108228 _08058AA0: ldr r3, _08058ABC @ =gUnk_08108258 adds r0, r4, #0 movs r1, #0x38 movs r2, #0x60 bl sub_08058B08 cmp r0, #0 beq _08058AFC adds r0, r4, #0 movs r1, #1 bl sub_08058B5C b _08058AFC .align 2, 0 _08058ABC: .4byte gUnk_08108258 _08058AC0: cmp r5, #0x4f bgt _08058AE4 movs r2, #0x84 lsls r2, r2, #1 ldr r3, _08058AE0 @ =gUnk_08108288 adds r0, r4, #0 movs r1, #0xe0 bl sub_08058B08 cmp r0, #0 beq _08058AFC adds r0, r4, #0 movs r1, #2 bl sub_08058B5C b _08058AFC .align 2, 0 _08058AE0: .4byte gUnk_08108288 _08058AE4: ldr r3, _08058B04 @ =gUnk_081082B8 adds r0, r4, #0 movs r1, #0x90 movs r2, #0xb8 bl sub_08058B08 cmp r0, #0 beq _08058AFC adds r0, r4, #0 movs r1, #3 bl sub_08058B5C _08058AFC: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08058B04: .4byte gUnk_081082B8 thumb_func_start sub_08058B08 sub_08058B08: @ 0x08058B08 push {r4, r5, lr} adds r4, r3, #0 ldr r0, [r0, #0x20] cmp r0, r1 blo _08058B16 cmp r0, r2 bls _08058B1A _08058B16: movs r0, #0 b _08058B50 _08058B1A: subs r0, r0, r1 lsrs r0, r0, #3 lsls r0, r0, #3 adds r4, r4, r0 ldr r3, _08058B54 @ =gUnk_03001160 movs r0, #0x2e ldrsh r2, [r3, r0] ldr r1, _08058B58 @ =gUnk_03000BF0 ldrh r0, [r1, #6] subs r2, r2, r0 ldrh r0, [r4] subs r2, r2, r0 movs r5, #0x32 ldrsh r0, [r3, r5] ldrh r1, [r1, #8] subs r0, r0, r1 ldrh r1, [r4, #2] subs r0, r0, r1 movs r1, #0 ldrh r3, [r4, #4] cmp r2, r3 bhs _08058B4E ldrh r4, [r4, #6] cmp r0, r4 bhs _08058B4E movs r1, #1 _08058B4E: adds r0, r1, #0 _08058B50: pop {r4, r5, pc} .align 2, 0 _08058B54: .4byte gUnk_03001160 _08058B58: .4byte gUnk_03000BF0 thumb_func_start sub_08058B5C sub_08058B5C: @ 0x08058B5C push {r4, r5, lr} ldr r3, _08058BB4 @ =gUnk_030010A0 movs r0, #0 movs r4, #1 strb r4, [r3, #8] strb r0, [r3, #9] movs r5, #4 movs r0, #4 strb r0, [r3, #0xf] ldr r0, _08058BB8 @ =gUnk_03000BF0 ldrb r0, [r0, #4] strb r0, [r3, #0xc] movs r0, #6 strb r0, [r3, #0xd] adds r2, r1, #0 ands r2, r4 rsbs r0, r2, #0 orrs r0, r2 asrs r0, r0, #0x1f ands r0, r5 strb r0, [r3, #0xe] ldr r4, _08058BBC @ =gUnk_081082E8 lsls r2, r1, #1 adds r2, r2, r1 lsls r0, r2, #1 adds r0, r0, r4 ldrh r0, [r0] strh r0, [r3, #0x10] adds r0, r2, #1 lsls r0, r0, #1 adds r0, r0, r4 ldrh r0, [r0] strh r0, [r3, #0x12] ldr r1, _08058BC0 @ =gUnk_02002A40 adds r2, #2 lsls r2, r2, #1 adds r2, r2, r4 ldrh r0, [r2] strb r0, [r1, #7] ldr r0, _08058BC4 @ =0x00000121 bl sub_080A3268 pop {r4, r5, pc} .align 2, 0 _08058BB4: .4byte gUnk_030010A0 _08058BB8: .4byte gUnk_03000BF0 _08058BBC: .4byte gUnk_081082E8 _08058BC0: .4byte gUnk_02002A40 _08058BC4: .4byte 0x00000121 thumb_func_start sub_08058BC8 sub_08058BC8: @ 0x08058BC8 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #0x14 mov sb, r0 ldr r0, _08058C9C @ =gUnk_03003DE4 ldrb r1, [r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 ldr r1, _08058CA0 @ =gUnk_02017AA0 adds r4, r0, r1 movs r0, #0x80 lsls r0, r0, #9 str r0, [sp] mov r1, sp movs r2, #0 movs r0, #0x78 strh r0, [r1, #8] movs r0, #0x80 strh r0, [r1, #0xa] mov r0, sp strh r2, [r0, #0x10] movs r1, #0x80 lsls r1, r1, #1 strh r1, [r0, #0xe] strh r1, [r0, #0xc] movs r5, #0 mov r6, sp ldr r0, _08058CA4 @ =gUnk_080C9160 mov r8, r0 adds r7, r1, #0 _08058C0A: lsls r0, r5, #7 movs r1, #0xa0 bl __divsi3 movs r1, #0xff ands r0, r1 lsls r1, r0, #1 add r1, r8 movs r3, #0 ldrsh r2, [r1, r3] lsls r1, r2, #1 adds r1, r1, r2 asrs r1, r1, #2 adds r1, r1, r7 strh r1, [r6, #0xc] lsls r0, r0, #2 add r0, r8 movs r1, #0 ldrsh r0, [r0, r1] asrs r0, r0, #4 subs r0, r7, r0 strh r0, [r6, #0xe] mov r3, sb ldr r0, [r3, #0x20] adds r0, r0, r5 lsls r0, r0, #8 str r0, [sp, #4] mov r0, sp adds r1, r4, #0 movs r2, #1 bl BgAffineSet adds r4, #0x10 adds r5, #1 cmp r5, #0x9f bls _08058C0A ldr r0, _08058C9C @ =gUnk_03003DE4 ldrb r1, [r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 ldr r1, _08058CA8 @ =gUnk_02017BA0 adds r4, r0, r1 ldr r2, _08058CAC @ =gUnk_03000F50 ldrh r0, [r4] strh r0, [r2, #0x38] ldrh r0, [r4, #2] strh r0, [r2, #0x3a] ldrh r0, [r4, #4] strh r0, [r2, #0x3c] ldrh r0, [r4, #6] strh r0, [r2, #0x3e] ldrh r1, [r4, #8] adds r0, r2, #0 adds r0, #0x40 strh r1, [r0] ldrh r0, [r4, #0xa] adds r1, r2, #0 adds r1, #0x42 strh r0, [r1] ldrh r1, [r4, #0xc] adds r0, r2, #0 adds r0, #0x44 strh r1, [r0] ldrh r1, [r4, #0xe] adds r0, #2 strh r1, [r0] add sp, #0x14 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _08058C9C: .4byte gUnk_03003DE4 _08058CA0: .4byte gUnk_02017AA0 _08058CA4: .4byte gUnk_080C9160 _08058CA8: .4byte gUnk_02017BA0 _08058CAC: .4byte gUnk_03000F50 thumb_func_start sub_08058CB0 sub_08058CB0: @ 0x08058CB0 push {r4, lr} adds r4, r0, #0 ldr r2, _08058CD8 @ =gUnk_03001160 movs r0, #0x2e ldrsh r1, [r2, r0] ldr r3, _08058CDC @ =gUnk_03000BF0 ldrh r0, [r3, #6] subs r1, r1, r0 movs r0, #0x32 ldrsh r2, [r2, r0] ldrh r0, [r3, #8] subs r2, r2, r0 cmp r1, #0x77 bhi _08058CE0 movs r1, #1 cmp r2, #0x4f bhi _08058CE8 movs r1, #0 b _08058CE8 .align 2, 0 _08058CD8: .4byte gUnk_03001160 _08058CDC: .4byte gUnk_03000BF0 _08058CE0: movs r1, #3 cmp r2, #0x4f bhi _08058CE8 movs r1, #2 _08058CE8: ldr r0, _08058CF8 @ =gUnk_08108300 lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] str r0, [r4, #0x20] strh r0, [r4, #0x26] pop {r4, pc} .align 2, 0 _08058CF8: .4byte gUnk_08108300 thumb_func_start sub_08058CFC sub_08058CFC: @ 0x08058CFC push {r4, r5, lr} ldr r5, _08058D2C @ =gUnk_03001160 movs r1, #0x32 ldrsh r0, [r5, r1] ldr r1, _08058D30 @ =gUnk_03000BF0 movs r2, #0xc ldrsh r1, [r1, r2] subs r4, r0, r1 cmp r4, #0x4b bhi _08058D1A adds r0, r5, #0 movs r1, #0xc0 movs r2, #0x10 bl sub_080044AE _08058D1A: cmp r4, #0x54 bls _08058D28 adds r0, r5, #0 movs r1, #0xc0 movs r2, #0 bl sub_080044AE _08058D28: pop {r4, r5, pc} .align 2, 0 _08058D2C: .4byte gUnk_03001160 _08058D30: .4byte gUnk_03000BF0 thumb_func_start sub_08058D34 sub_08058D34: @ 0x08058D34 push {r4, lr} movs r0, #0x28 bl sub_0801D714 ldr r0, _08058DAC @ =gUnk_02017700 movs r2, #0x90 lsls r2, r2, #2 adds r1, r0, r2 movs r2, #0x20 bl sub_0801D66C ldr r2, _08058DB0 @ =gUnk_0200B644 ldr r0, [r2] movs r1, #0x80 lsls r1, r1, #0xe orrs r0, r1 str r0, [r2] movs r0, #0x16 bl sub_0801D7EC ldr r1, _08058DB4 @ =gUnk_03000F50 ldrh r0, [r1] movs r3, #0 movs r2, #1 movs r4, #0 orrs r0, r2 strh r0, [r1] ldr r0, _08058DB8 @ =0x0000BC82 strh r0, [r1, #0x20] ldr r0, _08058DBC @ =0x00005E86 strh r0, [r1, #0x14] strh r3, [r1, #0x16] strh r3, [r1, #0x18] adds r2, r1, #0 adds r2, #0x66 ldr r0, _08058DC0 @ =0x00003456 strh r0, [r2] adds r1, #0x68 ldr r0, _08058DC4 @ =0x00000909 strh r0, [r1] ldr r0, _08058DC8 @ =gUnk_02033A90 movs r2, #0x86 lsls r2, r2, #4 adds r1, r0, r2 adds r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] ldr r0, _08058DCC @ =gUnk_02000070 strb r4, [r0] movs r0, #0x17 bl sub_0807CC30 cmp r0, #0 beq _08058DA8 movs r0, #0x4a bl sub_0801D7EC _08058DA8: pop {r4, pc} .align 2, 0 _08058DAC: .4byte gUnk_02017700 _08058DB0: .4byte gUnk_0200B644 _08058DB4: .4byte gUnk_03000F50 _08058DB8: .4byte 0x0000BC82 _08058DBC: .4byte 0x00005E86 _08058DC0: .4byte 0x00003456 _08058DC4: .4byte 0x00000909 _08058DC8: .4byte gUnk_02033A90 _08058DCC: .4byte gUnk_02000070 thumb_func_start sub_08058DD0 sub_08058DD0: @ 0x08058DD0 push {lr} ldr r2, _08058DE4 @ =gUnk_08108308 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08058DE4: .4byte gUnk_08108308 thumb_func_start sub_08058DE8 sub_08058DE8: @ 0x08058DE8 push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _08058DFC bl sub_0805E780 b _08058E14 _08058DFC: movs r0, #1 strb r0, [r4, #0xc] ldrh r0, [r4, #0x3a] bl sub_0808094C ldrh r1, [r4, #0x38] lsls r1, r1, #1 adds r1, #4 adds r0, r0, r1 str r0, [r4, #0x30] ldrh r0, [r0] strh r0, [r4, #0x28] _08058E14: pop {r4, pc} .align 2, 0 thumb_func_start sub_08058E18 sub_08058E18: @ 0x08058E18 push {lr} adds r2, r0, #0 ldr r1, [r2, #0x30] ldrh r0, [r2, #0x28] ldrh r1, [r1] cmp r0, r1 beq _08058E30 ldrb r0, [r2, #0xc] adds r0, #1 strb r0, [r2, #0xc] movs r0, #0xf strb r0, [r2, #0xe] _08058E30: pop {pc} .align 2, 0 thumb_func_start sub_08058E34 sub_08058E34: @ 0x08058E34 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08058E5E ldrh r0, [r4, #0x3e] bl sub_0807CCC8 ldrb r0, [r4, #0xa] cmp r0, #0 beq _08058E58 bl sub_0804B128 bl sub_0804ADDC _08058E58: adds r0, r4, #0 bl sub_0805E900 _08058E5E: pop {r4, pc} thumb_func_start sub_08058E60 sub_08058E60: @ 0x08058E60 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08058E80 movs r0, #1 strb r0, [r4, #0xc] ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _08058E80 adds r0, r4, #0 bl sub_0805E900 b _08058EC8 _08058E80: ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _08058EC8 ldrb r0, [r4, #0xb] cmp r0, #0 beq _08058E9E movs r0, #0 strb r0, [r4, #0xb] movs r0, #0xff bl sub_08078A90 bl sub_08078B48 _08058E9E: ldrh r1, [r4, #0x3a] movs r2, #0x3a ldrsh r0, [r4, r2] cmp r0, #0 bne _08058EC4 movs r1, #0x38 ldrsh r0, [r4, r1] cmp r0, #0 beq _08058EB4 bl sub_080A3268 _08058EB4: ldrb r0, [r4, #0xa] bl sub_0804B128 bl sub_0804ADDC bl sub_0805E780 b _08058EC8 _08058EC4: subs r0, r1, #1 strh r0, [r4, #0x3a] _08058EC8: pop {r4, pc} .align 2, 0 thumb_func_start sub_08058ECC sub_08058ECC: @ 0x08058ECC push {lr} ldr r2, _08058EE0 @ =gUnk_08108314 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08058EE0: .4byte gUnk_08108314 thumb_func_start sub_08058EE4 sub_08058EE4: @ 0x08058EE4 push {r4, r5, r6, lr} adds r6, r0, #0 ldrb r0, [r6, #0xc] cmp r0, #0 bne _08058EF2 movs r0, #1 strb r0, [r6, #0xc] _08058EF2: ldrb r0, [r6, #0xb] bl sub_0807CC3C cmp r0, #0 beq _08058F40 movs r5, #0x94 lsls r5, r5, #1 ldrb r2, [r6, #0xb] adds r2, #1 adds r0, r5, #0 movs r1, #0x68 bl sub_08058F44 movs r4, #0xac lsls r4, r4, #1 ldrb r2, [r6, #0xb] adds r2, #2 adds r0, r4, #0 movs r1, #0x68 bl sub_08058F44 ldrb r2, [r6, #0xb] adds r2, #3 adds r0, r5, #0 movs r1, #0x98 bl sub_08058F44 ldrb r2, [r6, #0xb] adds r2, #4 adds r0, r4, #0 movs r1, #0x98 bl sub_08058F44 movs r0, #0x92 lsls r0, r0, #1 bl sub_080A3268 bl sub_0805E780 _08058F40: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08058F44 sub_08058F44: @ 0x08058F44 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 adds r0, r2, #0 bl sub_0807CC3C cmp r0, #0 bne _08058F80 adds r0, r4, #0 adds r1, r5, #0 movs r2, #1 bl sub_080002A8 cmp r0, #0x61 bne _08058F80 lsrs r1, r4, #4 movs r2, #0x3f ands r1, r2 lsrs r0, r5, #4 ands r0, r2 lsls r0, r0, #6 orrs r1, r0 movs r0, #0x26 movs r2, #1 bl sub_0807B314 adds r0, r4, #0 adds r1, r5, #0 bl sub_08058F84 _08058F80: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08058F84 sub_08058F84: @ 0x08058F84 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 movs r0, #0x21 movs r1, #0 movs r2, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _08058FA8 ldr r0, _08058FAC @ =gUnk_03000BF0 ldrh r1, [r0, #6] adds r1, r1, r4 strh r1, [r2, #0x2e] ldrh r0, [r0, #8] adds r0, r0, r5 strh r0, [r2, #0x32] _08058FA8: pop {r4, r5, pc} .align 2, 0 _08058FAC: .4byte gUnk_03000BF0 thumb_func_start sub_08058FB0 sub_08058FB0: @ 0x08058FB0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _08058FF6 cmp r0, #1 bgt _08058FC4 cmp r0, #0 beq _08058FCA b _08059050 _08058FC4: cmp r0, #2 beq _08059018 b _08059050 _08058FCA: movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xa] cmp r0, #1 bne _08058FDC movs r0, #7 strb r0, [r4, #0xd] movs r0, #6 b _08058FE2 _08058FDC: movs r0, #8 strb r0, [r4, #0xd] movs r0, #2 _08058FE2: strb r0, [r4, #0xf] ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _08059060 adds r0, r4, #0 bl sub_0805E900 b _08059060 _08058FF6: ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _08059060 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0xf0 bl sub_0805E4E0 adds r0, r4, #0 bl sub_08059064 b _08059060 _08059018: ldrb r0, [r4, #0xe] cmp r0, #0x5a bne _08059028 movs r0, #2 bl sub_08078A90 bl sub_08077B20 _08059028: ldrb r2, [r4, #0xe] cmp r2, #0x3c bne _08059034 ldr r1, _0805904C @ =gUnk_03001160 ldrb r0, [r4, #0xf] strb r0, [r1, #0x14] _08059034: subs r0, r2, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08059060 movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0xd] movs r0, #5 bl sub_080A7138 b _08059060 .align 2, 0 _0805904C: .4byte gUnk_03001160 _08059050: ldrh r0, [r4, #0x3e] bl sub_0807CCC8 movs r0, #1 bl sub_08078A90 bl sub_0805E780 _08059060: pop {r4, pc} .align 2, 0 thumb_func_start sub_08059064 sub_08059064: @ 0x08059064 push {r4, lr} adds r4, r0, #0 movs r0, #0 movs r1, #0x53 movs r2, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _0805908E movs r0, #2 strb r0, [r2, #0xe] ldr r1, _08059090 @ =gUnk_03000BF0 ldrh r0, [r1, #6] ldrh r3, [r4, #0x38] adds r0, r0, r3 strh r0, [r2, #0x2e] ldrh r0, [r1, #8] ldrh r4, [r4, #0x3a] adds r0, r0, r4 strh r0, [r2, #0x32] _0805908E: pop {r4, pc} .align 2, 0 _08059090: .4byte gUnk_03000BF0 thumb_func_start sub_08059094 sub_08059094: @ 0x08059094 push {r4, r5, lr} adds r4, r0, #0 movs r5, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080590B6 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x60 bl sub_0807CBD0 cmp r0, #0 bne _080590CC movs r0, #0x5f bl sub_0807CCB4 b _080590C8 _080590B6: movs r0, #0x60 bl sub_0807CBD0 cmp r0, #0 beq _080590C8 movs r0, #0x5f bl sub_0807CD34 movs r5, #1 _080590C8: cmp r5, #0 beq _080590D8 _080590CC: ldr r0, _080590DC @ =gUnk_080F4B88 bl sub_0804ADDC adds r0, r4, #0 bl sub_0805E900 _080590D8: pop {r4, r5, pc} .align 2, 0 _080590DC: .4byte gUnk_080F4B88 thumb_func_start sub_080590E0 sub_080590E0: @ 0x080590E0 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xc] cmp r0, #0 bne _080590F6 movs r0, #1 strb r0, [r1, #0xc] adds r0, r1, #0 movs r1, #6 bl sub_0805E3A0 _080590F6: movs r0, #0x6c bl sub_0807CBD0 cmp r0, #0 beq _0805911A movs r0, #0x4b bl sub_0807CBD0 cmp r0, #0 beq _08059112 movs r0, #0x4a bl sub_0807CCB4 b _08059120 _08059112: movs r0, #0x4a bl sub_0807CD34 b _08059120 _0805911A: movs r0, #0x4a bl sub_0807CD34 _08059120: pop {pc} .align 2, 0 thumb_func_start sub_08059124 sub_08059124: @ 0x08059124 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 beq _08059174 cmp r0, #1 beq _080591AC ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080591C8 movs r1, #0x38 ldrsh r0, [r4, r1] movs r2, #0x3a ldrsh r1, [r4, r2] ldrb r2, [r4, #0xb] bl sub_080A29C8 ldrh r0, [r4, #0x38] lsls r0, r0, #0x10 asrs r0, r0, #0x14 movs r2, #0x3f ands r0, r2 ldrh r1, [r4, #0x3a] lsls r1, r1, #0x10 asrs r1, r1, #0x14 ands r1, r2 lsls r1, r1, #6 orrs r0, r1 ldrb r1, [r4, #0xb] bl sub_0807BA8C movs r0, #0xcd bl sub_080A3268 bl sub_0805E780 b _080591C8 _08059174: ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _08059182 bl sub_0805E780 _08059182: movs r0, #1 strb r0, [r4, #0xc] ldr r0, _080591A8 @ =0x00000365 ldrh r1, [r4, #0x38] lsls r1, r1, #0x10 asrs r1, r1, #0x14 movs r3, #0x3f ands r1, r3 ldrh r2, [r4, #0x3a] lsls r2, r2, #0x10 asrs r2, r2, #0x14 ands r2, r3 lsls r2, r2, #6 orrs r1, r2 ldrb r2, [r4, #0xb] bl sub_0807B314 b _080591C8 .align 2, 0 _080591A8: .4byte 0x00000365 _080591AC: ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _080591C8 adds r0, r4, #0 movs r1, #0x4b bl sub_0805E4E0 movs r0, #0x2d strb r0, [r4, #0xe] ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] _080591C8: pop {r4, pc} .align 2, 0 thumb_func_start sub_080591CC sub_080591CC: @ 0x080591CC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080591F4 movs r0, #1 strb r0, [r4, #0xc] ldrh r0, [r4, #0x3e] bl sub_0807CBE4 strb r0, [r4, #0xb] lsls r0, r0, #0x18 cmp r0, #0 beq _08059214 ldr r1, _080591F0 @ =gUnk_02034350 ldrh r0, [r4, #0x3a] b _08059218 .align 2, 0 _080591F0: .4byte gUnk_02034350 _080591F4: ldrh r0, [r4, #0x3e] bl sub_0807CBE4 adds r1, r0, #0 ldrb r0, [r4, #0xb] cmp r0, r1 beq _0805921A strb r1, [r4, #0xb] cmp r1, #0 beq _08059214 ldr r1, _08059210 @ =gUnk_02034350 ldrh r0, [r4, #0x3a] b _08059218 .align 2, 0 _08059210: .4byte gUnk_02034350 _08059214: ldr r1, _0805921C @ =gUnk_02034350 ldrh r0, [r4, #0x38] _08059218: strh r0, [r1, #0xc] _0805921A: pop {r4, pc} .align 2, 0 _0805921C: .4byte gUnk_02034350 thumb_func_start sub_08059220 sub_08059220: @ 0x08059220 push {r4, r5, r6, r7, lr} adds r5, r0, #0 ldr r2, _08059268 @ =gUnk_02034350 movs r0, #0 strh r0, [r2, #0xc] ldr r4, _0805926C @ =gUnk_08108354 ldrh r0, [r4] ldr r1, _08059270 @ =0x0000FFFF cmp r0, r1 beq _08059254 adds r7, r2, #0 adds r6, r1, #0 _08059238: ldrh r0, [r4] ldrh r1, [r4, #2] ldrh r2, [r4, #4] ldrh r3, [r4, #6] bl sub_0800293E cmp r0, #0 beq _0805924C ldrh r0, [r4, #8] strh r0, [r7, #0xc] _0805924C: adds r4, #0xa ldrh r0, [r4] cmp r0, r6 bne _08059238 _08059254: ldrb r0, [r5, #0xc] cmp r0, #0 bne _08059266 movs r0, #1 strb r0, [r5, #0xc] ldr r1, _08059274 @ =gUnk_02033A90 ldr r0, _08059268 @ =gUnk_02034350 ldrh r0, [r0, #0xc] strh r0, [r1, #0xa] _08059266: pop {r4, r5, r6, r7, pc} .align 2, 0 _08059268: .4byte gUnk_02034350 _0805926C: .4byte gUnk_08108354 _08059270: .4byte 0x0000FFFF _08059274: .4byte gUnk_02033A90 thumb_func_start sub_08059278 sub_08059278: @ 0x08059278 push {lr} movs r0, #9 movs r1, #0xf movs r2, #6 bl sub_0805EB00 cmp r0, #0 beq _0805928C bl sub_08058ECC _0805928C: pop {pc} .align 2, 0 thumb_func_start sub_08059290 sub_08059290: @ 0x08059290 movs r1, #1 strb r1, [r0, #0xc] ldr r1, _0805929C @ =gUnk_03000BF0 ldr r0, _080592A0 @ =gUnk_03001160 str r0, [r1, #0x30] bx lr .align 2, 0 _0805929C: .4byte gUnk_03000BF0 _080592A0: .4byte gUnk_03001160 thumb_func_start sub_080592A4 sub_080592A4: @ 0x080592A4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080592C8 movs r0, #1 strb r0, [r4, #0xc] ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _080592EA adds r0, r4, #0 bl sub_080592EC bl sub_0805E780 b _080592EA _080592C8: ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _080592EA adds r0, r4, #0 bl sub_080592EC adds r0, r4, #0 bl sub_0805930C movs r0, #0xb7 lsls r0, r0, #1 bl sub_080A3268 bl sub_0805E780 _080592EA: pop {r4, pc} thumb_func_start sub_080592EC sub_080592EC: @ 0x080592EC push {lr} adds r1, r0, #0 ldrh r0, [r1, #0x38] lsls r0, r0, #0x10 asrs r0, r0, #0x14 movs r2, #0x3f ands r0, r2 ldrh r1, [r1, #0x3a] lsls r1, r1, #0x10 asrs r1, r1, #0x14 ands r1, r2 lsls r1, r1, #6 orrs r0, r1 bl sub_08059340 pop {pc} thumb_func_start sub_0805930C sub_0805930C: @ 0x0805930C push {r4, lr} adds r4, r0, #0 movs r0, #0xf movs r1, #0x43 movs r2, #0x40 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _0805933A ldr r1, _0805933C @ =gUnk_03000BF0 ldrh r0, [r1, #6] ldrh r3, [r4, #0x38] adds r0, r0, r3 strh r0, [r2, #0x2e] ldrh r0, [r1, #8] ldrh r4, [r4, #0x3a] adds r0, r0, r4 strh r0, [r2, #0x32] adds r1, r2, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] _0805933A: pop {r4, pc} .align 2, 0 _0805933C: .4byte gUnk_03000BF0 thumb_func_start sub_08059340 sub_08059340: @ 0x08059340 push {r4, lr} adds r4, r0, #0 movs r0, #0x1d adds r1, r4, #0 movs r2, #1 bl sub_0807B314 movs r0, #0 adds r1, r4, #0 movs r2, #2 bl sub_0807B314 subs r4, #0x40 movs r0, #0 adds r1, r4, #0 movs r2, #2 bl sub_0807B314 pop {r4, pc} .align 2, 0 thumb_func_start sub_08059368 sub_08059368: @ 0x08059368 push {lr} adds r2, r0, #0 movs r0, #1 strb r0, [r2, #0xc] ldr r1, _08059388 @ =gUnk_02022780 ldrh r0, [r2, #0x3c] ldrh r1, [r1, #0x28] cmp r0, r1 bne _08059384 ldrh r0, [r2, #0x3e] bl sub_0807CCC8 bl sub_0805E780 _08059384: pop {pc} .align 2, 0 _08059388: .4byte gUnk_02022780 thumb_func_start sub_0805938C sub_0805938C: @ 0x0805938C push {r4, lr} adds r4, r0, #0 bl sub_080593CC cmp r0, #0 beq _080593C8 ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #7 bls _080593CA movs r1, #0x38 ldrsh r0, [r4, r1] ldr r2, _080593C4 @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r0, r0, r1 movs r3, #0x3a ldrsh r1, [r4, r3] ldrh r2, [r2, #8] subs r1, r1, r2 movs r2, #0xff movs r3, #0xa bl sub_080806BC b _080593CA .align 2, 0 _080593C4: .4byte gUnk_03000BF0 _080593C8: strb r0, [r4, #0xe] _080593CA: pop {r4, pc} thumb_func_start sub_080593CC sub_080593CC: @ 0x080593CC push {r4, lr} adds r3, r0, #0 ldr r2, _08059418 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08059420 adds r0, r2, #0 adds r0, #0x26 ldrb r0, [r0] cmp r0, #0 beq _08059420 ldr r4, _0805941C @ =gUnk_03001160 ldrb r0, [r4, #0x14] cmp r0, #0 bne _08059420 adds r0, r2, #0 adds r0, #0x90 ldrh r1, [r0] movs r0, #0xf0 lsls r0, r0, #4 ands r0, r1 movs r1, #0x80 lsls r1, r1, #3 cmp r0, r1 bne _08059420 movs r0, #0x38 ldrsh r1, [r3, r0] movs r0, #0x3a ldrsh r2, [r3, r0] adds r2, #0xc adds r0, r4, #0 movs r3, #6 bl sub_0806FCB8 b _08059422 .align 2, 0 _08059418: .4byte gUnk_03003F80 _0805941C: .4byte gUnk_03001160 _08059420: movs r0, #0 _08059422: pop {r4, pc} thumb_func_start sub_08059424 sub_08059424: @ 0x08059424 push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _08059436 bl sub_0805E780 _08059436: ldrh r0, [r4, #0x3c] bl sub_0807CBE4 cmp r0, #0 beq _08059476 movs r0, #0xf movs r1, #0x35 movs r2, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _08059476 adds r1, r2, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] ldr r1, _08059478 @ =gUnk_03000BF0 ldrh r0, [r1, #6] ldrh r3, [r4, #0x38] adds r0, r0, r3 strh r0, [r2, #0x2e] ldrh r0, [r1, #8] ldrh r4, [r4, #0x3a] adds r0, r0, r4 strh r0, [r2, #0x32] movs r0, #0xd8 lsls r0, r0, #1 bl sub_08004488 bl sub_0805E780 _08059476: pop {r4, pc} .align 2, 0 _08059478: .4byte gUnk_03000BF0 thumb_func_start sub_0805947C sub_0805947C: @ 0x0805947C push {lr} ldrh r0, [r0, #0x3e] bl sub_0807CBE4 cmp r0, #0 bne _080594CE movs r0, #3 bl sub_08078A90 ldr r1, _080594B0 @ =gUnk_03000BF0 ldrh r0, [r1] cmp r0, #0 bne _080594D2 ldr r0, _080594B4 @ =gUnk_02034350 ldrb r0, [r0] cmp r0, #0 beq _080594BC ldr r0, _080594B8 @ =gUnk_08108380 ldrb r1, [r1, #0x10] lsls r1, r1, #2 adds r1, r1, r0 ldr r0, [r1] bl sub_0807DB2C b _080594CE .align 2, 0 _080594B0: .4byte gUnk_03000BF0 _080594B4: .4byte gUnk_02034350 _080594B8: .4byte gUnk_08108380 _080594BC: ldr r1, _080594D4 @ =gUnk_08108380 ldr r0, _080594D8 @ =gUnk_03001160 ldrb r0, [r0, #0x14] lsrs r0, r0, #1 lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl sub_0807DB2C _080594CE: bl sub_0805E780 _080594D2: pop {pc} .align 2, 0 _080594D4: .4byte gUnk_08108380 _080594D8: .4byte gUnk_03001160 thumb_func_start sub_080594DC sub_080594DC: @ 0x080594DC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _080594F2 cmp r0, #1 bgt _0805951C cmp r0, #0 bne _0805951C movs r0, #1 strb r0, [r4, #0xc] _080594F2: movs r0, #6 bl sub_0807CA84 cmp r0, #0 beq _08059540 movs r0, #0x8c lsls r0, r0, #4 movs r1, #0x85 bl sub_0807CB10 cmp r0, #0 bne _08059540 movs r0, #2 strb r0, [r4, #0xc] ldr r0, _08059518 @ =0x00000B0F bl sub_080186C0 b _08059540 .align 2, 0 _08059518: .4byte 0x00000B0F _0805951C: ldr r0, _08059544 @ =gUnk_02033A90 adds r0, #0x28 ldrb r0, [r0] cmp r0, #0xff beq _0805952A bl sub_0805E780 _0805952A: movs r0, #0x8c lsls r0, r0, #4 movs r1, #0x85 bl sub_0807CB10 cmp r0, #0 beq _08059540 bl sub_0801855C bl sub_0805E780 _08059540: pop {r4, pc} .align 2, 0 _08059544: .4byte gUnk_02033A90 thumb_func_start sub_08059548 sub_08059548: @ 0x08059548 push {lr} movs r1, #6 bl sub_0805E3A0 ldr r0, _08059568 @ =gUnk_03001160 ldrb r0, [r0, #0xc] cmp r0, #0x16 bne _0805955C bl sub_0805E780 _0805955C: ldr r2, _0805956C @ =gUnk_03000FF0 ldrh r1, [r2] movs r0, #4 orrs r0, r1 strh r0, [r2] pop {pc} .align 2, 0 _08059568: .4byte gUnk_03001160 _0805956C: .4byte gUnk_03000FF0 thumb_func_start sub_08059570 sub_08059570: @ 0x08059570 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r5, [r4, #0xc] cmp r5, #0 bne _080595C8 movs r6, #1 strb r6, [r4, #0xc] adds r0, #0x21 strb r5, [r0] adds r0, #2 strb r5, [r0] bl sub_0805986C cmp r0, #0 beq _080595A8 adds r0, r4, #0 adds r0, #0x20 strb r6, [r0] adds r1, r4, #0 adds r1, #0x22 movs r0, #2 strb r0, [r1] ldr r0, _080595A4 @ =gUnk_0200B650 str r5, [r0] b _080595B8 .align 2, 0 _080595A4: .4byte gUnk_0200B650 _080595A8: adds r0, r4, #0 adds r0, #0x20 movs r1, #0x1f strb r1, [r0] adds r1, r4, #0 adds r1, #0x22 movs r0, #5 strb r0, [r1] _080595B8: ldr r0, _080595DC @ =gUnk_02034350 movs r1, #0xff strb r1, [r0, #0x10] ldr r1, _080595E0 @ =sub_080595E4 adds r0, r4, #0 movs r2, #0 bl sub_08052D74 _080595C8: adds r0, r4, #0 bl sub_08059608 adds r0, r4, #0 bl sub_08059690 adds r0, r4, #0 bl sub_080596E0 pop {r4, r5, r6, pc} .align 2, 0 _080595DC: .4byte gUnk_02034350 _080595E0: .4byte sub_080595E4 thumb_func_start sub_080595E4 sub_080595E4: @ 0x080595E4 push {r4, lr} adds r4, r0, #0 ldr r1, _08059604 @ =gUnk_02034350 movs r0, #0xff strb r0, [r1, #0x10] adds r0, r4, #0 bl sub_08059690 adds r0, r4, #0 bl sub_080596E0 movs r0, #0 bl sub_0805B4D0 pop {r4, pc} .align 2, 0 _08059604: .4byte gUnk_02034350 thumb_func_start sub_08059608 sub_08059608: @ 0x08059608 push {r4, lr} adds r4, r0, #0 adds r4, #0x23 ldrb r0, [r4] cmp r0, #0 beq _08059638 subs r0, #1 strb r0, [r4] lsls r0, r0, #0x18 cmp r0, #0 bne _08059682 ldr r0, _08059634 @ =gUnk_02033A90 movs r2, #0x86 lsls r2, r2, #4 adds r1, r0, r2 adds r2, #4 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] bl sub_080A3268 b _08059682 .align 2, 0 _08059634: .4byte gUnk_02033A90 _08059638: bl sub_0805986C cmp r0, #0 beq _08059668 ldr r0, _0805965C @ =gUnk_02033A90 ldr r2, _08059660 @ =0x00000864 adds r1, r0, r2 ldr r0, [r1] cmp r0, #0x1e beq _08059682 movs r0, #0x1e str r0, [r1] movs r0, #0x78 strb r0, [r4] ldr r0, _08059664 @ =0x800D0000 bl sub_080A3268 b _08059682 .align 2, 0 _0805965C: .4byte gUnk_02033A90 _08059660: .4byte 0x00000864 _08059664: .4byte 0x800D0000 _08059668: ldr r0, _08059684 @ =gUnk_02033A90 ldr r2, _08059688 @ =0x00000864 adds r1, r0, r2 ldr r0, [r1] cmp r0, #0x37 beq _08059682 movs r0, #0x37 str r0, [r1] movs r0, #0x78 strb r0, [r4] ldr r0, _0805968C @ =0x800D0000 bl sub_080A3268 _08059682: pop {r4, pc} .align 2, 0 _08059684: .4byte gUnk_02033A90 _08059688: .4byte 0x00000864 _0805968C: .4byte 0x800D0000 thumb_func_start sub_08059690 sub_08059690: @ 0x08059690 push {r4, lr} adds r4, r0, #0 bl sub_08059844 cmp r0, #0 beq _080596BC adds r4, #0x20 ldrb r0, [r4] cmp r0, #0 beq _080596D8 ldr r0, _080596B8 @ =gUnk_085A7320 movs r2, #0xd0 lsls r2, r2, #1 adds r1, r0, r2 ldrb r2, [r4] bl sub_08059894 ldrb r0, [r4] subs r0, #1 b _080596D6 .align 2, 0 _080596B8: .4byte gUnk_085A7320 _080596BC: adds r4, #0x20 ldrb r0, [r4] cmp r0, #0x1f bhi _080596D8 ldr r0, _080596DC @ =gUnk_085A7320 movs r2, #0xd0 lsls r2, r2, #1 adds r1, r0, r2 ldrb r2, [r4] bl sub_08059894 ldrb r0, [r4] adds r0, #1 _080596D6: strb r0, [r4] _080596D8: pop {r4, pc} .align 2, 0 _080596DC: .4byte gUnk_085A7320 thumb_func_start sub_080596E0 sub_080596E0: @ 0x080596E0 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r0, _08059730 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #7 ands r0, r1 cmp r0, #0 bne _080596FC ldr r0, _08059734 @ =gUnk_03000F50 ldrh r1, [r0, #0x16] adds r1, #8 movs r2, #0x1f ands r1, r2 strh r1, [r0, #0x16] _080596FC: bl sub_0805986C cmp r0, #0 beq _08059740 adds r0, r4, #0 adds r0, #0x21 ldrb r1, [r0] adds r5, r0, #0 adds r2, r4, #0 adds r2, #0x22 cmp r1, #0 bne _08059764 ldrb r0, [r2] cmp r0, #2 beq _08059764 movs r0, #1 strb r0, [r5] movs r0, #3 strb r0, [r2] ldr r0, _08059738 @ =gUnk_08108390 ldrb r0, [r0, #3] strb r0, [r4, #0xe] ldr r0, _0805973C @ =gUnk_0200B650 str r1, [r0] b _08059764 .align 2, 0 _08059730: .4byte gUnk_030010A0 _08059734: .4byte gUnk_03000F50 _08059738: .4byte gUnk_08108390 _0805973C: .4byte gUnk_0200B650 _08059740: adds r0, r4, #0 adds r0, #0x21 ldrb r1, [r0] adds r5, r0, #0 adds r2, r4, #0 adds r2, #0x22 cmp r1, #0 bne _08059764 ldrb r0, [r2] cmp r0, #5 beq _08059764 movs r0, #2 strb r0, [r5] ldr r1, _08059774 @ =gUnk_08108390 ldrb r0, [r2] adds r0, r0, r1 ldrb r0, [r0] strb r0, [r4, #0xe] _08059764: adds r6, r5, #0 ldrb r0, [r6] cmp r0, #1 beq _08059778 cmp r0, #2 beq _080597A8 b _080597D0 .align 2, 0 _08059774: .4byte gUnk_08108390 _08059778: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r3, #0xff lsls r0, r0, #0x18 lsrs r5, r0, #0x18 cmp r5, #0 bne _080597D0 ldr r1, _080597A4 @ =gUnk_08108390 ldrb r0, [r2] subs r0, #1 strb r0, [r2] ands r0, r3 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r4, #0xe] ldrb r0, [r2] cmp r0, #2 bne _080597D0 strb r5, [r6] b _080597D0 .align 2, 0 _080597A4: .4byte gUnk_08108390 _080597A8: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r3, #0xff lsls r0, r0, #0x18 lsrs r6, r0, #0x18 cmp r6, #0 bne _080597D0 ldr r1, _080597EC @ =gUnk_08108390 ldrb r0, [r2] adds r0, #1 strb r0, [r2] ands r0, r3 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r4, #0xe] ldrb r0, [r2] cmp r0, #5 bne _080597D0 strb r6, [r5] _080597D0: ldr r3, _080597F0 @ =gUnk_02034350 ldrb r1, [r2] ldrb r0, [r3, #0x10] cmp r0, r1 beq _08059838 strb r1, [r3, #0x10] ldrb r0, [r2] cmp r0, #4 beq _08059800 cmp r0, #4 ble _080597F4 cmp r0, #5 beq _08059824 b _08059838 .align 2, 0 _080597EC: .4byte gUnk_08108390 _080597F0: .4byte gUnk_02034350 _080597F4: cmp r0, #0 blt _08059838 adds r0, #0x2b bl sub_0801D7EC b _08059838 _08059800: ldr r4, _0805981C @ =gUnk_02001A40 movs r5, #0x80 lsls r5, r5, #4 adds r0, r4, #0 adds r1, r5, #0 bl sub_0801D630 ldr r1, _08059820 @ =0x0600E800 adds r0, r4, #0 adds r2, r5, #0 bl sub_08000E96 b _08059838 .align 2, 0 _0805981C: .4byte gUnk_02001A40 _08059820: .4byte 0x0600E800 _08059824: ldr r0, _0805983C @ =gUnk_0200B650 ldr r1, _08059840 @ =gUnk_03000F64 str r1, [r0] subs r1, #0x14 ldrh r2, [r1] movs r3, #0x80 lsls r3, r3, #2 adds r0, r3, #0 orrs r0, r2 strh r0, [r1] _08059838: pop {r4, r5, r6, pc} .align 2, 0 _0805983C: .4byte gUnk_0200B650 _08059840: .4byte gUnk_03000F64 thumb_func_start sub_08059844 sub_08059844: @ 0x08059844 push {lr} movs r3, #0 ldr r0, _08059864 @ =gUnk_03001160 movs r2, #0x2e ldrsh r1, [r0, r2] ldr r2, _08059868 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 ldrh r0, [r2, #0x1e] lsrs r0, r0, #1 cmp r1, r0 ble _0805985E movs r3, #1 _0805985E: adds r0, r3, #0 pop {pc} .align 2, 0 _08059864: .4byte gUnk_03001160 _08059868: .4byte gUnk_03000BF0 thumb_func_start sub_0805986C sub_0805986C: @ 0x0805986C push {lr} movs r2, #0 ldr r0, _0805988C @ =gUnk_03001160 movs r3, #0x2e ldrsh r1, [r0, r3] ldr r0, _08059890 @ =gUnk_03000BF0 ldrh r0, [r0, #6] subs r1, r1, r0 movs r0, #0x80 lsls r0, r0, #2 cmp r1, r0 ble _08059886 movs r2, #1 _08059886: adds r0, r2, #0 pop {pc} .align 2, 0 _0805988C: .4byte gUnk_03001160 _08059890: .4byte gUnk_03000BF0 thumb_func_start sub_08059894 sub_08059894: @ 0x08059894 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r4, r1, #0 ldr r0, _080598E8 @ =gUnk_020176E0 mov sb, r0 movs r6, #0 lsls r2, r2, #0x18 mov r8, r2 _080598AA: adds r0, r5, #0 adds r1, r4, #0 mov r2, sb mov r7, r8 lsrs r3, r7, #0x18 bl sub_08059960 adds r5, #0x20 adds r4, #0x20 movs r0, #0x20 add sb, r0 adds r6, #1 cmp r6, #0xc bls _080598AA ldr r0, _080598EC @ =gUnk_02017700 movs r2, #0x90 lsls r2, r2, #2 adds r1, r0, r2 movs r2, #0x20 bl sub_0801D66C ldr r2, _080598F0 @ =gUnk_0200B644 ldr r0, [r2] ldr r1, _080598F4 @ =0x00207FFC orrs r0, r1 str r0, [r2] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _080598E8: .4byte gUnk_020176E0 _080598EC: .4byte gUnk_02017700 _080598F0: .4byte gUnk_0200B644 _080598F4: .4byte 0x00207FFC thumb_func_start sub_080598F8 sub_080598F8: @ 0x080598F8 push {r4, r5, r6, r7, lr} movs r4, #0x1f adds r3, r0, #0 ands r3, r4 lsls r6, r3, #8 adds r3, r6, #0 muls r3, r2, r3 lsrs r6, r3, #5 adds r3, r1, #0 ands r3, r4 lsls r3, r3, #8 movs r4, #0x20 subs r4, r4, r2 muls r3, r4, r3 lsrs r3, r3, #5 adds r3, r6, r3 lsrs r6, r3, #8 movs r5, #0xf8 lsls r5, r5, #2 adds r3, r0, #0 ands r3, r5 lsls r7, r3, #3 adds r3, r7, #0 muls r3, r2, r3 lsrs r7, r3, #5 adds r3, r1, #0 ands r3, r5 lsls r3, r3, #3 muls r3, r4, r3 lsrs r3, r3, #5 adds r3, r7, r3 lsrs r7, r3, #8 movs r3, #0xf8 lsls r3, r3, #7 ands r0, r3 lsrs r5, r0, #2 adds r0, r5, #0 muls r0, r2, r0 lsrs r5, r0, #5 ands r1, r3 lsrs r0, r1, #2 muls r0, r4, r0 lsrs r0, r0, #5 adds r0, r5, r0 lsrs r5, r0, #8 lsls r0, r7, #5 orrs r6, r0 lsls r0, r5, #0xa orrs r6, r0 adds r0, r6, #0 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08059960 sub_08059960: @ 0x08059960 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 adds r5, r1, #0 adds r4, r2, #0 lsls r3, r3, #0x18 lsrs r3, r3, #0x18 mov r8, r3 movs r7, #0 _08059974: ldrh r0, [r6] adds r6, #2 ldrh r1, [r5] adds r5, #2 mov r2, r8 bl sub_080598F8 strh r0, [r4] adds r4, #2 adds r7, #1 cmp r7, #0xf bls _08059974 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08059994 sub_08059994: @ 0x08059994 push {lr} bl sub_0805986C cmp r0, #0 beq _080599AE movs r0, #0x5b bl sub_0801D714 ldr r0, _080599B0 @ =gUnk_02033A90 ldr r1, _080599B4 @ =0x00000864 adds r0, r0, r1 movs r1, #0x1e str r1, [r0] _080599AE: pop {pc} .align 2, 0 _080599B0: .4byte gUnk_02033A90 _080599B4: .4byte 0x00000864 thumb_func_start sub_080599B8 sub_080599B8: @ 0x080599B8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080599D6 movs r0, #1 strb r0, [r4, #0xc] ldrh r0, [r4, #0x3c] bl sub_0807CBE4 cmp r0, #0 beq _080599EA bl sub_0805E780 b _080599EA _080599D6: ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _080599EA ldrh r0, [r4, #0x3c] bl sub_0807CCC8 bl sub_0805E780 _080599EA: pop {r4, pc} thumb_func_start sub_080599EC sub_080599EC: @ 0x080599EC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08059A20 movs r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x22 movs r0, #0xff strb r0, [r1] subs r1, #1 movs r0, #1 rsbs r0, r0, #0 strb r0, [r1] subs r1, #1 strb r0, [r1] ldr r1, _08059A28 @ =sub_08059A2C adds r0, r4, #0 movs r2, #0 bl sub_08052D74 adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 _08059A20: adds r0, r4, #0 bl sub_08059A58 pop {r4, pc} .align 2, 0 _08059A28: .4byte sub_08059A2C thumb_func_start sub_08059A2C sub_08059A2C: @ 0x08059A2C push {lr} adds r2, r0, #0 ldr r1, _08059A54 @ =gUnk_02034350 movs r0, #0xff strb r0, [r1, #0x12] movs r0, #1 rsbs r0, r0, #0 strb r0, [r1, #0x11] strb r0, [r1, #0x10] adds r1, r2, #0 adds r1, #0x22 strb r0, [r1] subs r1, #1 strb r0, [r1] subs r1, #1 strb r0, [r1] adds r0, r2, #0 bl sub_08059A58 pop {pc} .align 2, 0 _08059A54: .4byte gUnk_02034350 thumb_func_start sub_08059A58 sub_08059A58: @ 0x08059A58 push {r4, r5, lr} adds r5, r0, #0 ldr r0, _08059AC4 @ =gUnk_03000BF0 ldrb r0, [r0, #4] cmp r0, #0x15 beq _08059AD4 adds r4, r5, #0 adds r4, #0x20 ldr r3, _08059AC8 @ =gUnk_08108398 adds r0, r5, #0 movs r1, #0 adds r2, r4, #0 bl sub_08059C8C cmp r0, #0 beq _08059A80 ldrb r1, [r4] movs r0, #0 bl sub_08059CC0 _08059A80: adds r4, r5, #0 adds r4, #0x21 ldr r3, _08059ACC @ =gUnk_081083AE adds r0, r5, #0 movs r1, #1 adds r2, r4, #0 bl sub_08059C8C cmp r0, #0 beq _08059AA6 ldrb r1, [r4] movs r0, #1 bl sub_08059CC0 ldrb r0, [r4] cmp r0, #2 bne _08059AA6 bl sub_08059B18 _08059AA6: adds r4, r5, #0 adds r4, #0x22 ldr r3, _08059AD0 @ =gUnk_081083C4 adds r0, r5, #0 movs r1, #2 adds r2, r4, #0 bl sub_08059C8C cmp r0, #0 beq _08059B0C ldrb r1, [r4] movs r0, #2 bl sub_08059CC0 b _08059B0C .align 2, 0 _08059AC4: .4byte gUnk_03000BF0 _08059AC8: .4byte gUnk_08108398 _08059ACC: .4byte gUnk_081083AE _08059AD0: .4byte gUnk_081083C4 _08059AD4: adds r4, r5, #0 adds r4, #0x20 ldr r3, _08059B10 @ =gUnk_081083DA adds r0, r5, #0 movs r1, #0 adds r2, r4, #0 bl sub_08059C8C cmp r0, #0 beq _08059AF0 ldrb r1, [r4] movs r0, #0 bl sub_08059CC0 _08059AF0: adds r4, r5, #0 adds r4, #0x22 ldr r3, _08059B14 @ =gUnk_081083F2 adds r0, r5, #0 movs r1, #2 adds r2, r4, #0 bl sub_08059C8C cmp r0, #0 beq _08059B0C ldrb r1, [r4] movs r0, #2 bl sub_08059CC0 _08059B0C: pop {r4, r5, pc} .align 2, 0 _08059B10: .4byte gUnk_081083DA _08059B14: .4byte gUnk_081083F2 thumb_func_start sub_08059B18 sub_08059B18: @ 0x08059B18 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #4 movs r0, #0x18 bl sub_0807CC30 cmp r0, #0 beq _08059BEC movs r6, #0 movs r0, #0x3f mov sb, r0 movs r2, #0xc4 lsls r2, r2, #1 mov r8, r2 _08059B38: movs r5, #0 lsls r1, r6, #4 mov r2, r8 lsrs r0, r2, #4 mov r2, sb ands r0, r2 lsls r3, r0, #6 movs r7, #0x28 ldr r0, _08059BD8 @ =0x000004AB adds r4, r1, r0 _08059B4C: lsrs r1, r7, #4 mov r2, sb ands r1, r2 orrs r1, r3 adds r0, r4, #0 movs r2, #1 str r3, [sp] bl sub_0807B9B8 adds r7, #0x10 adds r4, #1 adds r5, #1 ldr r3, [sp] cmp r5, #3 bls _08059B4C movs r0, #0x10 add r8, r0 adds r6, #1 cmp r6, #3 bls _08059B38 movs r6, #0 movs r3, #0x3f _08059B78: movs r5, #0 lsls r1, r6, #4 adds r6, #1 mov r8, r6 movs r2, #0xc4 lsls r2, r2, #1 adds r0, r1, r2 lsrs r0, r0, #4 ands r0, r3 lsls r7, r0, #6 movs r6, #0x28 movs r0, #0x88 lsls r0, r0, #3 adds r4, r1, r0 _08059B94: lsrs r1, r6, #4 ands r1, r3 orrs r1, r7 adds r0, r4, #0 movs r2, #2 str r3, [sp] bl sub_0807B9B8 adds r6, #0x10 adds r4, #1 adds r5, #1 ldr r3, [sp] cmp r5, #3 bls _08059B94 mov r6, r8 cmp r6, #2 bls _08059B78 ldr r1, _08059BDC @ =0x000005C2 movs r0, #0xd6 movs r2, #2 bl sub_0807B9B8 ldr r1, _08059BE0 @ =0x000005C3 movs r0, #0xd7 movs r2, #2 bl sub_0807B9B8 ldr r0, _08059BE4 @ =gUnk_086E8460 ldr r1, _08059BE8 @ =0x06001800 movs r2, #0x80 lsls r2, r2, #4 bl sub_08000E96 b _08059C5E .align 2, 0 _08059BD8: .4byte 0x000004AB _08059BDC: .4byte 0x000005C2 _08059BE0: .4byte 0x000005C3 _08059BE4: .4byte gUnk_086E8460 _08059BE8: .4byte 0x06001800 _08059BEC: movs r0, #0x19 bl sub_0807CC30 cmp r0, #0 beq _08059C5E movs r6, #0 movs r3, #0x3f _08059BFA: movs r5, #0 lsls r1, r6, #4 adds r6, #1 mov r8, r6 movs r2, #0xc4 lsls r2, r2, #1 adds r0, r1, r2 lsrs r0, r0, #4 ands r0, r3 lsls r7, r0, #6 movs r6, #0x28 ldr r0, _08059C68 @ =0x000004A6 adds r4, r1, r0 _08059C14: lsrs r1, r6, #4 ands r1, r3 orrs r1, r7 adds r0, r4, #0 movs r2, #1 str r3, [sp] bl sub_0807B9B8 adds r6, #0x10 adds r4, #1 adds r5, #1 ldr r3, [sp] cmp r5, #3 bls _08059C14 mov r6, r8 cmp r6, #4 bls _08059BFA ldr r0, _08059C6C @ =0x00000444 ldr r1, _08059C70 @ =0x00000602 movs r2, #2 bl sub_0807B9B8 ldr r0, _08059C74 @ =0x00000445 ldr r1, _08059C78 @ =0x00000605 movs r2, #2 bl sub_0807B9B8 ldr r0, _08059C7C @ =0x00000454 ldr r1, _08059C80 @ =0x00000642 movs r2, #2 bl sub_0807B9B8 ldr r0, _08059C84 @ =0x00000455 ldr r1, _08059C88 @ =0x00000645 movs r2, #2 bl sub_0807B9B8 _08059C5E: add sp, #4 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _08059C68: .4byte 0x000004A6 _08059C6C: .4byte 0x00000444 _08059C70: .4byte 0x00000602 _08059C74: .4byte 0x00000445 _08059C78: .4byte 0x00000605 _08059C7C: .4byte 0x00000454 _08059C80: .4byte 0x00000642 _08059C84: .4byte 0x00000455 _08059C88: .4byte 0x00000645 thumb_func_start sub_08059C8C sub_08059C8C: @ 0x08059C8C push {r4, r5, lr} adds r5, r1, #0 adds r4, r2, #0 adds r0, r3, #0 bl sub_08056300 adds r2, r0, #0 strb r2, [r4] lsls r0, r2, #0x18 lsrs r3, r0, #0x18 cmp r3, #0xff beq _08059CBC ldr r0, _08059CB8 @ =gUnk_02034350 adds r0, #0x10 adds r1, r5, r0 ldrb r0, [r1] cmp r0, r3 beq _08059CBC strb r2, [r1] movs r0, #1 b _08059CBE .align 2, 0 _08059CB8: .4byte gUnk_02034350 _08059CBC: movs r0, #0 _08059CBE: pop {r4, r5, pc} thumb_func_start sub_08059CC0 sub_08059CC0: @ 0x08059CC0 push {r4, r5, r6, lr} adds r2, r1, #0 ldr r1, _08059CDC @ =gUnk_02034350 adds r1, #0x10 adds r0, r0, r1 strb r2, [r0] ldr r0, _08059CE0 @ =gUnk_03000BF0 ldrb r0, [r0, #4] cmp r0, #0x15 beq _08059CE8 lsls r1, r2, #4 ldr r0, _08059CE4 @ =gUnk_08108408 b _08059CEC .align 2, 0 _08059CDC: .4byte gUnk_02034350 _08059CE0: .4byte gUnk_03000BF0 _08059CE4: .4byte gUnk_08108408 _08059CE8: lsls r1, r2, #4 ldr r0, _08059D10 @ =gUnk_08108468 _08059CEC: adds r6, r1, r0 ldr r0, [r6] ldr r4, _08059D14 @ =gUnk_085A2E80 adds r0, r0, r4 ldr r1, [r6, #4] movs r5, #0x80 lsls r5, r5, #5 adds r2, r5, #0 bl sub_08000E96 ldr r0, [r6, #8] adds r0, r0, r4 ldr r1, [r6, #0xc] adds r2, r5, #0 bl sub_08000E96 pop {r4, r5, r6, pc} .align 2, 0 _08059D10: .4byte gUnk_08108468 _08059D14: .4byte gUnk_085A2E80 thumb_func_start sub_08059D18 sub_08059D18: @ 0x08059D18 push {r4, lr} ldr r0, _08059D68 @ =gUnk_03000BF0 ldrb r0, [r0, #4] cmp r0, #0x15 beq _08059D78 ldr r0, _08059D6C @ =gUnk_08108398 bl sub_08056300 adds r4, r0, #0 cmp r4, #0xff beq _08059D36 movs r0, #0 adds r1, r4, #0 bl sub_08059CC0 _08059D36: ldr r0, _08059D70 @ =gUnk_081083AE bl sub_08056300 adds r4, r0, #0 cmp r4, #0xff beq _08059D52 movs r0, #1 adds r1, r4, #0 bl sub_08059CC0 cmp r4, #2 bne _08059D52 bl sub_08059B18 _08059D52: ldr r0, _08059D74 @ =gUnk_081083C4 bl sub_08056300 adds r4, r0, #0 cmp r4, #0xff beq _08059DA0 movs r0, #2 adds r1, r4, #0 bl sub_08059CC0 b _08059DA0 .align 2, 0 _08059D68: .4byte gUnk_03000BF0 _08059D6C: .4byte gUnk_08108398 _08059D70: .4byte gUnk_081083AE _08059D74: .4byte gUnk_081083C4 _08059D78: ldr r0, _08059DA4 @ =gUnk_081083DA bl sub_08056300 adds r4, r0, #0 cmp r4, #0xff beq _08059D8C movs r0, #0 adds r1, r4, #0 bl sub_08059CC0 _08059D8C: ldr r0, _08059DA8 @ =gUnk_081083F2 bl sub_08056300 adds r4, r0, #0 cmp r4, #0xff beq _08059DA0 movs r0, #2 adds r1, r4, #0 bl sub_08059CC0 _08059DA0: pop {r4, pc} .align 2, 0 _08059DA4: .4byte gUnk_081083DA _08059DA8: .4byte gUnk_081083F2 thumb_func_start sub_08059DAC sub_08059DAC: @ 0x08059DAC push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 ldrb r0, [r5, #0xc] cmp r0, #0 bne _08059DBE movs r0, #1 strb r0, [r5, #0xc] _08059DBE: ldr r1, _08059E4C @ =gUnk_03000BF0 ldrb r0, [r1, #4] ldr r4, _08059E50 @ =gUnk_081084C8 cmp r0, #0x15 bne _08059DCA ldr r4, _08059E54 @ =gUnk_08108530 _08059DCA: movs r7, #0 ldrh r0, [r4] cmp r0, #0 beq _08059E46 mov r8, r1 _08059DD4: movs r6, #1 lsls r6, r7 ldr r0, [r5, #0x20] ands r0, r6 cmp r0, #0 bne _08059E38 ldrh r0, [r4] ldrh r1, [r4, #2] movs r2, #0x10 movs r3, #0x10 bl sub_0800290E cmp r0, #0 beq _08059E38 ldrb r1, [r4, #4] movs r0, #0x1c adds r2, r7, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _08059E38 ldrb r0, [r4, #5] strb r0, [r2, #0x1e] ldrh r0, [r4] mov r1, r8 ldrh r1, [r1, #6] adds r0, r0, r1 strh r0, [r2, #0x2e] ldrh r0, [r4, #2] mov r3, r8 ldrh r3, [r3, #8] adds r0, r0, r3 strh r0, [r2, #0x32] str r5, [r2, #0x50] ldrh r1, [r4] adds r0, r2, #0 adds r0, #0x80 strh r1, [r0] ldrh r0, [r4, #2] adds r1, r2, #0 adds r1, #0x82 strh r0, [r1] ldrb r1, [r4, #6] adds r0, r2, #0 adds r0, #0x38 strb r1, [r0] ldr r0, [r5, #0x20] orrs r0, r6 str r0, [r5, #0x20] _08059E38: adds r4, #8 adds r7, #1 ldrh r0, [r4] cmp r0, #0 beq _08059E46 cmp r7, #0x1f bls _08059DD4 _08059E46: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08059E4C: .4byte gUnk_03000BF0 _08059E50: .4byte gUnk_081084C8 _08059E54: .4byte gUnk_08108530 thumb_func_start sub_08059E58 sub_08059E58: @ 0x08059E58 push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #0x20] adds r0, #1 strh r0, [r4, #0x20] ldr r1, _08059E7C @ =gUnk_081085A4 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0805A1D8 pop {r4, pc} .align 2, 0 _08059E7C: .4byte gUnk_081085A4 thumb_func_start sub_08059E80 sub_08059E80: @ 0x08059E80 push {r4, r5, lr} adds r4, r0, #0 bl sub_0805EABC cmp r0, #0 beq _08059E90 bl sub_0805E780 _08059E90: adds r1, r4, #0 adds r1, #0x22 movs r2, #0 movs r0, #1 strb r0, [r1] movs r0, #0 strh r2, [r4, #0x20] strb r0, [r4, #0xe] movs r0, #4 strb r0, [r4, #0xf] strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x20 orrs r0, r1 strb r0, [r4, #0x10] ldr r3, _08059EE4 @ =gUnk_03000F50 ldr r0, _08059EE8 @ =0x00001E04 strh r0, [r3, #0x2c] ldrh r0, [r3] movs r5, #0x80 lsls r5, r5, #4 adds r1, r5, #0 orrs r0, r1 strh r0, [r3] adds r1, r3, #0 adds r1, #0x66 ldr r0, _08059EEC @ =0x00003E48 strh r0, [r1] adds r1, #2 movs r0, #0x80 lsls r0, r0, #5 strh r0, [r1] movs r0, #0x80 strh r0, [r3, #0x2e] strh r2, [r3, #0x30] ldr r1, _08059EF0 @ =nullsub_495 ldr r2, _08059EF4 @ =sub_0805A25C adds r0, r4, #0 bl sub_08052D74 pop {r4, r5, pc} .align 2, 0 _08059EE4: .4byte gUnk_03000F50 _08059EE8: .4byte 0x00001E04 _08059EEC: .4byte 0x00003E48 _08059EF0: .4byte nullsub_495 _08059EF4: .4byte sub_0805A25C thumb_func_start sub_08059EF8 sub_08059EF8: @ 0x08059EF8 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] movs r6, #0xff lsls r0, r0, #0x18 lsrs r5, r0, #0x18 cmp r5, #0 bne _08059F90 movs r0, #4 strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_08059F9C cmp r0, #0 beq _08059F64 ldr r2, _08059F50 @ =gUnk_08108588 ldrb r0, [r4, #0xe] lsls r0, r0, #1 adds r0, r0, r2 ldrh r1, [r0] ldr r0, _08059F54 @ =0x00000808 cmp r1, r0 beq _08059F5C adds r1, r4, #0 adds r1, #0x22 movs r0, #1 strb r0, [r1] adds r0, r4, #0 adds r0, #0x24 strb r5, [r0] ldr r1, _08059F58 @ =gUnk_03000F50 ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] ands r0, r6 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] adds r1, #0x68 strh r0, [r1] b _08059F90 .align 2, 0 _08059F50: .4byte gUnk_08108588 _08059F54: .4byte 0x00000808 _08059F58: .4byte gUnk_03000F50 _08059F5C: adds r0, r4, #0 adds r0, #0x22 strb r5, [r0] b _08059F90 _08059F64: adds r1, r4, #0 adds r1, #0x22 movs r0, #1 strb r0, [r1] ldr r3, _08059F94 @ =gUnk_08108588 ldrb r2, [r4, #0xe] lsls r0, r2, #1 adds r0, r0, r3 ldrh r1, [r0] movs r0, #0x80 lsls r0, r0, #5 cmp r1, r0 beq _08059F90 ldr r0, _08059F98 @ =gUnk_03000F50 subs r1, r2, #1 strb r1, [r4, #0xe] ands r1, r6 lsls r1, r1, #1 adds r1, r1, r3 ldrh r1, [r1] adds r0, #0x68 strh r1, [r0] _08059F90: pop {r4, r5, r6, pc} .align 2, 0 _08059F94: .4byte gUnk_08108588 _08059F98: .4byte gUnk_03000F50 thumb_func_start sub_08059F9C sub_08059F9C: @ 0x08059F9C push {r4, lr} adds r4, r0, #0 ldr r0, _08059FB4 @ =gUnk_03000BF0 ldrb r0, [r0, #5] cmp r0, #0x17 bhi _0805A03A lsls r0, r0, #2 ldr r1, _08059FB8 @ =_08059FBC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08059FB4: .4byte gUnk_03000BF0 _08059FB8: .4byte _08059FBC _08059FBC: @ jump table .4byte _0805A036 @ case 0 .4byte _0805A01C @ case 1 .4byte _0805A03A @ case 2 .4byte _0805A03A @ case 3 .4byte _0805A03A @ case 4 .4byte _0805A03A @ case 5 .4byte _0805A03A @ case 6 .4byte _0805A02A @ case 7 .4byte _0805A036 @ case 8 .4byte _0805A036 @ case 9 .4byte _0805A03A @ case 10 .4byte _0805A03A @ case 11 .4byte _0805A03A @ case 12 .4byte _0805A03A @ case 13 .4byte _0805A03A @ case 14 .4byte _0805A03A @ case 15 .4byte _0805A03A @ case 16 .4byte _0805A03A @ case 17 .4byte _0805A03A @ case 18 .4byte _0805A03A @ case 19 .4byte _0805A03A @ case 20 .4byte _0805A03A @ case 21 .4byte _0805A03A @ case 22 .4byte _0805A036 @ case 23 _0805A01C: movs r0, #0x16 bl sub_0807CBD0 cmp r0, #0 beq _0805A02A movs r0, #0 b _0805A03C _0805A02A: adds r0, r4, #0 bl sub_0805A25C bl sub_0805E780 b _0805A03C _0805A036: movs r0, #1 b _0805A03C _0805A03A: movs r0, #0 _0805A03C: pop {r4, pc} .align 2, 0 thumb_func_start sub_0805A040 sub_0805A040: @ 0x0805A040 push {lr} bl sub_0805A098 pop {pc} thumb_func_start sub_0805A048 sub_0805A048: @ 0x0805A048 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0805A086 movs r0, #4 strb r0, [r4, #0xf] ldr r2, _0805A090 @ =gUnk_03000F50 ldr r3, _0805A094 @ =gUnk_08108588 ldrb r0, [r4, #0xe] adds r1, r0, #1 strb r1, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x17 adds r0, r0, r3 ldrh r0, [r0] adds r2, #0x68 strh r0, [r2] lsls r1, r1, #0x18 lsrs r1, r1, #0x18 cmp r1, #9 bne _0805A086 movs r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x22 movs r0, #0 strb r0, [r1] _0805A086: adds r0, r4, #0 bl sub_0805A098 pop {r4, pc} .align 2, 0 _0805A090: .4byte gUnk_03000F50 _0805A094: .4byte gUnk_08108588 thumb_func_start sub_0805A098 sub_0805A098: @ 0x0805A098 push {lr} adds r1, r0, #0 ldr r0, _0805A0B0 @ =gUnk_03000BF0 ldrb r0, [r0, #5] cmp r0, #9 bgt _0805A0B4 cmp r0, #8 bge _0805A0BC cmp r0, #0 beq _0805A0BC b _0805A0B8 .align 2, 0 _0805A0B0: .4byte gUnk_03000BF0 _0805A0B4: cmp r0, #0x17 beq _0805A0BC _0805A0B8: movs r0, #3 strb r0, [r1, #0xc] _0805A0BC: pop {pc} .align 2, 0 thumb_func_start sub_0805A0C0 sub_0805A0C0: @ 0x0805A0C0 push {r4, lr} adds r3, r0, #0 ldrb r0, [r3, #0xf] subs r0, #1 strb r0, [r3, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0805A106 movs r0, #4 strb r0, [r3, #0xf] ldr r4, _0805A108 @ =gUnk_03000F50 ldr r2, _0805A10C @ =gUnk_08108588 ldrb r0, [r3, #0xe] adds r1, r0, #0 adds r1, #0xff strb r1, [r3, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x17 adds r0, r0, r2 ldrh r2, [r0] adds r0, r4, #0 adds r0, #0x68 strh r2, [r0] lsls r1, r1, #0x18 lsrs r1, r1, #0x18 cmp r1, #0xff bne _0805A106 ldrh r1, [r4] ldr r0, _0805A110 @ =0x0000F7FF ands r0, r1 strh r0, [r4] bl sub_08056250 bl sub_0805E780 _0805A106: pop {r4, pc} .align 2, 0 _0805A108: .4byte gUnk_03000F50 _0805A10C: .4byte gUnk_08108588 _0805A110: .4byte 0x0000F7FF thumb_func_start sub_0805A114 sub_0805A114: @ 0x0805A114 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r7, r0, #0 adds r6, r1, #0 ldr r2, _0805A154 @ =gUnk_03003DE4 ldrb r1, [r2] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 ldr r1, _0805A158 @ =gUnk_02017AA0 adds r4, r0, r1 movs r5, #0 mov r8, r2 mov sb, r1 ldr r2, _0805A15C @ =gUnk_03000F50 ldr r0, _0805A160 @ =gUnk_080C9160 mov ip, r0 _0805A13A: movs r1, #0x30 ldrsh r0, [r2, r1] adds r3, r5, r0 asrs r1, r3, #3 movs r0, #7 ands r1, r0 cmp r1, #7 bhi _0805A190 lsls r0, r1, #2 ldr r1, _0805A164 @ =_0805A168 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0805A154: .4byte gUnk_03003DE4 _0805A158: .4byte gUnk_02017AA0 _0805A15C: .4byte gUnk_03000F50 _0805A160: .4byte gUnk_080C9160 _0805A164: .4byte _0805A168 _0805A168: @ jump table .4byte _0805A190 @ case 0 .4byte _0805A18C @ case 1 .4byte _0805A190 @ case 2 .4byte _0805A190 @ case 3 .4byte _0805A188 @ case 4 .4byte _0805A190 @ case 5 .4byte _0805A190 @ case 6 .4byte _0805A18C @ case 7 _0805A188: subs r3, #8 b _0805A190 _0805A18C: movs r0, #0xf0 b _0805A192 _0805A190: movs r0, #0xf8 _0805A192: ands r3, r0 adds r0, r6, r3 movs r1, #0xff ands r0, r1 lsls r0, r0, #1 add r0, ip movs r1, #0 ldrsh r0, [r0, r1] muls r0, r7, r0 lsrs r0, r0, #8 ldrh r1, [r2, #0x2e] adds r0, r0, r1 strh r0, [r4] adds r4, #2 adds r5, #1 cmp r5, #0x9f ble _0805A13A mov r0, r8 ldrb r1, [r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 add r0, sb ldr r1, _0805A1D0 @ =0x0400001C ldr r2, _0805A1D4 @ =0xA2600001 bl sub_0805622C pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _0805A1D0: .4byte 0x0400001C _0805A1D4: .4byte 0xA2600001 thumb_func_start sub_0805A1D8 sub_0805A1D8: @ 0x0805A1D8 push {r4, r5, lr} adds r4, r0, #0 ldr r1, _0805A244 @ =gUnk_03000BF0 ldr r0, [r1, #0x28] ldr r2, _0805A248 @ =0xFFFFF000 adds r0, r0, r2 str r0, [r1, #0x28] ldr r5, _0805A24C @ =gUnk_03000F50 ldrh r0, [r1, #0x2a] strh r0, [r5, #0x2e] ldr r0, [r1, #0x2c] adds r0, r0, r2 str r0, [r1, #0x2c] ldrh r0, [r1, #0x2e] strh r0, [r5, #0x30] ldrh r1, [r5] movs r0, #0x80 lsls r0, r0, #4 ands r0, r1 cmp r0, #0 beq _0805A240 ldrh r1, [r4, #0x20] lsrs r1, r1, #1 movs r0, #6 bl sub_0805A114 adds r0, r4, #0 adds r0, #0x22 ldrb r0, [r0] cmp r0, #0 bne _0805A240 ldr r0, _0805A250 @ =gUnk_03001000 ldrh r1, [r0, #0xc] movs r0, #0x1f ands r0, r1 cmp r0, #0 bne _0805A240 adds r2, r4, #0 adds r2, #0x24 ldrb r0, [r2] adds r0, #1 movs r1, #3 ands r0, r1 strb r0, [r2] ldr r1, _0805A254 @ =gUnk_0810859A ldrb r0, [r2] lsls r0, r0, #1 adds r0, r0, r1 ldrh r1, [r0] adds r0, r5, #0 adds r0, #0x68 strh r1, [r0] _0805A240: pop {r4, r5, pc} .align 2, 0 _0805A244: .4byte gUnk_03000BF0 _0805A248: .4byte 0xFFFFF000 _0805A24C: .4byte gUnk_03000F50 _0805A250: .4byte gUnk_03001000 _0805A254: .4byte gUnk_0810859A thumb_func_start nullsub_495 nullsub_495: @ 0x0805A258 bx lr .align 2, 0 thumb_func_start sub_0805A25C sub_0805A25C: @ 0x0805A25C push {lr} ldr r1, _0805A278 @ =gUnk_03000F50 adds r2, r1, #0 adds r2, #0x66 movs r0, #0 strh r0, [r2] ldrh r2, [r1] ldr r0, _0805A27C @ =0x0000F7FF ands r0, r2 strh r0, [r1] bl sub_08056250 pop {pc} .align 2, 0 _0805A278: .4byte gUnk_03000F50 _0805A27C: .4byte 0x0000F7FF thumb_func_start sub_0805A280 sub_0805A280: @ 0x0805A280 push {lr} ldr r2, _0805A294 @ =gUnk_081085D8 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805A294: .4byte gUnk_081085D8 thumb_func_start sub_0805A298 sub_0805A298: @ 0x0805A298 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0805A2D6 adds r0, r4, #0 bl sub_0805A89C ldrh r0, [r4, #0x3e] bl sub_0807CBD0 cmp r0, #0 bne _0805A2BA adds r1, r4, #0 adds r1, #0x23 movs r0, #1 b _0805A2C0 _0805A2BA: adds r1, r4, #0 adds r1, #0x23 movs r0, #2 _0805A2C0: strb r0, [r1] ldrb r0, [r1] bl sub_0805AAF0 ldr r2, _0805A2E0 @ =gUnk_03000F50 ldrh r1, [r2] movs r3, #0x90 lsls r3, r3, #7 adds r0, r3, #0 orrs r0, r1 strh r0, [r2] _0805A2D6: adds r0, r4, #0 bl sub_0805A8EC pop {r4, pc} .align 2, 0 _0805A2E0: .4byte gUnk_03000F50 thumb_func_start sub_0805A2E4 sub_0805A2E4: @ 0x0805A2E4 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0805A34C adds r0, r4, #0 bl sub_0805A89C adds r0, r4, #0 adds r0, #0x23 movs r5, #1 strb r5, [r0] movs r0, #1 bl sub_0805AAF0 ldrh r0, [r4, #0x3e] bl sub_0807CBD0 cmp r0, #0 bne _0805A324 strb r5, [r4, #0xc] ldr r2, _0805A31C @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0805A320 @ =0x0000B7FF ands r0, r1 strh r0, [r2] b _0805A35C .align 2, 0 _0805A31C: .4byte gUnk_03000F50 _0805A320: .4byte 0x0000B7FF _0805A324: movs r0, #0x48 bl sub_0807CBD0 cmp r0, #0 beq _0805A332 movs r0, #4 b _0805A334 _0805A332: movs r0, #3 _0805A334: strb r0, [r4, #0xc] ldr r2, _0805A348 @ =gUnk_03000F50 ldrh r1, [r2] movs r3, #0x90 lsls r3, r3, #7 adds r0, r3, #0 orrs r0, r1 strh r0, [r2] b _0805A35C .align 2, 0 _0805A348: .4byte gUnk_03000F50 _0805A34C: ldr r0, _0805A36C @ =gUnk_081085F8 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _0805A35C: ldr r0, [r4, #4] cmp r0, #0 beq _0805A368 adds r0, r4, #0 bl sub_0805A8EC _0805A368: pop {r4, r5, pc} .align 2, 0 _0805A36C: .4byte gUnk_081085F8 thumb_func_start sub_0805A370 sub_0805A370: @ 0x0805A370 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #0 beq _0805A38A ldr r0, _0805A38C @ =gUnk_080E4C08 bl sub_0804ADDC movs r0, #3 strb r0, [r4, #0xc] ldr r0, _0805A390 @ =0x80100000 bl sub_080A3268 _0805A38A: pop {r4, pc} .align 2, 0 _0805A38C: .4byte gUnk_080E4C08 _0805A390: .4byte 0x80100000 thumb_func_start sub_0805A394 sub_0805A394: @ 0x0805A394 push {lr} movs r0, #3 movs r1, #0x13 movs r2, #4 bl sub_0805EB00 cmp r0, #0 beq _0805A3AA ldrb r0, [r0, #0xa] cmp r0, #4 bne _0805A3C4 _0805A3AA: movs r0, #0x48 bl sub_0807CCB4 movs r0, #0 bl sub_0807CD8C ldr r2, _0805A3C8 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0805A3CC @ =0x0000B7FF ands r0, r1 strh r0, [r2] bl sub_0805E780 _0805A3C4: pop {pc} .align 2, 0 _0805A3C8: .4byte gUnk_03000F50 _0805A3CC: .4byte 0x0000B7FF thumb_func_start nullsub_496 nullsub_496: @ 0x0805A3D0 bx lr .align 2, 0 thumb_func_start sub_0805A3D4 sub_0805A3D4: @ 0x0805A3D4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0805A448 adds r0, r4, #0 bl sub_0805A89C ldrb r0, [r4, #0xa] cmp r0, #3 bne _0805A3F2 adds r1, r4, #0 adds r1, #0x23 movs r0, #2 b _0805A3F8 _0805A3F2: adds r1, r4, #0 adds r1, #0x23 movs r0, #1 _0805A3F8: strb r0, [r1] ldrb r0, [r1] bl sub_0805AAF0 ldrh r0, [r4, #0x3e] bl sub_0807CBD0 cmp r0, #0 bne _0805A428 ldrh r0, [r4, #0x3c] bl sub_0807CD48 movs r0, #1 strb r0, [r4, #0xc] ldr r2, _0805A420 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0805A424 @ =0x0000B7FF ands r0, r1 strh r0, [r2] b _0805A458 .align 2, 0 _0805A420: .4byte gUnk_03000F50 _0805A424: .4byte 0x0000B7FF _0805A428: ldrh r0, [r4, #0x3c] bl sub_0807CCC8 movs r0, #3 strb r0, [r4, #0xc] ldr r2, _0805A444 @ =gUnk_03000F50 ldrh r1, [r2] movs r3, #0x90 lsls r3, r3, #7 adds r0, r3, #0 orrs r0, r1 strh r0, [r2] b _0805A458 .align 2, 0 _0805A444: .4byte gUnk_03000F50 _0805A448: ldr r0, _0805A460 @ =gUnk_0810860C ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _0805A458: adds r0, r4, #0 bl sub_0805A8EC pop {r4, pc} .align 2, 0 _0805A460: .4byte gUnk_0810860C thumb_func_start sub_0805A464 sub_0805A464: @ 0x0805A464 push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #0x3e] bl sub_0807CBD0 cmp r0, #0 beq _0805A47E movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0 bl sub_0805A4CC _0805A47E: pop {r4, pc} thumb_func_start sub_0805A480 sub_0805A480: @ 0x0805A480 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xd] cmp r0, #0 beq _0805A494 movs r0, #3 strb r0, [r1, #0xc] ldrh r0, [r1, #0x3c] bl sub_0807CCC8 _0805A494: pop {pc} .align 2, 0 thumb_func_start sub_0805A498 sub_0805A498: @ 0x0805A498 push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #0x3e] bl sub_0807CBD0 cmp r0, #0 bne _0805A4B2 movs r0, #4 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_0805A4CC _0805A4B2: pop {r4, pc} thumb_func_start sub_0805A4B4 sub_0805A4B4: @ 0x0805A4B4 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xd] cmp r0, #0 beq _0805A4C8 movs r0, #1 strb r0, [r1, #0xc] ldrh r0, [r1, #0x3c] bl sub_0807CD48 _0805A4C8: pop {pc} .align 2, 0 thumb_func_start sub_0805A4CC sub_0805A4CC: @ 0x0805A4CC push {r4, lr} adds r4, r0, #0 movs r0, #0x8e movs r2, #0 bl sub_080A2960 adds r3, r0, #0 cmp r3, #0 beq _0805A4F8 ldr r1, _0805A4FC @ =gUnk_03000BF0 ldrh r0, [r1, #6] ldrh r2, [r4, #0x38] adds r0, r0, r2 movs r2, #0 strh r0, [r3, #0x2e] ldrh r0, [r1, #8] ldrh r1, [r4, #0x3a] adds r0, r0, r1 subs r0, #0x30 strh r0, [r3, #0x32] str r4, [r3, #0x50] strb r2, [r4, #0xd] _0805A4F8: pop {r4, pc} .align 2, 0 _0805A4FC: .4byte gUnk_03000BF0 thumb_func_start sub_0805A500 sub_0805A500: @ 0x0805A500 push {r4, r5, lr} adds r4, r0, #0 ldrb r5, [r4, #0xc] cmp r5, #0 bne _0805A588 bl sub_0805A89C str r5, [r4, #0x28] movs r0, #0x36 bl sub_0807CBD0 cmp r0, #0 beq _0805A538 adds r3, r4, #0 adds r3, #0x23 movs r0, #3 strb r0, [r3] movs r0, #5 strb r0, [r4, #0xc] ldr r2, _0805A534 @ =gUnk_03000F50 ldrh r1, [r2] movs r5, #0x90 lsls r5, r5, #7 adds r0, r5, #0 orrs r0, r1 b _0805A574 .align 2, 0 _0805A534: .4byte gUnk_03000F50 _0805A538: movs r0, #0x34 bl sub_0807CBD0 cmp r0, #0 beq _0805A560 adds r3, r4, #0 adds r3, #0x23 movs r0, #4 strb r0, [r3] movs r0, #3 strb r0, [r4, #0xc] ldr r2, _0805A55C @ =gUnk_03000F50 ldrh r1, [r2] movs r5, #0x90 lsls r5, r5, #7 adds r0, r5, #0 orrs r0, r1 b _0805A574 .align 2, 0 _0805A55C: .4byte gUnk_03000F50 _0805A560: adds r3, r4, #0 adds r3, #0x23 movs r0, #4 strb r0, [r3] movs r0, #1 strb r0, [r4, #0xc] ldr r2, _0805A580 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0805A584 @ =0x0000B7FF ands r0, r1 _0805A574: strh r0, [r2] ldrb r0, [r3] bl sub_0805AAF0 b _0805A598 .align 2, 0 _0805A580: .4byte gUnk_03000F50 _0805A584: .4byte 0x0000B7FF _0805A588: ldr r0, _0805A5C0 @ =gUnk_08108620 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _0805A598: adds r0, r4, #0 bl sub_0805AA58 adds r0, r4, #0 bl sub_0805A9CC ldr r1, _0805A5C4 @ =gUnk_03000BF0 ldrh r3, [r1] cmp r3, #1 bne _0805A5CC ldr r2, _0805A5C8 @ =gUnk_03000F50 ldrh r1, [r2] movs r5, #0x80 lsls r5, r5, #7 adds r0, r5, #0 orrs r0, r1 strh r0, [r2] strb r3, [r4, #0xd] b _0805A5F0 .align 2, 0 _0805A5C0: .4byte gUnk_08108620 _0805A5C4: .4byte gUnk_03000BF0 _0805A5C8: .4byte gUnk_03000F50 _0805A5CC: ldrb r0, [r4, #0xd] cmp r0, #0 beq _0805A5F0 movs r0, #0 strb r0, [r4, #0xd] adds r0, r4, #0 adds r0, #0x20 ldrb r0, [r0] ldrb r1, [r1, #5] cmp r0, r1 beq _0805A5F0 ldr r2, _0805A5F4 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0805A5F8 @ =0x0000B7FF ands r0, r1 strh r0, [r2] bl sub_0805E780 _0805A5F0: pop {r4, r5, pc} .align 2, 0 _0805A5F4: .4byte gUnk_03000F50 _0805A5F8: .4byte 0x0000B7FF thumb_func_start sub_0805A5FC sub_0805A5FC: @ 0x0805A5FC push {r4, lr} adds r4, r0, #0 movs r0, #0x34 bl sub_0807CBD0 cmp r0, #0 beq _0805A616 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_0805A4CC _0805A616: pop {r4, pc} thumb_func_start sub_0805A618 sub_0805A618: @ 0x0805A618 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xd] cmp r0, #0 beq _0805A626 movs r0, #3 strb r0, [r1, #0xc] _0805A626: pop {pc} thumb_func_start sub_0805A628 sub_0805A628: @ 0x0805A628 push {r4, lr} adds r4, r0, #0 movs r0, #0x36 bl sub_0807CBD0 cmp r0, #0 beq _0805A64A movs r0, #4 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x23 movs r0, #3 strb r0, [r1] adds r0, r4, #0 movs r1, #3 bl sub_0805A4CC _0805A64A: pop {r4, pc} thumb_func_start sub_0805A64C sub_0805A64C: @ 0x0805A64C push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xd] cmp r0, #0 beq _0805A65A movs r0, #5 strb r0, [r1, #0xc] _0805A65A: pop {pc} thumb_func_start sub_0805A65C sub_0805A65C: @ 0x0805A65C bx lr .align 2, 0 thumb_func_start sub_0805A660 sub_0805A660: @ 0x0805A660 bx lr .align 2, 0 thumb_func_start sub_0805A664 sub_0805A664: @ 0x0805A664 push {r4, lr} adds r4, r0, #0 ldr r1, _0805A688 @ =gUnk_08108638 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0805A8EC adds r0, r4, #0 bl sub_0805A68C pop {r4, pc} .align 2, 0 _0805A688: .4byte gUnk_08108638 thumb_func_start sub_0805A68C sub_0805A68C: @ 0x0805A68C push {r4, lr} adds r4, r0, #0 movs r1, #0x38 ldrsh r0, [r4, r1] subs r0, #0x18 movs r2, #0x3a ldrsh r1, [r4, r2] subs r1, #0x18 movs r2, #0x30 movs r3, #0x30 bl sub_0806FBFC cmp r0, #0 beq _0805A6CC ldrh r1, [r4, #0x2c] ldr r0, _0805A6C4 @ =0x00001007 cmp r1, r0 bhi _0805A6E2 ldr r0, _0805A6C8 @ =gUnk_03000F50 adds r1, #1 movs r2, #0 strh r1, [r4, #0x2c] adds r0, #0x68 strh r1, [r0] adds r0, r4, #0 adds r0, #0x22 strb r2, [r0] b _0805A6E2 .align 2, 0 _0805A6C4: .4byte 0x00001007 _0805A6C8: .4byte gUnk_03000F50 _0805A6CC: ldrh r1, [r4, #0x2c] movs r0, #0x80 lsls r0, r0, #5 cmp r1, r0 bls _0805A6DA subs r0, r1, #1 strh r0, [r4, #0x2c] _0805A6DA: ldr r0, _0805A6E4 @ =gUnk_03000F50 ldrh r1, [r4, #0x2c] adds r0, #0x68 strh r1, [r0] _0805A6E2: pop {r4, pc} .align 2, 0 _0805A6E4: .4byte gUnk_03000F50 thumb_func_start sub_0805A6E8 sub_0805A6E8: @ 0x0805A6E8 push {r4, lr} adds r4, r0, #0 bl sub_0805A89C adds r1, r4, #0 adds r1, #0x23 movs r0, #0 strb r0, [r1] bl sub_0805AAF0 ldr r1, _0805A734 @ =gUnk_03000BF0 ldrh r0, [r1, #6] ldrh r2, [r4, #0x38] adds r0, r0, r2 strh r0, [r4, #0x38] ldrh r0, [r1, #8] ldrh r3, [r4, #0x3a] adds r0, r0, r3 strh r0, [r4, #0x3a] adds r0, r4, #0 bl sub_0805A73C cmp r0, #0 bne _0805A71E ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] _0805A71E: movs r0, #0x80 lsls r0, r0, #5 strh r0, [r4, #0x2c] ldr r2, _0805A738 @ =gUnk_03000F50 ldrh r1, [r2] movs r3, #0x90 lsls r3, r3, #7 adds r0, r3, #0 orrs r0, r1 strh r0, [r2] pop {r4, pc} .align 2, 0 _0805A734: .4byte gUnk_03000BF0 _0805A738: .4byte gUnk_03000F50 thumb_func_start sub_0805A73C sub_0805A73C: @ 0x0805A73C push {lr} adds r1, r0, #0 movs r2, #0x38 ldrsh r0, [r1, r2] subs r0, #6 movs r2, #0x3a ldrsh r1, [r1, r2] subs r1, #6 movs r2, #0xc movs r3, #0xc bl sub_0806FBFC pop {pc} .align 2, 0 thumb_func_start sub_0805A758 sub_0805A758: @ 0x0805A758 push {r4, lr} adds r4, r0, #0 bl sub_0805A73C cmp r0, #0 bne _0805A76A ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] _0805A76A: pop {r4, pc} thumb_func_start sub_0805A76C sub_0805A76C: @ 0x0805A76C push {r4, r5, r6, lr} adds r4, r0, #0 ldr r5, _0805A7D4 @ =gUnk_03001160 adds r0, r5, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 beq _0805A7D0 movs r1, #0x36 ldrsh r0, [r5, r1] cmp r0, #0 bne _0805A7D0 ldr r0, _0805A7D8 @ =gUnk_03003F80 ldr r6, [r0, #0x2c] cmp r6, #0 bne _0805A7D0 adds r0, #0xa9 ldrb r0, [r0] cmp r0, #1 bgt _0805A7D0 cmp r0, #0 blt _0805A7D0 adds r0, r4, #0 bl sub_0805A73C cmp r0, #0 beq _0805A7D0 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] adds r0, r5, #0 bl sub_08004168 movs r0, #4 strb r0, [r5, #0x14] movs r1, #0x96 lsls r1, r1, #2 adds r0, r4, #0 bl sub_0805E4E0 movs r0, #0xff bl sub_08078A90 ldr r1, _0805A7DC @ =gUnk_02034490 movs r0, #1 strb r0, [r1] ldr r0, _0805A7E0 @ =gUnk_03000BF0 str r6, [r0, #0x30] bl sub_08077B20 _0805A7D0: pop {r4, r5, r6, pc} .align 2, 0 _0805A7D4: .4byte gUnk_03001160 _0805A7D8: .4byte gUnk_03003F80 _0805A7DC: .4byte gUnk_02034490 _0805A7E0: .4byte gUnk_03000BF0 thumb_func_start sub_0805A7E4 sub_0805A7E4: @ 0x0805A7E4 push {lr} ldr r2, _0805A800 @ =gUnk_03003F80 ldrb r0, [r2, #0xc] cmp r0, #0x12 beq _0805A7FE movs r1, #0 movs r0, #0x12 strb r0, [r2, #0xc] adds r0, r2, #0 adds r0, #0x38 strb r1, [r0] adds r0, #1 strb r1, [r0] _0805A7FE: pop {pc} .align 2, 0 _0805A800: .4byte gUnk_03003F80 thumb_func_start sub_0805A804 sub_0805A804: @ 0x0805A804 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #4 bhi _0805A896 lsls r0, r0, #2 ldr r1, _0805A818 @ =_0805A81C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0805A818: .4byte _0805A81C _0805A81C: @ jump table .4byte _0805A830 @ case 0 .4byte _0805A858 @ case 1 .4byte _0805A866 @ case 2 .4byte _0805A872 @ case 3 .4byte _0805A88A @ case 4 _0805A830: ldrh r0, [r4, #0x3e] bl sub_0807CBD0 cmp r0, #0 beq _0805A83E movs r0, #1 b _0805A840 _0805A83E: movs r0, #2 _0805A840: strb r0, [r4, #0xc] movs r0, #1 strb r0, [r4, #0xd] ldrb r1, [r4, #0x10] movs r0, #0x20 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 b _0805A89A _0805A858: ldrh r0, [r4, #0x3e] bl sub_0807CBD0 cmp r0, #0 bne _0805A89A movs r0, #2 b _0805A87E _0805A866: ldrb r0, [r4, #0xd] cmp r0, #0 beq _0805A89A movs r0, #3 strb r0, [r4, #0xc] b _0805A89A _0805A872: ldrh r0, [r4, #0x3e] bl sub_0807CBD0 cmp r0, #0 beq _0805A89A movs r0, #4 _0805A87E: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #4 bl sub_0805A4CC b _0805A89A _0805A88A: ldrb r0, [r4, #0xd] cmp r0, #0 beq _0805A89A movs r0, #1 strb r0, [r4, #0xc] b _0805A89A _0805A896: bl sub_0805E780 _0805A89A: pop {r4, pc} thumb_func_start sub_0805A89C sub_0805A89C: @ 0x0805A89C push {r4, lr} adds r4, r0, #0 movs r1, #6 bl sub_0805E3A0 movs r2, #0 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x20 orrs r0, r1 strb r0, [r4, #0x10] movs r0, #8 strb r0, [r4, #0xe] movs r0, #0x10 strb r0, [r4, #0xf] adds r0, r4, #0 adds r0, #0x21 strb r2, [r0] adds r0, #1 strb r2, [r0] ldr r1, _0805A8E4 @ =gUnk_03000BF0 ldrb r2, [r1, #5] subs r0, #2 strb r2, [r0] ldrh r0, [r1, #6] strh r0, [r4, #0x24] ldrh r0, [r1, #8] strh r0, [r4, #0x26] ldr r1, _0805A8E8 @ =sub_0805AAC8 adds r0, r4, #0 movs r2, #0 bl sub_08052D74 pop {r4, pc} .align 2, 0 _0805A8E4: .4byte gUnk_03000BF0 _0805A8E8: .4byte sub_0805AAC8 thumb_func_start sub_0805A8EC sub_0805A8EC: @ 0x0805A8EC push {r4, r5, lr} adds r4, r0, #0 bl sub_0805AA58 adds r0, r4, #0 bl sub_0805A94C ldr r1, _0805A914 @ =gUnk_03000BF0 ldrh r3, [r1] cmp r3, #1 bne _0805A91C ldr r2, _0805A918 @ =gUnk_03000F50 ldrh r1, [r2] movs r5, #0x80 lsls r5, r5, #7 adds r0, r5, #0 orrs r0, r1 strh r0, [r2] strb r3, [r4, #0xd] b _0805A940 .align 2, 0 _0805A914: .4byte gUnk_03000BF0 _0805A918: .4byte gUnk_03000F50 _0805A91C: ldrb r0, [r4, #0xd] cmp r0, #0 beq _0805A940 movs r0, #0 strb r0, [r4, #0xd] adds r0, r4, #0 adds r0, #0x20 ldrb r0, [r0] ldrb r1, [r1, #5] cmp r0, r1 beq _0805A940 ldr r2, _0805A944 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0805A948 @ =0x0000B7FF ands r0, r1 strh r0, [r2] bl sub_0805E780 _0805A940: pop {r4, r5, pc} .align 2, 0 _0805A944: .4byte gUnk_03000F50 _0805A948: .4byte 0x0000B7FF thumb_func_start sub_0805A94C sub_0805A94C: @ 0x0805A94C push {r4, lr} ldr r4, _0805A9C4 @ =gUnk_03000F50 ldr r3, _0805A9C8 @ =gUnk_03000BF0 ldrh r1, [r3, #0xa] ldrh r2, [r0, #0x24] subs r1, r1, r2 ldrh r2, [r0, #0x34] adds r1, r1, r2 strh r1, [r4, #0x2e] ldrh r1, [r3, #0xc] ldrh r2, [r0, #0x26] subs r1, r1, r2 ldrh r0, [r0, #0x36] adds r1, r1, r0 strh r1, [r4, #0x30] movs r1, #0x2e ldrsh r0, [r4, r1] rsbs r0, r0, #0 movs r2, #0x80 lsls r2, r2, #1 adds r1, r0, r2 cmp r0, #0 bge _0805A97C movs r0, #0 _0805A97C: cmp r0, #0xf0 ble _0805A982 movs r0, #0xf0 _0805A982: cmp r1, #0 bge _0805A988 movs r1, #0 _0805A988: cmp r1, #0xf0 ble _0805A98E movs r1, #0xf0 _0805A98E: lsls r0, r0, #8 orrs r0, r1 adds r1, r4, #0 adds r1, #0x5a strh r0, [r1] movs r1, #0x30 ldrsh r0, [r4, r1] rsbs r0, r0, #0 adds r1, r0, r2 cmp r0, #0 bge _0805A9A6 movs r0, #0 _0805A9A6: cmp r0, #0xa0 ble _0805A9AC movs r0, #0xa0 _0805A9AC: cmp r1, #0 bge _0805A9B2 movs r1, #0 _0805A9B2: cmp r1, #0xa0 ble _0805A9B8 movs r1, #0xa0 _0805A9B8: lsls r0, r0, #8 orrs r0, r1 adds r1, r4, #0 adds r1, #0x5e strh r0, [r1] pop {r4, pc} .align 2, 0 _0805A9C4: .4byte gUnk_03000F50 _0805A9C8: .4byte gUnk_03000BF0 thumb_func_start sub_0805A9CC sub_0805A9CC: @ 0x0805A9CC push {r4, r5, lr} adds r4, r0, #0 ldr r3, _0805AA4C @ =gUnk_03000F50 ldr r5, _0805AA50 @ =gUnk_03000BF0 ldrh r0, [r5, #0xa] ldrh r1, [r4, #0x24] subs r0, r0, r1 ldrh r1, [r4, #0x34] adds r0, r0, r1 strh r0, [r3, #0x2e] movs r2, #0x2e ldrsh r0, [r3, r2] rsbs r2, r0, #0 movs r0, #0x80 lsls r0, r0, #1 adds r1, r2, r0 cmp r2, #0 bge _0805A9F2 movs r2, #0 _0805A9F2: cmp r2, #0xf0 ble _0805A9F8 movs r2, #0xf0 _0805A9F8: cmp r1, #0 bge _0805A9FE movs r1, #0 _0805A9FE: cmp r1, #0xf0 ble _0805AA04 movs r1, #0xf0 _0805AA04: lsls r0, r2, #8 orrs r0, r1 adds r1, r3, #0 adds r1, #0x5a strh r0, [r1] movs r1, #0xc ldrsh r0, [r5, r1] ldrh r1, [r4, #0x26] subs r0, r0, r1 movs r2, #0x36 ldrsh r1, [r4, r2] adds r2, r0, r1 movs r1, #0x3f adds r0, r2, #0 ands r0, r1 strh r0, [r3, #0x30] adds r0, r2, #0 cmp r0, #0 bge _0805AA2C adds r0, #0x3f _0805AA2C: asrs r0, r0, #6 lsls r0, r0, #9 ldr r1, _0805AA54 @ =gUnk_02001A40 adds r1, r0, r1 str r1, [r3, #0x34] adds r2, r3, #0 adds r2, #0x5e movs r0, #0xa0 strh r0, [r2] ldr r0, [r4, #0x28] cmp r0, r1 beq _0805AA4A str r1, [r4, #0x28] movs r0, #1 strh r0, [r3, #0x32] _0805AA4A: pop {r4, r5, pc} .align 2, 0 _0805AA4C: .4byte gUnk_03000F50 _0805AA50: .4byte gUnk_03000BF0 _0805AA54: .4byte gUnk_02001A40 thumb_func_start sub_0805AA58 sub_0805AA58: @ 0x0805AA58 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r5, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _0805AA8C movs r0, #8 strb r0, [r4, #0xe] adds r2, r4, #0 adds r2, #0x21 ldrb r0, [r2] adds r0, #1 movs r1, #3 ands r0, r1 strb r0, [r2] ldrb r0, [r2] lsls r0, r0, #5 ldr r1, _0805AABC @ =gUnk_085A97A0 adds r0, r0, r1 movs r1, #5 movs r2, #1 bl sub_0801D754 _0805AA8C: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] ands r0, r5 cmp r0, #0 bne _0805AABA movs r0, #0x10 strb r0, [r4, #0xf] adds r2, r4, #0 adds r2, #0x22 ldrb r0, [r2] adds r0, #1 movs r1, #0xf ands r0, r1 strb r0, [r2] ldr r1, _0805AAC0 @ =gUnk_03000F50 ldr r3, _0805AAC4 @ =gUnk_081085B8 ldrb r0, [r2] lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] adds r1, #0x68 strh r0, [r1] _0805AABA: pop {r4, r5, pc} .align 2, 0 _0805AABC: .4byte gUnk_085A97A0 _0805AAC0: .4byte gUnk_03000F50 _0805AAC4: .4byte gUnk_081085B8 thumb_func_start sub_0805AAC8 sub_0805AAC8: @ 0x0805AAC8 push {r4, lr} adds r4, r0, #0 adds r0, #0x23 ldrb r0, [r0] bl sub_0805AAF0 adds r0, r4, #0 bl sub_0805A280 pop {r4, pc} thumb_func_start sub_0805AADC sub_0805AADC: @ 0x0805AADC push {lr} ldr r1, _0805AAEC @ =gUnk_08108648 lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] bl sub_0801D7EC pop {pc} .align 2, 0 _0805AAEC: .4byte gUnk_08108648 thumb_func_start sub_0805AAF0 sub_0805AAF0: @ 0x0805AAF0 push {lr} bl sub_0805AADC ldr r3, _0805AB34 @ =gUnk_03000F50 adds r1, r3, #0 adds r1, #0x66 movs r2, #0 ldr r0, _0805AB38 @ =0x00003E48 strh r0, [r1] adds r1, #2 ldr r0, _0805AB3C @ =0x00001008 strh r0, [r1] ldr r0, _0805AB40 @ =0x00001E04 strh r0, [r3, #0x2c] ldr r0, _0805AB44 @ =gUnk_02001A40 str r0, [r3, #0x34] strh r2, [r3, #0x2e] strh r2, [r3, #0x30] movs r0, #1 strh r0, [r3, #0x32] subs r1, #8 ldr r0, _0805AB48 @ =0x00003F3F strh r0, [r1] adds r1, #2 movs r0, #0x37 strh r0, [r1] subs r1, #8 movs r0, #0xf0 strh r0, [r1] adds r1, #4 movs r0, #0xa0 strh r0, [r1] pop {pc} .align 2, 0 _0805AB34: .4byte gUnk_03000F50 _0805AB38: .4byte 0x00003E48 _0805AB3C: .4byte 0x00001008 _0805AB40: .4byte 0x00001E04 _0805AB44: .4byte gUnk_02001A40 _0805AB48: .4byte 0x00003F3F thumb_func_start sub_0805AB4C sub_0805AB4C: @ 0x0805AB4C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r6, r0, #0 ldrb r0, [r6, #0xa] bl sub_0804B128 adds r4, r0, #0 cmp r4, #0 bne _0805AB68 bl sub_0805E780 _0805AB68: ldrb r0, [r6, #0xc] movs r1, #0x20 adds r1, r1, r6 mov r8, r1 cmp r0, #0 bne _0805ABC8 adds r0, #1 strb r0, [r6, #0xc] ldr r0, _0805ABF0 @ =gUnk_02033A90 ldrb r0, [r0, #8] strb r0, [r1] adds r0, r6, #0 movs r1, #6 bl sub_0805E3A0 ldr r2, _0805ABF4 @ =gUnk_02031EC0 ldrb r0, [r6, #0xb] mov r3, r8 ldrb r1, [r3] adds r0, r0, r1 lsls r0, r0, #4 adds r2, r0, r2 movs r5, #0 mov sl, r5 ldrb r0, [r4] movs r7, #0x21 adds r7, r7, r6 mov ip, r7 cmp r0, #0xff beq _0805ABBE _0805ABA4: adds r1, r2, #0 adds r0, r4, #0 ldm r0!, {r3, r5, r7} stm r1!, {r3, r5, r7} ldr r0, [r0] str r0, [r1] movs r0, #1 add sl, r0 adds r4, #0x10 adds r2, #0x10 ldrb r0, [r4] cmp r0, #0xff bne _0805ABA4 _0805ABBE: movs r0, #0xff strb r0, [r2] mov r2, sl mov r1, ip strb r2, [r1] _0805ABC8: ldr r4, _0805ABF4 @ =gUnk_02031EC0 ldrb r2, [r6, #0xb] mov r3, r8 ldrb r1, [r3] adds r0, r2, r1 lsls r0, r0, #4 adds r4, r0, r4 ldr r0, _0805ABF8 @ =gUnk_02002A40 movs r5, #1 mov sl, r5 mov r7, sl ldrb r0, [r0, #8] lsls r7, r0 mov sl, r7 adds r0, r1, #7 asrs r0, r0, #3 ldr r1, _0805ABFC @ =gUnk_020342F8 adds r7, r0, r1 adds r5, r2, #0 b _0805ACAA .align 2, 0 _0805ABF0: .4byte gUnk_02033A90 _0805ABF4: .4byte gUnk_02031EC0 _0805ABF8: .4byte gUnk_02002A40 _0805ABFC: .4byte gUnk_020342F8 _0805AC00: ldrh r0, [r4, #4] ldrh r1, [r4, #6] movs r2, #0x18 movs r3, #0x20 bl sub_0800290E cmp r0, #0 bne _0805AC1A adds r0, r7, #0 adds r1, r5, #0 bl sub_0801D5D4 b _0805ACA6 _0805AC1A: ldrh r0, [r4, #0xe] mov r1, sl ands r0, r1 cmp r0, #0 beq _0805ACA6 ldr r0, _0805AC5C @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x46 bhi _0805ACA6 adds r0, r7, #0 adds r1, r5, #0 bl sub_0801D5BC cmp r0, #0 bne _0805ACA6 ldr r0, [r4, #8] cmp r0, #0 beq _0805AC48 bl sub_0807DAA0 mov sb, r0 cmp r0, #0 beq _0805ACA6 _0805AC48: ldrb r0, [r6, #0xe] cmp r0, #0 bne _0805AC60 ldrb r0, [r4] ldrb r1, [r4, #1] ldrb r2, [r4, #2] bl sub_0806ED50 b _0805AC6A .align 2, 0 _0805AC5C: .4byte gUnk_03003DBC _0805AC60: ldrb r0, [r4] ldrb r1, [r4, #1] ldrb r2, [r4, #2] bl sub_080A2960 _0805AC6A: adds r3, r0, #0 mov r2, r8 ldrb r0, [r2] adds r0, #1 adds r0, r5, r0 adds r1, r3, #0 adds r1, #0x45 strb r0, [r1] ldrh r0, [r4, #0xc] strb r0, [r3, #0xe] ldr r1, _0805ACBC @ =gUnk_03000BF0 ldrh r0, [r1, #6] ldrh r2, [r4, #4] adds r0, r0, r2 strh r0, [r3, #0x2e] ldrh r0, [r1, #8] ldrh r1, [r4, #6] adds r0, r0, r1 strh r0, [r3, #0x32] ldrb r1, [r4, #3] adds r0, r3, #0 adds r0, #0x38 strb r1, [r0] ldr r2, [r4, #8] cmp r2, #0 beq _0805ACA6 adds r0, r3, #0 mov r1, sb bl sub_0807DAF0 _0805ACA6: adds r4, #0x10 adds r5, #1 _0805ACAA: ldrb r0, [r4] cmp r0, #0xff bne _0805AC00 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _0805ACBC: .4byte gUnk_03000BF0 thumb_func_start sub_0805ACC0 sub_0805ACC0: @ 0x0805ACC0 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r0, #0x45 ldrb r1, [r0] cmp r1, #0 bne _0805ACF0 b _0805AD32 _0805ACD0: ldrb r0, [r4, #0xb] subs r0, r5, r0 lsls r0, r0, #4 adds r3, r3, r0 ldrh r0, [r3, #4] ldr r2, _0805ACEC @ =gUnk_03000BF0 ldrh r1, [r2, #6] adds r0, r0, r1 lsls r0, r0, #0x10 ldrh r1, [r3, #6] orrs r0, r1 ldrh r2, [r2, #8] adds r0, r0, r2 b _0805AD34 .align 2, 0 _0805ACEC: .4byte gUnk_03000BF0 _0805ACF0: movs r0, #0x7f ands r0, r1 subs r5, r0, #1 ldr r6, _0805AD3C @ =gUnk_03003DA0 ldr r4, [r6, #4] cmp r4, r6 beq _0805AD32 ldr r0, _0805AD40 @ =0x00001609 mov r8, r0 ldr r0, _0805AD44 @ =0x0000FFFF adds r7, r0, #0 _0805AD06: ldrh r0, [r4, #8] ands r0, r7 cmp r0, r8 bne _0805AD2C ldrb r1, [r4, #0xb] cmp r1, r5 bgt _0805AD2C adds r0, r4, #0 adds r0, #0x21 ldrb r0, [r0] adds r0, r1, r0 cmp r0, r5 ble _0805AD2C ldrb r0, [r4, #0xa] bl sub_0804B128 adds r3, r0, #0 cmp r3, #0 bne _0805ACD0 _0805AD2C: ldr r4, [r4, #4] cmp r4, r6 bne _0805AD06 _0805AD32: movs r0, #0 _0805AD34: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0805AD3C: .4byte gUnk_03003DA0 _0805AD40: .4byte 0x00001609 _0805AD44: .4byte 0x0000FFFF thumb_func_start sub_0805AD48 sub_0805AD48: @ 0x0805AD48 push {lr} ldr r2, _0805AD5C @ =gUnk_08108654 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805AD5C: .4byte gUnk_08108654 thumb_func_start sub_0805AD60 sub_0805AD60: @ 0x0805AD60 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldrh r0, [r4, #0x3c] bl sub_0807CBE4 cmp r0, #0 beq _0805AD76 bl sub_0805E780 _0805AD76: adds r0, r4, #0 bl sub_0805AD80 pop {r4, pc} .align 2, 0 thumb_func_start sub_0805AD80 sub_0805AD80: @ 0x0805AD80 push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _0805ADD0 ldrb r1, [r4, #0xa] ldrb r2, [r4, #0xb] movs r0, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _0805ADCC adds r0, r4, #0 adds r0, #0x35 ldrb r0, [r0] strb r0, [r2, #0xe] adds r0, r4, #0 adds r0, #0x36 ldrb r1, [r0] adds r0, r2, #0 adds r0, #0x38 strb r1, [r0] ldr r1, _0805ADD4 @ =gUnk_03000BF0 ldrh r0, [r1, #6] ldrh r3, [r4, #0x38] adds r0, r0, r3 strh r0, [r2, #0x2e] ldrh r0, [r1, #8] ldrh r1, [r4, #0x3a] adds r0, r0, r1 strh r0, [r2, #0x32] ldrh r1, [r4, #0x3c] adds r0, r2, #0 adds r0, #0x86 strh r1, [r0] _0805ADCC: bl sub_0805E780 _0805ADD0: pop {r4, pc} .align 2, 0 _0805ADD4: .4byte gUnk_03000BF0 thumb_func_start sub_0805ADD8 sub_0805ADD8: @ 0x0805ADD8 push {r4, lr} adds r4, r0, #0 cmp r4, #0 bne _0805AE04 ldr r0, _0805ADF8 @ =gUnk_02033A90 ldr r1, _0805ADFC @ =0x0000088C adds r0, r0, r1 ldr r0, [r0] ldr r1, _0805AE00 @ =sub_0805AEDC cmp r0, r1 beq _0805AEC4 movs r0, #0 bl _call_via_r1 b _0805AEC4 .align 2, 0 _0805ADF8: .4byte gUnk_02033A90 _0805ADFC: .4byte 0x0000088C _0805AE00: .4byte sub_0805AEDC _0805AE04: ldrb r2, [r4, #0xc] cmp r2, #0 bne _0805AE5E movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x20 orrs r0, r1 strb r0, [r4, #0x10] strb r2, [r4, #0xe] movs r0, #8 strb r0, [r4, #0xf] ldr r0, _0805AE44 @ =gUnk_0810865C ldrh r0, [r0] strh r0, [r4, #0x20] adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 ldr r0, _0805AE48 @ =gUnk_02033A90 ldr r2, _0805AE4C @ =0x0000088C adds r0, r0, r2 ldr r0, [r0] cmp r0, #0 bne _0805AE58 ldr r1, _0805AE50 @ =sub_0805AEDC ldr r2, _0805AE54 @ =sub_0805AF3C adds r0, r4, #0 bl sub_08052D74 b _0805AEC4 .align 2, 0 _0805AE44: .4byte gUnk_0810865C _0805AE48: .4byte gUnk_02033A90 _0805AE4C: .4byte 0x0000088C _0805AE50: .4byte sub_0805AEDC _0805AE54: .4byte sub_0805AF3C _0805AE58: bl sub_0805E780 b _0805AEC4 _0805AE5E: ldr r2, _0805AEC8 @ =gUnk_0810865C ldrb r0, [r4, #0xe] lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r3, _0805AECC @ =gUnk_03000F50 cmp r0, #0 beq _0805AEA2 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] movs r1, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _0805AEA2 movs r0, #4 strb r0, [r4, #0xf] ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] ands r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] cmp r0, #0 beq _0805AEA2 ldrb r0, [r4, #0xe] lsls r0, r0, #1 adds r0, r0, r2 ldrh r1, [r0] strh r1, [r4, #0x20] adds r0, r3, #0 adds r0, #0x68 strh r1, [r0] _0805AEA2: ldr r1, _0805AED0 @ =gUnk_03000BF0 ldr r0, [r1, #0x28] ldr r2, _0805AED4 @ =0xFFFFE000 adds r0, r0, r2 str r0, [r1, #0x28] ldr r0, [r1, #0x2c] ldr r2, _0805AED8 @ =0xFFFFF000 adds r0, r0, r2 str r0, [r1, #0x2c] ldrh r0, [r1, #0x2a] ldrh r2, [r1, #0xa] adds r0, r0, r2 strh r0, [r3, #0x2e] ldrh r0, [r1, #0x2e] ldrh r1, [r1, #0xc] adds r0, r0, r1 strh r0, [r3, #0x30] _0805AEC4: pop {r4, pc} .align 2, 0 _0805AEC8: .4byte gUnk_0810865C _0805AECC: .4byte gUnk_03000F50 _0805AED0: .4byte gUnk_03000BF0 _0805AED4: .4byte 0xFFFFE000 _0805AED8: .4byte 0xFFFFF000 thumb_func_start sub_0805AEDC sub_0805AEDC: @ 0x0805AEDC push {r4, lr} adds r3, r0, #0 ldr r2, _0805AF2C @ =gUnk_03000F50 ldr r0, _0805AF30 @ =0x00001E05 strh r0, [r2, #0x2c] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] adds r1, r2, #0 adds r1, #0x66 ldr r0, _0805AF34 @ =0x00003648 strh r0, [r1] movs r0, #0x80 lsls r0, r0, #5 adds r1, r0, #0 cmp r3, #0 beq _0805AF06 ldrh r1, [r3, #0x20] _0805AF06: adds r0, r2, #0 adds r0, #0x68 strh r1, [r0] ldr r1, _0805AF38 @ =gUnk_03000BF0 ldrh r0, [r1, #0x2a] ldrh r4, [r1, #0xa] adds r0, r0, r4 strh r0, [r2, #0x2e] ldrh r0, [r1, #0x2e] ldrh r1, [r1, #0xc] adds r0, r0, r1 strh r0, [r2, #0x30] cmp r3, #0 beq _0805AF28 adds r0, r3, #0 bl sub_0805ADD8 _0805AF28: pop {r4, pc} .align 2, 0 _0805AF2C: .4byte gUnk_03000F50 _0805AF30: .4byte 0x00001E05 _0805AF34: .4byte 0x00003648 _0805AF38: .4byte gUnk_03000BF0 thumb_func_start sub_0805AF3C sub_0805AF3C: @ 0x0805AF3C ldrb r2, [r0, #0x10] movs r1, #0xdf ands r1, r2 movs r3, #0 strb r1, [r0, #0x10] ldr r1, _0805AF58 @ =gUnk_03000F50 ldrh r2, [r1] ldr r0, _0805AF5C @ =0x0000F7FF ands r0, r2 strh r0, [r1] adds r1, #0x66 strh r3, [r1] bx lr .align 2, 0 _0805AF58: .4byte gUnk_03000F50 _0805AF5C: .4byte 0x0000F7FF thumb_func_start sub_0805AF60 sub_0805AF60: @ 0x0805AF60 push {r4, lr} adds r4, r0, #0 cmp r4, #0 bne _0805AF8C ldr r0, _0805AF80 @ =gUnk_02033A90 ldr r1, _0805AF84 @ =0x0000088C adds r0, r0, r1 ldr r0, [r0] ldr r1, _0805AF88 @ =sub_0805AFFC cmp r0, r1 beq _0805AFEE movs r0, #0 bl _call_via_r1 b _0805AFEE .align 2, 0 _0805AF80: .4byte gUnk_02033A90 _0805AF84: .4byte 0x0000088C _0805AF88: .4byte sub_0805AFFC _0805AF8C: ldrb r0, [r4, #0xc] cmp r0, #0 bne _0805AFD2 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x20 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 ldr r0, _0805AFC0 @ =gUnk_02033A90 ldr r2, _0805AFC4 @ =0x0000088C adds r0, r0, r2 ldr r0, [r0] cmp r0, #0 bne _0805AFCC ldr r1, _0805AFC8 @ =sub_0805AFFC adds r0, r4, #0 movs r2, #0 bl sub_08052D74 b _0805AFEE .align 2, 0 _0805AFC0: .4byte gUnk_02033A90 _0805AFC4: .4byte 0x0000088C _0805AFC8: .4byte sub_0805AFFC _0805AFCC: bl sub_0805E780 b _0805AFEE _0805AFD2: ldr r1, _0805AFF0 @ =gUnk_03000BF0 ldr r0, [r1, #0x28] ldr r3, _0805AFF4 @ =0xFFFFE000 adds r0, r0, r3 str r0, [r1, #0x28] ldr r2, _0805AFF8 @ =gUnk_03000F50 ldrh r0, [r1, #0x2a] ldrh r3, [r1, #0xa] adds r0, r0, r3 strh r0, [r2, #0x2e] ldrh r0, [r1, #0x2e] ldrh r1, [r1, #0xc] adds r0, r0, r1 strh r0, [r2, #0x30] _0805AFEE: pop {r4, pc} .align 2, 0 _0805AFF0: .4byte gUnk_03000BF0 _0805AFF4: .4byte 0xFFFFE000 _0805AFF8: .4byte gUnk_03000F50 thumb_func_start sub_0805AFFC sub_0805AFFC: @ 0x0805AFFC ldr r2, _0805B024 @ =gUnk_03000F50 ldr r0, _0805B028 @ =0x00001E03 strh r0, [r2, #0x2c] ldrh r1, [r2] movs r3, #0x80 lsls r3, r3, #4 adds r0, r3, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0805B02C @ =gUnk_03000BF0 ldrh r0, [r1, #0x2a] ldrh r3, [r1, #0xa] adds r0, r0, r3 strh r0, [r2, #0x2e] ldrh r0, [r1, #0x2e] ldrh r1, [r1, #0xc] adds r0, r0, r1 strh r0, [r2, #0x30] bx lr .align 2, 0 _0805B024: .4byte gUnk_03000F50 _0805B028: .4byte 0x00001E03 _0805B02C: .4byte gUnk_03000BF0 thumb_func_start sub_0805B030 sub_0805B030: @ 0x0805B030 push {lr} ldr r2, _0805B044 @ =gUnk_08108668 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805B044: .4byte gUnk_08108668 thumb_func_start sub_0805B048 sub_0805B048: @ 0x0805B048 push {r4, r5, lr} adds r4, r0, #0 movs r1, #6 bl sub_0805E3A0 adds r0, r4, #0 adds r0, #0x20 movs r1, #0x20 bl sub_0801D630 movs r0, #1 strb r0, [r4, #0xc] ldr r2, _0805B08C @ =gUnk_03000BF0 ldrb r0, [r2, #5] adds r1, r4, #0 adds r1, #0x3f strb r0, [r1] ldrb r1, [r4, #0xa] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, _0805B090 @ =gUnk_08108764 adds r5, r0, r1 ldrb r0, [r5, #0xa] cmp r0, #0 bne _0805B094 ldrh r0, [r2, #6] strh r0, [r4, #0x20] ldrh r0, [r2, #8] strh r0, [r4, #0x22] ldrh r0, [r2, #0x1e] strh r0, [r4, #0x24] ldrh r0, [r2, #0x20] b _0805B0B2 .align 2, 0 _0805B08C: .4byte gUnk_03000BF0 _0805B090: .4byte gUnk_08108764 _0805B094: ldrb r0, [r5, #8] lsls r0, r0, #4 ldrh r1, [r2, #6] adds r0, r0, r1 strh r0, [r4, #0x20] ldrb r0, [r5, #9] lsls r0, r0, #4 ldrh r2, [r2, #8] adds r0, r0, r2 strh r0, [r4, #0x22] ldrb r0, [r5, #0xa] lsls r0, r0, #4 strh r0, [r4, #0x24] ldrb r0, [r5, #0xb] lsls r0, r0, #4 _0805B0B2: strh r0, [r4, #0x26] ldr r1, [r5, #0xc] rsbs r0, r1, #0 orrs r0, r1 lsrs r0, r0, #0x1f strb r0, [r4, #0xb] cmp r0, #0 beq _0805B0FC ldrb r0, [r4, #0x10] movs r1, #0x20 orrs r0, r1 strb r0, [r4, #0x10] ldr r0, [r5, #0xc] ldrh r0, [r0, #4] strh r0, [r4, #0x34] ldr r0, [r5, #0xc] ldrh r0, [r0, #6] strh r0, [r4, #0x36] ldr r0, [r5, #0xc] ldrh r0, [r0, #8] strh r0, [r4, #0x30] ldr r0, [r5, #0xc] ldrh r0, [r0, #0xa] strh r0, [r4, #0x32] bl sub_0805BC4C adds r0, r4, #0 bl sub_0805B2B0 adds r0, r4, #0 bl sub_0805B328 ldr r1, _0805B160 @ =sub_0805B328 adds r0, r4, #0 movs r2, #0 bl sub_08052D74 _0805B0FC: ldr r0, [r5, #0x10] cmp r0, #0 beq _0805B15E ldrb r1, [r0] ldrb r2, [r0, #1] movs r0, #0x28 bl sub_080A2960 adds r3, r0, #0 cmp r3, #0 beq _0805B128 ldr r1, [r5, #0x10] ldr r2, _0805B164 @ =gUnk_03000BF0 ldrh r0, [r2, #6] ldrh r1, [r1, #4] adds r0, r0, r1 strh r0, [r3, #0x2e] ldr r1, [r5, #0x10] ldrh r0, [r2, #8] ldrh r1, [r1, #6] adds r0, r0, r1 strh r0, [r3, #0x32] _0805B128: ldrb r0, [r4, #0xa] cmp r0, #0xa bne _0805B15E movs r0, #0x4b bl sub_0807CBD0 cmp r0, #0 bne _0805B15E movs r0, #0x28 movs r1, #3 movs r2, #3 bl sub_080A2960 adds r3, r0, #0 cmp r3, #0 beq _0805B15E ldr r1, [r5, #0x10] ldr r2, _0805B164 @ =gUnk_03000BF0 ldrh r0, [r2, #6] ldrh r1, [r1, #4] adds r0, r0, r1 strh r0, [r3, #0x2e] ldr r1, [r5, #0x10] ldrh r0, [r2, #8] ldrh r1, [r1, #6] adds r0, r0, r1 strh r0, [r3, #0x32] _0805B15E: pop {r4, r5, pc} .align 2, 0 _0805B160: .4byte sub_0805B328 _0805B164: .4byte gUnk_03000BF0 thumb_func_start sub_0805B168 sub_0805B168: @ 0x0805B168 push {r4, r5, lr} adds r4, r0, #0 bl sub_0805B1CC adds r5, r0, #0 cmp r5, #0 beq _0805B182 adds r0, r4, #0 bl sub_0805B210 bl sub_0805E780 b _0805B1C0 _0805B182: adds r0, r4, #0 bl sub_0805B2B0 ldr r1, _0805B194 @ =gUnk_03000BF0 ldrh r0, [r1] cmp r0, #1 bne _0805B198 strb r0, [r4, #0xd] b _0805B1C0 .align 2, 0 _0805B194: .4byte gUnk_03000BF0 _0805B198: ldrb r0, [r4, #0xd] cmp r0, #0 beq _0805B1C0 strb r5, [r4, #0xd] adds r0, r4, #0 adds r0, #0x3f ldrb r0, [r0] ldrb r1, [r1, #5] cmp r0, r1 beq _0805B1C0 ldrb r0, [r4, #0xb] cmp r0, #0 beq _0805B1BC ldr r2, _0805B1C4 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0805B1C8 @ =0x0000F7FF ands r0, r1 strh r0, [r2] _0805B1BC: bl sub_0805E780 _0805B1C0: pop {r4, r5, pc} .align 2, 0 _0805B1C4: .4byte gUnk_03000F50 _0805B1C8: .4byte 0x0000F7FF thumb_func_start sub_0805B1CC sub_0805B1CC: @ 0x0805B1CC push {r4, r5, lr} movs r5, #0 movs r1, #0x20 ldrsh r4, [r0, r1] movs r2, #0x22 ldrsh r1, [r0, r2] ldrh r2, [r0, #0x24] ldrh r3, [r0, #0x26] adds r0, r4, #0 bl sub_0806FBFC cmp r0, #0 beq _0805B20C ldr r2, _0805B1FC @ =gUnk_03003F80 ldr r1, [r2, #0x30] movs r0, #5 ands r0, r1 cmp r0, #5 bne _0805B200 movs r0, #0x80 lsls r0, r0, #8 orrs r1, r0 str r1, [r2, #0x30] b _0805B20C .align 2, 0 _0805B1FC: .4byte gUnk_03003F80 _0805B200: movs r0, #0x80 lsls r0, r0, #8 ands r1, r0 cmp r1, #0 beq _0805B20C movs r5, #1 _0805B20C: adds r0, r5, #0 pop {r4, r5, pc} thumb_func_start sub_0805B210 sub_0805B210: @ 0x0805B210 push {r4, r5, lr} ldr r2, _0805B248 @ =gUnk_030010A0 movs r1, #1 strb r1, [r2, #8] strb r1, [r2, #9] movs r1, #4 strb r1, [r2, #0xe] ldrb r1, [r0, #0xa] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, _0805B24C @ =gUnk_08108764 adds r4, r0, r1 ldrb r0, [r4, #1] strb r0, [r2, #0xc] ldrb r0, [r4, #2] strb r0, [r2, #0xd] ldrb r0, [r4, #3] strb r0, [r2, #0x14] ldr r0, _0805B250 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 adds r5, r2, #0 cmp r0, #0 beq _0805B254 movs r0, #6 b _0805B256 .align 2, 0 _0805B248: .4byte gUnk_030010A0 _0805B24C: .4byte gUnk_08108764 _0805B250: .4byte gUnk_03003F80 _0805B254: movs r0, #2 _0805B256: strb r0, [r5, #0xf] ldrb r0, [r4] cmp r0, #1 beq _0805B278 cmp r0, #1 bgt _0805B268 cmp r0, #0 beq _0805B26E b _0805B2AC _0805B268: cmp r0, #2 beq _0805B2A0 b _0805B2AC _0805B26E: ldrh r0, [r4, #4] strh r0, [r5, #0x10] ldrh r0, [r4, #6] strh r0, [r5, #0x12] b _0805B2AC _0805B278: ldr r2, _0805B298 @ =gUnk_03001160 ldr r3, _0805B29C @ =gUnk_03000BF0 ldrh r0, [r2, #0x2e] ldrh r1, [r3, #6] subs r0, r0, r1 ldrh r1, [r4, #4] adds r0, r0, r1 strh r0, [r5, #0x10] ldrh r0, [r2, #0x32] ldrh r1, [r3, #8] subs r0, r0, r1 ldrh r4, [r4, #6] adds r0, r0, r4 strh r0, [r5, #0x12] b _0805B2AC .align 2, 0 _0805B298: .4byte gUnk_03001160 _0805B29C: .4byte gUnk_03000BF0 _0805B2A0: ldrh r0, [r4, #4] strh r0, [r5, #0x10] ldrh r0, [r4, #6] strh r0, [r5, #0x12] movs r0, #6 strb r0, [r5, #0xf] _0805B2AC: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0805B2B0 sub_0805B2B0: @ 0x0805B2B0 push {r4, r5, r6, r7, lr} adds r5, r0, #0 ldrb r0, [r5, #0xb] cmp r0, #0 beq _0805B31E ldrh r1, [r5, #0x30] ldr r6, _0805B320 @ =gUnk_03000BF0 movs r2, #0xa ldrsh r0, [r6, r2] subs r1, r1, r0 cmp r1, #0 bge _0805B2CA adds r1, #3 _0805B2CA: asrs r4, r1, #2 ldrh r1, [r5, #0x32] movs r7, #0xc ldrsh r0, [r6, r7] subs r1, r1, r0 cmp r1, #0 bge _0805B2DA adds r1, #3 _0805B2DA: asrs r3, r1, #2 movs r0, #0xc rsbs r0, r0, #0 cmp r4, r0 bge _0805B2E6 adds r4, r0, #0 _0805B2E6: cmp r4, #0xc ble _0805B2EC movs r4, #0xc _0805B2EC: cmp r3, r0 bge _0805B2F2 adds r3, r0, #0 _0805B2F2: cmp r3, #0xc ble _0805B2F8 movs r3, #0xc _0805B2F8: ldr r2, _0805B324 @ =gUnk_03000F50 ldrh r1, [r2] movs r7, #0x80 lsls r7, r7, #4 adds r0, r7, #0 orrs r0, r1 strh r0, [r2] ldrh r0, [r5, #0x34] ldrh r1, [r6, #0xa] adds r0, r0, r1 adds r0, r0, r4 strh r0, [r6, #0x2a] strh r0, [r2, #0x2e] ldrh r0, [r5, #0x36] ldrh r7, [r6, #0xc] adds r0, r0, r7 adds r0, r0, r3 strh r0, [r6, #0x2e] strh r0, [r2, #0x30] _0805B31E: pop {r4, r5, r6, r7, pc} .align 2, 0 _0805B320: .4byte gUnk_03000BF0 _0805B324: .4byte gUnk_03000F50 thumb_func_start sub_0805B328 sub_0805B328: @ 0x0805B328 push {r4, lr} adds r1, r0, #0 ldrb r0, [r1, #0xb] cmp r0, #0 beq _0805B372 ldrb r1, [r1, #0xa] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, _0805B374 @ =gUnk_08108764 adds r0, r0, r1 ldr r0, [r0, #0xc] ldr r0, [r0] ldr r1, _0805B378 @ =gUnk_085A2E80 adds r0, r0, r1 ldr r1, _0805B37C @ =0x0600F000 movs r4, #0x80 lsls r4, r4, #4 adds r2, r4, #0 bl sub_08000E96 ldr r1, _0805B380 @ =gUnk_03000F50 ldr r0, _0805B384 @ =0x00001E07 strh r0, [r1, #0x2c] ldrh r0, [r1] orrs r4, r0 strh r4, [r1] ldr r2, _0805B388 @ =gUnk_03000BF0 ldrh r0, [r2, #0x2a] strh r0, [r1, #0x2e] ldrh r0, [r2, #0x2e] strh r0, [r1, #0x30] adds r1, #0x66 ldrh r2, [r1] ldr r0, _0805B38C @ =0x0000FFF7 ands r0, r2 strh r0, [r1] _0805B372: pop {r4, pc} .align 2, 0 _0805B374: .4byte gUnk_08108764 _0805B378: .4byte gUnk_085A2E80 _0805B37C: .4byte 0x0600F000 _0805B380: .4byte gUnk_03000F50 _0805B384: .4byte 0x00001E07 _0805B388: .4byte gUnk_03000BF0 _0805B38C: .4byte 0x0000FFF7 thumb_func_start sub_0805B390 sub_0805B390: @ 0x0805B390 push {r4, lr} adds r4, r0, #0 bl sub_0805E8D4 adds r1, r0, #0 cmp r1, #0 beq _0805B3B0 movs r0, #9 strb r0, [r1, #8] movs r0, #0x1a strb r0, [r1, #9] strb r4, [r1, #0xa] adds r0, r1, #0 movs r1, #6 bl sub_0805EA2C _0805B3B0: pop {r4, pc} .align 2, 0 thumb_func_start sub_0805B3B4 sub_0805B3B4: @ 0x0805B3B4 push {r4, r5, lr} adds r4, r0, #0 bl sub_0805EABC cmp r0, #0 beq _0805B3C4 bl sub_0805E780 _0805B3C4: ldrb r0, [r4, #0xa] lsls r0, r0, #2 ldr r1, _0805B438 @ =gUnk_08108C28 adds r5, r0, r1 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0805B41E movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x20 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 ldrb r0, [r4, #0xa] cmp r0, #0 beq _0805B3F6 ldr r1, _0805B43C @ =sub_0805B4B4 adds r0, r4, #0 movs r2, #0 bl sub_08052D74 _0805B3F6: ldr r0, _0805B440 @ =gUnk_03000BF0 ldrh r1, [r0, #0x20] movs r0, #0x80 lsls r0, r0, #1 subs r1, r0, r1 cmp r1, #0 bge _0805B406 movs r1, #0 _0805B406: movs r0, #2 ldrsb r0, [r5, r0] adds r0, r1, r0 str r0, [r4, #0x20] ldr r1, _0805B444 @ =gUnk_08108C54 ldrb r0, [r5, #1] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 _0805B41E: ldr r0, _0805B440 @ =gUnk_03000BF0 ldrh r0, [r0] cmp r0, #0 bne _0805B436 ldr r0, _0805B444 @ =gUnk_08108C54 ldrb r1, [r5, #1] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _0805B436: pop {r4, r5, pc} .align 2, 0 _0805B438: .4byte gUnk_08108C28 _0805B43C: .4byte sub_0805B4B4 _0805B440: .4byte gUnk_03000BF0 _0805B444: .4byte gUnk_08108C54 thumb_func_start sub_0805B448 sub_0805B448: @ 0x0805B448 push {r4, lr} ldr r4, _0805B46C @ =gUnk_03000F50 ldr r3, _0805B470 @ =gUnk_03000BF0 movs r2, #0xa ldrsh r1, [r3, r2] ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #2 strh r1, [r4, #0x2e] movs r2, #0xc ldrsh r1, [r3, r2] ldrh r2, [r3, #8] subs r1, r1, r2 asrs r1, r1, #1 ldr r0, [r0, #0x20] adds r0, r0, r1 strh r0, [r4, #0x30] pop {r4, pc} .align 2, 0 _0805B46C: .4byte gUnk_03000F50 _0805B470: .4byte gUnk_03000BF0 thumb_func_start sub_0805B474 sub_0805B474: @ 0x0805B474 push {r4, r5, lr} ldr r5, _0805B4A8 @ =gUnk_03000BF0 movs r0, #0xc ldrsh r1, [r5, r0] ldrh r4, [r5, #8] subs r1, r1, r4 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 ldrh r1, [r5, #0x20] subs r1, #0xa0 bl __divsi3 ldr r2, _0805B4AC @ =gUnk_03000F50 adds r4, r4, r0 strh r4, [r2, #0x30] ldrh r0, [r5, #0x1e] ldr r1, _0805B4B0 @ =0xFFFFFF00 adds r0, r0, r1 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 ldrh r1, [r5, #0xa] subs r1, r1, r0 strh r1, [r2, #0x2e] pop {r4, r5, pc} .align 2, 0 _0805B4A8: .4byte gUnk_03000BF0 _0805B4AC: .4byte gUnk_03000F50 _0805B4B0: .4byte 0xFFFFFF00 thumb_func_start sub_0805B4B4 sub_0805B4B4: @ 0x0805B4B4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] bl sub_0805B4D0 ldrb r0, [r4, #0xa] cmp r0, #2 bne _0805B4C8 bl sub_0806D0F8 _0805B4C8: adds r0, r4, #0 bl sub_0805B3B4 pop {r4, pc} thumb_func_start sub_0805B4D0 sub_0805B4D0: @ 0x0805B4D0 push {r4, r5, lr} adds r5, r0, #0 ldr r0, _0805B528 @ =gUnk_08108C5C adds r0, r5, r0 ldrb r0, [r0] bl sub_0801D7EC ldr r4, _0805B52C @ =gUnk_03000F50 ldr r0, _0805B530 @ =0x00001E07 strh r0, [r4, #0x2c] ldrh r1, [r4] movs r2, #0x80 lsls r2, r2, #4 adds r0, r2, #0 orrs r0, r1 strh r0, [r4] ldr r2, _0805B534 @ =gUnk_03000BF0 movs r1, #0xa ldrsh r0, [r2, r1] ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #2 strh r0, [r4, #0x2e] movs r1, #0xc ldrsh r0, [r2, r1] ldrh r1, [r2, #8] subs r0, r0, r1 asrs r3, r0, #1 ldrh r1, [r2, #0x20] movs r0, #0x80 lsls r0, r0, #1 subs r2, r0, r1 cmp r2, #0 bge _0805B516 movs r2, #0 _0805B516: ldr r0, _0805B538 @ =gUnk_08108C44 lsls r1, r5, #1 adds r1, r1, r0 adds r0, r3, r2 ldrh r1, [r1] adds r0, r0, r1 strh r0, [r4, #0x30] pop {r4, r5, pc} .align 2, 0 _0805B528: .4byte gUnk_08108C5C _0805B52C: .4byte gUnk_03000F50 _0805B530: .4byte 0x00001E07 _0805B534: .4byte gUnk_03000BF0 _0805B538: .4byte gUnk_08108C44 thumb_func_start sub_0805B53C sub_0805B53C: @ 0x0805B53C push {lr} ldr r2, _0805B550 @ =gUnk_08108C64 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805B550: .4byte gUnk_08108C64 thumb_func_start sub_0805B554 sub_0805B554: @ 0x0805B554 movs r1, #1 strb r1, [r0, #0xc] strb r1, [r0, #0xe] bx lr thumb_func_start sub_0805B55C sub_0805B55C: @ 0x0805B55C push {r4, r5, lr} adds r1, r0, #0 ldrb r0, [r1, #0xe] subs r0, #1 strb r0, [r1, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0805B5B4 movs r0, #0xf strb r0, [r1, #0xe] movs r0, #0x19 movs r1, #0 bl sub_0804AA60 adds r5, r0, #0 cmp r5, #0 beq _0805B5B4 bl sub_08000E50 ldr r4, _0805B5B8 @ =gUnk_03000BF0 ldr r2, _0805B5BC @ =gUnk_08108C6C movs r1, #7 ands r1, r0 lsls r1, r1, #1 adds r1, r1, r2 ldrh r0, [r1] adds r0, #0x78 ldrh r1, [r4, #0xa] adds r0, r0, r1 strh r0, [r5, #0x2e] bl sub_08000E50 ldr r2, _0805B5C0 @ =gUnk_08108C7C movs r1, #3 ands r1, r0 adds r1, r1, r2 movs r0, #0 ldrsb r0, [r1, r0] adds r0, #0x50 ldrh r4, [r4, #0xc] adds r0, r0, r4 strh r0, [r5, #0x32] ldr r0, _0805B5C4 @ =0x0000FF38 strh r0, [r5, #0x36] _0805B5B4: pop {r4, r5, pc} .align 2, 0 _0805B5B8: .4byte gUnk_03000BF0 _0805B5BC: .4byte gUnk_08108C6C _0805B5C0: .4byte gUnk_08108C7C _0805B5C4: .4byte 0x0000FF38 thumb_func_start sub_0805B5C8 sub_0805B5C8: @ 0x0805B5C8 push {lr} ldr r2, _0805B5DC @ =gUnk_08108C80 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805B5DC: .4byte gUnk_08108C80 thumb_func_start sub_0805B5E0 sub_0805B5E0: @ 0x0805B5E0 push {r4, r5, lr} movs r4, #0 movs r1, #1 strb r1, [r0, #0xc] ldr r3, _0805B618 @ =gUnk_03000F50 ldrh r2, [r3] movs r5, #0x80 lsls r5, r5, #4 adds r1, r5, #0 orrs r1, r2 strh r1, [r3] ldr r2, _0805B61C @ =gUnk_08108C88 ldrb r1, [r0, #0xa] lsls r1, r1, #1 adds r1, r1, r2 ldrh r1, [r1] strh r1, [r3, #0x2c] ldr r1, _0805B620 @ =gUnk_03000BF0 str r4, [r1, #0x2c] str r4, [r1, #0x28] ldrb r0, [r0, #0xa] cmp r0, #0 beq _0805B612 cmp r0, #1 beq _0805B624 _0805B612: strh r4, [r3, #0x30] strh r4, [r3, #0x2e] b _0805B634 .align 2, 0 _0805B618: .4byte gUnk_03000F50 _0805B61C: .4byte gUnk_08108C88 _0805B620: .4byte gUnk_03000BF0 _0805B624: ldrh r0, [r1, #0x2a] ldrh r2, [r1, #0xa] adds r0, r0, r2 strh r0, [r3, #0x2e] ldrh r0, [r1, #0x2e] ldrh r1, [r1, #0xc] adds r0, r0, r1 strh r0, [r3, #0x30] _0805B634: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0805B638 sub_0805B638: @ 0x0805B638 push {lr} ldrb r0, [r0, #0xa] cmp r0, #1 bne _0805B65E ldr r1, _0805B660 @ =gUnk_03000BF0 ldr r0, [r1, #0x28] movs r2, #0x80 lsls r2, r2, #6 adds r0, r0, r2 str r0, [r1, #0x28] ldr r2, _0805B664 @ =gUnk_03000F50 ldrh r0, [r1, #0x2a] ldrh r3, [r1, #0xa] adds r0, r0, r3 strh r0, [r2, #0x2e] ldrh r0, [r1, #0x2e] ldrh r1, [r1, #0xc] adds r0, r0, r1 strh r0, [r2, #0x30] _0805B65E: pop {pc} .align 2, 0 _0805B660: .4byte gUnk_03000BF0 _0805B664: .4byte gUnk_03000F50 thumb_func_start sub_0805B668 sub_0805B668: @ 0x0805B668 push {lr} ldr r2, _0805B67C @ =gUnk_08108C8C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805B67C: .4byte gUnk_08108C8C thumb_func_start sub_0805B680 sub_0805B680: @ 0x0805B680 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldrh r1, [r4, #0x34] lsrs r1, r1, #1 strh r1, [r4, #0x34] ldrh r0, [r4, #0x38] adds r0, r0, r1 strh r0, [r4, #0x38] ldrh r1, [r4, #0x36] lsrs r1, r1, #1 strh r1, [r4, #0x36] ldrh r0, [r4, #0x3a] adds r0, r0, r1 strh r0, [r4, #0x3a] ldrb r0, [r4, #0xa] cmp r0, #0 bne _0805B6B8 ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _0805B6B8 adds r0, r4, #0 bl sub_0805E900 b _0805B6BE _0805B6B8: adds r0, r4, #0 bl sub_0805B6C0 _0805B6BE: pop {r4, pc} thumb_func_start sub_0805B6C0 sub_0805B6C0: @ 0x0805B6C0 push {r4, lr} adds r4, r0, #0 movs r1, #0x38 ldrsh r0, [r4, r1] movs r2, #0x3a ldrsh r1, [r4, r2] ldrh r2, [r4, #0x34] ldrh r3, [r4, #0x36] bl sub_0800293E cmp r0, #0 beq _0805B6EC ldrh r0, [r4, #0x3e] bl sub_0807CCC8 ldrb r0, [r4, #0xa] cmp r0, #0 bne _0805B6F2 adds r0, r4, #0 bl sub_0805E900 b _0805B6F2 _0805B6EC: ldrh r0, [r4, #0x3e] bl sub_0807CD48 _0805B6F2: pop {r4, pc} thumb_func_start sub_0805B6F4 sub_0805B6F4: @ 0x0805B6F4 push {lr} ldr r2, _0805B708 @ =gUnk_08108C94 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805B708: .4byte gUnk_08108C94 thumb_func_start sub_0805B70C sub_0805B70C: @ 0x0805B70C push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _0805B71E movs r0, #1 strb r0, [r4, #0xb] _0805B71E: movs r0, #1 strb r0, [r4, #0xc] ldrh r1, [r4, #0x38] lsls r1, r1, #0x10 asrs r1, r1, #0x14 movs r2, #0x3f ands r1, r2 ldrh r0, [r4, #0x3a] lsls r0, r0, #0x10 asrs r0, r0, #0x14 ands r0, r2 lsls r0, r0, #6 orrs r1, r0 strh r1, [r4, #0x38] adds r0, r4, #0 bl sub_0805B778 pop {r4, pc} .align 2, 0 thumb_func_start sub_0805B744 sub_0805B744: @ 0x0805B744 push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #0x3e] bl sub_0807CBE4 adds r1, r0, #0 cmp r1, #0 beq _0805B766 ldrb r0, [r4, #0xb] cmp r0, #0 bne _0805B774 movs r0, #1 strb r0, [r4, #0xb] adds r0, r4, #0 bl sub_0805B778 b _0805B774 _0805B766: ldrb r0, [r4, #0xb] cmp r0, #1 bne _0805B774 strb r1, [r4, #0xb] adds r0, r4, #0 bl sub_0805B778 _0805B774: pop {r4, pc} .align 2, 0 thumb_func_start sub_0805B778 sub_0805B778: @ 0x0805B778 push {lr} ldr r2, _0805B79C @ =gUnk_08108C9C ldrb r1, [r0, #0xa] lsls r1, r1, #1 ldrb r3, [r0, #0xb] adds r1, r1, r3 lsls r1, r1, #1 adds r1, r1, r2 ldrh r3, [r1] movs r2, #0x38 ldrsh r1, [r0, r2] adds r0, #0x36 ldrb r2, [r0] adds r0, r3, #0 bl sub_0807B314 pop {pc} .align 2, 0 _0805B79C: .4byte gUnk_08108C9C thumb_func_start sub_0805B7A0 sub_0805B7A0: @ 0x0805B7A0 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xe] ldrb r1, [r5, #0xa] ldrb r2, [r5, #0xb] bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _0805B81A ldrh r0, [r5, #0x3e] adds r1, r4, #0 adds r1, #0x86 strh r0, [r1] ldrh r0, [r5, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _0805B7EC adds r0, r5, #0 adds r0, #0x36 ldrb r1, [r0] adds r0, #1 ldrb r2, [r0] movs r0, #0xf ands r0, r2 lsls r0, r0, #8 orrs r1, r0 strh r1, [r4, #0x2e] ldrh r1, [r5, #0x3c] ldr r0, _0805B7E8 @ =0x00000FFF ands r0, r1 strh r0, [r4, #0x32] ldrh r0, [r5, #0x3c] lsrs r0, r0, #0xc b _0805B7FC .align 2, 0 _0805B7E8: .4byte 0x00000FFF _0805B7EC: ldrh r0, [r5, #0x38] strh r0, [r4, #0x2e] ldrh r0, [r5, #0x3a] strh r0, [r4, #0x32] adds r0, r5, #0 adds r0, #0x37 ldrb r0, [r0] lsrs r0, r0, #4 _0805B7FC: adds r1, r4, #0 adds r1, #0x38 strb r0, [r1] ldr r0, _0805B81C @ =gUnk_03000BF0 ldrh r1, [r0, #6] ldrh r2, [r4, #0x2e] adds r1, r1, r2 strh r1, [r4, #0x2e] ldrh r0, [r0, #8] ldrh r1, [r4, #0x32] adds r0, r0, r1 strh r0, [r4, #0x32] adds r0, r5, #0 bl sub_0805E900 _0805B81A: pop {r4, r5, pc} .align 2, 0 _0805B81C: .4byte gUnk_03000BF0 thumb_func_start sub_0805B820 sub_0805B820: @ 0x0805B820 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 ldrb r1, [r5, #0xc] cmp r1, #0 bne _0805B834 movs r0, #1 strb r0, [r5, #0xc] str r1, [r5, #0x20] _0805B834: ldrb r0, [r5, #0xa] bl sub_0804B128 adds r4, r0, #0 movs r7, #0 ldrh r0, [r4] cmp r0, #0 beq _0805B8C4 ldr r0, _0805B8A8 @ =gUnk_03000BF0 mov r8, r0 _0805B848: ldrh r0, [r4] ldrh r1, [r4, #2] movs r2, #4 movs r3, #4 bl sub_0800290E cmp r0, #0 beq _0805B8AC movs r6, #1 lsls r6, r7 ldr r0, [r5, #0x20] ands r0, r6 cmp r0, #0 bne _0805B8B6 ldrh r0, [r4, #4] bl sub_0805B8CC cmp r0, #0 beq _0805B8B6 movs r0, #0x4e movs r1, #1 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _0805B8B6 ldrh r0, [r4, #6] strb r0, [r1, #0xe] strb r7, [r1, #0xf] ldrh r0, [r4] mov r2, r8 ldrh r2, [r2, #6] adds r0, r0, r2 strh r0, [r1, #0x2e] ldrh r0, [r4, #2] mov r3, r8 ldrh r3, [r3, #8] adds r0, r0, r3 strh r0, [r1, #0x32] str r5, [r1, #0x50] adds r0, r1, #0 bl sub_08016A30 ldr r0, [r5, #0x20] orrs r0, r6 b _0805B8B4 .align 2, 0 _0805B8A8: .4byte gUnk_03000BF0 _0805B8AC: movs r1, #1 lsls r1, r7 ldr r0, [r5, #0x20] bics r0, r1 _0805B8B4: str r0, [r5, #0x20] _0805B8B6: adds r4, #8 adds r7, #1 ldrh r0, [r4] cmp r0, #0 beq _0805B8C4 cmp r7, #0x1f bls _0805B848 _0805B8C4: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0805B8CC sub_0805B8CC: @ 0x0805B8CC push {lr} cmp r0, #4 bne _0805B8DA movs r0, #0x18 bl sub_0807CC30 b _0805B8E8 _0805B8DA: cmp r0, #4 bls _0805B8E6 cmp r0, #6 bhi _0805B8E6 movs r0, #0 b _0805B8E8 _0805B8E6: movs r0, #1 _0805B8E8: pop {pc} .align 2, 0 thumb_func_start sub_0805B8EC sub_0805B8EC: @ 0x0805B8EC push {r4, r5, r6, lr} adds r5, r0, #0 ldr r4, _0805B964 @ =gUnk_02033A90 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0805B90A bl sub_0801E104 ldr r2, _0805B968 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0805B96C @ =0x0000D7FF ands r0, r1 strh r0, [r2] bl sub_0805E780 _0805B90A: ldrb r2, [r5, #0xc] cmp r2, #0 bne _0805B934 movs r0, #1 strb r0, [r5, #0xc] ldrb r1, [r5, #0x10] movs r0, #0x20 orrs r0, r1 strb r0, [r5, #0x10] movs r0, #0x11 strb r0, [r5, #0xe] str r2, [r5, #0x20] adds r0, r5, #0 movs r1, #6 bl sub_0805E3A0 bl sub_0801E120 ldrb r0, [r5, #0xe] bl sub_0801E154 _0805B934: ldr r0, _0805B970 @ =gUnk_03001000 ldrb r0, [r0, #4] cmp r0, #2 bne _0805B952 ldr r2, _0805B968 @ =gUnk_03000F50 ldrh r1, [r2] movs r3, #0x80 lsls r3, r3, #4 adds r0, r3, #0 orrs r0, r1 strh r0, [r2] bl sub_0805BA78 bl sub_0805BAD4 _0805B952: ldrb r0, [r4, #0xc] cmp r0, #2 bne _0805B978 ldr r2, _0805B968 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0805B974 @ =0x0000DFFF ands r0, r1 strh r0, [r2] b _0805BA6C .align 2, 0 _0805B964: .4byte gUnk_02033A90 _0805B968: .4byte gUnk_03000F50 _0805B96C: .4byte 0x0000D7FF _0805B970: .4byte gUnk_03001000 _0805B974: .4byte 0x0000DFFF _0805B978: ldr r3, _0805B9A8 @ =gUnk_03001160 movs r4, #0x2e ldrsh r0, [r3, r4] ldr r2, _0805B9AC @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r0, r0, r1 movs r6, #0x32 ldrsh r1, [r3, r6] ldrh r2, [r2, #8] subs r1, r1, r2 movs r2, #0 movs r3, #0 bl sub_0800290E cmp r0, #0 beq _0805B9B4 ldr r2, _0805B9B0 @ =gUnk_03000F50 ldrh r1, [r2] movs r3, #0x80 lsls r3, r3, #6 adds r0, r3, #0 orrs r0, r1 b _0805B9BC .align 2, 0 _0805B9A8: .4byte gUnk_03001160 _0805B9AC: .4byte gUnk_03000BF0 _0805B9B0: .4byte gUnk_03000F50 _0805B9B4: ldr r2, _0805B9E8 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0805B9EC @ =0x0000DFFF ands r0, r1 _0805B9BC: strh r0, [r2] ldrb r4, [r5, #0xe] ldr r0, _0805B9F0 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 lsls r1, r1, #0x10 ands r0, r1 cmp r0, #0 beq _0805BA2C ldr r0, _0805B9F4 @ =gUnk_02033A90 ldrb r0, [r0, #0xc] cmp r0, #0 beq _0805BA2C cmp r4, #0x47 bhi _0805B9F8 adds r4, #4 adds r0, r4, #0 bl sub_0801E154 movs r0, #0 str r0, [r5, #0x20] b _0805BA42 .align 2, 0 _0805B9E8: .4byte gUnk_03000F50 _0805B9EC: .4byte 0x0000DFFF _0805B9F0: .4byte gUnk_03003F80 _0805B9F4: .4byte gUnk_02033A90 _0805B9F8: ldr r0, _0805BA24 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #3 ands r0, r1 cmp r0, #0 bne _0805BA42 ldrb r0, [r5, #0xf] adds r0, #0x10 strb r0, [r5, #0xf] ldr r1, _0805BA28 @ =gUnk_080C9160 ldrb r0, [r5, #0xf] lsls r0, r0, #1 adds r0, r0, r1 movs r6, #0 ldrsh r0, [r0, r6] asrs r0, r0, #7 str r0, [r5, #0x20] adds r0, r4, r0 bl sub_0801E154 b _0805BA42 .align 2, 0 _0805BA24: .4byte gUnk_030010A0 _0805BA28: .4byte gUnk_080C9160 _0805BA2C: movs r0, #0 str r0, [r5, #0x20] cmp r4, #0x11 bls _0805BA42 subs r4, #4 cmp r4, #0x10 bhi _0805BA3C movs r4, #0x11 _0805BA3C: adds r0, r4, #0 bl sub_0801E154 _0805BA42: strb r4, [r5, #0xe] ldr r3, _0805BA70 @ =gUnk_03001160 movs r1, #0x2e ldrsh r0, [r3, r1] ldr r2, _0805BA74 @ =gUnk_03000BF0 movs r6, #0xa ldrsh r1, [r2, r6] subs r0, r0, r1 movs r6, #0x32 ldrsh r1, [r3, r6] movs r6, #0xc ldrsh r2, [r2, r6] subs r1, r1, r2 movs r6, #0x36 ldrsh r2, [r3, r6] subs r2, #9 adds r1, r1, r2 ldr r2, [r5, #0x20] adds r2, r4, r2 bl sub_0801E160 _0805BA6C: pop {r4, r5, r6, pc} .align 2, 0 _0805BA70: .4byte gUnk_03001160 _0805BA74: .4byte gUnk_03000BF0 thumb_func_start sub_0805BA78 sub_0805BA78: @ 0x0805BA78 push {r4, lr} ldr r1, _0805BAA8 @ =gUnk_02033A90 movs r0, #0xa ldrsh r3, [r1, r0] ldr r0, _0805BAAC @ =gUnk_02034350 movs r4, #0xc ldrsh r2, [r0, r4] cmp r2, #0 bge _0805BA8C movs r2, #0 _0805BA8C: movs r0, #0x80 lsls r0, r0, #1 cmp r2, r0 ble _0805BA96 adds r2, r0, #0 _0805BA96: cmp r3, r2 beq _0805BACE subs r0, r2, r3 cmp r0, #0 blt _0805BAB0 cmp r0, #4 bls _0805BAB6 b _0805BABA .align 2, 0 _0805BAA8: .4byte gUnk_02033A90 _0805BAAC: .4byte gUnk_02034350 _0805BAB0: subs r0, r3, r2 cmp r0, #4 bhi _0805BABA _0805BAB6: adds r3, r2, #0 b _0805BAC8 _0805BABA: cmp r2, r3 bge _0805BAC2 subs r3, #4 b _0805BAC8 _0805BAC2: cmp r2, r3 ble _0805BAC8 adds r3, #4 _0805BAC8: strh r3, [r1, #0xa] movs r0, #1 b _0805BAD0 _0805BACE: movs r0, #0 _0805BAD0: pop {r4, pc} .align 2, 0 thumb_func_start sub_0805BAD4 sub_0805BAD4: @ 0x0805BAD4 push {lr} ldr r3, _0805BAF4 @ =gUnk_02033A90 ldrb r0, [r3, #0xc] cmp r0, #0 beq _0805BAF2 ldr r1, _0805BAF8 @ =gUnk_03000F50 ldr r2, _0805BAFC @ =gUnk_08108CA8 ldrh r0, [r3, #0xa] lsls r0, r0, #0x10 asrs r0, r0, #0x14 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] adds r1, #0x68 strh r0, [r1] _0805BAF2: pop {pc} .align 2, 0 _0805BAF4: .4byte gUnk_02033A90 _0805BAF8: .4byte gUnk_03000F50 _0805BAFC: .4byte gUnk_08108CA8 thumb_func_start sub_0805BB00 sub_0805BB00: @ 0x0805BB00 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 ldr r0, _0805BB50 @ =gUnk_02033A90 ldrb r0, [r0, #0xc] cmp r0, #0 bne _0805BB28 bl sub_0805E8D4 adds r1, r0, #0 cmp r1, #0 beq _0805BB28 movs r0, #9 strb r0, [r1, #8] movs r0, #0x22 strb r0, [r1, #9] adds r0, r1, #0 movs r1, #0 bl sub_0805EA2C _0805BB28: ldr r1, _0805BB54 @ =0x0600F000 movs r2, #0x80 lsls r2, r2, #4 movs r0, #0xf bl sub_0801D5EC ldr r0, _0805BB58 @ =gUnk_03000F50 ldr r1, _0805BB5C @ =0x00001E0C strh r1, [r0, #0x2c] adds r0, #0x66 ldr r1, _0805BB60 @ =0x00003E48 strh r1, [r0] ldr r0, _0805BB64 @ =gUnk_02034350 strh r4, [r0, #0xc] cmp r5, #0 beq _0805BB68 ldr r1, _0805BB50 @ =gUnk_02033A90 movs r0, #1 b _0805BB6C .align 2, 0 _0805BB50: .4byte gUnk_02033A90 _0805BB54: .4byte 0x0600F000 _0805BB58: .4byte gUnk_03000F50 _0805BB5C: .4byte 0x00001E0C _0805BB60: .4byte 0x00003E48 _0805BB64: .4byte gUnk_02034350 _0805BB68: ldr r1, _0805BB70 @ =gUnk_02033A90 movs r0, #2 _0805BB6C: strb r0, [r1, #0xc] pop {r4, r5, pc} .align 2, 0 _0805BB70: .4byte gUnk_02033A90 thumb_func_start sub_0805BB74 sub_0805BB74: @ 0x0805BB74 push {lr} adds r1, r0, #0 ldr r2, _0805BBB0 @ =gUnk_02034350 cmp r1, #0 bge _0805BB82 movs r0, #0xc ldrsh r1, [r2, r0] _0805BB82: ldr r0, _0805BBB4 @ =gUnk_02033A90 strh r1, [r0, #0xa] strh r1, [r2, #0xc] movs r0, #9 movs r1, #0x22 bl sub_0805EB9C cmp r0, #0 beq _0805BBAE bl sub_0805B8EC ldr r0, _0805BBB8 @ =gUnk_03000F50 ldrh r1, [r0] movs r3, #0x80 lsls r3, r3, #4 adds r2, r3, #0 orrs r1, r2 strh r1, [r0] bl sub_0805BA78 bl sub_0805BAD4 _0805BBAE: pop {pc} .align 2, 0 _0805BBB0: .4byte gUnk_02034350 _0805BBB4: .4byte gUnk_02033A90 _0805BBB8: .4byte gUnk_03000F50 thumb_func_start sub_0805BBBC sub_0805BBBC: @ 0x0805BBBC push {r4, lr} movs r4, #0 ldr r2, _0805BBF8 @ =gUnk_02033A90 ldrb r0, [r2, #0xc] cmp r0, #0 beq _0805BBF2 ldr r0, _0805BBFC @ =gUnk_02034350 movs r3, #0xc ldrsh r1, [r0, r3] movs r3, #0xa ldrsh r0, [r2, r3] cmp r1, r0 bge _0805BBF2 ldr r2, _0805BC00 @ =gUnk_03000F50 ldrh r1, [r2] movs r3, #0x80 lsls r3, r3, #4 adds r0, r3, #0 orrs r0, r1 strh r0, [r2] bl sub_0805BA78 adds r4, r0, #0 cmp r4, #0 beq _0805BBF2 bl sub_0805BAD4 _0805BBF2: adds r0, r4, #0 pop {r4, pc} .align 2, 0 _0805BBF8: .4byte gUnk_02033A90 _0805BBFC: .4byte gUnk_02034350 _0805BC00: .4byte gUnk_03000F50 thumb_func_start sub_0805BC04 sub_0805BC04: @ 0x0805BC04 push {r4, lr} movs r4, #0 ldr r2, _0805BC40 @ =gUnk_02033A90 ldrb r0, [r2, #0xc] cmp r0, #0 beq _0805BC3A ldr r0, _0805BC44 @ =gUnk_02034350 movs r3, #0xc ldrsh r1, [r0, r3] movs r3, #0xa ldrsh r0, [r2, r3] cmp r1, r0 ble _0805BC3A ldr r2, _0805BC48 @ =gUnk_03000F50 ldrh r1, [r2] movs r3, #0x80 lsls r3, r3, #4 adds r0, r3, #0 orrs r0, r1 strh r0, [r2] bl sub_0805BA78 adds r4, r0, #0 cmp r4, #0 beq _0805BC3A bl sub_0805BAD4 _0805BC3A: adds r0, r4, #0 pop {r4, pc} .align 2, 0 _0805BC40: .4byte gUnk_02033A90 _0805BC44: .4byte gUnk_02034350 _0805BC48: .4byte gUnk_03000F50 thumb_func_start sub_0805BC4C sub_0805BC4C: @ 0x0805BC4C push {lr} ldr r1, _0805BC68 @ =gUnk_02033A90 ldrb r0, [r1, #0xc] cmp r0, #0 beq _0805BC64 movs r0, #0 strb r0, [r1, #0xc] ldr r2, _0805BC6C @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0805BC70 @ =0x0000D7FF ands r0, r1 strh r0, [r2] _0805BC64: pop {pc} .align 2, 0 _0805BC68: .4byte gUnk_02033A90 _0805BC6C: .4byte gUnk_03000F50 _0805BC70: .4byte 0x0000D7FF thumb_func_start sub_0805BC74 sub_0805BC74: @ 0x0805BC74 push {lr} ldr r2, _0805BC88 @ =gUnk_08108CCC ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805BC88: .4byte gUnk_08108CCC thumb_func_start sub_0805BC8C sub_0805BC8C: @ 0x0805BC8C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0805BCAE movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xf] ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _0805BCAE adds r0, r4, #0 bl sub_0805BE94 _0805BCAE: ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _0805BCD0 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0805BCD0 adds r0, r4, #0 bl sub_0805BEC4 adds r0, r4, #0 bl sub_0805BE94 _0805BCD0: pop {r4, pc} .align 2, 0 thumb_func_start sub_0805BCD4 sub_0805BCD4: @ 0x0805BCD4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _0805BD0E cmp r0, #1 bgt _0805BCE8 cmp r0, #0 beq _0805BCEE b _0805BD5A _0805BCE8: cmp r0, #2 beq _0805BD38 b _0805BD5A _0805BCEE: movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xf] ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _0805BD5A adds r0, r4, #0 movs r1, #0x75 bl sub_0805BE70 movs r0, #2 strb r0, [r4, #0xc] b _0805BD5A _0805BD0E: ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _0805BD5A ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0805BD5A movs r0, #0x1e strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_0805BEC4 adds r0, r4, #0 movs r1, #0x76 bl sub_0805BE70 b _0805BD5A _0805BD38: ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 bne _0805BD5A ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0805BD5A movs r0, #0x1e strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #0x75 bl sub_0805BE70 _0805BD5A: pop {r4, pc} thumb_func_start sub_0805BD5C sub_0805BD5C: @ 0x0805BD5C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0805BD94 ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _0805BD76 adds r0, r4, #0 bl sub_0805BE94 _0805BD76: ldrh r1, [r4, #0x38] lsls r1, r1, #0x10 asrs r1, r1, #0x14 movs r2, #0x3f ands r1, r2 ldrh r0, [r4, #0x3a] lsls r0, r0, #0x10 asrs r0, r0, #0x14 ands r0, r2 lsls r0, r0, #6 orrs r1, r0 strh r1, [r4, #0x20] movs r0, #1 strb r0, [r4, #0xc] b _0805BDB0 _0805BD94: ldrh r0, [r4, #0x20] ldrb r1, [r4, #0xb] bl sub_080002B0 cmp r0, #0x76 bne _0805BDB0 ldrh r0, [r4, #0x3e] bl sub_0807CCC8 ldrb r0, [r4, #0xe] bl sub_0805308C bl sub_0805E780 _0805BDB0: pop {r4, pc} .align 2, 0 thumb_func_start sub_0805BDB4 sub_0805BDB4: @ 0x0805BDB4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 beq _0805BDF4 cmp r0, #1 beq _0805BE2C ldrh r0, [r4, #0x22] subs r0, #1 strh r0, [r4, #0x22] lsls r0, r0, #0x10 cmp r0, #0 bne _0805BE58 movs r1, #0x38 ldrsh r0, [r4, r1] movs r2, #0x3a ldrsh r1, [r4, r2] ldrb r2, [r4, #0xb] bl sub_080A29C8 ldrh r0, [r4, #0x3e] bl sub_0807CD48 ldrh r0, [r4, #0x20] ldrb r1, [r4, #0xb] bl sub_0807BA8C ldrb r0, [r4, #0xe] rsbs r0, r0, #0 bl sub_0805308C b _0805BE26 _0805BDF4: ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 bne _0805BE08 ldrh r0, [r4, #0x3c] bl sub_0807CBE4 cmp r0, #0 beq _0805BE0E _0805BE08: adds r0, r4, #0 bl sub_0805BE94 _0805BE0E: ldrh r1, [r4, #0x38] lsls r1, r1, #0x10 asrs r1, r1, #0x14 movs r2, #0x3f ands r1, r2 ldrh r0, [r4, #0x3a] lsls r0, r0, #0x10 asrs r0, r0, #0x14 ands r0, r2 lsls r0, r0, #6 orrs r1, r0 strh r1, [r4, #0x20] _0805BE26: movs r0, #1 strb r0, [r4, #0xc] b _0805BE6C _0805BE2C: ldrh r0, [r4, #0x20] ldrb r1, [r4, #0xb] bl sub_080002B0 cmp r0, #0x76 bne _0805BE6C ldrh r0, [r4, #0x3e] bl sub_0807CCC8 ldrb r0, [r4, #0xe] bl sub_0805308C movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x36 ldrb r1, [r0] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 strh r0, [r4, #0x22] b _0805BE6C _0805BE58: ldrh r0, [r4, #0x3c] bl sub_0807CBE4 cmp r0, #0 beq _0805BE6C adds r0, r4, #0 bl sub_0805BEC4 bl sub_0805E780 _0805BE6C: pop {r4, pc} .align 2, 0 thumb_func_start sub_0805BE70 sub_0805BE70: @ 0x0805BE70 push {r4, lr} adds r4, r1, #0 ldrh r1, [r0, #0x38] lsls r1, r1, #0x10 asrs r1, r1, #0x14 movs r3, #0x3f ands r1, r3 ldrh r2, [r0, #0x3a] lsls r2, r2, #0x10 asrs r2, r2, #0x14 ands r2, r3 lsls r2, r2, #6 orrs r1, r2 ldrb r2, [r0, #0xb] adds r0, r4, #0 bl sub_0807B314 pop {r4, pc} thumb_func_start sub_0805BE94 sub_0805BE94: @ 0x0805BE94 push {r4, lr} adds r4, r0, #0 ldrh r1, [r4, #0x38] lsls r1, r1, #0x10 asrs r1, r1, #0x14 movs r2, #0x3f ands r1, r2 ldrh r0, [r4, #0x3a] lsls r0, r0, #0x10 asrs r0, r0, #0x14 ands r0, r2 lsls r0, r0, #6 orrs r1, r0 ldrb r2, [r4, #0xb] movs r0, #0x76 bl sub_0807B314 ldrb r0, [r4, #0xe] bl sub_0805308C bl sub_0805E780 pop {r4, pc} .align 2, 0 thumb_func_start sub_0805BEC4 sub_0805BEC4: @ 0x0805BEC4 push {r4, lr} adds r4, r0, #0 movs r0, #0x2a movs r1, #1 movs r2, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _0805BF10 ldrb r1, [r2, #0x11] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r2, #0x11] ldr r1, _0805BF14 @ =gUnk_03000BF0 ldrh r0, [r1, #6] ldrh r3, [r4, #0x38] adds r0, r0, r3 strh r0, [r2, #0x2e] ldrh r0, [r1, #8] ldrh r1, [r4, #0x3a] adds r0, r0, r1 strh r0, [r2, #0x32] ldrb r1, [r4, #0xb] adds r0, r2, #0 adds r0, #0x38 strb r1, [r0] adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r2] _0805BF10: pop {r4, pc} .align 2, 0 _0805BF14: .4byte gUnk_03000BF0 thumb_func_start sub_0805BF18 sub_0805BF18: @ 0x0805BF18 push {lr} ldr r2, _0805BF2C @ =gUnk_08108CDC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805BF2C: .4byte gUnk_08108CDC thumb_func_start sub_0805BF30 sub_0805BF30: @ 0x0805BF30 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldrh r1, [r4, #0x38] lsls r1, r1, #0x10 asrs r1, r1, #0x14 movs r2, #0x3f ands r1, r2 ldrh r0, [r4, #0x3a] lsls r0, r0, #0x10 asrs r0, r0, #0x14 ands r0, r2 lsls r0, r0, #6 orrs r1, r0 strh r1, [r4, #0x3c] ldrh r0, [r4, #0x3c] adds r1, r4, #0 adds r1, #0x35 ldrb r1, [r1] bl sub_0805BFC4 strb r0, [r4, #0xa] ldrh r0, [r4, #0x3e] bl sub_0807CBD0 cmp r0, #0 beq _0805BF74 adds r0, r4, #0 bl sub_0805C02C adds r0, r4, #0 bl sub_0805E900 _0805BF74: pop {r4, pc} .align 2, 0 thumb_func_start sub_0805BF78 sub_0805BF78: @ 0x0805BF78 push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #0x3c] adds r1, r4, #0 adds r1, #0x35 ldrb r1, [r1] bl sub_080002C8 cmp r0, #0x2e beq _0805BFA0 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x5a strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_0805C02C ldrh r0, [r4, #0x3e] bl sub_0807CCB4 _0805BFA0: pop {r4, pc} .align 2, 0 thumb_func_start sub_0805BFA4 sub_0805BFA4: @ 0x0805BFA4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0805BFC0 movs r0, #0x72 bl sub_080A3268 adds r0, r4, #0 bl sub_0805E900 _0805BFC0: pop {r4, pc} .align 2, 0 thumb_func_start sub_0805BFC4 sub_0805BFC4: @ 0x0805BFC4 push {lr} bl sub_080002B0 adds r1, r0, #0 cmp r1, #0xec beq _0805C018 cmp r1, #0xec bhi _0805BFEC cmp r1, #0xbf beq _0805C024 cmp r1, #0xbf bhi _0805BFE2 cmp r1, #0xaf beq _0805C014 b _0805C028 _0805BFE2: cmp r1, #0xcc beq _0805C01C cmp r1, #0xdf beq _0805C020 b _0805C028 _0805BFEC: movs r0, #0x84 lsls r0, r0, #1 cmp r1, r0 beq _0805C01C cmp r1, r0 bhi _0805C004 cmp r1, #0xff beq _0805C014 subs r0, #3 cmp r1, r0 beq _0805C024 b _0805C028 _0805C004: movs r0, #0x88 lsls r0, r0, #1 cmp r1, r0 beq _0805C020 adds r0, #5 cmp r1, r0 beq _0805C018 b _0805C028 _0805C014: movs r0, #0 b _0805C02A _0805C018: movs r0, #1 b _0805C02A _0805C01C: movs r0, #2 b _0805C02A _0805C020: movs r0, #3 b _0805C02A _0805C024: movs r0, #4 b _0805C02A _0805C028: movs r0, #0xff _0805C02A: pop {pc} thumb_func_start sub_0805C02C sub_0805C02C: @ 0x0805C02C push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xa] cmp r0, #0xff beq _0805C04A ldr r0, _0805C04C @ =gUnk_08108CE8 ldrb r2, [r1, #0xa] lsls r2, r2, #2 adds r2, r2, r0 ldrh r0, [r1, #0x3c] adds r1, #0x35 ldrb r1, [r1] ldr r2, [r2] bl _call_via_r2 _0805C04A: pop {pc} .align 2, 0 _0805C04C: .4byte gUnk_08108CE8 thumb_func_start sub_0805C050 sub_0805C050: @ 0x0805C050 push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 adds r1, r5, #0 subs r1, #0x41 movs r0, #0xb1 adds r2, r4, #0 bl sub_0807B314 adds r1, r5, #0 subs r1, #0x40 movs r0, #0xb2 adds r2, r4, #0 bl sub_0807B314 adds r1, r5, #0 subs r1, #0x3f movs r0, #0xb3 adds r2, r4, #0 bl sub_0807B314 subs r1, r5, #1 movs r0, #0xb4 adds r2, r4, #0 bl sub_0807B314 adds r1, r5, #1 movs r0, #0xb7 adds r2, r4, #0 bl sub_0807B314 cmp r4, #1 bne _0805C11C bl sub_08052670 cmp r0, #0 beq _0805C0D8 movs r0, #0x4f movs r1, #0xe movs r2, #0 bl sub_080A2960 adds r3, r0, #0 cmp r3, #0 beq _0805C0E0 movs r1, #0x3f adds r0, r5, #0 ands r0, r1 lsls r0, r0, #4 adds r0, #8 ldr r2, _0805C0D0 @ =gUnk_03000BF0 ldrh r1, [r2, #6] adds r1, r1, r0 strh r1, [r3, #0x2e] movs r0, #0xfc lsls r0, r0, #4 ands r0, r5 lsrs r0, r0, #2 ldr r1, _0805C0D4 @ =0x0000FFF8 adds r0, r0, r1 ldrh r2, [r2, #8] adds r0, r0, r2 strh r0, [r3, #0x32] b _0805C0E0 .align 2, 0 _0805C0D0: .4byte gUnk_03000BF0 _0805C0D4: .4byte 0x0000FFF8 _0805C0D8: bl sub_08052660 cmp r0, #0 beq _0805C0EC _0805C0E0: movs r0, #0xb5 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 b _0805C0F6 _0805C0EC: movs r0, #0xb6 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 _0805C0F6: adds r1, r5, #0 subs r1, #0x41 movs r0, #0xb8 movs r2, #2 bl sub_0807B314 adds r1, r5, #0 subs r1, #0x40 movs r0, #0xb9 movs r2, #2 bl sub_0807B314 adds r1, r5, #0 subs r1, #0x3f movs r0, #0xba movs r2, #2 bl sub_0807B314 b _0805C16E _0805C11C: movs r0, #0xb5 adds r1, r5, #0 movs r2, #2 bl sub_0807B314 bl sub_08052660 cmp r0, #0 beq _0805C16E bl sub_0805C608 adds r1, r0, #0 movs r0, #0x4f movs r2, #6 bl sub_080A2960 adds r3, r0, #0 cmp r3, #0 beq _0805C16E movs r1, #0x3f adds r0, r5, #0 ands r0, r1 lsls r0, r0, #4 adds r0, #8 ldr r2, _0805C170 @ =gUnk_03000BF0 ldrh r1, [r2, #6] adds r1, r1, r0 strh r1, [r3, #0x2e] movs r0, #0xfc lsls r0, r0, #4 ands r0, r5 lsrs r0, r0, #2 ldr r1, _0805C174 @ =0x0000FFF0 adds r0, r0, r1 ldrh r2, [r2, #8] adds r0, r0, r2 strh r0, [r3, #0x32] adds r1, r3, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] _0805C16E: pop {r4, r5, pc} .align 2, 0 _0805C170: .4byte gUnk_03000BF0 _0805C174: .4byte 0x0000FFF0 thumb_func_start sub_0805C178 sub_0805C178: @ 0x0805C178 push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 adds r1, r5, #0 subs r1, #0x40 movs r0, #0xf1 adds r2, r4, #0 bl sub_0807B314 adds r1, r5, #0 subs r1, #0x3f movs r0, #0xf5 adds r2, r4, #0 bl sub_0807B314 adds r1, r5, #1 movs r0, #0xf6 adds r2, r4, #0 bl sub_0807B314 adds r1, r5, #0 adds r1, #0x40 movs r0, #0xf4 adds r2, r4, #0 bl sub_0807B314 adds r1, r5, #0 adds r1, #0x41 movs r0, #0xf7 adds r2, r4, #0 bl sub_0807B314 cmp r4, #1 bne _0805C23E bl sub_08052670 cmp r0, #0 beq _0805C1FC movs r0, #0x4f movs r1, #0xe movs r2, #1 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _0805C204 movs r1, #0x3f adds r0, r5, #0 ands r0, r1 lsls r0, r0, #4 ldr r1, _0805C1F8 @ =gUnk_03000BF0 adds r0, #0x18 ldrh r3, [r1, #6] adds r0, r0, r3 strh r0, [r2, #0x2e] movs r0, #0xfc lsls r0, r0, #4 ands r0, r5 lsrs r0, r0, #2 adds r0, #8 ldrh r1, [r1, #8] adds r1, r1, r0 strh r1, [r2, #0x32] b _0805C204 .align 2, 0 _0805C1F8: .4byte gUnk_03000BF0 _0805C1FC: bl sub_08052660 cmp r0, #0 beq _0805C210 _0805C204: movs r0, #0xf2 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 b _0805C21A _0805C210: movs r0, #0xf3 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 _0805C21A: adds r1, r5, #0 subs r1, #0x3f movs r0, #0xf8 movs r2, #2 bl sub_0807B314 adds r1, r5, #1 movs r0, #0xf9 movs r2, #2 bl sub_0807B314 adds r1, r5, #0 adds r1, #0x41 movs r0, #0xfa movs r2, #2 bl sub_0807B314 b _0805C28E _0805C23E: movs r0, #0xf2 adds r1, r5, #0 movs r2, #2 bl sub_0807B314 bl sub_08052660 cmp r0, #0 beq _0805C28E bl sub_0805C608 adds r1, r0, #0 movs r0, #0x4f movs r2, #7 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _0805C28E movs r1, #0x3f adds r0, r5, #0 ands r0, r1 lsls r0, r0, #4 ldr r1, _0805C290 @ =gUnk_03000BF0 adds r0, #0x20 ldrh r3, [r1, #6] adds r0, r0, r3 strh r0, [r2, #0x2e] movs r0, #0xfc lsls r0, r0, #4 ands r0, r5 lsrs r0, r0, #2 adds r0, #8 ldrh r1, [r1, #8] adds r1, r1, r0 strh r1, [r2, #0x32] adds r1, r2, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] _0805C28E: pop {r4, r5, pc} .align 2, 0 _0805C290: .4byte gUnk_03000BF0 thumb_func_start sub_0805C294 sub_0805C294: @ 0x0805C294 push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 subs r1, r5, #1 movs r0, #0xd1 adds r2, r4, #0 bl sub_0807B314 adds r1, r5, #1 movs r0, #0xd4 adds r2, r4, #0 bl sub_0807B314 adds r1, r5, #0 adds r1, #0x3f movs r0, #0xd5 adds r2, r4, #0 bl sub_0807B314 adds r1, r5, #0 adds r1, #0x40 movs r0, #0xd6 adds r2, r4, #0 bl sub_0807B314 adds r1, r5, #0 adds r1, #0x41 movs r0, #0xd7 adds r2, r4, #0 bl sub_0807B314 cmp r4, #1 bne _0805C35C bl sub_08052670 cmp r0, #0 beq _0805C318 movs r0, #0x4f movs r1, #0xe movs r2, #2 bl sub_080A2960 adds r3, r0, #0 cmp r3, #0 beq _0805C320 movs r1, #0x3f adds r0, r5, #0 ands r0, r1 lsls r0, r0, #4 adds r0, #8 ldr r2, _0805C314 @ =gUnk_03000BF0 ldrh r1, [r2, #6] adds r1, r1, r0 strh r1, [r3, #0x2e] movs r0, #0xfc lsls r0, r0, #4 ands r0, r5 lsrs r0, r0, #2 adds r0, #0x20 ldrh r2, [r2, #8] adds r0, r0, r2 strh r0, [r3, #0x32] b _0805C320 .align 2, 0 _0805C314: .4byte gUnk_03000BF0 _0805C318: bl sub_08052660 cmp r0, #0 beq _0805C32C _0805C320: movs r0, #0xd2 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 b _0805C336 _0805C32C: movs r0, #0xd3 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 _0805C336: adds r1, r5, #0 adds r1, #0x3f movs r0, #0xd8 movs r2, #2 bl sub_0807B314 adds r1, r5, #0 adds r1, #0x40 movs r0, #0xd9 movs r2, #2 bl sub_0807B314 adds r1, r5, #0 adds r1, #0x41 movs r0, #0xda movs r2, #2 bl sub_0807B314 b _0805C3AC _0805C35C: movs r0, #0xd2 adds r1, r5, #0 movs r2, #2 bl sub_0807B314 bl sub_08052660 cmp r0, #0 beq _0805C3AC bl sub_0805C608 adds r1, r0, #0 movs r0, #0x4f movs r2, #8 bl sub_080A2960 adds r3, r0, #0 cmp r3, #0 beq _0805C3AC movs r1, #0x3f adds r0, r5, #0 ands r0, r1 lsls r0, r0, #4 adds r0, #8 ldr r2, _0805C3B0 @ =gUnk_03000BF0 ldrh r1, [r2, #6] adds r1, r1, r0 strh r1, [r3, #0x2e] movs r0, #0xfc lsls r0, r0, #4 ands r0, r5 lsrs r0, r0, #2 adds r0, #0x20 ldrh r2, [r2, #8] adds r0, r0, r2 strh r0, [r3, #0x32] adds r1, r3, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] _0805C3AC: pop {r4, r5, pc} .align 2, 0 _0805C3B0: .4byte gUnk_03000BF0 thumb_func_start sub_0805C3B4 sub_0805C3B4: @ 0x0805C3B4 push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 adds r1, r5, #0 subs r1, #0x41 movs r0, #0xe1 adds r2, r4, #0 bl sub_0807B314 adds r1, r5, #0 subs r1, #0x40 movs r0, #0xe4 adds r2, r4, #0 bl sub_0807B314 subs r1, r5, #1 movs r0, #0xe2 adds r2, r4, #0 bl sub_0807B314 adds r1, r5, #0 adds r1, #0x3f movs r0, #0xe3 adds r2, r4, #0 bl sub_0807B314 adds r1, r5, #0 adds r1, #0x40 movs r0, #0xe7 adds r2, r4, #0 bl sub_0807B314 cmp r4, #1 bne _0805C482 bl sub_08052670 cmp r0, #0 beq _0805C440 movs r0, #0x4f movs r1, #0xe movs r2, #3 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _0805C448 movs r1, #0x3f adds r0, r5, #0 ands r0, r1 lsls r0, r0, #4 ldr r1, _0805C438 @ =gUnk_03000BF0 ldr r3, _0805C43C @ =0x0000FFF0 adds r0, r0, r3 ldrh r3, [r1, #6] adds r0, r0, r3 strh r0, [r2, #0x2e] movs r0, #0xfc lsls r0, r0, #4 ands r0, r5 lsrs r0, r0, #2 adds r0, #8 ldrh r1, [r1, #8] adds r1, r1, r0 strh r1, [r2, #0x32] b _0805C448 .align 2, 0 _0805C438: .4byte gUnk_03000BF0 _0805C43C: .4byte 0x0000FFF0 _0805C440: bl sub_08052660 cmp r0, #0 beq _0805C454 _0805C448: movs r0, #0xe5 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 b _0805C45E _0805C454: movs r0, #0xe6 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 _0805C45E: adds r1, r5, #0 subs r1, #0x41 movs r0, #0xe8 movs r2, #2 bl sub_0807B314 subs r1, r5, #1 movs r0, #0xe9 movs r2, #2 bl sub_0807B314 adds r1, r5, #0 adds r1, #0x3f movs r0, #0xea movs r2, #2 bl sub_0807B314 b _0805C4D4 _0805C482: movs r0, #0xe5 adds r1, r5, #0 movs r2, #2 bl sub_0807B314 bl sub_08052660 cmp r0, #0 beq _0805C4D4 bl sub_0805C608 adds r1, r0, #0 movs r0, #0x4f movs r2, #9 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _0805C4D4 movs r1, #0x3f adds r0, r5, #0 ands r0, r1 lsls r0, r0, #4 ldr r1, _0805C4D8 @ =gUnk_03000BF0 ldr r3, _0805C4DC @ =0x0000FFF0 adds r0, r0, r3 ldrh r3, [r1, #6] adds r0, r0, r3 strh r0, [r2, #0x2e] movs r0, #0xfc lsls r0, r0, #4 ands r0, r5 lsrs r0, r0, #2 adds r0, #8 ldrh r1, [r1, #8] adds r1, r1, r0 strh r1, [r2, #0x32] adds r1, r2, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] _0805C4D4: pop {r4, r5, pc} .align 2, 0 _0805C4D8: .4byte gUnk_03000BF0 _0805C4DC: .4byte 0x0000FFF0 thumb_func_start sub_0805C4E0 sub_0805C4E0: @ 0x0805C4E0 push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 adds r1, r5, #0 subs r1, #0x41 movs r0, #0xc1 adds r2, r4, #0 bl sub_0807B314 adds r1, r5, #0 subs r1, #0x40 movs r0, #0xc2 adds r2, r4, #0 bl sub_0807B314 adds r1, r5, #0 subs r1, #0x3f movs r0, #0xc3 adds r2, r4, #0 bl sub_0807B314 subs r1, r5, #1 movs r0, #0xc4 adds r2, r4, #0 bl sub_0807B314 adds r1, r5, #1 movs r0, #0xc7 adds r2, r4, #0 bl sub_0807B314 cmp r4, #1 bne _0805C5AC bl sub_08052670 cmp r0, #0 beq _0805C568 movs r0, #0x4f movs r1, #0xe movs r2, #0 bl sub_080A2960 adds r3, r0, #0 cmp r3, #0 beq _0805C570 movs r1, #0x3f adds r0, r5, #0 ands r0, r1 lsls r0, r0, #4 adds r0, #8 ldr r2, _0805C560 @ =gUnk_03000BF0 ldrh r1, [r2, #6] adds r1, r1, r0 strh r1, [r3, #0x2e] movs r0, #0xfc lsls r0, r0, #4 ands r0, r5 lsrs r0, r0, #2 ldr r1, _0805C564 @ =0x0000FFF0 adds r0, r0, r1 ldrh r2, [r2, #8] adds r0, r0, r2 strh r0, [r3, #0x32] b _0805C570 .align 2, 0 _0805C560: .4byte gUnk_03000BF0 _0805C564: .4byte 0x0000FFF0 _0805C568: bl sub_08052660 cmp r0, #0 beq _0805C57C _0805C570: movs r0, #0xc5 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 b _0805C586 _0805C57C: movs r0, #0xc6 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 _0805C586: adds r1, r5, #0 subs r1, #0x41 movs r0, #0xc8 movs r2, #2 bl sub_0807B314 adds r1, r5, #0 subs r1, #0x40 movs r0, #0xc9 movs r2, #2 bl sub_0807B314 adds r1, r5, #0 subs r1, #0x3f movs r0, #0xca movs r2, #2 bl sub_0807B314 b _0805C5FE _0805C5AC: movs r0, #0xc5 adds r1, r5, #0 movs r2, #2 bl sub_0807B314 bl sub_08052660 cmp r0, #0 beq _0805C5FE bl sub_0805C608 adds r1, r0, #0 movs r0, #0x4f movs r2, #6 bl sub_080A2960 adds r3, r0, #0 cmp r3, #0 beq _0805C5FE movs r1, #0x3f adds r0, r5, #0 ands r0, r1 lsls r0, r0, #4 adds r0, #8 ldr r2, _0805C600 @ =gUnk_03000BF0 ldrh r1, [r2, #6] adds r1, r1, r0 strh r1, [r3, #0x2e] movs r0, #0xfc lsls r0, r0, #4 ands r0, r5 lsrs r0, r0, #2 ldr r1, _0805C604 @ =0x0000FFF0 adds r0, r0, r1 ldrh r2, [r2, #8] adds r0, r0, r2 strh r0, [r3, #0x32] adds r1, r3, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] _0805C5FE: pop {r4, r5, pc} .align 2, 0 _0805C600: .4byte gUnk_03000BF0 _0805C604: .4byte 0x0000FFF0 thumb_func_start sub_0805C608 sub_0805C608: @ 0x0805C608 ldr r1, _0805C614 @ =gUnk_08108CFC ldr r0, _0805C618 @ =gUnk_02033A90 ldrb r0, [r0, #3] adds r0, r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0805C614: .4byte gUnk_08108CFC _0805C618: .4byte gUnk_02033A90 thumb_func_start sub_0805C61C sub_0805C61C: @ 0x0805C61C push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0805C674 movs r0, #0x38 ldrsh r1, [r4, r0] ldr r2, _0805C668 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x3a ldrsh r0, [r4, r5] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 strh r1, [r4, #0x38] movs r1, #0x38 ldrsh r0, [r4, r1] movs r1, #2 bl sub_080002B0 cmp r0, #0x75 bne _0805C670 movs r0, #1 strb r0, [r4, #0xc] ldr r0, _0805C66C @ =0x0000406A movs r2, #0x38 ldrsh r1, [r4, r2] movs r2, #1 bl sub_0800015E b _0805C674 .align 2, 0 _0805C668: .4byte gUnk_03000BF0 _0805C66C: .4byte 0x0000406A _0805C670: bl sub_0805E780 _0805C674: movs r5, #0x38 ldrsh r0, [r4, r5] movs r1, #1 bl sub_080002B0 ldr r5, _0805C6B4 @ =0x0000406B cmp r0, r5 bne _0805C694 movs r0, #0x38 ldrsh r1, [r4, r0] movs r0, #0x76 movs r2, #2 bl sub_0807B7D8 bl sub_0805E780 _0805C694: movs r1, #0x38 ldrsh r0, [r4, r1] movs r1, #2 bl sub_080002B0 cmp r0, #0x76 bne _0805C6B2 movs r2, #0x38 ldrsh r1, [r4, r2] adds r0, r5, #0 movs r2, #1 bl sub_0800015E bl sub_0805E780 _0805C6B2: pop {r4, r5, pc} .align 2, 0 _0805C6B4: .4byte 0x0000406B thumb_func_start sub_0805C6B8 sub_0805C6B8: @ 0x0805C6B8 push {lr} ldr r2, _0805C6CC @ =gUnk_08108D04 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805C6CC: .4byte gUnk_08108D04 thumb_func_start sub_0805C6D0 sub_0805C6D0: @ 0x0805C6D0 push {r4, r5, r6, r7, lr} sub sp, #4 adds r5, r0, #0 ldrb r0, [r5, #0xa] bl sub_0804B128 adds r4, r0, #0 cmp r4, #0 bne _0805C6EA adds r0, r5, #0 bl sub_0805E900 b _0805C79A _0805C6EA: ldr r3, _0805C784 @ =gUnk_03000BF0 ldrh r0, [r3, #8] ldrb r1, [r5, #0xe] adds r0, r0, r1 movs r1, #0 strh r0, [r5, #0x2a] strb r1, [r5, #0xe] adds r0, r5, #0 adds r0, #0x28 strb r1, [r0] adds r2, r5, #0 adds r2, #0x29 strb r1, [r2] ldrb r0, [r4] cmp r0, #0xff beq _0805C778 ldrb r0, [r5, #0xe] cmp r0, #0x1f bhi _0805C778 adds r7, r3, #0 movs r3, #1 adds r6, r2, #0 _0805C716: ldrb r1, [r4, #1] ldrb r2, [r4, #2] movs r0, #0x4c str r3, [sp] bl sub_080A2960 adds r2, r0, #0 ldr r3, [sp] cmp r2, #0 beq _0805C762 ldrb r0, [r4, #3] strb r0, [r2, #0xe] ldrh r0, [r4, #4] ldrh r1, [r7, #6] adds r0, r0, r1 strh r0, [r2, #0x2e] ldrh r0, [r4, #6] ldrh r1, [r7, #8] adds r0, r0, r1 strh r0, [r2, #0x32] str r5, [r2, #0x50] adds r0, r2, #0 adds r0, #0x38 strb r3, [r0] ldrb r0, [r5, #0xe] adds r1, r2, #0 adds r1, #0x83 strb r0, [r1] ldrb r1, [r4] adds r0, r2, #0 adds r0, #0x82 strb r1, [r0] adds r0, r3, #0 ldrb r1, [r5, #0xe] lsls r0, r1 ldrb r1, [r6] orrs r0, r1 strb r0, [r6] _0805C762: adds r4, #8 ldrb r0, [r5, #0xe] adds r1, r0, #1 strb r1, [r5, #0xe] ldrb r0, [r4] cmp r0, #0xff beq _0805C778 lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x1f bls _0805C716 _0805C778: ldrb r0, [r5, #0xb] cmp r0, #0xff bne _0805C788 movs r0, #2 b _0805C798 .align 2, 0 _0805C784: .4byte gUnk_03000BF0 _0805C788: ldrb r0, [r5, #0xb] bl sub_0807CBD0 cmp r0, #0 beq _0805C796 movs r0, #2 b _0805C798 _0805C796: movs r0, #1 _0805C798: strb r0, [r5, #0xc] _0805C79A: add sp, #4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0805C7A0 sub_0805C7A0: @ 0x0805C7A0 push {r4, lr} adds r4, r0, #0 adds r0, #0x28 adds r1, r4, #0 adds r1, #0x29 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bne _0805C7BC movs r0, #2 strb r0, [r4, #0xc] ldrb r0, [r4, #0xb] bl sub_0807CCB4 _0805C7BC: adds r0, r4, #0 bl sub_0805C7CC pop {r4, pc} thumb_func_start sub_0805C7C4 sub_0805C7C4: @ 0x0805C7C4 push {lr} bl sub_0805C7CC pop {pc} thumb_func_start sub_0805C7CC sub_0805C7CC: @ 0x0805C7CC push {lr} adds r2, r0, #0 ldr r0, _0805C7F0 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _0805C7FC ldr r0, _0805C7F4 @ =gUnk_03001160 movs r3, #0x32 ldrsh r1, [r0, r3] ldrh r0, [r2, #0x2a] adds r0, #0x10 cmp r1, r0 bge _0805C7F8 movs r0, #1 b _0805C816 .align 2, 0 _0805C7F0: .4byte gUnk_03003F80 _0805C7F4: .4byte gUnk_03001160 _0805C7F8: movs r0, #0 b _0805C816 _0805C7FC: ldr r0, _0805C810 @ =gUnk_03001160 movs r3, #0x32 ldrsh r1, [r0, r3] ldrh r0, [r2, #0x2a] adds r0, #0x28 cmp r1, r0 bge _0805C814 movs r0, #3 b _0805C816 .align 2, 0 _0805C810: .4byte gUnk_03001160 _0805C814: movs r0, #2 _0805C816: strb r0, [r2, #0xd] pop {pc} .align 2, 0 thumb_func_start sub_0805C81C sub_0805C81C: @ 0x0805C81C push {r4, lr} adds r4, r0, #0 ldr r1, _0805C854 @ =gUnk_08108D10 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 movs r0, #0xc0 lsls r0, r0, #2 ldrb r1, [r4, #0xa] adds r1, #0x67 bl sub_0807CB10 cmp r0, #0 beq _0805C85C ldr r0, _0805C858 @ =gUnk_030010A0 adds r0, #0xac movs r1, #1 ldrb r4, [r4, #0xa] lsls r1, r4 ldrh r2, [r0] orrs r1, r2 strh r1, [r0] b _0805C86C .align 2, 0 _0805C854: .4byte gUnk_08108D10 _0805C858: .4byte gUnk_030010A0 _0805C85C: ldr r2, _0805C870 @ =gUnk_030010A0 adds r2, #0xac movs r1, #1 ldrb r4, [r4, #0xa] lsls r1, r4 ldrh r0, [r2] bics r0, r1 strh r0, [r2] _0805C86C: pop {r4, pc} .align 2, 0 _0805C870: .4byte gUnk_030010A0 thumb_func_start sub_0805C874 sub_0805C874: @ 0x0805C874 push {r4, lr} adds r4, r0, #0 bl sub_0805C920 cmp r0, #0 beq _0805C884 movs r0, #2 b _0805C886 _0805C884: movs r0, #1 _0805C886: strb r0, [r4, #0xc] movs r1, #0 movs r0, #1 strb r0, [r4, #0xe] strb r1, [r4, #0xf] pop {r4, pc} .align 2, 0 thumb_func_start sub_0805C894 sub_0805C894: @ 0x0805C894 push {r4, lr} adds r4, r0, #0 bl sub_0805C920 cmp r0, #0 beq _0805C8B0 movs r0, #2 strb r0, [r4, #0xc] movs r0, #1 strb r0, [r4, #0xe] movs r0, #0x8d lsls r0, r0, #1 bl sub_080A3268 _0805C8B0: pop {r4, pc} .align 2, 0 thumb_func_start sub_0805C8B4 sub_0805C8B4: @ 0x0805C8B4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r2, #0xff lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0805C8F4 movs r0, #0x14 strb r0, [r4, #0xe] ldrb r0, [r4, #0xf] adds r0, #1 strb r0, [r4, #0xf] ands r0, r2 cmp r0, #5 bls _0805C8DA strb r1, [r4, #0xf] _0805C8DA: ldr r1, _0805C904 @ =gUnk_08108D20 ldrb r0, [r4, #0xf] adds r0, r0, r1 ldrb r0, [r0] bl sub_0801D714 ldrb r0, [r4, #0xf] cmp r0, #0 bne _0805C8F4 movs r0, #0x8d lsls r0, r0, #1 bl sub_080A3268 _0805C8F4: adds r0, r4, #0 bl sub_0805C920 cmp r0, #0 bne _0805C902 movs r0, #3 strb r0, [r4, #0xc] _0805C902: pop {r4, pc} .align 2, 0 _0805C904: .4byte gUnk_08108D20 thumb_func_start sub_0805C908 sub_0805C908: @ 0x0805C908 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xf] cmp r0, #0 bne _0805C918 movs r0, #1 strb r0, [r1, #0xc] b _0805C91E _0805C918: adds r0, r1, #0 bl sub_0805C8B4 _0805C91E: pop {pc} thumb_func_start sub_0805C920 sub_0805C920: @ 0x0805C920 push {lr} movs r2, #0xc0 lsls r2, r2, #2 ldrb r1, [r0, #0xa] adds r1, #0x67 adds r0, r2, #0 bl sub_0807CB10 pop {pc} .align 2, 0 thumb_func_start sub_0805C934 sub_0805C934: @ 0x0805C934 push {lr} ldr r2, _0805C948 @ =gUnk_08108D28 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805C948: .4byte gUnk_08108D28 thumb_func_start sub_0805C94C sub_0805C94C: @ 0x0805C94C push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 bne _0805C9B0 adds r6, r4, #0 adds r6, #0x20 adds r1, r6, #0 movs r2, #0 adds r0, r4, #0 adds r0, #0x3c _0805C962: str r2, [r0] subs r0, #4 cmp r0, r1 bge _0805C962 adds r0, r4, #0 bl sub_0805CA6C adds r5, r0, #0 cmp r5, #1 ble _0805C9A8 bl sub_0805E8D4 adds r2, r0, #0 cmp r2, #0 beq _0805C9A8 movs r0, #9 strb r0, [r2, #8] movs r0, #0x28 strb r0, [r2, #9] movs r0, #1 strb r0, [r2, #0xa] strb r5, [r2, #0xe] adds r1, r2, #0 adds r1, #0x20 adds r0, r6, #0 ldm r0!, {r3, r5, r6} stm r1!, {r3, r5, r6} ldm r0!, {r3, r5, r6} stm r1!, {r3, r5, r6} ldm r0!, {r3, r5} stm r1!, {r3, r5} adds r0, r2, #0 movs r1, #6 bl sub_0805EA2C _0805C9A8: adds r0, r4, #0 bl sub_0805E900 b _0805C9B8 _0805C9B0: movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0xf] _0805C9B8: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0805C9BC sub_0805C9BC: @ 0x0805C9BC push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #4 adds r6, r0, #0 bl sub_0805CB48 ldrb r0, [r6, #0xe] subs r0, #1 mov sb, r0 ldrb r1, [r6, #0xf] adds r0, r1, #1 strb r0, [r6, #0xf] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0805CA22 movs r2, #0 cmp r2, sb bge _0805CA62 movs r0, #0x20 adds r0, r0, r6 mov r8, r0 _0805C9EC: lsls r1, r2, #2 adds r0, r6, #0 adds r0, #0x20 adds r0, r0, r1 ldr r3, [r0] adds r4, r2, #1 adds r5, r4, #0 ldrb r1, [r6, #0xe] cmp r5, r1 bge _0805CA1A lsls r0, r5, #2 mov r1, r8 adds r7, r0, r1 _0805CA06: ldm r7!, {r1} adds r0, r3, #0 str r3, [sp] bl sub_08004484 adds r4, #1 ldr r3, [sp] ldrb r0, [r6, #0xe] cmp r4, r0 blt _0805CA06 _0805CA1A: adds r2, r5, #0 cmp r2, sb blt _0805C9EC b _0805CA62 _0805CA22: movs r2, #0 cmp r2, sb bge _0805CA62 movs r1, #0x20 adds r1, r1, r6 mov r8, r1 _0805CA2E: lsls r1, r2, #2 adds r0, r6, #0 adds r0, #0x20 adds r0, r0, r1 ldr r3, [r0] adds r4, r2, #1 adds r5, r4, #0 ldrb r0, [r6, #0xe] cmp r5, r0 bge _0805CA5C lsls r0, r5, #2 mov r1, r8 adds r7, r0, r1 _0805CA48: ldm r7!, {r0} adds r1, r3, #0 str r3, [sp] bl sub_08004484 adds r4, #1 ldr r3, [sp] ldrb r0, [r6, #0xe] cmp r4, r0 blt _0805CA48 _0805CA5C: adds r2, r5, #0 cmp r2, sb blt _0805CA2E _0805CA62: add sp, #4 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0805CA6C sub_0805CA6C: @ 0x0805CA6C push {r4, r5, r6, lr} adds r6, r0, #0 movs r5, #0 ldrb r0, [r6, #0xb] bl sub_0804B128 adds r4, r0, #0 cmp r4, #0 bne _0805CACE movs r0, #0 b _0805CAE4 _0805CA82: movs r0, #8 b _0805CAE4 _0805CA86: movs r0, #0xf ands r0, r2 cmp r0, #3 bne _0805CACC adds r0, r4, #0 bl sub_0805CAF0 adds r2, r0, #0 cmp r2, #0 beq _0805CACC movs r3, #0 cmp r3, r5 bhs _0805CAB8 ldr r0, [r6, #0x20] cmp r0, r2 beq _0805CAB8 adds r1, r6, #0 adds r1, #0x20 _0805CAAA: adds r1, #4 adds r3, #1 cmp r3, r5 bhs _0805CAB8 ldr r0, [r1] cmp r0, r2 bne _0805CAAA _0805CAB8: cmp r3, r5 bne _0805CACC lsls r1, r5, #2 adds r0, r6, #0 adds r0, #0x20 adds r0, r0, r1 str r2, [r0] adds r5, #1 cmp r5, #8 beq _0805CA82 _0805CACC: adds r4, #0x10 _0805CACE: ldrb r2, [r4] adds r0, r2, #0 cmp r0, #0xff beq _0805CAE2 ldr r0, [r4] ldr r1, _0805CAE8 @ =0x00FF000F ands r0, r1 ldr r1, _0805CAEC @ =0x00280009 cmp r0, r1 bne _0805CA86 _0805CAE2: adds r0, r5, #0 _0805CAE4: pop {r4, r5, r6, pc} .align 2, 0 _0805CAE8: .4byte 0x00FF000F _0805CAEC: .4byte 0x00280009 thumb_func_start sub_0805CAF0 sub_0805CAF0: @ 0x0805CAF0 push {r4, r5, r6, lr} adds r3, r0, #0 ldrh r1, [r3, #8] ldr r2, _0805CB34 @ =gUnk_03000BF0 ldrh r0, [r2, #6] adds r5, r1, r0 ldrh r1, [r3, #0xa] ldrh r0, [r2, #8] adds r4, r1, r0 ldr r1, _0805CB38 @ =gUnk_03003D90 ldr r2, [r1, #4] cmp r2, r1 beq _0805CB42 _0805CB0A: movs r6, #0x2e ldrsh r0, [r2, r6] cmp r5, r0 bne _0805CB3C movs r6, #0x32 ldrsh r0, [r2, r6] cmp r4, r0 bne _0805CB3C ldrb r0, [r3, #2] ldrb r6, [r2, #9] cmp r0, r6 bne _0805CB3C ldrb r0, [r2, #8] cmp r0, #3 bne _0805CB3C ldrb r0, [r3, #3] ldrb r6, [r2, #0xa] cmp r0, r6 bne _0805CB3C adds r0, r2, #0 b _0805CB44 .align 2, 0 _0805CB34: .4byte gUnk_03000BF0 _0805CB38: .4byte gUnk_03003D90 _0805CB3C: ldr r2, [r2, #4] cmp r2, r1 bne _0805CB0A _0805CB42: movs r0, #0 _0805CB44: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0805CB48 sub_0805CB48: @ 0x0805CB48 push {r4, r5, r6, lr} adds r4, r0, #0 movs r5, #0 ldrb r1, [r4, #0xe] cmp r5, r1 bge _0805CB84 adds r3, r4, #0 adds r3, #0x20 adds r6, r3, #0 _0805CB5A: ldr r0, [r3] ldr r2, [r0, #4] cmp r2, #0 bne _0805CB7A subs r0, r1, #1 cmp r0, r5 bne _0805CB6C str r2, [r3] b _0805CB74 _0805CB6C: lsls r0, r0, #2 adds r0, r6, r0 ldr r0, [r0] str r0, [r3] _0805CB74: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] _0805CB7A: adds r3, #4 adds r5, #1 ldrb r1, [r4, #0xe] cmp r5, r1 blt _0805CB5A _0805CB84: ldrb r0, [r4, #0xe] cmp r0, #1 bhi _0805CB8E bl sub_0805E780 _0805CB8E: pop {r4, r5, r6, pc} thumb_func_start sub_0805CB90 sub_0805CB90: @ 0x0805CB90 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0805CBB8 adds r0, r4, #0 bl sub_0805CBD0 ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _0805CBCE adds r0, r4, #0 bl sub_0805CC3C adds r0, r4, #0 bl sub_0805E900 b _0805CBCE _0805CBB8: adds r0, r4, #0 bl sub_0805CF80 cmp r0, #0 beq _0805CBCE ldrh r0, [r4, #0x3e] bl sub_0807CCC8 adds r0, r4, #0 bl sub_0805E900 _0805CBCE: pop {r4, pc} thumb_func_start sub_0805CBD0 sub_0805CBD0: @ 0x0805CBD0 push {r4, r5, lr} adds r5, r0, #0 movs r0, #1 strb r0, [r5, #0xc] ldrh r1, [r5, #0x38] lsls r1, r1, #0x10 asrs r1, r1, #0x14 movs r3, #0x3f ands r1, r3 ldrh r0, [r5, #0x3a] lsls r0, r0, #0x10 asrs r0, r0, #0x14 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 strh r1, [r5, #0x38] ldrh r2, [r5, #0x3c] lsrs r2, r2, #4 ands r2, r3 adds r0, r5, #0 adds r0, #0x36 ldrb r1, [r0] adds r0, #1 ldrb r0, [r0] lsls r0, r0, #8 adds r1, r1, r0 asrs r1, r1, #4 ands r1, r3 lsls r1, r1, #6 orrs r2, r1 strh r2, [r5, #0x3a] movs r1, #0x38 ldrsh r0, [r5, r1] adds r4, r5, #0 adds r4, #0x34 ldrb r1, [r4] bl sub_080002B0 strh r0, [r5, #0x3c] ldrb r0, [r4] bl sub_0808094C ldr r2, _0805CC38 @ =0x00005004 adds r1, r0, r2 str r1, [r5, #0x28] movs r2, #0x3a ldrsh r1, [r5, r2] lsls r1, r1, #1 adds r1, #4 adds r0, r0, r1 str r0, [r5, #0x2c] pop {r4, r5, pc} .align 2, 0 _0805CC38: .4byte 0x00005004 thumb_func_start sub_0805CC3C sub_0805CC3C: @ 0x0805CC3C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 movs r0, #0x38 ldrsh r5, [r4, r0] movs r0, #0x3a ldrsh r1, [r4, r0] mov r8, r1 adds r7, r4, #0 adds r7, #0x34 ldrb r0, [r7] ldr r6, _0805CC6C @ =0x00000322 cmp r0, #1 bne _0805CC5C subs r6, #1 _0805CC5C: ldrb r0, [r4, #0xa] cmp r0, #2 beq _0805CCF4 cmp r0, #2 bgt _0805CC70 cmp r0, #1 beq _0805CC94 b _0805CC76 .align 2, 0 _0805CC6C: .4byte 0x00000322 _0805CC70: cmp r0, #3 bne _0805CC76 b _0805CDE4 _0805CC76: adds r4, #0x34 ldrb r2, [r4] adds r0, r6, #0 adds r1, r5, #0 bl sub_0807B7D8 ldr r0, _0805CC90 @ =0x00000365 ldrb r2, [r4] mov r1, r8 bl sub_0807B7D8 b _0805CF68 .align 2, 0 _0805CC90: .4byte 0x00000365 _0805CC94: ldrb r2, [r7] adds r0, r6, #0 adds r1, r5, #0 bl sub_0807B7D8 adds r1, r5, #1 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #0 adds r1, #0x40 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #0 adds r1, #0x41 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 ldrh r0, [r4, #0x3c] ldrb r2, [r7] mov r1, r8 bl sub_0807B7D8 ldr r0, _0805CCEC @ =0x0000036F mov r1, r8 adds r1, #1 ldrb r2, [r7] bl sub_0807B7D8 movs r0, #0xdc lsls r0, r0, #2 mov r1, r8 adds r1, #0x40 ldrb r2, [r7] bl sub_0807B7D8 ldr r0, _0805CCF0 @ =0x00000371 mov r1, r8 adds r1, #0x41 b _0805CDC2 .align 2, 0 _0805CCEC: .4byte 0x0000036F _0805CCF0: .4byte 0x00000371 _0805CCF4: ldrb r2, [r7] adds r0, r6, #0 adds r1, r5, #0 bl sub_0807B7D8 adds r1, r5, #1 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #2 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #0 adds r1, #0x40 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #0 adds r1, #0x41 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #0 adds r1, #0x42 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #0 adds r1, #0x80 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #0 adds r1, #0x81 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #0 adds r1, #0x82 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 ldrh r0, [r4, #0x3c] ldrb r2, [r7] mov r1, r8 bl sub_0807B7D8 ldr r0, _0805CDCC @ =0x00000372 mov r1, r8 adds r1, #1 ldrb r2, [r7] bl sub_0807B7D8 ldr r0, _0805CDD0 @ =0x0000036F mov r1, r8 adds r1, #2 ldrb r2, [r7] bl sub_0807B7D8 movs r0, #0xdd lsls r0, r0, #2 mov r1, r8 adds r1, #0x40 ldrb r2, [r7] bl sub_0807B7D8 ldr r0, _0805CDD4 @ =0x00000376 mov r1, r8 adds r1, #0x41 ldrb r2, [r7] bl sub_0807B7D8 ldr r0, _0805CDD8 @ =0x00000375 mov r1, r8 adds r1, #0x42 ldrb r2, [r7] bl sub_0807B7D8 movs r0, #0xdc lsls r0, r0, #2 mov r1, r8 adds r1, #0x80 ldrb r2, [r7] bl sub_0807B7D8 ldr r0, _0805CDDC @ =0x00000373 mov r1, r8 adds r1, #0x81 ldrb r2, [r7] bl sub_0807B7D8 ldr r0, _0805CDE0 @ =0x00000371 mov r1, r8 adds r1, #0x82 _0805CDC2: ldrb r2, [r7] bl sub_0807B7D8 b _0805CF68 .align 2, 0 _0805CDCC: .4byte 0x00000372 _0805CDD0: .4byte 0x0000036F _0805CDD4: .4byte 0x00000376 _0805CDD8: .4byte 0x00000375 _0805CDDC: .4byte 0x00000373 _0805CDE0: .4byte 0x00000371 _0805CDE4: ldrb r2, [r7] adds r0, r6, #0 adds r1, r5, #0 bl sub_0807B7D8 adds r1, r5, #1 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #2 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #3 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #0 adds r1, #0x40 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #0 adds r1, #0x41 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #0 adds r1, #0x42 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #0 adds r1, #0x43 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #0 adds r1, #0x80 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #0 adds r1, #0x81 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #0 adds r1, #0x82 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #0 adds r1, #0x83 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #0 adds r1, #0xc0 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #0 adds r1, #0xc1 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #0 adds r1, #0xc2 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r5, #0 adds r1, #0xc3 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 ldrh r0, [r4, #0x3c] ldrb r2, [r7] mov r1, r8 bl sub_0807B7D8 ldr r4, _0805CF70 @ =0x00000372 mov r1, r8 adds r1, #1 ldrb r2, [r7] adds r0, r4, #0 bl sub_0807B7D8 mov r1, r8 adds r1, #2 ldrb r2, [r7] adds r0, r4, #0 bl sub_0807B7D8 ldr r0, _0805CF74 @ =0x0000036F mov r1, r8 adds r1, #3 ldrb r2, [r7] bl sub_0807B7D8 movs r6, #0xdd lsls r6, r6, #2 mov r1, r8 adds r1, #0x40 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 adds r4, #4 mov r1, r8 adds r1, #0x41 ldrb r2, [r7] adds r0, r4, #0 bl sub_0807B7D8 mov r1, r8 adds r1, #0x42 ldrb r2, [r7] adds r0, r4, #0 bl sub_0807B7D8 ldr r5, _0805CF78 @ =0x00000375 mov r1, r8 adds r1, #0x43 ldrb r2, [r7] adds r0, r5, #0 bl sub_0807B7D8 mov r1, r8 adds r1, #0x80 ldrb r2, [r7] adds r0, r6, #0 bl sub_0807B7D8 mov r1, r8 adds r1, #0x81 ldrb r2, [r7] adds r0, r4, #0 bl sub_0807B7D8 mov r1, r8 adds r1, #0x82 ldrb r2, [r7] adds r0, r4, #0 bl sub_0807B7D8 mov r1, r8 adds r1, #0x83 ldrb r2, [r7] adds r0, r5, #0 bl sub_0807B7D8 movs r0, #0xdc lsls r0, r0, #2 mov r1, r8 adds r1, #0xc0 ldrb r2, [r7] bl sub_0807B7D8 subs r4, #3 mov r1, r8 adds r1, #0xc1 ldrb r2, [r7] adds r0, r4, #0 bl sub_0807B7D8 mov r1, r8 adds r1, #0xc2 ldrb r2, [r7] adds r0, r4, #0 bl sub_0807B7D8 ldr r0, _0805CF7C @ =0x00000371 mov r1, r8 adds r1, #0xc3 ldrb r2, [r7] bl sub_0807B7D8 _0805CF68: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0805CF70: .4byte 0x00000372 _0805CF74: .4byte 0x0000036F _0805CF78: .4byte 0x00000375 _0805CF7C: .4byte 0x00000371 thumb_func_start sub_0805CF80 sub_0805CF80: @ 0x0805CF80 push {lr} ldr r1, [r0, #0x2c] ldrh r1, [r1] ldr r0, [r0, #0x28] lsls r1, r1, #1 adds r1, r1, r0 ldrh r1, [r1] movs r2, #0 ldr r0, _0805CFBC @ =0x00000365 cmp r1, r0 beq _0805CFB4 adds r0, #4 cmp r1, r0 beq _0805CFB4 adds r0, #1 cmp r1, r0 beq _0805CFB4 adds r0, #1 cmp r1, r0 beq _0805CFB4 adds r0, #2 cmp r1, r0 beq _0805CFB4 subs r0, #1 cmp r1, r0 bne _0805CFB6 _0805CFB4: movs r2, #1 _0805CFB6: adds r0, r2, #0 pop {pc} .align 2, 0 _0805CFBC: .4byte 0x00000365 thumb_func_start sub_0805CFC0 sub_0805CFC0: @ 0x0805CFC0 push {r4, lr} adds r1, r0, #0 ldrb r0, [r1, #0xc] cmp r0, #0 bne _0805CFCE adds r0, #1 strb r0, [r1, #0xc] _0805CFCE: movs r0, #3 bl sub_0804B128 adds r4, r0, #0 cmp r4, #0 beq _0805CFEE b _0805CFE8 _0805CFDC: cmp r0, #0xa bne _0805CFE6 adds r0, r4, #0 bl sub_0805CFF0 _0805CFE6: adds r4, #8 _0805CFE8: ldrb r0, [r4] cmp r0, #0 bne _0805CFDC _0805CFEE: pop {r4, pc} thumb_func_start sub_0805CFF0 sub_0805CFF0: @ 0x0805CFF0 push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #2] bl sub_0807CBD0 cmp r0, #0 bne _0805D012 ldrh r0, [r4, #4] ldrb r1, [r4, #1] bl sub_080002B0 ldrh r1, [r4, #6] cmp r1, r0 bne _0805D012 ldrh r0, [r4, #2] bl sub_0807CCB4 _0805D012: pop {r4, pc} thumb_func_start sub_0805D014 sub_0805D014: @ 0x0805D014 push {lr} ldr r2, _0805D028 @ =gUnk_08108D30 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805D028: .4byte gUnk_08108D30 thumb_func_start sub_0805D02C sub_0805D02C: @ 0x0805D02C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r6, r0, #0 ldrh r0, [r6, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _0805D046 bl sub_0805E780 _0805D046: ldr r0, _0805D0BC @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x43 bhi _0805D0B0 ldrb r0, [r6, #0xa] bl sub_0804B128 adds r5, r0, #0 movs r7, #0 movs r0, #0x36 adds r0, r0, r6 mov sl, r0 ldr r1, _0805D0C0 @ =gUnk_03000BF0 mov r8, r1 movs r0, #0x20 adds r0, r0, r6 mov sb, r0 _0805D068: ldrh r1, [r5, #4] movs r0, #0xa0 adds r2, r7, #0 bl sub_080A2960 adds r4, r0, #0 mov r1, r8 ldrh r0, [r1, #6] ldrh r1, [r5] adds r0, r0, r1 strh r0, [r4, #0x2e] mov r1, r8 ldrh r0, [r1, #8] ldrh r1, [r5, #2] adds r0, r0, r1 strh r0, [r4, #0x32] str r6, [r4, #0x50] adds r0, r4, #0 bl sub_08016A30 mov r0, sb adds r0, #4 mov sb, r0 subs r0, #4 stm r0!, {r4} adds r7, #1 adds r5, #6 cmp r7, #3 bls _0805D068 movs r0, #0 movs r1, #1 strb r1, [r6, #0xc] movs r1, #0x3c strb r1, [r6, #0xf] mov r1, sl strb r0, [r1] _0805D0B0: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _0805D0BC: .4byte gUnk_03003DBC _0805D0C0: .4byte gUnk_03000BF0 thumb_func_start sub_0805D0C4 sub_0805D0C4: @ 0x0805D0C4 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0805D0D8 movs r0, #0xb4 strb r0, [r4, #0xf] _0805D0D8: adds r5, r4, #0 adds r5, #0x36 ldrb r0, [r5] cmp r0, #0xf bne _0805D0F6 movs r0, #2 strb r0, [r4, #0xc] movs r0, #8 strb r0, [r4, #0xe] movs r0, #0x72 bl sub_080A3268 adds r0, r4, #0 bl sub_0805D11C _0805D0F6: movs r0, #0 strb r0, [r5] pop {r4, r5, pc} thumb_func_start sub_0805D0FC sub_0805D0FC: @ 0x0805D0FC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0805D118 ldrh r0, [r4, #0x3e] bl sub_0807CCC8 adds r0, r4, #0 bl sub_0805E900 _0805D118: pop {r4, pc} .align 2, 0 thumb_func_start sub_0805D11C sub_0805D11C: @ 0x0805D11C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} movs r6, #0 ldr r1, _0805D170 @ =gUnk_03000BF0 mov r8, r1 movs r7, #0x3f adds r5, r0, #0 adds r5, #0x20 _0805D12E: ldr r4, [r5] movs r0, #0 stm r5!, {r0} movs r2, #0x2e ldrsh r0, [r4, r2] mov r3, r8 ldrh r1, [r3, #6] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r7 movs r2, #0x32 ldrsh r1, [r4, r2] ldrh r2, [r3, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r7 lsls r1, r1, #6 orrs r0, r1 adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_0807BA8C adds r0, r4, #0 bl sub_0805E7BC adds r6, #1 cmp r6, #3 bls _0805D12E pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0805D170: .4byte gUnk_03000BF0 thumb_func_start sub_0805D174 sub_0805D174: @ 0x0805D174 push {r4, r5, lr} adds r5, r0, #0 ldrb r1, [r5, #0xc] cmp r1, #0 bne _0805D184 movs r0, #1 strb r0, [r5, #0xc] strh r1, [r5, #0x3a] _0805D184: movs r1, #0x38 ldrsh r0, [r5, r1] movs r2, #0x3a ldrsh r1, [r5, r2] movs r2, #0x14 movs r3, #0x40 bl sub_0800293E cmp r0, #0 beq _0805D1EE ldr r0, _0805D1F0 @ =gUnk_03001160 movs r4, #0x32 ldrsh r1, [r0, r4] ldr r3, _0805D1F4 @ =gUnk_03000BF0 ldrh r2, [r3, #8] subs r1, r1, r2 movs r4, #0x36 ldrsh r0, [r0, r4] adds r1, r1, r0 cmp r1, #0 bge _0805D1EE movs r1, #0xc ldrsh r0, [r3, r1] cmp r0, r2 bne _0805D1EE ldr r4, _0805D1F8 @ =gUnk_030010AC adds r0, r4, #0 movs r1, #0x20 bl sub_0801D630 subs r4, #0xc movs r1, #0 movs r0, #1 strb r0, [r4, #8] strb r1, [r4, #9] movs r0, #0xb strb r0, [r4, #0xf] ldrb r0, [r5, #0xb] strb r0, [r4, #0xc] ldrb r0, [r5, #0xe] strb r0, [r4, #0xd] adds r0, r5, #0 adds r0, #0x37 ldrb r0, [r0] strb r0, [r4, #0xe] ldrh r0, [r5, #0x3c] strh r0, [r4, #0x10] ldrh r0, [r5, #0x3e] strh r0, [r4, #0x12] adds r0, r5, #0 adds r0, #0x36 ldrb r0, [r0] strb r0, [r4, #0x14] _0805D1EE: pop {r4, r5, pc} .align 2, 0 _0805D1F0: .4byte gUnk_03001160 _0805D1F4: .4byte gUnk_03000BF0 _0805D1F8: .4byte gUnk_030010AC thumb_func_start sub_0805D1FC sub_0805D1FC: @ 0x0805D1FC push {r4, r5, lr} adds r4, r0, #0 ldr r0, _0805D240 @ =0x00004014 ldr r1, _0805D244 @ =0x000005C3 movs r2, #1 bl sub_0800015E ldr r3, _0805D248 @ =gUnk_03000BF0 ldrh r0, [r3, #8] adds r0, #0xc8 ldr r2, _0805D24C @ =gUnk_03001160 movs r5, #0x32 ldrsh r1, [r2, r5] cmp r0, r1 bge _0805D236 movs r1, #0x2e ldrsh r0, [r2, r1] ldrh r1, [r3, #6] subs r0, r0, r1 subs r0, #0x30 cmp r0, #0x10 bhi _0805D236 adds r1, r2, #0 adds r1, #0x38 movs r0, #3 strb r0, [r1] adds r0, r2, #0 bl sub_08016A04 _0805D236: adds r0, r4, #0 bl sub_0805E900 pop {r4, r5, pc} .align 2, 0 _0805D240: .4byte 0x00004014 _0805D244: .4byte 0x000005C3 _0805D248: .4byte gUnk_03000BF0 _0805D24C: .4byte gUnk_03001160 thumb_func_start sub_0805D250 sub_0805D250: @ 0x0805D250 push {lr} ldr r2, _0805D264 @ =gUnk_08108D3C ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805D264: .4byte gUnk_08108D3C thumb_func_start sub_0805D268 sub_0805D268: @ 0x0805D268 push {lr} ldr r2, _0805D27C @ =gUnk_08108D44 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805D27C: .4byte gUnk_08108D44 thumb_func_start sub_0805D280 sub_0805D280: @ 0x0805D280 push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #0x3c] bl sub_0807CBE4 cmp r0, #0 beq _0805D292 bl sub_0805E780 _0805D292: ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _0805D2A6 ldrh r0, [r4, #0x3c] bl sub_0807CCC8 bl sub_0805E780 _0805D2A6: movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xe] cmp r0, #0 bne _0805D2B4 movs r0, #0x1e strb r0, [r4, #0xe] _0805D2B4: adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 pop {r4, pc} .align 2, 0 thumb_func_start sub_0805D2C0 sub_0805D2C0: @ 0x0805D2C0 push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _0805D2EE ldr r0, _0805D2F0 @ =gUnk_03003DC0 ldrh r0, [r0, #8] cmp r0, #1 bhi _0805D2EE movs r0, #2 strb r0, [r4, #0xc] ldrb r0, [r4, #0xe] cmp r0, #1 bne _0805D2E6 adds r0, r4, #0 bl sub_0805D2F4 _0805D2E6: ldrb r1, [r4, #0xe] adds r0, r4, #0 bl sub_0805E4E0 _0805D2EE: pop {r4, pc} .align 2, 0 _0805D2F0: .4byte gUnk_03003DC0 thumb_func_start sub_0805D2F4 sub_0805D2F4: @ 0x0805D2F4 push {r4, lr} adds r4, r0, #0 ldr r0, _0805D310 @ =gUnk_03003DC0 ldrh r0, [r0, #8] cmp r0, #0 bne _0805D328 movs r1, #0x38 ldrsh r0, [r4, r1] cmp r0, #0 beq _0805D314 bl sub_080A3268 b _0805D31A .align 2, 0 _0805D310: .4byte gUnk_03003DC0 _0805D314: movs r0, #0x72 bl sub_080A3268 _0805D31A: ldrh r0, [r4, #0x3c] cmp r0, #0 beq _0805D324 bl sub_0807CCC8 _0805D324: bl sub_0805E780 _0805D328: pop {r4, pc} .align 2, 0 thumb_func_start sub_0805D32C sub_0805D32C: @ 0x0805D32C push {lr} ldr r2, _0805D340 @ =gUnk_08108D50 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805D340: .4byte gUnk_08108D50 thumb_func_start sub_0805D344 sub_0805D344: @ 0x0805D344 push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #0x3e] bl sub_0807CBE4 movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xe] cmp r0, #0 bne _0805D35C movs r0, #0x1e strb r0, [r4, #0xe] _0805D35C: ldrb r0, [r4, #0xe] strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 pop {r4, pc} .align 2, 0 thumb_func_start sub_0805D36C sub_0805D36C: @ 0x0805D36C push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _0805D382 movs r0, #2 strb r0, [r4, #0xc] ldrb r0, [r4, #0xf] strb r0, [r4, #0xe] _0805D382: pop {r4, pc} thumb_func_start sub_0805D384 sub_0805D384: @ 0x0805D384 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _0805D3B2 subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0805D3C6 movs r1, #0x38 ldrsh r0, [r4, r1] movs r1, #0x72 cmp r0, #0 beq _0805D3A4 adds r1, r0, #0 _0805D3A4: adds r0, r1, #0 bl sub_080A3268 ldrh r0, [r4, #0x3c] bl sub_0807CCC8 b _0805D3C6 _0805D3B2: ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 bne _0805D3C6 movs r0, #1 strb r0, [r4, #0xc] ldrh r0, [r4, #0x3c] bl sub_0807CD48 _0805D3C6: pop {r4, pc} thumb_func_start sub_0805D3C8 sub_0805D3C8: @ 0x0805D3C8 push {r4, lr} adds r4, r0, #0 cmp r4, #0 bne _0805D3F4 ldr r0, _0805D3E8 @ =gUnk_02033A90 ldr r1, _0805D3EC @ =0x0000088C adds r0, r0, r1 ldr r0, [r0] ldr r1, _0805D3F0 @ =sub_0805D470 cmp r0, r1 beq _0805D45E movs r0, #0 bl _call_via_r1 b _0805D45E .align 2, 0 _0805D3E8: .4byte gUnk_02033A90 _0805D3EC: .4byte 0x0000088C _0805D3F0: .4byte sub_0805D470 _0805D3F4: ldrb r0, [r4, #0xc] cmp r0, #0 bne _0805D43A movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x20 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 ldr r0, _0805D428 @ =gUnk_02033A90 ldr r2, _0805D42C @ =0x0000088C adds r0, r0, r2 ldr r0, [r0] cmp r0, #0 bne _0805D434 ldr r1, _0805D430 @ =sub_0805D470 adds r0, r4, #0 movs r2, #0 bl sub_08052D74 b _0805D45E .align 2, 0 _0805D428: .4byte gUnk_02033A90 _0805D42C: .4byte 0x0000088C _0805D430: .4byte sub_0805D470 _0805D434: bl sub_0805E780 b _0805D45E _0805D43A: ldr r1, _0805D460 @ =gUnk_03000BF0 ldr r0, [r1, #0x28] ldr r3, _0805D464 @ =0xFFFFC000 adds r0, r0, r3 str r0, [r1, #0x28] ldr r0, [r1, #0x2c] ldr r2, _0805D468 @ =0xFFFFE000 adds r0, r0, r2 str r0, [r1, #0x2c] ldr r2, _0805D46C @ =gUnk_03000F50 ldrh r0, [r1, #0x2a] ldrh r3, [r1, #0xa] adds r0, r0, r3 strh r0, [r2, #0x2e] ldrh r0, [r1, #0x2e] ldrh r1, [r1, #0xc] adds r0, r0, r1 strh r0, [r2, #0x30] _0805D45E: pop {r4, pc} .align 2, 0 _0805D460: .4byte gUnk_03000BF0 _0805D464: .4byte 0xFFFFC000 _0805D468: .4byte 0xFFFFE000 _0805D46C: .4byte gUnk_03000F50 thumb_func_start sub_0805D470 sub_0805D470: @ 0x0805D470 push {lr} movs r0, #0x4c bl sub_0801D7EC ldr r2, _0805D4A0 @ =gUnk_03000F50 ldr r0, _0805D4A4 @ =0x00001E07 strh r0, [r2, #0x2c] ldrh r1, [r2] movs r3, #0x80 lsls r3, r3, #4 adds r0, r3, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0805D4A8 @ =gUnk_03000BF0 ldrh r0, [r1, #0x2a] ldrh r3, [r1, #0xa] adds r0, r0, r3 strh r0, [r2, #0x2e] ldrh r0, [r1, #0x2e] ldrh r1, [r1, #0xc] adds r0, r0, r1 strh r0, [r2, #0x30] pop {pc} .align 2, 0 _0805D4A0: .4byte gUnk_03000F50 _0805D4A4: .4byte 0x00001E07 _0805D4A8: .4byte gUnk_03000BF0 thumb_func_start sub_0805D4AC sub_0805D4AC: @ 0x0805D4AC push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r6, r0, #0 ldrb r0, [r6, #0xc] cmp r0, #1 beq _0805D520 cmp r0, #1 bgt _0805D4C6 cmp r0, #0 beq _0805D4D2 b _0805D628 _0805D4C6: cmp r0, #2 beq _0805D5A4 cmp r0, #3 bne _0805D4D0 b _0805D604 _0805D4D0: b _0805D628 _0805D4D2: movs r0, #1 strb r0, [r6, #0xc] ldrb r0, [r6, #0xe] strb r0, [r6, #0xf] ldrh r1, [r6, #0x38] lsls r1, r1, #0x10 asrs r1, r1, #0x14 movs r3, #0x3f ands r1, r3 ldrh r0, [r6, #0x3a] lsls r0, r0, #0x10 asrs r0, r0, #0x14 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 strh r1, [r6, #0x28] ldr r4, _0805D518 @ =gUnk_03001160 movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _0805D51C @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 strh r1, [r6, #0x2e] strh r1, [r6, #0x2c] b _0805D628 .align 2, 0 _0805D518: .4byte gUnk_03001160 _0805D51C: .4byte gUnk_03000BF0 _0805D520: ldr r4, _0805D568 @ =gUnk_03001160 movs r1, #0x2e ldrsh r0, [r4, r1] ldr r3, _0805D56C @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r0, r0, r1 asrs r5, r0, #4 movs r2, #0x3f ands r5, r2 movs r1, #0x32 ldrsh r0, [r4, r1] ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r5, r0 strh r5, [r6, #0x2e] ldrh r2, [r6, #0x2c] cmp r5, r2 beq _0805D5A4 strh r5, [r6, #0x2c] ldrh r0, [r6, #0x2e] ldrb r1, [r6, #0xb] bl sub_080002B0 adds r1, r0, #0 ldr r3, _0805D570 @ =0x00000317 cmp r1, r3 beq _0805D574 movs r0, #0xc6 lsls r0, r0, #2 cmp r1, r0 beq _0805D580 b _0805D5A4 .align 2, 0 _0805D568: .4byte gUnk_03001160 _0805D56C: .4byte gUnk_03000BF0 _0805D570: .4byte 0x00000317 _0805D574: movs r0, #2 strb r0, [r6, #0xc] movs r0, #0x6d bl sub_080A3268 b _0805D5A4 _0805D580: ldrh r1, [r6, #0x2e] ldrb r2, [r6, #0xb] adds r0, r3, #0 bl sub_0807B7D8 movs r0, #0x6b bl sub_080A3268 ldrb r0, [r6, #0xe] subs r0, #1 strb r0, [r6, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0805D5A4 movs r0, #3 strb r0, [r6, #0xc] movs r0, #0x40 strb r0, [r6, #0xe] _0805D5A4: ldrh r0, [r6, #0x3e] cmp r0, #0 beq _0805D628 bl sub_0807CBE4 cmp r0, #0 beq _0805D628 ldrh r0, [r6, #0x3e] bl sub_0807CD48 movs r0, #1 strb r0, [r6, #0xc] ldrb r0, [r6, #0xf] strb r0, [r6, #0xe] movs r1, #0 adds r0, r6, #0 adds r0, #0x37 mov sb, r0 ldrb r5, [r0] cmp r1, r5 bhs _0805D628 movs r0, #0x36 adds r0, r0, r6 mov r8, r0 _0805D5D4: lsls r0, r1, #6 ldrh r2, [r6, #0x28] adds r5, r0, r2 movs r4, #0 adds r7, r1, #1 mov r0, r8 ldrb r0, [r0] cmp r4, r0 bhs _0805D5F8 _0805D5E6: adds r0, r5, r4 ldrb r1, [r6, #0xb] bl sub_0807BA8C adds r4, #1 mov r1, r8 ldrb r1, [r1] cmp r4, r1 blo _0805D5E6 _0805D5F8: adds r1, r7, #0 mov r2, sb ldrb r2, [r2] cmp r1, r2 blo _0805D5D4 b _0805D628 _0805D604: ldrb r0, [r6, #0xe] cmp r0, #0 beq _0805D628 subs r0, #1 strb r0, [r6, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 beq _0805D622 cmp r0, #0x20 bne _0805D628 ldrh r0, [r6, #0x3c] bl sub_0807CCC8 b _0805D628 _0805D622: movs r0, #0x72 bl sub_080A3268 _0805D628: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0805D630 sub_0805D630: @ 0x0805D630 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r6, r0, #0 ldrb r0, [r6, #0xc] cmp r0, #0 beq _0805D642 b _0805D768 _0805D642: adds r0, #1 strb r0, [r6, #0xc] movs r0, #0x42 bl sub_0807CC30 cmp r0, #0 beq _0805D6E4 movs r0, #0x43 bl sub_0807CC30 cmp r0, #0 beq _0805D6E4 movs r0, #0x44 bl sub_0807CC30 cmp r0, #0 beq _0805D6E4 movs r0, #0x3e bl sub_0807CC30 cmp r0, #0 bne _0805D680 movs r0, #2 bl sub_0807CC30 cmp r0, #0 beq _0805D6E4 movs r0, #0x3e bl sub_0807CD04 b _0805D6D2 _0805D680: movs r0, #0x3f bl sub_0807CC30 cmp r0, #0 bne _0805D69C movs r0, #3 bl sub_0807CC30 cmp r0, #0 beq _0805D6E4 movs r0, #0x3f bl sub_0807CD04 b _0805D6D2 _0805D69C: movs r0, #0x40 bl sub_0807CC30 cmp r0, #0 bne _0805D6B8 movs r0, #4 bl sub_0807CC30 cmp r0, #0 beq _0805D6E4 movs r0, #0x40 bl sub_0807CD04 b _0805D6D2 _0805D6B8: movs r0, #0x41 bl sub_0807CC30 cmp r0, #0 bne _0805D6E4 movs r0, #5 bl sub_0807CC30 cmp r0, #0 beq _0805D6E4 movs r0, #0x41 bl sub_0807CD04 _0805D6D2: movs r0, #0x42 bl sub_0807CD80 movs r0, #0x43 bl sub_0807CD80 movs r0, #0x44 bl sub_0807CD80 _0805D6E4: adds r1, r6, #0 adds r1, #0x22 movs r0, #0 strb r0, [r1] subs r1, #1 strb r0, [r1] subs r1, #1 strb r0, [r1] ldr r4, _0805D79C @ =gUnk_08108D5C movs r5, #0 mov sb, r1 movs r7, #1 ldr r0, _0805D7A0 @ =gUnk_03000BF0 mov r8, r0 _0805D700: adds r0, r5, #0 adds r0, #0x42 bl sub_0807CC30 cmp r0, #0 bne _0805D760 bl sub_08000E50 ldrh r1, [r4, #2] bl __modsi3 adds r2, r0, #0 ldrh r0, [r4] adds r2, r2, r0 movs r0, #2 movs r1, #0x5c bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _0805D760 strb r7, [r2, #0xe] strb r5, [r2, #0xf] mov r1, r8 ldrh r0, [r1, #6] ldrh r1, [r4, #4] adds r0, r0, r1 strh r0, [r2, #0x2e] mov r1, r8 ldrh r0, [r1, #8] ldrh r1, [r4, #6] adds r0, r0, r1 strh r0, [r2, #0x32] ldrh r1, [r4, #4] adds r0, r2, #0 adds r0, #0x80 strh r1, [r0] ldrh r0, [r4, #6] adds r1, r2, #0 adds r1, #0x82 strh r0, [r1] adds r0, r2, #0 adds r0, #0x38 strb r7, [r0] str r6, [r2, #0x50] mov r1, sb adds r0, r1, r5 strb r7, [r0] _0805D760: adds r5, #1 adds r4, #8 cmp r5, #2 ble _0805D700 _0805D768: movs r5, #0 _0805D76A: adds r4, r5, #0 adds r4, #0x42 adds r0, r4, #0 bl sub_0807CC30 cmp r0, #0 bne _0805D78E adds r0, r6, #0 adds r0, #0x20 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bge _0805D78E adds r0, r4, #0 bl sub_0807CD04 _0805D78E: adds r5, #1 cmp r5, #2 ble _0805D76A pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _0805D79C: .4byte gUnk_08108D5C _0805D7A0: .4byte gUnk_03000BF0 thumb_func_start sub_0805D7A4 sub_0805D7A4: @ 0x0805D7A4 push {r4, lr} adds r4, r0, #0 ldr r1, _0805D7D4 @ =gUnk_08108D7C ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldr r0, _0805D7D8 @ =gUnk_030010A0 ldr r0, [r0] lsls r0, r0, #4 str r0, [r4, #0x24] adds r0, r4, #0 bl sub_0805D9D8 ldr r0, [r4, #0x20] ldr r1, [r4, #0x28] ldr r2, [r4, #0x24] bl sub_0805DA08 pop {r4, pc} .align 2, 0 _0805D7D4: .4byte gUnk_08108D7C _0805D7D8: .4byte gUnk_030010A0 thumb_func_start sub_0805D7DC sub_0805D7DC: @ 0x0805D7DC push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xa] movs r2, #2 cmp r0, #0 bne _0805D7EA movs r2, #1 _0805D7EA: movs r0, #0 strb r2, [r1, #0xc] str r0, [r1, #0x20] str r0, [r1, #0x24] ldr r0, _0805D80C @ =gUnk_03000BF0 ldrb r0, [r0, #4] cmp r0, #0x78 beq _0805D83C cmp r0, #0x78 bgt _0805D816 cmp r0, #7 beq _0805D828 cmp r0, #7 bgt _0805D810 cmp r0, #3 beq _0805D82C b _0805D828 .align 2, 0 _0805D80C: .4byte gUnk_03000BF0 _0805D810: cmp r0, #0x38 beq _0805D840 b _0805D828 _0805D816: cmp r0, #0x81 beq _0805D830 cmp r0, #0x81 bgt _0805D824 cmp r0, #0x80 beq _0805D834 b _0805D828 _0805D824: cmp r0, #0x88 beq _0805D838 _0805D828: movs r1, #0 b _0805D842 _0805D82C: movs r1, #1 b _0805D842 _0805D830: movs r1, #2 b _0805D842 _0805D834: movs r1, #3 b _0805D842 _0805D838: movs r1, #4 b _0805D842 _0805D83C: movs r1, #5 b _0805D842 _0805D840: movs r1, #6 _0805D842: ldr r0, _0805D854 @ =gUnk_08108D74 adds r0, r1, r0 ldrb r0, [r0] bl sub_0801D7EC ldr r1, _0805D858 @ =gUnk_03000F50 ldr r0, _0805D85C @ =0x00001E04 strh r0, [r1, #0x2c] pop {pc} .align 2, 0 _0805D854: .4byte gUnk_08108D74 _0805D858: .4byte gUnk_03000F50 _0805D85C: .4byte 0x00001E04 thumb_func_start sub_0805D860 sub_0805D860: @ 0x0805D860 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xd] cmp r0, #1 beq _0805D89C cmp r0, #1 bgt _0805D874 cmp r0, #0 beq _0805D87E b _0805D8D6 _0805D874: cmp r0, #2 beq _0805D8B0 cmp r0, #3 beq _0805D8C2 b _0805D8D6 _0805D87E: movs r0, #1 strb r0, [r1, #0xd] movs r0, #0x80 str r0, [r1, #0x20] ldr r2, _0805D898 @ =gUnk_03000F50 ldrh r1, [r2] movs r3, #0x80 lsls r3, r3, #4 adds r0, r3, #0 orrs r0, r1 strh r0, [r2] b _0805D8F4 .align 2, 0 _0805D898: .4byte gUnk_03000F50 _0805D89C: ldr r0, [r1, #0x20] subs r0, #1 str r0, [r1, #0x20] cmp r0, #0x10 bne _0805D8F4 movs r0, #2 strb r0, [r1, #0xd] movs r0, #0x2d strb r0, [r1, #0xe] b _0805D8F4 _0805D8B0: ldrb r0, [r1, #0xe] subs r0, #1 strb r0, [r1, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0805D8F4 movs r0, #3 strb r0, [r1, #0xd] b _0805D8F4 _0805D8C2: ldr r0, [r1, #0x20] subs r0, #1 str r0, [r1, #0x20] cmp r0, #0 bne _0805D8F4 movs r0, #4 strb r0, [r1, #0xd] movs r0, #0x3c strb r0, [r1, #0xe] b _0805D8F4 _0805D8D6: ldrb r0, [r1, #0xe] subs r0, #1 strb r0, [r1, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0805D8F4 bl sub_0801E104 ldr r2, _0805D8F8 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0805D8FC @ =0x0000F7FF ands r0, r1 strh r0, [r2] bl sub_0805E780 _0805D8F4: pop {pc} .align 2, 0 _0805D8F8: .4byte gUnk_03000F50 _0805D8FC: .4byte 0x0000F7FF thumb_func_start sub_0805D900 sub_0805D900: @ 0x0805D900 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xd] cmp r0, #1 beq _0805D938 cmp r0, #1 bgt _0805D914 cmp r0, #0 beq _0805D91A b _0805D966 _0805D914: cmp r0, #2 beq _0805D94E b _0805D966 _0805D91A: movs r1, #1 strb r1, [r2, #0xd] movs r0, #0x2d strb r0, [r2, #0xe] str r1, [r2, #0x20] ldr r2, _0805D934 @ =gUnk_03000F50 ldrh r1, [r2] movs r3, #0x80 lsls r3, r3, #4 adds r0, r3, #0 orrs r0, r1 strh r0, [r2] b _0805D982 .align 2, 0 _0805D934: .4byte gUnk_03000F50 _0805D938: ldrb r0, [r2, #0xe] subs r0, #1 strb r0, [r2, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0805D982 movs r0, #2 strb r0, [r2, #0xd] movs r0, #0x14 strb r0, [r2, #0xe] b _0805D982 _0805D94E: ldr r0, [r2, #0x20] adds r0, #1 str r0, [r2, #0x20] ldrb r0, [r2, #0xe] subs r0, #1 strb r0, [r2, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0805D982 movs r0, #3 strb r0, [r2, #0xd] b _0805D982 _0805D966: ldr r0, [r2, #0x20] adds r0, #4 str r0, [r2, #0x20] cmp r0, #0x80 bls _0805D982 bl sub_0801E104 ldr r2, _0805D984 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0805D988 @ =0x0000F7FF ands r0, r1 strh r0, [r2] bl sub_0805E780 _0805D982: pop {pc} .align 2, 0 _0805D984: .4byte gUnk_03000F50 _0805D988: .4byte 0x0000F7FF thumb_func_start sub_0805D98C sub_0805D98C: @ 0x0805D98C push {lr} adds r2, r0, #0 ldr r3, _0805D9D4 @ =gUnk_03000FF0 ldrh r1, [r3] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _0805D9A2 ldr r0, [r2, #0x20] subs r0, #1 str r0, [r2, #0x20] _0805D9A2: ldrh r1, [r3] movs r0, #0x80 ands r0, r1 adds r3, r1, #0 cmp r0, #0 beq _0805D9B4 ldr r0, [r2, #0x20] adds r0, #1 str r0, [r2, #0x20] _0805D9B4: movs r0, #0x20 ands r0, r3 cmp r0, #0 beq _0805D9C2 ldr r0, [r2, #0x28] subs r0, #1 str r0, [r2, #0x28] _0805D9C2: movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0805D9D0 ldr r0, [r2, #0x28] adds r0, #1 str r0, [r2, #0x28] _0805D9D0: pop {pc} .align 2, 0 _0805D9D4: .4byte gUnk_03000FF0 thumb_func_start sub_0805D9D8 sub_0805D9D8: @ 0x0805D9D8 push {r4, lr} ldr r4, [r0, #0x14] cmp r4, #0 beq _0805D9FC ldr r3, _0805DA00 @ =gUnk_03000F50 ldr r2, _0805DA04 @ =gUnk_03000BF0 ldrh r1, [r4, #0x2e] ldrh r0, [r2, #0xa] subs r1, r1, r0 movs r0, #0x80 subs r0, r0, r1 strh r0, [r3, #0x2e] ldrh r1, [r4, #0x32] ldrh r0, [r2, #0xc] subs r1, r1, r0 movs r0, #0x8c subs r0, r0, r1 strh r0, [r3, #0x30] _0805D9FC: pop {r4, pc} .align 2, 0 _0805DA00: .4byte gUnk_03000F50 _0805DA04: .4byte gUnk_03000BF0 thumb_func_start sub_0805DA08 sub_0805DA08: @ 0x0805DA08 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} mov sl, r0 adds r5, r1, #0 adds r6, r2, #0 ldr r2, _0805DA78 @ =gUnk_03003DE4 ldrb r1, [r2] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 ldr r1, _0805DA7C @ =gUnk_02017AA0 adds r4, r0, r1 movs r3, #0 mov r8, r2 mov sb, r1 ldr r0, _0805DA80 @ =gUnk_080C9160 mov ip, r0 movs r2, #0xff ldr r1, _0805DA84 @ =gUnk_03000F50 _0805DA34: adds r0, r6, r3 adds r0, r0, r5 ands r0, r2 lsls r0, r0, #1 add r0, ip movs r7, #0 ldrsh r0, [r0, r7] mov r7, sl muls r7, r0, r7 adds r0, r7, #0 lsrs r0, r0, #8 ldrh r7, [r1, #0x2e] adds r0, r0, r7 strh r0, [r4] adds r4, #2 adds r3, #1 adds r5, #0x17 cmp r3, #0x9f bls _0805DA34 mov r0, r8 ldrb r1, [r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 add r0, sb ldr r1, _0805DA88 @ =0x0400001C ldr r2, _0805DA8C @ =0xA2600001 bl sub_0805622C pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _0805DA78: .4byte gUnk_03003DE4 _0805DA7C: .4byte gUnk_02017AA0 _0805DA80: .4byte gUnk_080C9160 _0805DA84: .4byte gUnk_03000F50 _0805DA88: .4byte 0x0400001C _0805DA8C: .4byte 0xA2600001 thumb_func_start sub_0805DA90 sub_0805DA90: @ 0x0805DA90 push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 bl sub_0805E8D4 adds r1, r0, #0 cmp r1, #0 beq _0805DAB4 movs r0, #9 strb r0, [r1, #8] movs r0, #0x32 strb r0, [r1, #9] strb r4, [r1, #0xa] str r5, [r1, #0x14] adds r0, r1, #0 movs r1, #8 bl sub_0805EA2C _0805DAB4: ldr r0, _0805DAD8 @ =gUnk_02033A90 ldr r1, _0805DADC @ =0x0000088C adds r4, r0, r1 ldr r0, [r4] cmp r0, #0 beq _0805DAD4 ldr r2, _0805DAE0 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0805DAE4 @ =0x0000F7FF ands r0, r1 strh r0, [r2] bl sub_080528F0 ldr r0, [r4] bl sub_0805E900 _0805DAD4: pop {r4, r5, pc} .align 2, 0 _0805DAD8: .4byte gUnk_02033A90 _0805DADC: .4byte 0x0000088C _0805DAE0: .4byte gUnk_03000F50 _0805DAE4: .4byte 0x0000F7FF thumb_func_start sub_0805DAE8 sub_0805DAE8: @ 0x0805DAE8 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r2, r0, #0 ldr r5, _0805DB4C @ =gUnk_03000BF0 ldrh r0, [r5, #6] movs r1, #0xfc lsls r1, r1, #1 mov r8, r1 add r0, r8 ldr r3, _0805DB50 @ =gUnk_03001160 movs r4, #0x2e ldrsh r1, [r3, r4] subs r0, r0, r1 adds r4, r0, #0 adds r4, #0x10 ldrh r0, [r5, #8] movs r7, #0xa0 lsls r7, r7, #1 adds r0, r0, r7 movs r6, #0x32 ldrsh r1, [r3, r6] subs r0, r0, r1 adds r0, #0x10 ldrb r6, [r2, #0xc] cmp r6, #0 bne _0805DB58 cmp r4, #0x1f bhi _0805DB88 cmp r0, #0x1f bhi _0805DB88 movs r0, #0x36 ldrsh r1, [r3, r0] movs r0, #0x18 rsbs r0, r0, #0 cmp r1, r0 bge _0805DB88 ldr r0, _0805DB54 @ =gUnk_03003F80 adds r0, #0xa8 ldrb r0, [r0] cmp r0, #0x14 bne _0805DB88 adds r0, r6, #1 strb r0, [r2, #0xc] movs r0, #0x5a strb r0, [r2, #0xe] adds r0, #0xb0 bl sub_080A3268 b _0805DB88 .align 2, 0 _0805DB4C: .4byte gUnk_03000BF0 _0805DB50: .4byte gUnk_03001160 _0805DB54: .4byte gUnk_03003F80 _0805DB58: ldrb r0, [r2, #0xe] subs r0, #1 strb r0, [r2, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0805DB88 movs r0, #0x96 movs r1, #1 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _0805DB84 ldrh r0, [r5, #6] add r0, r8 strh r0, [r1, #0x2e] ldrh r0, [r5, #8] adds r0, r0, r7 strh r0, [r1, #0x32] ldr r0, _0805DB90 @ =0x0000FFE8 strh r0, [r1, #0x36] _0805DB84: bl sub_0805E780 _0805DB88: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0805DB90: .4byte 0x0000FFE8 thumb_func_start sub_0805DB94 sub_0805DB94: @ 0x0805DB94 push {r4, lr} adds r4, r0, #0 ldr r1, _0805DBB0 @ =gUnk_08108D8C ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0805DBF0 pop {r4, pc} .align 2, 0 _0805DBB0: .4byte gUnk_08108D8C thumb_func_start sub_0805DBB4 sub_0805DBB4: @ 0x0805DBB4 movs r1, #1 strb r1, [r0, #0xc] ldr r1, _0805DBC8 @ =gUnk_030010A0 adds r1, #0x3d ldrb r2, [r1] lsls r1, r2, #4 subs r1, r1, r2 lsls r1, r1, #2 strh r1, [r0, #0x20] bx lr .align 2, 0 _0805DBC8: .4byte gUnk_030010A0 thumb_func_start sub_0805DBCC sub_0805DBCC: @ 0x0805DBCC push {lr} adds r1, r0, #0 ldr r0, [r1, #0x14] ldr r0, [r0, #4] cmp r0, #0 bne _0805DBE6 movs r0, #2 strb r0, [r1, #0xc] ldrh r0, [r1, #0x20] ldr r2, _0805DBE8 @ =0x0000012D cmp r0, r2 bls _0805DBE6 strh r2, [r1, #0x20] _0805DBE6: pop {pc} .align 2, 0 _0805DBE8: .4byte 0x0000012D thumb_func_start nullsub_498 nullsub_498: @ 0x0805DBEC bx lr .align 2, 0 thumb_func_start sub_0805DBF0 sub_0805DBF0: @ 0x0805DBF0 push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #0x20] subs r1, r0, #1 strh r1, [r4, #0x20] lsls r0, r1, #0x10 cmp r0, #0 bne _0805DC06 bl sub_0805DC70 b _0805DC6C _0805DC06: lsls r0, r1, #0x10 lsrs r1, r0, #0x10 cmp r1, #0x78 bne _0805DC18 movs r0, #0x78 movs r1, #2 bl sub_08080964 b _0805DC36 _0805DC18: cmp r1, #0xd2 bne _0805DC26 movs r0, #0x5a movs r1, #1 bl sub_08080964 b _0805DC36 _0805DC26: movs r0, #0x96 lsls r0, r0, #1 cmp r1, r0 bne _0805DC36 movs r0, #0x5a movs r1, #0 bl sub_08080964 _0805DC36: ldrh r1, [r4, #0x20] adds r0, r1, #0 cmp r0, #0x77 bhi _0805DC42 movs r0, #0xf b _0805DC48 _0805DC42: cmp r0, #0xd1 bhi _0805DC58 movs r0, #0x1f _0805DC48: ands r0, r1 cmp r0, #0 bne _0805DC6C movs r0, #0x93 lsls r0, r0, #1 bl sub_080A3268 b _0805DC6C _0805DC58: cmp r0, #0xc7 bhi _0805DC6C movs r0, #0x3f ands r0, r1 cmp r0, #0 bne _0805DC6C movs r0, #0x93 lsls r0, r0, #1 bl sub_080A3268 _0805DC6C: pop {r4, pc} .align 2, 0 thumb_func_start sub_0805DC70 sub_0805DC70: @ 0x0805DC70 push {lr} bl sub_0805E5A8 ldr r0, _0805DC80 @ =gUnk_0813AC48 bl sub_08080840 pop {pc} .align 2, 0 _0805DC80: .4byte gUnk_0813AC48 thumb_func_start sub_0805DC84 sub_0805DC84: @ 0x0805DC84 push {lr} ldr r2, _0805DC98 @ =gUnk_08108D98 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805DC98: .4byte gUnk_08108D98 thumb_func_start sub_0805DC9C sub_0805DC9C: @ 0x0805DC9C push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #0x3c] bl sub_0807CBE4 cmp r0, #0 beq _0805DCAE bl sub_0805E780 _0805DCAE: ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _0805DCC2 ldrh r0, [r4, #0x3c] bl sub_0807CCC8 bl sub_0805E780 _0805DCC2: movs r0, #1 strb r0, [r4, #0xc] pop {r4, pc} thumb_func_start sub_0805DCC8 sub_0805DCC8: @ 0x0805DCC8 push {r4, r5, lr} adds r4, r0, #0 ldrh r0, [r4, #0x3e] bl sub_0807CBE4 cmp r0, #0 beq _0805DD1E movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x35 ldrb r0, [r0] strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0805DCEC movs r0, #0x1e strb r0, [r4, #0xe] _0805DCEC: ldr r5, _0805DD20 @ =gUnk_03000BF0 ldr r0, [r5, #0x30] str r0, [r4, #0x14] movs r0, #0x69 movs r1, #0 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _0805DD1E ldrh r0, [r5, #6] ldrh r2, [r4, #0x38] adds r0, r0, r2 strh r0, [r1, #0x2e] ldrh r0, [r5, #8] ldrh r2, [r4, #0x3a] adds r0, r0, r2 strh r0, [r1, #0x32] str r1, [r4, #0x18] str r1, [r5, #0x30] adds r0, r1, #0 movs r1, #0x1e bl sub_0805E4E0 _0805DD1E: pop {r4, r5, pc} .align 2, 0 _0805DD20: .4byte gUnk_03000BF0 thumb_func_start sub_0805DD24 sub_0805DD24: @ 0x0805DD24 push {r4, lr} adds r4, r0, #0 movs r0, #0 movs r1, #8 bl sub_0805E4E0 ldr r0, _0805DD64 @ =gUnk_03000BF0 ldrb r1, [r0, #0xf] movs r0, #4 ands r0, r1 cmp r0, #0 bne _0805DD60 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0805DD60 movs r0, #3 strb r0, [r4, #0xc] ldrh r0, [r4, #0x3c] bl sub_0807CCC8 adds r1, r4, #0 adds r1, #0x36 ldrb r0, [r1] cmp r0, #0 bne _0805DD60 movs r0, #1 strb r0, [r1] _0805DD60: pop {r4, pc} .align 2, 0 _0805DD64: .4byte gUnk_03000BF0 thumb_func_start sub_0805DD68 sub_0805DD68: @ 0x0805DD68 push {r4, lr} adds r4, r0, #0 movs r0, #0 movs r1, #8 bl sub_0805E4E0 adds r1, r4, #0 adds r1, #0x36 ldrb r0, [r1] cmp r0, #0 beq _0805DD94 subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 bne _0805DDAE ldr r1, _0805DD90 @ =gUnk_03000BF0 ldr r0, [r4, #0x14] str r0, [r1, #0x30] b _0805DDAE .align 2, 0 _0805DD90: .4byte gUnk_03000BF0 _0805DD94: ldr r0, _0805DDB0 @ =gUnk_03000BF0 ldrb r1, [r0, #0xf] movs r0, #4 ands r0, r1 cmp r0, #0 bne _0805DDAE ldr r0, [r4, #0x18] cmp r0, #0 beq _0805DDAA bl sub_0805E7BC _0805DDAA: bl sub_0805E780 _0805DDAE: pop {r4, pc} .align 2, 0 _0805DDB0: .4byte gUnk_03000BF0 thumb_func_start sub_0805DDB4 sub_0805DDB4: @ 0x0805DDB4 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xa] lsls r0, r0, #2 ldr r1, _0805DDE0 @ =gUnk_08108DA8 adds r3, r0, r1 ldrb r0, [r2, #0xc] adds r1, r0, #0 cmp r1, #0 bne _0805DDCE adds r0, #1 strb r0, [r2, #0xc] strb r1, [r2, #0xe] _0805DDCE: ldrb r0, [r2, #0xe] cmp r0, #0 bne _0805DDE4 ldrh r0, [r3] strb r0, [r2, #0xe] ldrh r0, [r3, #2] bl sub_080A3268 b _0805DDE8 .align 2, 0 _0805DDE0: .4byte gUnk_08108DA8 _0805DDE4: subs r0, #1 strb r0, [r2, #0xe] _0805DDE8: pop {pc} .align 2, 0 thumb_func_start sub_0805DDEC sub_0805DDEC: @ 0x0805DDEC push {r4, r5, lr} adds r5, r1, #0 bl sub_0805E8D4 adds r4, r0, #0 cmp r4, #0 beq _0805DE16 movs r0, #9 strb r0, [r4, #8] movs r0, #0x36 strb r0, [r4, #9] ldr r0, [r5, #4] strb r0, [r4, #0xa] adds r0, r4, #0 movs r1, #6 bl sub_0805EA2C adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 _0805DE16: pop {r4, r5, pc} thumb_func_start sub_0805DE18 sub_0805DE18: @ 0x0805DE18 push {lr} sub sp, #4 ldr r3, [r1, #4] movs r0, #0 str r0, [sp] movs r0, #9 movs r1, #0x36 movs r2, #6 bl sub_0805EB2C cmp r0, #0 beq _0805DE34 bl sub_0805E79C _0805DE34: add sp, #4 pop {pc} thumb_func_start sub_0805DE38 sub_0805DE38: @ 0x0805DE38 push {lr} ldr r2, _0805DE4C @ =gUnk_08108DBC ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805DE4C: .4byte gUnk_08108DBC thumb_func_start sub_0805DE50 sub_0805DE50: @ 0x0805DE50 push {lr} ldr r2, _0805DE64 @ =gUnk_08108DC4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805DE64: .4byte gUnk_08108DC4 thumb_func_start sub_0805DE68 sub_0805DE68: @ 0x0805DE68 push {r4, lr} adds r4, r0, #0 movs r0, #0x7b bl sub_0807CBD0 cmp r0, #0 bne _0805DE7A bl sub_0805E780 _0805DE7A: movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] ldr r2, _0805DEAC @ =gUnk_030010A0 adds r0, r2, #0 adds r0, #0x38 strb r1, [r0] adds r1, r2, #0 adds r1, #0x39 movs r0, #0xf strb r0, [r1] adds r0, r2, #0 adds r0, #0x3a movs r1, #0x20 strb r1, [r0] adds r0, #1 strb r1, [r0] ldr r0, _0805DEB0 @ =gUnk_02002A40 movs r1, #0x93 lsls r1, r1, #3 adds r0, r0, r1 ldr r1, _0805DEB4 @ =0x00001194 str r1, [r0] pop {r4, pc} .align 2, 0 _0805DEAC: .4byte gUnk_030010A0 _0805DEB0: .4byte gUnk_02002A40 _0805DEB4: .4byte 0x00001194 thumb_func_start sub_0805DEB8 sub_0805DEB8: @ 0x0805DEB8 push {r4, r5, lr} adds r3, r0, #0 ldr r5, _0805DF44 @ =gUnk_03001160 movs r0, #0x2e ldrsh r2, [r5, r0] subs r2, #0x88 ldr r4, _0805DF48 @ =gUnk_03000BF0 ldrh r0, [r4, #6] subs r2, r2, r0 movs r1, #0x32 ldrsh r0, [r5, r1] subs r0, #0x40 ldrh r1, [r4, #8] subs r0, r0, r1 adds r1, r2, #0 muls r1, r2, r1 adds r2, r0, #0 muls r2, r0, r2 adds r0, r2, #0 adds r1, r1, r0 movs r0, #0x90 lsls r0, r0, #4 cmp r1, r0 bgt _0805DF42 movs r0, #0 movs r1, #2 strb r1, [r3, #0xc] strb r0, [r3, #0xd] movs r0, #0x78 strb r0, [r3, #0xe] movs r0, #2 bl sub_08078A90 bl sub_08078B48 movs r0, #0x64 movs r1, #0 movs r2, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _0805DF1A ldrh r0, [r4, #6] adds r0, #0x88 strh r0, [r2, #0x2e] ldrh r0, [r4, #8] adds r0, #0x48 strh r0, [r2, #0x32] _0805DF1A: movs r2, #0x10 rsbs r2, r2, #0 adds r0, r5, #0 movs r1, #8 bl sub_080A2CFC adds r2, r0, #0 cmp r2, #0 beq _0805DF3C 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] _0805DF3C: movs r0, #0x32 bl sub_080A3268 _0805DF42: pop {r4, r5, pc} .align 2, 0 _0805DF44: .4byte gUnk_03001160 _0805DF48: .4byte gUnk_03000BF0 thumb_func_start sub_0805DF4C sub_0805DF4C: @ 0x0805DF4C push {lr} adds r1, r0, #0 ldr r2, _0805DF70 @ =gUnk_03001160 movs r0, #0 strb r0, [r2, #0x14] movs r3, #0x36 ldrsh r0, [r2, r3] cmp r0, #0 beq _0805DF78 movs r1, #0x32 ldrsh r0, [r2, r1] ldr r1, _0805DF74 @ =gUnk_03000BF0 ldrh r1, [r1, #8] adds r1, #0x48 cmp r0, r1 bge _0805DF92 strh r1, [r2, #0x32] b _0805DF92 .align 2, 0 _0805DF70: .4byte gUnk_03001160 _0805DF74: .4byte gUnk_03000BF0 _0805DF78: ldrb r0, [r1, #0xe] subs r0, #1 strb r0, [r1, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0805DF92 movs r0, #3 strb r0, [r1, #0xc] movs r0, #0x1e strb r0, [r1, #0xe] ldr r0, _0805DF94 @ =0x0000164F bl sub_08056378 _0805DF92: pop {pc} .align 2, 0 _0805DF94: .4byte 0x0000164F thumb_func_start sub_0805DF98 sub_0805DF98: @ 0x0805DF98 push {lr} adds r2, r0, #0 ldr r0, _0805DFB4 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _0805DFCA ldrb r0, [r2, #0xe] cmp r0, #0 beq _0805DFB8 subs r0, #1 strb r0, [r2, #0xe] b _0805DFCA .align 2, 0 _0805DFB4: .4byte gUnk_02000050 _0805DFB8: movs r0, #4 strb r0, [r2, #0xc] movs r0, #7 movs r1, #4 bl sub_08050054 movs r0, #0xf6 bl sub_080A3268 _0805DFCA: pop {pc} thumb_func_start sub_0805DFCC sub_0805DFCC: @ 0x0805DFCC push {lr} ldr r0, _0805DFE4 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _0805DFE0 movs r0, #0x1c bl sub_0807CD80 bl sub_0805E094 _0805DFE0: pop {pc} .align 2, 0 _0805DFE4: .4byte gUnk_03000FD0 thumb_func_start sub_0805DFE8 sub_0805DFE8: @ 0x0805DFE8 push {lr} ldr r2, _0805DFFC @ =gUnk_08108DD8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805DFFC: .4byte gUnk_08108DD8 thumb_func_start sub_0805E000 sub_0805E000: @ 0x0805E000 push {r4, r5, r6, lr} adds r6, r0, #0 movs r0, #0x51 movs r1, #0 bl sub_0804AA60 adds r4, r0, #0 cmp r4, #0 beq _0805E062 ldr r1, _0805E064 @ =gUnk_03000BF0 ldrh r0, [r1, #6] adds r0, #0xb0 strh r0, [r4, #0x2e] ldrh r0, [r1, #8] adds r0, #0x48 strh r0, [r4, #0x32] adds r0, r4, #0 adds r0, #0x38 movs r5, #1 strb r5, [r0] adds r0, r4, #0 bl sub_08016A04 ldr r0, _0805E068 @ =gUnk_030010A0 adds r0, #0x38 ldrb r1, [r0] adds r0, r5, #0 ands r0, r1 cmp r0, #0 beq _0805E040 bl sub_0805E780 _0805E040: str r4, [r6, #0x18] strb r5, [r6, #0xc] movs r0, #3 bl sub_08078A90 ldr r0, _0805E06C @ =gUnk_02033A90 ldr r1, _0805E070 @ =0x00000864 adds r0, r0, r1 ldr r1, _0805E074 @ =0x80010000 str r1, [r0] movs r0, #6 movs r1, #4 bl sub_08050054 movs r0, #0xf7 bl sub_080A3268 _0805E062: pop {r4, r5, r6, pc} .align 2, 0 _0805E064: .4byte gUnk_03000BF0 _0805E068: .4byte gUnk_030010A0 _0805E06C: .4byte gUnk_02033A90 _0805E070: .4byte 0x00000864 _0805E074: .4byte 0x80010000 thumb_func_start sub_0805E078 sub_0805E078: @ 0x0805E078 push {lr} adds r1, r0, #0 ldr r0, _0805E090 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _0805E08E ldr r1, [r1, #0x18] movs r0, #1 strb r0, [r1, #0xd] bl sub_0805E780 _0805E08E: pop {pc} .align 2, 0 _0805E090: .4byte gUnk_03000FD0 thumb_func_start sub_0805E094 sub_0805E094: @ 0x0805E094 push {lr} bl sub_0805E5A8 ldr r0, _0805E0A4 @ =gUnk_0813AC34 movs r1, #7 bl sub_0808091C pop {pc} .align 2, 0 _0805E0A4: .4byte gUnk_0813AC34 thumb_func_start sub_0805E0A8 sub_0805E0A8: @ 0x0805E0A8 push {lr} ldr r2, _0805E0BC @ =gUnk_08108DE0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805E0BC: .4byte gUnk_08108DE0 thumb_func_start sub_0805E0C0 sub_0805E0C0: @ 0x0805E0C0 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0 movs r1, #1 strb r1, [r5, #0xc] strb r0, [r5, #0xe] ldrb r0, [r5, #0xa] bl sub_0804B128 adds r4, r0, #0 cmp r4, #0 bne _0805E0EC bl sub_0805E780 b _0805E0EC _0805E0DE: adds r0, r4, #0 adds r4, #0x10 bl sub_0804ADF8 str r5, [r0, #0x50] movs r1, #0xff strb r1, [r0, #0xe] _0805E0EC: ldrb r0, [r4] cmp r0, #0xff bne _0805E0DE pop {r4, r5, pc} thumb_func_start sub_0805E0F4 sub_0805E0F4: @ 0x0805E0F4 movs r1, #0 strb r1, [r0, #0xe] bx lr .align 2, 0 thumb_func_start sub_0805E0FC sub_0805E0FC: @ 0x0805E0FC push {r4, lr} adds r4, r0, #0 ldr r1, _0805E134 @ =gUnk_08108E28 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldr r0, _0805E138 @ =gUnk_03000BF0 adds r1, r4, #0 adds r1, #0x20 ldrb r0, [r0, #5] ldrb r1, [r1] cmp r0, r1 bne _0805E12A ldr r0, _0805E13C @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 beq _0805E130 _0805E12A: adds r0, r4, #0 bl sub_0805E1D8 _0805E130: pop {r4, pc} .align 2, 0 _0805E134: .4byte gUnk_08108E28 _0805E138: .4byte gUnk_03000BF0 _0805E13C: .4byte gUnk_02000050 thumb_func_start sub_0805E140 sub_0805E140: @ 0x0805E140 push {r4, lr} ldrb r2, [r0, #0x10] movs r1, #0x20 orrs r1, r2 strb r1, [r0, #0x10] movs r1, #1 strb r1, [r0, #0xc] ldr r1, _0805E180 @ =gUnk_03000BF0 ldrb r2, [r1, #5] adds r1, r0, #0 adds r1, #0x20 strb r2, [r1] movs r1, #0x78 strb r1, [r0, #0xe] movs r1, #0x3c strb r1, [r0, #0xf] movs r1, #7 bl sub_0805E3A0 ldr r1, _0805E184 @ =gUnk_08108DE8 ldr r0, _0805E188 @ =gUnk_02033A90 ldrb r0, [r0, #1] lsls r0, r0, #1 adds r0, r0, r1 ldrh r4, [r0] bl sub_08052660 adds r1, r0, #0 adds r0, r4, #0 bl sub_0805E1F8 pop {r4, pc} .align 2, 0 _0805E180: .4byte gUnk_03000BF0 _0805E184: .4byte gUnk_08108DE8 _0805E188: .4byte gUnk_02033A90 thumb_func_start sub_0805E18C sub_0805E18C: @ 0x0805E18C push {r4, lr} adds r4, r0, #0 ldr r0, _0805E1D0 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _0805E1CC ldrb r0, [r4, #0xb] cmp r0, #0 beq _0805E1BA ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 bne _0805E1BA strb r0, [r4, #0xb] ldr r0, _0805E1D4 @ =gUnk_03003F80 adds r0, #0x8b movs r1, #1 strb r1, [r0] bl sub_0805E5B4 _0805E1BA: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0805E1CC adds r0, r4, #0 bl sub_0805E1D8 _0805E1CC: pop {r4, pc} .align 2, 0 _0805E1D0: .4byte gUnk_03000FD0 _0805E1D4: .4byte gUnk_03003F80 thumb_func_start sub_0805E1D8 sub_0805E1D8: @ 0x0805E1D8 push {lr} ldr r0, _0805E1F0 @ =gUnk_02034DF0 movs r1, #0x80 bl sub_0801D630 ldr r1, _0805E1F4 @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0xe] bl sub_0805E780 pop {pc} .align 2, 0 _0805E1F0: .4byte gUnk_02034DF0 _0805E1F4: .4byte gUnk_03000F50 thumb_func_start sub_0805E1F8 sub_0805E1F8: @ 0x0805E1F8 push {r4, r5, lr} sub sp, #0xc adds r4, r0, #0 adds r5, r1, #0 ldr r0, _0805E234 @ =gUnk_02034DF0 movs r1, #0x80 bl sub_0801D630 ldr r0, _0805E238 @ =gUnk_08108E60 mov r1, sp movs r2, #9 bl sub_0801D66C mov r1, sp lsrs r0, r4, #8 strb r0, [r1, #4] mov r0, sp strb r4, [r0, #5] ldr r1, _0805E23C @ =gUnk_08108E48 cmp r5, #0 bne _0805E224 ldr r1, _0805E240 @ =gUnk_08108E30 _0805E224: mov r0, sp bl sub_0805F46C ldr r1, _0805E244 @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0xe] add sp, #0xc pop {r4, r5, pc} .align 2, 0 _0805E234: .4byte gUnk_02034DF0 _0805E238: .4byte gUnk_08108E60 _0805E23C: .4byte gUnk_08108E48 _0805E240: .4byte gUnk_08108E30 _0805E244: .4byte gUnk_03000F50 thumb_func_start sub_0805E248 sub_0805E248: @ 0x0805E248 push {r4, r5, lr} ldr r0, _0805E2C8 @ =gUnk_03004030 ldr r0, [r0] ldrh r5, [r0, #6] ldr r0, _0805E2CC @ =gUnk_03000BF0 ldrb r0, [r0, #4] cmp r0, #0xa beq _0805E25C cmp r0, #0x16 bne _0805E2E8 _0805E25C: movs r0, #0x9f lsls r0, r0, #2 adds r4, r5, #0 subs r4, #0x41 adds r1, r4, #0 movs r2, #1 bl sub_0807B314 ldr r0, _0805E2D0 @ =0x00000283 adds r1, r4, #0 movs r2, #2 bl sub_0807B314 ldr r0, _0805E2D4 @ =0x0000027D adds r4, #1 adds r1, r4, #0 movs r2, #1 bl sub_0807B314 movs r0, #0xa1 lsls r0, r0, #2 adds r1, r4, #0 movs r2, #2 bl sub_0807B314 ldr r0, _0805E2D8 @ =0x0000027E adds r4, #1 adds r1, r4, #0 movs r2, #1 bl sub_0807B314 ldr r0, _0805E2DC @ =0x00000285 adds r1, r4, #0 movs r2, #2 bl sub_0807B314 ldr r0, _0805E2E0 @ =0x0000027F subs r1, r5, #1 movs r2, #1 bl sub_0807B314 movs r0, #0xa0 lsls r0, r0, #2 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 ldr r0, _0805E2E4 @ =0x00000282 adds r1, r5, #1 movs r2, #1 bl sub_0807B314 b _0805E350 .align 2, 0 _0805E2C8: .4byte gUnk_03004030 _0805E2CC: .4byte gUnk_03000BF0 _0805E2D0: .4byte 0x00000283 _0805E2D4: .4byte 0x0000027D _0805E2D8: .4byte 0x0000027E _0805E2DC: .4byte 0x00000285 _0805E2E0: .4byte 0x0000027F _0805E2E4: .4byte 0x00000282 _0805E2E8: movs r0, #0x9b lsls r0, r0, #2 adds r4, r5, #0 subs r4, #0x41 adds r1, r4, #0 movs r2, #1 bl sub_0807B314 ldr r0, _0805E358 @ =0x00000273 adds r1, r4, #0 movs r2, #2 bl sub_0807B314 ldr r0, _0805E35C @ =0x0000026D adds r4, #1 adds r1, r4, #0 movs r2, #1 bl sub_0807B314 movs r0, #0x9d lsls r0, r0, #2 adds r1, r4, #0 movs r2, #2 bl sub_0807B314 ldr r0, _0805E360 @ =0x0000026E adds r4, #1 adds r1, r4, #0 movs r2, #1 bl sub_0807B314 ldr r0, _0805E364 @ =0x00000275 adds r1, r4, #0 movs r2, #2 bl sub_0807B314 ldr r0, _0805E368 @ =0x0000026F subs r1, r5, #1 movs r2, #1 bl sub_0807B314 movs r0, #0x9c lsls r0, r0, #2 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 ldr r0, _0805E36C @ =0x00000272 adds r1, r5, #1 movs r2, #1 bl sub_0807B314 _0805E350: ldr r1, _0805E370 @ =gUnk_02000070 movs r0, #0 strb r0, [r1] pop {r4, r5, pc} .align 2, 0 _0805E358: .4byte 0x00000273 _0805E35C: .4byte 0x0000026D _0805E360: .4byte 0x0000026E _0805E364: .4byte 0x00000275 _0805E368: .4byte 0x0000026F _0805E36C: .4byte 0x00000272 _0805E370: .4byte gUnk_02000070 thumb_func_start sub_0805E374 sub_0805E374: @ 0x0805E374 push {lr} adds r2, r0, #0 ldr r0, _0805E394 @ =gUnk_030010A0 adds r0, #0x2c ldrb r0, [r0] ldr r1, _0805E398 @ =gUnk_081091F8 cmp r0, #2 beq _0805E386 ldr r1, _0805E39C @ =gUnk_081091EE _0805E386: ldrb r0, [r2, #8] adds r0, r1, r0 ldrb r1, [r0] adds r0, r2, #0 bl sub_0805E3A0 pop {pc} .align 2, 0 _0805E394: .4byte gUnk_030010A0 _0805E398: .4byte gUnk_081091F8 _0805E39C: .4byte gUnk_081091EE thumb_func_start sub_0805E3A0 sub_0805E3A0: @ 0x0805E3A0 movs r3, #0xf adds r2, r1, #0 ands r2, r3 lsls r1, r1, #4 orrs r1, r2 strb r1, [r0, #0x11] bx lr .align 2, 0 thumb_func_start sub_0805E3B0 sub_0805E3B0: @ 0x0805E3B0 push {lr} adds r3, r0, #0 ldrb r1, [r3, #0x10] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0805E3C2 movs r0, #1 b _0805E404 _0805E3C2: ldrb r0, [r3, #0xc] cmp r0, #0 bne _0805E3CC movs r0, #0 b _0805E404 _0805E3CC: ldr r1, _0805E3DC @ =gUnk_03003DC0 ldrb r0, [r1] ldrb r2, [r1, #1] cmp r0, r2 bls _0805E3E0 adds r2, r0, #0 b _0805E3E2 .align 2, 0 _0805E3DC: .4byte gUnk_03003DC0 _0805E3E0: ldrb r2, [r1, #1] _0805E3E2: ldr r0, _0805E408 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 beq _0805E3F4 cmp r2, #2 bhs _0805E3F4 movs r2, #2 _0805E3F4: movs r1, #0 ldrb r0, [r3, #0x11] lsls r0, r0, #0x1c lsrs r0, r0, #0x1c cmp r2, r0 bls _0805E402 movs r1, #1 _0805E402: adds r0, r1, #0 _0805E404: pop {pc} .align 2, 0 _0805E408: .4byte gUnk_02000050 thumb_func_start sub_0805E40C sub_0805E40C: @ 0x0805E40C push {lr} ldr r1, _0805E424 @ =gUnk_03003DC0 ldrb r0, [r1] ldrb r2, [r1, #1] cmp r0, r2 bhi _0805E41A ldrb r0, [r1, #1] _0805E41A: cmp r0, #0 beq _0805E420 movs r0, #1 _0805E420: pop {pc} .align 2, 0 _0805E424: .4byte gUnk_03003DC0 thumb_func_start sub_0805E428 sub_0805E428: @ 0x0805E428 push {lr} bl sub_0805E524 ldr r2, _0805E440 @ =gUnk_03003DC0 ldrb r3, [r2, #2] adds r1, r3, #0 cmp r1, #0 beq _0805E444 movs r0, #0 strb r3, [r2, #1] strb r0, [r2, #2] b _0805E44E .align 2, 0 _0805E440: .4byte gUnk_03003DC0 _0805E444: ldrb r0, [r2, #3] cmp r0, #0 beq _0805E44E strb r1, [r2, #3] strb r1, [r2, #1] _0805E44E: pop {pc} thumb_func_start sub_0805E450 sub_0805E450: @ 0x0805E450 push {lr} ldr r1, _0805E464 @ =gUnk_03003DC0 ldrb r2, [r1, #2] cmp r0, r2 blo _0805E460 ldrb r2, [r1, #1] cmp r0, r2 bhs _0805E468 _0805E460: movs r0, #0 b _0805E46C .align 2, 0 _0805E464: .4byte gUnk_03003DC0 _0805E468: strb r0, [r1, #2] movs r0, #1 _0805E46C: pop {pc} .align 2, 0 thumb_func_start sub_0805E470 sub_0805E470: @ 0x0805E470 ldr r1, _0805E478 @ =gUnk_03003DC0 movs r0, #1 strb r0, [r1, #3] bx lr .align 2, 0 _0805E478: .4byte gUnk_03003DC0 thumb_func_start sub_0805E47C sub_0805E47C: @ 0x0805E47C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0x11] lsls r0, r0, #0x1c lsrs r0, r0, #0x18 movs r1, #2 orrs r0, r1 strb r0, [r4, #0x11] movs r0, #2 bl sub_0805E450 cmp r0, #0 beq _0805E49A ldr r0, _0805E49C @ =gUnk_03003DC0 str r4, [r0, #4] _0805E49A: pop {r4, pc} .align 2, 0 _0805E49C: .4byte gUnk_03003DC0 thumb_func_start sub_0805E4A0 sub_0805E4A0: @ 0x0805E4A0 push {r4, lr} adds r4, r0, #0 movs r0, #1 bl sub_08078A90 ldrb r0, [r4, #0x11] lsls r0, r0, #0x1c lsrs r0, r0, #0x18 movs r1, #3 orrs r0, r1 strb r0, [r4, #0x11] movs r0, #1 bl sub_0805E450 cmp r0, #0 beq _0805E4C4 ldr r0, _0805E4C8 @ =gUnk_03003DC0 str r4, [r0, #4] _0805E4C4: pop {r4, pc} .align 2, 0 _0805E4C8: .4byte gUnk_03003DC0 thumb_func_start sub_0805E4CC sub_0805E4CC: @ 0x0805E4CC push {r4, lr} adds r4, r0, #0 movs r0, #0 bl sub_08078A90 adds r0, r4, #0 bl sub_0805E584 pop {r4, pc} .align 2, 0 thumb_func_start sub_0805E4E0 sub_0805E4E0: @ 0x0805E4E0 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 cmp r4, #0 beq _0805E4F6 ldrb r0, [r4, #0x11] lsls r0, r0, #0x1c lsrs r0, r0, #0x18 movs r1, #3 orrs r0, r1 strb r0, [r4, #0x11] _0805E4F6: movs r0, #1 bl sub_0805E450 cmp r0, #0 beq _0805E504 ldr r0, _0805E50C @ =gUnk_03003DC0 str r4, [r0, #4] _0805E504: adds r0, r5, #0 bl sub_0805E510 pop {r4, r5, pc} .align 2, 0 _0805E50C: .4byte gUnk_03003DC0 thumb_func_start sub_0805E510 sub_0805E510: @ 0x0805E510 push {lr} adds r1, r0, #0 ldr r2, _0805E520 @ =gUnk_03003DC0 ldrh r0, [r2, #8] cmp r0, r1 bhs _0805E51E strh r1, [r2, #8] _0805E51E: pop {pc} .align 2, 0 _0805E520: .4byte gUnk_03003DC0 thumb_func_start sub_0805E524 sub_0805E524: @ 0x0805E524 push {lr} ldr r1, _0805E540 @ =gUnk_03003DC0 ldrh r0, [r1, #8] cmp r0, #0 beq _0805E53C subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _0805E53C bl sub_0805E470 _0805E53C: pop {pc} .align 2, 0 _0805E540: .4byte gUnk_03003DC0 thumb_func_start sub_0805E544 sub_0805E544: @ 0x0805E544 ldr r1, _0805E55C @ =gUnk_03003DC0 movs r3, #6 movs r0, #6 strb r0, [r1] ldr r2, _0805E560 @ =gUnk_03001160 ldrb r1, [r2, #0x11] subs r0, #0x16 ands r0, r1 orrs r0, r3 strb r0, [r2, #0x11] bx lr .align 2, 0 _0805E55C: .4byte gUnk_03003DC0 _0805E560: .4byte gUnk_03001160 thumb_func_start sub_0805E564 sub_0805E564: @ 0x0805E564 ldr r1, _0805E57C @ =gUnk_03003DC0 movs r0, #0 strb r0, [r1] ldr r2, _0805E580 @ =gUnk_03001160 ldrb r1, [r2, #0x11] subs r0, #0x10 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x11] bx lr .align 2, 0 _0805E57C: .4byte gUnk_03003DC0 _0805E580: .4byte gUnk_03001160 thumb_func_start sub_0805E584 sub_0805E584: @ 0x0805E584 push {lr} ldrb r2, [r0, #0x11] lsrs r3, r2, #4 movs r1, #0x10 rsbs r1, r1, #0 ands r1, r2 orrs r1, r3 strb r1, [r0, #0x11] bl sub_0805E470 pop {pc} .align 2, 0 thumb_func_start sub_0805E59C sub_0805E59C: @ 0x0805E59C ldr r1, _0805E5A4 @ =gUnk_03003DC0 movs r0, #6 strb r0, [r1] bx lr .align 2, 0 _0805E5A4: .4byte gUnk_03003DC0 thumb_func_start sub_0805E5A8 sub_0805E5A8: @ 0x0805E5A8 ldr r1, _0805E5B0 @ =gUnk_03003DC0 movs r0, #7 strb r0, [r1] bx lr .align 2, 0 _0805E5B0: .4byte gUnk_03003DC0 thumb_func_start sub_0805E5B4 sub_0805E5B4: @ 0x0805E5B4 ldr r1, _0805E5BC @ =gUnk_03003DC0 movs r0, #0 strb r0, [r1] bx lr .align 2, 0 _0805E5BC: .4byte gUnk_03003DC0 thumb_func_start sub_0805E5C0 sub_0805E5C0: @ 0x0805E5C0 push {lr} ldr r0, _0805E5F0 @ =gUnk_02034350 ldrb r1, [r0, #4] movs r2, #0 strb r1, [r0, #5] strb r2, [r0, #4] bl sub_0805ED30 bl sub_0805E428 bl sub_080175E8 bl sub_0806F0A4 ldr r1, _0805E5F4 @ =gUnk_03005F40 movs r0, #0 bl _call_via_r1 bl sub_0805E84C bl sub_0805EE88 pop {pc} .align 2, 0 _0805E5F0: .4byte gUnk_02034350 _0805E5F4: .4byte gUnk_03005F40 thumb_func_start sub_0805E5F8 sub_0805E5F8: @ 0x0805E5F8 push {lr} ldr r1, _0805E608 @ =gUnk_03005F40 movs r0, #1 bl _call_via_r1 bl sub_0805E84C pop {pc} .align 2, 0 _0805E608: .4byte gUnk_03005F40 thumb_func_start sub_0805E60C sub_0805E60C: @ 0x0805E60C push {lr} bl sub_0805E89C ldr r0, _0805E654 @ =gUnk_03003DC0 movs r1, #0xc bl sub_0801D630 ldr r0, _0805E658 @ =gUnk_03001160 movs r1, #0xaa lsls r1, r1, #6 bl sub_0801D630 ldr r0, _0805E65C @ =gUnk_02033290 movs r1, #0x80 lsls r1, r1, #4 bl sub_0801D630 bl sub_0805E98C ldr r0, _0805E660 @ =gUnk_03003DBC movs r1, #0 strb r1, [r0] ldr r0, _0805E664 @ =gUnk_020354B4 strb r1, [r0] ldr r1, _0805E668 @ =gUnk_03000000 ldr r2, _0805E66C @ =0x00000427 adds r0, r1, r2 movs r2, #1 strb r2, [r0] ldr r3, _0805E670 @ =0x00000426 adds r0, r1, r3 strb r2, [r0] ldr r0, _0805E674 @ =0x0000042E adds r1, r1, r0 strb r2, [r1] pop {pc} .align 2, 0 _0805E654: .4byte gUnk_03003DC0 _0805E658: .4byte gUnk_03001160 _0805E65C: .4byte gUnk_02033290 _0805E660: .4byte gUnk_03003DBC _0805E664: .4byte gUnk_020354B4 _0805E668: .4byte gUnk_03000000 _0805E66C: .4byte 0x00000427 _0805E670: .4byte 0x00000426 _0805E674: .4byte 0x0000042E thumb_func_start sub_0805E678 sub_0805E678: @ 0x0805E678 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r0, _0805E698 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x46 bhi _0805E6A6 ldr r4, _0805E69C @ =gUnk_030015A0 movs r0, #0x99 lsls r0, r0, #6 adds r1, r4, r0 _0805E68E: ldr r0, [r4] cmp r0, #0 bne _0805E6A0 adds r0, r4, #0 b _0805E730 .align 2, 0 _0805E698: .4byte gUnk_03003DBC _0805E69C: .4byte gUnk_030015A0 _0805E6A0: adds r4, #0x88 cmp r4, r1 blo _0805E68E _0805E6A6: ldr r4, _0805E6CC @ =gUnk_03001160 _0805E6A8: ldr r0, [r4] cmp r0, #0 bge _0805E6D4 ldrb r1, [r4, #0x10] movs r0, #0xc ands r0, r1 cmp r0, #0 beq _0805E6D4 ldr r0, _0805E6D0 @ =gUnk_03003DD0 ldr r0, [r0, #8] cmp r4, r0 beq _0805E6D4 adds r0, r4, #0 bl sub_0805E870 adds r0, r4, #0 b _0805E730 .align 2, 0 _0805E6CC: .4byte gUnk_03001160 _0805E6D0: .4byte gUnk_03003DD0 _0805E6D4: adds r4, #0x88 ldr r0, _0805E738 @ =gUnk_03003BE0 cmp r4, r0 blo _0805E6A8 movs r0, #0 mov ip, r0 movs r5, #0 ldr r2, _0805E73C @ =gUnk_03003D70 movs r0, #0x48 adds r0, r0, r2 mov r8, r0 _0805E6EA: ldr r4, [r2, #4] adds r3, r2, #0 adds r3, #8 cmp r4, r2 beq _0805E718 movs r7, #0x1c ldr r6, _0805E740 @ =gUnk_03003DD0 _0805E6F8: ldrb r0, [r4, #8] cmp r0, #9 beq _0805E712 ldrb r0, [r4, #0x10] adds r1, r7, #0 ands r1, r0 cmp ip, r1 bhs _0805E712 ldr r0, [r6, #8] cmp r0, r4 beq _0805E712 mov ip, r1 adds r5, r4, #0 _0805E712: ldr r4, [r4, #4] cmp r4, r2 bne _0805E6F8 _0805E718: adds r2, r3, #0 cmp r2, r8 blo _0805E6EA cmp r5, #0 beq _0805E72E adds r0, r5, #0 bl sub_0805E7BC adds r0, r5, #0 bl sub_0805E870 _0805E72E: adds r0, r5, #0 _0805E730: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0805E738: .4byte gUnk_03003BE0 _0805E73C: .4byte gUnk_03003D70 _0805E740: .4byte gUnk_03003DD0 thumb_func_start sub_0805E744 sub_0805E744: @ 0x0805E744 push {lr} ldr r1, _0805E760 @ =gUnk_030011E8 movs r0, #0xee lsls r0, r0, #2 adds r2, r1, r0 _0805E74E: ldr r0, [r1] cmp r0, #0 beq _0805E764 adds r1, #0x88 cmp r1, r2 blo _0805E74E movs r0, #0 b _0805E766 .align 2, 0 _0805E760: .4byte gUnk_030011E8 _0805E764: adds r0, r1, #0 _0805E766: pop {pc} thumb_func_start sub_0805E768 sub_0805E768: @ 0x0805E768 push {lr} ldr r1, _0805E778 @ =sub_0805E678 cmp r0, #9 bne _0805E772 ldr r1, _0805E77C @ =sub_0805E8D4 _0805E772: bl _call_via_r1 pop {pc} .align 2, 0 _0805E778: .4byte sub_0805E678 _0805E77C: .4byte sub_0805E8D4 thumb_func_start sub_0805E780 sub_0805E780: @ 0x0805E780 push {lr} ldr r0, _0805E794 @ =gUnk_03003DD0 ldr r0, [r0, #8] bl sub_0805E79C ldr r0, _0805E798 @ =gUnk_03005F24 bl _call_via_r0 pop {pc} .align 2, 0 _0805E794: .4byte gUnk_03003DD0 _0805E798: .4byte gUnk_03005F24 thumb_func_start sub_0805E79C sub_0805E79C: @ 0x0805E79C push {lr} adds r1, r0, #0 ldrb r0, [r1, #8] ldr r2, _0805E7B4 @ =sub_0805E7BC cmp r0, #9 bne _0805E7AA ldr r2, _0805E7B8 @ =sub_0805E900 _0805E7AA: adds r0, r1, #0 bl _call_via_r2 pop {pc} .align 2, 0 _0805E7B4: .4byte sub_0805E7BC _0805E7B8: .4byte sub_0805E900 thumb_func_start sub_0805E7BC sub_0805E7BC: @ 0x0805E7BC push {r4, r5, lr} adds r4, r0, #0 ldr r0, [r4, #4] cmp r0, #0 beq _0805E84A adds r0, r4, #0 bl sub_080AE068 adds r0, r4, #0 bl sub_0801D230 adds r0, r4, #0 bl sub_0806FE84 adds r0, r4, #0 bl sub_080788E0 adds r0, r4, #0 bl sub_08078954 adds r0, r4, #0 bl sub_0805EC60 adds r0, r4, #0 bl sub_08017744 adds r0, r4, #0 bl sub_0805E92C adds r0, r4, #0 bl sub_0807DB08 adds r0, r4, #0 bl sub_0806FBEC ldr r0, [r4, #0x64] bl sub_0801DA0C movs r5, #0 str r5, [r4, #0x64] ldrb r0, [r4, #8] cmp r0, #3 bne _0805E818 adds r0, r4, #0 bl sub_0804AA1C _0805E818: ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 adds r0, #0x3c strb r5, [r0] adds r0, #5 strb r5, [r0] adds r0, #1 strb r5, [r0] adds r0, #3 strb r5, [r0] adds r0, r4, #0 bl sub_0805EA98 str r5, [r4, #4] movs r0, #1 rsbs r0, r0, #0 str r0, [r4] _0805E84A: pop {r4, r5, pc} thumb_func_start sub_0805E84C sub_0805E84C: @ 0x0805E84C push {r4, r5, lr} ldr r4, _0805E86C @ =gUnk_03001160 movs r0, #0xaa lsls r0, r0, #6 adds r5, r4, r0 _0805E856: ldr r0, [r4] cmp r0, #0 bge _0805E862 adds r0, r4, #0 bl sub_0805E870 _0805E862: adds r4, #0x88 cmp r4, r5 blo _0805E856 pop {r4, r5, pc} .align 2, 0 _0805E86C: .4byte gUnk_03001160 thumb_func_start sub_0805E870 sub_0805E870: @ 0x0805E870 sub sp, #4 movs r1, #0 str r1, [sp] ldr r1, _0805E890 @ =0x040000D4 mov r2, sp str r2, [r1] str r0, [r1, #4] ldr r0, _0805E894 @ =0x85000022 str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _0805E898 @ =gUnk_03003DBC ldrb r0, [r1] subs r0, #1 strb r0, [r1] add sp, #4 bx lr .align 2, 0 _0805E890: .4byte 0x040000D4 _0805E894: .4byte 0x85000022 _0805E898: .4byte gUnk_03003DBC thumb_func_start sub_0805E89C sub_0805E89C: @ 0x0805E89C push {r4, r5, r6, lr} ldr r5, _0805E8CC @ =gUnk_03003D70 ldr r0, [r5, #4] cmp r0, #0 beq _0805E8C8 _0805E8A6: ldr r0, [r5, #4] adds r6, r5, #0 adds r6, #8 cmp r0, r5 beq _0805E8BC _0805E8B0: ldr r4, [r0, #4] bl sub_0805E79C adds r0, r4, #0 cmp r0, r5 bne _0805E8B0 _0805E8BC: adds r5, r6, #0 ldr r0, _0805E8D0 @ =gUnk_03003DB8 cmp r5, r0 blo _0805E8A6 bl sub_0805E84C _0805E8C8: pop {r4, r5, r6, pc} .align 2, 0 _0805E8CC: .4byte gUnk_03003D70 _0805E8D0: .4byte gUnk_03003DB8 thumb_func_start sub_0805E8D4 sub_0805E8D4: @ 0x0805E8D4 push {lr} ldr r1, _0805E8F0 @ =gUnk_02033290 movs r2, #0x80 lsls r2, r2, #4 adds r0, r1, r2 cmp r1, r0 bhs _0805E8FA adds r2, r0, #0 _0805E8E4: ldr r0, [r1] cmp r0, #0 bne _0805E8F4 adds r0, r1, #0 b _0805E8FC .align 2, 0 _0805E8F0: .4byte gUnk_02033290 _0805E8F4: adds r1, #0x40 cmp r1, r2 blo _0805E8E4 _0805E8FA: movs r0, #0 _0805E8FC: pop {pc} .align 2, 0 thumb_func_start sub_0805E900 sub_0805E900: @ 0x0805E900 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #4] cmp r0, #0 beq _0805E926 adds r0, r4, #0 bl sub_0805E92C adds r0, r4, #0 bl sub_0805EA98 adds r0, r4, #0 movs r1, #0x40 bl sub_0801D630 ldr r1, _0805E928 @ =gUnk_020354B4 ldrb r0, [r1] subs r0, #1 strb r0, [r1] _0805E926: pop {r4, pc} .align 2, 0 _0805E928: .4byte gUnk_020354B4 thumb_func_start sub_0805E92C sub_0805E92C: @ 0x0805E92C push {lr} ldr r2, _0805E94C @ =gUnk_02033A90 ldr r1, _0805E950 @ =0x00000888 adds r3, r2, r1 ldr r1, [r3] cmp r0, r1 bne _0805E94A movs r0, #0 str r0, [r3] ldr r3, _0805E954 @ =0x0000088C adds r1, r2, r3 str r0, [r1] adds r3, #4 adds r1, r2, r3 str r0, [r1] _0805E94A: pop {pc} .align 2, 0 _0805E94C: .4byte gUnk_02033A90 _0805E950: .4byte 0x00000888 _0805E954: .4byte 0x0000088C thumb_func_start sub_0805E958 sub_0805E958: @ 0x0805E958 push {lr} ldr r0, _0805E96C @ =gUnk_03003D70 ldr r1, _0805E970 @ =gUnk_020369F0 movs r2, #0x48 bl sub_0801D66C bl sub_0805E98C pop {pc} .align 2, 0 _0805E96C: .4byte gUnk_03003D70 _0805E970: .4byte gUnk_020369F0 thumb_func_start sub_0805E974 sub_0805E974: @ 0x0805E974 push {lr} ldr r0, _0805E984 @ =gUnk_020369F0 ldr r1, _0805E988 @ =gUnk_03003D70 movs r2, #0x48 bl sub_0801D66C pop {pc} .align 2, 0 _0805E984: .4byte gUnk_020369F0 _0805E988: .4byte gUnk_03003D70 thumb_func_start sub_0805E98C sub_0805E98C: @ 0x0805E98C push {lr} ldr r0, _0805E9A4 @ =gUnk_03003D70 adds r1, r0, #0 adds r1, #0x48 cmp r0, r1 bhs _0805E9A2 _0805E998: str r0, [r0] str r0, [r0, #4] adds r0, #8 cmp r0, r1 blo _0805E998 _0805E9A2: pop {pc} .align 2, 0 _0805E9A4: .4byte gUnk_03003D70 thumb_func_start sub_0805E9A8 sub_0805E9A8: @ 0x0805E9A8 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r3, _0805E9F0 @ =gUnk_03003D70 movs r7, #0x10 movs r0, #0x48 adds r0, r0, r3 mov r8, r0 _0805E9B8: ldr r2, [r3, #4] adds r4, r3, #0 adds r4, #8 cmp r2, r3 beq _0805E9E2 movs r6, #0xfd movs r5, #0x20 _0805E9C6: ldrb r0, [r2, #0x10] adds r1, r6, #0 ands r1, r0 strb r1, [r2, #0x10] adds r0, r1, #0 ands r0, r5 cmp r0, #0 bne _0805E9DC adds r0, r1, #0 orrs r0, r7 strb r0, [r2, #0x10] _0805E9DC: ldr r2, [r2, #4] cmp r2, r3 bne _0805E9C6 _0805E9E2: adds r3, r4, #0 cmp r3, r8 blo _0805E9B8 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0805E9F0: .4byte gUnk_03003D70 thumb_func_start sub_0805E9F4 sub_0805E9F4: @ 0x0805E9F4 push {r4, r5, r6, lr} ldr r5, _0805EA24 @ =gUnk_03003D70 _0805E9F8: ldr r2, [r5, #4] adds r6, r5, #0 adds r6, #8 cmp r2, r5 beq _0805EA1A _0805EA02: ldr r4, [r2, #4] ldrb r1, [r2, #0x10] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0805EA14 adds r0, r2, #0 bl sub_0805E79C _0805EA14: adds r2, r4, #0 cmp r2, r5 bne _0805EA02 _0805EA1A: adds r5, r6, #0 ldr r0, _0805EA28 @ =gUnk_03003DB8 cmp r5, r0 blo _0805E9F8 pop {r4, r5, r6, pc} .align 2, 0 _0805EA24: .4byte gUnk_03003D70 _0805EA28: .4byte gUnk_03003DB8 thumb_func_start sub_0805EA2C sub_0805EA2C: @ 0x0805EA2C push {lr} adds r2, r0, #0 lsls r1, r1, #3 ldr r0, _0805EA5C @ =gUnk_03003D70 adds r1, r1, r0 str r1, [r2, #4] ldr r0, [r1] str r0, [r2] str r2, [r0, #4] str r2, [r1] ldrb r0, [r2, #8] cmp r0, #9 beq _0805EA64 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] ldr r1, _0805EA60 @ =gUnk_03003DBC b _0805EA66 .align 2, 0 _0805EA5C: .4byte gUnk_03003D70 _0805EA60: .4byte gUnk_03003DBC _0805EA64: ldr r1, _0805EA74 @ =gUnk_020354B4 _0805EA66: ldrb r0, [r1] adds r0, #1 strb r0, [r1] adds r0, r2, #0 bl sub_0805E374 pop {pc} .align 2, 0 _0805EA74: .4byte gUnk_020354B4 thumb_func_start sub_0805EA78 sub_0805EA78: @ 0x0805EA78 push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 bl sub_0805EA98 lsls r4, r4, #3 ldr r0, _0805EA94 @ =gUnk_03003D70 adds r4, r4, r0 str r4, [r5] ldr r0, [r4, #4] str r0, [r5, #4] str r5, [r0] str r5, [r4, #4] pop {r4, r5, pc} .align 2, 0 _0805EA94: .4byte gUnk_03003D70 thumb_func_start sub_0805EA98 sub_0805EA98: @ 0x0805EA98 push {lr} adds r2, r0, #0 ldr r1, _0805EAB8 @ =gUnk_03003DD0 ldr r0, [r1, #8] cmp r2, r0 bne _0805EAA8 ldr r0, [r2] str r0, [r1, #8] _0805EAA8: ldr r1, [r2] ldr r0, [r2, #4] str r0, [r1, #4] ldr r1, [r2, #4] ldr r0, [r2] str r0, [r1] pop {pc} .align 2, 0 _0805EAB8: .4byte gUnk_03003DD0 thumb_func_start sub_0805EABC sub_0805EABC: @ 0x0805EABC push {r4, r5, r6, r7, lr} adds r6, r0, #0 ldr r4, _0805EAE8 @ =gUnk_03003D70 adds r7, r4, #0 adds r7, #0x48 _0805EAC6: ldr r3, [r4, #4] cmp r3, r4 beq _0805EAF6 ldr r5, _0805EAEC @ =0x0000FFFF _0805EACE: cmp r3, r6 beq _0805EAF0 ldrh r0, [r3, #8] ldrh r2, [r6, #8] adds r1, r5, #0 ands r1, r0 adds r0, r5, #0 ands r0, r2 cmp r1, r0 bne _0805EAF0 movs r0, #1 b _0805EAFE .align 2, 0 _0805EAE8: .4byte gUnk_03003D70 _0805EAEC: .4byte 0x0000FFFF _0805EAF0: ldr r3, [r3, #4] cmp r3, r4 bne _0805EACE _0805EAF6: adds r4, #8 cmp r4, r7 blo _0805EAC6 movs r0, #0 _0805EAFE: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0805EB00 sub_0805EB00: @ 0x0805EB00 push {r4, lr} adds r3, r0, #0 lsls r2, r2, #3 ldr r0, _0805EB28 @ =gUnk_03003D70 adds r2, r2, r0 ldr r0, [r2, #4] cmp r0, r2 beq _0805EB22 _0805EB10: ldrb r4, [r0, #8] cmp r3, r4 bne _0805EB1C ldrb r4, [r0, #9] cmp r1, r4 beq _0805EB24 _0805EB1C: ldr r0, [r0, #4] cmp r0, r2 bne _0805EB10 _0805EB22: movs r0, #0 _0805EB24: pop {r4, pc} .align 2, 0 _0805EB28: .4byte gUnk_03003D70 thumb_func_start sub_0805EB2C sub_0805EB2C: @ 0x0805EB2C push {r4, r5, r6, lr} adds r4, r0, #0 ldr r5, [sp, #0x10] lsls r2, r2, #3 ldr r0, _0805EB60 @ =gUnk_03003D70 adds r2, r2, r0 ldr r0, [r2, #4] cmp r0, r2 beq _0805EB5C _0805EB3E: ldrb r6, [r0, #8] cmp r4, r6 bne _0805EB56 ldrb r6, [r0, #9] cmp r1, r6 bne _0805EB56 ldrb r6, [r0, #0xa] cmp r3, r6 bne _0805EB56 ldrb r6, [r0, #0xb] cmp r5, r6 beq _0805EB5E _0805EB56: ldr r0, [r0, #4] cmp r0, r2 bne _0805EB3E _0805EB5C: movs r0, #0 _0805EB5E: pop {r4, r5, r6, pc} .align 2, 0 _0805EB60: .4byte gUnk_03003D70 thumb_func_start sub_0805EB64 sub_0805EB64: @ 0x0805EB64 push {r4, r5, lr} adds r4, r0, #0 lsls r1, r1, #3 ldr r0, _0805EB88 @ =gUnk_03003D70 adds r3, r1, r0 ldr r2, [r4, #4] cmp r2, r3 beq _0805EB96 ldr r5, _0805EB8C @ =0x0000FFFF ldrh r4, [r4, #8] _0805EB78: ldrh r1, [r2, #8] adds r0, r5, #0 ands r0, r1 cmp r0, r4 bne _0805EB90 adds r0, r2, #0 b _0805EB98 .align 2, 0 _0805EB88: .4byte gUnk_03003D70 _0805EB8C: .4byte 0x0000FFFF _0805EB90: ldr r2, [r2, #4] cmp r2, r3 bne _0805EB78 _0805EB96: movs r0, #0 _0805EB98: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0805EB9C sub_0805EB9C: @ 0x0805EB9C push {r4, r5, lr} adds r3, r0, #0 ldr r2, _0805EBC8 @ =gUnk_03003D70 adds r4, r2, #0 adds r4, #0x48 _0805EBA6: ldr r0, [r2, #4] cmp r0, r2 beq _0805EBBE _0805EBAC: ldrb r5, [r0, #8] cmp r3, r5 bne _0805EBB8 ldrb r5, [r0, #9] cmp r1, r5 beq _0805EBC6 _0805EBB8: ldr r0, [r0, #4] cmp r0, r2 bne _0805EBAC _0805EBBE: adds r2, #8 cmp r2, r4 blo _0805EBA6 movs r0, #0 _0805EBC6: pop {r4, r5, pc} .align 2, 0 _0805EBC8: .4byte gUnk_03003D70 thumb_func_start sub_0805EBCC sub_0805EBCC: @ 0x0805EBCC push {r4, r5, r6, lr} ldr r5, _0805EBFC @ =gUnk_03003D70 _0805EBD0: ldr r1, [r5, #4] adds r6, r5, #0 adds r6, #8 cmp r1, r5 beq _0805EBEE _0805EBDA: ldr r4, [r1, #4] ldrb r0, [r1, #8] cmp r0, #3 bne _0805EBE8 adds r0, r1, #0 bl sub_0805E7BC _0805EBE8: adds r1, r4, #0 cmp r1, r5 bne _0805EBDA _0805EBEE: adds r5, r6, #0 ldr r0, _0805EC00 @ =gUnk_03003DB8 cmp r5, r0 blo _0805EBD0 bl sub_0805E84C pop {r4, r5, r6, pc} .align 2, 0 _0805EBFC: .4byte gUnk_03003D70 _0805EC00: .4byte gUnk_03003DB8 thumb_func_start sub_0805EC04 sub_0805EC04: @ 0x0805EC04 push {r4, r5, r6, r7, lr} adds r3, r0, #0 movs r2, #1 ldr r0, _0805EC4C @ =gUnk_03000000 movs r5, #1 movs r6, #0x3f rsbs r6, r6, #0 movs r7, #4 rsbs r7, r7, #0 adds r4, r0, #0 adds r4, #8 _0805EC1A: ldr r0, _0805EC50 @ =0x00000426 adds r1, r4, r0 ldrb r0, [r1] cmp r0, #0 bne _0805EC54 strb r5, [r1] movs r0, #0x1f ands r2, r0 lsls r2, r2, #1 ldrb r1, [r3, #0x1b] adds r0, r6, #0 ands r0, r1 orrs r0, r2 strb r0, [r3, #0x1b] ldrb r2, [r3, #0x19] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e orrs r1, r5 adds r0, r7, #0 ands r0, r2 orrs r0, r1 strb r0, [r3, #0x19] movs r0, #1 b _0805EC5E .align 2, 0 _0805EC4C: .4byte gUnk_03000000 _0805EC50: .4byte 0x00000426 _0805EC54: adds r4, #8 adds r2, #1 cmp r2, #0x1f bls _0805EC1A movs r0, #0 _0805EC5E: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0805EC60 sub_0805EC60: @ 0x0805EC60 push {lr} adds r3, r0, #0 ldrb r1, [r3, #0x19] lsls r0, r1, #0x1e cmp r0, #0 beq _0805EC90 movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r3, #0x19] ldrb r2, [r3, #0x1b] lsls r1, r2, #0x1a lsrs r1, r1, #0x1b movs r0, #0x3f rsbs r0, r0, #0 ands r0, r2 strb r0, [r3, #0x1b] ldr r0, _0805EC94 @ =gUnk_03000000 lsls r1, r1, #3 adds r1, r1, r0 ldr r0, _0805EC98 @ =0x00000426 adds r1, r1, r0 movs r0, #0 strb r0, [r1] _0805EC90: pop {pc} .align 2, 0 _0805EC94: .4byte gUnk_03000000 _0805EC98: .4byte 0x00000426 thumb_func_start sub_0805EC9C sub_0805EC9C: @ 0x0805EC9C push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r5, r1, #0 adds r6, r2, #0 adds r7, r3, #0 ldrb r0, [r4, #0x1b] lsls r0, r0, #0x1a lsrs r0, r0, #0x1b cmp r0, #0 bne _0805ECBE adds r0, r4, #0 bl sub_0805EC04 cmp r0, #0 bne _0805ECBE movs r0, #0 b _0805ECE0 _0805ECBE: ldr r1, _0805ECE4 @ =gUnk_03000000 ldr r0, _0805ECE8 @ =0x00000427 adds r2, r1, r0 movs r0, #1 strb r0, [r2] ldrb r0, [r4, #0x1b] lsls r0, r0, #0x1a lsrs r0, r0, #0x1b lsls r0, r0, #3 movs r2, #0x84 lsls r2, r2, #3 adds r1, r1, r2 adds r0, r0, r1 strh r5, [r0] strh r6, [r0, #2] strh r7, [r0, #4] movs r0, #1 _0805ECE0: pop {r4, r5, r6, r7, pc} .align 2, 0 _0805ECE4: .4byte gUnk_03000000 _0805ECE8: .4byte 0x00000427 thumb_func_start sub_0805ECEC sub_0805ECEC: @ 0x0805ECEC push {r4, r5, r6, lr} ldr r5, _0805ED0C @ =gUnk_03000000 ldr r4, _0805ED10 @ =0x00000427 adds r6, r5, r4 movs r4, #1 strb r4, [r6] lsls r0, r0, #3 movs r4, #0x84 lsls r4, r4, #3 adds r5, r5, r4 adds r0, r0, r5 strh r1, [r0] strh r2, [r0, #2] strh r3, [r0, #4] pop {r4, r5, r6, pc} .align 2, 0 _0805ED0C: .4byte gUnk_03000000 _0805ED10: .4byte 0x00000427 thumb_func_start sub_0805ED14 sub_0805ED14: @ 0x0805ED14 ldr r2, _0805ED2C @ =gUnk_03003F80 adds r1, r2, #0 adds r1, #0x9c str r0, [r1] adds r0, r2, #0 adds r0, #0x98 movs r1, #0 strh r1, [r0] adds r0, #2 strh r1, [r0] bx lr .align 2, 0 _0805ED2C: .4byte gUnk_03003F80 thumb_func_start sub_0805ED30 sub_0805ED30: @ 0x0805ED30 push {r4, lr} ldr r2, _0805ED50 @ =gUnk_03003F80 adds r0, r2, #0 adds r0, #0x9c ldr r0, [r0] adds r4, r2, #0 cmp r0, #0 beq _0805ED88 adds r1, r4, #0 adds r1, #0x90 ldr r2, [r1, #0xc] ldrh r0, [r1, #8] cmp r0, #0 bne _0805ED7E movs r4, #0 b _0805ED62 .align 2, 0 _0805ED50: .4byte gUnk_03003F80 _0805ED54: cmp r0, #2 beq _0805ED5E strh r3, [r1, #8] ldrh r0, [r2, #2] strh r0, [r1, #0xa] _0805ED5E: adds r2, #4 b _0805ED7C _0805ED62: ldrh r3, [r2] lsrs r0, r3, #0xe cmp r0, #1 bne _0805ED72 movs r3, #2 ldrsh r0, [r2, r3] adds r2, r2, r0 b _0805ED62 _0805ED72: cmp r0, #3 bne _0805ED54 strh r4, [r1, #8] strh r4, [r1, #0xa] movs r2, #0 _0805ED7C: str r2, [r1, #0xc] _0805ED7E: ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] ldrh r1, [r1, #0xa] b _0805EDCA _0805ED88: adds r0, r4, #0 adds r0, #0x8b ldrb r0, [r0] cmp r0, #3 bgt _0805ED98 cmp r0, #0 blt _0805ED98 movs r1, #0 _0805ED98: adds r2, r4, #0 adds r2, #0x8b ldrb r0, [r2] cmp r0, #1 beq _0805EDB4 cmp r0, #1 bgt _0805EDAC cmp r0, #0 beq _0805EDC6 b _0805EDCA _0805EDAC: cmp r0, #3 bgt _0805EDCA movs r1, #0 b _0805EDCA _0805EDB4: movs r0, #0 strb r0, [r2] ldr r0, _0805EDF8 @ =gUnk_03000FF0 ldrh r0, [r0] bl sub_0805EE04 adds r1, r4, #0 adds r1, #0x90 strh r0, [r1] _0805EDC6: ldr r0, _0805EDF8 @ =gUnk_03000FF0 ldrh r1, [r0] _0805EDCA: adds r0, r1, #0 bl sub_0805EE04 ldr r3, _0805EDFC @ =gUnk_03003F80 adds r1, r3, #0 adds r1, #0x90 ldrh r2, [r1] strh r0, [r1] adds r1, r0, #0 bics r1, r2 adds r2, r3, #0 adds r2, #0x92 strh r1, [r2] ldr r2, _0805EE00 @ =gUnk_08109202 movs r1, #0xf0 lsls r1, r1, #4 ands r1, r0 lsrs r1, r1, #8 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r3, #0xd] pop {r4, pc} .align 2, 0 _0805EDF8: .4byte gUnk_03000FF0 _0805EDFC: .4byte gUnk_03003F80 _0805EE00: .4byte gUnk_08109202 thumb_func_start sub_0805EE04 sub_0805EE04: @ 0x0805EE04 push {r4, r5, lr} adds r2, r0, #0 movs r5, #0x80 lsls r5, r5, #2 ands r0, r5 rsbs r0, r0, #0 asrs r1, r0, #0x1f movs r0, #0x80 lsls r0, r0, #5 ands r1, r0 movs r4, #0x80 lsls r4, r4, #1 adds r0, r2, #0 ands r0, r4 cmp r0, #0 beq _0805EE32 movs r0, #0x20 orrs r1, r0 movs r0, #0x80 lsls r0, r0, #8 orrs r1, r0 movs r0, #0x80 orrs r1, r0 _0805EE32: movs r0, #1 ands r0, r2 cmp r0, #0 beq _0805EE42 movs r0, #8 orrs r1, r0 movs r0, #0x41 orrs r1, r0 _0805EE42: movs r3, #2 adds r0, r2, #0 ands r0, r3 cmp r0, #0 beq _0805EE52 movs r0, #0x10 orrs r1, r0 orrs r1, r3 _0805EE52: movs r0, #0x10 ands r0, r2 cmp r0, #0 beq _0805EE5C orrs r1, r4 _0805EE5C: movs r0, #0x20 ands r0, r2 cmp r0, #0 beq _0805EE66 orrs r1, r5 _0805EE66: movs r0, #0x40 ands r0, r2 cmp r0, #0 beq _0805EE74 movs r0, #0x80 lsls r0, r0, #3 orrs r1, r0 _0805EE74: movs r0, #0x80 ands r0, r2 cmp r0, #0 beq _0805EE82 movs r0, #0x80 lsls r0, r0, #4 orrs r1, r0 _0805EE82: adds r0, r1, #0 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0805EE88 sub_0805EE88: @ 0x0805EE88 push {lr} ldr r1, _0805EEB0 @ =gUnk_030010A0 adds r0, r1, #0 adds r0, #0x2f ldrb r0, [r0] cmp r0, #0 beq _0805EEAC ldr r1, [r1] movs r0, #3 ands r0, r1 cmp r0, #0 bne _0805EEAC movs r0, #0xc ands r1, r0 lsrs r0, r1, #2 adds r0, #0x2f bl sub_0801D714 _0805EEAC: pop {pc} .align 2, 0 _0805EEB0: .4byte gUnk_030010A0 thumb_func_start sub_0805EEB4 sub_0805EEB4: @ 0x0805EEB4 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r3, r1, #0 strh r3, [r7, #8] movs r0, #0x80 lsls r0, r0, #0x12 ldrb r1, [r0, #7] cmp r1, #1 bls _0805EED6 lsrs r0, r3, #8 cmp r0, #1 bne _0805EED6 movs r0, #0x8c lsls r0, r0, #1 cmp r3, r0 bhi _0805EED6 movs r1, #3 _0805EED6: ldr r0, _0805EF14 @ =gUnk_08109214 lsls r1, r1, #2 adds r1, r1, r0 ldr r2, [r1] lsrs r0, r3, #8 lsls r0, r0, #0x18 lsrs r0, r0, #0x16 adds r0, r0, r2 ldr r4, [r0] adds r2, r2, r4 lsls r0, r3, #0x18 lsrs r0, r0, #0x16 adds r0, r0, r2 ldr r4, [r0] ldr r0, [r1] ldr r1, [r0] lsrs r1, r1, #2 ldr r0, [r2] lsrs r6, r0, #2 movs r5, #0 ldrh r3, [r7, #8] lsrs r0, r3, #8 cmp r0, r1 bhs _0805EF0E lsls r0, r3, #0x18 lsrs r0, r0, #0x18 cmp r0, r6 blo _0805EF18 _0805EF0E: movs r5, #1 b _0805EF22 .align 2, 0 _0805EF14: .4byte gUnk_08109214 _0805EF18: adds r0, r2, r4 ldrb r0, [r0] cmp r0, #0 bne _0805EF22 movs r5, #2 _0805EF22: cmp r5, #2 bhi _0805EF2E cmp r5, #1 blo _0805EF2E ldr r2, _0805EF3C @ =gUnk_08109244 movs r4, #0 _0805EF2E: adds r2, r2, r4 adds r0, r7, #0 adds r1, r2, #0 bl sub_0805EF40 pop {r4, r5, r6, r7, pc} .align 2, 0 _0805EF3C: .4byte gUnk_08109244 thumb_func_start sub_0805EF40 sub_0805EF40: @ 0x0805EF40 push {r4, lr} adds r3, r0, #0 adds r4, r1, #0 ldrb r2, [r3] movs r0, #1 ands r0, r2 cmp r0, #0 beq _0805EF70 lsls r1, r2, #0x1b lsrs r0, r1, #0x1c cmp r0, #6 bls _0805EF5C movs r0, #0 b _0805EF8A _0805EF5C: lsrs r0, r1, #0x1c adds r0, #1 movs r1, #0xf ands r0, r1 lsls r0, r0, #1 movs r1, #0x1f rsbs r1, r1, #0 ands r1, r2 orrs r1, r0 strb r1, [r3] _0805EF70: ldrb r0, [r3] lsls r0, r0, #0x1b lsrs r0, r0, #0x1c lsls r0, r0, #2 adds r1, r3, #0 adds r1, #0x10 adds r1, r1, r0 str r4, [r1] ldrb r0, [r3] movs r1, #1 orrs r0, r1 strb r0, [r3] movs r0, #1 _0805EF8A: pop {r4, pc} thumb_func_start sub_0805EF8C sub_0805EF8C: @ 0x0805EF8C push {lr} adds r2, r0, #0 ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0805EFAE lsls r0, r1, #0x1b lsrs r0, r0, #0x1c lsls r0, r0, #2 adds r2, #0x10 adds r2, r2, r0 ldr r1, [r2] ldrb r0, [r1] adds r1, #1 str r1, [r2] b _0805EFB0 _0805EFAE: movs r0, #0 _0805EFB0: pop {pc} .align 2, 0 thumb_func_start sub_0805EFB4 sub_0805EFB4: @ 0x0805EFB4 push {r4, lr} adds r3, r0, #0 ldrb r2, [r3] lsls r1, r2, #0x1b lsrs r4, r1, #0x1c movs r0, #0x1e ands r0, r2 cmp r0, #0 beq _0805EFDC adds r0, r4, #0 subs r0, #1 movs r1, #0xf ands r0, r1 lsls r0, r0, #1 movs r1, #0x1f rsbs r1, r1, #0 ands r1, r2 orrs r1, r0 strb r1, [r3] b _0805EFE4 _0805EFDC: movs r0, #2 rsbs r0, r0, #0 ands r0, r2 strb r0, [r3] _0805EFE4: adds r0, r4, #0 pop {r4, pc} thumb_func_start sub_0805EFE8 sub_0805EFE8: @ 0x0805EFE8 push {r4, r5, r6, r7, lr} adds r6, r0, #0 _0805EFEC: adds r0, r6, #0 bl sub_0805EF8C adds r5, r0, #0 strb r5, [r6, #1] movs r7, #0 cmp r5, #0xf bls _0805EFFE b _0805F22C _0805EFFE: lsls r0, r5, #2 ldr r1, _0805F008 @ =_0805F00C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0805F008: .4byte _0805F00C _0805F00C: @ jump table .4byte _0805F04C @ case 0 .4byte _0805F058 @ case 1 .4byte _0805F06E @ case 2 .4byte _0805F07A @ case 3 .4byte _0805F090 @ case 4 .4byte _0805F130 @ case 5 .4byte _0805F150 @ case 6 .4byte _0805F196 @ case 7 .4byte _0805F1C0 @ case 8 .4byte _0805F1CC @ case 9 .4byte _0805F1D8 @ case 10 .4byte _0805F1DC @ case 11 .4byte _0805F1EC @ case 12 .4byte _0805F1FC @ case 13 .4byte _0805F20C @ case 14 .4byte _0805F21C @ case 15 _0805F04C: adds r0, r6, #0 bl sub_0805EFB4 adds r7, r0, #0 movs r5, #0 b _0805F232 _0805F058: adds r0, r6, #0 bl sub_0805EF8C adds r4, r0, #0 strh r4, [r6, #2] movs r5, #6 cmp r4, #0xa bls _0805F06A b _0805F232 _0805F06A: movs r5, #5 b _0805F232 _0805F06E: adds r0, r6, #0 bl sub_0805EF8C strh r0, [r6, #2] movs r5, #7 b _0805F232 _0805F07A: adds r0, r6, #0 bl sub_0805EF8C lsls r4, r0, #8 adds r0, r6, #0 bl sub_0805EF8C adds r4, r4, r0 strh r4, [r6, #2] movs r5, #8 b _0805F232 _0805F090: adds r0, r6, #0 bl sub_0805EF8C adds r4, r0, #0 cmp r4, #0x15 bhi _0805F12C lsls r0, r4, #2 ldr r1, _0805F0A8 @ =_0805F0AC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0805F0A8: .4byte _0805F0AC _0805F0AC: @ jump table .4byte _0805F104 @ case 0 .4byte _0805F104 @ case 1 .4byte _0805F104 @ case 2 .4byte _0805F104 @ case 3 .4byte _0805F104 @ case 4 .4byte _0805F104 @ case 5 .4byte _0805F104 @ case 6 .4byte _0805F104 @ case 7 .4byte _0805F104 @ case 8 .4byte _0805F104 @ case 9 .4byte _0805F104 @ case 10 .4byte _0805F104 @ case 11 .4byte _0805F104 @ case 12 .4byte _0805F104 @ case 13 .4byte _0805F104 @ case 14 .4byte _0805F104 @ case 15 .4byte _0805F108 @ case 16 .4byte _0805F114 @ case 17 .4byte _0805F118 @ case 18 .4byte _0805F11C @ case 19 .4byte _0805F120 @ case 20 .4byte _0805F120 @ case 21 _0805F104: movs r5, #9 b _0805F12C _0805F108: adds r0, r6, #0 bl sub_0805EF8C adds r4, r0, #0 movs r5, #0xa b _0805F12C _0805F114: movs r5, #2 b _0805F12C _0805F118: movs r5, #3 b _0805F12C _0805F11C: movs r5, #4 b _0805F12C _0805F120: movs r5, #0xb movs r1, #0x14 eors r1, r4 rsbs r0, r1, #0 orrs r0, r1 lsrs r4, r0, #0x1f _0805F12C: strh r4, [r6, #2] b _0805F232 _0805F130: adds r0, r6, #0 bl sub_0805EF8C adds r4, r0, #0 cmp r4, #0xff bne _0805F140 movs r4, #0 b _0805F14A _0805F140: lsls r4, r4, #8 adds r0, r6, #0 bl sub_0805EF8C adds r4, r4, r0 _0805F14A: strh r4, [r6, #6] movs r5, #0xc b _0805F232 _0805F150: adds r0, r6, #0 bl sub_0805EF8C adds r4, r0, #0 cmp r4, #4 bls _0805F162 cmp r4, #5 beq _0805F17C b _0805EFEC _0805F162: ldr r1, [r6, #0xc] cmp r1, #0 bne _0805F16A ldr r1, _0805F178 @ =gUnk_08109230 _0805F16A: lsls r0, r4, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r6, #0 bl sub_0805EF40 b _0805EFEC .align 2, 0 _0805F178: .4byte gUnk_08109230 _0805F17C: adds r0, r6, #0 bl sub_0805EF8C lsls r4, r0, #8 adds r0, r6, #0 bl sub_0805EF8C adds r4, r4, r0 adds r0, r6, #0 adds r1, r4, #0 bl sub_0805EEB4 b _0805EFEC _0805F196: adds r0, r6, #0 bl sub_0805EF8C lsls r4, r0, #8 adds r0, r6, #0 bl sub_0805EF8C adds r4, r4, r0 ldrb r1, [r6] movs r0, #2 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x1f rsbs r1, r1, #0 ands r0, r1 strb r0, [r6] adds r0, r6, #0 adds r1, r4, #0 bl sub_0805EEB4 b _0805EFEC _0805F1C0: adds r0, r6, #0 bl sub_0805EF8C strh r0, [r6, #2] movs r5, #0xd b _0805F232 _0805F1CC: adds r0, r6, #0 bl sub_0805EF8C strh r0, [r6, #2] movs r5, #0xe b _0805F232 _0805F1D8: movs r5, #1 b _0805F232 _0805F1DC: adds r0, r6, #0 bl sub_0805EF8C adds r5, r0, #0 movs r0, #0x80 lsls r0, r0, #3 orrs r5, r0 b _0805F232 _0805F1EC: adds r0, r6, #0 bl sub_0805EF8C adds r5, r0, #0 movs r0, #0xe0 lsls r0, r0, #3 orrs r5, r0 b _0805F232 _0805F1FC: adds r0, r6, #0 bl sub_0805EF8C adds r5, r0, #0 movs r0, #0xa0 lsls r0, r0, #3 orrs r5, r0 b _0805F232 _0805F20C: adds r0, r6, #0 bl sub_0805EF8C adds r5, r0, #0 movs r0, #0xc0 lsls r0, r0, #3 orrs r5, r0 b _0805F232 _0805F21C: adds r0, r6, #0 bl sub_0805EF8C adds r5, r0, #0 movs r0, #0xc0 lsls r0, r0, #2 orrs r5, r0 b _0805F232 _0805F22C: movs r0, #0x80 lsls r0, r0, #1 adds r5, r5, r0 _0805F232: cmp r7, #0 beq _0805F238 b _0805EFEC _0805F238: lsrs r0, r5, #8 cmp r0, #0 beq _0805F256 ldrb r0, [r6] lsls r0, r0, #0x19 lsrs r0, r0, #0x1e cmp r0, #0 beq _0805F254 cmp r0, #1 bne _0805F254 adds r0, r5, #0 bl sub_0805F9A0 adds r5, r0, #0 _0805F254: strh r5, [r6, #4] _0805F256: adds r0, r5, #0 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0805F25C sub_0805F25C: @ 0x0805F25C push {lr} adds r2, r0, #0 lsrs r3, r2, #8 movs r0, #0xf ands r3, r0 movs r0, #0xff ands r2, r0 cmp r3, #8 bhi _0805F2B6 lsls r0, r3, #2 ldr r1, _0805F278 @ =_0805F27C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0805F278: .4byte _0805F27C _0805F27C: @ jump table .4byte _0805F2A0 @ case 0 .4byte _0805F2A0 @ case 1 .4byte _0805F2B6 @ case 2 .4byte _0805F2B6 @ case 3 .4byte _0805F2B6 @ case 4 .4byte _0805F2B4 @ case 5 .4byte _0805F2B4 @ case 6 .4byte _0805F2B4 @ case 7 .4byte _0805F2B4 @ case 8 _0805F2A0: cmp r2, #0x7f bls _0805F2B6 movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] cmp r0, #0 beq _0805F2B6 subs r2, #0x80 movs r3, #2 b _0805F2B6 _0805F2B4: lsls r2, r2, #1 _0805F2B6: ldr r1, _0805F2C4 @ =gUnk_08109248 lsls r0, r3, #2 adds r0, r0, r1 lsls r1, r2, #6 ldr r0, [r0] adds r0, r0, r1 pop {pc} .align 2, 0 _0805F2C4: .4byte gUnk_08109248 thumb_func_start sub_0805F2C8 sub_0805F2C8: @ 0x0805F2C8 push {r4, r5, lr} movs r1, #0 ldr r4, _0805F2EC @ =gUnk_02036540 adds r5, r4, #0 _0805F2D0: ldrb r0, [r4] lsls r0, r0, #0x1f cmp r0, #0 bne _0805F2F0 adds r0, r5, #0 movs r1, #0xc bl sub_0801D630 ldrb r0, [r4] movs r1, #1 orrs r0, r1 strb r0, [r4] adds r0, r5, #0 b _0805F2FC .align 2, 0 _0805F2EC: .4byte gUnk_02036540 _0805F2F0: adds r4, #0xc adds r5, #0xc adds r1, #1 cmp r1, #3 bls _0805F2D0 movs r0, #0 _0805F2FC: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0805F300 sub_0805F300: @ 0x0805F300 push {lr} adds r2, r0, #0 movs r1, #0 ldr r0, _0805F314 @ =gUnk_02036540 _0805F308: cmp r0, r2 bne _0805F318 movs r1, #0xc bl sub_0801D630 b _0805F320 .align 2, 0 _0805F314: .4byte gUnk_02036540 _0805F318: adds r0, #0xc adds r1, #1 cmp r1, #3 bls _0805F308 _0805F320: pop {pc} .align 2, 0 thumb_func_start sub_0805F324 sub_0805F324: @ 0x0805F324 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x38 adds r7, r1, #0 mov r1, sp movs r2, #0x30 bl sub_0801D66C movs r0, #0 str r0, [sp, #0x34] movs r1, #0 str r1, [sp, #0x30] mov sl, r1 mov r8, r1 b _0805F34C _0805F348: cmp r6, #0 beq _0805F41E _0805F34C: movs r5, #0 movs r2, #1 mov sb, r2 _0805F352: mov r0, sp bl sub_0805EFE8 adds r6, r0, #0 cmp r6, #0xe bhi _0805F3B4 lsls r0, r6, #2 ldr r1, _0805F368 @ =_0805F36C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0805F368: .4byte _0805F36C _0805F36C: @ jump table .4byte _0805F402 @ case 0 .4byte _0805F402 @ case 1 .4byte _0805F3FC @ case 2 .4byte _0805F3FC @ case 3 .4byte _0805F3FC @ case 4 .4byte _0805F3FC @ case 5 .4byte _0805F3FC @ case 6 .4byte _0805F3FC @ case 7 .4byte _0805F3FC @ case 8 .4byte _0805F3FC @ case 9 .4byte _0805F3FC @ case 10 .4byte _0805F3AC @ case 11 .4byte _0805F3A8 @ case 12 .4byte _0805F3FC @ case 13 .4byte _0805F3FC @ case 14 _0805F3A8: adds r5, #8 b _0805F3FC _0805F3AC: mov r0, sp ldrh r0, [r0, #2] mov r8, r0 b _0805F3FC _0805F3B4: mov r0, r8 cmp r0, #0 bne _0805F3DE adds r0, r6, #0 bl sub_0805F25C adds r4, r0, #0 lsrs r0, r6, #8 cmp r0, #4 bls _0805F3D2 ldr r0, [r4, #0x40] bl sub_0805F7A0 lsrs r0, r0, #8 adds r5, r5, r0 _0805F3D2: ldr r0, [r4] bl sub_0805F7A0 lsrs r0, r0, #8 adds r5, r5, r0 b _0805F3EA _0805F3DE: lsrs r0, r6, #8 cmp r0, #4 bls _0805F3E8 adds r5, #0x10 b _0805F3EA _0805F3E8: adds r5, #8 _0805F3EA: mov r0, sp ldrb r1, [r0] movs r0, #0x60 ands r0, r1 cmp r0, #0x20 bne _0805F3FC cmp r5, #1 bls _0805F3FC subs r5, #1 _0805F3FC: mov r1, sb cmp r1, #0 bne _0805F352 _0805F402: cmp r5, sl bls _0805F408 mov sl, r5 _0805F408: cmp r5, #0 beq _0805F414 ldr r2, [sp, #0x30] adds r2, #1 str r2, [sp, #0x30] b _0805F41A _0805F414: ldr r0, [sp, #0x34] adds r0, #1 str r0, [sp, #0x34] _0805F41A: cmp r7, #0 bne _0805F348 _0805F41E: cmp r7, #0 bne _0805F426 mov r0, sl b _0805F434 _0805F426: ldr r1, [sp, #0x34] lsls r0, r1, #0x18 ldr r2, [sp, #0x30] lsls r1, r2, #0x10 orrs r0, r1 mov r1, sl orrs r0, r1 _0805F434: add sp, #0x38 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0805F440 sub_0805F440: @ 0x0805F440 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 movs r1, #0x30 bl sub_0801D630 ldr r0, _0805F45C @ =0x0000FFFF cmp r5, r0 bls _0805F460 adds r0, r4, #0 adds r1, r5, #0 bl sub_0805EF40 b _0805F468 .align 2, 0 _0805F45C: .4byte 0x0000FFFF _0805F460: adds r0, r4, #0 adds r1, r5, #0 bl sub_0805EEB4 _0805F468: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0805F46C sub_0805F46C: @ 0x0805F46C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #0x48 adds r6, r0, #0 adds r5, r1, #0 bl sub_0805F2C8 mov r8, r0 cmp r0, #0 bne _0805F486 b _0805F5BC _0805F486: add r4, sp, #0x30 adds r0, r5, #0 adds r1, r4, #0 movs r2, #0x18 bl sub_0801D66C mov r0, sp adds r1, r6, #0 bl sub_0805F440 mov r3, sp ldrb r0, [r4, #0x17] movs r1, #3 ands r1, r0 lsls r1, r1, #5 ldrb r2, [r3] movs r0, #0x61 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] ldrb r1, [r4, #0x17] lsls r1, r1, #4 mov r0, r8 ldrb r2, [r0] movs r0, #0xf ands r0, r2 orrs r0, r1 mov r1, r8 strb r0, [r1] ldrb r0, [r4, #0x12] strh r0, [r1, #4] ldr r0, [r4, #8] str r0, [r1, #8] ldrb r0, [r4, #0x15] strb r0, [r1, #2] ldrb r0, [r4, #0x14] strb r0, [r1, #3] ldrb r1, [r4, #0x13] movs r0, #8 ands r0, r1 mov sb, r4 cmp r0, #0 beq _0805F59E lsrs r0, r1, #4 ldrb r1, [r4, #0x14] ldr r2, [r4, #4] bl sub_0805F918 ldr r0, [r4, #4] adds r0, #0xe0 str r0, [r4, #4] mov r0, sp movs r1, #1 bl sub_0805F324 lsrs r2, r0, #0x18 ldrb r1, [r4, #0x16] muls r2, r1, r2 asrs r1, r0, #0x10 lsls r1, r1, #0x18 lsrs r1, r1, #0x17 adds r7, r2, r1 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 adds r1, r4, #0 mov r2, sb ldrb r3, [r2, #0x12] cmp r3, r1 bge _0805F514 adds r1, r3, #0 _0805F514: adds r4, r1, #7 movs r2, #8 rsbs r2, r2, #0 mov r0, sb ldrb r1, [r0, #0x13] movs r0, #2 ands r0, r1 ands r4, r2 cmp r0, #0 bne _0805F52A adds r4, r3, #0 _0805F52A: ldr r5, [sp, #0x30] adds r0, r5, #0 adds r0, #0x40 str r0, [sp, #0x30] mov r2, sb ldrb r1, [r2, #0x13] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0805F54E adds r4, #0xf movs r0, #0x10 rsbs r0, r0, #0 ands r4, r0 lsrs r0, r4, #3 adds r0, #2 subs r5, r5, r0 b _0805F554 _0805F54E: adds r0, r5, #0 adds r0, #0x42 str r0, [sp, #0x30] _0805F554: lsrs r4, r4, #3 mov r3, sb ldrh r6, [r3, #0x10] adds r0, r5, #0 adds r1, r4, #0 adds r2, r7, #0 adds r3, r6, #0 bl sub_08056DC8 adds r5, #2 mov r1, sb ldrh r0, [r1, #0x10] adds r0, #7 strh r0, [r1, #0x10] ldrh r0, [r1, #0x10] subs r6, r0, #1 adds r0, r7, #0 subs r7, #1 cmp r0, #0 beq _0805F59E _0805F57C: adds r1, r5, #0 adds r1, #0x40 adds r5, r1, #0 subs r2, r4, #1 subs r3, r7, #1 cmp r4, #0 ble _0805F596 _0805F58A: strh r6, [r1] adds r1, #2 adds r0, r2, #0 subs r2, #1 cmp r0, #0 bgt _0805F58A _0805F596: adds r0, r7, #0 adds r7, r3, #0 cmp r0, #0 bne _0805F57C _0805F59E: ldr r0, _0805F5C8 @ =gUnk_02034330 movs r1, #0x18 bl sub_0801D630 _0805F5A6: mov r0, sb mov r1, sp mov r2, r8 bl sub_0805F5CC lsls r0, r0, #0x10 cmp r0, #0 bne _0805F5A6 mov r0, r8 bl sub_0805F300 _0805F5BC: movs r0, #0 add sp, #0x48 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _0805F5C8: .4byte gUnk_02034330 thumb_func_start sub_0805F5CC sub_0805F5CC: @ 0x0805F5CC push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r1, #0 adds r5, r2, #0 ldrb r0, [r4, #0x14] bl sub_0805F8F8 ldr r1, [r4, #8] ldrb r2, [r4, #0x12] adds r2, #7 movs r3, #0xfc lsls r3, r3, #1 ands r2, r3 lsls r2, r2, #3 bl sub_0801D610 adds r0, r6, #0 movs r1, #0 bl sub_0805F324 adds r2, r0, #0 ldrb r1, [r4, #0x13] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0805F60E adds r0, r2, #1 lsrs r0, r0, #1 movs r1, #8 subs r1, r1, r0 movs r0, #7 ands r0, r1 b _0805F610 _0805F60E: movs r0, #0 _0805F610: strh r0, [r5, #6] adds r0, r6, #0 adds r1, r5, #0 bl sub_0805F6A4 adds r2, r0, #0 cmp r2, #0 beq _0805F660 ldrh r1, [r5, #6] adds r0, r1, #7 asrs r5, r0, #3 ldr r2, [r4] ldrb r1, [r4, #0x13] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0805F63A adds r0, r5, #1 lsrs r0, r0, #1 lsls r0, r0, #1 subs r2, r2, r0 _0805F63A: ldrh r1, [r4, #0x10] adds r0, r2, #0 adds r2, r5, #0 bl sub_0805F67C strh r0, [r4, #0x10] ldr r0, [r4] adds r0, #0x80 str r0, [r4] lsls r5, r5, #6 ldr r0, [r4, #8] ldr r1, [r4, #4] adds r2, r5, #0 bl sub_0801D66C ldr r0, [r4, #4] adds r0, r0, r5 str r0, [r4, #4] b _0805F670 _0805F660: ldrb r0, [r6, #1] cmp r0, #0xa bne _0805F670 ldrb r1, [r4, #0x16] lsls r1, r1, #6 ldr r0, [r4] adds r0, r0, r1 str r0, [r4] _0805F670: ldrb r1, [r6, #1] rsbs r0, r1, #0 orrs r0, r1 lsrs r0, r0, #0x1f pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0805F67C sub_0805F67C: @ 0x0805F67C push {r4, lr} adds r3, r0, #0 subs r2, #1 movs r0, #1 rsbs r0, r0, #0 cmp r2, r0 beq _0805F6A0 adds r4, r0, #0 _0805F68C: strh r1, [r3] adds r1, #1 adds r0, r3, #0 adds r0, #0x40 strh r1, [r0] adds r1, #1 adds r3, #2 subs r2, #1 cmp r2, r4 bne _0805F68C _0805F6A0: adds r0, r1, #0 pop {r4, pc} thumb_func_start sub_0805F6A4 sub_0805F6A4: @ 0x0805F6A4 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r4, r1, #0 movs r6, #0 _0805F6AC: adds r0, r5, #0 bl sub_0805EFE8 movs r7, #1 cmp r0, #0xe bhi _0805F746 lsls r0, r0, #2 ldr r1, _0805F6C4 @ =_0805F6C8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0805F6C4: .4byte _0805F6C8 _0805F6C8: @ jump table .4byte _0805F768 @ case 0 .4byte _0805F768 @ case 1 .4byte _0805F764 @ case 2 .4byte _0805F764 @ case 3 .4byte _0805F764 @ case 4 .4byte _0805F764 @ case 5 .4byte _0805F764 @ case 6 .4byte _0805F704 @ case 7 .4byte _0805F764 @ case 8 .4byte _0805F764 @ case 9 .4byte _0805F764 @ case 10 .4byte _0805F740 @ case 11 .4byte _0805F70E @ case 12 .4byte _0805F764 @ case 13 .4byte _0805F764 @ case 14 _0805F704: ldrh r0, [r5, #2] cmp r0, #0xd bhi _0805F764 strb r0, [r4, #2] b _0805F764 _0805F70E: ldr r3, _0805F73C @ =gUnk_02034330 movs r2, #2 ldrsb r2, [r3, r2] cmp r2, #3 bhi _0805F732 adds r0, r2, #1 strb r0, [r3, #2] lsls r2, r2, #1 adds r0, r3, #0 adds r0, #0x10 adds r0, r2, r0 ldrh r1, [r5, #6] strh r1, [r0] adds r0, r3, #0 adds r0, #8 adds r2, r2, r0 ldrh r0, [r4, #6] strh r0, [r2] _0805F732: ldrh r0, [r4, #6] adds r0, #8 strh r0, [r4, #6] adds r6, #8 b _0805F764 .align 2, 0 _0805F73C: .4byte gUnk_02034330 _0805F740: ldrh r0, [r5, #2] strb r0, [r4, #1] b _0805F764 _0805F746: adds r1, r4, #0 bl sub_0805F7DC adds r6, r6, r0 ldrb r1, [r5] movs r0, #0x60 ands r0, r1 cmp r0, #0x20 bne _0805F764 ldrh r0, [r4, #6] cmp r0, #1 bls _0805F764 subs r6, #1 subs r0, #1 strh r0, [r4, #6] _0805F764: cmp r7, #0 bne _0805F6AC _0805F768: adds r0, r6, #0 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0805F76C sub_0805F76C: @ 0x0805F76C push {r4, lr} sub sp, #0x30 adds r2, r0, #0 adds r4, r1, #0 mov r0, sp adds r1, r2, #0 bl sub_0805F440 mov r3, sp ldrb r0, [r4] lsrs r0, r0, #4 movs r1, #3 ands r1, r0 lsls r1, r1, #5 ldrb r2, [r3] movs r0, #0x61 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] mov r0, sp adds r1, r4, #0 bl sub_0805F6A4 add sp, #0x30 pop {r4, pc} thumb_func_start sub_0805F7A0 sub_0805F7A0: @ 0x0805F7A0 push {r4, lr} adds r4, r0, #0 movs r1, #0xf movs r2, #0 b _0805F7B4 _0805F7AA: lsls r1, r1, #4 adds r2, #1 cmp r2, #7 bhi _0805F7BA adds r0, r4, #0 _0805F7B4: ands r0, r1 cmp r1, r0 beq _0805F7AA _0805F7BA: adds r3, r2, #0 cmp r3, #7 bhi _0805F7D2 b _0805F7CA _0805F7C2: lsls r1, r1, #4 adds r2, #1 cmp r2, #7 bhi _0805F7D2 _0805F7CA: adds r0, r4, #0 ands r0, r1 cmp r1, r0 bne _0805F7C2 _0805F7D2: subs r2, r2, r3 lsls r0, r2, #8 orrs r0, r3 pop {r4, pc} .align 2, 0 thumb_func_start sub_0805F7DC sub_0805F7DC: @ 0x0805F7DC push {r4, r5, r6, r7, lr} adds r6, r0, #0 adds r4, r1, #0 ldrh r0, [r4, #4] ldrh r1, [r4, #6] cmp r0, r1 bhi _0805F7EE movs r0, #0 b _0805F81E _0805F7EE: adds r0, r6, #0 bl sub_0805F25C adds r5, r0, #0 ldrh r7, [r4, #6] lsrs r0, r6, #8 cmp r0, #4 bls _0805F808 adds r0, r4, #0 adds r1, r5, #0 bl sub_0805F820 adds r5, #0x40 _0805F808: adds r0, r4, #0 adds r1, r5, #0 bl sub_0805F820 ldrh r1, [r4, #4] ldrh r0, [r4, #6] cmp r0, r1 bls _0805F81A strh r1, [r4, #6] _0805F81A: ldrh r0, [r4, #6] subs r0, r0, r7 _0805F81E: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0805F820 sub_0805F820: @ 0x0805F820 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r7, r0, #0 adds r4, r1, #0 ldrh r0, [r7, #4] ldrh r1, [r7, #6] subs r0, r0, r1 cmp r0, #0 ble _0805F8DC ldr r1, _0805F854 @ =gUnk_02036A58 adds r0, r4, #0 bl sub_08002724 ldrb r0, [r7, #1] cmp r0, #0 bne _0805F858 ldr r0, [r4] bl sub_0805F7A0 movs r1, #0xf ands r1, r0 lsrs r4, r0, #8 b _0805F85C .align 2, 0 _0805F854: .4byte gUnk_02036A58 _0805F858: movs r1, #0 movs r4, #8 _0805F85C: ldrh r0, [r7, #4] ldrh r3, [r7, #6] subs r0, r0, r3 cmp r0, #8 ble _0805F868 movs r0, #8 _0805F868: cmp r0, r4 bge _0805F86E adds r4, r0, #0 _0805F86E: ldr r0, _0805F8BC @ =gUnk_02036A58 adds r6, r1, r0 ldr r0, [r7, #8] mov sb, r0 ldrb r0, [r7, #3] lsls r2, r0, #1 adds r2, r2, r0 lsls r2, r2, #6 ldrb r0, [r7, #2] lsls r0, r0, #5 ldr r1, _0805F8C0 @ =gUnk_0810942E adds r0, r0, r1 adds r2, r2, r0 mov r8, r2 adds r5, r3, #0 adds r0, r5, r4 strh r0, [r7, #6] ldrb r0, [r7] lsrs r0, r0, #4 cmp r0, #1 beq _0805F8D4 adds r0, r4, #0 subs r4, #1 cmp r0, #0 ble _0805F8DC _0805F8A0: adds r0, r6, #0 mov r1, sb mov r2, r8 adds r3, r5, #0 bl sub_080026C4 adds r6, #1 adds r5, #1 adds r0, r4, #0 subs r4, #1 cmp r0, #0 bgt _0805F8A0 b _0805F8DC .align 2, 0 _0805F8BC: .4byte gUnk_02036A58 _0805F8C0: .4byte gUnk_0810942E _0805F8C4: adds r0, r6, #0 mov r1, sb mov r2, r8 adds r3, r5, #0 bl sub_080026F2 adds r6, #1 adds r5, #1 _0805F8D4: adds r0, r4, #0 subs r4, #1 cmp r0, #0 bgt _0805F8C4 _0805F8DC: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0805F8E4 sub_0805F8E4: @ 0x0805F8E4 push {r4, r5, lr} adds r4, r1, #0 ldrb r5, [r4, #1] movs r1, #1 strb r1, [r4, #1] adds r1, r4, #0 bl sub_0805F7DC strb r5, [r4, #1] pop {r4, r5, pc} thumb_func_start sub_0805F8F8 sub_0805F8F8: @ 0x0805F8F8 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #6 ldr r0, _0805F910 @ =gUnk_081094CE adds r1, r1, r0 ldr r2, _0805F914 @ =gUnk_0810926C ldrb r0, [r1, #0xa] lsls r0, r0, #2 adds r0, r0, r2 ldr r0, [r0] bx lr .align 2, 0 _0805F910: .4byte gUnk_081094CE _0805F914: .4byte gUnk_0810926C thumb_func_start sub_0805F918 sub_0805F918: @ 0x0805F918 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r4, r0, #0 adds r5, r1, #0 mov sl, r2 adds r0, r5, #0 bl sub_0805F8F8 ldr r1, _0805F990 @ =gUnk_02036AD8 movs r2, #0xe0 bl sub_0801D610 ldr r0, _0805F994 @ =gUnk_081092AC lsls r4, r4, #2 adds r4, r4, r0 ldr r4, [r4] mov r8, r4 lsls r0, r5, #1 adds r0, r0, r5 lsls r0, r0, #6 ldr r1, _0805F998 @ =gUnk_081094CE adds r0, r0, r1 mov sb, r0 movs r7, #0 movs r6, #0 _0805F950: ldr r4, _0805F99C @ =gUnk_02036A58 mov r0, r8 adds r1, r4, #0 bl sub_08002724 movs r0, #0x40 add r8, r0 movs r5, #0 adds r6, #1 _0805F962: adds r0, r4, #0 ldr r1, _0805F990 @ =gUnk_02036AD8 mov r2, sb adds r3, r7, #0 bl sub_080026C4 adds r4, #1 adds r7, #1 adds r5, #1 cmp r5, #7 bls _0805F962 cmp r6, #2 bls _0805F950 ldr r0, _0805F990 @ =gUnk_02036AD8 mov r1, sl movs r2, #0xe0 bl sub_08000E96 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _0805F990: .4byte gUnk_02036AD8 _0805F994: .4byte gUnk_081092AC _0805F998: .4byte gUnk_081094CE _0805F99C: .4byte gUnk_02036A58 thumb_func_start sub_0805F9A0 sub_0805F9A0: @ 0x0805F9A0 push {lr} adds r2, r0, #0 movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] cmp r0, #0 bne _0805F9D0 ldr r1, _0805F9C4 @ =gUnk_081092D4 movs r3, #0 _0805F9B2: ldrh r0, [r1] cmp r0, r2 beq _0805F9C8 adds r3, #1 adds r1, #2 ldrh r0, [r1] cmp r0, #0 bne _0805F9B2 b _0805F9D8 .align 2, 0 _0805F9C4: .4byte gUnk_081092D4 _0805F9C8: movs r1, #0x80 lsls r1, r1, #4 adds r0, r3, r1 b _0805F9E2 _0805F9D0: ldr r0, _0805F9E4 @ =0x0000031A cmp r2, r0 bne _0805F9D8 movs r2, #1 _0805F9D8: movs r0, #0xff ands r0, r2 movs r1, #0x80 lsls r1, r1, #4 adds r0, r0, r1 _0805F9E2: pop {pc} .align 2, 0 _0805F9E4: .4byte 0x0000031A thumb_func_start sub_0805F9E8 sub_0805F9E8: @ 0x0805F9E8 push {lr} ldr r1, _0805F9FC @ =gUnk_08109A30 ldr r0, _0805FA00 @ =gUnk_03001000 ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _0805F9FC: .4byte gUnk_08109A30 _0805FA00: .4byte gUnk_03001000 thumb_func_start sub_0805FA04 sub_0805FA04: @ 0x0805FA04 push {r4, r5, lr} movs r0, #1 bl sub_0801DA90 ldr r0, _0805FA78 @ =gUnk_02034CB0 movs r1, #0x80 lsls r1, r1, #4 bl sub_0801D630 ldr r0, _0805FA7C @ =gUnk_02001A40 movs r1, #0x80 lsls r1, r1, #5 bl sub_0801D630 ldr r0, _0805FA80 @ =gUnk_03000F50 movs r2, #0 movs r1, #0x94 lsls r1, r1, #4 strh r1, [r0] strh r2, [r0, #0xa] strh r2, [r0, #0xc] strh r2, [r0, #0x2e] strh r2, [r0, #0x30] ldr r1, _0805FA84 @ =0x00001E0F strh r1, [r0, #0x2c] movs r5, #1 movs r1, #1 strh r1, [r0, #0x32] bl sub_08056418 ldr r0, _0805FA88 @ =gUnk_02032EC0 movs r1, #0xed lsls r1, r1, #2 bl sub_0801D630 ldr r4, _0805FA8C @ =gUnk_02000080 adds r0, r4, #0 movs r1, #0x30 bl sub_0801D630 movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] strb r0, [r4, #0x16] bl sub_08053320 ldr r1, _0805FA90 @ =0x00001144 movs r0, #0 bl sub_0801D79C ldr r0, _0805FA94 @ =gUnk_03001000 strb r5, [r0, #3] bl sub_080A3210 bl sub_08050008 pop {r4, r5, pc} .align 2, 0 _0805FA78: .4byte gUnk_02034CB0 _0805FA7C: .4byte gUnk_02001A40 _0805FA80: .4byte gUnk_03000F50 _0805FA84: .4byte 0x00001E0F _0805FA88: .4byte gUnk_02032EC0 _0805FA8C: .4byte gUnk_02000080 _0805FA90: .4byte 0x00001144 _0805FA94: .4byte gUnk_03001000 thumb_func_start sub_0805FA98 sub_0805FA98: @ 0x0805FA98 push {r4, lr} ldr r0, _0805FAB4 @ =gUnk_03000FF0 ldrh r1, [r0, #2] adds r2, r0, #0 cmp r1, #0x80 beq _0805FAD8 cmp r1, #0x80 bgt _0805FAB8 cmp r1, #2 beq _0805FB44 cmp r1, #0x40 beq _0805FACA b _0805FB4A .align 2, 0 _0805FAB4: .4byte gUnk_03000FF0 _0805FAB8: movs r0, #0x80 lsls r0, r0, #1 cmp r1, r0 beq _0805FB28 movs r0, #0x80 lsls r0, r0, #2 cmp r1, r0 beq _0805FAE8 b _0805FB4A _0805FACA: ldr r1, _0805FAD4 @ =gUnk_02000080 ldrb r0, [r1, #0x11] subs r0, #1 strb r0, [r1, #0x11] b _0805FBA4 .align 2, 0 _0805FAD4: .4byte gUnk_02000080 _0805FAD8: ldr r1, _0805FAE4 @ =gUnk_02000080 ldrb r0, [r1, #0x11] adds r0, #1 strb r0, [r1, #0x11] b _0805FBA4 .align 2, 0 _0805FAE4: .4byte gUnk_02000080 _0805FAE8: ldr r0, _0805FB04 @ =gUnk_02000080 ldrb r1, [r0, #0x10] movs r2, #1 eors r1, r2 strb r1, [r0, #0x10] cmp r1, #0 bne _0805FB10 ldr r0, _0805FB08 @ =gUnk_03000F50 ldr r1, _0805FB0C @ =0x00001F0C strh r1, [r0, #8] subs r1, #0xfd strh r1, [r0, #0x2c] b _0805FBA4 .align 2, 0 _0805FB04: .4byte gUnk_02000080 _0805FB08: .4byte gUnk_03000F50 _0805FB0C: .4byte 0x00001F0C _0805FB10: ldr r0, _0805FB1C @ =gUnk_03000F50 ldr r1, _0805FB20 @ =0x00001F0F strh r1, [r0, #8] ldr r1, _0805FB24 @ =0x00001E0C strh r1, [r0, #0x2c] b _0805FBA4 .align 2, 0 _0805FB1C: .4byte gUnk_03000F50 _0805FB20: .4byte 0x00001F0F _0805FB24: .4byte 0x00001E0C _0805FB28: movs r2, #0x80 lsls r2, r2, #0x12 ldr r1, _0805FB40 @ =gUnk_02000080 ldrb r0, [r1, #0x16] strb r0, [r2, #7] ldrb r0, [r1, #0x14] lsls r0, r0, #8 ldrb r1, [r1, #0x15] adds r0, r0, r1 bl sub_08056378 b _0805FBA4 .align 2, 0 _0805FB40: .4byte gUnk_02000080 _0805FB44: bl sub_08056418 b _0805FBA4 _0805FB4A: ldrh r0, [r2, #4] cmp r0, #0x10 beq _0805FB5A cmp r0, #0x20 bne _0805FB5E movs r1, #1 rsbs r1, r1, #0 b _0805FB60 _0805FB5A: movs r1, #1 b _0805FB60 _0805FB5E: movs r1, #0 _0805FB60: ldr r4, _0805FB74 @ =gUnk_02000080 ldrb r0, [r4, #0x11] cmp r0, #1 beq _0805FB8E cmp r0, #1 bgt _0805FB78 cmp r0, #0 beq _0805FB7E b _0805FBA4 .align 2, 0 _0805FB74: .4byte gUnk_02000080 _0805FB78: cmp r0, #2 beq _0805FB96 b _0805FBA4 _0805FB7E: ldrb r0, [r4, #0x14] adds r0, r0, r1 adds r0, #0x50 movs r1, #0x50 bl __modsi3 strb r0, [r4, #0x14] b _0805FBA4 _0805FB8E: ldrb r0, [r4, #0x15] adds r0, r0, r1 strb r0, [r4, #0x15] b _0805FBA4 _0805FB96: ldrb r0, [r4, #0x16] adds r0, r0, r1 adds r0, #7 movs r1, #7 bl __modsi3 strb r0, [r4, #0x16] _0805FBA4: ldr r4, _0805FBBC @ =gUnk_02000080 ldrb r0, [r4, #0x11] adds r0, #3 movs r1, #3 bl __modsi3 strb r0, [r4, #0x11] ldr r1, _0805FBC0 @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0x32] pop {r4, pc} .align 2, 0 _0805FBBC: .4byte gUnk_02000080 _0805FBC0: .4byte gUnk_03000F50 thumb_func_start sub_0805FBC4 sub_0805FBC4: @ 0x0805FBC4 push {lr} movs r0, #0 bl sub_08056010 pop {pc} .align 2, 0 thumb_func_start sub_0805FBD0 sub_0805FBD0: @ 0x0805FBD0 push {lr} ldr r2, _0805FBE4 @ =gUnk_08109AC8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805FBE4: .4byte gUnk_08109AC8 thumb_func_start sub_0805FBE8 sub_0805FBE8: @ 0x0805FBE8 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _0805FC68 @ =gUnk_03001160 adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA24 ldrb r0, [r5, #0xc] adds r0, #1 strb r0, [r5, #0xc] ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r5, #0x18] adds r4, #0x3c ldrb r0, [r4] adds r0, #1 adds r1, r5, #0 adds r1, #0x3c strb r0, [r1] ldr r0, _0805FC6C @ =gUnk_08109AD0 str r0, [r5, #0x48] movs r0, #0xe0 lsls r0, r0, #2 strh r0, [r5, #0x24] ldrb r1, [r5, #0x14] movs r0, #0x7f ands r0, r1 strb r0, [r5, #0x14] adds r0, r5, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #2 bne _0805FC36 movs r0, #1 strb r0, [r5, #0xb] _0805FC36: ldrb r1, [r5, #0x14] lsls r0, r1, #2 strb r0, [r5, #0x15] movs r0, #0x3c str r0, [r5, #0x6c] lsls r1, r1, #0x18 lsrs r1, r1, #0x19 adds r1, #0xc adds r0, r5, #0 bl sub_08004260 adds r0, r5, #0 bl sub_0801766C adds r0, r5, #0 bl sub_0806F69C adds r0, r5, #0 bl sub_0805FC74 ldr r0, _0805FC70 @ =0x0000013F bl sub_080A3268 pop {r4, r5, pc} .align 2, 0 _0805FC68: .4byte gUnk_03001160 _0805FC6C: .4byte gUnk_08109AD0 _0805FC70: .4byte 0x0000013F thumb_func_start sub_0805FC74 sub_0805FC74: @ 0x0805FC74 push {r4, r5, lr} adds r4, r0, #0 ldr r0, [r4, #0x6c] subs r0, #1 str r0, [r4, #0x6c] movs r1, #1 rsbs r1, r1, #0 cmp r0, r1 beq _0805FD1C adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] ldrb r0, [r4, #0xb] cmp r0, #0 bne _0805FCA4 adds r0, r4, #0 bl sub_0800451C _0805FCA4: movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _0805FD10 @ =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 ldr r1, _0805FD14 @ =gUnk_03001160 adds r1, #0x38 ldrb r1, [r1] movs r2, #0x80 bl sub_080002F0 cmp r0, #0 bne _0805FCF6 ldr r1, _0805FD18 @ =gUnk_08003E44 movs r0, #0x2e ldrsh r2, [r4, r0] movs r5, #0x32 ldrsh r3, [r4, r5] adds r0, r4, #0 bl sub_080040D8 cmp r0, #0 beq _0805FCF6 adds r0, r4, #0 movs r1, #0x19 movs r2, #0 bl sub_080A29AC bl sub_0805E780 _0805FCF6: adds r0, r4, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0 beq _0805FD20 adds r0, r4, #0 movs r1, #0x19 movs r2, #0 bl sub_080A29AC bl sub_0805E780 b _0805FD20 .align 2, 0 _0805FD10: .4byte gUnk_03000BF0 _0805FD14: .4byte gUnk_03001160 _0805FD18: .4byte gUnk_08003E44 _0805FD1C: bl sub_0805E780 _0805FD20: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0805FD24 sub_0805FD24: @ 0x0805FD24 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _0805FD72 cmp r0, #1 bgt _0805FD38 cmp r0, #0 beq _0805FD3E b _0805FDBC _0805FD38: cmp r0, #2 beq _0805FDAE b _0805FDBC _0805FD3E: movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 adds r0, r4, #0 bl sub_0807DD50 b _0805FDBC _0805FD72: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _0805FDA4 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] ldr r1, _0805FDA0 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 bl sub_0806F118 b _0805FDBC .align 2, 0 _0805FDA0: .4byte gUnk_03001160 _0805FDA4: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 b _0805FDBC _0805FDAE: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _0805FDBC movs r0, #1 strb r0, [r4, #0xc] _0805FDBC: pop {r4, pc} .align 2, 0 thumb_func_start sub_0805FDC0 sub_0805FDC0: @ 0x0805FDC0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0805FDEE adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 movs r1, #0xa bl sub_080042AC b _0805FDF4 _0805FDEE: adds r0, r4, #0 bl sub_080042B8 _0805FDF4: pop {r4, pc} .align 2, 0 thumb_func_start sub_0805FDF8 sub_0805FDF8: @ 0x0805FDF8 push {lr} ldr r2, _0805FE0C @ =gUnk_08109BBC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805FE0C: .4byte gUnk_08109BBC thumb_func_start sub_0805FE10 sub_0805FE10: @ 0x0805FE10 push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 adds r0, r4, #0 bl sub_0807DD50 pop {r4, pc} thumb_func_start sub_0805FE48 sub_0805FE48: @ 0x0805FE48 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r2, r5, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _0805FE80 movs r0, #0 strb r1, [r5, #0xc] strb r0, [r2] ldr r1, _0805FE7C @ =gUnk_03001160 adds r0, r5, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r5, #0 bl sub_080042AC adds r0, r5, #0 bl sub_0806F118 b _0805FF14 .align 2, 0 _0805FE7C: .4byte gUnk_03001160 _0805FE80: adds r4, r5, #0 adds r4, #0x84 ldr r1, [r4] adds r0, r5, #0 bl sub_0807DF74 ldr r1, [r4] adds r0, r5, #0 bl sub_0805FF2C adds r0, r5, #0 adds r0, #0x80 ldrh r3, [r0] adds r7, r0, #0 adds r6, r5, #0 adds r6, #0x82 cmp r3, #7 bhi _0805FEC6 ldrh r1, [r6] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0805FEBA movs r1, #0xfc ands r1, r3 ldrb r0, [r5, #0xf] lsrs r0, r0, #1 adds r3, r1, r0 b _0805FEC6 _0805FEBA: movs r0, #0xfc ands r0, r3 ldrb r2, [r5, #0x14] lsrs r1, r2, #1 adds r3, r0, r1 strb r2, [r5, #0xf] _0805FEC6: adds r4, r5, #0 adds r4, #0x58 ldrb r0, [r4] cmp r3, r0 beq _0805FED8 adds r0, r5, #0 adds r1, r3, #0 bl sub_080042AC _0805FED8: adds r0, r5, #0 bl sub_080042B8 adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0805FF02 ldrb r0, [r4] cmp r0, #8 beq _0805FEFE cmp r0, #8 blt _0805FF02 cmp r0, #0xc bgt _0805FF02 cmp r0, #0xa blt _0805FF02 _0805FEFE: movs r0, #0 strh r0, [r7] _0805FF02: ldrh r1, [r6] mvns r0, r1 adds r0, #1 ands r1, r0 cmp r1, #2 bne _0805FF14 adds r0, r5, #0 bl sub_0806ED78 _0805FF14: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0805FF18 sub_0805FF18: @ 0x0805FF18 push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _0805FF28 movs r0, #1 strb r0, [r4, #0xc] _0805FF28: pop {r4, pc} .align 2, 0 thumb_func_start sub_0805FF2C sub_0805FF2C: @ 0x0805FF2C push {r4, r5, r6, lr} adds r4, r0, #0 adds r5, r1, #0 ldr r0, [r5, #8] ldr r1, _0805FF60 @ =0xFFF00004 ands r1, r0 eors r0, r1 str r0, [r5, #8] cmp r1, #0 beq _0805FF94 movs r6, #0x80 lsls r6, r6, #0xd adds r3, r4, #0 adds r3, #0x80 _0805FF48: mvns r0, r1 adds r2, r0, #1 ands r2, r1 eors r1, r2 cmp r2, r6 beq _0805FF8C cmp r2, r6 bhi _0805FF64 cmp r2, #4 beq _0805FF76 b _0805FF90 .align 2, 0 _0805FF60: .4byte 0xFFF00004 _0805FF64: movs r0, #0x80 lsls r0, r0, #0xe cmp r2, r0 beq _0805FF7A movs r0, #0x80 lsls r0, r0, #0xf cmp r2, r0 beq _0805FF7E b _0805FF90 _0805FF76: movs r0, #9 b _0805FF8E _0805FF7A: movs r0, #0xa b _0805FF8E _0805FF7E: ldrb r0, [r4, #0x14] cmp r0, #2 bne _0805FF88 movs r0, #0xb b _0805FF8E _0805FF88: movs r0, #0xc b _0805FF8E _0805FF8C: movs r0, #8 _0805FF8E: strh r0, [r3] _0805FF90: cmp r1, #0 bne _0805FF48 _0805FF94: adds r0, r4, #0 adds r1, r5, #0 bl sub_0807DB98 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0805FFA0 sub_0805FFA0: @ 0x0805FFA0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0805FFCE adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 movs r1, #8 bl sub_080042AC b _0805FFD4 _0805FFCE: adds r0, r4, #0 bl sub_080042B8 _0805FFD4: pop {r4, pc} .align 2, 0 thumb_func_start sub_0805FFD8 sub_0805FFD8: @ 0x0805FFD8 push {r4, r5, lr} adds r4, r0, #0 ldrb r5, [r4, #0xc] cmp r5, #1 beq _08060044 cmp r5, #1 bgt _0805FFEC cmp r5, #0 beq _0805FFF2 b _0806008C _0805FFEC: cmp r5, #2 beq _0806007E b _0806008C _0805FFF2: ldr r1, _0806003C @ =gUnk_0810A348 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806008C movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldrb r0, [r4, #0xe] lsls r0, r0, #1 strb r0, [r4, #0x14] adds r1, r4, #0 adds r1, #0x69 strb r0, [r1] strb r5, [r4, #0xe] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 ldr r1, _08060040 @ =gUnk_08109D18 ldrb r0, [r4, #0xb] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl sub_0807DAD0 adds r0, r4, #0 bl sub_0807DD50 b _0806008C .align 2, 0 _0806003C: .4byte gUnk_0810A348 _08060040: .4byte gUnk_08109D18 _08060044: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _0806005E movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] adds r0, r4, #0 bl sub_0806F118 b _0806008C _0806005E: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 adds r0, #0x59 ldrb r0, [r0] cmp r0, #0xf0 beq _0806008C adds r0, r4, #0 bl sub_080600F0 b _0806008C _0806007E: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _0806008C movs r0, #1 strb r0, [r4, #0xc] _0806008C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08060090 sub_08060090: @ 0x08060090 push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 pop {r4, pc} thumb_func_start sub_080600A8 sub_080600A8: @ 0x080600A8 push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r2, [r0] cmp r2, #0xff beq _080600BA movs r0, #0x81 rsbs r0, r0, #0 ands r2, r0 _080600BA: adds r0, r4, #0 adds r0, #0x5b ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 bne _080600CA movs r2, #0xff _080600CA: adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 ldrb r2, [r4, #0x1e] adds r0, r4, #0 movs r1, #1 bl sub_0806FF60 adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r4, #0 bl sub_0807000C pop {r4, pc} .align 2, 0 thumb_func_start sub_080600F0 sub_080600F0: @ 0x080600F0 push {r4, lr} adds r4, r0, #0 adds r0, #0x80 ldrh r3, [r0] cmp r3, #7 bhi _08060120 adds r0, #2 ldrh r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08060114 movs r1, #0xfc ands r1, r3 ldrb r0, [r4, #0xf] lsrs r0, r0, #1 adds r3, r1, r0 b _08060120 _08060114: movs r0, #0xfc ands r0, r3 ldrb r2, [r4, #0x14] lsrs r1, r2, #1 adds r3, r0, r1 strb r2, [r4, #0xf] _08060120: adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r3, r0 beq _08060132 adds r0, r4, #0 adds r1, r3, #0 bl sub_080042AC _08060132: adds r0, r4, #0 adds r0, #0x82 ldrh r1, [r0] movs r0, #4 ands r0, r1 movs r1, #1 cmp r0, #0 beq _08060144 movs r1, #2 _08060144: adds r0, r4, #0 bl sub_080042BA pop {r4, pc} thumb_func_start sub_0806014C sub_0806014C: @ 0x0806014C push {lr} movs r1, #0 strb r1, [r0, #0xe] bl sub_08060158 pop {pc} thumb_func_start sub_08060158 sub_08060158: @ 0x08060158 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] adds r7, r0, #0 cmp r7, #0 beq _0806016A subs r0, #1 strb r0, [r4, #0xe] b _080601CC _0806016A: movs r0, #2 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0x20 movs r2, #0x20 bl sub_0806EDD8 adds r3, r0, #0 cmp r3, #0 bge _08060188 adds r0, r4, #0 adds r0, #0x69 ldrb r0, [r0] strb r0, [r4, #0x14] lsls r3, r0, #2 _08060188: ldrb r0, [r4, #0x14] lsrs r0, r0, #1 lsls r0, r0, #5 asrs r1, r3, #1 lsls r1, r1, #1 ldr r2, _080601D0 @ =gUnk_08109C98 adds r1, r1, r2 adds r0, r0, r1 ldrb r6, [r0] ldrb r5, [r0, #1] movs r0, #0x80 ands r0, r5 cmp r0, #0 beq _080601AC adds r0, r3, #0 bl sub_0806F5B0 strb r0, [r4, #0x14] _080601AC: movs r0, #0x7f ands r5, r0 adds r0, r4, #0 adds r0, #0x5a strb r6, [r0] strb r5, [r4, #0x1e] adds r1, r4, #0 adds r1, #0x5b movs r0, #1 strb r0, [r1] adds r0, r4, #0 adds r0, #0x58 strb r7, [r0] subs r1, #2 movs r0, #0xf0 strb r0, [r1] _080601CC: pop {r4, r5, r6, r7, pc} .align 2, 0 _080601D0: .4byte gUnk_08109C98 thumb_func_start sub_080601D4 sub_080601D4: @ 0x080601D4 push {r4, lr} adds r4, r0, #0 movs r0, #4 bl sub_0807CC30 cmp r0, #0 bne _080601E6 movs r1, #2 b _080601F2 _080601E6: movs r0, #0x17 bl sub_0801E7F4 rsbs r1, r0, #0 orrs r1, r0 lsrs r1, r1, #0x1f _080601F2: ldr r0, _08060204 @ =gUnk_0810A354 lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 bl sub_08056398 pop {r4, pc} .align 2, 0 _08060204: .4byte gUnk_0810A354 thumb_func_start sub_08060208 sub_08060208: @ 0x08060208 push {lr} ldrb r1, [r0, #0xb] lsls r1, r1, #5 ldr r2, _08060218 @ =gUnk_08109DC8 adds r1, r1, r2 bl sub_0806F1AC pop {pc} .align 2, 0 _08060218: .4byte gUnk_08109DC8 thumb_func_start sub_0806021C sub_0806021C: @ 0x0806021C push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x5b bl sub_0807CA84 rsbs r1, r0, #0 orrs r1, r0 lsrs r4, r1, #0x1f movs r0, #0x40 bl sub_0807CA84 cmp r0, #0 beq _08060238 movs r4, #2 _08060238: movs r0, #0x13 bl sub_0807CA84 cmp r0, #0 beq _08060244 movs r4, #3 _08060244: ldrb r1, [r5, #0xb] lsls r1, r1, #5 lsls r0, r4, #3 ldr r2, _08060258 @ =gUnk_08109DC8 adds r0, r0, r2 adds r1, r1, r0 adds r0, r5, #0 bl sub_0806F1AC pop {r4, r5, pc} .align 2, 0 _08060258: .4byte gUnk_08109DC8 thumb_func_start sub_0806025C sub_0806025C: @ 0x0806025C push {lr} ldrb r1, [r0, #0xb] lsls r1, r1, #5 ldr r2, _0806026C @ =gUnk_08109DC8 adds r1, r1, r2 bl sub_0806F1AC pop {pc} .align 2, 0 _0806026C: .4byte gUnk_08109DC8 thumb_func_start sub_08060270 sub_08060270: @ 0x08060270 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x46 bl sub_0807CA84 cmp r0, #0 bne _08060294 movs r4, #1 movs r0, #0x29 bl sub_0807CC30 cmp r0, #0 bne _080602A8 movs r4, #0 movs r0, #0x29 bl sub_0807CD04 b _080602A8 _08060294: movs r4, #3 movs r0, #0x76 bl sub_0807CBD0 cmp r0, #0 bne _080602A8 movs r4, #2 movs r0, #0x76 bl sub_0807CCB4 _080602A8: ldr r0, _080602B8 @ =gUnk_0810A35A lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 bl sub_08056398 pop {r4, r5, pc} .align 2, 0 _080602B8: .4byte gUnk_0810A35A thumb_func_start sub_080602BC sub_080602BC: @ 0x080602BC push {r4, lr} adds r4, r0, #0 movs r0, #0x48 bl sub_0807CA84 cmp r0, #0 beq _080602D6 bl sub_08000E50 movs r1, #1 ands r1, r0 adds r2, r1, #2 b _080602F0 _080602D6: ldr r0, _08060300 @ =gUnk_02002A40 adds r2, r0, #0 adds r2, #0xac ldr r1, _08060304 @ =gUnk_080FD5A0 adds r0, #0xae ldrb r0, [r0] adds r0, r0, r1 ldrb r1, [r2] movs r2, #0 ldrb r0, [r0] cmp r1, r0 bhs _080602F0 movs r2, #1 _080602F0: ldr r0, _08060308 @ =gUnk_0810A362 lsls r1, r2, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 bl sub_08056398 pop {r4, pc} .align 2, 0 _08060300: .4byte gUnk_02002A40 _08060304: .4byte gUnk_080FD5A0 _08060308: .4byte gUnk_0810A362 thumb_func_start sub_0806030C sub_0806030C: @ 0x0806030C push {lr} ldr r0, [r1, #4] bl sub_080542F4 pop {pc} .align 2, 0 thumb_func_start sub_08060318 sub_08060318: @ 0x08060318 push {r4, r5, lr} movs r5, #2 _0806031C: movs r0, #8 movs r1, #2 movs r2, #2 bl sub_0805EB00 adds r4, r0, #0 cmp r4, #0 beq _08060336 bl sub_080A29BC adds r0, r4, #0 bl sub_0805E7BC _08060336: subs r5, #1 cmp r5, #0 bge _0806031C pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08060340 sub_08060340: @ 0x08060340 ldr r0, _08060350 @ =gUnk_02002A40 movs r2, #0x92 lsls r2, r2, #3 adds r1, r0, r2 ldr r0, [r0, #0x50] str r0, [r1] bx lr .align 2, 0 _08060350: .4byte gUnk_02002A40 thumb_func_start sub_08060354 sub_08060354: @ 0x08060354 push {r4, lr} ldr r0, _08060378 @ =gUnk_02002A40 movs r2, #0x92 lsls r2, r2, #3 adds r1, r0, r2 ldr r2, [r0, #0x50] ldr r0, [r1] subs r4, r2, r0 movs r0, #0x3b bl sub_0807CC30 cmp r0, #0 bne _08060380 cmp r4, #4 ble _080603B0 ldr r0, _0806037C @ =0x00008444 b _080603B2 .align 2, 0 _08060378: .4byte gUnk_02002A40 _0806037C: .4byte 0x00008444 _08060380: movs r0, #0x3c bl sub_0807CC30 cmp r0, #0 bne _08060398 cmp r4, #9 ble _080603B0 ldr r0, _08060394 @ =0x00008444 b _080603B2 .align 2, 0 _08060394: .4byte 0x00008444 _08060398: movs r0, #0x3d bl sub_0807CC30 cmp r0, #0 bne _080603B0 cmp r4, #0xe ble _080603B0 ldr r0, _080603AC @ =0x00008444 b _080603B2 .align 2, 0 _080603AC: .4byte 0x00008444 _080603B0: movs r0, #0 _080603B2: pop {r4, pc} thumb_func_start sub_080603B4 sub_080603B4: @ 0x080603B4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080603F4 ldr r1, _080603F0 @ =gUnk_0810A348 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _080603FA ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 movs r1, #6 bl sub_08004260 b _080603FA .align 2, 0 _080603F0: .4byte gUnk_0810A348 _080603F4: adds r0, r4, #0 bl sub_08004274 _080603FA: pop {r4, pc} thumb_func_start sub_080603FC sub_080603FC: @ 0x080603FC push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08060412 adds r0, r2, #0 bl sub_08060528 b _08060422 _08060412: ldr r0, _08060424 @ =gUnk_0810AA24 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 _08060422: pop {pc} .align 2, 0 _08060424: .4byte gUnk_0810AA24 thumb_func_start sub_08060428 sub_08060428: @ 0x08060428 push {r4, lr} adds r4, r0, #0 movs r0, #0x5a strb r0, [r4, #0xe] movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r4, #0x24] ldrb r0, [r4, #0xb] cmp r0, #0 beq _08060444 bl sub_0804B128 adds r1, r0, #0 b _08060446 _08060444: movs r1, #0 _08060446: adds r0, r4, #0 movs r2, #0 bl sub_0806EE04 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #4 bl sub_080042AC pop {r4, pc} thumb_func_start sub_0806045C sub_0806045C: @ 0x0806045C push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_080604DC adds r0, r4, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08060488 cmp r0, #1 blt _08060488 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0 bl sub_08056378 b _080604C0 _08060488: adds r0, r4, #0 adds r0, #0x3e ldrb r1, [r0] ldrb r0, [r4, #0x14] cmp r1, r0 beq _0806049E strb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_080042AC _0806049E: adds r0, r4, #0 movs r1, #0x18 movs r2, #0x18 bl sub_0806ED9C movs r1, #0 cmp r0, #0 blt _080604B6 ldrb r2, [r4, #0x14] cmp r0, r2 bne _080604B6 movs r1, #1 _080604B6: cmp r1, #0 bne _080604C0 adds r0, r4, #0 bl sub_0806EE20 _080604C0: adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} thumb_func_start sub_080604C8 sub_080604C8: @ 0x080604C8 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_080604DC movs r0, #1 strb r0, [r4, #0xc] pop {r4, pc} thumb_func_start sub_080604DC sub_080604DC: @ 0x080604DC push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0x18] lsls r0, r0, #0x1e lsrs r4, r0, #0x1e cmp r4, #1 bne _08060524 adds r0, r5, #0 bl sub_080040A8 cmp r0, #0 beq _08060524 adds r2, r5, #0 adds r2, #0x5a ldrb r1, [r2] ands r4, r1 cmp r4, #0 beq _08060524 movs r0, #0xfe ands r0, r1 strb r0, [r2] adds r0, r5, #0 movs r1, #0x11 movs r2, #0x40 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _08060524 ldrh r0, [r1, #0x32] adds r0, #1 strh r0, [r1, #0x32] adds r0, r1, #0 movs r1, #3 bl sub_0805E3A0 _08060524: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08060528 sub_08060528: @ 0x08060528 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r3, [r4, #0xc] cmp r3, #1 beq _08060582 cmp r3, #1 bgt _0806053C cmp r3, #0 beq _08060546 b _080605EC _0806053C: cmp r3, #2 beq _080605F6 cmp r3, #3 beq _08060618 b _080605EC _08060546: movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 adds r0, #0x68 strb r3, [r0] adds r0, #1 strb r3, [r0] adds r5, r4, #0 adds r5, #0x6a movs r0, #0 strh r3, [r5] adds r6, r4, #0 adds r6, #0x6d strb r0, [r6] adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x6c strb r0, [r1] adds r0, r4, #0 bl sub_0807DD50 b _08060634 _08060582: adds r2, r4, #0 adds r2, #0x39 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 bne _080605B8 movs r1, #0 movs r0, #3 strb r0, [r4, #0xc] strb r1, [r2] adds r0, r4, #0 bl sub_0806F118 ldr r1, _080605B4 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC b _080605EC .align 2, 0 _080605B4: .4byte gUnk_03001160 _080605B8: cmp r0, #0 beq _080605E4 movs r1, #0 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r2] adds r0, r4, #0 bl sub_080606D8 ldr r1, _080605E0 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC b _080605EC .align 2, 0 _080605E0: .4byte gUnk_03001160 _080605E4: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 _080605EC: adds r5, r4, #0 adds r5, #0x6a adds r6, r4, #0 adds r6, #0x6d b _08060634 _080605F6: adds r0, r4, #0 bl sub_080042B8 ldr r0, _08060614 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 adds r5, r4, #0 adds r5, #0x6a adds r6, r4, #0 adds r6, #0x6d cmp r0, #0 bne _08060634 b _08060630 .align 2, 0 _08060614: .4byte gUnk_02000050 _08060618: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_0806F148 adds r5, r4, #0 adds r5, #0x6a adds r6, r4, #0 adds r6, #0x6d cmp r0, #0 beq _08060634 _08060630: movs r0, #1 strb r0, [r4, #0xc] _08060634: adds r0, r4, #0 bl sub_080604DC adds r1, r5, #0 ldrh r3, [r1] movs r0, #0 ldrsh r2, [r1, r0] cmp r2, #0 ble _08060670 ldr r0, _08060668 @ =0x0000012B cmp r2, r0 ble _0806066C movs r0, #0 strh r0, [r1] movs r0, #0x80 lsls r0, r0, #0xa str r0, [r4, #0x20] movs r0, #1 strb r0, [r6] adds r0, r4, #0 bl sub_080788E0 movs r0, #0x7c bl sub_08004488 b _08060670 .align 2, 0 _08060668: .4byte 0x0000012B _0806066C: subs r0, r3, #1 strh r0, [r5] _08060670: movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 ldrb r0, [r6] cmp r0, #0 beq _08060694 ldr r0, [r4, #0x20] cmp r0, #0 bne _08060694 ldr r0, [r4, #0x34] cmp r0, #0 bne _08060694 strb r0, [r6] adds r0, r4, #0 bl sub_080606C0 _08060694: ldr r0, [r4, #0x34] cmp r0, #0 blt _080606B4 ldr r0, _080606BC @ =gUnk_03001160 adds r0, #0x38 ldrb r1, [r0] cmp r1, #0 beq _080606AE adds r0, r4, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, r1 bne _080606B4 _080606AE: adds r0, r4, #0 bl sub_0806ED78 _080606B4: adds r0, r4, #0 bl sub_0800451C pop {r4, r5, r6, pc} .align 2, 0 _080606BC: .4byte gUnk_03001160 thumb_func_start sub_080606C0 sub_080606C0: @ 0x080606C0 push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x6c strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 pop {r4, pc} thumb_func_start sub_080606D8 sub_080606D8: @ 0x080606D8 push {lr} adds r2, r0, #0 ldr r0, _080606F8 @ =gUnk_02002A40 ldrb r0, [r0, #8] subs r0, #2 cmp r0, #0 bge _080606E8 movs r0, #0 _080606E8: lsls r1, r0, #3 ldr r0, _080606FC @ =gUnk_0810AA30 adds r1, r1, r0 adds r0, r2, #0 bl sub_0806F1AC pop {pc} .align 2, 0 _080606F8: .4byte gUnk_02002A40 _080606FC: .4byte gUnk_0810AA30 thumb_func_start sub_08060700 sub_08060700: @ 0x08060700 push {r4, r5, lr} ldr r3, _0806074C @ =gUnk_0810A918 adds r2, r0, #0 adds r2, #0x68 ldrb r2, [r2] lsls r2, r2, #0x18 asrs r2, r2, #0x18 lsls r2, r2, #2 adds r2, r2, r3 ldr r2, [r2] adds r3, r0, #0 adds r3, #0x69 ldrb r3, [r3] lsls r3, r3, #0x18 asrs r3, r3, #0x18 adds r2, r2, r3 movs r3, #0 ldrsb r3, [r2, r3] lsls r3, r3, #2 ldr r2, _08060750 @ =gUnk_0810A66C adds r3, r3, r2 ldr r4, _08060754 @ =gUnk_03000BF0 movs r5, #0 ldrsh r2, [r3, r5] ldrh r5, [r4, #6] adds r2, r2, r5 movs r5, #2 ldrsh r3, [r3, r5] ldrh r4, [r4, #8] adds r3, r3, r4 bl sub_0807DEDC ldr r2, _08060758 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, r5, pc} .align 2, 0 _0806074C: .4byte gUnk_0810A918 _08060750: .4byte gUnk_0810A66C _08060754: .4byte gUnk_03000BF0 _08060758: .4byte gUnk_02033280 thumb_func_start sub_0806075C sub_0806075C: @ 0x0806075C adds r2, r0, #0 adds r2, #0x68 movs r1, #0xb strb r1, [r2] adds r0, #0x69 movs r1, #0xff strb r1, [r0] bx lr thumb_func_start sub_0806076C sub_0806076C: @ 0x0806076C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 adds r7, r0, #0 mov sb, r1 ldr r0, [r7, #0x34] cmp r0, #0 bge _08060790 ldr r1, _0806078C @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] b _080608D8 .align 2, 0 _0806078C: .4byte gUnk_02033280 _08060790: adds r4, r7, #0 adds r4, #0x69 ldrb r0, [r4] adds r0, #1 strb r0, [r4] adds r5, r7, #0 adds r5, #0x38 movs r0, #1 strb r0, [r5] adds r0, r7, #0 bl sub_080606C0 ldr r1, _080607DC @ =gUnk_0810A918 adds r2, r7, #0 adds r2, #0x68 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #2 adds r0, r0, r1 ldr r6, [r0] movs r0, #0 ldrsb r0, [r4, r0] adds r6, r6, r0 mov sl, r4 mov r8, r2 _080607C2: ldrb r0, [r6] adds r0, #5 lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 bls _080607D0 b _080608D8 _080607D0: lsls r0, r0, #2 ldr r1, _080607E0 @ =_080607E4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080607DC: .4byte gUnk_0810A918 _080607E0: .4byte _080607E4 _080607E4: @ jump table .4byte _08060846 @ case 0 .4byte _08060836 @ case 1 .4byte _08060830 @ case 2 .4byte _0806082A @ case 3 .4byte _0806081E @ case 4 .4byte _080607FC @ case 5 _080607FC: adds r6, #1 movs r5, #0 ldrsb r5, [r6, r5] adds r6, #1 bl sub_08000E50 adds r1, r5, #0 bl __modsi3 adds r0, r6, r0 ldrb r0, [r0] movs r1, #0 mov r2, r8 strb r0, [r2] mov r3, sl strb r1, [r3] b _080608D8 _0806081E: adds r1, r7, #0 adds r1, #0x6a movs r0, #0x96 lsls r0, r0, #1 strh r0, [r1] b _080608CC _0806082A: movs r0, #1 strb r0, [r5] b _080608CC _08060830: movs r0, #2 strb r0, [r5] b _080608CC _08060836: movs r0, #0x1e mov r4, sb strh r0, [r4, #0x10] ldrb r1, [r7, #0x18] subs r0, #0x22 ands r0, r1 strb r0, [r7, #0x18] b _080608CC _08060846: adds r6, #1 movs r5, #0 ldrsb r5, [r6, r5] adds r6, #1 bl sub_08000E50 adds r1, r5, #0 bl __modsi3 str r0, [sp, #4] movs r2, #0 cmp r2, r5 bhs _080608B8 ldr r0, _080608C0 @ =gUnk_03000BF0 mov sb, r0 _08060864: ldr r1, [sp, #4] adds r0, r6, r1 ldrb r0, [r0] mov r3, r8 strb r0, [r3] movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 ldr r4, _080608C4 @ =gUnk_0810A918 adds r0, r0, r4 ldr r0, [r0] movs r1, #0 ldrsb r1, [r0, r1] lsls r1, r1, #2 ldr r0, _080608C8 @ =gUnk_0810A66C adds r1, r1, r0 ldrh r0, [r1] mov r3, sb ldrh r3, [r3, #6] adds r0, r0, r3 strh r0, [r7, #0x2e] ldrh r0, [r1, #2] mov r4, sb ldrh r4, [r4, #8] adds r0, r0, r4 strh r0, [r7, #0x32] adds r0, r7, #0 str r2, [sp] bl sub_080040A8 cmp r0, #0 beq _080608B8 ldr r0, [sp, #4] adds r0, #1 adds r1, r5, #0 bl __modsi3 str r0, [sp, #4] ldr r2, [sp] adds r2, #1 cmp r2, r5 blo _08060864 _080608B8: movs r0, #0 mov r1, sl strb r0, [r1] b _080608D8 .align 2, 0 _080608C0: .4byte gUnk_03000BF0 _080608C4: .4byte gUnk_0810A918 _080608C8: .4byte gUnk_0810A66C _080608CC: mov r2, sl ldrb r0, [r2] adds r0, #1 strb r0, [r2] adds r6, #1 b _080607C2 _080608D8: add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} thumb_func_start sub_080608E4 sub_080608E4: @ 0x080608E4 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r5, r1, #0 movs r0, #0 str r0, [r5, #0x14] ldr r0, [r4, #0x34] cmp r0, #0 blt _08060970 adds r0, r4, #0 adds r0, #0x38 ldrb r1, [r0] ldr r6, _08060974 @ =gUnk_03001160 cmp r1, #1 bne _0806090A adds r0, r6, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #2 beq _08060970 _0806090A: cmp r1, #2 bne _08060918 adds r0, r6, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #1 beq _08060970 _08060918: ldr r2, [r5, #4] lsls r2, r2, #4 ldrb r0, [r4, #0x14] lsrs r0, r0, #1 lsls r0, r0, #2 ldr r1, _08060978 @ =gUnk_0810AA70 adds r0, r0, r1 adds r2, r2, r0 movs r0, #0x2e ldrsh r1, [r4, r0] movs r0, #0 ldrsb r0, [r2, r0] adds r1, r1, r0 movs r7, #0x32 ldrsh r3, [r4, r7] movs r0, #1 ldrsb r0, [r2, r0] adds r3, r3, r0 movs r7, #0x2e ldrsh r0, [r6, r7] subs r1, r0, r1 movs r7, #0x32 ldrsh r0, [r6, r7] subs r3, r0, r3 movs r0, #2 ldrsb r0, [r2, r0] adds r1, r1, r0 ldrb r2, [r2, #3] lsls r2, r2, #0x18 asrs r2, r2, #0x18 adds r3, r3, r2 lsls r0, r0, #1 cmp r0, r1 bls _08060970 lsls r0, r2, #1 cmp r0, r3 bls _08060970 movs r0, #1 str r0, [r5, #0x14] adds r1, r4, #0 adds r1, #0x6a ldrh r0, [r1] adds r0, #2 strh r0, [r1] _08060970: pop {r4, r5, r6, r7, pc} .align 2, 0 _08060974: .4byte gUnk_03001160 _08060978: .4byte gUnk_0810AA70 thumb_func_start sub_0806097C sub_0806097C: @ 0x0806097C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _080609A2 adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 movs r1, #2 bl sub_080042AC b _080609A8 _080609A2: adds r0, r2, #0 bl sub_080042B8 _080609A8: pop {pc} .align 2, 0 thumb_func_start sub_080609AC sub_080609AC: @ 0x080609AC push {r4, lr} movs r0, #0x1c bl sub_0807CC30 cmp r0, #0 beq _080609E0 movs r0, #0x2e movs r1, #0 movs r2, #0 bl sub_0806ED50 adds r4, r0, #0 cmp r4, #0 beq _080609E0 ldr r0, _080609E4 @ =gUnk_03001160 adds r1, r4, #0 bl sub_0806FA24 ldrb r1, [r4, #0x10] movs r0, #0x20 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 bl sub_0806EDC4 strb r0, [r4, #0x14] _080609E0: pop {r4, pc} .align 2, 0 _080609E4: .4byte gUnk_03001160 thumb_func_start sub_080609E8 sub_080609E8: @ 0x080609E8 push {lr} ldr r2, _080609FC @ =gUnk_0810AC1C ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080609FC: .4byte gUnk_0810AC1C thumb_func_start sub_08060A00 sub_08060A00: @ 0x08060A00 push {r4, r5, lr} adds r5, r0, #0 ldr r0, _08060AD0 @ =gUnk_03003F80 ldrb r1, [r0, #2] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08060A44 ldrb r0, [r5, #0xc] cmp r0, #0 beq _08060A52 ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #4 ands r0, r1 cmp r0, #0 bne _08060A44 movs r0, #4 orrs r0, r1 strb r0, [r2] ldr r4, [r5, #0x64] ldr r3, _08060AD4 @ =gUnk_03001160 ldrh r2, [r3, #0x2e] movs r1, #0x10 rsbs r1, r1, #0 adds r0, r1, #0 ands r0, r2 adds r0, #8 strh r0, [r4, #0xa] ldr r2, [r5, #0x64] ldrh r0, [r3, #0x32] ands r1, r0 adds r1, #8 strh r1, [r2, #0xc] _08060A44: ldrb r0, [r5, #0xc] cmp r0, #0 beq _08060A52 ldrb r0, [r5, #0x18] lsls r0, r0, #0x1e cmp r0, #0 beq _08060A62 _08060A52: ldr r0, _08060AD8 @ =gUnk_0810AC2C ldrb r1, [r5, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r5, #0 bl _call_via_r1 _08060A62: ldrb r0, [r5, #0xc] cmp r0, #0 beq _08060A76 ldr r1, [r5, #0x64] ldr r2, _08060AD4 @ =gUnk_03001160 ldrh r0, [r2, #0x2e] strh r0, [r1, #2] ldr r1, [r5, #0x64] ldrh r0, [r2, #0x32] strh r0, [r1, #4] _08060A76: adds r2, r5, #0 adds r2, #0x74 ldr r4, _08060ADC @ =gUnk_03000BF0 ldrb r1, [r4, #5] ldrh r0, [r2] cmp r0, r1 beq _08060ACE strh r1, [r2] ldr r0, _08060AD4 @ =gUnk_03001160 adds r1, r5, #0 bl sub_0806FA24 movs r2, #1 movs r0, #1 strb r0, [r5, #0xc] ldrb r1, [r5, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r5, #0x18] movs r0, #0x90 lsls r0, r0, #1 strh r0, [r5, #0x24] ldrb r1, [r4, #0x10] lsls r0, r1, #1 strb r0, [r5, #0x14] lsls r1, r1, #0x19 lsrs r1, r1, #0x19 adds r0, r5, #0 bl sub_080042AC bl sub_08000E50 movs r1, #0x7f ands r0, r1 adds r0, #0x80 adds r1, r5, #0 adds r1, #0x59 strb r0, [r1] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] _08060ACE: pop {r4, r5, pc} .align 2, 0 _08060AD0: .4byte gUnk_03003F80 _08060AD4: .4byte gUnk_03001160 _08060AD8: .4byte gUnk_0810AC2C _08060ADC: .4byte gUnk_03000BF0 thumb_func_start sub_08060AE0 sub_08060AE0: @ 0x08060AE0 push {r4, lr} adds r4, r0, #0 movs r0, #0x14 bl sub_0801D8E0 adds r1, r0, #0 cmp r1, #0 beq _08060B54 str r1, [r4, #0x64] movs r0, #0x20 strb r0, [r1, #1] movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x14] movs r2, #3 adds r0, r2, #0 ands r0, r1 strb r0, [r4, #0x14] adds r1, r4, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] adds r1, #4 movs r0, #0x48 strb r0, [r1] subs r1, #1 movs r0, #0x49 strb r0, [r1] adds r0, r4, #0 adds r0, #0x3b strb r2, [r0] ldr r0, _08060B58 @ =gUnk_080FD150 str r0, [r4, #0x48] ldrb r1, [r4, #0x17] movs r0, #0xfe ands r0, r1 strb r0, [r4, #0x17] adds r1, r4, #0 adds r1, #0x6c movs r0, #0xff strb r0, [r1] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08060E70 movs r0, #5 movs r1, #2 movs r2, #0 bl sub_0806ED50 cmp r0, #0 beq _08060B54 str r4, [r0, #0x50] str r0, [r4, #0x78] _08060B54: pop {r4, pc} .align 2, 0 _08060B58: .4byte gUnk_080FD150 thumb_func_start sub_08060B5C sub_08060B5C: @ 0x08060B5C push {r4, r5, lr} adds r4, r0, #0 bl sub_08061230 cmp r0, #0 bne _08060B9E adds r0, r4, #0 bl sub_08060F80 adds r5, r0, #0 cmp r5, #0 bne _08060B98 ldr r1, _08060B94 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 ldrb r1, [r4, #0x14] lsls r1, r1, #2 subs r0, r0, r1 adds r0, #4 movs r1, #0x1f ands r0, r1 cmp r0, #8 bhi _08060B98 movs r0, #2 strb r0, [r4, #0xc] strb r5, [r4, #0xf] b _08060B9E .align 2, 0 _08060B94: .4byte gUnk_03001160 _08060B98: adds r0, r4, #0 bl sub_08060EDC _08060B9E: pop {r4, r5, pc} thumb_func_start sub_08060BA0 sub_08060BA0: @ 0x08060BA0 push {r4, r5, lr} adds r4, r0, #0 bl sub_08061230 cmp r0, #0 beq _08060BAE b _08060D74 _08060BAE: ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #4 ands r0, r1 cmp r0, #0 beq _08060C66 movs r0, #8 ands r0, r1 cmp r0, #0 beq _08060BF6 movs r0, #0xf0 lsls r0, r0, #1 strh r0, [r4, #0x24] ldrh r1, [r2, #0xe] ldrh r2, [r2, #0x10] adds r0, r4, #0 movs r3, #0xc bl sub_08061120 adds r0, r4, #0 bl sub_08061170 ldr r0, [r4, #0x64] ldrh r1, [r0, #0xe] ldrh r2, [r0, #0x10] adds r0, r4, #0 movs r3, #4 bl sub_0806FCB8 cmp r0, #0 bne _08060BEE b _08060D54 _08060BEE: ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xf7 b _08060D36 _08060BF6: ldrh r1, [r2, #0xa] ldrh r2, [r2, #0xc] adds r0, r4, #0 bl sub_08060FD0 cmp r0, #0 beq _08060C56 ldr r0, [r4, #0x64] ldrh r1, [r0, #0xa] ldrh r2, [r0, #0xc] adds r0, r4, #0 movs r3, #4 bl sub_0806FCB8 cmp r0, #0 beq _08060C38 ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] movs r0, #5 strb r0, [r4, #0xc] ldrb r0, [r5, #0x15] strb r0, [r4, #0x15] movs r0, #0xb0 lsls r0, r0, #1 strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #8 bl sub_08060E70 b _08060D54 _08060C38: movs r0, #0xf0 lsls r0, r0, #1 strh r0, [r4, #0x24] movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #0 movs r3, #0xc bl sub_08061120 adds r0, r4, #0 bl sub_08061170 b _08060D54 _08060C56: movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #0 bl sub_08061464 b _08060D54 _08060C66: ldr r5, _08060C98 @ =gUnk_03001160 movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #0 bl sub_08060FD0 cmp r0, #0 beq _08060C9C movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #0 bl sub_08061090 adds r0, r4, #0 bl sub_08061170 ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xf5 b _08060D36 .align 2, 0 _08060C98: .4byte gUnk_03001160 _08060C9C: ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #8 ands r0, r1 cmp r0, #0 beq _08060CDA movs r0, #0xf0 lsls r0, r0, #1 strh r0, [r4, #0x24] ldrh r1, [r2, #0xe] ldrh r2, [r2, #0x10] adds r0, r4, #0 movs r3, #0xc bl sub_08061120 adds r0, r4, #0 bl sub_08061170 ldr r0, [r4, #0x64] ldrh r1, [r0, #0xe] ldrh r2, [r0, #0x10] adds r0, r4, #0 movs r3, #4 bl sub_0806FCB8 cmp r0, #0 beq _08060D54 ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xf7 b _08060D36 _08060CDA: movs r0, #2 ands r0, r1 cmp r0, #0 bne _08060CF4 movs r0, #2 orrs r0, r1 strb r0, [r2] ldr r1, [r4, #0x64] ldrh r0, [r1, #2] strh r0, [r1, #6] ldr r1, [r4, #0x64] ldrh r0, [r1, #4] strh r0, [r1, #8] _08060CF4: ldr r0, [r4, #0x64] ldrh r1, [r0, #6] ldrh r2, [r0, #8] adds r0, r4, #0 bl sub_08060FD0 cmp r0, #0 beq _08060D3C movs r0, #0xf0 lsls r0, r0, #1 strh r0, [r4, #0x24] ldr r0, [r4, #0x64] ldrh r1, [r0, #6] ldrh r2, [r0, #8] adds r0, r4, #0 movs r3, #0xc bl sub_08061120 adds r0, r4, #0 bl sub_08061170 ldr r0, [r4, #0x64] ldrh r1, [r0, #6] ldrh r2, [r0, #8] adds r0, r4, #0 movs r3, #4 bl sub_0806FCB8 cmp r0, #0 beq _08060D54 ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xfd _08060D36: ands r0, r1 strb r0, [r2] b _08060D54 _08060D3C: ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xfd ands r0, r1 strb r0, [r2] movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #0 bl sub_08061464 _08060D54: adds r0, r4, #0 bl sub_08060F80 cmp r0, #0 beq _08060D74 movs r0, #1 strb r0, [r4, #0xc] ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #0 bl sub_08060E70 _08060D74: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08060D78 sub_08060D78: @ 0x08060D78 push {r4, r5, lr} adds r4, r0, #0 bl sub_08061358 adds r0, r4, #0 bl sub_08060F80 cmp r0, #0 beq _08060DCE adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] subs r0, #0x20 cmp r0, #0xf bhi _08060DC2 adds r5, r4, #0 adds r5, #0x5a ldrb r1, [r5] movs r0, #7 ands r0, r1 cmp r0, #0 beq _08060DB2 adds r1, r4, #0 adds r1, #0x59 movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_080042B8 _08060DB2: ldrb r1, [r5] movs r0, #0x18 ands r0, r1 strb r0, [r4, #0x14] adds r1, r4, #0 adds r1, #0x6c movs r0, #0xff strb r0, [r1] _08060DC2: movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0 bl sub_08060E70 _08060DCE: pop {r4, r5, pc} thumb_func_start sub_08060DD0 sub_08060DD0: @ 0x08060DD0 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 _08060DF2 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0 bl sub_08060E70 _08060DF2: pop {r4, pc} thumb_func_start sub_08060DF4 sub_08060DF4: @ 0x08060DF4 push {lr} bl sub_08061170 pop {pc} thumb_func_start sub_08060DFC sub_08060DFC: @ 0x08060DFC push {r4, lr} adds r4, r0, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_08060E94 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08060E32 movs r0, #7 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 movs r1, #0x1c bl sub_08060E70 _08060E32: pop {r4, pc} thumb_func_start sub_08060E34 sub_08060E34: @ 0x08060E34 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 _08060E68 movs r0, #2 strb r0, [r4, #0xc] ldr r1, _08060E6C @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 adds r0, #4 movs r1, #0x18 ands r0, r1 lsrs r0, r0, #2 strb r0, [r4, #0x14] adds r0, r4, #0 movs r1, #8 bl sub_08060E70 _08060E68: pop {r4, pc} .align 2, 0 _08060E6C: .4byte gUnk_03001160 thumb_func_start sub_08060E70 sub_08060E70: @ 0x08060E70 push {lr} adds r2, r0, #0 adds r3, r1, #0 ldrb r0, [r2, #0x14] lsrs r0, r0, #1 adds r1, r3, r0 adds r0, r2, #0 adds r0, #0x58 ldrb r0, [r0] cmp r1, r0 beq _08060E92 adds r0, r2, #0 adds r0, #0x6c strb r3, [r0] adds r0, r2, #0 bl sub_080042AC _08060E92: pop {pc} thumb_func_start sub_08060E94 sub_08060E94: @ 0x08060E94 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x58] ldr r1, _08060ECC @ =0x0080FF00 ands r0, r1 ldr r1, _08060ED0 @ =0x00800100 cmp r0, r1 bne _08060ED4 adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #3 bhi _08060ED4 ldrb r1, [r4, #0x14] lsrs r1, r1, #1 adds r0, r4, #0 bl sub_080042AC bl sub_08000E50 movs r1, #0x7f ands r0, r1 adds r0, #0x80 adds r1, r4, #0 adds r1, #0x59 strb r0, [r1] b _08060EDA .align 2, 0 _08060ECC: .4byte 0x0080FF00 _08060ED0: .4byte 0x00800100 _08060ED4: adds r0, r4, #0 bl sub_080042B8 _08060EDA: pop {r4, pc} thumb_func_start sub_08060EDC sub_08060EDC: @ 0x08060EDC push {r4, lr} adds r4, r0, #0 adds r0, #0x58 ldrb r0, [r0] subs r0, #0x20 cmp r0, #0xf bhi _08060F00 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _08060F00 adds r0, r4, #0 bl sub_080042B8 b _08060F7C _08060F00: ldr r1, _08060F30 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 ldrb r2, [r4, #0x14] lsls r1, r2, #2 subs r1, r0, r1 adds r0, r1, #3 movs r3, #0x1f ands r0, r3 cmp r0, #6 ble _08060F4A ands r1, r3 cmp r1, #0xf bgt _08060F34 adds r1, r2, #0 adds r1, #0x20 adds r0, r4, #0 bl sub_080042AC ldrb r0, [r4, #0x14] adds r0, #1 b _08060F42 .align 2, 0 _08060F30: .4byte gUnk_03001160 _08060F34: adds r1, r2, #0 adds r1, #0x28 adds r0, r4, #0 bl sub_080042AC ldrb r0, [r4, #0x14] subs r0, #1 _08060F42: movs r1, #7 ands r0, r1 strb r0, [r4, #0x14] b _08060F7C _08060F4A: movs r0, #1 ands r2, r0 cmp r2, #0 bne _08060F7C adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08060F76 adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] subs r0, #0x20 cmp r0, #0xf bhi _08060F76 adds r0, r4, #0 movs r1, #0 bl sub_08060E70 b _08060F7C _08060F76: adds r0, r4, #0 bl sub_08060E94 _08060F7C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08060F80 sub_08060F80: @ 0x08060F80 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _08060FC8 @ =gUnk_03001160 movs r0, #0x2e ldrsh r1, [r5, r0] movs r3, #0x32 ldrsh r2, [r5, r3] adds r0, r4, #0 bl sub_08060FD0 cmp r0, #0 beq _08060FC2 ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] movs r1, #0x2e ldrsh r0, [r5, r1] movs r2, #0x2e ldrsh r1, [r4, r2] subs r0, r0, r1 movs r3, #0x32 ldrsh r1, [r5, r3] movs r3, #0x32 ldrsh r2, [r4, r3] subs r1, r1, r2 ldr r2, [r4, #0x64] ldrb r2, [r2, #1] bl sub_0806FCD0 cmp r0, #0 bne _08060FCC _08060FC2: movs r0, #0 b _08060FCE .align 2, 0 _08060FC8: .4byte gUnk_03001160 _08060FCC: movs r0, #1 _08060FCE: pop {r4, r5, pc} thumb_func_start sub_08060FD0 sub_08060FD0: @ 0x08060FD0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 adds r4, r0, #0 mov sb, r1 mov r8, r2 movs r0, #0x2e ldrsh r7, [r4, r0] movs r1, #0x32 ldrsh r6, [r4, r1] mov r2, sb subs r0, r2, r7 mov r5, r8 subs r1, r5, r6 bl sub_080045DA lsls r7, r7, #8 lsls r6, r6, #8 ldr r3, _08061058 @ =gUnk_080C9160 lsls r1, r0, #1 adds r1, r1, r3 movs r5, #0 ldrsh r2, [r1, r5] lsls r1, r2, #1 adds r1, r1, r2 lsls r1, r1, #1 str r1, [sp] adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r3 movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 str r0, [sp, #4] adds r4, #0x38 ldrb r0, [r4] ldr r5, _0806105C @ =gUnk_0200D654 mov sl, r5 cmp r0, #2 beq _0806102E ldr r0, _08061060 @ =gUnk_02027EB4 mov sl, r0 _0806102E: adds r1, r7, #0 cmp r7, #0 bge _08061036 adds r1, #0xff _08061036: asrs r5, r1, #8 adds r2, r6, #0 cmp r6, #0 bge _08061040 adds r2, #0xff _08061040: asrs r4, r2, #8 mov r0, sl adds r1, r5, #0 adds r2, r4, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061064 movs r0, #0 b _08061084 .align 2, 0 _08061058: .4byte gUnk_080C9160 _0806105C: .4byte gUnk_0200D654 _08061060: .4byte gUnk_02027EB4 _08061064: mov r1, sb subs r0, r1, r5 adds r0, #6 cmp r0, #0xc bhi _08061078 mov r2, r8 subs r0, r2, r4 adds r0, #6 cmp r0, #0xc bls _08061082 _08061078: ldr r5, [sp] adds r7, r7, r5 ldr r0, [sp, #4] subs r6, r6, r0 b _0806102E _08061082: movs r0, #1 _08061084: add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08061090 sub_08061090: @ 0x08061090 push {r4, r5, r6, lr} adds r3, r0, #0 adds r5, r1, #0 adds r6, r2, #0 ldr r1, _080610C8 @ =gUnk_03001160 movs r0, #0x2e ldrsh r2, [r1, r0] movs r4, #0x2e ldrsh r0, [r3, r4] subs r2, r2, r0 movs r4, #0x32 ldrsh r0, [r1, r4] movs r4, #0x32 ldrsh r1, [r3, r4] subs r0, r0, r1 adds r1, r2, #0 muls r1, r2, r1 adds r2, r0, #0 muls r2, r0, r2 adds r0, r2, #0 adds r1, r1, r0 ldr r0, _080610CC @ =0x000008FF cmp r1, r0 bgt _080610D0 movs r0, #0x90 lsls r0, r0, #1 b _080610F0 .align 2, 0 _080610C8: .4byte gUnk_03001160 _080610CC: .4byte 0x000008FF _080610D0: ldr r0, _080610E4 @ =0x000018FF cmp r1, r0 bgt _080610EC ldr r4, _080610E8 @ =0xFFFFF700 adds r0, r1, r4 asrs r0, r0, #4 movs r1, #0x90 lsls r1, r1, #1 adds r0, r0, r1 b _080610F0 .align 2, 0 _080610E4: .4byte 0x000018FF _080610E8: .4byte 0xFFFFF700 _080610EC: movs r0, #0x88 lsls r0, r0, #2 _080610F0: strh r0, [r3, #0x24] movs r2, #0x24 ldrsh r1, [r3, r2] movs r0, #0x90 lsls r0, r0, #1 cmp r1, r0 bne _08061102 movs r4, #4 b _0806110C _08061102: ldr r0, _0806111C @ =0x0000015F movs r4, #0xc cmp r1, r0 bgt _0806110C movs r4, #8 _0806110C: adds r0, r3, #0 adds r1, r5, #0 adds r2, r6, #0 adds r3, r4, #0 bl sub_08061120 pop {r4, r5, r6, pc} .align 2, 0 _0806111C: .4byte 0x0000015F thumb_func_start sub_08061120 sub_08061120: @ 0x08061120 push {r4, r5, r6, r7, lr} adds r6, r0, #0 adds r4, r1, #0 adds r5, r2, #0 adds r7, r3, #0 movs r1, #0x2e ldrsh r0, [r6, r1] movs r2, #0x32 ldrsh r1, [r6, r2] adds r2, r4, #0 adds r3, r5, #0 bl sub_080045D4 strb r0, [r6, #0x15] adds r0, r6, #0 adds r0, #0x6c ldrb r0, [r0] cmp r7, r0 bne _08061158 ldrb r0, [r6, #0x15] ldrb r1, [r6, #0x14] lsls r1, r1, #2 subs r0, r0, r1 adds r0, #5 movs r1, #0x1f ands r0, r1 cmp r0, #0xa ble _0806116C _08061158: ldrb r0, [r6, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 asrs r0, r0, #2 strb r0, [r6, #0x14] adds r0, r6, #0 adds r1, r7, #0 bl sub_08060E70 _0806116C: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08061170 sub_08061170: @ 0x08061170 push {r4, r5, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_080AF1EC cmp r0, #0 bne _080611CA adds r0, r4, #0 bl sub_080611D4 adds r5, r0, #0 cmp r5, #0xff beq _080611C6 movs r0, #6 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_08079FD4 lsls r0, r0, #4 subs r0, #4 lsls r0, r0, #0xc str r0, [r4, #0x20] movs r1, #0x80 lsls r1, r1, #1 strh r1, [r4, #0x24] strb r5, [r4, #0x15] lsrs r1, r5, #2 strb r1, [r4, #0x14] lsrs r0, r0, #0x10 cmp r0, #0 beq _080611BE adds r0, r4, #0 movs r1, #0x14 bl sub_08060E70 b _080611C6 _080611BE: adds r0, r4, #0 movs r1, #0x18 bl sub_08060E70 _080611C6: movs r0, #0 b _080611D2 _080611CA: adds r0, r4, #0 bl sub_08016AD2 movs r0, #1 _080611D2: pop {r4, r5, pc} thumb_func_start sub_080611D4 sub_080611D4: @ 0x080611D4 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x14] movs r0, #6 ands r0, r1 ldr r1, _08061218 @ =gUnk_0810AC4C adds r0, r0, r1 movs r1, #0 ldrsb r1, [r0, r1] movs r2, #1 ldrsb r2, [r0, r2] adds r0, r4, #0 bl sub_080002B4 adds r3, r0, #0 ldr r2, _0806121C @ =gUnk_0810AC54 _080611F4: ldrb r0, [r2] cmp r0, r3 bne _08061220 ldrb r0, [r2, #1] ldrb r1, [r4, #0x14] lsrs r0, r0, #2 cmp r1, r0 bne _08061220 ldrb r0, [r4, #0xf] adds r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #7 bls _0806122A ldrb r0, [r2, #1] b _0806122C .align 2, 0 _08061218: .4byte gUnk_0810AC4C _0806121C: .4byte gUnk_0810AC54 _08061220: adds r2, #2 ldrb r0, [r2] cmp r0, #0 bne _080611F4 strb r0, [r4, #0xf] _0806122A: movs r0, #0xff _0806122C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08061230 sub_08061230: @ 0x08061230 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x64] ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 bne _08061302 adds r1, r4, #0 adds r1, #0x41 ldrb r3, [r1] movs r0, #0x80 ands r0, r3 adds r2, r1, #0 cmp r0, #0 beq _0806133A movs r0, #0x7f ands r0, r3 cmp r0, #0x1f bhi _080612E8 lsls r0, r0, #2 ldr r1, _08061264 @ =_08061268 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08061264: .4byte _08061268 _08061268: @ jump table .4byte _0806133A @ case 0 .4byte _0806133A @ case 1 .4byte _0806133A @ case 2 .4byte _0806133A @ case 3 .4byte _080612E8 @ case 4 .4byte _080612E8 @ case 5 .4byte _080612E8 @ case 6 .4byte _080612E8 @ case 7 .4byte _080612E8 @ case 8 .4byte _080612E8 @ case 9 .4byte _080612E8 @ case 10 .4byte _080612E8 @ case 11 .4byte _080612E8 @ case 12 .4byte _080612E8 @ case 13 .4byte _080612E8 @ case 14 .4byte _0806133A @ case 15 .4byte _080612E8 @ case 16 .4byte _080612E8 @ case 17 .4byte _080612E8 @ case 18 .4byte _0806133A @ case 19 .4byte _080612E8 @ case 20 .4byte _080612E8 @ case 21 .4byte _080612E8 @ case 22 .4byte _080612E8 @ case 23 .4byte _080612E8 @ case 24 .4byte _080612E8 @ case 25 .4byte _080612E8 @ case 26 .4byte _0806133A @ case 27 .4byte _080612E8 @ case 28 .4byte _080612E8 @ case 29 .4byte _0806133A @ case 30 .4byte _0806133A @ case 31 _080612E8: ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #1 orrs r0, r1 strb r0, [r2] ldrb r1, [r4, #0x14] lsrs r1, r1, #1 adds r1, #0x40 adds r0, r4, #0 bl sub_080042AC movs r0, #1 b _08061356 _08061302: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0806131A movs r0, #1 b _08061356 _0806131A: ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xfe ands r0, r1 strb r0, [r2] adds r0, r4, #0 adds r0, #0x6c ldrb r1, [r4, #0x14] lsrs r1, r1, #1 ldrb r0, [r0] adds r1, r1, r0 adds r0, r4, #0 bl sub_080042AC adds r2, r4, #0 adds r2, #0x41 _0806133A: ldrb r0, [r2] movs r1, #0x7f ands r1, r0 strb r1, [r2] adds r1, r4, #0 adds r1, #0x3d ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08061354 adds r0, r2, #1 strb r0, [r1] _08061354: movs r0, #0 _08061356: pop {r4, pc} thumb_func_start sub_08061358 sub_08061358: @ 0x08061358 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r5, [r4, #0xd] cmp r5, #1 beq _0806139C cmp r5, #1 bgt _0806136C cmp r5, #0 beq _08061376 b _08061460 _0806136C: cmp r5, #2 beq _080613D0 cmp r5, #3 beq _0806141E b _08061460 _08061376: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08061460 movs r0, #1 strb r0, [r4, #0xd] movs r0, #0xf strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0 bl sub_08060E70 b _08061460 _0806139C: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08061460 bl sub_08000E50 adds r6, r0, #0 ands r5, r6 cmp r5, #0 beq _080613FA movs r0, #2 strb r0, [r4, #0xd] ldr r3, _080613CC @ =gUnk_0810AC5D ldrb r0, [r4, #0x14] lsls r0, r0, #1 lsrs r1, r6, #4 movs r2, #3 ands r1, r2 adds r0, r0, r1 adds r0, r0, r3 b _0806143A .align 2, 0 _080613CC: .4byte gUnk_0810AC5D _080613D0: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08061460 movs r0, #0x18 ands r0, r1 lsrs r0, r0, #2 strb r0, [r4, #0x14] bl sub_08000E50 adds r1, r0, #0 movs r0, #1 ands r1, r0 cmp r1, #0 beq _08061412 _080613FA: movs r0, #3 strb r0, [r4, #0xd] movs r0, #0x18 ands r6, r0 adds r0, r6, #0 adds r0, #0x1e strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #4 bl sub_08060E70 b _08061460 _08061412: strb r1, [r4, #0xd] adds r0, r4, #0 movs r1, #0x10 bl sub_08060E70 b _08061460 _0806141E: adds r0, r4, #0 bl sub_08061170 cmp r0, #0 bne _08061448 movs r0, #2 strb r0, [r4, #0xd] ldr r2, _08061444 @ =gUnk_0810AC5D ldrb r0, [r4, #0x14] lsls r0, r0, #1 lsrs r1, r6, #4 ands r1, r5 adds r0, r0, r1 adds r0, r0, r2 _0806143A: ldrb r1, [r0] adds r0, r4, #0 bl sub_080042AC b _08061460 .align 2, 0 _08061444: .4byte gUnk_0810AC5D _08061448: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 bne _08061460 strb r0, [r4, #0xd] adds r0, r4, #0 movs r1, #0x10 bl sub_08060E70 _08061460: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08061464 sub_08061464: @ 0x08061464 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r4, r0, #0 mov r8, r1 adds r5, r2, #0 movs r0, #0x2e ldrsh r7, [r4, r0] movs r1, #0x32 ldrsh r6, [r4, r1] adds r0, r7, #0 adds r1, r6, #0 mov r2, r8 adds r3, r5, #0 bl sub_080045D4 adds r0, #2 movs r1, #0x1c ands r0, r1 lsrs r0, r0, #2 cmp r0, #7 bls _08061494 b _08061612 _08061494: lsls r0, r0, #2 ldr r1, _080614A0 @ =_080614A4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080614A0: .4byte _080614A4 _080614A4: @ jump table .4byte _080614C4 @ case 0 .4byte _080614E2 @ case 1 .4byte _08061514 @ case 2 .4byte _08061544 @ case 3 .4byte _08061566 @ case 4 .4byte _08061584 @ case 5 .4byte _080615B4 @ case 6 .4byte _080615E4 @ case 7 _080614C4: adds r0, r4, #0 adds r0, #0x6e strh r5, [r0] movs r1, #0x2e ldrsh r0, [r4, r1] cmp r0, r8 ble _08061504 adds r2, r6, #0 subs r2, #8 adds r0, r4, #0 adds r1, r7, #0 mov r3, r8 bl sub_08061630 b _08061612 _080614E2: movs r0, #0x6e adds r0, r0, r4 mov sb, r0 mov r1, r8 strh r1, [r0] adds r1, r7, #0 adds r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061720 cmp r0, #0 beq _08061500 b _08061612 _08061500: mov r0, sb strh r5, [r0] _08061504: adds r2, r6, #0 subs r2, #8 adds r0, r4, #0 adds r1, r7, #0 mov r3, r8 bl sub_080616A8 b _08061612 _08061514: adds r0, r4, #0 adds r0, #0x6e mov r1, r8 strh r1, [r0] movs r1, #0x32 ldrsh r0, [r4, r1] cmp r0, r5 ble _08061534 adds r1, r7, #0 adds r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061720 b _08061612 _08061534: adds r1, r7, #0 adds r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061798 b _08061612 _08061544: movs r0, #0x6e adds r0, r0, r4 mov sb, r0 mov r1, r8 strh r1, [r0] adds r1, r7, #0 adds r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061798 cmp r0, #0 bne _08061612 mov r0, sb strh r5, [r0] b _08061574 _08061566: adds r0, r4, #0 adds r0, #0x6e strh r5, [r0] movs r1, #0x2e ldrsh r0, [r4, r1] cmp r0, r8 bgt _080615A4 _08061574: adds r2, r6, #0 adds r2, #8 adds r0, r4, #0 adds r1, r7, #0 mov r3, r8 bl sub_08061888 b _08061612 _08061584: movs r0, #0x6e adds r0, r0, r4 mov sb, r0 mov r1, r8 strh r1, [r0] adds r1, r7, #0 subs r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061978 cmp r0, #0 bne _08061612 mov r0, sb strh r5, [r0] _080615A4: adds r2, r6, #0 adds r2, #8 adds r0, r4, #0 adds r1, r7, #0 mov r3, r8 bl sub_08061810 b _08061612 _080615B4: adds r0, r4, #0 adds r0, #0x6e mov r1, r8 strh r1, [r0] movs r1, #0x32 ldrsh r0, [r4, r1] cmp r0, r5 ble _080615D4 adds r1, r7, #0 subs r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061900 b _08061612 _080615D4: adds r1, r7, #0 subs r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061978 b _08061612 _080615E4: movs r0, #0x6e adds r0, r0, r4 mov sb, r0 mov r1, r8 strh r1, [r0] adds r1, r7, #0 subs r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061900 cmp r0, #0 bne _08061612 mov r0, sb strh r5, [r0] adds r2, r6, #0 subs r2, #8 adds r0, r4, #0 adds r1, r7, #0 mov r3, r8 bl sub_08061630 _08061612: ldr r0, [r4, #0x64] ldrb r1, [r0] movs r0, #8 ands r0, r1 lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _08061628 movs r0, #3 strb r0, [r4, #0xc] strb r1, [r4, #0xd] _08061628: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08061630 sub_08061630: @ 0x08061630 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r6, r1, #0 adds r4, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _08061650 @ =gUnk_02027EB4 cmp r0, #2 bne _0806168C ldr r7, _08061654 @ =gUnk_0200D654 b _0806168C .align 2, 0 _08061650: .4byte gUnk_02027EB4 _08061654: .4byte gUnk_0200D654 _08061658: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 mov r3, sb bl sub_08061A74 cmp r0, #0 beq _0806168A ldr r0, [r5, #0x64] strh r6, [r0, #0xe] ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 blt _0806168A movs r0, #1 b _0806169E _0806168A: subs r4, #8 _0806168C: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061658 movs r0, #0 _0806169E: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080616A8 sub_080616A8: @ 0x080616A8 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r6, r1, #0 adds r4, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _080616C8 @ =gUnk_02027EB4 cmp r0, #2 bne _08061704 ldr r7, _080616CC @ =gUnk_0200D654 b _08061704 .align 2, 0 _080616C8: .4byte gUnk_02027EB4 _080616CC: .4byte gUnk_0200D654 _080616D0: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 mov r3, sb bl sub_08061A1C cmp r0, #0 beq _08061702 ldr r0, [r5, #0x64] strh r6, [r0, #0xe] ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 blt _08061702 movs r0, #1 b _08061716 _08061702: subs r4, #8 _08061704: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _080616D0 movs r0, #0 _08061716: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08061720 sub_08061720: @ 0x08061720 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r4, r1, #0 adds r6, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _08061740 @ =gUnk_02027EB4 cmp r0, #2 bne _0806177C ldr r7, _08061744 @ =gUnk_0200D654 b _0806177C .align 2, 0 _08061740: .4byte gUnk_02027EB4 _08061744: .4byte gUnk_0200D654 _08061748: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 mov r3, sb bl sub_080619F0 cmp r0, #0 beq _0806177A ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0xe] ldr r0, [r5, #0x64] strh r6, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 bgt _0806177A movs r0, #1 b _0806178E _0806177A: adds r4, #8 _0806177C: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061748 movs r0, #0 _0806178E: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08061798 sub_08061798: @ 0x08061798 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r4, r1, #0 adds r6, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _080617B8 @ =gUnk_02027EB4 cmp r0, #2 bne _080617F4 ldr r7, _080617BC @ =gUnk_0200D654 b _080617F4 .align 2, 0 _080617B8: .4byte gUnk_02027EB4 _080617BC: .4byte gUnk_0200D654 _080617C0: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 mov r3, sb bl sub_08061A48 cmp r0, #0 beq _080617F2 ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0xe] ldr r0, [r5, #0x64] strh r6, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 bgt _080617F2 movs r0, #1 b _08061806 _080617F2: adds r4, #8 _080617F4: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _080617C0 movs r0, #0 _08061806: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08061810 sub_08061810: @ 0x08061810 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r6, r1, #0 adds r4, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _08061830 @ =gUnk_02027EB4 cmp r0, #2 bne _0806186C ldr r7, _08061834 @ =gUnk_0200D654 b _0806186C .align 2, 0 _08061830: .4byte gUnk_02027EB4 _08061834: .4byte gUnk_0200D654 _08061838: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 mov r3, sb bl sub_08061A74 cmp r0, #0 beq _0806186A ldr r0, [r5, #0x64] strh r6, [r0, #0xe] ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 bgt _0806186A movs r0, #1 b _0806187E _0806186A: adds r4, #8 _0806186C: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061838 movs r0, #0 _0806187E: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08061888 sub_08061888: @ 0x08061888 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r6, r1, #0 adds r4, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _080618A8 @ =gUnk_02027EB4 cmp r0, #2 bne _080618E4 ldr r7, _080618AC @ =gUnk_0200D654 b _080618E4 .align 2, 0 _080618A8: .4byte gUnk_02027EB4 _080618AC: .4byte gUnk_0200D654 _080618B0: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 mov r3, sb bl sub_08061A1C cmp r0, #0 beq _080618E2 ldr r0, [r5, #0x64] strh r6, [r0, #0xe] ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 bgt _080618E2 movs r0, #1 b _080618F6 _080618E2: adds r4, #8 _080618E4: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _080618B0 movs r0, #0 _080618F6: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08061900 sub_08061900: @ 0x08061900 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r4, r1, #0 adds r6, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _08061920 @ =gUnk_02027EB4 cmp r0, #2 bne _0806195C ldr r7, _08061924 @ =gUnk_0200D654 b _0806195C .align 2, 0 _08061920: .4byte gUnk_02027EB4 _08061924: .4byte gUnk_0200D654 _08061928: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 mov r3, sb bl sub_080619F0 cmp r0, #0 beq _0806195A ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0xe] ldr r0, [r5, #0x64] strh r6, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 blt _0806195A movs r0, #1 b _0806196E _0806195A: subs r4, #8 _0806195C: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061928 movs r0, #0 _0806196E: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08061978 sub_08061978: @ 0x08061978 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r4, r1, #0 adds r6, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _08061998 @ =gUnk_02027EB4 cmp r0, #2 bne _080619D4 ldr r7, _0806199C @ =gUnk_0200D654 b _080619D4 .align 2, 0 _08061998: .4byte gUnk_02027EB4 _0806199C: .4byte gUnk_0200D654 _080619A0: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 mov r3, sb bl sub_08061A48 cmp r0, #0 beq _080619D2 ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0xe] ldr r0, [r5, #0x64] strh r6, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 blt _080619D2 movs r0, #1 b _080619E6 _080619D2: subs r4, #8 _080619D4: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _080619A0 movs r0, #0 _080619E6: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080619F0 sub_080619F0: @ 0x080619F0 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r6, r1, #0 adds r4, r2, #0 adds r5, r3, #0 cmp r5, r4 bgt _08061A18 _080619FE: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061A12 movs r0, #0 b _08061A1A _08061A12: subs r4, #8 cmp r5, r4 ble _080619FE _08061A18: movs r0, #1 _08061A1A: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08061A1C sub_08061A1C: @ 0x08061A1C push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r4, r1, #0 adds r6, r2, #0 adds r5, r3, #0 cmp r5, r4 blt _08061A44 _08061A2A: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061A3E movs r0, #0 b _08061A46 _08061A3E: adds r4, #8 cmp r5, r4 bge _08061A2A _08061A44: movs r0, #1 _08061A46: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08061A48 sub_08061A48: @ 0x08061A48 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r6, r1, #0 adds r4, r2, #0 adds r5, r3, #0 cmp r5, r4 blt _08061A70 _08061A56: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061A6A movs r0, #0 b _08061A72 _08061A6A: adds r4, #8 cmp r5, r4 bge _08061A56 _08061A70: movs r0, #1 _08061A72: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08061A74 sub_08061A74: @ 0x08061A74 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r4, r1, #0 adds r6, r2, #0 adds r5, r3, #0 cmp r5, r4 bgt _08061A9C _08061A82: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061A96 movs r0, #0 b _08061A9E _08061A96: subs r4, #8 cmp r5, r4 ble _08061A82 _08061A9C: movs r0, #1 _08061A9E: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08061AA0 sub_08061AA0: @ 0x08061AA0 push {lr} bl sub_0805E780 pop {pc} thumb_func_start sub_08061AA8 sub_08061AA8: @ 0x08061AA8 push {r4, lr} adds r4, r0, #0 ldr r1, _08061AC8 @ =gUnk_0810AC70 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA24 pop {r4, pc} .align 2, 0 _08061AC8: .4byte gUnk_0810AC70 thumb_func_start sub_08061ACC sub_08061ACC: @ 0x08061ACC push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #0x20 movs r2, #0 orrs r0, r1 strb r0, [r4, #0x10] movs r0, #1 strb r0, [r4, #0xc] movs r0, #0xff strb r0, [r4, #0xd] strb r2, [r4, #0xe] ldrb r1, [r4, #0x17] movs r0, #0xfe ands r0, r1 strb r0, [r4, #0x17] adds r0, r4, #0 bl sub_08078778 adds r0, r4, #0 bl sub_08061AFC pop {r4, pc} .align 2, 0 thumb_func_start sub_08061AFC sub_08061AFC: @ 0x08061AFC push {lr} adds r1, r0, #0 movs r2, #0 ldrb r0, [r1, #0xd] cmp r0, #0 beq _08061B12 strb r2, [r1, #0xd] ldr r0, _08061B14 @ =gUnk_0810B660 ldr r0, [r0] str r0, [r1, #0x68] strb r2, [r1, #0xe] _08061B12: pop {pc} .align 2, 0 _08061B14: .4byte gUnk_0810B660 thumb_func_start sub_08061B18 sub_08061B18: @ 0x08061B18 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08061B54 cmp r0, #1 bne _08061B54 movs r0, #0 strb r0, [r1] adds r0, r4, #0 bl sub_08061AFC ldr r2, [r4, #0x68] ldrb r0, [r4, #0xe] adds r1, r0, #1 strb r1, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x17 adds r2, r2, r0 ldrh r0, [r2, #2] cmp r0, #0 bne _08061B4C strb r0, [r4, #0xe] _08061B4C: ldrh r0, [r2] adds r1, r4, #0 bl sub_08056398 _08061B54: pop {r4, pc} .align 2, 0 thumb_func_start sub_08061B58 sub_08061B58: @ 0x08061B58 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08061B6E movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_080042AC _08061B6E: ldr r0, _08061B88 @ =gUnk_030010A0 adds r0, #0x2c ldrb r0, [r0] cmp r0, #2 bne _08061B7E adds r0, r4, #0 bl sub_080042B8 _08061B7E: adds r0, r4, #0 bl sub_0806FD3C pop {r4, pc} .align 2, 0 _08061B88: .4byte gUnk_030010A0 thumb_func_start sub_08061B8C sub_08061B8C: @ 0x08061B8C push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08061BB0 ldr r0, _08061BAC @ =gUnk_0810B77C ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 b _08061BC0 .align 2, 0 _08061BAC: .4byte gUnk_0810B77C _08061BB0: ldr r0, _08061BC4 @ =gUnk_0810B774 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 _08061BC0: pop {pc} .align 2, 0 _08061BC4: .4byte gUnk_0810B774 thumb_func_start sub_08061BC8 sub_08061BC8: @ 0x08061BC8 push {r4, lr} adds r4, r0, #0 ldr r1, _08061BFC @ =gUnk_0810B6EC ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _08061BF8 movs r0, #2 strb r0, [r4, #0x14] ldrb r0, [r4, #0xa] adds r0, #1 strb r0, [r4, #0xf] ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_08061CB4 _08061BF8: pop {r4, pc} .align 2, 0 _08061BFC: .4byte gUnk_0810B6EC thumb_func_start sub_08061C00 sub_08061C00: @ 0x08061C00 push {r4, lr} adds r4, r0, #0 movs r1, #0x20 movs r2, #0x20 bl sub_0806ED9C adds r1, r0, #0 cmp r1, #0 bge _08061C18 ldrb r0, [r4, #0x14] adds r1, r0, #4 b _08061C32 _08061C18: ldrb r0, [r4, #0xf] cmp r0, #0 bne _08061C24 movs r0, #0x10 strb r0, [r4, #0xf] b _08061C32 _08061C24: subs r0, #1 strb r0, [r4, #0xf] adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] movs r1, #3 ands r1, r0 _08061C32: adds r0, r4, #0 bl sub_08061CB4 adds r0, r4, #0 bl sub_0806ED78 adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08061C58 movs r0, #0 strb r0, [r1] ldrb r0, [r4, #0xb] ldr r1, _08061C5C @ =0x00000A01 adds r0, r0, r1 bl sub_08056378 _08061C58: pop {r4, pc} .align 2, 0 _08061C5C: .4byte 0x00000A01 thumb_func_start sub_08061C60 sub_08061C60: @ 0x08061C60 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x58 ldrb r1, [r0] movs r0, #3 ands r0, r1 ldr r1, _08061CAC @ =gUnk_0810B78C adds r0, r0, r1 ldrb r1, [r0] ldr r5, _08061CB0 @ =gUnk_0810B680 ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r5 ldrb r2, [r0] adds r2, r1, r2 adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 ldrb r2, [r4, #0x1e] ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r5 ldrb r0, [r0, #1] adds r2, r2, r0 adds r0, r4, #0 movs r1, #1 bl sub_0806FF60 adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r4, #0 bl sub_0807000C pop {r4, r5, pc} .align 2, 0 _08061CAC: .4byte gUnk_0810B78C _08061CB0: .4byte gUnk_0810B680 thumb_func_start sub_08061CB4 sub_08061CB4: @ 0x08061CB4 push {r4, lr} adds r4, r0, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, r1 beq _08061CC8 adds r0, r4, #0 bl sub_08004260 b _08061CCE _08061CC8: adds r0, r4, #0 bl sub_08004274 _08061CCE: adds r2, r4, #0 adds r2, #0x59 ldrb r0, [r2] cmp r0, #0xff bne _08061CE4 ldr r0, _08061CE8 @ =gUnk_0810B680 ldrb r1, [r4, #0xa] lsls r1, r1, #2 adds r1, r1, r0 ldrb r0, [r1, #2] strb r0, [r2] _08061CE4: pop {r4, pc} .align 2, 0 _08061CE8: .4byte gUnk_0810B680 thumb_func_start sub_08061CEC sub_08061CEC: @ 0x08061CEC push {r4, lr} adds r4, r0, #0 ldr r1, _08061D38 @ =gUnk_0810B6EC ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _08061D62 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldrb r0, [r4, #0xe] strb r0, [r4, #0x14] adds r1, r4, #0 adds r1, #0x69 movs r0, #0xff strb r0, [r1] adds r0, r4, #0 bl sub_0805ACC0 adds r1, r0, #0 cmp r1, #0 bne _08061D3C ldrh r0, [r4, #0x2e] adds r1, r4, #0 adds r1, #0x6a strh r0, [r1] ldrh r1, [r4, #0x32] b _08061D44 .align 2, 0 _08061D38: .4byte gUnk_0810B6EC _08061D3C: lsrs r0, r1, #0x10 adds r2, r4, #0 adds r2, #0x6a strh r0, [r2] _08061D44: adds r0, r4, #0 adds r0, #0x6c strh r1, [r0] adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 bl sub_08061D64 _08061D62: pop {r4, pc} thumb_func_start sub_08061D64 sub_08061D64: @ 0x08061D64 push {r4, r5, lr} adds r5, r0, #0 adds r4, r5, #0 adds r4, #0x39 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #2 bne _08061DB0 movs r1, #0 movs r0, #3 strb r0, [r5, #0xc] strb r1, [r4] adds r0, r5, #0 bl sub_0806F118 adds r4, #0x1f ldrb r0, [r4] adds r1, r5, #0 adds r1, #0x69 strb r0, [r1] ldr r1, _08061DAC @ =gUnk_03001160 adds r0, r5, #0 bl sub_080045C4 bl sub_0806F5A4 ldrb r1, [r4] movs r2, #4 rsbs r2, r2, #0 ands r1, r2 adds r1, r1, r0 adds r0, r5, #0 bl sub_08004260 b _08061E18 .align 2, 0 _08061DAC: .4byte gUnk_03001160 _08061DB0: adds r0, r5, #0 movs r1, #0 bl sub_0807DDAC adds r0, r5, #0 bl sub_0807DDE4 adds r2, r5, #0 adds r2, #0x59 ldrb r0, [r2] cmp r0, #0xff bne _08061DD4 ldr r0, _08061E1C @ =gUnk_0810B680 ldrb r1, [r5, #0xa] lsls r1, r1, #2 adds r1, r1, r0 ldrb r0, [r1, #2] strb r0, [r2] _08061DD4: adds r0, r5, #0 bl sub_08004274 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 beq _08061E18 movs r1, #0 movs r0, #2 strb r0, [r5, #0xc] strb r1, [r4] adds r0, r5, #0 bl sub_08062048 adds r4, r5, #0 adds r4, #0x58 ldrb r0, [r4] adds r1, r5, #0 adds r1, #0x69 strb r0, [r1] ldr r1, _08061E20 @ =gUnk_03001160 adds r0, r5, #0 bl sub_080045C4 bl sub_0806F5A4 ldrb r1, [r4] movs r2, #4 rsbs r2, r2, #0 ands r1, r2 adds r1, r1, r0 adds r0, r5, #0 bl sub_08004260 _08061E18: pop {r4, r5, pc} .align 2, 0 _08061E1C: .4byte gUnk_0810B680 _08061E20: .4byte gUnk_03001160 thumb_func_start sub_08061E24 sub_08061E24: @ 0x08061E24 push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldr r0, _08061E4C @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08061E48 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x69 ldrb r1, [r0] adds r0, r4, #0 bl sub_08004260 _08061E48: pop {r4, pc} .align 2, 0 _08061E4C: .4byte gUnk_02000050 thumb_func_start sub_08061E50 sub_08061E50: @ 0x08061E50 push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _08061E6C movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x69 ldrb r1, [r0] adds r0, r4, #0 bl sub_08004260 _08061E6C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08061E70 sub_08061E70: @ 0x08061E70 push {lr} adds r2, r0, #0 ldrb r0, [r2, #9] cmp r0, #6 bne _08061E88 adds r0, r2, #0 adds r0, #0x68 ldrb r1, [r0] adds r0, r2, #0 bl sub_08078784 b _08061E8E _08061E88: adds r0, r2, #0 bl sub_08078778 _08061E8E: pop {pc} thumb_func_start sub_08061E90 sub_08061E90: @ 0x08061E90 push {r4, r5, r6, lr} adds r4, r0, #0 adds r5, r1, #0 ldrb r0, [r5, #0x18] cmp r0, #0 bne _08061F04 adds r0, #1 strb r0, [r5, #0x18] bl sub_08000E50 movs r1, #0x3f ands r0, r1 adds r0, #0x20 strh r0, [r5, #0x12] bl sub_08000E50 adds r1, r0, #0 movs r0, #0x18 ands r1, r0 ldrb r0, [r4, #0x15] cmp r0, #8 beq _08061ED8 cmp r0, #8 bgt _08061EC6 cmp r0, #0 beq _08061ED0 b _08061EEE _08061EC6: cmp r0, #0x10 beq _08061EE0 cmp r0, #0x18 beq _08061EE8 b _08061EEE _08061ED0: cmp r1, #0x10 bne _08061EEE movs r1, #8 b _08061EEE _08061ED8: cmp r1, #0x18 bne _08061EEE movs r1, #0x10 b _08061EEE _08061EE0: cmp r1, #0 bne _08061EEE movs r1, #0x18 b _08061EEE _08061EE8: cmp r1, #8 bne _08061EEE movs r1, #0 _08061EEE: strb r1, [r4, #0x15] adds r0, r1, #0 bl sub_0806F5B0 strb r0, [r4, #0x14] ldr r1, _08061F8C @ =gUnk_0810B74A ldrb r0, [r4, #0xa] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r4, #0x24] _08061F04: ldrb r0, [r4, #0x14] lsrs r0, r0, #1 adds r1, r0, #4 adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r1, r0 beq _08061F1A adds r0, r4, #0 bl sub_08004260 _08061F1A: adds r0, r4, #0 bl sub_080AEF88 movs r0, #0x2e ldrsh r1, [r4, r0] adds r2, r4, #0 adds r2, #0x6a movs r3, #0 ldrsh r0, [r2, r3] subs r1, r1, r0 cmp r1, #0x10 ble _08061F3C ldrh r0, [r2] adds r0, #0x10 strh r0, [r4, #0x2e] movs r0, #1 strh r0, [r5, #0x12] _08061F3C: movs r3, #0x10 rsbs r3, r3, #0 cmp r1, r3 bge _08061F4E ldrh r0, [r2] subs r0, #0x10 strh r0, [r4, #0x2e] movs r0, #1 strh r0, [r5, #0x12] _08061F4E: movs r6, #0x32 ldrsh r1, [r4, r6] adds r2, r4, #0 adds r2, #0x6c movs r6, #0 ldrsh r0, [r2, r6] subs r1, r1, r0 cmp r1, #0x10 ble _08061F6A ldrh r0, [r2] adds r0, #0x10 strh r0, [r4, #0x32] movs r0, #1 strh r0, [r5, #0x12] _08061F6A: cmp r1, r3 bge _08061F78 ldrh r0, [r2] subs r0, #0x10 strh r0, [r4, #0x32] movs r0, #1 strh r0, [r5, #0x12] _08061F78: ldrh r0, [r5, #0x12] subs r0, #1 strh r0, [r5, #0x12] lsls r0, r0, #0x10 cmp r0, #0 beq _08061F8A ldr r1, _08061F90 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _08061F8A: pop {r4, r5, r6, pc} .align 2, 0 _08061F8C: .4byte gUnk_0810B74A _08061F90: .4byte gUnk_02033280 thumb_func_start sub_08061F94 sub_08061F94: @ 0x08061F94 push {r4, lr} adds r4, r0, #0 movs r1, #0x35 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _08061FAC adds r0, r4, #0 bl sub_0806FAB0 _08061FAC: pop {r4, pc} .align 2, 0 thumb_func_start sub_08061FB0 sub_08061FB0: @ 0x08061FB0 movs r1, #0 str r1, [r0, #0x48] bx lr .align 2, 0 thumb_func_start sub_08061FB8 sub_08061FB8: @ 0x08061FB8 push {lr} ldr r2, _08061FD0 @ =gUnk_0810B748 ldr r3, [r1, #4] adds r2, r3, r2 ldrb r2, [r2] lsls r3, r3, #2 ldr r1, _08061FD4 @ =gUnk_0810B740 adds r3, r3, r1 movs r1, #1 bl sub_08078850 pop {pc} .align 2, 0 _08061FD0: .4byte gUnk_0810B748 _08061FD4: .4byte gUnk_0810B740 thumb_func_start sub_08061FD8 sub_08061FD8: @ 0x08061FD8 push {lr} ldrb r1, [r0, #0x14] lsrs r1, r1, #1 bl sub_08004260 pop {pc} thumb_func_start sub_08061FE4 sub_08061FE4: @ 0x08061FE4 push {lr} ldrb r1, [r0, #0x14] lsrs r1, r1, #1 adds r1, #4 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_08061FF4 sub_08061FF4: @ 0x08061FF4 push {lr} adds r1, r0, #0 ldr r2, _08062008 @ =gUnk_0810B790 ldrb r0, [r1, #0xa] lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] bl sub_08056398 pop {pc} .align 2, 0 _08062008: .4byte gUnk_0810B790 thumb_func_start sub_0806200C sub_0806200C: @ 0x0806200C push {r4, r5, lr} adds r5, r0, #0 movs r4, #0 movs r0, #0x29 bl sub_0807CC30 cmp r0, #0 beq _08062034 movs r0, #0x6b bl sub_0807CBD0 cmp r0, #0 beq _08062034 movs r0, #0x39 bl sub_0807CA84 movs r4, #1 cmp r0, #2 bne _08062034 movs r4, #2 _08062034: ldr r0, _08062044 @ =gUnk_0810B7BA lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 bl sub_08056398 pop {r4, r5, pc} .align 2, 0 _08062044: .4byte gUnk_0810B7BA thumb_func_start sub_08062048 sub_08062048: @ 0x08062048 push {lr} adds r3, r0, #0 ldrb r0, [r3, #9] cmp r0, #6 bne _0806207C ldr r0, _08062074 @ =gUnk_02002A40 ldrb r0, [r0, #8] subs r0, #2 cmp r0, #0 bge _0806205E movs r0, #0 _0806205E: ldrb r1, [r3, #0xa] lsls r1, r1, #6 lsls r0, r0, #3 ldr r2, _08062078 @ =gUnk_0810B7C0 adds r0, r0, r2 adds r1, r1, r0 adds r0, r3, #0 bl sub_0806F1AC b _08062084 .align 2, 0 _08062074: .4byte gUnk_02002A40 _08062078: .4byte gUnk_0810B7C0 _0806207C: movs r0, #0 adds r1, r3, #0 bl sub_08056398 _08062084: pop {pc} .align 2, 0 thumb_func_start sub_08062088 sub_08062088: @ 0x08062088 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080620BA ldr r1, _080620C4 @ =gUnk_0810B6EC ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _080620C2 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] _080620BA: adds r0, r4, #0 movs r1, #6 bl sub_08061CB4 _080620C2: pop {r4, pc} .align 2, 0 _080620C4: .4byte gUnk_0810B6EC thumb_func_start sub_080620C8 sub_080620C8: @ 0x080620C8 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _080620DE adds r0, r2, #0 bl sub_080621AC b _080620EE _080620DE: ldr r0, _080620F0 @ =gUnk_0810BE0C ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 _080620EE: pop {pc} .align 2, 0 _080620F0: .4byte gUnk_0810BE0C thumb_func_start sub_080620F4 sub_080620F4: @ 0x080620F4 push {r4, lr} adds r4, r0, #0 ldr r1, _0806212C @ =gUnk_0810BDC4 ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806212A movs r1, #0 movs r0, #4 strb r0, [r4, #0x14] adds r0, r4, #0 adds r0, #0x68 strb r1, [r0] movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_080042AC adds r0, r4, #0 bl sub_08078778 _0806212A: pop {r4, pc} .align 2, 0 _0806212C: .4byte gUnk_0810BDC4 thumb_func_start sub_08062130 sub_08062130: @ 0x08062130 push {r4, lr} adds r4, r0, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08062152 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0806EDC4 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC _08062152: ldrb r0, [r4, #0xf] adds r1, r0, #1 strb r1, [r4, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x78 bls _08062184 movs r0, #0 strb r0, [r4, #0xf] ldrb r0, [r4, #0xe] adds r1, r0, #1 movs r0, #7 ands r1, r0 strb r1, [r4, #0xe] ldrb r0, [r4, #0xa] cmp r0, #6 bne _0806217A adds r0, r1, #0 adds r0, #0x10 strb r0, [r4, #0xe] _0806217A: ldrb r1, [r4, #0xe] adds r0, r4, #0 bl sub_080042AC b _0806218A _08062184: adds r0, r4, #0 bl sub_080042B8 _0806218A: adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} .align 2, 0 thumb_func_start sub_08062194 sub_08062194: @ 0x08062194 push {r4, lr} adds r4, r0, #0 movs r0, #0 bl sub_08056378 movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] adds r4, #0x39 strb r1, [r4] pop {r4, pc} .align 2, 0 thumb_func_start sub_080621AC sub_080621AC: @ 0x080621AC push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r5, [r4, #0xc] cmp r5, #1 beq _08062234 cmp r5, #1 bgt _080621C0 cmp r5, #0 beq _080621CE b _080622F2 _080621C0: cmp r5, #2 bne _080621C6 b _080622CC _080621C6: cmp r5, #3 bne _080621CC b _080622E4 _080621CC: b _080622F2 _080621CE: ldr r1, _0806221C @ =gUnk_0810BDC4 ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 bne _080621E4 b _080622F2 _080621E4: movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xe] strb r0, [r4, #0x14] strb r5, [r4, #0xe] adds r0, r4, #0 adds r0, #0x68 strb r5, [r0] adds r0, #1 strb r5, [r0] adds r1, r4, #0 adds r1, #0x6b movs r0, #0xff strb r0, [r1] adds r0, r4, #0 bl sub_0805ACC0 adds r2, r0, #0 cmp r2, #0 bne _08062220 ldrh r0, [r4, #0x2e] adds r1, r4, #0 adds r1, #0x6c strh r0, [r1] ldrh r0, [r4, #0x32] adds r1, #2 strh r0, [r1] b _0806222C .align 2, 0 _0806221C: .4byte gUnk_0810BDC4 _08062220: lsrs r1, r2, #0x10 adds r0, r4, #0 adds r0, #0x6c strh r1, [r0] adds r0, #2 strh r2, [r0] _0806222C: adds r0, r4, #0 bl sub_0807DD50 b _080622F2 _08062234: adds r5, r4, #0 adds r5, #0x39 movs r1, #0 ldrsb r1, [r5, r1] cmp r1, #2 bne _08062252 movs r1, #0 movs r0, #3 strb r0, [r4, #0xc] strb r1, [r5] adds r0, r4, #0 bl sub_0806F118 adds r5, #0x1f b _0806229A _08062252: adds r0, r4, #0 adds r0, #0x68 movs r6, #0 ldrsb r6, [r0, r6] cmp r6, #0 beq _08062274 cmp r1, #0 beq _0806226C movs r1, #0 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r5] b _0806228A _0806226C: adds r0, r4, #0 bl sub_080622F4 b _080622F2 _08062274: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _080622F2 movs r0, #2 strb r0, [r4, #0xc] strb r6, [r5] _0806228A: adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] adds r0, r4, #0 bl sub_0806265C adds r5, r4, #0 adds r5, #0x58 _0806229A: ldrb r0, [r5] adds r1, r4, #0 adds r1, #0x6b strb r0, [r1] ldrb r0, [r5] cmp r0, #7 bhi _080622F2 ldr r1, _080622C8 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 ldrb r1, [r5] movs r2, #4 rsbs r2, r2, #0 ands r1, r2 adds r1, r1, r0 adds r0, r4, #0 bl sub_08004260 b _080622F2 .align 2, 0 _080622C8: .4byte gUnk_03001160 _080622CC: adds r0, r4, #0 bl sub_08004274 ldr r0, _080622E0 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _080622F2 b _080622EE .align 2, 0 _080622E0: .4byte gUnk_02000050 _080622E4: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _080622F2 _080622EE: movs r0, #1 strb r0, [r4, #0xc] _080622F2: pop {r4, r5, r6, pc} thumb_func_start sub_080622F4 sub_080622F4: @ 0x080622F4 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r7, r0, #0 ldr r0, _0806239C @ =gUnk_03001160 mov r8, r0 ldrh r1, [r0, #0x2e] ldr r3, _080623A0 @ =0xFFFF0000 adds r0, r3, #0 ands r0, r5 orrs r0, r1 mov r2, r8 ldrh r1, [r2, #0x32] lsls r1, r1, #0x10 ldr r2, _080623A4 @ =0x0000FFFF ands r0, r2 adds r5, r0, #0 orrs r5, r1 mov r1, r8 ldrh r0, [r1, #0x36] ands r3, r6 orrs r3, r0 ldr r0, _080623A8 @ =gUnk_03003F80 adds r0, #0xa8 ldrb r0, [r0] lsls r0, r0, #0x10 ldr r2, _080623AC @ =0xFF00FFFF ands r2, r3 orrs r2, r0 ldrb r1, [r1, #0x14] movs r0, #0x3f ands r1, r0 lsls r1, r1, #0x18 ldr r0, _080623B0 @ =0xC0FFFFFF ands r0, r2 orrs r0, r1 mov r1, r8 adds r1, #0x38 ldrb r1, [r1] lsls r1, r1, #0x1e ldr r2, _080623B4 @ =0x3FFFFFFF ands r0, r2 adds r6, r0, #0 orrs r6, r1 ldr r4, [r7, #0x64] ldrb r0, [r4, #6] cmp r0, #0x16 bne _080623BE lsrs r0, r6, #0x10 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x16 beq _080623BE movs r2, #0x2e ldrsh r1, [r7, r2] mov r3, r8 movs r2, #0x2e ldrsh r0, [r3, r2] subs r2, r1, r0 movs r0, #0x32 ldrsh r3, [r7, r0] mov sb, r3 mov r1, r8 movs r3, #0x32 ldrsh r0, [r1, r3] mov r3, sb subs r1, r3, r0 cmp r2, #0 bge _08062382 rsbs r2, r2, #0 _08062382: cmp r1, #0 bge _08062388 rsbs r1, r1, #0 _08062388: cmp r2, #0x78 bgt _08062390 cmp r1, #0x50 ble _080623B8 _08062390: adds r1, r7, #0 adds r1, #0x68 movs r0, #0 strb r0, [r1] b _080624F8 .align 2, 0 _0806239C: .4byte gUnk_03001160 _080623A0: .4byte 0xFFFF0000 _080623A4: .4byte 0x0000FFFF _080623A8: .4byte gUnk_03003F80 _080623AC: .4byte 0xFF00FFFF _080623B0: .4byte 0xC0FFFFFF _080623B4: .4byte 0x3FFFFFFF _080623B8: adds r0, r7, #0 bl sub_0806252C _080623BE: movs r0, #0 mov sb, r0 ldr r0, [r4] cmp r5, r0 bne _080623CE ldr r0, [r4, #4] cmp r6, r0 beq _08062410 _080623CE: ldr r4, [r7, #0x64] adds r4, #0x90 movs r1, #0x69 adds r1, r1, r7 mov r8, r1 adds r3, r7, #0 adds r3, #0x38 movs r2, #0x58 adds r2, r2, r7 mov ip, r2 movs r2, #0x12 _080623E4: ldr r0, [r4] ldr r1, [r4, #4] str r0, [r4, #8] str r1, [r4, #0xc] subs r4, #8 subs r2, #1 cmp r2, #0 bge _080623E4 ldr r4, [r7, #0x64] str r5, [r4] str r6, [r4, #4] movs r0, #4 mov sb, r0 mov r2, r8 ldrb r1, [r2] movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 ble _08062484 subs r0, r1, #1 strb r0, [r2] b _08062484 _08062410: adds r4, #0x98 movs r3, #4 ldrsh r0, [r4, r3] cmp r0, #0 bge _08062442 ldr r4, [r7, #0x64] adds r4, #0x90 movs r0, #0x69 adds r0, r0, r7 mov r8, r0 adds r3, r7, #0 adds r3, #0x38 movs r1, #0x58 adds r1, r1, r7 mov ip, r1 movs r2, #0x12 _08062430: ldr r0, [r4] ldr r1, [r4, #4] str r0, [r4, #8] str r1, [r4, #0xc] subs r4, #8 subs r2, #1 cmp r2, #0 bge _08062430 b _08062480 _08062442: ldr r1, _080624E8 @ =gUnk_03001160 movs r3, #0x2e ldrsh r0, [r1, r3] movs r2, #0x32 ldrsh r1, [r1, r2] ldrh r2, [r4] ldrh r3, [r4, #2] bl sub_080041E8 lsrs r0, r0, #4 movs r3, #0x69 adds r3, r3, r7 mov r8, r3 adds r3, r7, #0 adds r3, #0x38 movs r1, #0x58 adds r1, r1, r7 mov ip, r1 cmp r0, #0x18 ble _08062484 ldr r4, [r7, #0x64] adds r4, #0x90 movs r2, #0x12 _08062470: ldr r0, [r4] ldr r1, [r4, #4] str r0, [r4, #8] str r1, [r4, #0xc] subs r4, #8 subs r2, #1 cmp r2, #0 bge _08062470 _08062480: movs r2, #4 mov sb, r2 _08062484: ldr r4, [r7, #0x64] adds r4, #0x98 ldrh r0, [r4] strh r0, [r7, #0x2e] ldrh r0, [r4, #2] strh r0, [r7, #0x32] ldrh r0, [r4, #4] strh r0, [r7, #0x36] ldrb r0, [r4, #7] lsls r0, r0, #0x1a lsrs r0, r0, #0x1a strb r0, [r7, #0x14] ldrb r0, [r4, #7] lsrs r0, r0, #6 strb r0, [r3] mov r1, r8 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _080624B2 subs r0, r2, #1 strb r0, [r1] _080624B2: mov r2, sb ldrb r0, [r7, #0x14] lsrs r0, r0, #1 add sb, r0 ldrb r0, [r7, #0xa] cmp r0, #6 bne _080624C4 movs r3, #0x10 add sb, r3 _080624C4: mov r0, ip ldrb r0, [r0] cmp sb, r0 beq _080624EC cmp r2, #0 bne _080624D8 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _080624EC _080624D8: adds r0, r7, #0 mov r1, sb bl sub_080042AC movs r0, #0x1e mov r1, r8 strb r0, [r1] b _080624F2 .align 2, 0 _080624E8: .4byte gUnk_03001160 _080624EC: adds r0, r7, #0 bl sub_080042B8 _080624F2: adds r0, r7, #0 bl sub_0800451C _080624F8: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08062500 sub_08062500: @ 0x08062500 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0xa0 bl sub_0801D8E0 str r0, [r5, #0x64] cmp r0, #0 beq _08062528 adds r0, r5, #0 adds r0, #0x68 movs r4, #0 movs r1, #1 strb r1, [r0] adds r0, r5, #0 bl sub_080788E0 str r4, [r5, #0x48] adds r0, r5, #0 bl sub_0806252C _08062528: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0806252C sub_0806252C: @ 0x0806252C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r7, r0, #0 ldr r4, _08062618 @ =gUnk_03001160 ldrh r1, [r4, #0x2e] ldr r3, _0806261C @ =0xFFFF0000 adds r0, r3, #0 ands r0, r5 orrs r0, r1 ldrh r1, [r4, #0x32] lsls r1, r1, #0x10 ldr r2, _08062620 @ =0x0000FFFF ands r0, r2 adds r5, r0, #0 orrs r5, r1 ldrh r0, [r4, #0x36] ands r3, r6 orrs r3, r0 ldr r0, _08062624 @ =gUnk_03003F80 adds r0, #0xa8 ldrb r0, [r0] lsls r0, r0, #0x10 ldr r2, _08062628 @ =0xFF00FFFF ands r2, r3 orrs r2, r0 ldrb r1, [r4, #0x14] movs r0, #0x3f ands r1, r0 lsls r1, r1, #0x18 ldr r0, _0806262C @ =0xC0FFFFFF ands r0, r2 orrs r0, r1 adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] lsls r1, r1, #0x1e ldr r2, _08062630 @ =0x3FFFFFFF ands r0, r2 adds r6, r0, #0 orrs r6, r1 movs r0, #0x2e ldrsh r1, [r4, r0] movs r2, #0x2e ldrsh r0, [r7, r2] subs r1, r1, r0 mov sl, r1 movs r0, #0x32 ldrsh r1, [r4, r0] movs r2, #0x32 ldrsh r0, [r7, r2] subs r1, r1, r0 mov r8, r1 mov r1, sl lsls r0, r1, #0x10 asrs r0, r0, #0x10 movs r1, #0x14 bl sub_0806FA04 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov sl, r0 mov r2, r8 lsls r0, r2, #0x10 asrs r0, r0, #0x10 movs r1, #0x14 bl sub_0806FA04 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r8, r0 ldr r3, [r7, #0x64] movs r0, #0 mov sb, r0 mov ip, r0 movs r4, #0x13 _080625C8: mov r1, ip asrs r0, r1, #8 subs r0, r5, r0 strh r0, [r3] lsrs r0, r5, #0x10 mov r2, sb asrs r1, r2, #8 subs r0, r0, r1 strh r0, [r3, #2] strh r6, [r3, #4] lsrs r0, r6, #0x10 strb r0, [r3, #6] ldrb r0, [r7, #0x14] movs r1, #0x3f ands r1, r0 ldrb r2, [r3, #7] movs r0, #0x40 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3, #7] adds r1, r7, #0 adds r1, #0x38 ldrb r1, [r1] lsls r1, r1, #6 movs r2, #0x3f ands r0, r2 orrs r0, r1 strb r0, [r3, #7] adds r3, #8 add sb, r8 add ip, sl subs r4, #1 cmp r4, #0 bge _080625C8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _08062618: .4byte gUnk_03001160 _0806261C: .4byte 0xFFFF0000 _08062620: .4byte 0x0000FFFF _08062624: .4byte gUnk_03003F80 _08062628: .4byte 0xFF00FFFF _0806262C: .4byte 0xC0FFFFFF _08062630: .4byte 0x3FFFFFFF thumb_func_start sub_08062634 sub_08062634: @ 0x08062634 push {r4, r5, lr} adds r5, r0, #0 ldrb r4, [r5, #0xb] bl sub_08000E50 movs r1, #1 ands r1, r0 ldr r0, _08062658 @ =gUnk_0810BDE8 lsls r1, r1, #1 lsls r4, r4, #2 adds r1, r1, r4 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 bl sub_08056398 pop {r4, r5, pc} .align 2, 0 _08062658: .4byte gUnk_0810BDE8 thumb_func_start sub_0806265C sub_0806265C: @ 0x0806265C push {lr} adds r2, r0, #0 ldr r3, _08062674 @ =gUnk_02002A40 ldrb r0, [r3, #8] cmp r0, #0 bne _08062678 movs r0, #0 adds r1, r2, #0 bl sub_08056398 b _08062690 .align 2, 0 _08062674: .4byte gUnk_02002A40 _08062678: ldrb r0, [r2, #0xa] lsls r1, r0, #3 adds r1, r1, r0 lsls r1, r1, #3 ldr r0, _08062694 @ =gUnk_0810BE10 adds r1, r1, r0 ldrb r0, [r3, #8] lsls r0, r0, #3 adds r1, r1, r0 adds r0, r2, #0 bl sub_0806F1AC _08062690: pop {pc} .align 2, 0 _08062694: .4byte gUnk_0810BE10 thumb_func_start sub_08062698 sub_08062698: @ 0x08062698 push {r4, lr} adds r4, r0, #0 bl sub_08000E50 movs r1, #0x3f ands r0, r1 adds r0, #0xc0 strh r0, [r4, #0x24] pop {r4, pc} .align 2, 0 thumb_func_start sub_080626AC sub_080626AC: @ 0x080626AC push {r4, lr} adds r4, r0, #0 bl sub_08000E50 movs r1, #0x1f ands r0, r1 adds r0, #0x40 strb r0, [r4, #0xe] pop {r4, pc} .align 2, 0 thumb_func_start sub_080626C0 sub_080626C0: @ 0x080626C0 push {lr} adds r2, r0, #0 movs r0, #0 str r0, [r1, #0x14] ldrb r0, [r2, #0xe] cmp r0, #0 beq _080626DC subs r0, #1 strb r0, [r2, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080626DC movs r0, #1 str r0, [r1, #0x14] _080626DC: pop {pc} .align 2, 0 thumb_func_start sub_080626E0 sub_080626E0: @ 0x080626E0 push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 ldrb r0, [r4, #0x18] cmp r0, #0 bne _0806270E adds r0, #1 strb r0, [r4, #0x18] movs r0, #0xa strb r0, [r4, #0x19] ldr r0, [r4, #8] movs r1, #2 orrs r0, r1 str r0, [r4, #8] ldrh r2, [r4, #4] ldr r1, _08062778 @ =gUnk_03000BF0 ldrh r0, [r4, #6] ldrh r3, [r1, #6] adds r0, r0, r3 strh r0, [r4, #0x1e] ldrh r0, [r1, #8] adds r0, r0, r2 strh r0, [r4, #0x22] _0806270E: ldrb r0, [r4, #0x19] subs r0, #1 strb r0, [r4, #0x19] lsls r0, r0, #0x18 cmp r0, #0 bne _0806274A movs r0, #0xa strb r0, [r4, #0x19] movs r1, #0x1e ldrsh r0, [r4, r1] movs r2, #0x2e ldrsh r1, [r5, r2] subs r0, r0, r1 movs r3, #0x22 ldrsh r1, [r4, r3] movs r3, #0x32 ldrsh r2, [r5, r3] subs r1, r1, r2 bl sub_080045DA strb r0, [r5, #0x15] bl sub_08000E50 movs r1, #0xb bl __modsi3 ldrb r1, [r5, #0x15] adds r1, r1, r0 subs r1, #5 strb r1, [r5, #0x15] _0806274A: movs r0, #0x24 ldrsh r1, [r5, r0] ldrb r2, [r5, #0x15] adds r0, r5, #0 bl sub_0806F62C movs r2, #0x2e ldrsh r1, [r5, r2] movs r3, #0x1e ldrsh r0, [r4, r3] subs r1, r1, r0 lsls r1, r1, #8 ldrh r0, [r5, #0x24] lsls r0, r0, #0x10 asrs r0, r0, #0x11 adds r1, r1, r0 movs r2, #0x24 ldrsh r0, [r5, r2] cmp r1, r0 bhi _0806277C ldrh r0, [r4, #0x1e] strh r0, [r5, #0x2e] b _08062782 .align 2, 0 _08062778: .4byte gUnk_03000BF0 _0806277C: ldr r1, _08062784 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _08062782: pop {r4, r5, pc} .align 2, 0 _08062784: .4byte gUnk_02033280 thumb_func_start sub_08062788 sub_08062788: @ 0x08062788 push {r4, lr} ldr r4, _080627CC @ =0x00004072 ldr r1, _080627D0 @ =0x0000060B adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _080627D4 @ =0x0000060C adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _080627D8 @ =0x0000060D adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _080627DC @ =0x0000064B adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _080627E0 @ =0x0000064C adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _080627E4 @ =0x0000064D adds r0, r4, #0 movs r2, #1 bl sub_0800015E pop {r4, pc} .align 2, 0 _080627CC: .4byte 0x00004072 _080627D0: .4byte 0x0000060B _080627D4: .4byte 0x0000060C _080627D8: .4byte 0x0000060D _080627DC: .4byte 0x0000064B _080627E0: .4byte 0x0000064C _080627E4: .4byte 0x0000064D thumb_func_start sub_080627E8 sub_080627E8: @ 0x080627E8 push {lr} ldr r0, _0806281C @ =0x0000060B movs r1, #1 bl sub_0807BA8C ldr r0, _08062820 @ =0x0000060C movs r1, #1 bl sub_0807BA8C ldr r0, _08062824 @ =0x0000060D movs r1, #1 bl sub_0807BA8C ldr r0, _08062828 @ =0x0000064B movs r1, #1 bl sub_0807BA8C ldr r0, _0806282C @ =0x0000064C movs r1, #1 bl sub_0807BA8C ldr r0, _08062830 @ =0x0000064D movs r1, #1 bl sub_0807BA8C pop {pc} .align 2, 0 _0806281C: .4byte 0x0000060B _08062820: .4byte 0x0000060C _08062824: .4byte 0x0000060D _08062828: .4byte 0x0000064B _0806282C: .4byte 0x0000064C _08062830: .4byte 0x0000064D thumb_func_start sub_08062834 sub_08062834: @ 0x08062834 push {r4, r5, r6, r7, lr} adds r5, r0, #0 ldrb r4, [r5, #0xa] lsls r0, r4, #2 mov ip, r0 ldr r2, _08062868 @ =gUnk_0810C0A0 add r2, ip adds r0, r5, #0 adds r0, #0x5a ldrb r3, [r0] movs r1, #0x1f adds r0, r1, #0 ands r0, r3 ldrb r3, [r2] adds r6, r0, r3 ldrb r0, [r5, #0x1e] ands r1, r0 ldrb r2, [r2, #1] adds r7, r1, r2 cmp r4, #8 bhi _08062946 ldr r0, _0806286C @ =_08062870 add r0, ip ldr r0, [r0] mov pc, r0 .align 2, 0 _08062868: .4byte gUnk_0810C0A0 _0806286C: .4byte _08062870 @ jump table _08062870: .4byte _08062894 @ case 0 .4byte _08062894 @ case 1 .4byte _08062894 @ case 2 .4byte _08062894 @ case 3 .4byte _08062894 @ case 4 .4byte _08062894 @ case 5 .4byte _080628D8 @ case 6 .4byte _08062922 @ case 7 .4byte _08062922 @ case 8 _08062894: adds r0, r5, #0 adds r0, #0x5b ldrb r1, [r0] movs r0, #0x30 ands r0, r1 lsrs r4, r0, #4 cmp r4, #0 beq _080628A6 adds r4, #0x50 _080628A6: subs r4, #1 adds r0, r5, #0 movs r1, #0 adds r2, r6, #0 bl sub_0806FF60 adds r0, r5, #0 movs r1, #1 adds r2, r7, #0 bl sub_0806FF60 adds r0, r5, #0 movs r1, #2 adds r2, r4, #0 bl sub_0806FF60 adds r0, r5, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r5, #0 movs r1, #1 movs r2, #2 b _08062916 _080628D8: adds r0, r5, #0 adds r0, #0x5b ldrb r0, [r0] movs r2, #0xf ands r2, r0 cmp r2, #0 beq _080628E8 adds r2, #0x93 _080628E8: subs r2, #1 adds r0, r5, #0 movs r1, #0 bl sub_0806FF60 adds r0, r5, #0 movs r1, #1 adds r2, r6, #0 bl sub_0806FF60 adds r0, r5, #0 movs r1, #2 adds r2, r7, #0 bl sub_0806FF60 adds r0, r5, #0 movs r1, #2 movs r2, #1 bl sub_0806FF88 adds r0, r5, #0 movs r1, #1 movs r2, #0 _08062916: bl sub_0806FFD8 adds r0, r5, #0 bl sub_0807000C b _08062946 _08062922: adds r0, r5, #0 movs r1, #0 adds r2, r6, #0 bl sub_0806FF60 adds r0, r5, #0 movs r1, #1 adds r2, r7, #0 bl sub_0806FF60 adds r0, r5, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r5, #0 bl sub_0807000C _08062946: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08062948 sub_08062948: @ 0x08062948 push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r1, #0 ldrb r0, [r6, #0x18] cmp r0, #0 bne _080629B4 adds r0, #1 strb r0, [r6, #0x18] bl sub_08000E50 movs r1, #0x3f ands r0, r1 adds r0, #0x20 strh r0, [r6, #0x12] bl sub_08000E50 adds r1, r0, #0 movs r0, #0x18 ands r1, r0 ldrb r0, [r4, #0x15] cmp r0, #8 beq _08062990 cmp r0, #8 bgt _0806297E cmp r0, #0 beq _08062988 b _080629A6 _0806297E: cmp r0, #0x10 beq _08062998 cmp r0, #0x18 beq _080629A0 b _080629A6 _08062988: cmp r1, #0x10 bne _080629A6 movs r1, #8 b _080629A6 _08062990: cmp r1, #0x18 bne _080629A6 movs r1, #0x10 b _080629A6 _08062998: cmp r1, #0 bne _080629A6 movs r1, #0x18 b _080629A6 _080629A0: cmp r1, #8 bne _080629A6 movs r1, #0 _080629A6: strb r1, [r4, #0x15] adds r0, r1, #0 bl sub_0806F5B0 strb r0, [r4, #0x14] movs r0, #0x80 strh r0, [r4, #0x24] _080629B4: ldrb r0, [r4, #0x14] lsrs r0, r0, #1 adds r1, r0, #4 adds r5, r4, #0 adds r5, #0x58 ldrb r0, [r5] cmp r1, r0 beq _080629D2 adds r0, r4, #0 bl sub_08004260 ldrb r1, [r5] adds r0, r4, #0 adds r0, #0x80 strh r1, [r0] _080629D2: adds r0, r4, #0 bl sub_080AEF88 movs r3, #0x2e ldrsh r1, [r4, r3] adds r2, r4, #0 adds r2, #0x6c movs r5, #0 ldrsh r0, [r2, r5] subs r1, r1, r0 cmp r1, #0x10 ble _080629F4 ldrh r0, [r2] adds r0, #0x10 strh r0, [r4, #0x2e] movs r0, #1 strh r0, [r6, #0x12] _080629F4: movs r3, #0x10 rsbs r3, r3, #0 cmp r1, r3 bge _08062A06 ldrh r0, [r2] subs r0, #0x10 strh r0, [r4, #0x2e] movs r0, #1 strh r0, [r6, #0x12] _08062A06: movs r0, #0x32 ldrsh r1, [r4, r0] adds r2, r4, #0 adds r2, #0x6e movs r5, #0 ldrsh r0, [r2, r5] subs r1, r1, r0 cmp r1, #0x10 ble _08062A22 ldrh r0, [r2] adds r0, #0x10 strh r0, [r4, #0x32] movs r0, #1 strh r0, [r6, #0x12] _08062A22: cmp r1, r3 bge _08062A30 ldrh r0, [r2] subs r0, #0x10 strh r0, [r4, #0x32] movs r0, #1 strh r0, [r6, #0x12] _08062A30: ldrh r0, [r6, #0x12] subs r0, #1 strh r0, [r6, #0x12] lsls r0, r0, #0x10 cmp r0, #0 beq _08062A42 ldr r1, _08062A44 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _08062A42: pop {r4, r5, r6, pc} .align 2, 0 _08062A44: .4byte gUnk_02033280 thumb_func_start sub_08062A48 sub_08062A48: @ 0x08062A48 push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x6a strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 pop {r4, pc} thumb_func_start sub_08062A60 sub_08062A60: @ 0x08062A60 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08062AB0 ldr r1, _08062AAC @ =gUnk_0810BDC4 ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _08062AB6 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] ldrh r0, [r4, #0x32] subs r0, #8 strh r0, [r4, #0x32] movs r1, #6 ldrb r0, [r4, #0xa] cmp r0, #6 bne _08062AA2 movs r1, #0x16 _08062AA2: adds r0, r4, #0 bl sub_08004260 b _08062AB6 .align 2, 0 _08062AAC: .4byte gUnk_0810BDC4 _08062AB0: adds r0, r4, #0 bl sub_08004274 _08062AB6: pop {r4, pc} thumb_func_start sub_08062AB8 sub_08062AB8: @ 0x08062AB8 push {lr} ldr r2, _08062ACC @ =gUnk_0810C268 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08062ACC: .4byte gUnk_0810C268 thumb_func_start sub_08062AD0 sub_08062AD0: @ 0x08062AD0 bx lr .align 2, 0 thumb_func_start sub_08062AD4 sub_08062AD4: @ 0x08062AD4 bx lr .align 2, 0 thumb_func_start sub_08062AD8 sub_08062AD8: @ 0x08062AD8 push {lr} ldr r2, _08062AEC @ =gUnk_0810C290 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08062AEC: .4byte gUnk_0810C290 thumb_func_start sub_08062AF0 sub_08062AF0: @ 0x08062AF0 push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08078778 pop {r4, pc} thumb_func_start sub_08062B14 sub_08062B14: @ 0x08062B14 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08062B40 movs r0, #0 strb r0, [r1] ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_08004260 adds r0, r4, #0 bl sub_0805E47C _08062B40: adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} thumb_func_start sub_08062B48 sub_08062B48: @ 0x08062B48 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08062B6A ldr r0, _08062B6C @ =0x00000A01 bl sub_08056378 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] _08062B6A: pop {r4, pc} .align 2, 0 _08062B6C: .4byte 0x00000A01 thumb_func_start sub_08062B70 sub_08062B70: @ 0x08062B70 push {r4, lr} adds r4, r0, #0 ldr r0, _08062B94 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08062B92 adds r0, r4, #0 movs r1, #2 bl sub_08004260 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0805E584 _08062B92: pop {r4, pc} .align 2, 0 _08062B94: .4byte gUnk_02000050 thumb_func_start sub_08062B98 sub_08062B98: @ 0x08062B98 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08062BBC ldr r0, _08062BB8 @ =gUnk_0810C2DC ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 b _08062BCC .align 2, 0 _08062BB8: .4byte gUnk_0810C2DC _08062BBC: ldr r0, _08062BD0 @ =gUnk_0810C2CC ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 _08062BCC: pop {pc} .align 2, 0 _08062BD0: .4byte gUnk_0810C2CC thumb_func_start sub_08062BD4 sub_08062BD4: @ 0x08062BD4 push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08078778 pop {r4, pc} thumb_func_start sub_08062BF8 sub_08062BF8: @ 0x08062BF8 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08062C1C movs r0, #0 strb r0, [r1] ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0805E47C _08062C1C: adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} thumb_func_start sub_08062C24 sub_08062C24: @ 0x08062C24 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08062C4E adds r0, r4, #0 movs r1, #4 bl sub_08004260 ldr r0, _08062C50 @ =0x00000A01 bl sub_08056378 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] _08062C4E: pop {r4, pc} .align 2, 0 _08062C50: .4byte 0x00000A01 thumb_func_start sub_08062C54 sub_08062C54: @ 0x08062C54 push {r4, lr} adds r4, r0, #0 ldr r0, _08062C78 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08062C76 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_0805E584 _08062C76: pop {r4, pc} .align 2, 0 _08062C78: .4byte gUnk_02000050 thumb_func_start sub_08062C7C sub_08062C7C: @ 0x08062C7C push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 movs r1, #0x25 movs r2, #0 bl sub_080A29AC adds r0, r4, #0 bl sub_08062CA4 pop {r4, pc} thumb_func_start sub_08062CA4 sub_08062CA4: @ 0x08062CA4 push {r4, lr} adds r4, r0, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_08004274 pop {r4, pc} thumb_func_start sub_08062CBC sub_08062CBC: @ 0x08062CBC push {r4, lr} adds r4, r0, #0 movs r0, #0x2c bl sub_0801E7F4 rsbs r1, r0, #0 orrs r1, r0 lsrs r1, r1, #0x1f lsls r1, r1, #3 ldr r0, _08062CDC @ =gUnk_0810C2E4 adds r1, r1, r0 adds r0, r4, #0 bl sub_0806F1AC pop {r4, pc} .align 2, 0 _08062CDC: .4byte gUnk_0810C2E4 thumb_func_start sub_08062CE0 sub_08062CE0: @ 0x08062CE0 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xc] cmp r0, #0 bne _08062CEE movs r0, #1 strb r0, [r1, #0xc] _08062CEE: pop {pc} thumb_func_start sub_08062CF0 sub_08062CF0: @ 0x08062CF0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08062D0C adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD64 _08062D0C: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 pop {r4, pc} .align 2, 0 thumb_func_start sub_08062D18 sub_08062D18: @ 0x08062D18 push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 movs r4, #0 movs r0, #0x4f bl sub_0807CA84 cmp r0, #0 beq _08062D36 movs r0, #0x26 bl sub_0807CBD0 cmp r0, #0 bne _08062D36 movs r4, #7 _08062D36: movs r0, #0x4e bl sub_0807CA84 cmp r0, #0 beq _08062D4C movs r0, #0x25 bl sub_0807CBD0 cmp r0, #0 bne _08062D4C movs r4, #6 _08062D4C: movs r0, #0x4d bl sub_0807CA84 cmp r0, #0 beq _08062D62 movs r0, #0x24 bl sub_0807CBD0 cmp r0, #0 bne _08062D62 movs r4, #5 _08062D62: movs r0, #0x4c bl sub_0807CA84 cmp r0, #0 beq _08062D78 movs r0, #0x23 bl sub_0807CBD0 cmp r0, #0 bne _08062D78 movs r4, #4 _08062D78: movs r0, #0x4b bl sub_0807CA84 cmp r0, #0 beq _08062D8E movs r0, #0x22 bl sub_0807CBD0 cmp r0, #0 bne _08062D8E movs r4, #3 _08062D8E: movs r0, #0x4a bl sub_0807CA84 cmp r0, #0 beq _08062DA4 movs r0, #0x21 bl sub_0807CBD0 cmp r0, #0 bne _08062DA4 movs r4, #2 _08062DA4: movs r0, #0x49 bl sub_0807CA84 cmp r0, #0 beq _08062DBA movs r0, #0x20 bl sub_0807CBD0 cmp r0, #0 bne _08062DBA movs r4, #1 _08062DBA: strb r4, [r5, #0xb] movs r4, #0 ldr r0, _08062DCC @ =0x00001C1F bl sub_0807CBE4 cmp r0, #0 beq _08062DD0 movs r4, #1 b _08062DF0 .align 2, 0 _08062DCC: .4byte 0x00001C1F _08062DD0: movs r0, #0x8c bl sub_0807CBD0 cmp r0, #0 beq _08062DE4 movs r4, #2 movs r0, #0x8c bl sub_0807CD34 b _08062DF0 _08062DE4: movs r0, #0x8b bl sub_0807CBD0 cmp r0, #0 beq _08062DF0 movs r4, #3 _08062DF0: ldr r0, _08062E08 @ =gUnk_0810C34C lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 bl sub_08056398 cmp r4, #0 bne _08062E0C movs r0, #1 b _08062E0E .align 2, 0 _08062E08: .4byte gUnk_0810C34C _08062E0C: movs r0, #0 _08062E0E: str r0, [r6, #0x14] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08062E14 sub_08062E14: @ 0x08062E14 push {lr} movs r0, #0x8b bl sub_0807CCB4 pop {pc} .align 2, 0 thumb_func_start sub_08062E20 sub_08062E20: @ 0x08062E20 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08062E50 adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 adds r1, r4, #0 bl sub_0806FAB0 ldr r0, _08062E5C @ =gUnk_0810C3C0 str r0, [r4, #0x48] adds r1, r4, #0 adds r1, #0x63 movs r0, #0xfe strb r0, [r1] adds r0, r4, #0 bl sub_0807DD64 _08062E50: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 pop {r4, pc} .align 2, 0 _08062E5C: .4byte gUnk_0810C3C0 thumb_func_start sub_08062E60 sub_08062E60: @ 0x08062E60 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08062E88 adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 adds r1, r4, #0 bl sub_0806FAB0 ldr r0, _08062EB4 @ =gUnk_0810C428 str r0, [r4, #0x48] adds r0, r4, #0 bl sub_0807DD64 _08062E88: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08062EB2 ldrb r1, [r4, #0x14] lsrs r1, r1, #1 adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] adds r0, #0x28 strh r1, [r0] _08062EB2: pop {r4, pc} .align 2, 0 _08062EB4: .4byte gUnk_0810C428 thumb_func_start sub_08062EB8 sub_08062EB8: @ 0x08062EB8 push {lr} movs r0, #0x68 movs r1, #0 bl sub_0807CAA0 movs r0, #0x69 movs r1, #0 bl sub_0807CAA0 movs r0, #0x6a movs r1, #0 bl sub_0807CAA0 movs r0, #0x6b movs r1, #0 bl sub_0807CAA0 pop {pc} thumb_func_start sub_08062EDC sub_08062EDC: @ 0x08062EDC push {r4, r5, r6, lr} adds r6, r0, #0 adds r5, r1, #0 movs r0, #0x68 bl sub_0807CA84 cmp r0, #0 beq _08062EEE movs r4, #0 _08062EEE: movs r0, #0x69 bl sub_0807CA84 cmp r0, #0 beq _08062EFA movs r4, #1 _08062EFA: movs r0, #0x6a bl sub_0807CA84 cmp r0, #0 beq _08062F06 movs r4, #2 _08062F06: movs r0, #0x6b bl sub_0807CA84 cmp r0, #0 beq _08062F12 movs r4, #3 _08062F12: movs r0, #0x5b bl sub_0807CBD0 cmp r0, #0 bne _08062F24 movs r0, #0x5b bl sub_0807CCB4 movs r4, #4 _08062F24: bl sub_08000E50 movs r1, #0xff ands r1, r0 ldr r0, _08062F58 @ =gUnk_0810C430 adds r0, r4, r0 ldrb r0, [r0] cmp r1, r0 bhi _08062F68 ldr r0, _08062F5C @ =gUnk_0810C435 bl sub_080028F4 adds r4, r0, #0 ldr r0, _08062F60 @ =gUnk_0810C43D adds r0, r4, r0 ldrb r1, [r0] movs r0, #0x5c movs r2, #1 bl sub_080A7C18 ldr r0, _08062F64 @ =0x00003C05 adds r1, r6, #0 bl sub_08056398 movs r0, #1 b _08062F6A .align 2, 0 _08062F58: .4byte gUnk_0810C430 _08062F5C: .4byte gUnk_0810C435 _08062F60: .4byte gUnk_0810C43D _08062F64: .4byte 0x00003C05 _08062F68: movs r0, #0 _08062F6A: str r0, [r5, #0x14] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08062F70 sub_08062F70: @ 0x08062F70 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08062FA0 ldr r1, _08062FE8 @ =gUnk_0810C48C adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _08062FE4 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xe] lsls r0, r0, #1 strb r0, [r4, #0x14] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD50 _08062FA0: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_08004274 adds r4, #0x5b ldrb r1, [r4] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08062FCC movs r0, #0xef ands r0, r1 strb r0, [r4] ldr r0, _08062FEC @ =0x000001CF bl sub_08004488 _08062FCC: ldrb r1, [r4] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _08062FE4 movs r0, #0xdf ands r0, r1 strb r0, [r4] movs r0, #0x88 lsls r0, r0, #2 bl sub_08004488 _08062FE4: pop {r4, pc} .align 2, 0 _08062FE8: .4byte gUnk_0810C48C _08062FEC: .4byte 0x000001CF thumb_func_start sub_08062FF0 sub_08062FF0: @ 0x08062FF0 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r0, #0x5b ldrb r1, [r0] movs r0, #4 ands r0, r1 cmp r0, #0 beq _08063006 movs r6, #1 movs r5, #0 b _0806300A _08063006: movs r6, #0 movs r5, #1 _0806300A: adds r0, r4, #0 adds r0, #0x5b ldrb r1, [r0] movs r0, #8 ands r0, r1 movs r7, #0x8e lsls r7, r7, #1 cmp r0, #0 beq _0806301E movs r7, #0x16 _0806301E: adds r0, r4, #0 adds r0, #0x5a ldrb r2, [r0] movs r0, #0x81 rsbs r0, r0, #0 ands r2, r0 subs r2, #1 adds r0, r4, #0 adds r1, r6, #0 bl sub_0806FF60 ldrb r2, [r4, #0x1e] adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FF60 adds r0, r4, #0 adds r1, r5, #0 adds r2, r7, #0 bl sub_0806FF10 adds r0, r4, #0 adds r1, r5, #0 adds r2, r6, #0 bl sub_0806FF88 adds r0, r4, #0 bl sub_0807000C pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0806305C sub_0806305C: @ 0x0806305C 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] ldrb r0, [r4, #0x19] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x19] movs r2, #0x80 lsls r2, r2, #1 str r2, [r4, #0x6c] str r2, [r4, #0x70] adds r0, r4, #0 adds r1, r2, #0 movs r3, #0 bl sub_0805EC9C adds r0, r4, #0 movs r1, #0x10 bl sub_080042AC adds r4, #0x80 movs r0, #0x10 strh r0, [r4] ldr r0, _080630A0 @ =0x0000016F bl sub_080A3268 pop {r4, pc} .align 2, 0 _080630A0: .4byte 0x0000016F thumb_func_start sub_080630A4 sub_080630A4: @ 0x080630A4 push {r4, r5, r6, lr} adds r4, r0, #0 adds r0, #0x6d ldrb r0, [r0] cmp r0, #0 beq _080630BA ldr r0, [r4, #0x6c] adds r0, #0x80 lsls r0, r0, #0x14 lsrs r5, r0, #0x17 b _080630D0 _080630BA: adds r0, r4, #0 adds r0, #0x6c ldrb r1, [r0] lsrs r1, r1, #6 movs r0, #3 eors r1, r0 adds r1, #1 movs r0, #0x10 bl __divsi3 asrs r5, r0, #1 _080630D0: movs r0, #0x80 lsls r0, r0, #1 ldr r2, [r4, #0x70] cmp r2, r0 bls _080630E4 adds r0, r2, #0 adds r0, #0x80 lsls r0, r0, #0x14 lsrs r3, r0, #0x17 b _080630F4 _080630E4: cmp r2, r0 bne _080630EC movs r3, #0x10 b _080630F4 _080630EC: ldr r1, _08063110 @ =gUnk_0810C498 lsrs r0, r2, #5 adds r0, r0, r1 ldrb r3, [r0] _080630F4: movs r6, #0x80 lsls r6, r6, #9 adds r0, r4, #0 adds r0, #0x5b ldrb r0, [r0] movs r1, #3 ands r1, r0 cmp r1, #2 beq _08063144 cmp r1, #2 bgt _08063114 cmp r1, #1 beq _0806311A b _080631CA .align 2, 0 _08063110: .4byte gUnk_0810C498 _08063114: cmp r1, #3 beq _0806317A b _080631CA _0806311A: 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, [r4, #0x6c] cmp r0, #0x80 bls _08063132 subs r0, r0, r5 str r0, [r4, #0x6c] _08063132: lsls r1, r3, #1 ldr r0, [r4, #0x70] adds r0, r0, r1 str r0, [r4, #0x70] lsls r1, r6, #1 ldr r0, [r4, #0x30] adds r0, r0, r1 str r0, [r4, #0x30] b _080631CA _08063144: ldr r0, [r4, #0x6c] adds r0, r0, r5 str r0, [r4, #0x6c] ldr r1, [r4, #0x70] movs r2, #0x80 lsls r2, r2, #1 cmp r1, r2 bls _0806316C ldr r0, _08063168 @ =0x0000017F cmp r1, r0 bhi _0806315C lsrs r3, r3, #1 _0806315C: subs r0, r1, r3 cmp r0, #0xff bhi _08063172 str r2, [r4, #0x70] b _08063174 .align 2, 0 _08063168: .4byte 0x0000017F _0806316C: cmp r1, #0x80 bls _08063174 subs r0, r1, r3 _08063172: str r0, [r4, #0x70] _08063174: ldr r0, [r4, #0x34] subs r0, r0, r6 b _080631C8 _0806317A: ldr r0, [r4, #0x6c] ldr r1, _080631B4 @ =0x0000033F cmp r0, r1 bhi _08063186 adds r0, r0, r5 str r0, [r4, #0x6c] _08063186: cmp r2, r1 bls _080631BC movs r2, #0x80 lsls r2, r2, #1 adds r0, r4, #0 adds r1, r2, #0 movs r3, #0 bl sub_0805EC9C adds r0, r4, #0 movs r1, #0x11 bl sub_080042AC adds r1, r4, #0 adds r1, #0x80 movs r0, #0x11 strh r0, [r1] ldr r2, _080631B8 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] b _080631DC .align 2, 0 _080631B4: .4byte 0x0000033F _080631B8: .4byte gUnk_02033280 _080631BC: lsls r0, r3, #1 adds r0, r2, r0 str r0, [r4, #0x70] ldr r0, [r4, #0x34] ldr r1, _080631E0 @ =0xFFFE0000 adds r0, r0, r1 _080631C8: str r0, [r4, #0x34] _080631CA: ldr r1, [r4, #0x6c] ldr r2, [r4, #0x70] adds r0, r4, #0 movs r3, #0 bl sub_0805EC9C ldr r1, _080631E4 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _080631DC: pop {r4, r5, r6, pc} .align 2, 0 _080631E0: .4byte 0xFFFE0000 _080631E4: .4byte gUnk_02033280 thumb_func_start sub_080631E8 sub_080631E8: @ 0x080631E8 push {r4, lr} adds r4, r0, #0 ldr r1, _0806320C @ =gUnk_0810C804 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldrb r0, [r4, #0xc] cmp r0, #0 beq _08063208 adds r0, r4, #0 bl sub_0806ED78 _08063208: pop {r4, pc} .align 2, 0 _0806320C: .4byte gUnk_0810C804 thumb_func_start sub_08063210 sub_08063210: @ 0x08063210 push {lr} movs r1, #1 strb r1, [r0, #0xc] movs r1, #0 bl sub_080042AC pop {pc} .align 2, 0 thumb_func_start sub_08063220 sub_08063220: @ 0x08063220 push {lr} adds r2, r0, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08063238 movs r0, #2 strb r0, [r2, #0xc] movs r1, #8 b _0806323A _08063238: movs r1, #0 _0806323A: adds r0, r2, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, r1 beq _0806324C adds r0, r2, #0 bl sub_080042AC b _08063252 _0806324C: adds r0, r2, #0 bl sub_08063280 _08063252: pop {pc} thumb_func_start sub_08063254 sub_08063254: @ 0x08063254 push {r4, lr} adds r4, r0, #0 bl sub_08063280 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08063274 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0 bl sub_08056378 _08063274: pop {r4, pc} .align 2, 0 thumb_func_start sub_08063278 sub_08063278: @ 0x08063278 push {lr} bl sub_08063280 pop {pc} thumb_func_start sub_08063280 sub_08063280: @ 0x08063280 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r3, r4, #0 adds r3, #0x5a ldrb r2, [r3] movs r1, #0x7f ands r1, r2 adds r0, r1, #0 eors r0, r2 strb r0, [r3] cmp r1, #2 bne _080632A6 adds r0, r4, #0 movs r1, #0x31 movs r2, #0 bl sub_080A29AC _080632A6: pop {r4, pc} thumb_func_start sub_080632A8 sub_080632A8: @ 0x080632A8 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _080632BE adds r0, r2, #0 bl sub_08063410 b _080632C4 _080632BE: adds r0, r2, #0 bl sub_080632C8 _080632C4: pop {pc} .align 2, 0 thumb_func_start sub_080632C8 sub_080632C8: @ 0x080632C8 push {lr} ldr r2, _080632DC @ =gUnk_0810C8E0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080632DC: .4byte gUnk_0810C8E0 thumb_func_start sub_080632E0 sub_080632E0: @ 0x080632E0 push {r4, lr} adds r4, r0, #0 ldr r1, _08063310 @ =gUnk_0810C8D4 bl sub_0806FDEC cmp r0, #0 beq _0806330E adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08078778 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #1 strb r0, [r4, #0xc] _0806330E: pop {r4, pc} .align 2, 0 _08063310: .4byte gUnk_0810C8D4 thumb_func_start sub_08063314 sub_08063314: @ 0x08063314 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] adds r0, #1 strb r0, [r4, #0xf] movs r1, #0xff ands r0, r1 movs r1, #0xf ands r0, r1 cmp r0, #0 bne _08063342 adds r0, r4, #0 bl sub_080633C8 adds r1, r0, #0 adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, r1 beq _08063342 adds r0, r4, #0 bl sub_08004260 _08063342: adds r0, r4, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08063360 ldrb r0, [r4, #0xe] ldr r1, _08063368 @ =0x00000A01 adds r0, r0, r1 bl sub_08056378 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] _08063360: adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} .align 2, 0 _08063368: .4byte 0x00000A01 thumb_func_start sub_0806336C sub_0806336C: @ 0x0806336C push {lr} adds r2, r0, #0 ldr r0, _0806338C @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _0806338A ldrb r0, [r2, #0xc] adds r0, #1 strb r0, [r2, #0xc] adds r0, r2, #0 movs r1, #8 bl sub_08004260 _0806338A: pop {pc} .align 2, 0 _0806338C: .4byte gUnk_02000050 thumb_func_start sub_08063390 sub_08063390: @ 0x08063390 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080633BE movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0806EDC4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08078778 _080633BE: adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} .align 2, 0 thumb_func_start sub_080633C8 sub_080633C8: @ 0x080633C8 push {r4, lr} adds r4, r0, #0 movs r1, #0x20 movs r2, #0x20 bl sub_0806ED9C cmp r0, #0 bge _080633DE adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] _080633DE: pop {r4, pc} thumb_func_start sub_080633E0 sub_080633E0: @ 0x080633E0 push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r0, [r0] movs r2, #0x3f ands r2, r0 adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 ldrb r2, [r4, #0x1e] adds r0, r4, #0 movs r1, #1 bl sub_0806FF60 adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r4, #0 bl sub_0807000C pop {r4, pc} thumb_func_start sub_08063410 sub_08063410: @ 0x08063410 push {r4, r5, lr} adds r4, r0, #0 ldrb r5, [r4, #0xc] cmp r5, #0 bne _08063442 ldr r1, _08063464 @ =gUnk_0810C8D4 bl sub_0806FDEC cmp r0, #0 beq _08063462 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xa] cmp r0, #0 beq _08063436 ldr r0, _08063468 @ =gUnk_0810C894 str r0, [r4, #0x48] strb r5, [r4, #0xb] _08063436: adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 bl sub_08078778 _08063442: ldrb r0, [r4, #0xa] cmp r0, #0 beq _0806344E adds r0, r4, #0 bl sub_0806346C _0806344E: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_08004274 _08063462: pop {r4, r5, pc} .align 2, 0 _08063464: .4byte gUnk_0810C8D4 _08063468: .4byte gUnk_0810C894 thumb_func_start sub_0806346C sub_0806346C: @ 0x0806346C push {r4, r5, r6, lr} adds r5, r0, #0 ldr r6, _080634D8 @ =gUnk_03001160 movs r0, #0x2e ldrsh r1, [r6, r0] movs r2, #0x2e ldrsh r0, [r5, r2] subs r4, r1, r0 movs r0, #0x32 ldrsh r1, [r6, r0] movs r2, #0x32 ldrsh r0, [r5, r2] subs r3, r1, r0 adds r4, #0x30 adds r3, #0x18 cmp r4, #0 bge _08063490 movs r4, #0 _08063490: cmp r4, #0x50 ble _08063496 movs r4, #0x50 _08063496: cmp r3, #0 bge _0806349C movs r3, #0 _0806349C: cmp r3, #0x40 ble _080634A2 movs r3, #0x40 _080634A2: asrs r4, r4, #4 asrs r3, r3, #4 ldr r2, _080634DC @ =gUnk_0810C8F0 ldrb r1, [r6, #0x14] lsrs r1, r1, #1 lsls r0, r4, #2 adds r1, r1, r0 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #3 adds r1, r1, r0 adds r1, r1, r2 ldrb r4, [r1] ldrb r0, [r5, #0xb] cmp r4, r0 beq _080634D6 lsls r3, r4, #3 ldr r0, _080634E0 @ =gUnk_0810C89C adds r3, r3, r0 movs r2, #4 ldrsb r2, [r3, r2] adds r0, r5, #0 movs r1, #1 bl sub_08078850 strb r4, [r5, #0xb] _080634D6: pop {r4, r5, r6, pc} .align 2, 0 _080634D8: .4byte gUnk_03001160 _080634DC: .4byte gUnk_0810C8F0 _080634E0: .4byte gUnk_0810C89C thumb_func_start sub_080634E4 sub_080634E4: @ 0x080634E4 ldrb r0, [r0, #0xb] str r0, [r1, #4] bx lr .align 2, 0 thumb_func_start sub_080634EC sub_080634EC: @ 0x080634EC ldr r2, _080634FC @ =gUnk_02034350 ldr r1, _08063500 @ =gUnk_0810C88C ldrb r0, [r0, #0xb] adds r0, r0, r1 ldrb r0, [r0] strb r0, [r2, #6] bx lr .align 2, 0 _080634FC: .4byte gUnk_02034350 _08063500: .4byte gUnk_0810C88C thumb_func_start sub_08063504 sub_08063504: @ 0x08063504 push {r4, lr} adds r4, r1, #0 ldr r1, _08063520 @ =gUnk_0810C88C ldrb r0, [r0, #0xb] adds r0, r0, r1 ldrb r0, [r0] bl sub_080544DC rsbs r1, r0, #0 orrs r1, r0 lsrs r1, r1, #0x1f str r1, [r4, #0x14] pop {r4, pc} .align 2, 0 _08063520: .4byte gUnk_0810C88C thumb_func_start sub_08063524 sub_08063524: @ 0x08063524 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0806353A adds r0, r2, #0 bl sub_0806362C b _08063540 _0806353A: adds r0, r2, #0 bl sub_08063544 _08063540: pop {pc} .align 2, 0 thumb_func_start sub_08063544 sub_08063544: @ 0x08063544 push {lr} ldr r2, _08063558 @ =gUnk_0810CAA0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08063558: .4byte gUnk_0810CAA0 thumb_func_start sub_0806355C sub_0806355C: @ 0x0806355C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 bl sub_080042AC adds r0, r4, #0 bl sub_08078778 pop {r4, pc} thumb_func_start sub_08063584 sub_08063584: @ 0x08063584 push {r4, lr} adds r4, r0, #0 movs r1, #0x20 movs r2, #0x20 bl sub_0806ED9C cmp r0, #0 blt _080635B2 ldrb r0, [r4, #0xf] cmp r0, #0 bne _080635B8 bl sub_08000E50 movs r1, #0x3f ands r1, r0 cmp r1, #0 bne _080635B2 movs r0, #1 strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #0 bl sub_080042AC _080635B2: ldrb r0, [r4, #0xf] cmp r0, #0 beq _080635D0 _080635B8: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080635D0 movs r0, #0 strb r0, [r4, #0xf] _080635D0: adds r0, r4, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080635FC movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0806EDC4 adds r1, r0, #0 adds r1, #4 adds r0, r4, #0 bl sub_080042AC ldrb r0, [r4, #0xe] ldr r1, _08063604 @ =0x00000A01 adds r0, r0, r1 bl sub_08056378 _080635FC: adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} .align 2, 0 _08063604: .4byte 0x00000A01 thumb_func_start sub_08063608 sub_08063608: @ 0x08063608 push {lr} adds r2, r0, #0 ldr r0, _08063628 @ =gUnk_02000050 ldrb r0, [r0] movs r1, #0x7f ands r1, r0 cmp r1, #0 bne _08063626 movs r0, #1 strb r0, [r2, #0xc] strb r1, [r2, #0xf] adds r0, r2, #0 movs r1, #4 bl sub_080042AC _08063626: pop {pc} .align 2, 0 _08063628: .4byte gUnk_02000050 thumb_func_start sub_0806362C sub_0806362C: @ 0x0806362C push {r4, lr} adds r4, r0, #0 ldrb r3, [r4, #0xc] cmp r3, #1 beq _08063662 cmp r3, #1 bgt _08063640 cmp r3, #0 beq _08063646 b _080636D4 _08063640: cmp r3, #2 beq _080636BA b _080636D4 _08063646: movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 adds r0, #0x69 strb r3, [r0] adds r0, r4, #0 bl sub_0807DD64 _08063662: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _080636A4 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x69 strb r0, [r1] ldr r1, _080636A0 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r1, #4 adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 bl sub_0806F118 b _080636D4 .align 2, 0 _080636A0: .4byte gUnk_03001160 _080636A4: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_080042B8 b _080636D4 _080636BA: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _080636D4 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x69 ldrb r1, [r0] adds r0, r4, #0 bl sub_080042AC _080636D4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080636D8 sub_080636D8: @ 0x080636D8 push {lr} ldr r1, _080636EC @ =gUnk_02002A40 ldrb r1, [r1, #8] lsls r1, r1, #3 ldr r2, _080636F0 @ =gUnk_0810CAAC adds r1, r1, r2 bl sub_0806F1AC pop {pc} .align 2, 0 _080636EC: .4byte gUnk_02002A40 _080636F0: .4byte gUnk_0810CAAC thumb_func_start sub_080636F4 sub_080636F4: @ 0x080636F4 push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 pop {r4, pc} thumb_func_start sub_0806370C sub_0806370C: @ 0x0806370C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _08063738 adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] ldrh r0, [r2, #0x32] subs r0, #4 strh r0, [r2, #0x32] adds r0, r2, #0 movs r1, #2 bl sub_080042AC b _0806373E _08063738: adds r0, r2, #0 bl sub_080042B8 _0806373E: pop {pc} thumb_func_start sub_08063740 sub_08063740: @ 0x08063740 push {lr} ldr r2, _08063754 @ =gUnk_0810CBD8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08063754: .4byte gUnk_0810CBD8 thumb_func_start sub_08063758 sub_08063758: @ 0x08063758 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #2 ldr r0, _08063794 @ =gUnk_0810CB78 adds r1, r1, r0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _080637B4 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0xe] ands r1, r2 lsls r1, r1, #6 ldrb r2, [r4, #0x18] subs r0, #0x42 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] lsls r0, r0, #0x19 cmp r0, #0 blt _08063798 movs r0, #6 b _0806379A .align 2, 0 _08063794: .4byte gUnk_0810CB78 _08063798: movs r0, #2 _0806379A: strb r0, [r4, #0x14] ldrb r0, [r4, #0x14] movs r1, #0 strb r0, [r4, #0xe] adds r0, r4, #0 adds r0, #0x69 strb r1, [r0] adds r0, r4, #0 bl sub_0807DD50 adds r0, r4, #0 bl sub_080637B8 _080637B4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080637B8 sub_080637B8: @ 0x080637B8 push {r4, r5, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _08063804 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x69 strb r0, [r1] ldr r1, _08063800 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 ldrb r0, [r4, #0x18] lsls r0, r0, #0x19 cmp r0, #0 bge _080637F2 adds r1, #4 _080637F2: adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_0806F118 b _0806382E .align 2, 0 _08063800: .4byte gUnk_03001160 _08063804: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r5, r4, #0 adds r5, #0x59 ldrb r0, [r5] cmp r0, #0xfe bne _08063828 bl sub_08000E50 movs r1, #0x1f ands r0, r1 adds r0, #0x1e strb r0, [r5] _08063828: adds r0, r4, #0 bl sub_08004274 _0806382E: pop {r4, r5, pc} thumb_func_start sub_08063830 sub_08063830: @ 0x08063830 push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _0806384C movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x69 ldrb r1, [r0] adds r0, r4, #0 bl sub_08004260 _0806384C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08063850 sub_08063850: @ 0x08063850 push {lr} ldrb r3, [r0, #0x18] lsls r3, r3, #0x19 lsrs r3, r3, #0x1f rsbs r2, r3, #0 orrs r2, r3 asrs r2, r2, #0x1f movs r3, #4 ands r2, r3 ldr r1, [r1, #4] adds r1, r1, r2 ldrb r2, [r0, #0x14] lsrs r2, r2, #1 adds r1, r1, r2 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_08063874 sub_08063874: @ 0x08063874 ldrb r1, [r0, #0xe] strb r1, [r0, #0x14] bx lr .align 2, 0 thumb_func_start sub_0806387C sub_0806387C: @ 0x0806387C push {r4, r5, r6, lr} adds r6, r0, #0 movs r4, #3 movs r0, #0xda bl sub_0807CBD0 cmp r0, #0 bne _08063896 movs r4, #0 movs r0, #0xda bl sub_0807CCB4 b _080638D6 _08063896: movs r0, #0xd1 bl sub_0807CBD0 cmp r0, #0 bne _080638D6 movs r5, #0 movs r4, #1 _080638A4: ldr r0, _080638F8 @ =gUnk_02002B0E adds r1, r4, #0 bl sub_0801D5A8 cmp r0, #0 beq _080638B2 adds r5, #1 _080638B2: adds r4, #1 cmp r4, #0x82 ble _080638A4 movs r4, #1 cmp r5, #0x81 ble _080638D6 movs r4, #2 movs r0, #0xd1 bl sub_0807CCB4 ldr r0, _080638FC @ =0x00000A17 movs r1, #1 bl sub_0807BA8C ldr r0, _08063900 @ =0x00000A57 movs r1, #1 bl sub_0807BA8C _080638D6: ldr r0, _08063904 @ =gUnk_02002A40 ldrb r0, [r0, #8] subs r1, r0, #6 cmp r1, #0 bge _080638E2 movs r1, #0 _080638E2: ldr r2, _08063908 @ =gUnk_0810CBE4 lsls r0, r4, #1 lsls r1, r1, #3 adds r0, r0, r1 adds r0, r0, r2 ldrh r0, [r0] adds r1, r6, #0 bl sub_08056398 pop {r4, r5, r6, pc} .align 2, 0 _080638F8: .4byte gUnk_02002B0E _080638FC: .4byte 0x00000A17 _08063900: .4byte 0x00000A57 _08063904: .4byte gUnk_02002A40 _08063908: .4byte gUnk_0810CBE4 thumb_func_start sub_0806390C sub_0806390C: @ 0x0806390C push {r4, r5, lr} adds r4, r0, #0 movs r5, #1 movs r0, #0xd9 bl sub_0807CBD0 cmp r0, #0 bne _0806392E movs r5, #0 movs r0, #0xd9 bl sub_0807CCB4 adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] movs r0, #1 str r0, [r1, #0x14] _0806392E: ldr r0, _08063940 @ =gUnk_0810CC04 lsls r1, r5, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 bl sub_08056398 pop {r4, r5, pc} .align 2, 0 _08063940: .4byte gUnk_0810CC04 thumb_func_start sub_08063944 sub_08063944: @ 0x08063944 push {lr} adds r3, r0, #0 movs r0, #0 str r0, [r1, #0x14] ldr r0, _0806396C @ =gUnk_02002A40 ldrb r0, [r0, #8] subs r0, #2 cmp r0, #0 bge _08063958 movs r0, #0 _08063958: ldrb r1, [r3, #0xb] lsls r1, r1, #6 lsls r0, r0, #3 ldr r2, _08063970 @ =gUnk_0810CC08 adds r0, r0, r2 adds r1, r1, r0 adds r0, r3, #0 bl sub_0806F1AC pop {pc} .align 2, 0 _0806396C: .4byte gUnk_02002A40 _08063970: .4byte gUnk_0810CC08 thumb_func_start sub_08063974 sub_08063974: @ 0x08063974 push {r4, r5, lr} adds r4, r0, #0 ldrb r5, [r4, #0xa] lsls r5, r5, #2 ldr r0, _080639C8 @ =gUnk_0810CBC0 adds r5, r5, r0 adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] movs r2, #0xf ands r2, r0 ldrb r0, [r5] adds r2, r2, r0 adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 ldr r2, _080639CC @ =gUnk_0810CD88 ldrb r1, [r4, #0x1e] movs r0, #3 ands r0, r1 ldrb r1, [r4, #0xa] lsls r1, r1, #2 adds r0, r0, r1 adds r0, r0, r2 ldrb r2, [r0] ldrb r0, [r5, #1] adds r2, r2, r0 adds r0, r4, #0 movs r1, #1 bl sub_0806FF60 adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r4, #0 bl sub_0807000C pop {r4, r5, pc} .align 2, 0 _080639C8: .4byte gUnk_0810CBC0 _080639CC: .4byte gUnk_0810CD88 thumb_func_start sub_080639D0 sub_080639D0: @ 0x080639D0 push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 pop {r4, pc} thumb_func_start sub_080639E8 sub_080639E8: @ 0x080639E8 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08063A40 ldrb r0, [r4, #0xa] lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #2 ldr r0, _08063A3C @ =gUnk_0810CB78 adds r1, r1, r0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _08063A5C ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 movs r1, #0x41 rsbs r1, r1, #0 ands r0, r1 strb r0, [r4, #0x18] ldrh r0, [r4, #0x32] subs r0, #4 strh r0, [r4, #0x32] adds r0, r4, #0 movs r1, #2 bl sub_08004260 ldrb r1, [r4, #0xa] adds r0, r4, #0 bl sub_08096208 b _08063A5C .align 2, 0 _08063A3C: .4byte gUnk_0810CB78 _08063A40: adds r5, r4, #0 adds r5, #0x59 ldrb r0, [r5] cmp r0, #0xfe bne _08063A56 bl sub_08000E50 movs r1, #0x1f ands r0, r1 adds r0, #0x1e strb r0, [r5] _08063A56: adds r0, r4, #0 bl sub_08004274 _08063A5C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08063A60 sub_08063A60: @ 0x08063A60 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08063A76 adds r0, r2, #0 bl sub_08063B68 b _08063A7C _08063A76: adds r0, r2, #0 bl sub_08063A80 _08063A7C: pop {pc} .align 2, 0 thumb_func_start sub_08063A80 sub_08063A80: @ 0x08063A80 push {lr} ldr r2, _08063A94 @ =gUnk_0810CDF8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08063A94: .4byte gUnk_0810CDF8 thumb_func_start sub_08063A98 sub_08063A98: @ 0x08063A98 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 bl sub_080042AC adds r0, r4, #0 bl sub_08078778 pop {r4, pc} thumb_func_start sub_08063AC0 sub_08063AC0: @ 0x08063AC0 push {r4, lr} adds r4, r0, #0 movs r1, #0x20 movs r2, #0x20 bl sub_0806ED9C cmp r0, #0 blt _08063AEE ldrb r0, [r4, #0xf] cmp r0, #0 bne _08063AF4 bl sub_08000E50 movs r1, #0x3f ands r1, r0 cmp r1, #0 bne _08063AEE adds r0, r4, #0 movs r1, #0 bl sub_080042AC movs r0, #1 strb r0, [r4, #0xf] _08063AEE: ldrb r0, [r4, #0xf] cmp r0, #0 beq _08063B0C _08063AF4: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08063B0C movs r0, #0 strb r0, [r4, #0xf] _08063B0C: adds r0, r4, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08063B38 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0806EDC4 adds r1, r0, #0 adds r1, #4 adds r0, r4, #0 bl sub_080042AC ldrb r0, [r4, #0xe] ldr r1, _08063B40 @ =0x00000A01 adds r0, r0, r1 bl sub_08056378 _08063B38: adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} .align 2, 0 _08063B40: .4byte 0x00000A01 thumb_func_start sub_08063B44 sub_08063B44: @ 0x08063B44 push {lr} adds r2, r0, #0 ldr r0, _08063B64 @ =gUnk_02000050 ldrb r0, [r0] movs r1, #0x7f ands r1, r0 cmp r1, #0 bne _08063B62 movs r0, #1 strb r0, [r2, #0xc] strb r1, [r2, #0xf] adds r0, r2, #0 movs r1, #4 bl sub_080042AC _08063B62: pop {pc} .align 2, 0 _08063B64: .4byte gUnk_02000050 thumb_func_start sub_08063B68 sub_08063B68: @ 0x08063B68 push {r4, lr} adds r4, r0, #0 ldrb r3, [r4, #0xc] cmp r3, #1 beq _08063B9E cmp r3, #1 bgt _08063B7C cmp r3, #0 beq _08063B82 b _08063C10 _08063B7C: cmp r3, #2 beq _08063BF6 b _08063C10 _08063B82: movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 adds r0, #0x69 strb r3, [r0] adds r0, r4, #0 bl sub_0807DD64 _08063B9E: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _08063BE0 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x69 strb r0, [r1] ldr r1, _08063BDC @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r1, #4 adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 bl sub_0806F118 b _08063C10 .align 2, 0 _08063BDC: .4byte gUnk_03001160 _08063BE0: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_080042B8 b _08063C10 _08063BF6: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _08063C10 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x69 ldrb r1, [r0] adds r0, r4, #0 bl sub_080042AC _08063C10: pop {r4, pc} .align 2, 0 thumb_func_start sub_08063C14 sub_08063C14: @ 0x08063C14 push {lr} movs r0, #7 movs r1, #0x14 bl sub_0805EB9C cmp r0, #0 beq _08063C28 movs r1, #8 bl sub_080042AC _08063C28: pop {pc} .align 2, 0 thumb_func_start sub_08063C2C sub_08063C2C: @ 0x08063C2C push {lr} movs r0, #7 movs r1, #0x14 bl sub_0805EB9C cmp r0, #0 beq _08063C40 movs r1, #4 bl sub_080042AC _08063C40: pop {pc} .align 2, 0 thumb_func_start sub_08063C44 sub_08063C44: @ 0x08063C44 push {lr} movs r0, #7 movs r1, #0x14 bl sub_0805EB9C cmp r0, #0 beq _08063C58 movs r1, #0 bl sub_080042AC _08063C58: pop {pc} .align 2, 0 thumb_func_start sub_08063C5C sub_08063C5C: @ 0x08063C5C push {lr} movs r0, #7 movs r1, #0x14 bl sub_0805EB9C cmp r0, #0 beq _08063C70 movs r1, #9 bl sub_080042AC _08063C70: pop {pc} .align 2, 0 thumb_func_start sub_08063C74 sub_08063C74: @ 0x08063C74 push {lr} movs r0, #7 movs r1, #0x14 bl sub_0805EB9C cmp r0, #0 beq _08063C8C movs r2, #0x18 rsbs r2, r2, #0 movs r1, #8 bl sub_080A2CFC _08063C8C: pop {pc} .align 2, 0 thumb_func_start sub_08063C90 sub_08063C90: @ 0x08063C90 push {lr} ldr r1, _08063CA4 @ =gUnk_02002A40 ldrb r1, [r1, #8] lsls r1, r1, #3 ldr r2, _08063CA8 @ =gUnk_0810CE04 adds r1, r1, r2 bl sub_0806F1AC pop {pc} .align 2, 0 _08063CA4: .4byte gUnk_02002A40 _08063CA8: .4byte gUnk_0810CE04 thumb_func_start sub_08063CAC sub_08063CAC: @ 0x08063CAC push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 pop {r4, pc} thumb_func_start sub_08063CC4 sub_08063CC4: @ 0x08063CC4 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _08063CF0 adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] ldrh r0, [r2, #0x32] subs r0, #4 strh r0, [r2, #0x32] adds r0, r2, #0 movs r1, #2 bl sub_080042AC b _08063CF6 _08063CF0: adds r0, r2, #0 bl sub_080042B8 _08063CF6: pop {pc} thumb_func_start sub_08063CF8 sub_08063CF8: @ 0x08063CF8 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08063D1C ldr r0, _08063D18 @ =gUnk_0810F544 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 b _08063D22 .align 2, 0 _08063D18: .4byte gUnk_0810F544 _08063D1C: adds r0, r2, #0 bl sub_08063D24 _08063D22: pop {pc} thumb_func_start sub_08063D24 sub_08063D24: @ 0x08063D24 push {r4, lr} adds r4, r0, #0 ldr r1, _08063D40 @ =gUnk_0810F550 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} .align 2, 0 _08063D40: .4byte gUnk_0810F550 thumb_func_start sub_08063D44 sub_08063D44: @ 0x08063D44 push {r4, lr} adds r4, r0, #0 ldr r0, _08063DA0 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x46 bhi _08063DC6 ldrb r0, [r4, #9] movs r1, #0x15 eors r0, r1 rsbs r1, r0, #0 orrs r1, r0 lsrs r1, r1, #0x1f lsls r1, r1, #4 ldr r0, _08063DA4 @ =gUnk_0810F524 adds r1, r1, r0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _08063DC6 adds r0, r4, #0 movs r1, #4 bl sub_08004260 ldr r0, _08063DA8 @ =gUnk_0810F6BC ldrb r1, [r4, #0xa] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 movs r2, #0 bl sub_0806EE04 ldrb r0, [r4, #0xa] cmp r0, #0 blt _08063DB6 cmp r0, #3 bgt _08063DAC movs r0, #0xc bl sub_080A7EE0 str r4, [r0, #0x50] movs r1, #0x3c strb r1, [r0, #0xf] b _08063DB6 .align 2, 0 _08063DA0: .4byte gUnk_03003DBC _08063DA4: .4byte gUnk_0810F524 _08063DA8: .4byte gUnk_0810F6BC _08063DAC: cmp r0, #5 bgt _08063DB6 adds r0, r4, #0 bl sub_08078778 _08063DB6: ldrb r0, [r4, #0xc] adds r0, #1 movs r1, #0 strb r0, [r4, #0xc] strb r1, [r4, #0xa] adds r0, r4, #0 bl sub_08063DC8 _08063DC6: pop {r4, pc} thumb_func_start sub_08063DC8 sub_08063DC8: @ 0x08063DC8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0xff bne _08063DF8 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] ldr r1, _08063DF4 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_080042AC b _08063E4C .align 2, 0 _08063DF4: .4byte gUnk_03001160 _08063DF8: adds r0, r4, #0 bl sub_0806EE20 adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] ldrb r1, [r4, #0x14] cmp r0, r1 beq _08063E18 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_08004260 b _08063E1E _08063E18: adds r0, r4, #0 bl sub_08004274 _08063E1E: adds r2, r4, #0 adds r2, #0x39 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08063E4C movs r1, #0 movs r0, #3 strb r0, [r4, #0xc] strb r1, [r2] ldr r1, _08063E50 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08064428 _08063E4C: pop {r4, pc} .align 2, 0 _08063E50: .4byte gUnk_03001160 thumb_func_start sub_08063E54 sub_08063E54: @ 0x08063E54 push {lr} ldrb r1, [r0, #0xe] subs r1, #1 strb r1, [r0, #0xe] lsls r1, r1, #0x18 cmp r1, #0 bne _08063E68 movs r0, #0xf bl sub_0807CD10 _08063E68: pop {pc} .align 2, 0 thumb_func_start sub_08063E6C sub_08063E6C: @ 0x08063E6C push {lr} adds r2, r0, #0 ldr r0, _08063E8C @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08063E8A movs r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x14] adds r1, #4 adds r0, r2, #0 bl sub_08004260 _08063E8A: pop {pc} .align 2, 0 _08063E8C: .4byte gUnk_02000050 thumb_func_start sub_08063E90 sub_08063E90: @ 0x08063E90 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #9] movs r1, #0x15 eors r0, r1 rsbs r1, r0, #0 orrs r1, r0 lsrs r1, r1, #0x1f lsls r1, r1, #4 ldr r0, _08063EC8 @ =gUnk_0810F524 adds r1, r1, r0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _08063F1E ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0xe] cmp r1, #0 beq _08063ECC adds r1, r4, #0 adds r1, #0x70 movs r0, #8 strb r0, [r1] b _08063ED2 .align 2, 0 _08063EC8: .4byte gUnk_0810F524 _08063ECC: adds r0, r4, #0 adds r0, #0x70 strb r1, [r0] _08063ED2: movs r0, #0 strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_0805ACC0 adds r2, r0, #0 cmp r2, #0 bne _08063EF2 ldrh r0, [r4, #0x2e] adds r1, r4, #0 adds r1, #0x68 strh r0, [r1] ldrh r0, [r4, #0x32] adds r1, #2 strh r0, [r1] b _08063EFE _08063EF2: lsrs r1, r2, #0x10 adds r0, r4, #0 adds r0, #0x68 strh r1, [r0] adds r0, #2 strh r2, [r0] _08063EFE: adds r1, r4, #0 adds r1, #0x71 movs r0, #0 strb r0, [r1] subs r1, #0x39 movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 bl sub_08063F20 _08063F1E: pop {r4, pc} thumb_func_start sub_08063F20 sub_08063F20: @ 0x08063F20 push {r4, lr} adds r4, r0, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_08004274 adds r2, r4, #0 adds r2, #0x39 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08063F72 ldrb r0, [r4, #0xc] adds r0, #1 movs r1, #0 strb r0, [r4, #0xc] strb r1, [r2] ldr r1, _08063F74 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 adds r0, #0x70 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r1, r1, r0 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08064428 _08063F72: pop {r4, pc} .align 2, 0 _08063F74: .4byte gUnk_03001160 thumb_func_start sub_08063F78 sub_08063F78: @ 0x08063F78 push {lr} adds r2, r0, #0 ldr r0, _08063FA8 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08063FA6 ldrb r0, [r2, #0xc] subs r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x14] lsrs r1, r1, #1 adds r0, r2, #0 adds r0, #0x70 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 adds r1, r1, r0 adds r0, r2, #0 bl sub_08004260 _08063FA6: pop {pc} .align 2, 0 _08063FA8: .4byte gUnk_02000050 thumb_func_start sub_08063FAC sub_08063FAC: @ 0x08063FAC push {r4, r5, r6, lr} adds r6, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x3f adds r2, r0, #0 ands r2, r1 ldrb r3, [r6, #0x1e] adds r5, r0, #0 ands r5, r3 adds r1, r6, #0 adds r1, #0x5b ldrb r1, [r1] adds r4, r0, #0 ands r4, r1 ldrb r0, [r6, #9] cmp r0, #0x15 bne _08063FEC movs r0, #0x40 ands r0, r3 cmp r0, #0 beq _08063FE2 adds r5, #0x21 movs r2, #1 rsbs r2, r2, #0 movs r4, #0 b _08063FF6 _08063FE2: adds r2, #0x19 cmp r4, #0 beq _08063FF6 adds r4, #0x1f b _08063FF6 _08063FEC: adds r2, #0x46 adds r5, #0x2d cmp r4, #0 beq _08063FF6 adds r4, #0x4c _08063FF6: subs r4, #1 adds r0, r6, #0 movs r1, #0 bl sub_0806FF60 adds r0, r6, #0 movs r1, #1 adds r2, r5, #0 bl sub_0806FF60 adds r0, r6, #0 movs r1, #2 adds r2, r4, #0 bl sub_0806FF60 adds r0, r6, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r6, #0 movs r1, #1 movs r2, #2 bl sub_0806FFD8 adds r0, r6, #0 bl sub_0807000C pop {r4, r5, r6, pc} thumb_func_start sub_08064030 sub_08064030: @ 0x08064030 ldr r0, _08064040 @ =gUnk_02034350 ldr r2, [r0, #0x68] rsbs r0, r2, #0 orrs r0, r2 lsrs r0, r0, #0x1f str r0, [r1, #0x14] bx lr .align 2, 0 _08064040: .4byte gUnk_02034350 thumb_func_start sub_08064044 sub_08064044: @ 0x08064044 ldr r1, _0806404C @ =gUnk_030010A0 movs r0, #1 strb r0, [r1, #8] bx lr .align 2, 0 _0806404C: .4byte gUnk_030010A0 thumb_func_start sub_08064050 sub_08064050: @ 0x08064050 push {lr} adds r2, r1, #0 movs r1, #0 str r1, [r2, #4] ldrb r0, [r0, #0xb] cmp r0, #0x12 beq _08064072 cmp r0, #0x12 bgt _08064068 cmp r0, #0x11 beq _0806406E b _0806407A _08064068: cmp r0, #0x13 beq _08064076 b _0806407A _0806406E: movs r0, #1 b _08064078 _08064072: movs r0, #2 b _08064078 _08064076: movs r0, #3 _08064078: str r0, [r2, #4] _0806407A: pop {pc} thumb_func_start sub_0806407C sub_0806407C: @ 0x0806407C push {r4, r5, r6, lr} adds r4, r0, #0 adds r5, r1, #0 ldrb r0, [r5, #0x18] cmp r0, #0 bne _080640E8 adds r0, #1 strb r0, [r5, #0x18] bl sub_08000E50 movs r1, #0x3f ands r0, r1 adds r0, #0x20 strh r0, [r5, #0x12] bl sub_08000E50 adds r1, r0, #0 movs r0, #0x18 ands r1, r0 ldrb r0, [r4, #0x15] cmp r0, #8 beq _080640C4 cmp r0, #8 bgt _080640B2 cmp r0, #0 beq _080640BC b _080640DA _080640B2: cmp r0, #0x10 beq _080640CC cmp r0, #0x18 beq _080640D4 b _080640DA _080640BC: cmp r1, #0x10 bne _080640DA movs r1, #8 b _080640DA _080640C4: cmp r1, #0x18 bne _080640DA movs r1, #0x10 b _080640DA _080640CC: cmp r1, #0 bne _080640DA movs r1, #0x18 b _080640DA _080640D4: cmp r1, #8 bne _080640DA movs r1, #0 _080640DA: strb r1, [r4, #0x15] adds r0, r1, #0 bl sub_0806F5B0 strb r0, [r4, #0x14] movs r0, #0x80 strh r0, [r4, #0x24] _080640E8: ldrb r0, [r4, #0x14] lsrs r2, r0, #1 adds r1, r2, #4 adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r1, r0 beq _0806410A adds r0, r4, #0 adds r0, #0x70 movs r1, #0 ldrsb r1, [r0, r1] adds r1, #4 adds r1, r2, r1 adds r0, r4, #0 bl sub_08004260 _0806410A: adds r0, r4, #0 bl sub_080AEF88 movs r0, #0x2e ldrsh r1, [r4, r0] adds r2, r4, #0 adds r2, #0x68 movs r3, #0 ldrsh r0, [r2, r3] subs r1, r1, r0 cmp r1, #0x10 ble _0806412C ldrh r0, [r2] adds r0, #0x10 strh r0, [r4, #0x2e] movs r0, #1 strh r0, [r5, #0x12] _0806412C: movs r3, #0x10 rsbs r3, r3, #0 cmp r1, r3 bge _0806413E ldrh r0, [r2] subs r0, #0x10 strh r0, [r4, #0x2e] movs r0, #1 strh r0, [r5, #0x12] _0806413E: movs r6, #0x32 ldrsh r1, [r4, r6] adds r2, r4, #0 adds r2, #0x6a movs r6, #0 ldrsh r0, [r2, r6] subs r1, r1, r0 cmp r1, #0x10 ble _0806415A ldrh r0, [r2] adds r0, #0x10 strh r0, [r4, #0x32] movs r0, #1 strh r0, [r5, #0x12] _0806415A: cmp r1, r3 bge _08064168 ldrh r0, [r2] subs r0, #0x10 strh r0, [r4, #0x32] movs r0, #1 strh r0, [r5, #0x12] _08064168: ldrh r0, [r5, #0x12] subs r0, #1 strh r0, [r5, #0x12] lsls r0, r0, #0x10 cmp r0, #0 beq _0806417A ldr r1, _0806417C @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0806417A: pop {r4, r5, r6, pc} .align 2, 0 _0806417C: .4byte gUnk_02033280 thumb_func_start sub_08064180 sub_08064180: @ 0x08064180 push {lr} movs r0, #7 movs r1, #0x15 movs r2, #7 bl sub_0805EB00 cmp r0, #0 beq _08064194 bl sub_0805E7BC _08064194: pop {pc} .align 2, 0 thumb_func_start sub_08064198 sub_08064198: @ 0x08064198 push {r4, r5, r6, lr} adds r5, r0, #0 adds r4, r5, #0 adds r4, #0x71 ldrb r1, [r4] movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 ble _080641AE subs r0, r1, #1 strb r0, [r4] _080641AE: ldr r0, _080641D8 @ =gUnk_03001160 movs r2, #0x32 ldrsh r1, [r0, r2] movs r2, #0x32 ldrsh r0, [r5, r2] subs r1, r1, r0 cmp r1, #2 ble _080641C0 movs r1, #2 _080641C0: movs r0, #2 rsbs r0, r0, #0 cmp r1, r0 bge _080641CA adds r1, r0, #0 _080641CA: adds r6, r4, #0 cmp r1, #0 beq _08064256 cmp r1, #0 ble _080641DC movs r0, #0x10 b _080641DE .align 2, 0 _080641D8: .4byte gUnk_03001160 _080641DC: movs r0, #0 _080641DE: strb r0, [r5, #0x15] cmp r1, #0 bge _080641E6 rsbs r1, r1, #0 _080641E6: lsls r0, r1, #8 strh r0, [r5, #0x24] movs r0, #0x32 ldrsh r4, [r5, r0] adds r0, r5, #0 bl sub_080AEF88 movs r1, #0x32 ldrsh r0, [r5, r1] adds r6, r5, #0 adds r6, #0x71 cmp r4, r0 beq _08064256 ldr r0, _080642B0 @ =gUnk_03001160 movs r2, #0x24 ldrsh r1, [r0, r2] movs r0, #0xa0 lsls r0, r0, #1 cmp r1, r0 ble _08064222 ldr r0, _080642B4 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #6 bl __modsi3 cmp r0, #0 bne _08064222 adds r0, r5, #0 bl sub_080A29FC _08064222: adds r4, r5, #0 adds r4, #0x71 movs r0, #0xa strb r0, [r4] ldrb r0, [r5, #0x15] bl sub_0806F5B0 strb r0, [r5, #0x14] lsls r0, r0, #0x18 lsrs r0, r0, #0x19 adds r1, r5, #0 adds r1, #0x70 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r1, #4 adds r1, r0, r1 adds r0, r5, #0 adds r0, #0x58 adds r6, r4, #0 ldrb r0, [r0] cmp r1, r0 beq _08064256 adds r0, r5, #0 bl sub_08004260 _08064256: movs r0, #0 ldrsb r0, [r6, r0] cmp r0, #0 bne _0806428C ldr r1, _080642B0 @ =gUnk_03001160 adds r0, r5, #0 bl sub_080045C4 bl sub_0806F5B0 strb r0, [r5, #0x14] lsls r0, r0, #0x18 lsrs r0, r0, #0x19 adds r1, r5, #0 adds r1, #0x70 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r1, r0, r1 adds r0, r5, #0 adds r0, #0x58 ldrb r0, [r0] cmp r1, r0 beq _0806428C adds r0, r5, #0 bl sub_08004260 _0806428C: adds r0, r5, #0 bl sub_0806ED78 movs r0, #0x36 ldrsh r4, [r5, r0] ldr r0, _080642B0 @ =gUnk_03001160 ldrh r0, [r0, #0x36] strh r0, [r5, #0x36] cmp r4, #0 bge _080642AC lsls r0, r0, #0x10 cmp r0, #0 bne _080642AC adds r0, r5, #0 bl sub_080A29FC _080642AC: pop {r4, r5, r6, pc} .align 2, 0 _080642B0: .4byte gUnk_03001160 _080642B4: .4byte gUnk_030010A0 thumb_func_start sub_080642B8 sub_080642B8: @ 0x080642B8 push {r4, r5, r6, lr} adds r5, r0, #0 adds r4, r5, #0 adds r4, #0x71 ldrb r1, [r4] movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 ble _080642CE subs r0, r1, #1 strb r0, [r4] _080642CE: ldr r0, _080642F8 @ =gUnk_03001160 movs r2, #0x2e ldrsh r1, [r0, r2] movs r2, #0x2e ldrsh r0, [r5, r2] subs r1, r1, r0 cmp r1, #2 ble _080642E0 movs r1, #2 _080642E0: movs r0, #2 rsbs r0, r0, #0 cmp r1, r0 bge _080642EA adds r1, r0, #0 _080642EA: adds r6, r4, #0 cmp r1, #0 beq _08064376 cmp r1, #0 ble _080642FC movs r0, #8 b _080642FE .align 2, 0 _080642F8: .4byte gUnk_03001160 _080642FC: movs r0, #0x18 _080642FE: strb r0, [r5, #0x15] cmp r1, #0 bge _08064306 rsbs r1, r1, #0 _08064306: lsls r0, r1, #8 strh r0, [r5, #0x24] movs r0, #0x2e ldrsh r4, [r5, r0] adds r0, r5, #0 bl sub_080AEF88 movs r1, #0x2e ldrsh r0, [r5, r1] adds r6, r5, #0 adds r6, #0x71 cmp r4, r0 beq _08064376 ldr r0, _080643D0 @ =gUnk_03001160 movs r2, #0x24 ldrsh r1, [r0, r2] movs r0, #0xa0 lsls r0, r0, #1 cmp r1, r0 ble _08064342 ldr r0, _080643D4 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #6 bl __modsi3 cmp r0, #0 bne _08064342 adds r0, r5, #0 bl sub_080A29FC _08064342: adds r4, r5, #0 adds r4, #0x71 movs r0, #0xa strb r0, [r4] ldrb r0, [r5, #0x15] bl sub_0806F5B0 strb r0, [r5, #0x14] lsls r0, r0, #0x18 lsrs r0, r0, #0x19 adds r1, r5, #0 adds r1, #0x70 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r1, #4 adds r1, r0, r1 adds r0, r5, #0 adds r0, #0x58 adds r6, r4, #0 ldrb r0, [r0] cmp r1, r0 beq _08064376 adds r0, r5, #0 bl sub_08004260 _08064376: movs r0, #0 ldrsb r0, [r6, r0] cmp r0, #0 bne _080643AC ldr r1, _080643D0 @ =gUnk_03001160 adds r0, r5, #0 bl sub_080045C4 bl sub_0806F5B0 strb r0, [r5, #0x14] lsls r0, r0, #0x18 lsrs r0, r0, #0x19 adds r1, r5, #0 adds r1, #0x70 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r1, r0, r1 adds r0, r5, #0 adds r0, #0x58 ldrb r0, [r0] cmp r1, r0 beq _080643AC adds r0, r5, #0 bl sub_08004260 _080643AC: adds r0, r5, #0 bl sub_0806ED78 movs r0, #0x36 ldrsh r4, [r5, r0] ldr r0, _080643D0 @ =gUnk_03001160 ldrh r0, [r0, #0x36] strh r0, [r5, #0x36] cmp r4, #0 bge _080643CC lsls r0, r0, #0x10 cmp r0, #0 bne _080643CC adds r0, r5, #0 bl sub_080A29FC _080643CC: pop {r4, r5, r6, pc} .align 2, 0 _080643D0: .4byte gUnk_03001160 _080643D4: .4byte gUnk_030010A0 thumb_func_start sub_080643D8 sub_080643D8: @ 0x080643D8 push {r4, lr} adds r4, r0, #0 movs r0, #2 bl sub_0807CC30 cmp r0, #0 bne _080643EA movs r3, #0 b _08064406 _080643EA: movs r0, #2 bl sub_0807CA84 cmp r0, #0 bne _080643F8 movs r3, #1 b _08064406 _080643F8: movs r0, #3 bl sub_0807CA84 movs r3, #3 cmp r0, #0 bne _08064406 movs r3, #2 _08064406: ldrb r1, [r4, #0xb] rsbs r0, r1, #0 orrs r0, r1 lsrs r0, r0, #0x1f ldr r2, _08064424 @ =gUnk_0810F6D4 lsls r1, r3, #1 lsls r0, r0, #3 adds r1, r1, r0 adds r1, r1, r2 ldrh r0, [r1] adds r1, r4, #0 bl sub_08056398 pop {r4, pc} .align 2, 0 _08064424: .4byte gUnk_0810F6D4 thumb_func_start sub_08064428 sub_08064428: @ 0x08064428 push {lr} adds r3, r0, #0 ldr r0, _0806444C @ =gUnk_02002A40 ldrb r0, [r0, #8] subs r1, r0, #2 cmp r1, #0 bge _08064438 movs r1, #0 _08064438: ldrb r2, [r3, #0xb] movs r0, #0x80 ands r0, r2 cmp r0, #0 bne _08064454 ldrb r0, [r3, #0xb] lsls r0, r0, #3 ldr r1, _08064450 @ =gUnk_0810CF4C b _08064460 .align 2, 0 _0806444C: .4byte gUnk_02002A40 _08064450: .4byte gUnk_0810CF4C _08064454: movs r0, #0x7f ands r0, r2 lsls r0, r0, #6 lsls r1, r1, #3 ldr r2, _0806446C @ =gUnk_0810D0A4 adds r1, r1, r2 _08064460: adds r1, r0, r1 adds r0, r3, #0 bl sub_0806F1AC pop {pc} .align 2, 0 _0806446C: .4byte gUnk_0810D0A4 thumb_func_start sub_08064470 sub_08064470: @ 0x08064470 push {lr} ldr r0, _08064484 @ =gUnk_03003F80 adds r0, #0xab ldrb r0, [r0] cmp r0, #1 beq _0806447E movs r0, #0 _0806447E: str r0, [r1, #0x14] pop {pc} .align 2, 0 _08064484: .4byte gUnk_03003F80 thumb_func_start sub_08064488 sub_08064488: @ 0x08064488 push {lr} ldr r1, _080644A0 @ =gUnk_03003F80 adds r0, r1, #0 adds r0, #0xa8 ldrb r0, [r0] cmp r0, #2 beq _0806449C adds r1, #0xab movs r0, #0 strb r0, [r1] _0806449C: pop {pc} .align 2, 0 _080644A0: .4byte gUnk_03003F80 thumb_func_start sub_080644A4 sub_080644A4: @ 0x080644A4 ldr r0, _080644B0 @ =gUnk_03003F80 adds r0, #0xab movs r1, #0 strb r1, [r0] bx lr .align 2, 0 _080644B0: .4byte gUnk_03003F80 thumb_func_start sub_080644B4 sub_080644B4: @ 0x080644B4 push {lr} adds r2, r1, #0 movs r3, #0 ldrb r1, [r0, #0x14] ldr r0, [r2, #4] cmp r1, r0 bne _080644C4 movs r3, #1 _080644C4: str r3, [r2, #0x14] pop {pc} thumb_func_start sub_080644C8 sub_080644C8: @ 0x080644C8 push {r4, lr} adds r2, r0, #0 movs r1, #0x2e ldrsh r0, [r2, r1] ldr r3, _08064500 @ =gUnk_03000BF0 movs r4, #0xa ldrsh r1, [r3, r4] subs r1, r0, r1 adds r0, r1, #0 adds r0, #8 cmp r0, #0 blt _08064504 adds r0, r1, #0 subs r0, #8 cmp r0, #0xf0 bgt _08064504 movs r0, #0x32 ldrsh r1, [r2, r0] movs r2, #0xc ldrsh r0, [r3, r2] subs r0, r1, r0 cmp r0, #0 blt _08064504 subs r0, #0x18 cmp r0, #0xa0 bgt _08064504 movs r0, #1 b _08064506 .align 2, 0 _08064500: .4byte gUnk_03000BF0 _08064504: movs r0, #0 _08064506: pop {r4, pc} thumb_func_start sub_08064508 sub_08064508: @ 0x08064508 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0806451E adds r0, r2, #0 bl sub_08064570 b _08064522 _0806451E: bl sub_0805E780 _08064522: pop {pc} thumb_func_start sub_08064524 sub_08064524: @ 0x08064524 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r0, [r0] movs r2, #0x7f ands r2, r0 ldrb r5, [r4, #0x1e] ldrb r0, [r4, #9] cmp r0, #0x16 bne _08064540 cmp r2, #0 beq _08064548 adds r2, #0xa b _08064548 _08064540: cmp r2, #0 beq _08064546 adds r2, #0x1a _08064546: adds r5, #0x10 _08064548: subs r2, #1 adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 adds r0, r4, #0 movs r1, #1 adds r2, r5, #0 bl sub_0806FF60 adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r4, #0 bl sub_0807000C pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08064570 sub_08064570: @ 0x08064570 push {r4, r5, lr} adds r4, r0, #0 ldrb r5, [r4, #0xc] cmp r5, #1 beq _080645EA cmp r5, #1 bgt _08064584 cmp r5, #0 beq _0806458A b _0806463C _08064584: cmp r5, #2 beq _0806462C b _0806463C _0806458A: ldrb r1, [r4, #9] movs r0, #0x16 eors r1, r0 rsbs r0, r1, #0 orrs r0, r1 lsrs r0, r0, #0x1f lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #2 ldr r0, _080645D0 @ =gUnk_0810F874 adds r1, r1, r0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806463C ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] strb r5, [r4, #0xe] adds r0, r4, #0 bl sub_0805ACC0 adds r2, r0, #0 cmp r2, #0 bne _080645D4 ldrh r0, [r4, #0x2e] adds r1, r4, #0 adds r1, #0x6c strh r0, [r1] ldrh r0, [r4, #0x32] adds r1, #2 strh r0, [r1] b _080645E0 .align 2, 0 _080645D0: .4byte gUnk_0810F874 _080645D4: lsrs r1, r2, #0x10 adds r0, r4, #0 adds r0, #0x6c strh r1, [r0] adds r0, #2 strh r2, [r0] _080645E0: movs r0, #0 str r0, [r4, #0x68] adds r0, r4, #0 bl sub_0807DD50 _080645EA: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 adds r2, r4, #0 adds r2, #0x39 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _0806463C ldrb r0, [r4, #0xc] adds r0, #1 movs r1, #0 strb r0, [r4, #0xc] strb r1, [r2] ldr r1, _08064628 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004260 ldr r0, [r4, #0x68] cmp r0, #0 beq _0806463C bl _call_via_r0 b _0806463C .align 2, 0 _08064628: .4byte gUnk_03001160 _0806462C: ldr r0, _08064640 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _0806463C movs r0, #1 strb r0, [r4, #0xc] _0806463C: pop {r4, r5, pc} .align 2, 0 _08064640: .4byte gUnk_02000050 thumb_func_start sub_08064644 sub_08064644: @ 0x08064644 ldr r1, [r1, #4] str r1, [r0, #0x68] bx lr .align 2, 0 thumb_func_start sub_0806464C sub_0806464C: @ 0x0806464C push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x15 bl sub_0807CC30 cmp r0, #0 beq _0806465E movs r4, #2 b _08064674 _0806465E: movs r0, #0xa0 bl sub_0807CBD0 cmp r0, #0 bne _08064672 movs r4, #0 movs r0, #0xa0 bl sub_0807CCB4 b _08064674 _08064672: movs r4, #1 _08064674: ldr r0, _08064684 @ =gUnk_0810F88C lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 bl sub_08056398 pop {r4, r5, pc} .align 2, 0 _08064684: .4byte gUnk_0810F88C thumb_func_start sub_08064688 sub_08064688: @ 0x08064688 push {lr} ldr r1, _0806469C @ =gUnk_02002A40 ldrb r1, [r1, #8] lsls r1, r1, #3 ldr r2, _080646A0 @ =gUnk_0810F894 adds r1, r1, r2 bl sub_0806F1AC pop {pc} .align 2, 0 _0806469C: .4byte gUnk_02002A40 _080646A0: .4byte gUnk_0810F894 thumb_func_start sub_080646A4 sub_080646A4: @ 0x080646A4 push {r4, r5, r6, lr} adds r4, r0, #0 adds r5, r1, #0 ldrb r0, [r5, #0x18] cmp r0, #0 bne _08064710 adds r0, #1 strb r0, [r5, #0x18] bl sub_08000E50 movs r1, #0x3f ands r0, r1 adds r0, #0x20 strh r0, [r5, #0x12] bl sub_08000E50 adds r1, r0, #0 movs r0, #0x18 ands r1, r0 ldrb r0, [r4, #0x15] cmp r0, #8 beq _080646EC cmp r0, #8 bgt _080646DA cmp r0, #0 beq _080646E4 b _08064702 _080646DA: cmp r0, #0x10 beq _080646F4 cmp r0, #0x18 beq _080646FC b _08064702 _080646E4: cmp r1, #0x10 bne _08064702 movs r1, #8 b _08064702 _080646EC: cmp r1, #0x18 bne _08064702 movs r1, #0x10 b _08064702 _080646F4: cmp r1, #0 bne _08064702 movs r1, #0x18 b _08064702 _080646FC: cmp r1, #8 bne _08064702 movs r1, #0 _08064702: strb r1, [r4, #0x15] adds r0, r1, #0 bl sub_0806F5B0 strb r0, [r4, #0x14] movs r0, #0x80 strh r0, [r4, #0x24] _08064710: ldr r0, [r5, #8] movs r1, #2 orrs r0, r1 str r0, [r5, #8] adds r0, r4, #0 bl sub_080AEF88 movs r0, #0x2e ldrsh r1, [r4, r0] adds r2, r4, #0 adds r2, #0x6c movs r3, #0 ldrsh r0, [r2, r3] subs r1, r1, r0 cmp r1, #0x10 ble _0806473A ldrh r0, [r2] adds r0, #0x10 strh r0, [r4, #0x2e] movs r0, #1 strh r0, [r5, #0x12] _0806473A: movs r3, #0x10 rsbs r3, r3, #0 cmp r1, r3 bge _0806474C ldrh r0, [r2] subs r0, #0x10 strh r0, [r4, #0x2e] movs r0, #1 strh r0, [r5, #0x12] _0806474C: movs r6, #0x32 ldrsh r1, [r4, r6] adds r2, r4, #0 adds r2, #0x6e movs r6, #0 ldrsh r0, [r2, r6] subs r1, r1, r0 cmp r1, #0x10 ble _08064768 ldrh r0, [r2] adds r0, #0x10 strh r0, [r4, #0x32] movs r0, #1 strh r0, [r5, #0x12] _08064768: cmp r1, r3 bge _08064776 ldrh r0, [r2] subs r0, #0x10 strh r0, [r4, #0x32] movs r0, #1 strh r0, [r5, #0x12] _08064776: ldrh r0, [r5, #0x12] subs r0, #1 strh r0, [r5, #0x12] lsls r0, r0, #0x10 cmp r0, #0 beq _08064788 ldr r1, _0806478C @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _08064788: pop {r4, r5, r6, pc} .align 2, 0 _0806478C: .4byte gUnk_02033280 thumb_func_start sub_08064790 sub_08064790: @ 0x08064790 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _080647C2 cmp r0, #1 bgt _080647A4 cmp r0, #0 beq _080647AA b _08064824 _080647A4: cmp r0, #2 beq _0806480A b _08064824 _080647AA: movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_0807DD50 b _08064824 _080647C2: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _08064800 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] adds r0, r4, #0 bl sub_0806F118 adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] adds r0, #0x10 strb r1, [r0] ldr r1, _080647FC @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC b _08064824 .align 2, 0 _080647FC: .4byte gUnk_03001160 _08064800: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 b _08064824 _0806480A: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _08064824 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x68 ldrb r1, [r0] adds r0, r4, #0 bl sub_080042AC _08064824: pop {r4, pc} .align 2, 0 thumb_func_start sub_08064828 sub_08064828: @ 0x08064828 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_0801E99C adds r5, r0, #0 ldr r6, _08064858 @ =gUnk_02002A40 adds r0, r4, #0 bl sub_08002632 ldr r2, _0806485C @ =0x00000141 adds r1, r6, r2 adds r0, r0, r1 ldrb r0, [r0] cmp r0, #0 beq _0806484E ldrb r0, [r6, #8] cmp r0, #6 bhi _0806484E movs r5, #0 _0806484E: adds r0, r4, #0 adds r1, r5, #0 bl sub_08078784 pop {r4, r5, r6, pc} .align 2, 0 _08064858: .4byte gUnk_02002A40 _0806485C: .4byte 0x00000141 thumb_func_start sub_08064860 sub_08064860: @ 0x08064860 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _08064886 adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 movs r1, #6 bl sub_080042AC b _0806488C _08064886: adds r0, r2, #0 bl sub_080042B8 _0806488C: pop {pc} .align 2, 0 thumb_func_start sub_08064890 sub_08064890: @ 0x08064890 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _080648C2 cmp r0, #1 bgt _080648A4 cmp r0, #0 beq _080648AA b _08064924 _080648A4: cmp r0, #2 beq _0806490A b _08064924 _080648AA: movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_0807DD50 b _08064924 _080648C2: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _08064900 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] adds r0, r4, #0 bl sub_0806F118 adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] adds r0, #0x10 strb r1, [r0] ldr r1, _080648FC @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC b _08064924 .align 2, 0 _080648FC: .4byte gUnk_03001160 _08064900: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 b _08064924 _0806490A: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _08064924 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x68 ldrb r1, [r0] adds r0, r4, #0 bl sub_080042AC _08064924: pop {r4, pc} .align 2, 0 thumb_func_start sub_08064928 sub_08064928: @ 0x08064928 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_0801E99C adds r5, r0, #0 ldr r6, _08064958 @ =gUnk_02002A40 adds r0, r4, #0 bl sub_08002632 ldr r2, _0806495C @ =0x00000141 adds r1, r6, r2 adds r0, r0, r1 ldrb r0, [r0] cmp r0, #0 beq _0806494E ldrb r0, [r6, #8] cmp r0, #6 bhi _0806494E movs r5, #0 _0806494E: adds r0, r4, #0 adds r1, r5, #0 bl sub_08078784 pop {r4, r5, r6, pc} .align 2, 0 _08064958: .4byte gUnk_02002A40 _0806495C: .4byte 0x00000141 thumb_func_start sub_08064960 sub_08064960: @ 0x08064960 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _08064986 adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 movs r1, #6 bl sub_080042AC b _0806498C _08064986: adds r0, r2, #0 bl sub_080042B8 _0806498C: pop {pc} .align 2, 0 thumb_func_start sub_08064990 sub_08064990: @ 0x08064990 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _080649C2 cmp r0, #1 bgt _080649A4 cmp r0, #0 beq _080649AA b _08064A24 _080649A4: cmp r0, #2 beq _08064A0A b _08064A24 _080649AA: movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_0807DD50 b _08064A24 _080649C2: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _08064A00 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] adds r0, r4, #0 bl sub_0806F118 adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] adds r0, #0x10 strb r1, [r0] ldr r1, _080649FC @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC b _08064A24 .align 2, 0 _080649FC: .4byte gUnk_03001160 _08064A00: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 b _08064A24 _08064A0A: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _08064A24 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x68 ldrb r1, [r0] adds r0, r4, #0 bl sub_080042AC _08064A24: pop {r4, pc} .align 2, 0 thumb_func_start sub_08064A28 sub_08064A28: @ 0x08064A28 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_0801E99C adds r5, r0, #0 ldr r6, _08064A58 @ =gUnk_02002A40 adds r0, r4, #0 bl sub_08002632 ldr r2, _08064A5C @ =0x00000141 adds r1, r6, r2 adds r0, r0, r1 ldrb r0, [r0] cmp r0, #0 beq _08064A4E ldrb r0, [r6, #8] cmp r0, #6 bhi _08064A4E movs r5, #0 _08064A4E: adds r0, r4, #0 adds r1, r5, #0 bl sub_08078784 pop {r4, r5, r6, pc} .align 2, 0 _08064A58: .4byte gUnk_02002A40 _08064A5C: .4byte 0x00000141 thumb_func_start sub_08064A60 sub_08064A60: @ 0x08064A60 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _08064A86 adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 movs r1, #6 bl sub_080042AC b _08064A8C _08064A86: adds r0, r2, #0 bl sub_080042B8 _08064A8C: pop {pc} .align 2, 0 thumb_func_start sub_08064A90 sub_08064A90: @ 0x08064A90 push {r4, r5, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 bne _08064ABC ldr r0, _08064AB8 @ =gUnk_0810FA44 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0806ED78 b _08064B42 .align 2, 0 _08064AB8: .4byte gUnk_0810FA44 _08064ABC: ldrb r1, [r4, #0xc] adds r5, r1, #0 cmp r5, #0 bne _08064AE4 ldr r1, _08064AE0 @ =gUnk_0810FA38 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _08064B42 movs r0, #1 strb r0, [r4, #0xc] strb r5, [r4, #0xe] adds r0, r4, #0 bl sub_0807DD50 b _08064B42 .align 2, 0 _08064AE0: .4byte gUnk_0810FA38 _08064AE4: movs r0, #0x80 ands r0, r1 lsls r0, r0, #0x18 lsrs r3, r0, #0x18 cmp r3, #0 beq _08064B00 adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _08064B42 movs r0, #1 strb r0, [r4, #0xc] b _08064B42 _08064B00: adds r2, r4, #0 adds r2, #0x39 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 bne _08064B34 movs r0, #0xff orrs r0, r1 strb r0, [r4, #0xc] strb r3, [r2] ldr r1, _08064B30 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 bl sub_0806F118 b _08064B42 .align 2, 0 _08064B30: .4byte gUnk_03001160 _08064B34: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 adds r0, r4, #0 bl sub_08064C9C _08064B42: pop {r4, r5, pc} thumb_func_start sub_08064B44 sub_08064B44: @ 0x08064B44 push {r4, lr} adds r4, r0, #0 ldr r1, _08064B80 @ =gUnk_0810FA38 bl sub_0806FDEC cmp r0, #0 beq _08064B7E adds r0, r4, #0 movs r1, #2 bl sub_08004260 ldr r1, _08064B84 @ =gUnk_0810FA5A adds r0, r4, #0 movs r2, #0 bl sub_0806EE04 adds r0, r4, #0 bl sub_08064CC0 movs r1, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0xd] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] _08064B7E: pop {r4, pc} .align 2, 0 _08064B80: .4byte gUnk_0810FA38 _08064B84: .4byte gUnk_0810FA5A thumb_func_start sub_08064B88 sub_08064B88: @ 0x08064B88 push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x39 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #1 beq _08064BFA cmp r0, #1 bgt _08064BA2 cmp r0, #0 beq _08064BA8 b _08064BFA _08064BA2: cmp r0, #2 beq _08064BCE b _08064BFA _08064BA8: adds r0, r4, #0 bl sub_0806EE20 adds r2, r0, #0 adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] strb r0, [r4, #0x14] cmp r2, #0 beq _08064BC6 movs r1, #0x7f ands r1, r2 adds r0, r4, #0 bl sub_08004260 _08064BC6: adds r0, r4, #0 bl sub_08004274 b _08064C28 _08064BCE: movs r0, #3 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0806EDC4 adds r1, r0, #0 cmp r1, #0 bge _08064BE0 ldrb r1, [r4, #0x14] _08064BE0: adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_08004260 movs r0, #0 strb r0, [r5] adds r0, r4, #0 bl sub_0806F118 b _08064C28 _08064BFA: movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0806EDC4 adds r1, r0, #0 cmp r1, #0 bge _08064C0C ldrb r1, [r4, #0x14] _08064C0C: adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_08004260 adds r1, r4, #0 adds r1, #0x39 movs r0, #0 strb r0, [r1] adds r0, r4, #0 bl sub_08064CD8 _08064C28: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08064C2C sub_08064C2C: @ 0x08064C2C push {lr} adds r2, r0, #0 ldr r0, _08064C4C @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08064C48 movs r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0xf] adds r0, r2, #0 bl sub_08004260 _08064C48: pop {pc} .align 2, 0 _08064C4C: .4byte gUnk_02000050 thumb_func_start sub_08064C50 sub_08064C50: @ 0x08064C50 push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _08064C68 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0xf] adds r0, r4, #0 bl sub_08004260 _08064C68: pop {r4, pc} .align 2, 0 thumb_func_start sub_08064C6C sub_08064C6C: @ 0x08064C6C push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r0, [r0] movs r2, #0x3f ands r2, r0 adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 ldrb r2, [r4, #0x1e] adds r0, r4, #0 movs r1, #1 bl sub_0806FF60 adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r4, #0 bl sub_0807000C pop {r4, pc} thumb_func_start sub_08064C9C sub_08064C9C: @ 0x08064C9C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xe] cmp r0, #0 beq _08064CB8 ldr r0, _08064CBC @ =gUnk_030010A0 ldr r0, [r0] movs r1, #3 ands r0, r1 cmp r0, #0 bne _08064CB8 adds r0, r2, #0 bl sub_080A29BC _08064CB8: pop {pc} .align 2, 0 _08064CBC: .4byte gUnk_030010A0 thumb_func_start sub_08064CC0 sub_08064CC0: @ 0x08064CC0 push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 pop {r4, pc} thumb_func_start sub_08064CD8 sub_08064CD8: @ 0x08064CD8 push {r4, r5, lr} adds r5, r0, #0 movs r4, #2 movs r0, #0x46 bl sub_0807CA84 cmp r0, #0 bne _08064CF4 movs r0, #0x73 bl sub_0807CBD0 rsbs r1, r0, #0 orrs r1, r0 lsrs r4, r1, #0x1f _08064CF4: ldr r0, _08064D04 @ =gUnk_0810FA54 lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 bl sub_08056398 pop {r4, r5, pc} .align 2, 0 _08064D04: .4byte gUnk_0810FA54 thumb_func_start sub_08064D08 sub_08064D08: @ 0x08064D08 movs r1, #1 strb r1, [r0, #0xe] bx lr .align 2, 0 thumb_func_start sub_08064D10 sub_08064D10: @ 0x08064D10 movs r1, #0 strb r1, [r0, #0xe] bx lr .align 2, 0 thumb_func_start sub_08064D18 sub_08064D18: @ 0x08064D18 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08064D50 ldr r1, _08064D4C @ =gUnk_0810FA38 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _08064D56 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #6 bl sub_08004260 b _08064D56 .align 2, 0 _08064D4C: .4byte gUnk_0810FA38 _08064D50: adds r0, r4, #0 bl sub_08004274 _08064D56: pop {r4, pc} thumb_func_start sub_08064D58 sub_08064D58: @ 0x08064D58 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08064D6E adds r0, r2, #0 bl sub_08064DE4 b _08064D74 _08064D6E: adds r0, r2, #0 bl sub_08064D78 _08064D74: pop {pc} .align 2, 0 thumb_func_start sub_08064D78 sub_08064D78: @ 0x08064D78 push {lr} ldr r2, _08064D8C @ =gUnk_0810FBFC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08064D8C: .4byte gUnk_0810FBFC thumb_func_start sub_08064D90 sub_08064D90: @ 0x08064D90 push {r4, lr} adds r4, r0, #0 movs r1, #2 bl sub_080042AC movs r0, #1 strb r0, [r4, #0xf] pop {r4, pc} thumb_func_start sub_08064DA0 sub_08064DA0: @ 0x08064DA0 push {r4, lr} adds r4, r0, #0 bl sub_08064EE8 adds r0, r4, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08064DC8 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #6 bl sub_080042AC movs r0, #0 bl sub_08056378 _08064DC8: pop {r4, pc} .align 2, 0 thumb_func_start sub_08064DCC sub_08064DCC: @ 0x08064DCC push {r4, lr} adds r4, r0, #0 bl sub_08064EE8 adds r0, r4, #0 movs r1, #2 bl sub_080042AC movs r0, #1 strb r0, [r4, #0xc] pop {r4, pc} .align 2, 0 thumb_func_start sub_08064DE4 sub_08064DE4: @ 0x08064DE4 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _08064E1A cmp r0, #1 bgt _08064DF8 cmp r0, #0 beq _08064DFE b _08064E6A _08064DF8: cmp r0, #2 beq _08064E56 b _08064E6A _08064DFE: movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] movs r0, #4 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_0807DD50 b _08064E6A _08064E1A: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _08064E4C movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] ldr r1, _08064E48 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 bl sub_0806F118 b _08064E6A .align 2, 0 _08064E48: .4byte gUnk_03001160 _08064E4C: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 b _08064E6A _08064E56: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _08064E6A movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0801E99C _08064E6A: adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r5, #0xf ands r5, r1 adds r0, r5, #0 eors r0, r1 strb r0, [r2] cmp r5, #0 beq _08064EA0 movs r1, #0x29 cmp r5, #3 bne _08064E86 movs r1, #0x2a _08064E86: adds r0, r4, #0 movs r2, #0 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _08064EA0 cmp r5, #2 bne _08064EA0 ldrb r0, [r2, #0x18] movs r1, #0x40 orrs r0, r1 strb r0, [r2, #0x18] _08064EA0: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08064EA4 sub_08064EA4: @ 0x08064EA4 push {r4, r5, lr} adds r4, r0, #0 bl sub_0801E99C adds r5, r4, #0 adds r5, #0x68 strb r0, [r5] ldrb r0, [r4, #0xa] cmp r0, #0 beq _08064EBE cmp r0, #3 beq _08064EC2 b _08064ED8 _08064EBE: movs r0, #0x59 b _08064EC4 _08064EC2: movs r0, #0x5a _08064EC4: bl sub_0801E7F4 cmp r0, #0 beq _08064ED8 movs r0, #0xc bl sub_0807CA84 cmp r0, #0 bne _08064ED8 strb r0, [r5] _08064ED8: adds r0, r4, #0 adds r0, #0x68 ldrb r1, [r0] adds r0, r4, #0 bl sub_08078784 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08064EE8 sub_08064EE8: @ 0x08064EE8 push {r4, r5, lr} adds r4, r0, #0 bl sub_080042B8 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r5, #0xf ands r5, r1 adds r0, r5, #0 eors r0, r1 strb r0, [r2] cmp r5, #0 beq _08064F26 movs r1, #0x2a cmp r5, #3 beq _08064F0C movs r1, #0x29 _08064F0C: adds r0, r4, #0 movs r2, #0 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _08064F26 cmp r5, #2 bne _08064F26 ldrb r0, [r2, #0x18] movs r1, #0x40 orrs r0, r1 strb r0, [r2, #0x18] _08064F26: pop {r4, r5, pc} thumb_func_start sub_08064F28 sub_08064F28: @ 0x08064F28 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 mov r8, r1 movs r0, #0 str r0, [r1, #0x14] ldr r1, _08064F60 @ =gUnk_0810FC50 ldrb r0, [r6, #0xa] adds r0, r0, r1 ldrb r7, [r0] adds r0, r7, #0 bl sub_0807CC3C cmp r0, #0 bne _08064F84 ldr r4, _08064F64 @ =gUnk_02002A40 adds r0, r6, #0 bl sub_08002632 ldr r1, _08064F68 @ =0x00000141 adds r4, r4, r1 adds r0, r0, r4 ldrb r4, [r0] cmp r4, #1 bls _08064F6C movs r5, #3 b _08064F7E .align 2, 0 _08064F60: .4byte gUnk_0810FC50 _08064F64: .4byte gUnk_02002A40 _08064F68: .4byte 0x00000141 _08064F6C: movs r0, #0xc bl sub_0807CA84 movs r5, #2 cmp r0, #0 bne _08064F7E rsbs r0, r4, #0 orrs r0, r4 lsrs r5, r0, #0x1f _08064F7E: movs r4, #1 rsbs r4, r4, #0 b _08064FD2 _08064F84: movs r0, #0x3a bl sub_0807CC30 cmp r0, #0 bne _08064FCE ldr r0, _08064FB0 @ =gUnk_02002A40 ldr r1, _08064FB4 @ =0x00000117 adds r0, r0, r1 ldrb r1, [r0] movs r0, #0x64 subs r4, r0, r1 cmp r4, #0 bgt _08064FB8 movs r5, #8 movs r4, #0 movs r0, #0x3a bl sub_0807CD04 movs r0, #1 mov r1, r8 str r0, [r1, #0x14] b _08064FD2 .align 2, 0 _08064FB0: .4byte gUnk_02002A40 _08064FB4: .4byte 0x00000117 _08064FB8: movs r5, #7 cmp r4, #9 ble _08064FC0 movs r5, #6 _08064FC0: cmp r4, #0x27 ble _08064FC6 movs r5, #5 _08064FC6: cmp r4, #0x45 ble _08064FD2 movs r5, #4 b _08064FD2 _08064FCE: movs r5, #8 movs r4, #0 _08064FD2: ldr r2, _08065008 @ =gUnk_0810FC08 ldrb r1, [r6, #0xa] lsls r0, r1, #3 adds r0, r0, r1 adds r0, r0, r5 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] adds r1, r6, #0 bl sub_08056398 cmp r4, #0 ble _08064FF4 ldr r1, _0806500C @ =gUnk_02000050 lsls r0, r4, #0x10 lsrs r0, r0, #0x10 str r0, [r1, #0x10] _08064FF4: adds r0, r7, #0 bl sub_0807CC3C cmp r0, #0 bne _08065010 adds r0, r7, #0 bl sub_0807CD10 b _08065016 .align 2, 0 _08065008: .4byte gUnk_0810FC08 _0806500C: .4byte gUnk_02000050 _08065010: adds r0, r7, #0 bl sub_0807CD8C _08065016: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0806501C sub_0806501C: @ 0x0806501C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _0806504A adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] movs r1, #6 ldrb r0, [r2, #0xa] cmp r0, #0 bne _08065042 movs r1, #0xa _08065042: adds r0, r2, #0 bl sub_080042AC b _08065050 _0806504A: adds r0, r2, #0 bl sub_08064EE8 _08065050: pop {pc} .align 2, 0 thumb_func_start sub_08065054 sub_08065054: @ 0x08065054 push {r4, lr} adds r4, r0, #0 ldr r1, _0806507C @ =gUnk_0810FDA4 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] adds r0, r4, #0 bl sub_0807DF74 adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} .align 2, 0 _0806507C: .4byte gUnk_0810FDA4 thumb_func_start sub_08065080 sub_08065080: @ 0x08065080 push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 movs r1, #4 bl sub_08004260 adds r0, r4, #0 bl sub_08078778 ldr r3, _080650C4 @ =gUnk_0810FDA0 adds r0, r4, #0 movs r1, #0 movs r2, #0 bl sub_08078850 ldr r1, _080650C8 @ =gUnk_080142B0 adds r0, r4, #0 bl sub_0807DAD0 adds r4, #0x84 str r0, [r4] pop {r4, pc} .align 2, 0 _080650C4: .4byte gUnk_0810FDA0 _080650C8: .4byte gUnk_080142B0 thumb_func_start sub_080650CC sub_080650CC: @ 0x080650CC push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 ldr r6, _080650F8 @ =gUnk_02034350 ldr r0, [r6, #0x68] movs r1, #1 ands r0, r1 cmp r0, #0 beq _08065100 movs r1, #0 movs r0, #4 strb r0, [r5, #0xc] strb r1, [r5, #0xd] adds r0, r5, #0 adds r0, #0x84 ldr r0, [r0] ldr r1, _080650FC @ =gUnk_080143C0 bl sub_0807DB88 b _080651A6 .align 2, 0 _080650F8: .4byte gUnk_02034350 _080650FC: .4byte gUnk_080143C0 _08065100: adds r2, r5, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x20 ands r0, r1 lsls r0, r0, #0x18 lsrs r4, r0, #0x18 cmp r4, #0 bne _0806517C adds r3, r5, #0 adds r3, #0x39 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _0806517C strb r4, [r3] ldrb r0, [r5, #0xc] adds r0, #1 strb r0, [r5, #0xc] adds r0, r5, #0 movs r1, #7 bl sub_08004260 ldrb r0, [r6, #6] cmp r0, #0 bne _0806513C ldr r7, _08065138 @ =0x00002C01 b _0806515E .align 2, 0 _08065138: .4byte 0x00002C01 _0806513C: ldrb r0, [r6, #6] bl sub_08053FD0 adds r7, r0, #0 ldrb r0, [r6, #6] bl sub_08053FE0 mov r8, r0 movs r0, #4 strb r0, [r5, #0xc] strb r4, [r5, #0xd] adds r0, r5, #0 adds r0, #0x84 ldr r0, [r0] ldr r1, _08065174 @ =gUnk_08014384 bl sub_0807DB88 _0806515E: adds r0, r7, #0 adds r1, r5, #0 bl sub_08056398 ldr r1, _08065178 @ =gUnk_02000050 mov r2, r8 lsls r0, r2, #0x10 lsrs r0, r0, #0x10 str r0, [r1, #0x10] b _080651A6 .align 2, 0 _08065174: .4byte gUnk_08014384 _08065178: .4byte gUnk_02000050 _0806517C: ldrb r1, [r2] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _080651A0 ldr r4, _0806519C @ =gUnk_0810FDB8 bl sub_08000E50 movs r1, #0xf ands r1, r0 adds r1, r1, r4 ldrb r1, [r1] adds r0, r5, #0 bl sub_08004260 b _080651A6 .align 2, 0 _0806519C: .4byte gUnk_0810FDB8 _080651A0: adds r0, r5, #0 bl sub_08004274 _080651A6: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_080651AC sub_080651AC: @ 0x080651AC push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldr r0, _080651D4 @ =gUnk_02000050 ldrb r0, [r0] movs r1, #0x7f ands r1, r0 cmp r1, #0 bne _080651D2 adds r0, r4, #0 adds r0, #0x39 strb r1, [r0] movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #4 bl sub_08004260 _080651D2: pop {r4, pc} .align 2, 0 _080651D4: .4byte gUnk_02000050 thumb_func_start sub_080651D8 sub_080651D8: @ 0x080651D8 push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldr r1, _080651F4 @ =gUnk_0810FDC8 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 _080651F4: .4byte gUnk_0810FDC8 thumb_func_start sub_080651F8 sub_080651F8: @ 0x080651F8 push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x20 ands r0, r1 cmp r0, #0 bne _0806522A movs r0, #1 strb r0, [r4, #0xd] movs r0, #0x3c strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #1 bl sub_08004260 movs r2, #0x18 rsbs r2, r2, #0 adds r0, r4, #0 movs r1, #8 bl sub_080A2CFC movs r0, #1 bl sub_08078A90 _0806522A: pop {r4, pc} thumb_func_start sub_0806522C sub_0806522C: @ 0x0806522C 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 _08065248 ldrb r0, [r1, #0xd] adds r0, #1 strb r0, [r1, #0xd] ldr r0, _0806524C @ =0x00002C16 bl sub_08056398 _08065248: pop {pc} .align 2, 0 _0806524C: .4byte 0x00002C16 thumb_func_start sub_08065250 sub_08065250: @ 0x08065250 push {r4, lr} adds r4, r0, #0 bl sub_08056338 adds r1, r0, #0 cmp r1, #0 beq _08065264 cmp r1, #1 beq _0806527E b _0806528A _08065264: ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] movs r0, #0x1e strb r0, [r4, #0xe] strb r1, [r4, #0xf] movs r2, #0x18 rsbs r2, r2, #0 adds r0, r4, #0 movs r1, #8 bl sub_080A2CFC b _0806528A _0806527E: movs r0, #0 movs r1, #7 strb r1, [r4, #0xd] strb r0, [r4, #0xe] movs r0, #2 strb r0, [r4, #0xf] _0806528A: pop {r4, pc} thumb_func_start sub_0806528C sub_0806528C: @ 0x0806528C 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 _080652A8 ldrb r0, [r1, #0xd] adds r0, #1 strb r0, [r1, #0xd] ldr r0, _080652AC @ =0x00002C18 bl sub_08056398 _080652A8: pop {pc} .align 2, 0 _080652AC: .4byte 0x00002C18 thumb_func_start sub_080652B0 sub_080652B0: @ 0x080652B0 push {lr} adds r2, r0, #0 ldr r0, _080652DC @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _080652DA ldrb r0, [r2, #0xd] adds r0, #1 strb r0, [r2, #0xd] movs r0, #0xa strb r0, [r2, #0xe] ldr r1, _080652E0 @ =gUnk_02034350 ldrb r0, [r2, #0xf] str r0, [r1, #0x68] movs r0, #0x36 movs r1, #0 movs r2, #0 bl sub_080A7C00 _080652DA: pop {pc} .align 2, 0 _080652DC: .4byte gUnk_02000050 _080652E0: .4byte gUnk_02034350 thumb_func_start sub_080652E4 sub_080652E4: @ 0x080652E4 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xe] cmp r0, #0 beq _080652F4 subs r0, #1 strb r0, [r1, #0xe] b _08065308 _080652F4: ldr r0, _0806530C @ =gUnk_03001160 ldrb r0, [r0, #0xc] cmp r0, #8 beq _08065308 ldrb r0, [r1, #0xd] adds r0, #1 strb r0, [r1, #0xd] ldr r0, _08065310 @ =0x00002C19 bl sub_08056398 _08065308: pop {pc} .align 2, 0 _0806530C: .4byte gUnk_03001160 _08065310: .4byte 0x00002C19 thumb_func_start sub_08065314 sub_08065314: @ 0x08065314 push {lr} adds r2, r0, #0 ldr r0, _08065334 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08065332 ldrb r0, [r2, #0xd] adds r0, #1 strb r0, [r2, #0xd] movs r0, #3 movs r1, #3 bl sub_080A7138 _08065332: pop {pc} .align 2, 0 _08065334: .4byte gUnk_02000050 thumb_func_start sub_08065338 sub_08065338: @ 0x08065338 push {lr} adds r2, r0, #0 ldr r0, _08065360 @ =gUnk_02000050 ldrb r0, [r0] movs r1, #0x7f ands r1, r0 cmp r1, #0 bne _0806535C movs r0, #1 strb r0, [r2, #0xc] strb r1, [r2, #0xd] ldr r1, _08065364 @ =gUnk_02034350 ldrb r0, [r2, #0xf] str r0, [r1, #0x68] adds r0, r2, #0 movs r1, #4 bl sub_08004260 _0806535C: pop {pc} .align 2, 0 _08065360: .4byte gUnk_02000050 _08065364: .4byte gUnk_02034350 thumb_func_start sub_08065368 sub_08065368: @ 0x08065368 push {lr} bl sub_08004274 pop {pc} thumb_func_start sub_08065370 sub_08065370: @ 0x08065370 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r4, r0, #0 mov r8, r1 movs r6, #1 ldr r0, _0806539C @ =gUnk_02034350 ldrb r5, [r0, #6] movs r0, #0 mov sb, r0 cmp r5, #0x66 beq _0806541A cmp r5, #0x66 bhi _080653AA cmp r5, #0x61 beq _08065426 cmp r5, #0x61 bhi _080653A0 cmp r5, #0xd beq _080653D0 b _0806543C .align 2, 0 _0806539C: .4byte gUnk_02034350 _080653A0: cmp r5, #0x64 beq _08065414 cmp r5, #0x65 beq _08065420 b _0806543C _080653AA: cmp r5, #0x6c blo _0806543C cmp r5, #0x6d bls _080653EC cmp r5, #0x6f bhi _0806543C ldr r2, _080653C8 @ =gUnk_080FD5A4 ldr r1, _080653CC @ =gUnk_02002A40 adds r0, r1, #0 adds r0, #0xaf ldrb r0, [r0] adds r0, r0, r2 adds r1, #0xad b _080653FA .align 2, 0 _080653C8: .4byte gUnk_080FD5A4 _080653CC: .4byte gUnk_02002A40 _080653D0: movs r0, #0xd bl sub_0807CA84 cmp r0, #0 bne _080653E4 movs r0, #0xe bl sub_0807CA84 cmp r0, #0 beq _0806543C _080653E4: ldr r0, _080653E8 @ =0x00002C0B b _080654C2 .align 2, 0 _080653E8: .4byte 0x00002C0B _080653EC: ldr r2, _08065408 @ =gUnk_080FD5A0 ldr r1, _0806540C @ =gUnk_02002A40 adds r0, r1, #0 adds r0, #0xae ldrb r0, [r0] adds r0, r0, r2 adds r1, #0xac _080653FA: ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bhi _0806543C ldr r0, _08065410 @ =0x00002C0E b _080654C2 .align 2, 0 _08065408: .4byte gUnk_080FD5A0 _0806540C: .4byte gUnk_02002A40 _08065410: .4byte 0x00002C0E _08065414: movs r1, #0x55 mov sb, r1 b _0806543C _0806541A: movs r0, #0x56 mov sb, r0 b _0806543C _08065420: movs r1, #0xcd mov sb, r1 b _0806543C _08065426: ldr r0, _08065494 @ =gUnk_02002A40 adds r0, #0xc2 ldrh r1, [r0] ldr r0, _08065498 @ =0x000003E6 cmp r1, r0 bls _0806543C ldr r0, _0806549C @ =0x00002C0E adds r1, r4, #0 bl sub_08056398 movs r6, #0 _0806543C: cmp r6, #0 beq _080654C8 adds r0, r5, #0 bl sub_08053FE0 adds r6, r0, #0 ldr r7, _08065494 @ =gUnk_02002A40 adds r0, r7, #0 adds r0, #0xc0 ldrh r0, [r0] cmp r6, r0 bhi _080654C0 rsbs r0, r6, #0 bl sub_080526CC ldr r4, _080654A0 @ =gUnk_02034350 ldrb r1, [r4, #7] adds r0, r5, #0 movs r2, #2 bl sub_080A7C18 movs r0, #0 strb r0, [r4, #6] strb r0, [r4, #7] movs r0, #1 mov r1, r8 str r0, [r1, #0x14] mov r0, sb cmp r0, #0 beq _0806547C bl sub_0807CCB4 _0806547C: ldr r1, [r7, #0x5c] movs r0, #2 rsbs r0, r0, #0 cmp r1, r0 bhi _0806548A adds r0, r1, #1 str r0, [r7, #0x5c] _0806548A: ldr r0, [r7, #0x5c] cmp r0, #9 bls _080654A8 ldr r0, _080654A4 @ =0x00002C11 b _080654B6 .align 2, 0 _08065494: .4byte gUnk_02002A40 _08065498: .4byte 0x000003E6 _0806549C: .4byte 0x00002C0E _080654A0: .4byte gUnk_02034350 _080654A4: .4byte 0x00002C11 _080654A8: cmp r6, #0x63 bls _080654B4 ldr r0, _080654B0 @ =0x00002C10 b _080654B6 .align 2, 0 _080654B0: .4byte 0x00002C10 _080654B4: ldr r0, _080654BC @ =0x00002C0F _080654B6: mov r1, r8 str r0, [r1, #4] b _080654CE .align 2, 0 _080654BC: .4byte 0x00002C0F _080654C0: ldr r0, _080654D8 @ =0x00002C0D _080654C2: adds r1, r4, #0 bl sub_08056398 _080654C8: movs r0, #0 mov r1, r8 str r0, [r1, #0x14] _080654CE: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _080654D8: .4byte 0x00002C0D thumb_func_start sub_080654DC sub_080654DC: @ 0x080654DC push {lr} movs r2, #0x18 rsbs r2, r2, #0 movs r1, #8 bl sub_080A2D0C pop {pc} .align 2, 0 thumb_func_start sub_080654EC sub_080654EC: @ 0x080654EC push {lr} movs r2, #0x18 rsbs r2, r2, #0 movs r1, #8 bl sub_080A2CFC pop {pc} .align 2, 0 thumb_func_start sub_080654FC sub_080654FC: @ 0x080654FC push {lr} adds r0, #0x5a ldrb r1, [r0] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _08065518 ldr r1, _08065514 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] b _08065522 .align 2, 0 _08065514: .4byte gUnk_02033280 _08065518: ldr r2, _08065524 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] _08065522: pop {pc} .align 2, 0 _08065524: .4byte gUnk_02033280 thumb_func_start sub_08065528 sub_08065528: @ 0x08065528 ldr r2, _08065530 @ =gUnk_02034350 ldr r0, [r1, #4] str r0, [r2, #0x68] bx lr .align 2, 0 _08065530: .4byte gUnk_02034350 thumb_func_start sub_08065534 sub_08065534: @ 0x08065534 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08065558 ldr r0, _08065554 @ =gUnk_0810FEC4 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 b _08065568 .align 2, 0 _08065554: .4byte gUnk_0810FEC4 _08065558: ldr r0, _0806556C @ =gUnk_0810FEBC ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 _08065568: pop {pc} .align 2, 0 _0806556C: .4byte gUnk_0810FEBC thumb_func_start sub_08065570 sub_08065570: @ 0x08065570 push {r4, lr} adds r4, r0, #0 ldr r1, _08065598 @ =gUnk_0810FEB0 bl sub_0806FDEC cmp r0, #0 beq _08065596 adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08078778 movs r0, #1 strb r0, [r4, #0xc] strb r0, [r4, #0xf] movs r0, #2 strb r0, [r4, #0x14] _08065596: pop {r4, pc} .align 2, 0 _08065598: .4byte gUnk_0810FEB0 thumb_func_start sub_0806559C sub_0806559C: @ 0x0806559C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #8 bls _080655D0 movs r0, #0 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0x20 movs r2, #0x20 bl sub_0806ED9C cmp r0, #0 bge _080655C6 ldrb r0, [r4, #0x14] adds r1, r0, #4 b _080655CA _080655C6: strb r0, [r4, #0x14] adds r1, r0, #0 _080655CA: adds r0, r4, #0 adds r0, #0x58 b _080655D6 _080655D0: adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] _080655D6: ldrb r0, [r0] cmp r0, r1 beq _080655E4 adds r0, r4, #0 bl sub_08004260 b _080655EA _080655E4: adds r0, r4, #0 bl sub_08004274 _080655EA: adds r0, r4, #0 bl sub_0806ED78 adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08065604 movs r0, #0 strb r0, [r1] bl sub_080791D0 _08065604: pop {r4, pc} .align 2, 0 thumb_func_start sub_08065608 sub_08065608: @ 0x08065608 push {r4, lr} adds r4, r0, #0 ldr r1, _08065644 @ =gUnk_0810FEB0 bl sub_0806FDEC cmp r0, #0 beq _08065640 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 adds r0, r4, #0 bl sub_0807DD50 _08065640: pop {r4, pc} .align 2, 0 _08065644: .4byte gUnk_0810FEB0 thumb_func_start sub_08065648 sub_08065648: @ 0x08065648 push {lr} adds r2, r0, #0 movs r0, #0x39 adds r0, r0, r2 mov ip, r0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08065676 ldrb r0, [r2, #0xc] adds r3, r2, #0 adds r3, #0x69 movs r1, #0 strb r0, [r3] movs r0, #4 strb r0, [r2, #0xc] mov r0, ip strb r1, [r0] adds r0, r2, #0 bl sub_0806F118 b _0806567E _08065676: adds r0, r2, #0 movs r1, #0 bl sub_0807DD94 _0806567E: pop {pc} thumb_func_start sub_08065680 sub_08065680: @ 0x08065680 push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _080656A0 adds r0, r4, #0 adds r0, #0x69 ldrb r0, [r0] strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x6a ldrb r1, [r0] adds r0, r4, #0 bl sub_080042AC _080656A0: pop {r4, pc} .align 2, 0 thumb_func_start sub_080656A4 sub_080656A4: @ 0x080656A4 push {r4, lr} adds r4, r0, #0 ldr r0, _080656D0 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _080656C8 adds r0, r4, #0 adds r0, #0x69 ldrb r0, [r0] strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x6a ldrb r1, [r0] adds r0, r4, #0 bl sub_080042AC _080656C8: adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 _080656D0: .4byte gUnk_02000050 thumb_func_start sub_080656D4 sub_080656D4: @ 0x080656D4 push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x39 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #2 bne _080656FC ldrb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x69 movs r1, #0 strb r0, [r2] movs r0, #4 strb r0, [r4, #0xc] strb r1, [r5] adds r0, r4, #0 bl sub_0806F118 b _08065738 _080656FC: cmp r0, #0 beq _08065740 movs r0, #0x37 bl sub_0807CA84 adds r2, r0, #0 cmp r2, #0 beq _0806571C ldr r1, _08065718 @ =gUnk_0800B41C adds r0, r4, #0 bl sub_0807DAD0 b _08065740 .align 2, 0 _08065718: .4byte gUnk_0800B41C _0806571C: ldrb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x69 strb r0, [r1] movs r0, #3 strb r0, [r4, #0xc] strb r2, [r5] adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] ldr r0, [r0, #4] adds r1, r4, #0 bl sub_08056398 _08065738: adds r0, r4, #0 bl sub_0806574C b _08065748 _08065740: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 _08065748: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0806574C sub_0806574C: @ 0x0806574C push {r4, r5, lr} adds r4, r0, #0 ldr r1, _0806577C @ =gUnk_03001160 bl sub_080045C4 bl sub_0806F5A4 adds r5, r4, #0 adds r5, #0x58 ldrb r2, [r5] movs r1, #4 rsbs r1, r1, #0 ands r1, r2 adds r1, r1, r0 cmp r2, r1 beq _08065772 adds r0, r4, #0 bl sub_080042AC _08065772: ldrb r1, [r5] adds r0, r4, #0 adds r0, #0x6a strb r1, [r0] pop {r4, r5, pc} .align 2, 0 _0806577C: .4byte gUnk_03001160 thumb_func_start sub_08065780 sub_08065780: @ 0x08065780 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 bl sub_08000E50 movs r2, #6 adds r1, r0, #0 ands r1, r2 strb r1, [r4, #0x14] ldr r2, _080657A4 @ =gUnk_0810FED8 lsrs r0, r0, #8 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] strh r0, [r5, #0x10] pop {r4, r5, pc} .align 2, 0 _080657A4: .4byte gUnk_0810FED8 thumb_func_start sub_080657A8 sub_080657A8: @ 0x080657A8 push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r0, [r0] movs r2, #7 ands r2, r0 adds r2, #0xb adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 ldrb r2, [r4, #0x1e] adds r0, r4, #0 movs r1, #1 bl sub_0806FF60 adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r4, #0 bl sub_0807000C pop {r4, pc} .align 2, 0 thumb_func_start sub_080657DC sub_080657DC: @ 0x080657DC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08065814 ldr r1, _08065810 @ =gUnk_0810FEB0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806581A ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #6 bl sub_08004260 b _0806581A .align 2, 0 _08065810: .4byte gUnk_0810FEB0 _08065814: adds r0, r4, #0 bl sub_08004274 _0806581A: pop {r4, pc} thumb_func_start sub_0806581C sub_0806581C: @ 0x0806581C push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08065840 ldr r0, _0806583C @ =gUnk_0810FF64 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 b _0806585C .align 2, 0 _0806583C: .4byte gUnk_0810FF64 _08065840: ldr r1, _08065860 @ =gUnk_0810FF5C ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldrb r0, [r4, #0xc] cmp r0, #0 beq _0806585C adds r0, r4, #0 bl sub_0806ED78 _0806585C: pop {r4, pc} .align 2, 0 _08065860: .4byte gUnk_0810FF5C thumb_func_start sub_08065864 sub_08065864: @ 0x08065864 push {lr} movs r3, #1 movs r1, #1 strb r1, [r0, #0xc] ldrb r2, [r0, #0x18] subs r1, #5 ands r1, r2 orrs r1, r3 strb r1, [r0, #0x18] movs r1, #0xc bl sub_080042AC pop {pc} .align 2, 0 thumb_func_start sub_08065880 sub_08065880: @ 0x08065880 push {lr} bl sub_080042B8 pop {pc} thumb_func_start sub_08065888 sub_08065888: @ 0x08065888 push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] movs r0, #4 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 adds r0, r4, #0 bl sub_0807DD50 pop {r4, pc} thumb_func_start sub_080658BC sub_080658BC: @ 0x080658BC push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _080658F4 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] ldr r1, _080658F0 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 bl sub_0806F118 b _080658FC .align 2, 0 _080658F0: .4byte gUnk_03001160 _080658F4: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 _080658FC: pop {r4, pc} .align 2, 0 thumb_func_start sub_08065900 sub_08065900: @ 0x08065900 push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _08065910 movs r0, #1 strb r0, [r4, #0xc] _08065910: pop {r4, pc} .align 2, 0 thumb_func_start sub_08065914 sub_08065914: @ 0x08065914 push {r4, r5, lr} adds r5, r0, #0 movs r0, #7 movs r1, #0x1f movs r2, #7 bl sub_0805EB00 adds r4, r0, #0 cmp r4, #0 beq _08065938 movs r2, #0xc0 lsls r2, r2, #0xd ldr r3, _0806595C @ =0xFFFF0000 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA48 str r5, [r4, #0x50] _08065938: movs r0, #7 movs r1, #0x20 movs r2, #7 bl sub_0805EB00 adds r4, r0, #0 cmp r4, #0 beq _08065958 movs r2, #0xa0 lsls r2, r2, #0xe adds r0, r5, #0 adds r1, r4, #0 movs r3, #0 bl sub_0806FA48 str r5, [r4, #0x50] _08065958: pop {r4, r5, pc} .align 2, 0 _0806595C: .4byte 0xFFFF0000 thumb_func_start sub_08065960 sub_08065960: @ 0x08065960 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _08065986 adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 movs r1, #0xc bl sub_080042AC b _0806598C _08065986: adds r0, r2, #0 bl sub_080042B8 _0806598C: pop {pc} .align 2, 0 thumb_func_start sub_08065990 sub_08065990: @ 0x08065990 push {r4, lr} adds r4, r0, #0 ldr r1, _080659B4 @ =gUnk_0811006C ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_08065A64 adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} .align 2, 0 _080659B4: .4byte gUnk_0811006C thumb_func_start sub_080659B8 sub_080659B8: @ 0x080659B8 push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] movs r0, #6 strb r0, [r4, #0x14] adds r1, r4, #0 adds r1, #0x69 movs r0, #0xff strb r0, [r1] adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r4, #0x14] lsrs r1, r1, #1 adds r0, r4, #0 bl sub_080042AC pop {r4, pc} thumb_func_start sub_080659F0 sub_080659F0: @ 0x080659F0 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_08065AA4 pop {r4, pc} thumb_func_start sub_08065A00 sub_08065A00: @ 0x08065A00 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_08065AA4 pop {r4, pc} thumb_func_start sub_08065A10 sub_08065A10: @ 0x08065A10 push {lr} adds r2, r0, #0 ldr r0, _08065A30 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08065A2E movs r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x14] lsrs r1, r1, #1 adds r0, r2, #0 bl sub_080042AC _08065A2E: pop {pc} .align 2, 0 _08065A30: .4byte gUnk_02000050 thumb_func_start sub_08065A34 sub_08065A34: @ 0x08065A34 push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _08065A4E movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x14] lsrs r1, r1, #1 adds r0, r4, #0 bl sub_080042AC _08065A4E: pop {r4, pc} thumb_func_start sub_08065A50 sub_08065A50: @ 0x08065A50 push {lr} ldrb r1, [r0, #0xa] lsls r1, r1, #3 ldr r2, _08065A60 @ =gUnk_08110080 adds r1, r1, r2 bl sub_0806F1AC pop {pc} .align 2, 0 _08065A60: .4byte gUnk_08110080 thumb_func_start sub_08065A64 sub_08065A64: @ 0x08065A64 push {r4, r5, lr} adds r4, r0, #0 ldr r0, _08065A8C @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 rsbs r0, r0, #0 lsrs r5, r0, #0x1f adds r0, r4, #0 adds r0, #0x69 ldrb r0, [r0] cmp r5, r0 beq _08065A9C cmp r5, #0 bne _08065A90 adds r0, r4, #0 bl sub_08078778 b _08065A9C .align 2, 0 _08065A8C: .4byte gUnk_03003F80 _08065A90: adds r0, r4, #0 adds r0, #0x68 ldrb r1, [r0] adds r0, r4, #0 bl sub_080787A8 _08065A9C: adds r0, r4, #0 adds r0, #0x69 strb r5, [r0] pop {r4, r5, pc} thumb_func_start sub_08065AA4 sub_08065AA4: @ 0x08065AA4 push {r4, lr} adds r4, r0, #0 adds r0, #0x39 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #0 beq _08065B18 ldr r0, _08065AD0 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _08065B00 cmp r2, #2 bne _08065AD4 movs r0, #4 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0806F118 b _08065AE6 .align 2, 0 _08065AD0: .4byte gUnk_03003F80 _08065AD4: movs r0, #3 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_08065A50 _08065AE6: ldr r1, _08065AFC @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC b _08065B0A .align 2, 0 _08065AFC: .4byte gUnk_03001160 _08065B00: adds r0, r4, #0 bl sub_08065A50 bl sub_080791D0 _08065B0A: movs r0, #0xd3 bl sub_080A3268 adds r1, r4, #0 adds r1, #0x39 movs r0, #0 strb r0, [r1] _08065B18: pop {r4, pc} .align 2, 0 thumb_func_start sub_08065B1C sub_08065B1C: @ 0x08065B1C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _08065B42 adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 movs r1, #7 bl sub_080042AC b _08065B48 _08065B42: adds r0, r2, #0 bl sub_080042B8 _08065B48: pop {pc} .align 2, 0 thumb_func_start sub_08065B4C sub_08065B4C: @ 0x08065B4C push {r4, lr} adds r4, r0, #0 ldr r1, _08065B68 @ =gUnk_08110118 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} .align 2, 0 _08065B68: .4byte gUnk_08110118 thumb_func_start sub_08065B6C sub_08065B6C: @ 0x08065B6C push {lr} ldrb r1, [r0, #0xc] adds r1, #1 strb r1, [r0, #0xc] ldrb r2, [r0, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r2 movs r2, #1 orrs r1, r2 strb r1, [r0, #0x18] ldr r2, _08065B98 @ =0xFFFF8000 adds r1, r2, #0 ldrh r2, [r0, #0x30] adds r1, r1, r2 strh r1, [r0, #0x30] movs r1, #6 strb r1, [r0, #0x14] movs r1, #3 bl sub_080042AC pop {pc} .align 2, 0 _08065B98: .4byte 0xFFFF8000 thumb_func_start sub_08065B9C sub_08065B9C: @ 0x08065B9C push {lr} bl sub_080042B8 pop {pc} thumb_func_start sub_08065BA4 sub_08065BA4: @ 0x08065BA4 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08065BBA adds r0, r4, #0 bl sub_08065C0C b _08065BEA _08065BBA: ldr r1, _08065BEC @ =gUnk_08110164 ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldrb r0, [r4, #0xa] cmp r0, #2 bhi _08065BEA ldr r2, _08065BF0 @ =gUnk_0811015C ldrb r0, [r4, #0xf] adds r1, r0, #1 strb r1, [r4, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x1b movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r4, #0x36] _08065BEA: pop {r4, pc} .align 2, 0 _08065BEC: .4byte gUnk_08110164 _08065BF0: .4byte gUnk_0811015C thumb_func_start sub_08065BF4 sub_08065BF4: @ 0x08065BF4 push {lr} ldr r2, _08065C08 @ =gUnk_0811017C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08065C08: .4byte gUnk_0811017C thumb_func_start sub_08065C0C sub_08065C0C: @ 0x08065C0C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _08065C42 cmp r0, #1 bgt _08065C20 cmp r0, #0 beq _08065C2A b _08065CCA _08065C20: cmp r0, #2 beq _08065C7E cmp r0, #3 beq _08065C8A b _08065CCA _08065C2A: movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_0807DD50 b _08065CCA _08065C42: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _08065C74 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] ldr r1, _08065C70 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 bl sub_0806F118 b _08065CCA .align 2, 0 _08065C70: .4byte gUnk_03001160 _08065C74: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 b _08065CCA _08065C7E: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _08065CCA b _08065CC6 _08065C8A: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08065CCA ldr r1, [r4, #0x6c] ldrh r2, [r1] ldr r0, _08065CB4 @ =0x0000FFFF cmp r2, r0 beq _08065CBC ldr r0, _08065CB8 @ =gUnk_03000F50 adds r0, #0x68 strh r2, [r0] adds r1, #2 ldrh r0, [r1] strb r0, [r4, #0xe] adds r1, #2 str r1, [r4, #0x6c] b _08065CCA .align 2, 0 _08065CB4: .4byte 0x0000FFFF _08065CB8: .4byte gUnk_03000F50 _08065CBC: ldrb r0, [r4, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 strb r1, [r4, #0x18] _08065CC6: movs r0, #1 strb r0, [r4, #0xc] _08065CCA: pop {r4, pc} thumb_func_start sub_08065CCC sub_08065CCC: @ 0x08065CCC movs r1, #3 strb r1, [r0, #0xc] movs r1, #0x1e strb r1, [r0, #0xe] ldrb r2, [r0, #0x19] subs r1, #0x2b ands r1, r2 movs r2, #4 orrs r1, r2 strb r1, [r0, #0x19] ldr r1, _08065CF8 @ =gUnk_0811022E str r1, [r0, #0x6c] ldr r1, _08065CFC @ =gUnk_03000F50 adds r2, r1, #0 adds r2, #0x66 movs r0, #0xfd lsls r0, r0, #6 strh r0, [r2] adds r1, #0x68 movs r0, #0x10 strh r0, [r1] bx lr .align 2, 0 _08065CF8: .4byte gUnk_0811022E _08065CFC: .4byte gUnk_03000F50 thumb_func_start sub_08065D00 sub_08065D00: @ 0x08065D00 push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 pop {r4, pc} thumb_func_start sub_08065D18 sub_08065D18: @ 0x08065D18 push {r4, lr} adds r4, r0, #0 movs r1, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] strb r1, [r4, #0xf] ldrb r1, [r4, #0x18] subs r0, #0x22 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldrb r1, [r4, #0x19] movs r0, #0xd rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r4, #0x19] ldr r0, _08065D6C @ =gUnk_08110188 str r0, [r4, #0x6c] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 movs r1, #2 bl sub_080042AC ldr r1, _08065D70 @ =gUnk_03000F50 adds r2, r1, #0 adds r2, #0x66 movs r0, #0xfd lsls r0, r0, #6 strh r0, [r2] adds r1, #0x68 movs r0, #0x80 lsls r0, r0, #5 strh r0, [r1] pop {r4, pc} .align 2, 0 _08065D6C: .4byte gUnk_08110188 _08065D70: .4byte gUnk_03000F50 thumb_func_start sub_08065D74 sub_08065D74: @ 0x08065D74 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 _08065DB4 ldr r2, [r1, #0x6c] ldrh r3, [r2] ldr r0, _08065DA0 @ =0x0000FFFF cmp r3, r0 beq _08065DA8 ldr r0, _08065DA4 @ =gUnk_03000F50 adds r0, #0x68 strh r3, [r0] ldrh r0, [r2, #2] strb r0, [r1, #0xe] adds r0, r2, #4 str r0, [r1, #0x6c] b _08065DB4 .align 2, 0 _08065DA0: .4byte 0x0000FFFF _08065DA4: .4byte gUnk_03000F50 _08065DA8: ldrb r0, [r1, #0xc] adds r0, #1 strb r0, [r1, #0xc] movs r0, #0 bl sub_08056378 _08065DB4: pop {pc} .align 2, 0 thumb_func_start sub_08065DB8 sub_08065DB8: @ 0x08065DB8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #4 bhi _08065E74 lsls r0, r0, #2 ldr r1, _08065DCC @ =_08065DD0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08065DCC: .4byte _08065DD0 _08065DD0: @ jump table .4byte _08065DE4 @ case 0 .4byte _08065E08 @ case 1 .4byte _08065EB0 @ case 2 .4byte _08065E34 @ case 3 .4byte _08065E4E @ case 4 _08065DE4: ldr r0, _08065E04 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08065EB0 ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] movs r0, #0x3c strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #4 bl sub_080042AC b _08065EB0 .align 2, 0 _08065E04: .4byte gUnk_02000050 _08065E08: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08065EB0 ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] movs r0, #0xb4 strb r0, [r4, #0xe] ldr r1, _08065E30 @ =gUnk_02018EB0 ldrb r0, [r1, #1] adds r0, #1 strb r0, [r1, #1] adds r0, r4, #0 movs r1, #2 bl sub_080042AC b _08065EB0 .align 2, 0 _08065E30: .4byte gUnk_02018EB0 _08065E34: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08065EB0 movs r0, #0 bl sub_08056378 ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] b _08065EB0 _08065E4E: ldr r0, _08065E6C @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08065EB0 ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] movs r0, #0x1e strb r0, [r4, #0xe] ldr r0, _08065E70 @ =gUnk_0811022E str r0, [r4, #0x6c] b _08065EB0 .align 2, 0 _08065E6C: .4byte gUnk_02000050 _08065E70: .4byte gUnk_0811022E _08065E74: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08065EB0 ldr r1, [r4, #0x6c] ldrh r2, [r1] ldr r0, _08065E9C @ =0x0000FFFF cmp r2, r0 beq _08065EA4 ldr r0, _08065EA0 @ =gUnk_03000F50 adds r0, #0x68 strh r2, [r0] ldrh r0, [r1, #2] strb r0, [r4, #0xe] adds r0, r1, #4 str r0, [r4, #0x6c] b _08065EB0 .align 2, 0 _08065E9C: .4byte 0x0000FFFF _08065EA0: .4byte gUnk_03000F50 _08065EA4: ldr r1, _08065EB8 @ =gUnk_02018EB0 ldrb r0, [r1] adds r0, #1 strb r0, [r1] bl sub_0805E780 _08065EB0: adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 _08065EB8: .4byte gUnk_02018EB0 thumb_func_start sub_08065EBC sub_08065EBC: @ 0x08065EBC push {r4, lr} adds r4, r0, #0 ldr r1, _08065ED8 @ =gUnk_08110274 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} .align 2, 0 _08065ED8: .4byte gUnk_08110274 thumb_func_start sub_08065EDC sub_08065EDC: @ 0x08065EDC 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 _08065F1C ldr r1, [r2, #0x6c] ldrh r3, [r1] ldr r0, _08065F08 @ =0x0000FFFF cmp r3, r0 beq _08065F10 ldr r0, _08065F0C @ =gUnk_03000F50 adds r0, #0x68 strh r3, [r0] adds r1, #2 ldrh r0, [r1] strb r0, [r2, #0xe] adds r1, #2 str r1, [r2, #0x6c] b _08065F1C .align 2, 0 _08065F08: .4byte 0x0000FFFF _08065F0C: .4byte gUnk_03000F50 _08065F10: ldrb r0, [r2, #0xc] adds r0, #1 strb r0, [r2, #0xc] adds r0, r2, #0 bl sub_08078778 _08065F1C: pop {pc} .align 2, 0 thumb_func_start sub_08065F20 sub_08065F20: @ 0x08065F20 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08065F5E movs r0, #0 strb r0, [r1] bl sub_08056378 adds r2, r4, #0 adds r2, #0x58 ldrb r0, [r2] adds r0, #1 strb r0, [r2] ldr r1, _08065F60 @ =gUnk_0811033C ldrb r0, [r2] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] cmp r0, #0 bne _08065F56 strb r0, [r2] _08065F56: ldrb r1, [r2] adds r0, r4, #0 bl sub_080042AC _08065F5E: pop {r4, pc} .align 2, 0 _08065F60: .4byte gUnk_0811033C thumb_func_start sub_08065F64 sub_08065F64: @ 0x08065F64 push {lr} adds r3, r0, #0 ldr r0, _08065F88 @ =gUnk_02002A40 ldrb r0, [r0, #8] subs r0, #2 cmp r0, #0 bge _08065F74 movs r0, #0 _08065F74: ldrb r1, [r3, #0xa] lsls r1, r1, #6 lsls r0, r0, #3 ldr r2, _08065F8C @ =gUnk_08110280 adds r0, r0, r2 adds r1, r1, r0 adds r0, r3, #0 bl sub_0806F1AC pop {pc} .align 2, 0 _08065F88: .4byte gUnk_02002A40 _08065F8C: .4byte gUnk_08110280 thumb_func_start sub_08065F90 sub_08065F90: @ 0x08065F90 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _08065FB6 adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 movs r1, #2 bl sub_080042AC b _08065FBC _08065FB6: adds r0, r2, #0 bl sub_080042B8 _08065FBC: pop {pc} .align 2, 0 thumb_func_start sub_08065FC0 sub_08065FC0: @ 0x08065FC0 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08066028 adds r2, r4, #0 adds r2, #0x39 movs r0, #0 ldrsb r0, [r2, r0] adds r6, r4, #0 adds r6, #0x58 cmp r0, #2 bne _0806600C movs r0, #0 movs r1, #4 strb r1, [r4, #0xc] strb r0, [r2] ldrb r0, [r6] movs r5, #0 cmp r0, #0xc bne _08065FF0 movs r5, #8 _08065FF0: ldr r1, _08066020 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r5, r5, r0 adds r0, r4, #0 adds r1, r5, #0 bl sub_080042AC adds r0, r4, #0 bl sub_0806F118 _0806600C: ldr r0, _08066024 @ =gUnk_0811036C ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 b _08066042 .align 2, 0 _08066020: .4byte gUnk_03001160 _08066024: .4byte gUnk_0811036C _08066028: ldr r0, _08066058 @ =gUnk_08110360 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0806ED78 adds r6, r4, #0 adds r6, #0x58 _08066042: ldrb r0, [r6] cmp r0, #0xc bne _0806605C adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] b _0806606E .align 2, 0 _08066058: .4byte gUnk_08110360 _0806605C: adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #0x39 rsbs r1, r1, #0 ands r1, r0 movs r0, #8 orrs r1, r0 strb r1, [r2] _0806606E: adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080660A0 movs r0, #0xfe ands r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #0x3d movs r2, #0x20 bl sub_080A29AC ldr r4, _080660A4 @ =gUnk_08110380 bl sub_08000E50 movs r1, #7 ands r1, r0 lsls r1, r1, #1 adds r1, r1, r4 ldrh r0, [r1] bl sub_080A3268 _080660A0: pop {r4, r5, r6, pc} .align 2, 0 _080660A4: .4byte gUnk_08110380 thumb_func_start sub_080660A8 sub_080660A8: @ 0x080660A8 push {r4, r5, lr} adds r5, r0, #0 adds r0, #0x5a ldrb r4, [r0] ldrb r2, [r5, #0x1e] adds r0, r5, #0 movs r1, #0 bl sub_0806FF60 movs r0, #0x40 ands r4, r0 cmp r4, #0 beq _080660CE adds r0, r5, #0 movs r1, #1 movs r2, #0x16 bl sub_0806FF60 b _080660D8 _080660CE: adds r0, r5, #0 movs r1, #1 movs r2, #0xff bl sub_0806FF60 _080660D8: adds r0, r5, #0 movs r1, #0 movs r2, #1 bl sub_0806FF88 adds r0, r5, #0 bl sub_0807000C pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080660EC sub_080660EC: @ 0x080660EC push {r4, lr} adds r4, r0, #0 ldr r1, _08066114 @ =gUnk_08110354 bl sub_0806FDEC cmp r0, #0 beq _08066112 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] adds r0, r4, #0 movs r1, #2 bl sub_080042AC _08066112: pop {r4, pc} .align 2, 0 _08066114: .4byte gUnk_08110354 thumb_func_start sub_08066118 sub_08066118: @ 0x08066118 push {r4, lr} adds r4, r0, #0 movs r1, #0x28 movs r2, #0x28 bl sub_0806ED9C adds r1, r0, #0 cmp r1, #0 bge _0806612E movs r1, #2 b _08066144 _0806612E: ldrb r0, [r4, #0xf] cmp r0, #0 bne _0806613A movs r0, #0x10 strb r0, [r4, #0xf] b _08066144 _0806613A: subs r0, #1 strb r0, [r4, #0xf] adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] _08066144: adds r0, r4, #0 bl sub_0806F078 cmp r0, #0 bne _08066154 adds r0, r4, #0 bl sub_080042B8 _08066154: adds r0, r4, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0806616C movs r0, #2 strb r0, [r4, #0xc] movs r0, #0 bl sub_08056378 _0806616C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08066170 sub_08066170: @ 0x08066170 movs r1, #1 strb r1, [r0, #0xc] bx lr .align 2, 0 thumb_func_start sub_08066178 sub_08066178: @ 0x08066178 push {r4, lr} adds r4, r0, #0 ldr r1, _080661AC @ =gUnk_08110354 bl sub_0806FDEC cmp r0, #0 beq _080661A8 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] adds r0, r4, #0 bl sub_0807DD50 _080661A8: pop {r4, pc} .align 2, 0 _080661AC: .4byte gUnk_08110354 thumb_func_start sub_080661B0 sub_080661B0: @ 0x080661B0 push {lr} movs r1, #0 bl sub_0807DD94 pop {pc} .align 2, 0 thumb_func_start sub_080661BC sub_080661BC: @ 0x080661BC push {r4, lr} adds r4, r0, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0xc bne _080661F4 adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080661FC adds r0, r4, #0 bl sub_0806EDC4 adds r0, #8 adds r1, r4, #0 adds r1, #0x80 strh r0, [r1] ldrh r1, [r1] adds r0, r4, #0 bl sub_080042AC b _080661FC _080661F4: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 _080661FC: pop {r4, pc} .align 2, 0 thumb_func_start sub_08066200 sub_08066200: @ 0x08066200 push {r4, lr} adds r4, r0, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} thumb_func_start sub_08066218 sub_08066218: @ 0x08066218 push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _08066228 movs r0, #1 strb r0, [r4, #0xc] _08066228: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806622C sub_0806622C: @ 0x0806622C push {lr} adds r2, r0, #0 ldr r0, _0806624C @ =gUnk_02002A40 ldrb r0, [r0, #8] subs r0, #2 cmp r0, #0 bge _0806623C movs r0, #0 _0806623C: lsls r1, r0, #3 ldr r0, _08066250 @ =gUnk_08110390 adds r1, r1, r0 adds r0, r2, #0 bl sub_0806F1AC pop {pc} .align 2, 0 _0806624C: .4byte gUnk_02002A40 _08066250: .4byte gUnk_08110390 thumb_func_start nullsub_501 nullsub_501: @ 0x08066254 bx lr .align 2, 0 thumb_func_start sub_08066258 sub_08066258: @ 0x08066258 push {r4, lr} ldr r4, _08066270 @ =gUnk_081103D0 bl sub_08000E50 movs r1, #7 ands r1, r0 lsls r1, r1, #1 adds r1, r1, r4 ldrh r0, [r1] bl sub_080A3268 pop {r4, pc} .align 2, 0 _08066270: .4byte gUnk_081103D0 thumb_func_start sub_08066274 sub_08066274: @ 0x08066274 push {lr} ldr r3, _08066284 @ =gUnk_081103E0 movs r1, #1 movs r2, #0 bl sub_08078850 pop {pc} .align 2, 0 _08066284: .4byte gUnk_081103E0 thumb_func_start sub_08066288 sub_08066288: @ 0x08066288 push {lr} adds r1, r0, #0 adds r1, #0x68 ldrb r1, [r1] bl sub_08078784 pop {pc} .align 2, 0 thumb_func_start sub_08066298 sub_08066298: @ 0x08066298 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080662D0 ldr r1, _080662CC @ =gUnk_08110354 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _080662D6 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #6 bl sub_080042AC b _080662D6 .align 2, 0 _080662CC: .4byte gUnk_08110354 _080662D0: adds r0, r4, #0 bl sub_080042B8 _080662D6: pop {r4, pc} thumb_func_start sub_080662D8 sub_080662D8: @ 0x080662D8 push {r4, lr} adds r4, r0, #0 ldr r1, _080662F4 @ =gUnk_081104C8 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} .align 2, 0 _080662F4: .4byte gUnk_081104C8 thumb_func_start sub_080662F8 sub_080662F8: @ 0x080662F8 push {r4, r5, lr} adds r5, r0, #0 movs r4, #0 movs r2, #1 movs r0, #1 strb r0, [r5, #0xc] strb r4, [r5, #0xd] ldrb r1, [r5, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r5, #0x18] ldrb r0, [r5, #0xa] lsls r0, r0, #1 strb r0, [r5, #0x14] ldrb r1, [r5, #0xa] adds r0, r5, #0 bl sub_08004260 ldrh r0, [r5, #0x2e] adds r1, r5, #0 adds r1, #0x7e strh r0, [r1] ldrh r1, [r5, #0x32] adds r0, r5, #0 adds r0, #0x80 strh r1, [r0] adds r0, #6 strh r4, [r0] ldrb r0, [r5, #0xe] adds r1, r5, #0 adds r1, #0x82 strh r0, [r1] ldr r0, _08066354 @ =gUnk_03001160 str r0, [r5, #0x50] adds r0, r5, #0 adds r0, #0x84 strh r4, [r0] ldr r1, [r5, #0x50] adds r0, r5, #0 bl sub_08066490 adds r0, r5, #0 bl sub_08078778 pop {r4, r5, pc} .align 2, 0 _08066354: .4byte gUnk_03001160 thumb_func_start sub_08066358 sub_08066358: @ 0x08066358 push {r4, r5, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _080663B8 movs r5, #0 strb r5, [r1] movs r0, #0 bl sub_08056378 ldrb r1, [r4, #0xb] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _080663C0 movs r0, #3 strb r0, [r4, #0xc] strb r5, [r4, #0xd] adds r0, r4, #0 adds r0, #0x7e ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r4, r2] subs r0, r0, r1 cmp r0, #8 ble _08066396 movs r0, #8 b _08066398 _08066396: movs r0, #0x18 _08066398: strb r0, [r4, #0x15] movs r0, #0x80 strh r0, [r4, #0x24] adds r1, r4, #0 adds r1, #0x84 movs r2, #1 movs r0, #1 strh r0, [r1] ldr r0, _080663B4 @ =gUnk_02034490 strb r2, [r0] adds r0, r4, #0 bl sub_080788E0 b _080663C0 .align 2, 0 _080663B4: .4byte gUnk_02034490 _080663B8: ldr r1, [r4, #0x50] adds r0, r4, #0 bl sub_08066490 _080663C0: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_08066570 pop {r4, r5, pc} .align 2, 0 thumb_func_start nullsub_110 nullsub_110: @ 0x080663D0 bx lr .align 2, 0 thumb_func_start sub_080663D4 sub_080663D4: @ 0x080663D4 push {r4, lr} adds r4, r0, #0 movs r0, #0x2e ldrsh r1, [r4, r0] adds r0, r4, #0 adds r0, #0x7e ldrh r0, [r0] subs r0, #8 cmp r1, r0 bne _08066410 ldr r0, _0806640C @ =gUnk_03001160 ldrb r0, [r0, #0xc] cmp r0, #0xf beq _0806642E movs r0, #0 movs r1, #4 strb r1, [r4, #0xc] strb r0, [r4, #0x15] strh r0, [r4, #0x24] adds r1, r4, #0 adds r1, #0x84 strh r0, [r1] adds r0, r4, #0 movs r1, #2 bl sub_08004260 b _0806642E .align 2, 0 _0806640C: .4byte gUnk_03001160 _08066410: ldrb r0, [r4, #0xd] cmp r0, #0 bne _08066428 ldrb r1, [r4, #0x15] lsrs r1, r1, #3 adds r1, #4 adds r0, r4, #0 bl sub_08004260 ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] _08066428: adds r0, r4, #0 bl sub_080AEF88 _0806642E: bl sub_08078B48 adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 thumb_func_start sub_0806643C sub_0806643C: @ 0x0806643C push {r4, r5, lr} adds r5, r0, #0 bl sub_0806650C adds r4, r0, #0 cmp r4, #0 bne _08066462 movs r0, #5 strb r0, [r5, #0xc] ldr r0, _0806646C @ =gUnk_03000BF0 str r4, [r0, #0x30] movs r0, #0x40 movs r1, #0 movs r2, #0 bl sub_08078AC0 ldr r0, _08066470 @ =gUnk_03001160 strb r4, [r0, #0x14] strb r4, [r0, #0x15] _08066462: adds r0, r5, #0 bl sub_08004274 pop {r4, r5, pc} .align 2, 0 _0806646C: .4byte gUnk_03000BF0 _08066470: .4byte gUnk_03001160 thumb_func_start sub_08066474 sub_08066474: @ 0x08066474 push {lr} ldr r0, _08066488 @ =gUnk_03001160 ldrb r0, [r0, #0xc] cmp r0, #0xf beq _08066484 ldr r1, _0806648C @ =gUnk_02034490 movs r0, #0 strb r0, [r1] _08066484: pop {pc} .align 2, 0 _08066488: .4byte gUnk_03001160 _0806648C: .4byte gUnk_02034490 thumb_func_start sub_08066490 sub_08066490: @ 0x08066490 push {r4, r5, r6, lr} mov ip, r0 adds r5, r1, #0 ldrb r1, [r0, #0xb] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0806650A mov r1, ip ldrh r0, [r1, #0x2e] adds r1, #0x86 strh r0, [r1] mov r0, ip adds r0, #0x7e ldrh r2, [r0] adds r0, #4 ldrh r0, [r0] adds r3, r2, r0 subs r4, r2, r0 movs r6, #0x2e ldrsh r0, [r5, r6] cmp r0, r3 bge _080664C6 cmp r0, r4 ble _080664C6 adds r2, r0, #0 b _080664D2 _080664C6: movs r2, #0x2e ldrsh r0, [r5, r2] adds r2, r4, #0 cmp r0, r3 blt _080664D2 adds r2, r3, #0 _080664D2: ldrh r0, [r1] cmp r0, r2 bne _080664F0 mov r1, ip adds r1, #0x84 ldrh r0, [r1] cmp r0, #1 bne _0806650A movs r0, #0 strh r0, [r1] mov r0, ip movs r1, #2 bl sub_08004260 b _0806650A _080664F0: mov r6, ip strh r2, [r6, #0x2e] mov r1, ip adds r1, #0x84 ldrh r0, [r1] cmp r0, #0 bne _0806650A movs r0, #1 strh r0, [r1] mov r0, ip movs r1, #6 bl sub_08004260 _0806650A: pop {r4, r5, r6, pc} thumb_func_start sub_0806650C sub_0806650C: @ 0x0806650C push {r4, r5, r6, r7, lr} adds r3, r0, #0 movs r4, #0 ldr r1, _0806652C @ =gUnk_03001160 ldrh r5, [r1, #0x2e] adds r7, r5, #0 ldrh r2, [r1, #0x32] adds r0, #0x80 ldrh r0, [r0] adds r0, #0x10 adds r6, r1, #0 cmp r2, r0 bge _08066530 movs r4, #4 b _0806654C .align 2, 0 _0806652C: .4byte gUnk_03001160 _08066530: adds r0, r3, #0 adds r0, #0x7e ldrh r1, [r0] adds r0, r1, #2 cmp r5, r0 bge _0806653E movs r4, #2 _0806653E: adds r0, r1, #6 cmp r7, r0 ble _08066546 movs r4, #6 _08066546: cmp r4, #0 bne _0806654C strh r4, [r6, #0x24] _0806654C: ldrb r0, [r6, #0xc] cmp r0, #0xf beq _0806656A cmp r4, #0 bne _0806655A movs r0, #0 b _0806656C _0806655A: movs r0, #8 movs r1, #0 movs r2, #0 bl sub_08078AC0 strb r4, [r6, #0x14] lsls r0, r4, #2 strb r0, [r6, #0x15] _0806656A: movs r0, #1 _0806656C: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08066570 sub_08066570: @ 0x08066570 push {r4, r5, r6, lr} adds r5, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080665DE ldrb r0, [r5, #0xc] cmp r0, #3 beq _080665DE ldr r4, _080665E0 @ =gUnk_03001160 adds r0, r5, #0 adds r1, r4, #0 movs r2, #0x50 bl sub_0806FC80 cmp r0, #0 beq _080665DE adds r0, r5, #0 adds r1, r4, #0 bl sub_080045C4 adds r3, r0, #0 movs r6, #1 movs r1, #0x18 adds r4, r3, #0 ands r4, r1 ldrb r0, [r5, #0x15] adds r2, r1, #0 ands r2, r0 cmp r2, r4 bne _080665C8 adds r2, r3, #5 movs r1, #7 ands r2, r1 ldrb r0, [r5, #0x15] adds r0, #5 ands r0, r1 cmp r0, #2 bhi _080665C8 cmp r2, #2 bhi _080665C8 movs r6, #0 _080665C8: cmp r6, #0 beq _080665DE strb r3, [r5, #0x15] adds r3, #4 movs r0, #0x18 ands r3, r0 lsrs r3, r3, #3 adds r0, r5, #0 adds r1, r3, #0 bl sub_08004260 _080665DE: pop {r4, r5, r6, pc} .align 2, 0 _080665E0: .4byte gUnk_03001160 thumb_func_start sub_080665E4 sub_080665E4: @ 0x080665E4 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08066638 adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _0806661E movs r0, #0 strb r0, [r2] strb r1, [r4, #0xc] ldr r1, _08066630 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 bl sub_0806F118 _0806661E: ldr r0, _08066634 @ =gUnk_081104EC ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 b _0806664E .align 2, 0 _08066630: .4byte gUnk_03001160 _08066634: .4byte gUnk_081104EC _08066638: ldr r0, _08066650 @ =gUnk_081104E0 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0806ED78 _0806664E: pop {r4, pc} .align 2, 0 _08066650: .4byte gUnk_081104E0 thumb_func_start sub_08066654 sub_08066654: @ 0x08066654 push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 adds r0, r4, #0 movs r1, #2 bl sub_080042AC pop {r4, pc} .align 2, 0 thumb_func_start sub_08066688 sub_08066688: @ 0x08066688 push {r4, lr} adds r4, r0, #0 movs r1, #0x28 movs r2, #0x28 bl sub_0806ED9C adds r1, r0, #0 cmp r1, #0 bge _0806669E movs r1, #2 b _080666B4 _0806669E: ldrb r0, [r4, #0xf] cmp r0, #0 bne _080666AA movs r0, #0x10 strb r0, [r4, #0xf] b _080666B4 _080666AA: subs r0, #1 strb r0, [r4, #0xf] adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] _080666B4: adds r0, r4, #0 bl sub_0806F078 cmp r0, #0 bne _080666C4 adds r0, r4, #0 bl sub_080042B8 _080666C4: adds r2, r4, #0 adds r2, #0x39 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _080666D8 movs r1, #0 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r2] _080666D8: pop {r4, pc} .align 2, 0 thumb_func_start sub_080666DC sub_080666DC: @ 0x080666DC movs r1, #1 strb r1, [r0, #0xc] bx lr .align 2, 0 thumb_func_start sub_080666E4 sub_080666E4: @ 0x080666E4 push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] adds r0, r4, #0 bl sub_0807DD50 pop {r4, pc} thumb_func_start sub_0806670C sub_0806670C: @ 0x0806670C push {lr} movs r1, #0 bl sub_0807DD94 pop {pc} .align 2, 0 thumb_func_start sub_08066718 sub_08066718: @ 0x08066718 push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _08066728 movs r0, #1 strb r0, [r4, #0xc] _08066728: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806672C sub_0806672C: @ 0x0806672C push {lr} adds r1, r0, #0 adds r1, #0x68 ldrb r1, [r1] bl sub_08078784 pop {pc} .align 2, 0 thumb_func_start sub_0806673C sub_0806673C: @ 0x0806673C push {r4, lr} adds r4, r0, #0 movs r0, #2 bl sub_0807CC30 cmp r0, #0 bne _0806674E movs r1, #0 b _0806676A _0806674E: movs r0, #2 bl sub_0807CA84 cmp r0, #0 bne _0806675C movs r1, #1 b _0806676A _0806675C: movs r0, #3 bl sub_0807CA84 movs r1, #3 cmp r0, #0 bne _0806676A movs r1, #2 _0806676A: ldr r0, _0806677C @ =gUnk_081104F8 lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 bl sub_08056398 pop {r4, pc} .align 2, 0 _0806677C: .4byte gUnk_081104F8 thumb_func_start sub_08066780 sub_08066780: @ 0x08066780 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _080667A6 adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 movs r1, #6 bl sub_080042AC b _080667AC _080667A6: adds r0, r2, #0 bl sub_080042B8 _080667AC: pop {pc} .align 2, 0 thumb_func_start sub_080667B0 sub_080667B0: @ 0x080667B0 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _080667C6 adds r0, r4, #0 bl sub_08066864 b _080667DC _080667C6: ldr r0, _080667E0 @ =gUnk_08110644 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0806ED78 _080667DC: pop {r4, pc} .align 2, 0 _080667E0: .4byte gUnk_08110644 thumb_func_start sub_080667E4 sub_080667E4: @ 0x080667E4 push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 bl sub_080042AC adds r0, r4, #0 bl sub_08078778 pop {r4, pc} thumb_func_start sub_08066808 sub_08066808: @ 0x08066808 push {r4, lr} adds r4, r0, #0 movs r1, #0x28 movs r2, #0x28 bl sub_0806ED9C adds r1, r0, #0 cmp r1, #0 bge _0806681E movs r1, #2 b _08066834 _0806681E: ldrb r0, [r4, #0xf] cmp r0, #0 bne _0806682A movs r0, #0x10 strb r0, [r4, #0xf] b _08066834 _0806682A: subs r0, #1 strb r0, [r4, #0xf] adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] _08066834: adds r0, r4, #0 bl sub_0806F078 cmp r0, #0 bne _08066844 adds r0, r4, #0 bl sub_080042B8 _08066844: adds r2, r4, #0 adds r2, #0x39 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08066858 movs r1, #0 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r2] _08066858: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806685C sub_0806685C: @ 0x0806685C movs r1, #1 strb r1, [r0, #0xc] bx lr .align 2, 0 thumb_func_start sub_08066864 sub_08066864: @ 0x08066864 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _080668A2 cmp r0, #1 bgt _08066878 cmp r0, #0 beq _0806687E b _080668EC _08066878: cmp r0, #2 beq _080668DE b _080668EC _0806687E: movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] adds r0, r4, #0 bl sub_0807DD50 b _080668EC _080668A2: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _080668D4 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] ldr r1, _080668D0 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 bl sub_0806F118 b _080668EC .align 2, 0 _080668D0: .4byte gUnk_03001160 _080668D4: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 b _080668EC _080668DE: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _080668EC movs r0, #1 strb r0, [r4, #0xc] _080668EC: pop {r4, pc} .align 2, 0 thumb_func_start sub_080668F0 sub_080668F0: @ 0x080668F0 push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r0, #0 adds r0, r4, #0 bl sub_08078784 pop {r4, pc} .align 2, 0 thumb_func_start sub_08066904 sub_08066904: @ 0x08066904 push {r4, lr} adds r4, r0, #0 movs r0, #2 bl sub_0807CC30 cmp r0, #0 bne _08066916 movs r1, #0 b _08066932 _08066916: movs r0, #2 bl sub_0807CA84 cmp r0, #0 bne _08066924 movs r1, #1 b _08066932 _08066924: movs r0, #3 bl sub_0807CA84 movs r1, #3 cmp r0, #0 bne _08066932 movs r1, #2 _08066932: ldr r0, _08066944 @ =gUnk_08110650 lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 bl sub_08056398 pop {r4, pc} .align 2, 0 _08066944: .4byte gUnk_08110650 thumb_func_start sub_08066948 sub_08066948: @ 0x08066948 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _0806696E adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 movs r1, #6 bl sub_080042AC b _08066974 _0806696E: adds r0, r2, #0 bl sub_080042B8 _08066974: pop {pc} .align 2, 0 thumb_func_start sub_08066978 sub_08066978: @ 0x08066978 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0806699C ldr r0, _08066998 @ =gUnk_081106E0 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 b _080669B2 .align 2, 0 _08066998: .4byte gUnk_081106E0 _0806699C: ldr r0, _080669B4 @ =gUnk_081106D4 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0806ED78 _080669B2: pop {r4, pc} .align 2, 0 _080669B4: .4byte gUnk_081106D4 thumb_func_start sub_080669B8 sub_080669B8: @ 0x080669B8 push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 bl sub_080042AC adds r0, r4, #0 bl sub_08078778 pop {r4, pc} thumb_func_start sub_080669DC sub_080669DC: @ 0x080669DC push {r4, lr} adds r4, r0, #0 movs r1, #0x28 movs r2, #0x28 bl sub_0806ED9C adds r1, r0, #0 cmp r1, #0 bge _080669F2 movs r1, #2 b _08066A08 _080669F2: ldrb r0, [r4, #0xf] cmp r0, #0 bne _080669FE movs r0, #0x10 strb r0, [r4, #0xf] b _08066A08 _080669FE: subs r0, #1 strb r0, [r4, #0xf] adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] _08066A08: adds r0, r4, #0 bl sub_0806F078 cmp r0, #0 bne _08066A18 adds r0, r4, #0 bl sub_080042B8 _08066A18: adds r2, r4, #0 adds r2, #0x39 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08066A2C movs r1, #0 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r2] _08066A2C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08066A30 sub_08066A30: @ 0x08066A30 movs r1, #1 strb r1, [r0, #0xc] bx lr .align 2, 0 thumb_func_start sub_08066A38 sub_08066A38: @ 0x08066A38 push {lr} movs r3, #1 movs r1, #1 strb r1, [r0, #0xc] ldrb r2, [r0, #0x18] subs r1, #5 ands r1, r2 orrs r1, r3 strb r1, [r0, #0x18] bl sub_0807DD50 pop {pc} thumb_func_start sub_08066A50 sub_08066A50: @ 0x08066A50 push {lr} movs r1, #0 bl sub_0807DD94 pop {pc} .align 2, 0 thumb_func_start sub_08066A5C sub_08066A5C: @ 0x08066A5C push {r4, lr} adds r4, r0, #0 ldr r1, _08066A90 @ =gUnk_08110734 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldrb r3, [r4, #0x1a] lsrs r1, r3, #4 adds r0, r4, #0 adds r0, #0x5b ldrb r2, [r0] movs r0, #1 ands r0, r2 adds r1, r1, r0 movs r0, #0xf ands r1, r0 movs r0, #0x10 rsbs r0, r0, #0 ands r0, r3 orrs r0, r1 strb r0, [r4, #0x1a] pop {r4, pc} .align 2, 0 _08066A90: .4byte gUnk_08110734 thumb_func_start sub_08066A94 sub_08066A94: @ 0x08066A94 push {r4, lr} adds r4, r0, #0 movs r2, #0 movs r3, #1 movs r0, #1 strb r0, [r4, #0xc] strb r2, [r4, #0xd] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r3 strb r0, [r4, #0x18] adds r0, r4, #0 adds r0, #0x68 strb r2, [r0] adds r0, #1 strb r2, [r0] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 bl sub_08066ACC pop {r4, pc} thumb_func_start sub_08066ACC sub_08066ACC: @ 0x08066ACC push {r4, r5, lr} adds r4, r0, #0 ldr r1, _08066B18 @ =sub_08066B74 bl sub_0807DD94 adds r0, r4, #0 adds r0, #0x69 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08066AF6 ldr r0, _08066B1C @ =gUnk_030010A0 ldr r0, [r0] movs r1, #3 ands r0, r1 cmp r0, #0 bne _08066AF6 adds r0, r4, #0 bl sub_08095CB0 _08066AF6: adds r1, r4, #0 adds r1, #0x5a ldrb r2, [r1] movs r0, #0x81 rsbs r0, r0, #0 ands r2, r0 adds r5, r1, #0 cmp r2, #0 beq _08066B6E cmp r2, #2 beq _08066B34 cmp r2, #2 bhi _08066B20 cmp r2, #1 beq _08066B2A b _08066B66 .align 2, 0 _08066B18: .4byte sub_08066B74 _08066B1C: .4byte gUnk_030010A0 _08066B20: cmp r2, #3 beq _08066B40 cmp r2, #4 beq _08066B52 b _08066B66 _08066B2A: movs r0, #0x87 lsls r0, r0, #2 bl sub_08004488 b _08066B66 _08066B34: ldr r0, _08066B3C @ =0x0000021E bl sub_08004488 b _08066B66 .align 2, 0 _08066B3C: .4byte 0x0000021E _08066B40: adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] movs r0, #4 str r0, [r1, #4] adds r0, r4, #0 bl sub_0805DDEC b _08066B66 _08066B52: adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] str r2, [r1, #4] adds r0, r4, #0 bl sub_0805DE18 ldr r0, _08066B70 @ =0x0000021D bl sub_08004488 _08066B66: ldrb r1, [r5] movs r0, #0x7f ands r0, r1 strb r0, [r5] _08066B6E: pop {r4, r5, pc} .align 2, 0 _08066B70: .4byte 0x0000021D thumb_func_start sub_08066B74 sub_08066B74: @ 0x08066B74 push {r4, r5, r6, lr} mov ip, r0 ldr r0, [r1, #8] ldr r4, _08066BCC @ =0xFFF00000 ands r4, r0 ldr r2, _08066BD0 @ =0x000FFFFF ands r0, r2 str r0, [r1, #8] cmp r4, #0 bne _08066B8A b _08066C86 _08066B8A: mov r3, ip adds r3, #0x80 mov r5, ip adds r5, #0x68 movs r6, #1 _08066B94: mvns r0, r4 adds r1, r0, #1 ands r1, r4 eors r4, r1 mov r2, ip ldrb r0, [r2, #0x14] lsrs r2, r0, #1 movs r0, #0x80 lsls r0, r0, #0x12 cmp r1, r0 beq _08066C4C cmp r1, r0 bhi _08066BE6 movs r0, #0x80 lsls r0, r0, #0xf cmp r1, r0 beq _08066C34 cmp r1, r0 bhi _08066BD4 movs r0, #0x80 lsls r0, r0, #0xd cmp r1, r0 beq _08066C24 movs r0, #0x80 lsls r0, r0, #0xe cmp r1, r0 beq _08066C2C b _08066C82 .align 2, 0 _08066BCC: .4byte 0xFFF00000 _08066BD0: .4byte 0x000FFFFF _08066BD4: movs r0, #0x80 lsls r0, r0, #0x10 cmp r1, r0 beq _08066C3C movs r0, #0x80 lsls r0, r0, #0x11 cmp r1, r0 beq _08066C44 b _08066C82 _08066BE6: movs r0, #0x80 lsls r0, r0, #0x15 cmp r1, r0 beq _08066C64 cmp r1, r0 bhi _08066C04 movs r0, #0x80 lsls r0, r0, #0x13 cmp r1, r0 beq _08066C54 movs r0, #0x80 lsls r0, r0, #0x14 cmp r1, r0 beq _08066C5C b _08066C82 _08066C04: movs r0, #0x80 lsls r0, r0, #0x17 cmp r1, r0 beq _08066C70 cmp r1, r0 bhi _08066C1A movs r0, #0x80 lsls r0, r0, #0x16 cmp r1, r0 beq _08066C6C b _08066C82 _08066C1A: movs r0, #0x80 lsls r0, r0, #0x18 cmp r1, r0 beq _08066C76 b _08066C82 _08066C24: adds r0, r2, #0 adds r0, #0x10 strh r0, [r3] b _08066C82 _08066C2C: adds r0, r2, #0 adds r0, #0x14 strh r0, [r3] b _08066C82 _08066C34: adds r0, r2, #0 adds r0, #0x18 strh r0, [r3] b _08066C82 _08066C3C: adds r0, r2, #0 adds r0, #0x1c strh r0, [r3] b _08066C82 _08066C44: adds r0, r2, #0 adds r0, #0x20 strh r0, [r3] b _08066C82 _08066C4C: adds r0, r2, #0 adds r0, #0x24 strh r0, [r3] b _08066C82 _08066C54: adds r0, r2, #0 adds r0, #0x28 strh r0, [r3] b _08066C82 _08066C5C: adds r0, r2, #0 adds r0, #0x2c strh r0, [r3] b _08066C82 _08066C64: adds r0, r2, #0 adds r0, #0x30 strh r0, [r3] b _08066C82 _08066C6C: strb r6, [r5] b _08066C82 _08066C70: movs r0, #0xff strb r0, [r5] b _08066C82 _08066C76: mov r2, ip adds r2, #0x69 ldrb r1, [r2] adds r0, r6, #0 eors r0, r1 strb r0, [r2] _08066C82: cmp r4, #0 bne _08066B94 _08066C86: mov r0, ip adds r0, #0x84 ldr r1, [r0] mov r0, ip bl sub_0807DB98 pop {r4, r5, r6, pc} thumb_func_start sub_08066C94 sub_08066C94: @ 0x08066C94 push {lr} movs r1, #0 bl sub_0805DA90 movs r0, #0xf7 bl sub_080A3268 pop {pc} thumb_func_start sub_08066CA4 sub_08066CA4: @ 0x08066CA4 push {lr} movs r1, #1 bl sub_0805DA90 movs r0, #0xf6 bl sub_080A3268 pop {pc} thumb_func_start sub_08066CB4 sub_08066CB4: @ 0x08066CB4 push {lr} ldr r2, _08066CC8 @ =gUnk_08110BD8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08066CC8: .4byte gUnk_08110BD8 thumb_func_start sub_08066CCC sub_08066CCC: @ 0x08066CCC push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #7 bl sub_0805EA78 adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD50 pop {r4, pc} thumb_func_start sub_08066CF8 sub_08066CF8: @ 0x08066CF8 push {lr} movs r1, #0 bl sub_0807DD94 pop {pc} .align 2, 0 thumb_func_start sub_08066D04 sub_08066D04: @ 0x08066D04 push {r4, lr} adds r4, r0, #0 movs r0, #7 movs r1, #0x2e bl sub_0805EB9C str r0, [r4, #0x50] pop {r4, pc} thumb_func_start sub_08066D14 sub_08066D14: @ 0x08066D14 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 ldr r2, [r4, #0x50] cmp r2, #0 beq _08066D48 ldrb r0, [r2, #0x14] strb r0, [r4, #0x14] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r2, #0 adds r1, r4, #0 bl sub_0806FA24 ldr r1, [r4, #0x50] adds r0, r4, #0 bl sub_08068680 movs r0, #1 str r0, [r5, #0x14] b _08066D4A _08066D48: str r2, [r5, #0x14] _08066D4A: pop {r4, r5, pc} thumb_func_start sub_08066D4C sub_08066D4C: @ 0x08066D4C push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 ldr r1, [r4, #0x50] cmp r1, #0 beq _08066D90 bl sub_0806FA24 ldr r3, [r4, #0x50] ldrb r1, [r3, #0x18] movs r2, #4 rsbs r2, r2, #0 adds r0, r2, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r3, #0x18] ldr r1, [r4, #0x50] ldrb r0, [r4, #0x14] strb r0, [r1, #0x14] ldrb r0, [r4, #0x18] ands r2, r0 strb r2, [r4, #0x18] ldrb r1, [r4, #0x17] movs r0, #0xfe ands r0, r1 strb r0, [r4, #0x17] ldr r1, [r4, #0x50] adds r0, r4, #0 bl sub_08068694 movs r0, #1 str r0, [r5, #0x14] b _08066D92 _08066D90: str r1, [r5, #0x14] _08066D92: pop {r4, r5, pc} thumb_func_start sub_08066D94 sub_08066D94: @ 0x08066D94 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x1c bl sub_0807CD04 movs r0, #0x2e movs r1, #0 movs r2, #0 bl sub_0806ED50 adds r4, r0, #0 cmp r4, #0 beq _08066DD6 ldr r0, _08066DDC @ =gUnk_03001160 ldrb r0, [r0, #0x14] strb r0, [r4, #0x14] ldrb r1, [r4, #0x10] movs r0, #0x20 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r5, #0 bl sub_0806EDC4 strb r0, [r4, #0x14] ldr r0, _08066DE0 @ =gUnk_03000BF0 ldrb r1, [r0, #5] adds r0, r4, #0 adds r0, #0x74 strh r1, [r0] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 _08066DD6: bl sub_0805E780 pop {r4, r5, pc} .align 2, 0 _08066DDC: .4byte gUnk_03001160 _08066DE0: .4byte gUnk_03000BF0 thumb_func_start sub_08066DE4 sub_08066DE4: @ 0x08066DE4 push {r4, r5, lr} adds r5, r0, #0 movs r0, #7 movs r1, #0x2e bl sub_0805EB9C adds r4, r0, #0 cmp r4, #0 beq _08066E06 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 adds r0, r5, #0 adds r1, r4, #0 bl sub_080686C4 _08066E06: pop {r4, r5, pc} thumb_func_start sub_08066E08 sub_08066E08: @ 0x08066E08 push {r4, lr} adds r4, r0, #0 movs r1, #0x50 bl sub_080042AC adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] adds r4, #0x80 strh r0, [r4] pop {r4, pc} .align 2, 0 thumb_func_start sub_08066E20 sub_08066E20: @ 0x08066E20 push {r4, lr} adds r4, r0, #0 movs r1, #0x44 bl sub_080042AC adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] adds r4, #0x80 strh r0, [r4] pop {r4, pc} .align 2, 0 thumb_func_start sub_08066E38 sub_08066E38: @ 0x08066E38 push {r4, lr} adds r4, r0, #0 movs r1, #0x48 bl sub_080042AC adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] adds r4, #0x80 strh r0, [r4] pop {r4, pc} .align 2, 0 thumb_func_start sub_08066E50 sub_08066E50: @ 0x08066E50 push {r4, lr} adds r4, r0, #0 movs r1, #0x4c bl sub_080042AC adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] adds r4, #0x80 strh r0, [r4] pop {r4, pc} .align 2, 0 thumb_func_start sub_08066E68 sub_08066E68: @ 0x08066E68 push {r4, lr} adds r4, r0, #0 movs r1, #0x54 bl sub_080042AC adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] adds r4, #0x80 strh r0, [r4] pop {r4, pc} .align 2, 0 thumb_func_start sub_08066E80 sub_08066E80: @ 0x08066E80 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 ldrb r0, [r5, #0x18] cmp r0, #4 bhi _08066F7C lsls r0, r0, #2 ldr r1, _08066E98 @ =_08066E9C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08066E98: .4byte _08066E9C _08066E9C: @ jump table .4byte _08066EB0 @ case 0 .4byte _08066EC0 @ case 1 .4byte _08066EF0 @ case 2 .4byte _08066F28 @ case 3 .4byte _08066F58 @ case 4 _08066EB0: ldrb r0, [r5, #0x18] adds r0, #1 strb r0, [r5, #0x18] adds r0, r4, #0 movs r1, #0x16 bl sub_080042AC b _08066F7C _08066EC0: adds r0, r4, #0 bl sub_080042B8 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08066F7C ldrb r0, [r5, #0x18] adds r0, #1 strb r0, [r5, #0x18] movs r0, #0x80 lsls r0, r0, #0xa str r0, [r4, #0x20] ldrb r1, [r2] movs r0, #0xfe ands r0, r1 strb r0, [r2] movs r0, #0x7c bl sub_080A3268 b _08066F7C _08066EF0: movs r1, #0x80 lsls r1, r1, #1 adds r0, r4, #0 movs r2, #0x80 bl sub_0806F62C movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 bne _08066F1A adds r0, r4, #0 bl sub_080042B8 _08066F1A: ldr r0, [r4, #0x20] cmp r0, #0 bge _08066F7C ldrb r0, [r5, #0x18] adds r0, #1 strb r0, [r5, #0x18] b _08066F7C _08066F28: movs r1, #0x80 lsls r1, r1, #1 adds r0, r4, #0 movs r2, #0x80 bl sub_0806F62C adds r0, r4, #0 bl sub_080042B8 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08066F7C ldrb r0, [r5, #0x18] adds r0, #1 strb r0, [r5, #0x18] adds r0, r4, #0 movs r1, #0x1e bl sub_080042AC b _08066F7C _08066F58: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08066F7C ldr r2, _08066F78 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] b _08066F8C .align 2, 0 _08066F78: .4byte gUnk_02033280 _08066F7C: adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] adds r0, #0x28 movs r2, #0 strh r1, [r0] ldr r0, _08066F90 @ =gUnk_02033280 strb r2, [r0, #6] _08066F8C: pop {r4, r5, pc} .align 2, 0 _08066F90: .4byte gUnk_02033280 thumb_func_start sub_08066F94 sub_08066F94: @ 0x08066F94 push {r4, lr} ldr r4, _08066F9C @ =gUnk_08110BE0 b _08066FAC .align 2, 0 _08066F9C: .4byte gUnk_08110BE0 _08066FA0: ldrh r1, [r4] adds r4, #2 ldr r0, _08066FB4 @ =0x00004072 movs r2, #1 bl sub_0807B314 _08066FAC: ldrh r0, [r4] cmp r0, #0 bne _08066FA0 pop {r4, pc} .align 2, 0 _08066FB4: .4byte 0x00004072 thumb_func_start sub_08066FB8 sub_08066FB8: @ 0x08066FB8 push {r4, lr} ldr r4, _08066FC0 @ =gUnk_08110BE0 b _08066FCE .align 2, 0 _08066FC0: .4byte gUnk_08110BE0 _08066FC4: ldrh r0, [r4] adds r4, #2 movs r1, #1 bl sub_0807BA8C _08066FCE: ldrh r0, [r4] cmp r0, #0 bne _08066FC4 pop {r4, pc} .align 2, 0 thumb_func_start sub_08066FD8 sub_08066FD8: @ 0x08066FD8 push {r4, lr} adds r4, r0, #0 adds r0, #0x84 ldr r0, [r0] cmp r0, #0 bne _08066FE8 bl sub_0805E780 _08066FE8: ldrb r0, [r4, #0xc] cmp r0, #1 beq _08067030 cmp r0, #1 bgt _08066FF8 cmp r0, #0 beq _08066FFE b _0806707C _08066FF8: cmp r0, #2 beq _0806706E b _0806707C _08066FFE: ldr r1, _0806702C @ =gUnk_08110C00 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806707C movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD50 b _0806707C .align 2, 0 _0806702C: .4byte gUnk_08110C00 _08067030: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _08067064 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] ldr r1, _08067060 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r1, #4 adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 bl sub_0806F118 b _0806707C .align 2, 0 _08067060: .4byte gUnk_03001160 _08067064: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 b _0806707C _0806706E: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _0806707C movs r0, #1 strb r0, [r4, #0xc] _0806707C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08067080 sub_08067080: @ 0x08067080 push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r2, [r0] movs r0, #0x81 rsbs r0, r0, #0 ands r2, r0 adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 ldrb r2, [r4, #0x1e] adds r0, r4, #0 movs r1, #1 bl sub_0806FF60 adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r4, #0 bl sub_0807000C pop {r4, pc} .align 2, 0 thumb_func_start sub_080670B4 sub_080670B4: @ 0x080670B4 push {r4, r5, lr} adds r5, r0, #0 movs r4, #0 movs r0, #0x11 bl sub_0807CA84 cmp r0, #0 bne _080670D0 movs r0, #0x15 bl sub_0807CC30 rsbs r1, r0, #0 orrs r1, r0 lsrs r4, r1, #0x1f _080670D0: ldr r0, _080670E0 @ =gUnk_08110C0C lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 bl sub_08056398 pop {r4, r5, pc} .align 2, 0 _080670E0: .4byte gUnk_08110C0C thumb_func_start sub_080670E4 sub_080670E4: @ 0x080670E4 push {lr} ldr r1, _080670F8 @ =gUnk_02002A40 ldrb r1, [r1, #8] lsls r1, r1, #3 ldr r2, _080670FC @ =gUnk_08110C10 adds r1, r1, r2 bl sub_0806F1AC pop {pc} .align 2, 0 _080670F8: .4byte gUnk_02002A40 _080670FC: .4byte gUnk_08110C10 thumb_func_start sub_08067100 sub_08067100: @ 0x08067100 push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 pop {r4, pc} thumb_func_start sub_08067118 sub_08067118: @ 0x08067118 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08067150 ldr r1, _0806714C @ =gUnk_08110C00 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _08067156 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 bl sub_08004260 b _08067156 .align 2, 0 _0806714C: .4byte gUnk_08110C00 _08067150: adds r0, r4, #0 bl sub_08004274 _08067156: pop {r4, pc} thumb_func_start sub_08067158 sub_08067158: @ 0x08067158 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x84 ldr r0, [r0] cmp r0, #0 bne _08067168 bl sub_0805E780 _08067168: ldrb r5, [r4, #0xc] cmp r5, #1 beq _080671A8 cmp r5, #1 bgt _08067178 cmp r5, #0 beq _0806717E b _08067224 _08067178: cmp r5, #2 beq _0806720A b _08067224 _0806717E: ldrb r1, [r4, #0xa] lsls r1, r1, #4 ldr r0, _080671EC @ =gUnk_08110CA8 adds r1, r1, r0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _08067224 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x69 strb r5, [r0] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD64 _080671A8: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _080671F4 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x69 strb r0, [r1] ldr r1, _080671F0 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 ldrb r0, [r4, #0xa] lsls r0, r0, #3 adds r0, #4 adds r1, r1, r0 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_0806F118 b _08067224 .align 2, 0 _080671EC: .4byte gUnk_08110CA8 _080671F0: .4byte gUnk_03001160 _080671F4: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_08004274 b _08067224 _0806720A: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _08067224 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x69 ldrb r1, [r0] adds r0, r4, #0 bl sub_08004260 _08067224: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08067228 sub_08067228: @ 0x08067228 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #1 bhi _0806727E adds r0, r4, #0 adds r0, #0x5a ldrb r2, [r0] movs r0, #0x81 rsbs r0, r0, #0 ands r2, r0 adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 ldrb r2, [r4, #0x1e] adds r0, r4, #0 movs r1, #1 bl sub_0806FF60 adds r0, r4, #0 adds r0, #0x5b ldrb r0, [r0] movs r2, #0x3f ands r2, r0 adds r0, r4, #0 movs r1, #2 bl sub_0806FF60 adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r4, #0 movs r1, #1 movs r2, #2 bl sub_0806FFD8 adds r0, r4, #0 bl sub_0807000C b _080672AC _0806727E: adds r0, r4, #0 adds r0, #0x5a ldrb r2, [r0] movs r0, #0x81 rsbs r0, r0, #0 ands r2, r0 adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 ldrb r2, [r4, #0x1e] adds r0, r4, #0 movs r1, #1 bl sub_0806FF60 adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r4, #0 bl sub_0807000C _080672AC: pop {r4, pc} .align 2, 0 thumb_func_start sub_080672B0 sub_080672B0: @ 0x080672B0 push {lr} ldrb r2, [r0, #0x14] lsrs r2, r2, #1 ldr r1, [r1, #4] adds r1, r1, r2 ldrb r2, [r0, #0xa] lsls r2, r2, #3 adds r1, r1, r2 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_080672C8 sub_080672C8: @ 0x080672C8 push {r4, r5, lr} adds r5, r0, #0 movs r4, #0 movs r0, #0x11 bl sub_0807CA84 cmp r0, #0 bne _080672E4 movs r0, #0x15 bl sub_0807CC30 rsbs r1, r0, #0 orrs r1, r0 lsrs r4, r1, #0x1f _080672E4: ldr r3, _08067300 @ =gUnk_08110CE8 lsls r1, r4, #1 ldrb r2, [r5, #0xa] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #1 adds r1, r1, r0 adds r1, r1, r3 ldrh r0, [r1] adds r1, r5, #0 bl sub_08056398 pop {r4, r5, pc} .align 2, 0 _08067300: .4byte gUnk_08110CE8 thumb_func_start sub_08067304 sub_08067304: @ 0x08067304 push {lr} ldr r1, _08067310 @ =gUnk_08110D00 bl sub_0806F1AC pop {pc} .align 2, 0 _08067310: .4byte gUnk_08110D00 thumb_func_start sub_08067314 sub_08067314: @ 0x08067314 push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 pop {r4, pc} thumb_func_start sub_0806732C sub_0806732C: @ 0x0806732C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08067378 ldrb r1, [r4, #0xa] lsls r1, r1, #4 ldr r0, _08067374 @ =gUnk_08110CA8 adds r1, r1, r0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806737E ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 ldrb r1, [r4, #0xa] lsls r1, r1, #3 adds r1, #2 adds r0, r4, #0 bl sub_08004260 b _0806737E .align 2, 0 _08067374: .4byte gUnk_08110CA8 _08067378: adds r0, r4, #0 bl sub_08004274 _0806737E: pop {r4, pc} thumb_func_start sub_08067380 sub_08067380: @ 0x08067380 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _080673A4 ldr r0, _080673A0 @ =gUnk_08110E5C ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 b _080673BA .align 2, 0 _080673A0: .4byte gUnk_08110E5C _080673A4: ldr r0, _080673BC @ =gUnk_08110E4C ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0806ED78 _080673BA: pop {r4, pc} .align 2, 0 _080673BC: .4byte gUnk_08110E4C thumb_func_start sub_080673C0 sub_080673C0: @ 0x080673C0 push {lr} adds r2, r0, #0 ldr r0, _080673D4 @ =gUnk_030010A0 adds r0, #0x2c ldrb r0, [r0] cmp r0, #0 beq _080673D8 movs r0, #3 b _080673DA .align 2, 0 _080673D4: .4byte gUnk_030010A0 _080673D8: movs r0, #1 _080673DA: strb r0, [r2, #0xc] ldrb r1, [r2, #0xa] movs r0, #1 ands r0, r1 strb r0, [r2, #0x1e] cmp r0, #0 bne _080673EC ldr r0, _080673F0 @ =gUnk_08110E94 str r0, [r2, #0x48] _080673EC: pop {pc} .align 2, 0 _080673F0: .4byte gUnk_08110E94 thumb_func_start sub_080673F4 sub_080673F4: @ 0x080673F4 push {lr} adds r2, r0, #0 adds r3, r2, #0 adds r3, #0x39 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _0806740C movs r1, #0 movs r0, #2 strb r0, [r2, #0xc] strb r1, [r3] _0806740C: pop {pc} .align 2, 0 thumb_func_start sub_08067410 sub_08067410: @ 0x08067410 movs r1, #1 strb r1, [r0, #0xc] bx lr .align 2, 0 thumb_func_start sub_08067418 sub_08067418: @ 0x08067418 push {r4, r5, r6, r7, lr} adds r6, r0, #0 movs r0, #1 strb r0, [r6, #0xc] movs r0, #0x2e ldrsh r1, [r6, r0] ldr r2, _08067488 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r4, #0x32 ldrsh r0, [r6, r4] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r7, r6, #0 adds r7, #0x74 strh r1, [r7] ldrb r0, [r6, #0xa] cmp r0, #0 bne _08067494 ldr r0, _0806748C @ =gUnk_08110E94 str r0, [r6, #0x48] ldr r5, _08067490 @ =0x00004022 ldrh r1, [r7] subs r1, #1 adds r4, r6, #0 adds r4, #0x38 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldrh r1, [r7] ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldrh r1, [r7] adds r1, #0x3f ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldrh r1, [r7] adds r1, #0x40 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E b _080674F8 .align 2, 0 _08067488: .4byte gUnk_03000BF0 _0806748C: .4byte gUnk_08110E94 _08067490: .4byte 0x00004022 _08067494: adds r1, r6, #0 adds r1, #0x38 movs r0, #3 strb r0, [r1] ldrb r2, [r6, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 movs r2, #0x40 orrs r0, r2 strb r0, [r6, #0x1b] ldrb r0, [r6, #0x19] ands r1, r0 orrs r1, r2 strb r1, [r6, #0x19] adds r2, r6, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r2] movs r0, #0x1d bl sub_0807CBD0 cmp r0, #0 bne _080674F8 ldr r4, _08067500 @ =0x00004022 ldr r1, _08067504 @ =0x00000E81 adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _08067508 @ =0x00000E82 adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _0806750C @ =0x00000E83 adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _08067510 @ =0x00000EC3 adds r0, r4, #0 movs r2, #1 bl sub_0800015E _080674F8: adds r0, r6, #0 bl sub_0807DD50 pop {r4, r5, r6, r7, pc} .align 2, 0 _08067500: .4byte 0x00004022 _08067504: .4byte 0x00000E81 _08067508: .4byte 0x00000E82 _0806750C: .4byte 0x00000E83 _08067510: .4byte 0x00000EC3 thumb_func_start sub_08067514 sub_08067514: @ 0x08067514 push {r4, lr} adds r4, r0, #0 movs r1, #0 bl sub_0807DD94 ldrb r0, [r4, #0xa] cmp r0, #0 bne _0806752A adds r0, r4, #0 bl sub_0806ED78 _0806752A: pop {r4, pc} thumb_func_start sub_0806752C sub_0806752C: @ 0x0806752C push {lr} bl sub_0806FD3C pop {pc} thumb_func_start sub_08067534 sub_08067534: @ 0x08067534 push {r4, r5, lr} adds r5, r0, #0 movs r4, #0 _0806753A: adds r0, r5, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _08067560 ldr r0, _08067578 @ =gUnk_08110E64 adds r0, r4, r0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r2, [r1, #0x2e] adds r0, r0, r2 strh r0, [r1, #0x2e] ldrh r0, [r1, #0x32] adds r0, #0x1c strh r0, [r1, #0x32] _08067560: adds r4, #1 cmp r4, #1 ble _0806753A movs r0, #0xa6 lsls r0, r0, #1 bl sub_08004488 movs r0, #0x28 movs r1, #4 bl sub_08080964 pop {r4, r5, pc} .align 2, 0 _08067578: .4byte gUnk_08110E64 thumb_func_start sub_0806757C sub_0806757C: @ 0x0806757C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xd] cmp r0, #0 beq _080675CC cmp r0, #2 bls _080675BC ldr r0, _080675AC @ =0x00000E81 movs r1, #1 bl sub_0807BA8C ldr r0, _080675B0 @ =0x00000E82 movs r1, #1 bl sub_0807BA8C ldr r0, _080675B4 @ =0x00000E83 movs r1, #1 bl sub_0807BA8C ldr r0, _080675B8 @ =0x00000EC3 movs r1, #1 bl sub_0807BA8C b _080675CC .align 2, 0 _080675AC: .4byte 0x00000E81 _080675B0: .4byte 0x00000E82 _080675B4: .4byte 0x00000E83 _080675B8: .4byte 0x00000EC3 _080675BC: ldr r0, _080675D0 @ =gUnk_08110E68 ldrb r1, [r2, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl sub_080ADF80 _080675CC: pop {pc} .align 2, 0 _080675D0: .4byte gUnk_08110E68 thumb_func_start sub_080675D4 sub_080675D4: @ 0x080675D4 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 ldr r5, _080676D0 @ =gUnk_08110E78 ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r7, r0, #0 subs r7, #0xc movs r0, #0x3f mov r8, r0 movs r6, #8 _080675EC: adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC adds r3, r0, #0 cmp r3, #0 beq _08067646 movs r0, #0 ldrsb r0, [r5, r0] ldrh r1, [r3, #0x2e] adds r0, r0, r1 strh r0, [r3, #0x2e] movs r0, #1 ldrsb r0, [r5, r0] ldrh r1, [r3, #0x32] adds r0, r0, r1 strh r0, [r3, #0x32] strh r7, [r3, #0x36] adds r0, r4, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r3, #0 adds r0, #0x38 strb r1, [r0] ldrb r1, [r4, #0x1b] lsrs r1, r1, #6 lsls r1, r1, #6 ldrb r2, [r3, #0x1b] mov r0, r8 ands r0, r2 orrs r0, r1 strb r0, [r3, #0x1b] ldrb r1, [r4, #0x19] lsrs r1, r1, #6 lsls r1, r1, #6 ldrb r2, [r3, #0x19] mov r0, r8 ands r0, r2 orrs r0, r1 strb r0, [r3, #0x19] adds r0, r4, #0 adds r1, r3, #0 bl sub_0806FAB0 _08067646: subs r6, #1 adds r5, #2 cmp r6, #0 bge _080675EC ldr r5, _080676D4 @ =gUnk_08110E8A movs r0, #0x3f mov r8, r0 movs r6, #3 _08067656: adds r0, r4, #0 movs r1, #4 movs r2, #0 bl sub_080A29AC adds r3, r0, #0 cmp r3, #0 beq _080676B0 movs r0, #0 ldrsb r0, [r5, r0] ldrh r1, [r3, #0x2e] adds r0, r0, r1 strh r0, [r3, #0x2e] movs r0, #1 ldrsb r0, [r5, r0] ldrh r1, [r3, #0x32] adds r0, r0, r1 strh r0, [r3, #0x32] strh r7, [r3, #0x36] adds r0, r4, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r3, #0 adds r0, #0x38 strb r1, [r0] ldrb r1, [r4, #0x1b] lsrs r1, r1, #6 lsls r1, r1, #6 ldrb r2, [r3, #0x1b] mov r0, r8 ands r0, r2 orrs r0, r1 strb r0, [r3, #0x1b] ldrb r1, [r4, #0x19] lsrs r1, r1, #6 lsls r1, r1, #6 ldrb r2, [r3, #0x19] mov r0, r8 ands r0, r2 orrs r0, r1 strb r0, [r3, #0x19] adds r0, r4, #0 adds r1, r3, #0 bl sub_0806FAB0 _080676B0: subs r6, #1 adds r5, #2 cmp r6, #0 bge _08067656 ldrb r0, [r4, #0xd] cmp r0, #2 bls _080676C8 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] _080676C8: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _080676D0: .4byte gUnk_08110E78 _080676D4: .4byte gUnk_08110E8A thumb_func_start sub_080676D8 sub_080676D8: @ 0x080676D8 ldrb r1, [r0, #0xd] adds r1, #1 strb r1, [r0, #0xd] bx lr thumb_func_start sub_080676E0 sub_080676E0: @ 0x080676E0 push {lr} adds r3, r0, #0 adds r2, r1, #0 ldrb r0, [r2, #0x18] cmp r0, #1 beq _08067706 cmp r0, #1 bgt _080676F6 cmp r0, #0 beq _080676FC b _08067734 _080676F6: cmp r0, #2 beq _08067722 b _08067734 _080676FC: movs r0, #1 strb r0, [r2, #0x18] movs r0, #0x20 strb r0, [r2, #0x19] b _08067742 _08067706: ldrb r1, [r2, #0x19] lsrs r0, r1, #1 subs r0, #0x10 strh r0, [r3, #0x36] subs r1, #1 strb r1, [r2, #0x19] lsls r1, r1, #0x18 cmp r1, #0 bne _08067742 movs r0, #2 strb r0, [r2, #0x18] movs r0, #0x24 strb r0, [r2, #0x19] b _08067742 _08067722: ldrb r0, [r2, #0x19] subs r0, #1 strb r0, [r2, #0x19] lsls r0, r0, #0x18 cmp r0, #0 bne _08067742 movs r0, #3 strb r0, [r2, #0x18] b _08067742 _08067734: movs r1, #0xc0 lsls r1, r1, #5 adds r0, r3, #0 bl sub_08003FC4 cmp r0, #0 beq _08067748 _08067742: ldr r1, _0806774C @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _08067748: pop {pc} .align 2, 0 _0806774C: .4byte gUnk_02033280 thumb_func_start sub_08067750 sub_08067750: @ 0x08067750 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08067788 adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] ldrh r0, [r4, #0x32] subs r0, #0x18 strh r0, [r4, #0x32] adds r0, r4, #0 movs r1, #1 bl sub_08004260 ldr r1, _08067784 @ =0x0000017B adds r0, r4, #0 bl sub_0801D2B4 b _0806778E .align 2, 0 _08067784: .4byte 0x0000017B _08067788: adds r0, r4, #0 bl sub_08004274 _0806778E: pop {r4, pc} thumb_func_start sub_08067790 sub_08067790: @ 0x08067790 push {lr} ldrb r2, [r0, #0xa] lsls r1, r2, #2 adds r1, r1, r2 lsls r1, r1, #4 ldr r2, _080677AC @ =gUnk_02002A40 ldrb r2, [r2, #8] lsls r2, r2, #3 ldr r3, _080677B0 @ =gUnk_08110EF8 adds r2, r2, r3 adds r1, r1, r2 bl sub_0806F1AC pop {pc} .align 2, 0 _080677AC: .4byte gUnk_02002A40 _080677B0: .4byte gUnk_08110EF8 thumb_func_start sub_080677B4 sub_080677B4: @ 0x080677B4 push {r4, lr} adds r4, r0, #0 ldr r1, _080677E8 @ =gUnk_081110D8 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_08067C44 ldrb r1, [r4, #0x10] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080677E4 ldrb r0, [r4, #0xa] cmp r0, #5 beq _080677E4 adds r0, r4, #0 bl sub_0806ED78 _080677E4: pop {r4, pc} .align 2, 0 _080677E8: .4byte gUnk_081110D8 thumb_func_start sub_080677EC sub_080677EC: @ 0x080677EC push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #8 strb r0, [r4, #0x15] movs r0, #0x80 strh r0, [r4, #0x24] adds r1, r4, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] adds r1, #4 movs r0, #0x48 strb r0, [r1] subs r1, #1 movs r0, #0xa8 strb r0, [r1] subs r1, #4 movs r0, #1 strb r0, [r1] adds r1, #0x2e movs r0, #0xff strb r0, [r1] ldr r0, _0806783C @ =gUnk_03001160 movs r2, #0x2e ldrsh r1, [r4, r2] movs r2, #0x2e ldrsh r0, [r0, r2] cmp r1, r0 bge _08067840 ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 b _08067848 .align 2, 0 _0806783C: .4byte gUnk_03001160 _08067840: ldrb r1, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 _08067848: strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldr r0, _0806786C @ =gUnk_08110EF0 str r0, [r4, #0x48] adds r0, r4, #0 bl sub_0805ACC0 adds r2, r0, #0 cmp r2, #0 bne _08067870 movs r0, #0x2e ldrsh r2, [r4, r0] b _08067872 .align 2, 0 _0806786C: .4byte gUnk_08110EF0 _08067870: lsrs r2, r2, #0x10 _08067872: adds r0, r4, #0 adds r0, #0x6c movs r1, #0 strh r2, [r0] ldrb r0, [r4, #0xe] adds r0, r0, r2 adds r2, r4, #0 adds r2, #0x6e strh r0, [r2] strb r1, [r4, #0xe] adds r0, r4, #0 adds r0, #0x75 strb r1, [r0] bl sub_08000E50 movs r1, #0x7f ands r0, r1 adds r0, #0x1e adds r1, r4, #0 adds r1, #0x74 strb r0, [r1] subs r1, #0xb movs r0, #0xff strb r0, [r1] adds r0, r4, #0 bl sub_08067B08 pop {r4, pc} .align 2, 0 thumb_func_start sub_080678AC sub_080678AC: @ 0x080678AC push {r4, r5, lr} adds r4, r0, #0 bl sub_08067D20 cmp r0, #0 beq _080678C2 adds r0, r4, #0 movs r1, #5 bl sub_08067B80 b _08067900 _080678C2: adds r2, r4, #0 adds r2, #0x72 ldrh r0, [r2] cmp r0, #0 beq _080678D0 subs r0, #1 strh r0, [r2] _080678D0: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] adds r5, r0, #0 cmp r1, #1 bne _080678EA ldrh r0, [r2] cmp r0, #0 bne _080678EA adds r0, r4, #0 bl sub_08067AAC b _08067900 _080678EA: adds r0, r4, #0 bl sub_080042B8 ldrb r1, [r5] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08067900 adds r0, r4, #0 bl sub_08067B34 _08067900: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08067904 sub_08067904: @ 0x08067904 push {r4, lr} adds r4, r0, #0 bl sub_08067D20 cmp r0, #0 beq _0806791A adds r0, r4, #0 movs r1, #8 bl sub_08067B80 b _08067978 _0806791A: adds r1, r4, #0 adds r1, #0x72 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08067932 adds r0, r4, #0 bl sub_08067B70 b _08067978 _08067932: ldrb r0, [r4, #0x15] cmp r0, #8 bne _08067952 movs r1, #0x2e ldrsh r0, [r4, r1] adds r1, r4, #0 adds r1, #0x6e ldrh r1, [r1] cmp r0, r1 ble _0806796C movs r0, #0x18 strb r0, [r4, #0x15] ldrb r1, [r4, #0x18] subs r0, #0x59 ands r0, r1 b _0806796A _08067952: movs r0, #0x2e ldrsh r1, [r4, r0] adds r0, r4, #0 adds r0, #0x6c ldrh r0, [r0] cmp r1, r0 bge _0806796C movs r0, #8 strb r0, [r4, #0x15] ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 _0806796A: strb r0, [r4, #0x18] _0806796C: adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_080042B8 _08067978: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806797C sub_0806797C: @ 0x0806797C 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 _08067998 adds r0, r4, #0 bl sub_08067B08 _08067998: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806799C sub_0806799C: @ 0x0806799C push {r4, lr} adds r4, r0, #0 bl sub_080042B8 ldr r0, _080679C0 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _080679BE adds r0, r4, #0 bl sub_08067B08 adds r0, r4, #0 movs r1, #1 bl sub_0805E3A0 _080679BE: pop {r4, pc} .align 2, 0 _080679C0: .4byte gUnk_02000050 thumb_func_start sub_080679C4 sub_080679C4: @ 0x080679C4 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x74 ldrb r0, [r1] cmp r0, #0 beq _080679E6 subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 beq _080679E6 adds r0, r4, #0 bl sub_08067D20 cmp r0, #0 bne _080679EE _080679E6: adds r0, r4, #0 bl sub_08067C24 b _08067A0A _080679EE: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_08067BD4 adds r0, r4, #0 bl sub_08067D74 cmp r0, #0 beq _08067A0A adds r0, r4, #0 bl sub_08067C18 _08067A0A: pop {r4, pc} thumb_func_start sub_08067A0C sub_08067A0C: @ 0x08067A0C 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 _08067A44 adds r0, r4, #0 bl sub_08067D20 cmp r0, #0 beq _08067A3C adds r0, r4, #0 movs r1, #5 bl sub_08067B80 ldrb r0, [r4, #0xe] adds r0, #0x14 strb r0, [r4, #0xe] b _08067A76 _08067A3C: adds r0, r4, #0 bl sub_08067C24 b _08067A76 _08067A44: movs r2, #7 ands r2, r1 cmp r2, #0 beq _08067A70 ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldr r1, _08067A6C @ =gUnk_08111154 ldrb r0, [r4, #0x18] lsls r0, r0, #0x19 lsrs r0, r0, #0x1f lsls r0, r0, #2 subs r0, #1 adds r0, r2, r0 lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [r4, #0x48] b _08067A76 .align 2, 0 _08067A6C: .4byte gUnk_08111154 _08067A70: adds r0, r4, #0 bl sub_08067DDC _08067A76: pop {r4, pc} thumb_func_start sub_08067A78 sub_08067A78: @ 0x08067A78 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 _08067A94 adds r0, r4, #0 bl sub_08067AAC _08067A94: pop {r4, pc} .align 2, 0 thumb_func_start sub_08067A98 sub_08067A98: @ 0x08067A98 push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _08067AAA adds r0, r4, #0 bl sub_08067B08 _08067AAA: pop {r4, pc} thumb_func_start sub_08067AAC sub_08067AAC: @ 0x08067AAC push {r4, lr} adds r4, r0, #0 movs r0, #2 strb r0, [r4, #0xc] bl sub_08000E50 ldr r2, _08067AFC @ =gUnk_081110FC movs r1, #3 ands r1, r0 lsls r1, r1, #1 adds r1, r1, r2 ldrh r0, [r1] adds r1, r4, #0 adds r1, #0x72 strh r0, [r1] ldrb r1, [r4, #0x15] lsrs r1, r1, #4 movs r0, #1 eors r1, r0 ands r1, r0 lsls r1, r1, #6 ldrb r2, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #3 bl sub_08067DCC ldr r0, _08067B00 @ =gUnk_0811110C ldrb r2, [r0, #2] ldr r3, _08067B04 @ =gUnk_0811110F adds r0, r4, #0 movs r1, #0 bl sub_08078850 pop {r4, pc} .align 2, 0 _08067AFC: .4byte gUnk_081110FC _08067B00: .4byte gUnk_0811110C _08067B04: .4byte gUnk_0811110F thumb_func_start sub_08067B08 sub_08067B08: @ 0x08067B08 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] bl sub_08000E50 ldr r2, _08067B30 @ =gUnk_08111104 movs r1, #3 ands r1, r0 lsls r1, r1, #1 adds r1, r1, r2 ldrh r0, [r1] adds r1, r4, #0 adds r1, #0x72 strh r0, [r1] adds r0, r4, #0 bl sub_08067B34 pop {r4, pc} .align 2, 0 _08067B30: .4byte gUnk_08111104 thumb_func_start sub_08067B34 sub_08067B34: @ 0x08067B34 push {r4, lr} adds r4, r0, #0 movs r1, #0 bl sub_08067DCC bl sub_08000E50 movs r1, #0x30 ands r0, r1 adds r0, #0xb4 adds r1, r4, #0 adds r1, #0x59 strb r0, [r1] ldr r1, _08067B68 @ =gUnk_0811110C ldrb r0, [r4, #0x18] lsls r0, r0, #0x19 lsrs r0, r0, #0x1f adds r0, r0, r1 ldrb r2, [r0] ldr r3, _08067B6C @ =gUnk_0811110F adds r0, r4, #0 movs r1, #0 bl sub_08078850 pop {r4, pc} .align 2, 0 _08067B68: .4byte gUnk_0811110C _08067B6C: .4byte gUnk_0811110F thumb_func_start sub_08067B70 sub_08067B70: @ 0x08067B70 push {lr} movs r1, #3 strb r1, [r0, #0xc] movs r1, #4 bl sub_08067DCC pop {pc} .align 2, 0 thumb_func_start sub_08067B80 sub_08067B80: @ 0x08067B80 push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 movs r0, #5 strb r0, [r5, #0xc] movs r0, #0x14 strb r0, [r5, #0xe] bl sub_08000E50 movs r1, #0x7f ands r0, r1 adds r0, #0x1e adds r1, r5, #0 adds r1, #0x74 strb r0, [r1] adds r0, r5, #0 adds r1, r4, #0 bl sub_080042AC adds r0, r5, #0 bl sub_08067DDC ldr r0, _08067BC4 @ =gUnk_03001160 movs r2, #0x2e ldrsh r1, [r5, r2] movs r2, #0x2e ldrsh r0, [r0, r2] cmp r1, r0 bge _08067BC8 ldrb r0, [r5, #0x18] movs r1, #0x40 orrs r0, r1 b _08067BD0 .align 2, 0 _08067BC4: .4byte gUnk_03001160 _08067BC8: ldrb r1, [r5, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 _08067BD0: strb r0, [r5, #0x18] pop {r4, r5, pc} thumb_func_start sub_08067BD4 sub_08067BD4: @ 0x08067BD4 push {r4, lr} adds r2, r0, #0 ldrb r3, [r2, #0x18] lsls r0, r3, #0x19 cmp r0, #0 bge _08067BFC movs r1, #0x2e ldrsh r0, [r2, r1] subs r0, #4 ldr r1, _08067BF8 @ =gUnk_03001160 movs r4, #0x2e ldrsh r1, [r1, r4] cmp r0, r1 ble _08067C12 movs r0, #0x41 rsbs r0, r0, #0 ands r0, r3 b _08067C10 .align 2, 0 _08067BF8: .4byte gUnk_03001160 _08067BFC: movs r1, #0x2e ldrsh r0, [r2, r1] adds r0, #4 ldr r1, _08067C14 @ =gUnk_03001160 movs r4, #0x2e ldrsh r1, [r1, r4] cmp r0, r1 bge _08067C12 movs r0, #0x40 orrs r0, r3 _08067C10: strb r0, [r2, #0x18] _08067C12: pop {r4, pc} .align 2, 0 _08067C14: .4byte gUnk_03001160 thumb_func_start sub_08067C18 sub_08067C18: @ 0x08067C18 push {lr} movs r1, #6 strb r1, [r0, #0xc] bl sub_080042AC pop {pc} thumb_func_start sub_08067C24 sub_08067C24: @ 0x08067C24 push {r4, lr} adds r4, r0, #0 movs r0, #7 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x75 movs r0, #0x14 strb r0, [r1] adds r0, r4, #0 bl sub_08067DDC adds r0, r4, #0 movs r1, #7 bl sub_080042AC pop {r4, pc} thumb_func_start sub_08067C44 sub_08067C44: @ 0x08067C44 push {r4, r5, lr} adds r4, r0, #0 ldr r0, _08067C6C @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 rsbs r0, r0, #0 lsrs r5, r0, #0x1f adds r0, r4, #0 adds r0, #0x69 ldrb r0, [r0] cmp r5, r0 beq _08067C7C cmp r5, #0 bne _08067C70 adds r0, r4, #0 bl sub_08078778 b _08067C7C .align 2, 0 _08067C6C: .4byte gUnk_03003F80 _08067C70: adds r0, r4, #0 adds r0, #0x68 ldrb r1, [r0] adds r0, r4, #0 bl sub_080787A8 _08067C7C: adds r0, r4, #0 adds r0, #0x69 strb r5, [r0] subs r0, #0x30 movs r1, #0 ldrsb r1, [r0, r1] adds r5, r0, #0 cmp r1, #0 beq _08067D1C ldr r1, _08067CB4 @ =gUnk_03001160 adds r0, r4, #0 bl sub_0806FCA0 adds r2, r0, #0 adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0 beq _08067CA6 cmp r0, #3 beq _08067CB8 _08067CA6: cmp r2, #2 bne _08067CDA adds r0, r4, #0 movs r1, #2 bl sub_080042AC b _08067CEC .align 2, 0 _08067CB4: .4byte gUnk_03001160 _08067CB8: cmp r2, #1 bne _08067CC4 ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 b _08067CD4 _08067CC4: ldrb r1, [r4, #0x18] lsls r0, r1, #0x19 lsrs r0, r0, #0x1f cmp r0, #3 bne _08067CD6 movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 _08067CD4: strb r0, [r4, #0x18] _08067CD6: cmp r2, #2 beq _08067CE4 _08067CDA: adds r0, r4, #0 movs r1, #1 bl sub_080042AC b _08067CEC _08067CE4: adds r0, r4, #0 movs r1, #2 bl sub_080042AC _08067CEC: movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #2 bne _08067D00 movs r0, #8 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0806F118 b _08067D12 _08067D00: movs r0, #4 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_08067790 adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 _08067D12: movs r0, #0 strb r0, [r5] movs r0, #0xd2 bl sub_080A3268 _08067D1C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08067D20 sub_08067D20: @ 0x08067D20 push {r4, r5, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x75 ldrb r0, [r1] cmp r0, #0 beq _08067D34 subs r0, #1 strb r0, [r1] b _08067D70 _08067D34: movs r0, #2 bl sub_08049DF4 adds r2, r0, #0 cmp r2, #0 beq _08067D70 ldrb r0, [r4, #0x18] lsls r0, r0, #0x19 movs r3, #0x28 cmp r0, #0 bge _08067D4C movs r3, #0x10 _08067D4C: movs r0, #0x2e ldrsh r1, [r2, r0] movs r5, #0x2e ldrsh r0, [r4, r5] subs r0, r0, r3 subs r1, r1, r0 cmp r1, #0x30 bhi _08067D70 movs r1, #0x32 ldrsh r0, [r2, r1] adds r0, #4 movs r2, #0x32 ldrsh r1, [r4, r2] subs r0, r0, r1 cmp r0, #0x38 bhi _08067D70 movs r0, #1 b _08067D72 _08067D70: movs r0, #0 _08067D72: pop {r4, r5, pc} thumb_func_start sub_08067D74 sub_08067D74: @ 0x08067D74 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #5 beq _08067DC8 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08067D88 subs r0, #1 strb r0, [r4, #0xe] _08067D88: movs r0, #2 bl sub_08049DF4 adds r2, r0, #0 cmp r2, #0 beq _08067DC8 ldrb r0, [r4, #0x18] lsls r0, r0, #0x19 movs r3, #0x18 cmp r0, #0 bge _08067DA0 movs r3, #8 _08067DA0: movs r0, #0x2e ldrsh r1, [r2, r0] movs r5, #0x2e ldrsh r0, [r4, r5] subs r0, r0, r3 subs r1, r1, r0 cmp r1, #0x1e bhi _08067DC8 movs r1, #0x32 ldrsh r0, [r2, r1] movs r2, #0x32 ldrsh r1, [r4, r2] subs r0, r0, r1 cmp r0, #0x16 bhi _08067DC8 ldrb r0, [r4, #0xe] cmp r0, #0 bne _08067DC8 movs r0, #1 b _08067DCA _08067DC8: movs r0, #0 _08067DCA: pop {r4, r5, pc} thumb_func_start sub_08067DCC sub_08067DCC: @ 0x08067DCC push {lr} adds r2, r0, #0 adds r2, #0x71 strb r1, [r2] bl sub_080042AC pop {pc} .align 2, 0 thumb_func_start sub_08067DDC sub_08067DDC: @ 0x08067DDC adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 movs r1, #0 strb r0, [r2, #0x10] adds r0, r2, #0 adds r0, #0x41 strb r1, [r0] subs r0, #4 strb r1, [r0] ldr r0, _08067DF8 @ =gUnk_08110EF0 str r0, [r2, #0x48] bx lr .align 2, 0 _08067DF8: .4byte gUnk_08110EF0 thumb_func_start sub_08067DFC sub_08067DFC: @ 0x08067DFC push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _08067E22 adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 movs r1, #5 bl sub_080042AC b _08067E28 _08067E22: adds r0, r2, #0 bl sub_080042B8 _08067E28: pop {pc} .align 2, 0 thumb_func_start sub_08067E2C sub_08067E2C: @ 0x08067E2C push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 bne _08067E58 ldr r0, _08067E54 @ =gUnk_08111368 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0806ED78 b _08067E5E .align 2, 0 _08067E54: .4byte gUnk_08111368 _08067E58: adds r0, r4, #0 bl sub_08067EF0 _08067E5E: pop {r4, pc} thumb_func_start sub_08067E60 sub_08067E60: @ 0x08067E60 push {r4, lr} adds r4, r0, #0 ldr r1, _08067E84 @ =gUnk_08111358 bl sub_0806FDEC cmp r0, #0 beq _08067E80 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_08078778 adds r0, r4, #0 movs r1, #2 bl sub_08004260 _08067E80: pop {r4, pc} .align 2, 0 _08067E84: .4byte gUnk_08111358 thumb_func_start sub_08067E88 sub_08067E88: @ 0x08067E88 push {r4, lr} adds r4, r0, #0 movs r1, #0x28 movs r2, #0x28 bl sub_0806ED9C adds r1, r0, #0 cmp r1, #0 bge _08067E9E movs r1, #2 b _08067EB4 _08067E9E: ldrb r0, [r4, #0xf] cmp r0, #0 bne _08067EAA movs r0, #0x10 strb r0, [r4, #0xf] b _08067EB4 _08067EAA: subs r0, #1 strb r0, [r4, #0xf] adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] _08067EB4: adds r0, r4, #0 bl sub_0806F078 cmp r0, #0 bne _08067EC4 adds r0, r4, #0 bl sub_08004274 _08067EC4: adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08067EE4 movs r0, #0 strb r0, [r1] movs r0, #2 strb r0, [r4, #0xc] ldrb r0, [r4, #0xe] movs r1, #0x90 lsls r1, r1, #5 adds r0, r0, r1 bl sub_08056378 _08067EE4: pop {r4, pc} .align 2, 0 thumb_func_start sub_08067EE8 sub_08067EE8: @ 0x08067EE8 movs r1, #1 strb r1, [r0, #0xc] bx lr .align 2, 0 thumb_func_start sub_08067EF0 sub_08067EF0: @ 0x08067EF0 push {r4, r5, r6, r7, lr} adds r5, r0, #0 ldrb r4, [r5, #0xc] cmp r4, #1 beq _08067F58 cmp r4, #1 bgt _08067F04 cmp r4, #0 beq _08067F10 b _0806801A _08067F04: cmp r4, #2 beq _08067FDC cmp r4, #3 bne _08067F0E b _08068000 _08067F0E: b _0806801A _08067F10: ldr r1, _08067F50 @ =gUnk_08111358 adds r0, r5, #0 bl sub_0806FDEC cmp r0, #0 bne _08067F1E b _080680F0 _08067F1E: movs r2, #1 movs r0, #1 strb r0, [r5, #0xc] ldrb r1, [r5, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r5, #0x18] ldrb r0, [r5, #0xa] strb r0, [r5, #0x14] adds r0, r5, #0 adds r0, #0x69 strb r4, [r0] adds r0, r5, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r5, #0 bl sub_0807DD50 ldr r1, _08067F54 @ =gUnk_08111304 ldrb r0, [r5, #0xb] adds r0, r0, r1 ldrb r1, [r0] b _08067FF2 .align 2, 0 _08067F50: .4byte gUnk_08111358 _08067F54: .4byte gUnk_08111304 _08067F58: adds r4, r5, #0 adds r4, #0x39 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #2 bne _08067F98 movs r1, #0 movs r0, #3 strb r0, [r5, #0xc] strb r1, [r4] adds r0, r5, #0 adds r0, #0x58 ldrb r0, [r0] adds r1, r5, #0 adds r1, #0x69 strb r0, [r1] ldr r1, _08067F94 @ =gUnk_03001160 adds r0, r5, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r5, #0 bl sub_08004260 adds r0, r5, #0 bl sub_0806F118 b _0806801A .align 2, 0 _08067F94: .4byte gUnk_03001160 _08067F98: adds r0, r5, #0 movs r1, #0 bl sub_0807DDAC adds r0, r5, #0 bl sub_0807DDE4 ldrb r0, [r5, #0xb] cmp r0, #3 bne _0806801A movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 beq _0806801A movs r1, #0 movs r0, #2 strb r0, [r5, #0xc] strb r1, [r4] ldr r1, _08067FD8 @ =gUnk_03001160 adds r0, r5, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r5, #0 bl sub_08004260 adds r0, r5, #0 bl sub_08068190 b _0806801A .align 2, 0 _08067FD8: .4byte gUnk_03001160 _08067FDC: ldr r0, _08067FFC @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _0806801A movs r0, #1 strb r0, [r5, #0xc] ldrb r1, [r5, #0x14] lsrs r1, r1, #1 adds r1, #4 _08067FF2: adds r0, r5, #0 bl sub_08004260 b _0806801A .align 2, 0 _08067FFC: .4byte gUnk_02000050 _08068000: adds r0, r5, #0 bl sub_0806F148 cmp r0, #0 beq _0806801A movs r0, #1 strb r0, [r5, #0xc] adds r0, r5, #0 adds r0, #0x69 ldrb r1, [r0] adds r0, r5, #0 bl sub_08004260 _0806801A: adds r0, r5, #0 adds r0, #0x59 ldrb r1, [r0] adds r7, r0, #0 cmp r1, #0xff beq _0806802C adds r0, r5, #0 bl sub_08004274 _0806802C: adds r1, r5, #0 adds r1, #0x5b ldrb r2, [r1] movs r0, #1 ands r0, r2 adds r6, r1, #0 cmp r0, #0 beq _0806807E movs r0, #0xfe ands r0, r2 strb r0, [r6] adds r0, r5, #0 bl sub_080040A8 cmp r0, #0 bne _08068068 ldr r4, _08068064 @ =gUnk_0811137A bl sub_08000E50 movs r1, #3 bl __modsi3 lsls r0, r0, #1 adds r0, r0, r4 ldrh r0, [r0] bl sub_080A3268 b _0806807E .align 2, 0 _08068064: .4byte gUnk_0811137A _08068068: ldr r4, _080680F4 @ =gUnk_08111374 bl sub_08000E50 movs r1, #3 bl __modsi3 lsls r0, r0, #1 adds r0, r0, r4 ldrh r0, [r0] bl sub_08004488 _0806807E: ldrb r1, [r6] movs r0, #2 ands r0, r1 cmp r0, #0 beq _080680A8 movs r0, #0xfd ands r0, r1 strb r0, [r6] adds r0, r5, #0 movs r1, #4 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _080680A8 ldr r3, _080680F8 @ =0xFFE80000 adds r0, r5, #0 movs r2, #0 bl sub_0806FA48 _080680A8: ldrb r1, [r6] movs r0, #4 ands r0, r1 cmp r0, #0 beq _080680D2 movs r0, #0xfb ands r0, r1 strb r0, [r6] adds r0, r5, #0 movs r1, #0x3d movs r2, #0x20 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _080680D2 ldr r2, _080680FC @ =0xFFEC0000 ldr r3, _08068100 @ =0xFFF60000 adds r0, r5, #0 bl sub_0806FA48 _080680D2: ldrb r1, [r6] movs r0, #8 ands r0, r1 cmp r0, #0 beq _080680F0 movs r0, #0xf7 ands r0, r1 strb r0, [r6] bl sub_08000E50 movs r1, #0x1f ands r0, r1 ldrb r1, [r7] adds r0, r0, r1 strb r0, [r7] _080680F0: pop {r4, r5, r6, r7, pc} .align 2, 0 _080680F4: .4byte gUnk_08111374 _080680F8: .4byte 0xFFE80000 _080680FC: .4byte 0xFFEC0000 _08068100: .4byte 0xFFF60000 thumb_func_start sub_08068104 sub_08068104: @ 0x08068104 push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 pop {r4, pc} thumb_func_start sub_0806811C sub_0806811C: @ 0x0806811C push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] adds r7, r0, #0 cmp r7, #0 beq _0806812E subs r0, #1 strb r0, [r4, #0xe] b _0806818A _0806812E: movs r0, #2 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0x20 movs r2, #0x20 bl sub_0806EDD8 adds r3, r0, #0 cmp r3, #0 bge _08068148 ldrb r0, [r4, #0xa] strb r0, [r4, #0x14] lsls r3, r0, #2 _08068148: ldrb r0, [r4, #0x14] lsrs r0, r0, #1 lsls r0, r0, #5 asrs r1, r3, #1 lsls r1, r1, #1 ldr r2, _0806818C @ =gUnk_08111284 adds r1, r1, r2 adds r0, r0, r1 ldrb r6, [r0] ldrb r5, [r0, #1] movs r0, #0x80 ands r0, r5 cmp r0, #0 beq _0806816C adds r0, r3, #0 bl sub_0806F5B0 strb r0, [r4, #0x14] _0806816C: movs r0, #0x40 orrs r6, r0 adds r0, r4, #0 adds r0, #0x5a strb r6, [r0] movs r0, #0x7f ands r5, r0 strb r5, [r4, #0x1e] adds r0, r4, #0 adds r0, #0x58 strb r7, [r0] adds r1, r4, #0 adds r1, #0x59 movs r0, #0xff strb r0, [r1] _0806818A: pop {r4, r5, r6, r7, pc} .align 2, 0 _0806818C: .4byte gUnk_08111284 thumb_func_start sub_08068190 sub_08068190: @ 0x08068190 push {r4, r5, r6, lr} adds r6, r0, #0 ldrb r5, [r6, #0xb] cmp r5, #8 bls _0806819C movs r5, #8 _0806819C: movs r0, #0x7e bl sub_0807CBD0 rsbs r1, r0, #0 orrs r1, r0 lsrs r4, r1, #0x1f movs r0, #0x41 bl sub_0807CA84 cmp r0, #0 beq _080681B4 movs r4, #2 _080681B4: movs r0, #2 bl sub_0807CA84 cmp r0, #0 beq _080681C0 movs r4, #3 _080681C0: ldr r2, _080681D4 @ =gUnk_0811130E lsls r0, r4, #1 lsls r1, r5, #3 adds r0, r0, r1 adds r0, r0, r2 ldrh r0, [r0] adds r1, r6, #0 bl sub_08056398 pop {r4, r5, r6, pc} .align 2, 0 _080681D4: .4byte gUnk_0811130E thumb_func_start sub_080681D8 sub_080681D8: @ 0x080681D8 ldr r1, [r1, #4] strb r1, [r0, #0xa] bx lr .align 2, 0 thumb_func_start sub_080681E0 sub_080681E0: @ 0x080681E0 push {r4, r5, lr} adds r5, r0, #0 adds r0, #0x5a ldrb r4, [r0] movs r0, #0x81 rsbs r0, r0, #0 ands r4, r0 ldrb r2, [r5, #0x1e] adds r0, r5, #0 movs r1, #1 bl sub_0806FF60 movs r0, #0x40 ands r0, r4 cmp r0, #0 beq _08068226 movs r0, #0xe1 rsbs r0, r0, #0 ands r4, r0 adds r2, r4, #4 adds r0, r5, #0 movs r1, #0 bl sub_0806FF60 adds r0, r5, #0 movs r1, #2 movs r2, #0xff bl sub_0806FF60 adds r0, r5, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 b _08068268 _08068226: movs r0, #0x20 ands r0, r4 cmp r0, #0 beq _08068254 adds r0, r5, #0 movs r1, #0 movs r2, #0xff bl sub_0806FF60 movs r0, #0xe1 rsbs r0, r0, #0 ands r4, r0 adds r0, r5, #0 movs r1, #2 adds r2, r4, #0 bl sub_0806FF60 adds r0, r5, #0 movs r1, #1 movs r2, #2 bl sub_0806FF88 b _08068268 _08068254: adds r0, r5, #0 movs r1, #0 movs r2, #0xff bl sub_0806FF60 adds r0, r5, #0 movs r1, #2 movs r2, #0xff bl sub_0806FF60 _08068268: adds r0, r5, #0 bl sub_0807000C pop {r4, r5, pc} thumb_func_start sub_08068270 sub_08068270: @ 0x08068270 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080682A8 ldr r1, _080682A4 @ =gUnk_08111358 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _080682AE ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #6 bl sub_08004260 b _080682AE .align 2, 0 _080682A4: .4byte gUnk_08111358 _080682A8: adds r0, r4, #0 bl sub_08004274 _080682AE: pop {r4, pc} thumb_func_start sub_080682B0 sub_080682B0: @ 0x080682B0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r2, r0, #0 cmp r2, #0 bne _080682F4 adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #4 strb r0, [r4, #0x14] adds r0, r4, #0 adds r0, #0x68 strb r2, [r0] adds r0, #1 strb r2, [r0] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 movs r1, #0 bl sub_080042AC adds r0, r4, #0 movs r1, #0 bl sub_0806854C _080682F4: adds r0, r4, #0 adds r0, #0x68 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0806830A adds r0, r4, #0 bl sub_08068318 b _08068314 _0806830A: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] _08068314: pop {r4, pc} .align 2, 0 thumb_func_start sub_08068318 sub_08068318: @ 0x08068318 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} mov r8, r0 ldr r4, _08068414 @ =gUnk_03001160 ldrh r1, [r4, #0x2e] ldr r3, _08068418 @ =0xFFFF0000 adds r0, r3, #0 ands r0, r6 orrs r0, r1 ldrh r1, [r4, #0x32] lsls r1, r1, #0x10 ldr r2, _0806841C @ =0x0000FFFF ands r0, r2 adds r6, r0, #0 orrs r6, r1 ldrh r0, [r4, #0x36] ands r3, r7 orrs r3, r0 adds r7, r3, #0 ldr r0, _08068420 @ =gUnk_03003F80 adds r0, #0xa8 ldrb r0, [r0] lsls r0, r0, #0x10 ldr r2, _08068424 @ =0xFF00FFFF ands r2, r3 orrs r2, r0 adds r7, r2, #0 ldrb r1, [r4, #0x14] movs r0, #0x3f ands r1, r0 lsls r1, r1, #0x18 ldr r0, _08068428 @ =0xC0FFFFFF ands r0, r2 orrs r0, r1 adds r7, r0, #0 adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] lsls r1, r1, #0x1e ldr r2, _0806842C @ =0x3FFFFFFF ands r0, r2 adds r7, r0, #0 orrs r7, r1 mov r0, r8 ldr r5, [r0, #0x64] ldrb r1, [r5, #6] cmp r1, #0xa bne _08068386 lsrs r0, r7, #0x10 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xa bne _08068394 _08068386: cmp r1, #0x16 bne _080683B4 lsrs r0, r7, #0x10 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x16 beq _080683B4 _08068394: ldrh r0, [r4, #0x2e] mov r1, r8 strh r0, [r1, #0x2e] ldrh r0, [r4, #0x32] strh r0, [r1, #0x32] ldrb r1, [r1, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 mov r2, r8 strb r0, [r2, #0x18] mov r0, r8 bl sub_08068578 _080683B4: movs r3, #0 mov sb, r3 ldr r0, [r5] cmp r6, r0 bne _080683D0 ldr r0, [r5, #4] cmp r7, r0 bne _080683D0 lsls r1, r7, #8 lsrs r0, r1, #0x18 cmp r0, #0x16 beq _080683D0 cmp r0, #0xa bne _08068430 _080683D0: mov r0, r8 ldr r5, [r0, #0x64] adds r5, #0x90 mov r4, r8 adds r4, #0x69 mov r3, r8 adds r3, #0x38 movs r1, #0x58 add r1, r8 mov ip, r1 movs r2, #0x12 _080683E6: ldr r0, [r5] ldr r1, [r5, #4] str r0, [r5, #8] str r1, [r5, #0xc] subs r5, #8 subs r2, #1 cmp r2, #0 bge _080683E6 mov r2, r8 ldr r5, [r2, #0x64] str r6, [r5] str r7, [r5, #4] movs r0, #4 mov sb, r0 ldrb r1, [r4] movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 ble _080684A8 subs r0, r1, #1 strb r0, [r4] b _080684A8 .align 2, 0 _08068414: .4byte gUnk_03001160 _08068418: .4byte 0xFFFF0000 _0806841C: .4byte 0x0000FFFF _08068420: .4byte gUnk_03003F80 _08068424: .4byte 0xFF00FFFF _08068428: .4byte 0xC0FFFFFF _0806842C: .4byte 0x3FFFFFFF _08068430: adds r5, #0x98 movs r1, #4 ldrsh r0, [r5, r1] cmp r0, #0 bge _08068466 mov r2, r8 ldr r5, [r2, #0x64] adds r5, #0x90 mov r4, r8 adds r4, #0x69 mov r3, r8 adds r3, #0x38 movs r0, #0x58 add r0, r8 mov ip, r0 movs r2, #0x12 _08068450: ldr r0, [r5] ldr r1, [r5, #4] str r0, [r5, #8] str r1, [r5, #0xc] subs r5, #8 subs r2, #1 cmp r2, #0 bge _08068450 movs r1, #4 mov sb, r1 b _080684A8 _08068466: ldr r1, _0806851C @ =gUnk_03001160 movs r2, #0x2e ldrsh r0, [r1, r2] movs r3, #0x32 ldrsh r1, [r1, r3] ldrh r2, [r5] ldrh r3, [r5, #2] bl sub_080041E8 lsrs r0, r0, #4 mov r4, r8 adds r4, #0x69 mov r3, r8 adds r3, #0x38 movs r1, #0x58 add r1, r8 mov ip, r1 cmp r0, #0x18 ble _080684A8 mov r2, r8 ldr r5, [r2, #0x64] adds r5, #0x90 movs r2, #0x12 _08068494: ldr r0, [r5] ldr r1, [r5, #4] str r0, [r5, #8] str r1, [r5, #0xc] subs r5, #8 subs r2, #1 cmp r2, #0 bge _08068494 movs r0, #4 mov sb, r0 _080684A8: mov r1, r8 ldr r5, [r1, #0x64] adds r5, #0x98 ldrh r0, [r5] strh r0, [r1, #0x2e] ldrh r0, [r5, #2] strh r0, [r1, #0x32] ldrh r0, [r5, #4] strh r0, [r1, #0x36] ldrb r0, [r5, #7] lsls r0, r0, #0x1a lsrs r0, r0, #0x1a strb r0, [r1, #0x14] ldrb r0, [r5, #7] lsrs r0, r0, #6 strb r0, [r3] ldrb r0, [r5, #6] cmp r0, #0x16 beq _080684D2 cmp r0, #0xa bne _080684DE _080684D2: mov r2, r8 ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2, #0x18] _080684DE: adds r1, r4, #0 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _080684EE subs r0, r2, #1 strb r0, [r1] _080684EE: mov r2, sb mov r3, r8 ldrb r0, [r3, #0x14] lsrs r0, r0, #1 add sb, r0 mov r0, ip ldrb r0, [r0] cmp sb, r0 beq _08068520 cmp r2, #0 bne _0806850C movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _08068520 _0806850C: mov r0, r8 mov r1, sb bl sub_080042AC movs r0, #0x1e strb r0, [r4] b _08068526 .align 2, 0 _0806851C: .4byte gUnk_03001160 _08068520: mov r0, r8 bl sub_080042B8 _08068526: mov r0, r8 bl sub_0800451C mov r1, r8 movs r2, #0x36 ldrsh r0, [r1, r2] cmp r0, #0 bge _08068542 movs r2, #0xc rsbs r2, r2, #0 mov r0, r8 movs r1, #0 bl sub_0806F854 _08068542: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0806854C sub_0806854C: @ 0x0806854C push {r4, r5, lr} adds r5, r0, #0 movs r0, #0xa0 bl sub_0801D8E0 str r0, [r5, #0x64] cmp r0, #0 beq _08068574 adds r0, r5, #0 adds r0, #0x68 movs r4, #0 movs r1, #1 strb r1, [r0] adds r0, r5, #0 bl sub_080788E0 str r4, [r5, #0x48] adds r0, r5, #0 bl sub_08068578 _08068574: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08068578 sub_08068578: @ 0x08068578 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r7, r0, #0 ldr r4, _08068664 @ =gUnk_03001160 ldrh r1, [r4, #0x2e] ldr r3, _08068668 @ =0xFFFF0000 adds r0, r3, #0 ands r0, r5 orrs r0, r1 ldrh r1, [r4, #0x32] lsls r1, r1, #0x10 ldr r2, _0806866C @ =0x0000FFFF ands r0, r2 adds r5, r0, #0 orrs r5, r1 ldrh r0, [r4, #0x36] ands r3, r6 orrs r3, r0 ldr r0, _08068670 @ =gUnk_03003F80 adds r0, #0xa8 ldrb r0, [r0] lsls r0, r0, #0x10 ldr r2, _08068674 @ =0xFF00FFFF ands r2, r3 orrs r2, r0 ldrb r1, [r4, #0x14] movs r0, #0x3f ands r1, r0 lsls r1, r1, #0x18 ldr r0, _08068678 @ =0xC0FFFFFF ands r0, r2 orrs r0, r1 adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] lsls r1, r1, #0x1e ldr r2, _0806867C @ =0x3FFFFFFF ands r0, r2 adds r6, r0, #0 orrs r6, r1 movs r0, #0x2e ldrsh r1, [r4, r0] movs r2, #0x2e ldrsh r0, [r7, r2] subs r1, r1, r0 mov sl, r1 movs r0, #0x32 ldrsh r1, [r4, r0] movs r2, #0x32 ldrsh r0, [r7, r2] subs r1, r1, r0 mov r8, r1 mov r1, sl lsls r0, r1, #0x10 asrs r0, r0, #0x10 movs r1, #0x14 bl sub_0806FA04 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov sl, r0 mov r2, r8 lsls r0, r2, #0x10 asrs r0, r0, #0x10 movs r1, #0x14 bl sub_0806FA04 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r8, r0 ldr r3, [r7, #0x64] movs r0, #0 mov sb, r0 mov ip, r0 movs r4, #0x13 _08068614: mov r1, ip asrs r0, r1, #8 subs r0, r5, r0 strh r0, [r3] lsrs r0, r5, #0x10 mov r2, sb asrs r1, r2, #8 subs r0, r0, r1 strh r0, [r3, #2] strh r6, [r3, #4] lsrs r0, r6, #0x10 strb r0, [r3, #6] ldrb r0, [r7, #0x14] movs r1, #0x3f ands r1, r0 ldrb r2, [r3, #7] movs r0, #0x40 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3, #7] adds r1, r7, #0 adds r1, #0x38 ldrb r1, [r1] lsls r1, r1, #6 movs r2, #0x3f ands r0, r2 orrs r0, r1 strb r0, [r3, #7] adds r3, #8 add sb, r8 add ip, sl subs r4, #1 cmp r4, #0 bge _08068614 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _08068664: .4byte gUnk_03001160 _08068668: .4byte 0xFFFF0000 _0806866C: .4byte 0x0000FFFF _08068670: .4byte gUnk_03003F80 _08068674: .4byte 0xFF00FFFF _08068678: .4byte 0xC0FFFFFF _0806867C: .4byte 0x3FFFFFFF thumb_func_start sub_08068680 sub_08068680: @ 0x08068680 adds r2, r1, #0 adds r2, #0x68 movs r0, #0 strb r0, [r2] ldrb r2, [r1, #0x18] subs r0, #4 ands r0, r2 strb r0, [r1, #0x18] bx lr .align 2, 0 thumb_func_start sub_08068694 sub_08068694: @ 0x08068694 push {r4, lr} adds r4, r1, #0 adds r2, r4, #0 adds r2, #0x68 movs r3, #1 movs r1, #1 strb r1, [r2] ldrb r2, [r4, #0x18] subs r1, #5 ands r1, r2 orrs r1, r3 strb r1, [r4, #0x18] ldrb r0, [r0, #0x14] strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_08068578 ldrb r1, [r4, #0x14] lsrs r1, r1, #1 adds r0, r4, #0 bl sub_080042AC pop {r4, pc} .align 2, 0 thumb_func_start sub_080686C4 sub_080686C4: @ 0x080686C4 push {lr} adds r0, r1, #0 ldrh r1, [r0, #0x32] subs r1, #0x10 strh r1, [r0, #0x32] bl sub_08068578 pop {pc} thumb_func_start sub_080686D4 sub_080686D4: @ 0x080686D4 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 bne _08068700 ldr r0, _080686FC @ =gUnk_08111530 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0806ED78 b _08068706 .align 2, 0 _080686FC: .4byte gUnk_08111530 _08068700: adds r0, r4, #0 bl sub_08068780 _08068706: pop {r4, pc} thumb_func_start sub_08068708 sub_08068708: @ 0x08068708 push {r4, lr} adds r4, r0, #0 ldr r1, _0806872C @ =gUnk_08111520 bl sub_0806FDEC cmp r0, #0 beq _08068728 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08078778 _08068728: pop {r4, pc} .align 2, 0 _0806872C: .4byte gUnk_08111520 thumb_func_start sub_08068730 sub_08068730: @ 0x08068730 push {r4, lr} adds r4, r0, #0 movs r1, #0x20 movs r2, #0x20 bl sub_0806ED9C adds r1, r0, #0 cmp r1, #0 blt _08068762 ldrb r0, [r4, #0xf] cmp r0, #0 bne _0806875E movs r0, #0x10 strb r0, [r4, #0xf] adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, r1 beq _08068762 adds r0, r4, #0 bl sub_08004260 b _08068762 _0806875E: subs r0, #1 strb r0, [r4, #0xf] _08068762: adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _0806877E movs r0, #0 strb r0, [r1] ldrb r0, [r4, #0xe] movs r1, #0x90 lsls r1, r1, #5 adds r0, r0, r1 bl sub_08056378 _0806877E: pop {r4, pc} thumb_func_start sub_08068780 sub_08068780: @ 0x08068780 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xc] cmp r0, #1 beq _080687D0 cmp r0, #1 bgt _08068794 cmp r0, #0 beq _0806879A b _0806880E _08068794: cmp r0, #2 beq _08068800 b _0806880E _0806879A: ldr r1, _080687CC @ =gUnk_08111520 adds r0, r5, #0 bl sub_0806FDEC cmp r0, #0 beq _0806887A movs r2, #1 movs r0, #1 strb r0, [r5, #0xc] ldrb r1, [r5, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r5, #0x18] ldrb r0, [r5, #0xa] strb r0, [r5, #0x14] adds r0, r5, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r5, #0 bl sub_0807DD50 b _0806880E .align 2, 0 _080687CC: .4byte gUnk_08111520 _080687D0: adds r2, r5, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _080687EA movs r0, #0 strb r1, [r5, #0xc] strb r0, [r2] adds r0, r5, #0 bl sub_0806F118 b _0806880E _080687EA: adds r0, r5, #0 movs r1, #0 bl sub_0807DDAC adds r0, r5, #0 bl sub_0807DDE4 adds r0, r5, #0 bl sub_08004274 b _0806880E _08068800: adds r0, r5, #0 bl sub_0806F148 cmp r0, #0 beq _0806880E movs r0, #1 strb r0, [r5, #0xc] _0806880E: adds r2, r5, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _0806887A movs r0, #0xbf ands r0, r1 strb r0, [r2] adds r0, r5, #0 bl sub_080040A8 cmp r0, #0 bne _08068848 ldr r4, _08068844 @ =gUnk_0811153E bl sub_08000E50 movs r1, #3 bl __modsi3 lsls r0, r0, #1 adds r0, r0, r4 ldrh r0, [r0] bl sub_080A3268 b _0806885E .align 2, 0 _08068844: .4byte gUnk_0811153E _08068848: ldr r4, _0806887C @ =gUnk_08111538 bl sub_08000E50 movs r1, #3 bl __modsi3 lsls r0, r0, #1 adds r0, r0, r4 ldrh r0, [r0] bl sub_08004488 _0806885E: adds r0, r5, #0 movs r1, #0x3d movs r2, #0x20 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _0806887A movs r2, #0xc0 lsls r2, r2, #0xd ldr r3, _08068880 @ =0xFFF60000 adds r0, r5, #0 bl sub_0806FA48 _0806887A: pop {r4, r5, pc} .align 2, 0 _0806887C: .4byte gUnk_08111538 _08068880: .4byte 0xFFF60000 thumb_func_start sub_08068884 sub_08068884: @ 0x08068884 push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 pop {r4, pc} thumb_func_start sub_0806889C sub_0806889C: @ 0x0806889C push {r4, r5, lr} adds r5, r0, #0 adds r0, #0x5a ldrb r4, [r0] movs r0, #0xc1 rsbs r0, r0, #0 ands r4, r0 ldrb r2, [r5, #0x1e] adds r0, r5, #0 movs r1, #1 bl sub_0806FF60 movs r0, #0x20 ands r0, r4 cmp r0, #0 beq _080688E2 movs r0, #0xe1 rsbs r0, r0, #0 ands r4, r0 adds r0, r5, #0 movs r1, #0 adds r2, r4, #0 bl sub_0806FF60 adds r0, r5, #0 movs r1, #2 movs r2, #0xff bl sub_0806FF60 adds r0, r5, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 b _08068906 _080688E2: adds r0, r5, #0 movs r1, #0 movs r2, #0xff bl sub_0806FF60 movs r0, #0xe1 rsbs r0, r0, #0 ands r4, r0 adds r0, r5, #0 movs r1, #2 adds r2, r4, #0 bl sub_0806FF60 adds r0, r5, #0 movs r1, #1 movs r2, #2 bl sub_0806FFD8 _08068906: adds r0, r5, #0 bl sub_0807000C pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08068910 sub_08068910: @ 0x08068910 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08068920 subs r0, #1 strb r0, [r4, #0xe] b _08068960 _08068920: movs r0, #0x10 strb r0, [r4, #0xe] adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _08068960 adds r0, r4, #0 movs r1, #0x30 movs r2, #0x30 bl sub_0806EDD8 adds r2, r0, #0 cmp r2, #0 bge _08068944 movs r2, #0x10 _08068944: adds r0, r2, #0 bl sub_0806F5A4 adds r2, r0, #0 adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] movs r0, #4 rsbs r0, r0, #0 ands r1, r0 adds r1, r1, r2 adds r0, r4, #0 bl sub_08004260 _08068960: pop {r4, pc} .align 2, 0 thumb_func_start sub_08068964 sub_08068964: @ 0x08068964 push {lr} movs r0, #0x35 movs r1, #0 movs r2, #3 bl sub_080A7C18 movs r0, #0x35 movs r1, #2 bl sub_0807CAA0 pop {pc} .align 2, 0 thumb_func_start sub_0806897C sub_0806897C: @ 0x0806897C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080689B4 ldr r1, _080689B0 @ =gUnk_08111520 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _080689BA ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #6 bl sub_08004260 b _080689BA .align 2, 0 _080689B0: .4byte gUnk_08111520 _080689B4: adds r0, r4, #0 bl sub_08004274 _080689BA: pop {r4, pc} thumb_func_start nullsub_502 nullsub_502: @ 0x080689BC bx lr .align 2, 0 thumb_func_start sub_080689C0 sub_080689C0: @ 0x080689C0 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _080689E4 ldr r0, _080689E0 @ =gUnk_081115D0 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 b _080689FA .align 2, 0 _080689E0: .4byte gUnk_081115D0 _080689E4: ldr r0, _08068A18 @ =gUnk_081115C0 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0806ED78 _080689FA: adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08068A16 movs r0, #0xfe ands r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #0 bl sub_08068BEC _08068A16: pop {r4, pc} .align 2, 0 _08068A18: .4byte gUnk_081115C0 thumb_func_start sub_08068A1C sub_08068A1C: @ 0x08068A1C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] strb r0, [r4, #0xb] ldr r0, _08068A34 @ =gUnk_030010A0 adds r0, #0x2c ldrb r0, [r0] cmp r0, #0 beq _08068A38 movs r1, #6 movs r0, #3 b _08068A42 .align 2, 0 _08068A34: .4byte gUnk_030010A0 _08068A38: adds r0, r4, #0 bl sub_08078778 movs r1, #2 movs r0, #1 _08068A42: strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_08004260 pop {r4, pc} thumb_func_start sub_08068A4C sub_08068A4C: @ 0x08068A4C push {r4, lr} adds r4, r0, #0 movs r1, #0x28 movs r2, #0x28 bl sub_0806ED9C adds r1, r0, #0 cmp r1, #0 bge _08068A62 movs r1, #2 b _08068A78 _08068A62: ldrb r0, [r4, #0xf] cmp r0, #0 bne _08068A6E movs r0, #0x10 strb r0, [r4, #0xf] b _08068A78 _08068A6E: subs r0, #1 strb r0, [r4, #0xf] adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] _08068A78: adds r0, r4, #0 bl sub_0806F078 cmp r0, #0 bne _08068A88 adds r0, r4, #0 bl sub_08004274 _08068A88: adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08068AA2 movs r0, #0 strb r0, [r1] movs r0, #2 strb r0, [r4, #0xc] movs r0, #0 bl sub_08056378 _08068AA2: pop {r4, pc} thumb_func_start sub_08068AA4 sub_08068AA4: @ 0x08068AA4 push {lr} adds r2, r0, #0 movs r0, #1 strb r0, [r2, #0xc] ldrb r0, [r2, #0xa] cmp r0, #0 beq _08068AD4 ldrb r0, [r2, #0xb] adds r1, r0, #1 movs r0, #7 ands r1, r0 strb r1, [r2, #0xb] cmp r1, #0 bne _08068AC4 adds r0, r1, #1 strb r0, [r2, #0xb] _08068AC4: ldr r0, _08068AD8 @ =gUnk_081115DC ldrb r1, [r2, #0xb] lsls r1, r1, #1 adds r1, r1, r0 ldrh r1, [r1] adds r0, r2, #0 bl sub_0801D2B4 _08068AD4: pop {pc} .align 2, 0 _08068AD8: .4byte gUnk_081115DC thumb_func_start sub_08068ADC sub_08068ADC: @ 0x08068ADC push {r4, lr} adds r4, r0, #0 ldr r0, _08068AF8 @ =gUnk_030010A0 adds r0, #0x2c ldrb r0, [r0] cmp r0, #2 bne _08068AF0 adds r0, r4, #0 bl sub_08004274 _08068AF0: adds r0, r4, #0 bl sub_0806FD3C pop {r4, pc} .align 2, 0 _08068AF8: .4byte gUnk_030010A0 thumb_func_start sub_08068AFC sub_08068AFC: @ 0x08068AFC push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 adds r0, r4, #0 bl sub_0807DD50 pop {r4, pc} thumb_func_start sub_08068B2C sub_08068B2C: @ 0x08068B2C push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _08068B64 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] ldr r1, _08068B60 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 bl sub_0806F118 b _08068B6C .align 2, 0 _08068B60: .4byte gUnk_03001160 _08068B64: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 _08068B6C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08068B70 sub_08068B70: @ 0x08068B70 push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _08068B80 movs r0, #1 strb r0, [r4, #0xc] _08068B80: pop {r4, pc} .align 2, 0 thumb_func_start sub_08068B84 sub_08068B84: @ 0x08068B84 push {r4, lr} adds r4, r0, #0 ldr r1, _08068BAC @ =gUnk_08111618 ldrb r0, [r4, #0xe] adds r0, r0, r1 ldrb r0, [r0] cmp r0, #0 beq _08068B9A movs r1, #0 bl sub_08054414 _08068B9A: ldr r0, _08068BB0 @ =gUnk_081115EC ldrb r1, [r4, #0xe] lsls r1, r1, #2 adds r1, r1, r0 ldr r0, [r1] bl sub_0805ED14 pop {r4, pc} .align 2, 0 _08068BAC: .4byte gUnk_08111618 _08068BB0: .4byte gUnk_081115EC thumb_func_start sub_08068BB4 sub_08068BB4: @ 0x08068BB4 ldr r2, _08068BCC @ =gUnk_02002A40 adds r1, r2, #0 adds r1, #0xb4 ldrb r1, [r1] adds r3, r0, #0 adds r3, #0x69 strb r1, [r3] adds r2, #0xb5 ldrb r1, [r2] adds r0, #0x6a strb r1, [r0] bx lr .align 2, 0 _08068BCC: .4byte gUnk_02002A40 thumb_func_start sub_08068BD0 sub_08068BD0: @ 0x08068BD0 push {r4, lr} adds r4, r0, #0 adds r0, #0x69 ldrb r0, [r0] movs r1, #0 bl sub_08054414 adds r4, #0x6a ldrb r0, [r4] movs r1, #1 bl sub_08054414 pop {r4, pc} .align 2, 0 thumb_func_start sub_08068BEC sub_08068BEC: @ 0x08068BEC push {r4, lr} adds r4, r0, #0 movs r1, #0x44 movs r2, #0 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _08068C22 adds r3, r2, #0 adds r3, #0x29 ldrb r1, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r3] ldr r3, _08068C24 @ =0xFFF00000 adds r0, r4, #0 adds r1, r2, #0 movs r2, #0 bl sub_0806FA48 movs r0, #0xfa bl sub_080A3268 _08068C22: pop {r4, pc} .align 2, 0 _08068C24: .4byte 0xFFF00000 thumb_func_start sub_08068C28 sub_08068C28: @ 0x08068C28 push {r4, r5, lr} adds r4, r0, #0 ldr r0, _08068C54 @ =gUnk_08111623 ldrb r1, [r4, #0xa] adds r1, r1, r0 ldrb r0, [r1] strb r0, [r4, #0xe] ldrb r5, [r4, #0xa] cmp r5, #1 bne _08068C6A movs r0, #0x48 bl sub_0807CA84 cmp r0, #0 beq _08068C6A movs r0, #0x4b bl sub_0807CA84 cmp r0, #0 bne _08068C58 strb r5, [r4, #0xe] b _08068C6A .align 2, 0 _08068C54: .4byte gUnk_08111623 _08068C58: movs r0, #0x4a bl sub_0807CA84 cmp r0, #0 bne _08068C66 movs r0, #2 b _08068C68 _08068C66: movs r0, #3 _08068C68: strb r0, [r4, #0xe] _08068C6A: pop {r4, r5, pc} thumb_func_start sub_08068C6C sub_08068C6C: @ 0x08068C6C push {lr} ldr r1, _08068C88 @ =gUnk_0811162B ldrb r0, [r0, #0xe] adds r0, r0, r1 ldrb r0, [r0] movs r1, #0x81 rsbs r1, r1, #0 ands r0, r1 movs r1, #0 movs r2, #0 bl sub_080A7C18 pop {pc} .align 2, 0 _08068C88: .4byte gUnk_0811162B thumb_func_start sub_08068C8C sub_08068C8C: @ 0x08068C8C ldr r2, _08068C9C @ =gUnk_08111638 ldrb r0, [r0, #0xe] lsls r0, r0, #2 adds r0, r0, r2 ldr r0, [r0] str r0, [r1, #0x14] bx lr .align 2, 0 _08068C9C: .4byte gUnk_08111638 thumb_func_start sub_08068CA0 sub_08068CA0: @ 0x08068CA0 push {r4, lr} adds r4, r1, #0 ldrb r1, [r0, #0xa] cmp r1, #1 bne _08068CDC str r1, [r4, #0x14] movs r0, #0x48 bl sub_0807CA84 cmp r0, #0 bne _08068CB8 str r0, [r4, #0x14] _08068CB8: movs r0, #0x4b bl sub_0807CA84 cmp r0, #0 bne _08068CC4 str r0, [r4, #0x14] _08068CC4: movs r0, #0x4a bl sub_0807CA84 cmp r0, #0 bne _08068CD0 str r0, [r4, #0x14] _08068CD0: movs r0, #0x4e bl sub_0807CA84 cmp r0, #0 bne _08068CF6 b _08068CF4 _08068CDC: ldr r1, _08068CF8 @ =gUnk_0811162B ldrb r0, [r0, #0xe] adds r0, r0, r1 ldrb r0, [r0] movs r1, #0x81 rsbs r1, r1, #0 ands r0, r1 bl sub_0807CA84 cmp r0, #0 beq _08068CF4 movs r0, #1 _08068CF4: str r0, [r4, #0x14] _08068CF6: pop {r4, pc} .align 2, 0 _08068CF8: .4byte gUnk_0811162B thumb_func_start sub_08068CFC sub_08068CFC: @ 0x08068CFC push {r4, lr} adds r4, r1, #0 movs r1, #0 str r1, [r4, #0x14] ldrb r0, [r0, #0xe] cmp r0, #0xa bhi _08068DB6 lsls r0, r0, #2 ldr r1, _08068D14 @ =_08068D18 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08068D14: .4byte _08068D18 _08068D18: @ jump table .4byte _08068DB2 @ case 0 .4byte _08068D44 @ case 1 .4byte _08068D48 @ case 2 .4byte _08068D4C @ case 3 .4byte _08068DB2 @ case 4 .4byte _08068D50 @ case 5 .4byte _08068D58 @ case 6 .4byte _08068D68 @ case 7 .4byte _08068DB2 @ case 8 .4byte _08068DB2 @ case 9 .4byte _08068DA8 @ case 10 _08068D44: movs r0, #2 b _08068DAA _08068D48: movs r0, #0x15 b _08068DAA _08068D4C: movs r0, #0x14 b _08068DAA _08068D50: movs r0, #3 bl sub_0807CBD0 b _08068DAE _08068D58: ldr r0, _08068D64 @ =gUnk_02002A40 adds r0, #0xab ldrb r0, [r0] cmp r0, #0x4f bls _08068DB6 b _08068DB2 .align 2, 0 _08068D64: .4byte gUnk_02002A40 _08068D68: movs r0, #0x48 bl sub_0807CA84 cmp r0, #0 beq _08068DB6 movs r0, #0x49 bl sub_0807CA84 cmp r0, #0 beq _08068DB6 movs r0, #0x4a bl sub_0807CA84 cmp r0, #0 beq _08068DB6 movs r0, #0x4b bl sub_0807CA84 cmp r0, #0 beq _08068DB6 movs r0, #0x4c bl sub_0807CA84 cmp r0, #0 beq _08068DB6 movs r0, #0x4e bl sub_0807CA84 cmp r0, #0 beq _08068DB6 movs r0, #0x4f b _08068DAA _08068DA8: movs r0, #0x4d _08068DAA: bl sub_0807CA84 _08068DAE: cmp r0, #0 beq _08068DB6 _08068DB2: movs r0, #1 str r0, [r4, #0x14] _08068DB6: pop {r4, pc} thumb_func_start sub_08068DB8 sub_08068DB8: @ 0x08068DB8 push {lr} adds r1, r0, #0 ldr r2, _08068DCC @ =gUnk_08111664 ldrb r0, [r1, #0xe] lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] bl sub_08056398 pop {pc} .align 2, 0 _08068DCC: .4byte gUnk_08111664 thumb_func_start sub_08068DD0 sub_08068DD0: @ 0x08068DD0 push {lr} adds r1, r0, #0 ldr r2, _08068DE4 @ =gUnk_0811167A ldrb r0, [r1, #0xe] lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] bl sub_08056398 pop {pc} .align 2, 0 _08068DE4: .4byte gUnk_0811167A thumb_func_start sub_08068DE8 sub_08068DE8: @ 0x08068DE8 push {lr} adds r1, r0, #0 ldr r2, _08068DFC @ =gUnk_08111690 ldrb r0, [r1, #0xe] lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] bl sub_08056398 pop {pc} .align 2, 0 _08068DFC: .4byte gUnk_08111690 thumb_func_start sub_08068E00 sub_08068E00: @ 0x08068E00 push {lr} adds r1, r0, #0 ldr r2, _08068E14 @ =gUnk_081116A6 ldrb r0, [r1, #0xe] lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] bl sub_08056398 pop {pc} .align 2, 0 _08068E14: .4byte gUnk_081116A6 thumb_func_start sub_08068E18 sub_08068E18: @ 0x08068E18 push {lr} adds r1, r0, #0 ldr r2, _08068E2C @ =gUnk_081116BC ldrb r0, [r1, #0xe] lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] bl sub_08056398 pop {pc} .align 2, 0 _08068E2C: .4byte gUnk_081116BC thumb_func_start sub_08068E30 sub_08068E30: @ 0x08068E30 push {lr} adds r1, r0, #0 ldr r2, _08068E44 @ =gUnk_081116D2 ldrb r0, [r1, #0xe] lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] bl sub_08056398 pop {pc} .align 2, 0 _08068E44: .4byte gUnk_081116D2 thumb_func_start sub_08068E48 sub_08068E48: @ 0x08068E48 push {lr} adds r1, r0, #0 ldr r2, _08068E5C @ =gUnk_081116E8 ldrb r0, [r1, #0xe] lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] bl sub_08056398 pop {pc} .align 2, 0 _08068E5C: .4byte gUnk_081116E8 thumb_func_start sub_08068E60 sub_08068E60: @ 0x08068E60 push {lr} adds r1, r0, #0 ldr r2, _08068E74 @ =gUnk_081116FE ldrb r0, [r1, #0xe] lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] bl sub_08056398 pop {pc} .align 2, 0 _08068E74: .4byte gUnk_081116FE thumb_func_start sub_08068E78 sub_08068E78: @ 0x08068E78 push {lr} adds r1, r0, #0 ldr r2, _08068E8C @ =gUnk_08111714 ldrb r0, [r1, #0xe] lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] bl sub_08056398 pop {pc} .align 2, 0 _08068E8C: .4byte gUnk_08111714 thumb_func_start sub_08068E90 sub_08068E90: @ 0x08068E90 ldr r2, _08068EAC @ =gUnk_03003F80 adds r2, #0xac ldr r1, _08068EB0 @ =gUnk_08111740 ldrb r0, [r0, #0xe] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] subs r1, #1 movs r0, #1 lsls r0, r1 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] bx lr .align 2, 0 _08068EAC: .4byte gUnk_03003F80 _08068EB0: .4byte gUnk_08111740 thumb_func_start sub_08068EB4 sub_08068EB4: @ 0x08068EB4 ldr r0, _08068EC0 @ =gUnk_03003F80 adds r0, #0xab movs r1, #0 strb r1, [r0] bx lr .align 2, 0 _08068EC0: .4byte gUnk_03003F80 thumb_func_start sub_08068EC4 sub_08068EC4: @ 0x08068EC4 push {r4, lr} adds r3, r1, #0 ldr r2, _08068EEC @ =gUnk_08111740 ldrb r4, [r0, #0xe] lsls r1, r4, #2 adds r1, r1, r2 ldr r0, _08068EF0 @ =gUnk_03003F80 adds r0, #0xab ldr r1, [r1] ldrb r0, [r0] cmp r1, r0 bne _08068EF8 ldr r1, _08068EF4 @ =gUnk_0811172A lsls r0, r4, #1 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r3, #0x10] movs r0, #1 b _08068EFA .align 2, 0 _08068EEC: .4byte gUnk_08111740 _08068EF0: .4byte gUnk_03003F80 _08068EF4: .4byte gUnk_0811172A _08068EF8: movs r0, #0 _08068EFA: str r0, [r3, #0x14] pop {r4, pc} .align 2, 0 thumb_func_start sub_08068F00 sub_08068F00: @ 0x08068F00 push {lr} ldrb r0, [r0, #0xe] cmp r0, #1 bne _08068F0E ldr r0, _08068F10 @ =gUnk_080F3494 bl sub_0804ADDC _08068F0E: pop {pc} .align 2, 0 _08068F10: .4byte gUnk_080F3494 thumb_func_start sub_08068F14 sub_08068F14: @ 0x08068F14 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #5 bne _08068F24 movs r0, #0xa0 bl sub_080526A0 _08068F24: ldrb r0, [r4, #0xe] cmp r0, #6 bne _08068F38 movs r0, #0xa0 rsbs r0, r0, #0 bl sub_080526A0 movs r0, #2 bl sub_080526A0 _08068F38: pop {r4, pc} .align 2, 0 thumb_func_start sub_08068F3C sub_08068F3C: @ 0x08068F3C push {lr} ldrb r0, [r0, #0xe] cmp r0, #6 bne _08068F4A movs r0, #0xa0 bl sub_080526A0 _08068F4A: pop {pc} thumb_func_start sub_08068F4C sub_08068F4C: @ 0x08068F4C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08068F72 adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 bl sub_080042AC b _08068F78 _08068F72: adds r0, r4, #0 bl sub_080042B8 _08068F78: adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08068F94 movs r0, #0xfe ands r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #0 bl sub_08068BEC _08068F94: pop {r4, pc} .align 2, 0 thumb_func_start sub_08068F98 sub_08068F98: @ 0x08068F98 push {r4, lr} adds r4, r0, #0 ldr r1, _08068FBC @ =gUnk_08111914 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0806ED78 adds r0, r4, #0 bl sub_0806920C pop {r4, pc} .align 2, 0 _08068FBC: .4byte gUnk_08111914 thumb_func_start sub_08068FC0 sub_08068FC0: @ 0x08068FC0 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xb] strb r0, [r4, #0x14] movs r0, #0x40 strh r0, [r4, #0x24] adds r1, r4, #0 adds r1, #0x6d movs r0, #0xff strb r0, [r1] adds r0, r4, #0 bl sub_0805ACC0 adds r2, r0, #0 cmp r2, #0 bne _08068FF4 ldrh r0, [r4, #0x2e] adds r1, r4, #0 adds r1, #0x68 strh r0, [r1] ldrh r0, [r4, #0x32] adds r1, #2 strh r0, [r1] b _08069000 _08068FF4: lsrs r1, r2, #0x10 adds r0, r4, #0 adds r0, #0x68 strh r1, [r0] adds r0, #2 strh r2, [r0] _08069000: adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x6c strb r0, [r1] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_080042AC pop {r4, pc} thumb_func_start sub_08069018 sub_08069018: @ 0x08069018 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #0 bne _0806903A adds r0, #1 strb r0, [r4, #0xd] bl sub_08000E50 movs r1, #0x3f ands r0, r1 adds r0, #0x3c strb r0, [r4, #0xf] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_080042AC _0806903A: adds r0, r4, #0 bl sub_080042B8 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0806905E ldrb r0, [r4, #0xe] cmp r0, #0 bne _08069058 movs r0, #2 b _0806905A _08069058: movs r0, #3 _0806905A: strb r0, [r4, #0xc] strb r1, [r4, #0xd] _0806905E: adds r0, r4, #0 bl sub_0806924C pop {r4, pc} .align 2, 0 thumb_func_start sub_08069068 sub_08069068: @ 0x08069068 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #0 bne _080690A4 adds r0, #1 strb r0, [r4, #0xd] bl sub_08000E50 movs r1, #2 ands r1, r0 subs r1, #1 ldrb r0, [r4, #0x14] adds r1, r1, r0 movs r0, #3 ands r1, r0 strb r1, [r4, #0x14] lsls r1, r1, #3 strb r1, [r4, #0x15] bl sub_08000E50 movs r1, #0x3f ands r0, r1 adds r0, #0x3c strb r0, [r4, #0xf] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_080042AC _080690A4: adds r0, r4, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_080042B8 movs r0, #0x2e ldrsh r1, [r4, r0] adds r2, r4, #0 adds r2, #0x68 movs r3, #0 ldrsh r0, [r2, r3] subs r1, r1, r0 cmp r1, #0x10 ble _080690CC ldrh r0, [r2] adds r0, #0x10 strh r0, [r4, #0x2e] movs r0, #1 strb r0, [r4, #0xf] _080690CC: movs r3, #0x10 rsbs r3, r3, #0 cmp r1, r3 bge _080690DE ldrh r0, [r2] subs r0, #0x10 strh r0, [r4, #0x2e] movs r0, #1 strb r0, [r4, #0xf] _080690DE: movs r5, #0x32 ldrsh r1, [r4, r5] adds r2, r4, #0 adds r2, #0x6a movs r5, #0 ldrsh r0, [r2, r5] subs r1, r1, r0 cmp r1, #0x10 ble _080690FA ldrh r0, [r2] adds r0, #0x10 strh r0, [r4, #0x32] movs r0, #1 strb r0, [r4, #0xf] _080690FA: cmp r1, r3 bge _08069108 ldrh r0, [r2] subs r0, #0x10 strh r0, [r4, #0x32] movs r0, #1 strb r0, [r4, #0xf] _08069108: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0806911C movs r0, #3 strb r0, [r4, #0xc] strb r1, [r4, #0xd] _0806911C: adds r0, r4, #0 bl sub_0806924C pop {r4, r5, pc} thumb_func_start sub_08069124 sub_08069124: @ 0x08069124 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 ldr r1, _08069144 @ =gUnk_08111928 ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0806924C pop {r4, pc} .align 2, 0 _08069144: .4byte gUnk_08111928 thumb_func_start sub_08069148 sub_08069148: @ 0x08069148 push {r4, lr} adds r4, r0, #0 bl sub_08000E50 movs r1, #3 ands r0, r1 adds r0, #3 strb r0, [r4, #0xf] movs r0, #1 strb r0, [r4, #0xd] ldrb r1, [r4, #0x14] adds r1, #8 adds r0, r4, #0 bl sub_080042AC pop {r4, pc} thumb_func_start sub_08069168 sub_08069168: @ 0x08069168 push {lr} adds r2, r0, #0 adds r0, #0x5a ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bge _08069186 movs r0, #2 strb r0, [r2, #0xd] ldrb r1, [r2, #0x14] adds r1, #0xc adds r0, r2, #0 bl sub_080042AC _08069186: pop {pc} thumb_func_start sub_08069188 sub_08069188: @ 0x08069188 push {lr} adds r2, r0, #0 adds r3, r2, #0 adds r3, #0x5a ldrb r1, [r3] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080691B8 movs r0, #0 strb r0, [r3] ldrb r0, [r2, #0xf] subs r0, #1 strb r0, [r2, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _080691B8 movs r0, #3 strb r0, [r2, #0xd] ldrb r1, [r2, #0x14] adds r1, #0x10 adds r0, r2, #0 bl sub_080042AC _080691B8: pop {pc} .align 2, 0 thumb_func_start sub_080691BC sub_080691BC: @ 0x080691BC push {lr} adds r2, r0, #0 adds r0, #0x5a ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bge _080691DE movs r1, #0 movs r0, #1 strb r0, [r2, #0xc] strb r1, [r2, #0xd] ldrb r1, [r2, #0x14] adds r1, #4 adds r0, r2, #0 bl sub_080042AC _080691DE: pop {pc} thumb_func_start sub_080691E0 sub_080691E0: @ 0x080691E0 push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _080691F4 movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0xd] _080691F4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080691F8 sub_080691F8: @ 0x080691F8 push {lr} ldrb r1, [r0, #0xa] lsls r1, r1, #3 ldr r2, _08069208 @ =gUnk_08111938 adds r1, r1, r2 bl sub_0806F1AC pop {pc} .align 2, 0 _08069208: .4byte gUnk_08111938 thumb_func_start sub_0806920C sub_0806920C: @ 0x0806920C push {r4, r5, lr} adds r4, r0, #0 ldr r0, _08069234 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 rsbs r0, r0, #0 lsrs r5, r0, #0x1f adds r0, r4, #0 adds r0, #0x6d ldrb r0, [r0] cmp r5, r0 beq _08069244 cmp r5, #0 bne _08069238 adds r0, r4, #0 bl sub_08078778 b _08069244 .align 2, 0 _08069234: .4byte gUnk_03003F80 _08069238: adds r0, r4, #0 adds r0, #0x6c ldrb r1, [r0] adds r0, r4, #0 bl sub_080787A8 _08069244: adds r0, r4, #0 adds r0, #0x6d strb r5, [r0] pop {r4, r5, pc} thumb_func_start sub_0806924C sub_0806924C: @ 0x0806924C push {r4, lr} adds r4, r0, #0 adds r0, #0x39 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #0 beq _0806929C ldr r0, _08069278 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _08069284 cmp r2, #2 bne _0806927C movs r0, #4 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0806F118 b _0806928E .align 2, 0 _08069278: .4byte gUnk_03003F80 _0806927C: adds r0, r4, #0 bl sub_080691F8 b _0806928E _08069284: adds r0, r4, #0 bl sub_080691F8 bl sub_080791D0 _0806928E: movs r0, #0xd4 bl sub_080A3268 adds r1, r4, #0 adds r1, #0x39 movs r0, #0 strb r0, [r1] _0806929C: pop {r4, pc} .align 2, 0 thumb_func_start sub_080692A0 sub_080692A0: @ 0x080692A0 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _080692C6 adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 movs r1, #0xf bl sub_080042AC b _080692CC _080692C6: adds r0, r2, #0 bl sub_080042B8 _080692CC: pop {pc} .align 2, 0 thumb_func_start sub_080692D0 sub_080692D0: @ 0x080692D0 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _080692F4 ldr r0, _080692F0 @ =gUnk_08111A8C ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 b _0806930A .align 2, 0 _080692F0: .4byte gUnk_08111A8C _080692F4: ldr r0, _0806930C @ =gUnk_08111A80 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0806ED78 _0806930A: pop {r4, pc} .align 2, 0 _0806930C: .4byte gUnk_08111A80 thumb_func_start sub_08069310 sub_08069310: @ 0x08069310 push {r4, lr} adds r4, r0, #0 bl sub_08078778 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_080042AC pop {r4, pc} .align 2, 0 thumb_func_start sub_08069328 sub_08069328: @ 0x08069328 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] adds r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x10 bls _0806934E movs r0, #0 strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #0x28 movs r2, #0x28 bl sub_0806ED9C cmp r0, #0 blt _0806934E strb r0, [r4, #0x14] _0806934E: adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] ldrb r1, [r4, #0x14] cmp r0, r1 beq _08069362 ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_080042AC _08069362: adds r0, r4, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0806938E movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0805E47C adds r0, r4, #0 movs r1, #8 bl sub_080042AC ldrb r0, [r4, #0xe] movs r1, #0x90 lsls r1, r1, #5 adds r0, r0, r1 bl sub_08056378 _0806938E: pop {r4, pc} thumb_func_start sub_08069390 sub_08069390: @ 0x08069390 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 ldr r0, _080693C0 @ =gUnk_02000050 ldrb r0, [r0] movs r1, #0x7f ands r1, r0 cmp r1, #0 bne _080693BC movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x39 strb r1, [r0] adds r0, r4, #0 bl sub_0805E584 ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_080042AC _080693BC: pop {r4, pc} .align 2, 0 _080693C0: .4byte gUnk_02000050 thumb_func_start sub_080693C4 sub_080693C4: @ 0x080693C4 push {lr} movs r1, #1 strb r1, [r0, #0xc] bl sub_0807DD50 pop {pc} thumb_func_start sub_080693D0 sub_080693D0: @ 0x080693D0 push {r4, r5, r6, lr} adds r5, r0, #0 movs r1, #0 bl sub_0807DD94 adds r0, r5, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #8 bne _08069422 adds r0, r5, #0 adds r0, #0x82 ldrh r0, [r0] movs r1, #0xf ands r1, r0 rsbs r0, r1, #0 orrs r0, r1 lsrs r6, r0, #0x1f adds r4, r5, #0 adds r4, #0x5a ldrb r0, [r4] cmp r0, #1 bne _0806940C movs r0, #0 strb r0, [r4] ldr r1, _08069424 @ =0xFFF80000 adds r0, r5, #0 adds r2, r6, #0 bl sub_08069428 _0806940C: ldrb r0, [r4] cmp r0, #2 bne _08069422 movs r0, #0 strb r0, [r4] movs r1, #0x80 lsls r1, r1, #0xc adds r0, r5, #0 adds r2, r6, #0 bl sub_08069428 _08069422: pop {r4, r5, r6, pc} .align 2, 0 _08069424: .4byte 0xFFF80000 thumb_func_start sub_08069428 sub_08069428: @ 0x08069428 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r7, r1, #0 adds r6, r2, #0 movs r1, #4 movs r2, #0 bl sub_080A29AC adds r4, r0, #0 cmp r4, #0 beq _08069452 ldr r3, _0806947C @ =0xFFF00000 adds r0, r5, #0 adds r1, r4, #0 adds r2, r7, #0 bl sub_0806FA48 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FAB0 _08069452: cmp r6, #0 beq _0806947A adds r0, r5, #0 movs r1, #0x41 movs r2, #0 bl sub_080A29AC adds r4, r0, #0 cmp r4, #0 beq _0806947A ldr r3, _0806947C @ =0xFFF00000 adds r0, r5, #0 adds r1, r4, #0 adds r2, r7, #0 bl sub_0806FA48 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FAB0 _0806947A: pop {r4, r5, r6, r7, pc} .align 2, 0 _0806947C: .4byte 0xFFF00000 thumb_func_start sub_08069480 sub_08069480: @ 0x08069480 push {lr} bl sub_0801E99C lsls r0, r0, #0x18 lsrs r0, r0, #0x18 pop {pc} thumb_func_start sub_0806948C sub_0806948C: @ 0x0806948C push {r4, lr} adds r4, r1, #0 bl sub_08069480 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 bl sub_0801E7F4 str r0, [r4, #0x14] ldr r2, _080694AC @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, pc} .align 2, 0 _080694AC: .4byte gUnk_02033280 thumb_func_start sub_080694B0 sub_080694B0: @ 0x080694B0 push {r4, r5, lr} adds r4, r0, #0 bl sub_08069480 lsls r0, r0, #0x18 lsrs r5, r0, #0x18 adds r0, r5, #0 bl sub_0801E7F4 cmp r0, #0 beq _080694CE adds r0, r4, #0 bl sub_08078778 b _080694D6 _080694CE: adds r0, r4, #0 adds r1, r5, #0 bl sub_08078784 _080694D6: pop {r4, r5, pc} thumb_func_start sub_080694D8 sub_080694D8: @ 0x080694D8 push {lr} ldrb r1, [r0, #0xa] lsls r1, r1, #3 ldr r2, _080694E8 @ =gUnk_08111A94 adds r1, r1, r2 bl sub_0806F1AC pop {pc} .align 2, 0 _080694E8: .4byte gUnk_08111A94 thumb_func_start sub_080694EC sub_080694EC: @ 0x080694EC push {r4, r5, lr} adds r4, r0, #0 movs r0, #4 strb r0, [r4, #0x14] movs r5, #2 movs r0, #0x2f bl sub_0801E7F4 cmp r0, #0 bne _08069502 movs r5, #8 _08069502: adds r0, r4, #0 adds r1, r5, #0 bl sub_080042AC adds r0, r4, #0 adds r0, #0x80 strh r5, [r0] pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08069514 sub_08069514: @ 0x08069514 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _0806953A adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 movs r1, #2 bl sub_080042AC b _08069540 _0806953A: adds r0, r2, #0 bl sub_080042B8 _08069540: pop {pc} .align 2, 0 thumb_func_start sub_08069544 sub_08069544: @ 0x08069544 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08069568 ldr r0, _08069564 @ =gUnk_08111B98 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 b _0806957E .align 2, 0 _08069564: .4byte gUnk_08111B98 _08069568: ldr r0, _08069580 @ =gUnk_08111B88 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0806ED78 _0806957E: pop {r4, pc} .align 2, 0 _08069580: .4byte gUnk_08111B88 thumb_func_start sub_08069584 sub_08069584: @ 0x08069584 push {lr} adds r1, r0, #0 ldr r0, _08069598 @ =gUnk_030010A0 adds r0, #0x2c ldrb r0, [r0] cmp r0, #0 beq _0806959C movs r0, #3 b _0806959E .align 2, 0 _08069598: .4byte gUnk_030010A0 _0806959C: movs r0, #1 _0806959E: strb r0, [r1, #0xc] adds r0, r1, #0 movs r1, #2 bl sub_080042AC pop {pc} .align 2, 0 thumb_func_start sub_080695AC sub_080695AC: @ 0x080695AC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] adds r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x10 bls _080695D2 movs r0, #0 strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #0x28 movs r2, #0x28 bl sub_0806ED9C cmp r0, #0 blt _080695D2 strb r0, [r4, #0x14] _080695D2: adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] ldrb r1, [r4, #0x14] cmp r0, r1 beq _080695E6 ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_080042AC _080695E6: pop {r4, pc} thumb_func_start sub_080695E8 sub_080695E8: @ 0x080695E8 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 ldr r0, _08069618 @ =gUnk_02000050 ldrb r0, [r0] movs r1, #0x7f ands r1, r0 cmp r1, #0 bne _08069614 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x39 strb r1, [r0] adds r0, r4, #0 bl sub_0805E584 ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_080042AC _08069614: pop {r4, pc} .align 2, 0 _08069618: .4byte gUnk_02000050 thumb_func_start sub_0806961C sub_0806961C: @ 0x0806961C push {r4, lr} adds r4, r0, #0 ldr r0, _08069638 @ =gUnk_030010A0 adds r0, #0x2c ldrb r0, [r0] cmp r0, #2 bne _08069630 adds r0, r4, #0 bl sub_080042B8 _08069630: adds r0, r4, #0 bl sub_0806FD3C pop {r4, pc} .align 2, 0 _08069638: .4byte gUnk_030010A0 thumb_func_start sub_0806963C sub_0806963C: @ 0x0806963C push {lr} movs r3, #1 movs r1, #1 strb r1, [r0, #0xc] ldrb r2, [r0, #0x18] subs r1, #5 ands r1, r2 orrs r1, r3 strb r1, [r0, #0x18] bl sub_0807DD50 pop {pc} thumb_func_start sub_08069654 sub_08069654: @ 0x08069654 push {lr} movs r1, #0 bl sub_0807DD94 pop {pc} .align 2, 0 thumb_func_start sub_08069660 sub_08069660: @ 0x08069660 push {r4, lr} adds r4, r0, #0 ldr r0, _0806967C @ =0x00002C1C adds r1, r4, #0 bl sub_08056398 adds r0, r4, #0 bl sub_080696BC ldr r1, _08069680 @ =gUnk_02000050 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [r1, #0x10] pop {r4, pc} .align 2, 0 _0806967C: .4byte 0x00002C1C _08069680: .4byte gUnk_02000050 thumb_func_start sub_08069684 sub_08069684: @ 0x08069684 push {lr} movs r0, #9 movs r1, #0x31 movs r2, #8 bl sub_0805EB00 cmp r0, #0 bne _080696AE bl sub_0805E8D4 adds r1, r0, #0 cmp r1, #0 beq _080696AE movs r0, #9 strb r0, [r1, #8] movs r0, #0x31 strb r0, [r1, #9] adds r0, r1, #0 movs r1, #8 bl sub_0805EA2C _080696AE: pop {pc} thumb_func_start sub_080696B0 sub_080696B0: @ 0x080696B0 ldr r1, _080696B8 @ =gUnk_02034350 movs r0, #0 strb r0, [r1, #6] bx lr .align 2, 0 _080696B8: .4byte gUnk_02034350 thumb_func_start sub_080696BC sub_080696BC: @ 0x080696BC push {r4, r5, lr} ldr r0, _08069710 @ =gUnk_02034350 ldrb r0, [r0, #7] movs r5, #0 cmp r0, #0x70 ble _080696CA movs r5, #1 _080696CA: cmp r0, #0x72 ble _080696D0 movs r5, #2 _080696D0: movs r0, #0x3e bl sub_0807CC30 rsbs r1, r0, #0 orrs r1, r0 lsrs r4, r1, #0x1f movs r0, #0x3f bl sub_0807CC30 cmp r0, #0 beq _080696E8 movs r4, #2 _080696E8: movs r0, #0x40 bl sub_0807CC30 cmp r0, #0 beq _080696F4 movs r4, #3 _080696F4: movs r0, #0x41 bl sub_0807CC30 cmp r0, #0 beq _08069700 movs r4, #4 _08069700: ldr r0, _08069714 @ =gUnk_08111BA0 lsls r1, r4, #1 adds r1, r1, r4 adds r1, r1, r5 lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] pop {r4, r5, pc} .align 2, 0 _08069710: .4byte gUnk_02034350 _08069714: .4byte gUnk_08111BA0 thumb_func_start sub_08069718 sub_08069718: @ 0x08069718 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r7, r1, #0 bl sub_080696BC adds r6, r0, #0 ldr r0, _08069754 @ =gUnk_02002A40 adds r0, #0xc0 ldrh r0, [r0] cmp r6, r0 bgt _08069764 ldr r5, _08069758 @ =gUnk_02034350 ldrb r0, [r5, #7] bl sub_0801E7D0 cmp r0, #0x62 bhi _0806975C rsbs r0, r6, #0 bl sub_080526CC ldrb r1, [r5, #7] movs r0, #0x5c movs r2, #0 bl sub_080A7C18 movs r0, #0 strb r0, [r5, #6] strb r0, [r5, #7] movs r0, #1 b _0806976E .align 2, 0 _08069754: .4byte gUnk_02002A40 _08069758: .4byte gUnk_02034350 _0806975C: ldr r0, _08069760 @ =0x00002C1F b _08069766 .align 2, 0 _08069760: .4byte 0x00002C1F _08069764: ldr r0, _0806977C @ =0x00002C1E _08069766: adds r1, r4, #0 bl sub_08056398 movs r0, #0 _0806976E: str r0, [r7, #0x14] ldr r2, _08069780 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, r5, r6, r7, pc} .align 2, 0 _0806977C: .4byte 0x00002C1E _08069780: .4byte gUnk_02033280 thumb_func_start sub_08069784 sub_08069784: @ 0x08069784 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0806979A adds r0, r2, #0 bl sub_08069838 b _080697A0 _0806979A: adds r0, r2, #0 bl sub_080697A4 _080697A0: pop {pc} .align 2, 0 thumb_func_start sub_080697A4 sub_080697A4: @ 0x080697A4 push {r4, lr} adds r4, r0, #0 ldr r1, _080697C0 @ =gUnk_08111C48 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} .align 2, 0 _080697C0: .4byte gUnk_08111C48 thumb_func_start sub_080697C4 sub_080697C4: @ 0x080697C4 push {r4, lr} adds r4, r0, #0 ldr r1, _080697E8 @ =gUnk_08111C3C bl sub_0806FDEC cmp r0, #0 beq _080697E4 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_08004260 adds r0, r4, #0 bl sub_08078778 _080697E4: pop {r4, pc} .align 2, 0 _080697E8: .4byte gUnk_08111C3C thumb_func_start sub_080697EC sub_080697EC: @ 0x080697EC push {r4, lr} adds r4, r0, #0 movs r1, #0x20 movs r2, #0x20 bl sub_0806ED9C adds r1, r0, #0 cmp r1, #0 blt _0806981E ldrb r0, [r4, #0xf] cmp r0, #0 bne _0806981A movs r0, #0x10 strb r0, [r4, #0xf] adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, r1 beq _0806981E adds r0, r4, #0 bl sub_08004260 b _0806981E _0806981A: subs r0, #1 strb r0, [r4, #0xf] _0806981E: adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08069834 movs r0, #0 strb r0, [r1] adds r0, r4, #0 bl sub_08069888 _08069834: pop {r4, pc} .align 2, 0 thumb_func_start sub_08069838 sub_08069838: @ 0x08069838 push {r4, r5, lr} adds r4, r0, #0 ldrb r5, [r4, #0xc] cmp r5, #0 bne _08069862 ldr r1, _08069884 @ =gUnk_08111C3C bl sub_0806FDEC cmp r0, #0 beq _08069880 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x68 strb r5, [r0] adds r0, #1 strb r5, [r0] adds r0, r4, #0 bl sub_0807DD64 _08069862: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08069880 movs r0, #0 strb r0, [r1] adds r0, r4, #0 bl sub_08069888 _08069880: pop {r4, r5, pc} .align 2, 0 _08069884: .4byte gUnk_08111C3C thumb_func_start sub_08069888 sub_08069888: @ 0x08069888 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x47 bl sub_0807CC30 cmp r0, #0 bne _080698A0 movs r4, #0 movs r0, #0x47 bl sub_0807CD04 b _08069906 _080698A0: movs r0, #0x2b bl sub_0807CC30 cmp r0, #0 bne _080698C2 movs r0, #0x2c bl sub_0807CC30 cmp r0, #0 bne _080698C2 movs r0, #0x2d bl sub_0807CC30 cmp r0, #0 bne _080698C2 movs r4, #1 b _08069906 _080698C2: movs r0, #0x18 bl sub_0807CC30 cmp r0, #0 bne _080698D0 movs r4, #2 b _08069906 _080698D0: movs r0, #0x48 bl sub_0807CC30 cmp r0, #0 bne _080698E4 movs r4, #3 movs r0, #0x48 bl sub_0807CD04 b _08069906 _080698E4: movs r0, #0x2e bl sub_0807CC30 cmp r0, #0 bne _08069904 movs r0, #0x2f bl sub_0807CC30 cmp r0, #0 bne _08069904 movs r0, #0x30 bl sub_0807CC30 movs r4, #4 cmp r0, #0 beq _08069906 _08069904: movs r4, #5 _08069906: ldr r0, _08069918 @ =gUnk_08111C50 lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 bl sub_08056398 pop {r4, r5, pc} .align 2, 0 _08069918: .4byte gUnk_08111C50 thumb_func_start sub_0806991C sub_0806991C: @ 0x0806991C push {r4, r5, r6, lr} adds r5, r0, #0 adds r4, r1, #0 bl sub_08000E50 movs r1, #0x1f ands r0, r1 adds r0, #0x3c adds r1, r5, #0 adds r1, #0x68 movs r3, #0 strb r0, [r1] adds r0, r5, #0 adds r0, #0x69 movs r1, #0 ldrsb r1, [r0, r1] lsls r1, r1, #2 ldr r0, _0806999C @ =gUnk_08111C5C adds r1, r1, r0 ldr r2, _080699A0 @ =gUnk_03000BF0 ldrh r0, [r1] ldrh r6, [r2, #6] adds r0, r0, r6 strh r0, [r4, #0x1e] ldrh r0, [r1, #2] ldrh r2, [r2, #8] adds r0, r0, r2 strh r0, [r4, #0x22] movs r0, #8 strb r0, [r4, #0x19] ldr r0, [r4, #8] movs r1, #2 orrs r0, r1 str r0, [r4, #8] str r3, [r4, #0x14] movs r1, #0x1e ldrsh r0, [r4, r1] movs r2, #0x2e ldrsh r1, [r5, r2] subs r0, r0, r1 movs r3, #0x22 ldrsh r1, [r4, r3] movs r6, #0x32 ldrsh r2, [r5, r6] subs r1, r1, r2 bl sub_080045DA strb r0, [r5, #0x15] ldrb r2, [r5, #0x14] movs r1, #0x80 ands r1, r2 ldr r2, _080699A4 @ =gUnk_08111C74 lsls r0, r0, #0x18 lsrs r0, r0, #0x1c adds r0, r0, r2 ldrb r0, [r0] orrs r1, r0 strb r1, [r5, #0x14] ldr r2, _080699A8 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, r5, r6, pc} .align 2, 0 _0806999C: .4byte gUnk_08111C5C _080699A0: .4byte gUnk_03000BF0 _080699A4: .4byte gUnk_08111C74 _080699A8: .4byte gUnk_02033280 thumb_func_start sub_080699AC sub_080699AC: @ 0x080699AC push {r4, r5, r6, lr} adds r5, r0, #0 adds r4, r1, #0 bl sub_08000E50 movs r1, #0x1f ands r0, r1 adds r0, #0x3c adds r1, r5, #0 adds r1, #0x68 movs r3, #0 strb r0, [r1] adds r0, r5, #0 adds r0, #0x69 movs r1, #0 ldrsb r1, [r0, r1] lsls r1, r1, #2 ldr r0, _08069A2C @ =gUnk_08111C84 adds r1, r1, r0 ldr r2, _08069A30 @ =gUnk_03000BF0 ldrh r0, [r1] ldrh r6, [r2, #6] adds r0, r0, r6 strh r0, [r4, #0x1e] ldrh r0, [r1, #2] ldrh r2, [r2, #8] adds r0, r0, r2 strh r0, [r4, #0x22] movs r0, #8 strb r0, [r4, #0x19] ldr r0, [r4, #8] movs r1, #2 orrs r0, r1 str r0, [r4, #8] str r3, [r4, #0x14] movs r1, #0x1e ldrsh r0, [r4, r1] movs r2, #0x2e ldrsh r1, [r5, r2] subs r0, r0, r1 movs r3, #0x22 ldrsh r1, [r4, r3] movs r6, #0x32 ldrsh r2, [r5, r6] subs r1, r1, r2 bl sub_080045DA strb r0, [r5, #0x15] ldrb r2, [r5, #0x14] movs r1, #0x80 ands r1, r2 ldr r2, _08069A34 @ =gUnk_08111C8C lsls r0, r0, #0x18 lsrs r0, r0, #0x1c adds r0, r0, r2 ldrb r0, [r0] orrs r1, r0 strb r1, [r5, #0x14] ldr r2, _08069A38 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, r5, r6, pc} .align 2, 0 _08069A2C: .4byte gUnk_08111C84 _08069A30: .4byte gUnk_03000BF0 _08069A34: .4byte gUnk_08111C8C _08069A38: .4byte gUnk_02033280 thumb_func_start sub_08069A3C sub_08069A3C: @ 0x08069A3C push {r4, lr} adds r4, r0, #0 bl sub_08000E50 ldr r2, _08069A5C @ =gUnk_08111C9C movs r1, #1 ands r1, r0 adds r4, #0x69 movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #1 adds r1, r1, r0 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r4] pop {r4, pc} .align 2, 0 _08069A5C: .4byte gUnk_08111C9C thumb_func_start sub_08069A60 sub_08069A60: @ 0x08069A60 push {r4, lr} adds r4, r0, #0 bl sub_08000E50 ldr r2, _08069A80 @ =gUnk_08111CA8 movs r1, #1 ands r1, r0 adds r4, #0x69 movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #1 adds r1, r1, r0 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r4] pop {r4, pc} .align 2, 0 _08069A80: .4byte gUnk_08111CA8 thumb_func_start sub_08069A84 sub_08069A84: @ 0x08069A84 push {r4, lr} adds r4, r0, #0 bl sub_08000E50 ldr r2, _08069AA4 @ =gUnk_08111CB4 movs r1, #1 ands r1, r0 adds r4, #0x69 movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #1 adds r1, r1, r0 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r4] pop {r4, pc} .align 2, 0 _08069AA4: .4byte gUnk_08111CB4 thumb_func_start sub_08069AA8 sub_08069AA8: @ 0x08069AA8 push {r4, lr} adds r4, r0, #0 bl sub_08000E50 ldr r2, _08069AC8 @ =gUnk_08111CB8 movs r1, #1 ands r1, r0 adds r4, #0x69 movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #1 adds r1, r1, r0 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r4] pop {r4, pc} .align 2, 0 _08069AC8: .4byte gUnk_08111CB8 thumb_func_start sub_08069ACC sub_08069ACC: @ 0x08069ACC push {lr} adds r2, r1, #0 adds r0, #0x68 ldrb r1, [r0] subs r1, #1 strb r1, [r0] lsls r1, r1, #0x18 cmp r1, #0 bgt _08069AE2 movs r0, #1 b _08069AE4 _08069AE2: movs r0, #0 _08069AE4: str r0, [r2, #0x14] pop {pc} thumb_func_start sub_08069AE8 sub_08069AE8: @ 0x08069AE8 push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r0, [r0] movs r2, #7 ands r2, r0 adds r2, #0xf adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 ldrb r2, [r4, #0x1e] adds r0, r4, #0 movs r1, #1 bl sub_0806FF60 adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r4, #0 bl sub_0807000C pop {r4, pc} .align 2, 0 thumb_func_start sub_08069B1C sub_08069B1C: @ 0x08069B1C push {r4, lr} adds r4, r0, #0 ldr r1, _08069B40 @ =gUnk_08111D88 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0806ED78 adds r0, r4, #0 bl sub_08069FE8 pop {r4, pc} .align 2, 0 _08069B40: .4byte gUnk_08111D88 thumb_func_start sub_08069B44 sub_08069B44: @ 0x08069B44 push {r4, r5, r6, lr} adds r5, r0, #0 bl sub_08069EF0 cmp r0, #0 beq _08069C30 adds r0, r5, #0 bl sub_0805ACC0 cmp r0, #0 bne _08069B64 movs r0, #0x2e ldrsh r1, [r5, r0] movs r2, #0x32 ldrsh r4, [r5, r2] b _08069B68 _08069B64: lsrs r1, r0, #0x10 adds r4, r0, #0 _08069B68: ldrb r0, [r5, #0xe] movs r3, #0x20 cmp r0, #0 beq _08069B72 adds r3, r0, #0 _08069B72: subs r0, r1, r3 adds r2, r5, #0 adds r2, #0x6e strh r0, [r2] adds r1, r1, r3 adds r0, r5, #0 adds r0, #0x6c strh r1, [r0] adds r1, r4, #0 subs r1, #8 adds r0, #4 strh r1, [r0] adds r0, r4, #0 adds r0, #8 adds r2, #4 strh r0, [r2] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r5, #0x24] movs r0, #0x1e strb r0, [r5, #0xe] movs r4, #2 strb r4, [r5, #0x14] adds r1, r5, #0 adds r1, #0x6a movs r0, #0xff strb r0, [r1] adds r0, r5, #0 bl sub_0801E99C adds r1, r5, #0 adds r1, #0x74 strb r0, [r1] adds r0, r5, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r5, #0 movs r1, #0xa bl sub_080042AC ldrb r0, [r5, #0x10] ands r4, r0 cmp r4, #0 beq _08069BD2 adds r0, r5, #0 bl sub_0807DD50 _08069BD2: ldrb r0, [r5, #0xa] cmp r0, #0 bne _08069BF2 ldr r0, _08069C34 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08069BF2 movs r0, #0x36 bl sub_0807CA84 cmp r0, #2 beq _08069BF2 movs r0, #4 strb r0, [r5, #0xc] _08069BF2: ldrb r0, [r5, #0xa] cmp r0, #2 bne _08069C30 movs r0, #0xcf bl sub_0807CBD0 cmp r0, #0 bne _08069C30 ldr r0, _08069C38 @ =0x00004072 movs r6, #0x2e ldrsh r1, [r5, r6] ldr r3, _08069C3C @ =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] adds 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 _08069C30: pop {r4, r5, r6, pc} .align 2, 0 _08069C34: .4byte gUnk_03003F80 _08069C38: .4byte 0x00004072 _08069C3C: .4byte gUnk_03000BF0 thumb_func_start sub_08069C40 sub_08069C40: @ 0x08069C40 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_08069F90 cmp r0, #0 beq _08069C80 ldr r0, _08069C68 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _08069C6C adds r0, r4, #0 bl sub_08069CB8 b _08069C7A .align 2, 0 _08069C68: .4byte gUnk_03003F80 _08069C6C: adds r0, r4, #0 bl sub_0806EDC4 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_08069D00 _08069C7A: movs r0, #0x1e strb r0, [r4, #0xe] b _08069CB2 _08069C80: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08069CB2 movs r0, #2 strb r0, [r4, #0xc] bl sub_08000E50 movs r1, #0x1f ands r0, r1 adds r0, #0x1e strb r0, [r4, #0xe] bl sub_08000E50 ldr r2, _08069CB4 @ =gUnk_08111DA8 movs r1, #7 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_08069F6C _08069CB2: pop {r4, pc} .align 2, 0 _08069CB4: .4byte gUnk_08111DA8 thumb_func_start sub_08069CB8 sub_08069CB8: @ 0x08069CB8 push {r4, r5, lr} adds r4, r0, #0 ldr r1, _08069CF8 @ =gUnk_03001160 bl sub_080045C4 ldr r2, _08069CFC @ =gUnk_08111DB0 ldrb r1, [r4, #0x14] lsls r1, r1, #5 adds r0, r0, r1 adds r0, r0, r2 ldrb r1, [r0] lsrs r0, r1, #6 strb r0, [r4, #0x14] movs r0, #0x3f ands r1, r0 adds r5, r4, #0 adds r5, #0x6b strb r1, [r5] adds r0, r4, #0 bl sub_0806A028 adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] ldrb r1, [r5] cmp r0, r1 beq _08069CF6 ldrb r1, [r5] adds r0, r4, #0 bl sub_080042AC _08069CF6: pop {r4, r5, pc} .align 2, 0 _08069CF8: .4byte gUnk_03001160 _08069CFC: .4byte gUnk_08111DB0 thumb_func_start sub_08069D00 sub_08069D00: @ 0x08069D00 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x6b movs r7, #8 strb r7, [r5] bl sub_0806A028 adds r6, r4, #0 adds r6, #0x58 ldrb r0, [r6] cmp r0, #0x1f bls _08069D2A adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08069D4E strb r7, [r5] _08069D2A: bl sub_08000E50 ldr r1, _08069D50 @ =0x000001FF ands r1, r0 cmp r1, #2 bhi _08069D3C adds r0, r4, #0 bl sub_08069FBC _08069D3C: ldrb r2, [r6] ldrb r1, [r5] ldrb r0, [r4, #0x14] adds r1, r1, r0 cmp r2, r1 beq _08069D4E adds r0, r4, #0 bl sub_080042AC _08069D4E: pop {r4, r5, r6, r7, pc} .align 2, 0 _08069D50: .4byte 0x000001FF thumb_func_start sub_08069D54 sub_08069D54: @ 0x08069D54 push {r4, lr} adds r4, r0, #0 bl sub_08069F90 cmp r0, #0 bne _08069DD8 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 beq _08069DD8 adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_080AEF88 ldrh r1, [r4, #0x2a] movs r0, #0x2e ldrsh r2, [r4, r0] adds r0, r4, #0 adds r0, #0x6e ldrh r0, [r0] cmp r2, r0 bge _08069D92 adds r0, #1 strh r0, [r4, #0x2e] movs r1, #0xe0 lsls r1, r1, #4 b _08069DA4 _08069D92: adds r0, r4, #0 adds r0, #0x6c ldrh r0, [r0] cmp r2, r0 ble _08069DA4 subs r0, #1 strh r0, [r4, #0x2e] movs r1, #0xe0 lsls r1, r1, #8 _08069DA4: movs r0, #0x32 ldrsh r2, [r4, r0] adds r0, r4, #0 adds r0, #0x70 ldrh r0, [r0] cmp r2, r0 bge _08069DBA adds r0, #1 strh r0, [r4, #0x32] movs r1, #0xe b _08069DCA _08069DBA: adds r0, r4, #0 adds r0, #0x72 ldrh r0, [r0] cmp r2, r0 ble _08069DCA subs r0, #1 strh r0, [r4, #0x32] movs r1, #0xe0 _08069DCA: adds r0, r4, #0 bl sub_0800417E adds r0, r4, #0 bl sub_08069F6C b _08069DF6 _08069DD8: adds r0, r4, #0 bl sub_08069F90 cmp r0, #0 beq _08069DE6 movs r0, #1 b _08069DE8 _08069DE6: movs r0, #3 _08069DE8: strb r0, [r4, #0xc] bl sub_08000E50 movs r1, #0x1f ands r0, r1 adds r0, #0x1e strb r0, [r4, #0xe] _08069DF6: pop {r4, pc} thumb_func_start sub_08069DF8 sub_08069DF8: @ 0x08069DF8 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_08069F90 cmp r0, #0 beq _08069E0E movs r0, #1 b _08069E34 _08069E0E: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 beq _08069E22 adds r0, r4, #0 bl sub_08069D00 b _08069E42 _08069E22: bl sub_08000E50 movs r1, #0xff ands r1, r0 cmp r1, #0x2f bhi _08069E32 movs r0, #2 b _08069E34 _08069E32: movs r0, #3 _08069E34: strb r0, [r4, #0xc] bl sub_08000E50 movs r1, #0x1f ands r0, r1 adds r0, #0x1e strb r0, [r4, #0xe] _08069E42: pop {r4, pc} thumb_func_start sub_08069E44 sub_08069E44: @ 0x08069E44 push {lr} movs r1, #0 bl sub_0807DD94 pop {pc} .align 2, 0 thumb_func_start sub_08069E50 sub_08069E50: @ 0x08069E50 push {r4, r5, r6, r7, lr} adds r4, r0, #0 bl sub_0806EDC4 strb r0, [r4, #0x14] adds r5, r4, #0 adds r5, #0x6b movs r7, #8 strb r7, [r5] adds r0, r4, #0 bl sub_0806A028 adds r0, r4, #0 bl sub_080042B8 adds r6, r4, #0 adds r6, #0x58 ldrb r0, [r6] cmp r0, #0x1f bls _08069E88 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08069EC8 strb r7, [r5] _08069E88: adds r0, r4, #0 bl sub_08069FBC ldrb r2, [r6] ldrb r1, [r5] ldrb r0, [r4, #0x14] adds r1, r1, r0 cmp r2, r1 beq _08069EA0 adds r0, r4, #0 bl sub_080042AC _08069EA0: movs r0, #0x36 bl sub_0807CA84 cmp r0, #2 bne _08069EC8 movs r0, #7 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0x29 bl sub_080042AC adds r0, r4, #0 bl sub_080788E0 movs r0, #0xd1 bl sub_08004488 movs r0, #0xcd bl sub_08004488 _08069EC8: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08069ECC sub_08069ECC: @ 0x08069ECC push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _08069EDC movs r0, #1 strb r0, [r4, #0xc] _08069EDC: pop {r4, pc} .align 2, 0 thumb_func_start sub_08069EE0 sub_08069EE0: @ 0x08069EE0 push {lr} bl sub_080042B8 pop {pc} thumb_func_start sub_08069EE8 sub_08069EE8: @ 0x08069EE8 movs r1, #5 strb r1, [r0, #0xc] bx lr .align 2, 0 thumb_func_start sub_08069EF0 sub_08069EF0: @ 0x08069EF0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #2 ldr r0, _08069F20 @ =gUnk_08111D58 adds r1, r1, r0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _08069F28 movs r0, #1 strb r0, [r4, #0xc] ldr r1, _08069F24 @ =gUnk_08111E30 ldrb r0, [r4, #0xa] adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x68 strh r1, [r0] movs r0, #1 b _08069F2A .align 2, 0 _08069F20: .4byte gUnk_08111D58 _08069F24: .4byte gUnk_08111E30 _08069F28: movs r0, #0 _08069F2A: pop {r4, pc} thumb_func_start sub_08069F2C sub_08069F2C: @ 0x08069F2C push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r2, [r0] movs r0, #0x81 rsbs r0, r0, #0 ands r2, r0 cmp r2, #0 beq _08069F46 adds r0, r4, #0 adds r0, #0x68 ldrh r0, [r0] adds r2, r2, r0 _08069F46: subs r2, #1 adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 ldrb r2, [r4, #0x1e] adds r0, r4, #0 movs r1, #1 bl sub_0806FF60 adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r4, #0 bl sub_0807000C pop {r4, pc} thumb_func_start sub_08069F6C sub_08069F6C: @ 0x08069F6C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0x15] bl sub_0806F5A4 strb r0, [r4, #0x14] ldrb r0, [r4, #0x14] adds r1, r0, #4 adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r1, r0 beq _08069F8C adds r0, r4, #0 bl sub_080042AC _08069F8C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08069F90 sub_08069F90: @ 0x08069F90 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #2 bne _08069FA8 movs r0, #0xcf bl sub_0807CBD0 cmp r0, #0 bne _08069FA8 movs r0, #1 b _08069FB4 _08069FA8: ldr r1, _08069FB8 @ =gUnk_03001160 adds r0, r4, #0 movs r2, #0x14 movs r3, #0x14 bl sub_080041A0 _08069FB4: pop {r4, pc} .align 2, 0 _08069FB8: .4byte gUnk_03001160 thumb_func_start sub_08069FBC sub_08069FBC: @ 0x08069FBC push {lr} adds r2, r0, #0 ldr r0, _08069FE4 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 movs r1, #0x20 cmp r0, #0 beq _08069FD0 movs r1, #0x24 _08069FD0: ldrb r0, [r2, #0x14] cmp r0, #1 beq _08069FDA cmp r0, #3 bne _08069FE0 _08069FDA: adds r0, r2, #0 adds r0, #0x6b strb r1, [r0] _08069FE0: pop {pc} .align 2, 0 _08069FE4: .4byte gUnk_03003F80 thumb_func_start sub_08069FE8 sub_08069FE8: @ 0x08069FE8 push {r4, r5, lr} adds r4, r0, #0 ldr r0, _0806A010 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 rsbs r0, r0, #0 lsrs r5, r0, #0x1f adds r0, r4, #0 adds r0, #0x6a ldrb r0, [r0] cmp r5, r0 beq _0806A020 cmp r5, #0 bne _0806A014 adds r0, r4, #0 bl sub_08078778 b _0806A020 .align 2, 0 _0806A010: .4byte gUnk_03003F80 _0806A014: adds r0, r4, #0 adds r0, #0x74 ldrb r1, [r0] adds r0, r4, #0 bl sub_080787A8 _0806A020: adds r0, r4, #0 adds r0, #0x6a strb r5, [r0] pop {r4, r5, pc} thumb_func_start sub_0806A028 sub_0806A028: @ 0x0806A028 push {r4, lr} adds r4, r0, #0 adds r0, #0x39 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #0 beq _0806A07E ldr r0, _0806A054 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _0806A060 cmp r2, #2 bne _0806A058 movs r0, #6 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0806F118 b _0806A076 .align 2, 0 _0806A054: .4byte gUnk_03003F80 _0806A058: adds r0, r4, #0 bl sub_0806A080 b _0806A076 _0806A060: adds r0, r4, #0 bl sub_08069FBC adds r0, r4, #0 bl sub_0806A080 movs r0, #0xd1 bl sub_080A3268 bl sub_080791D0 _0806A076: adds r1, r4, #0 adds r1, #0x39 movs r0, #0 strb r0, [r1] _0806A07E: pop {r4, pc} thumb_func_start sub_0806A080 sub_0806A080: @ 0x0806A080 push {lr} ldrb r2, [r0, #0xb] lsls r1, r2, #2 adds r1, r1, r2 lsls r1, r1, #4 ldr r2, _0806A09C @ =gUnk_02002A40 ldrb r2, [r2, #8] lsls r2, r2, #3 ldr r3, _0806A0A0 @ =gUnk_08111E34 adds r2, r2, r3 adds r1, r1, r2 bl sub_0806F1AC pop {pc} .align 2, 0 _0806A09C: .4byte gUnk_02002A40 _0806A0A0: .4byte gUnk_08111E34 thumb_func_start sub_0806A0A4 sub_0806A0A4: @ 0x0806A0A4 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r0, _0806A0F8 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _0806A100 movs r5, #4 movs r0, #0xcf bl sub_0807CBD0 cmp r0, #0 bne _0806A120 movs r5, #3 movs r0, #0xcf bl sub_0807CCB4 movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _0806A0FC @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r3, #0x3f ands r0, r3 movs r6, #0x32 ldrsh r1, [r4, r6] ldrh r2, [r2, #8] adds 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 _0806A120 .align 2, 0 _0806A0F8: .4byte gUnk_03003F80 _0806A0FC: .4byte gUnk_03000BF0 _0806A100: movs r5, #2 movs r0, #0xcf bl sub_0807CBD0 cmp r0, #0 bne _0806A120 movs r5, #1 movs r0, #0xdb bl sub_0807CBD0 cmp r0, #0 bne _0806A120 movs r5, #0 movs r0, #0xdb bl sub_0807CCB4 _0806A120: ldr r2, _0806A13C @ =gUnk_08111F74 ldr r0, _0806A140 @ =gUnk_02002A40 ldrb r1, [r0, #8] lsls r0, r1, #2 adds r0, r0, r1 adds r0, r0, r5 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] adds r1, r4, #0 bl sub_08056398 pop {r4, r5, r6, pc} .align 2, 0 _0806A13C: .4byte gUnk_08111F74 _0806A140: .4byte gUnk_02002A40 thumb_func_start sub_0806A144 sub_0806A144: @ 0x0806A144 push {r4, r5, lr} adds r5, r0, #0 movs r4, #4 ldr r0, _0806A18C @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _0806A17A movs r4, #3 movs r0, #0x46 bl sub_0807CA84 cmp r0, #0 bne _0806A17A movs r0, #0x29 bl sub_0807CC30 cmp r0, #0 beq _0806A17A movs r0, #0x85 bl sub_0807CBD0 movs r4, #2 cmp r0, #0 bne _0806A17A movs r4, #1 _0806A17A: ldr r0, _0806A190 @ =gUnk_08111FD8 lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 bl sub_08056398 pop {r4, r5, pc} .align 2, 0 _0806A18C: .4byte gUnk_03003F80 _0806A190: .4byte gUnk_08111FD8 thumb_func_start sub_0806A194 sub_0806A194: @ 0x0806A194 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806A1CE adds r0, r4, #0 bl sub_08069EF0 cmp r0, #0 beq _0806A1D4 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 movs r1, #0x23 bl sub_08004260 b _0806A1D4 _0806A1CE: adds r0, r4, #0 bl sub_08004274 _0806A1D4: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806A1D8 sub_0806A1D8: @ 0x0806A1D8 push {r4, lr} adds r4, r0, #0 ldr r1, _0806A1F4 @ =gUnk_081121D4 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} .align 2, 0 _0806A1F4: .4byte gUnk_081121D4 thumb_func_start sub_0806A1F8 sub_0806A1F8: @ 0x0806A1F8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] ldr r1, _0806A22C @ =gUnk_081121C4 cmp r0, #0 bne _0806A206 ldr r1, _0806A230 @ =gUnk_081121B4 _0806A206: adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806A22A movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD50 adds r0, r4, #0 movs r1, #0 bl sub_08004260 _0806A22A: pop {r4, pc} .align 2, 0 _0806A22C: .4byte gUnk_081121C4 _0806A230: .4byte gUnk_081121B4 thumb_func_start sub_0806A234 sub_0806A234: @ 0x0806A234 push {r4, lr} adds r4, r0, #0 movs r1, #0 bl sub_0807DD94 adds r0, r4, #0 adds r0, #0x82 ldrh r1, [r0] movs r0, #4 ands r0, r1 cmp r0, #0 beq _0806A266 ldr r0, _0806A268 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #7 ands r0, r1 cmp r0, #0 bne _0806A25E adds r0, r4, #0 bl sub_0806A26C _0806A25E: adds r0, r4, #0 movs r1, #2 bl sub_080042BA _0806A266: pop {r4, pc} .align 2, 0 _0806A268: .4byte gUnk_030010A0 thumb_func_start sub_0806A26C sub_0806A26C: @ 0x0806A26C push {r4, r5, lr} adds r5, r0, #0 movs r0, #0xf movs r1, #0x2f movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _0806A2AE adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA30 bl sub_08000E50 adds r5, r0, #0 ldr r2, _0806A2B0 @ =gUnk_081121DC movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] adds r3, r4, #0 adds r3, #0x62 strb r0, [r3] lsrs r0, r5, #8 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] subs r0, #8 adds r1, r4, #0 adds r1, #0x63 strb r0, [r1] _0806A2AE: pop {r4, r5, pc} .align 2, 0 _0806A2B0: .4byte gUnk_081121DC thumb_func_start sub_0806A2B4 sub_0806A2B4: @ 0x0806A2B4 push {r4, r5, r6, lr} mov r6, sb mov r5, r8 push {r5, r6} adds r5, r0, #0 adds r0, #0x5b ldrb r0, [r0] movs r1, #1 mov sb, r1 mov r2, sb ands r2, r0 mov sb, r2 adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] lsrs r0, r1, #4 mov r8, r0 movs r0, #7 mov r2, r8 ands r2, r0 mov r8, r2 movs r6, #7 ands r6, r1 ldrb r4, [r5, #0x14] lsrs r4, r4, #1 ldr r1, _0806A350 @ =gUnk_081121E4 ldrb r0, [r5, #0x1e] lsls r0, r0, #2 adds r0, r4, r0 adds r0, r0, r1 ldrb r2, [r0] adds r2, #0x10 adds r0, r5, #0 movs r1, #0 bl sub_0806FF60 ldr r0, _0806A354 @ =gUnk_08112204 adds r4, r4, r0 ldrb r2, [r4] adds r0, r5, #0 movs r1, #0 bl sub_0806FF48 adds r0, r5, #0 movs r1, #1 mov r2, r8 bl sub_0806FF60 adds r6, #0x1c adds r0, r5, #0 movs r1, #2 adds r2, r6, #0 bl sub_0806FF60 movs r0, #0x1a add sb, r0 adds r0, r5, #0 movs r1, #3 mov r2, sb bl sub_0806FF60 adds r0, r5, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r5, #0 movs r1, #1 movs r2, #3 bl sub_0806FFD8 adds r0, r5, #0 bl sub_0807000C pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, pc} .align 2, 0 _0806A350: .4byte gUnk_081121E4 _0806A354: .4byte gUnk_08112204 thumb_func_start sub_0806A358 sub_0806A358: @ 0x0806A358 push {lr} ldr r2, _0806A36C @ =gUnk_08112260 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0806A36C: .4byte gUnk_08112260 thumb_func_start sub_0806A370 sub_0806A370: @ 0x0806A370 push {r4, lr} adds r4, r0, #0 ldr r1, _0806A3D0 @ =gUnk_08112278 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_0806ED78 adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0xf bne _0806A3CC adds r4, #0x5a ldrb r0, [r4] cmp r0, #1 bne _0806A3BC movs r0, #0 strb r0, [r4] movs r0, #0x86 lsls r0, r0, #2 bl sub_080A3268 _0806A3BC: ldrb r0, [r4] cmp r0, #2 bne _0806A3CC movs r0, #0 strb r0, [r4] ldr r0, _0806A3D4 @ =0x00000219 bl sub_080A3268 _0806A3CC: pop {r4, pc} .align 2, 0 _0806A3D0: .4byte gUnk_08112278 _0806A3D4: .4byte 0x00000219 thumb_func_start sub_0806A3D8 sub_0806A3D8: @ 0x0806A3D8 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0xb4 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0806A8C8 ldr r1, _0806A40C @ =gUnk_08012F0C adds r0, r4, #0 bl sub_0807DAD0 adds r1, r4, #0 adds r1, #0x84 str r0, [r1] adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 pop {r4, pc} .align 2, 0 _0806A40C: .4byte gUnk_08012F0C thumb_func_start sub_0806A410 sub_0806A410: @ 0x0806A410 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xd] cmp r0, #0 beq _0806A420 cmp r0, #1 beq _0806A43C b _0806A456 _0806A420: ldrb r0, [r2, #0xe] subs r0, #1 strb r0, [r2, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0806A456 ldrb r0, [r2, #0xd] adds r0, #1 strb r0, [r2, #0xd] adds r0, r2, #0 movs r1, #8 bl sub_08004260 b _0806A456 _0806A43C: adds r0, r2, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0806A456 adds r0, r2, #0 adds r0, #0x84 ldr r1, [r0] adds r0, r2, #0 bl sub_0806A9B0 _0806A456: pop {pc} thumb_func_start sub_0806A458 sub_0806A458: @ 0x0806A458 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xd] cmp r0, #1 beq _0806A486 cmp r0, #1 bgt _0806A46C cmp r0, #0 beq _0806A472 b _0806A4CA _0806A46C: cmp r0, #2 beq _0806A4A8 b _0806A4CA _0806A472: ldrb r0, [r2, #0xe] subs r0, #1 strb r0, [r2, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0806A4CA ldrb r0, [r2, #0xd] adds r0, #1 strb r0, [r2, #0xd] b _0806A4CA _0806A486: adds r0, r2, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0806A4CA movs r0, #2 strb r0, [r2, #0xd] adds r0, r2, #0 movs r1, #0xa bl sub_08004260 movs r0, #0x62 bl sub_0807CD34 b _0806A4CA _0806A4A8: adds r0, r2, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0806A4CA movs r0, #0 movs r1, #1 strb r1, [r2, #0xc] strb r0, [r2, #0xd] movs r0, #0x3c strb r0, [r2, #0xe] adds r0, r2, #0 movs r1, #2 bl sub_08004260 _0806A4CA: pop {pc} thumb_func_start sub_0806A4CC sub_0806A4CC: @ 0x0806A4CC push {r4, lr} adds r4, r0, #0 ldrb r2, [r4, #0xd] cmp r2, #0 beq _0806A4E0 cmp r2, #1 beq _0806A52C movs r0, #0xb4 strb r0, [r4, #0xe] b _0806A54C _0806A4E0: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0806A54C adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] subs r0, #8 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _0806A512 movs r0, #1 strb r0, [r4, #0xd] adds r1, r4, #0 adds r1, #0x6a strh r0, [r1] adds r0, r4, #0 movs r1, #0xa bl sub_08004260 b _0806A54C _0806A512: movs r0, #2 strb r0, [r4, #0xd] adds r0, r4, #0 adds r0, #0x6a strh r2, [r0] adds r0, r4, #0 bl sub_0806EDC4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004260 b _0806A54C _0806A52C: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0806A54C movs r0, #2 strb r0, [r4, #0xd] adds r0, r4, #0 bl sub_0806EDC4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004260 _0806A54C: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806A550 sub_0806A550: @ 0x0806A550 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #0 bne _0806A568 movs r0, #1 strb r0, [r4, #0xd] adds r0, r4, #0 movs r1, #0xc bl sub_08004260 b _0806A5B0 _0806A568: adds r5, r4, #0 adds r5, #0x5a ldrb r0, [r5] cmp r0, #1 bne _0806A590 movs r0, #0 strb r0, [r5] movs r0, #8 movs r1, #2 bl sub_08080964 ldr r2, _0806A5B4 @ =gUnk_02033280 ldr r0, [r2] movs r1, #0x80 lsls r1, r1, #1 orrs r0, r1 str r0, [r2] ldr r0, _0806A5B8 @ =0x0000011B bl sub_080A3268 _0806A590: ldrb r1, [r5] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0806A5B0 movs r1, #0 movs r0, #5 strb r0, [r4, #0xc] strb r1, [r4, #0xd] adds r0, r4, #0 movs r1, #0xd bl sub_08004260 adds r0, r4, #0 bl sub_0806A914 _0806A5B0: pop {r4, r5, pc} .align 2, 0 _0806A5B4: .4byte gUnk_02033280 _0806A5B8: .4byte 0x0000011B thumb_func_start nullsub_503 nullsub_503: @ 0x0806A5BC bx lr .align 2, 0 thumb_func_start sub_0806A5C0 sub_0806A5C0: @ 0x0806A5C0 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0806A5E6 bl sub_08000E50 movs r1, #3 ands r1, r0 adds r1, #4 adds r0, r4, #0 bl sub_08004260 _0806A5E6: pop {r4, pc} thumb_func_start sub_0806A5E8 sub_0806A5E8: @ 0x0806A5E8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806A60A movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0x10 bl sub_08004260 bl sub_08000E50 movs r1, #0x3f ands r0, r1 adds r0, #0x3c strb r0, [r4, #0xe] _0806A60A: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0806A628 bl sub_08000E50 movs r1, #0x3f ands r0, r1 adds r0, #0x78 strb r0, [r4, #0xe] movs r0, #0xcc bl sub_080A3268 _0806A628: adds r0, r4, #0 bl sub_08004274 pop {r4, pc} thumb_func_start sub_0806A630 sub_0806A630: @ 0x0806A630 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806A646 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0x12 bl sub_08004260 _0806A646: ldr r0, _0806A670 @ =gUnk_02033280 ldr r0, [r0] movs r1, #0x80 lsls r1, r1, #1 ands r0, r1 cmp r0, #0 beq _0806A65A adds r0, r4, #0 bl sub_08004274 _0806A65A: adds r1, r4, #0 adds r1, #0x5a ldrb r0, [r1] cmp r0, #1 bne _0806A66E movs r0, #0 strb r0, [r1] movs r0, #0x72 bl sub_080A3268 _0806A66E: pop {r4, pc} .align 2, 0 _0806A670: .4byte gUnk_02033280 thumb_func_start sub_0806A674 sub_0806A674: @ 0x0806A674 push {r4, lr} sub sp, #8 adds r4, r0, #0 ldr r1, _0806A694 @ =gUnk_08112294 mov r0, sp movs r2, #8 bl memcpy ldrb r3, [r4, #0xc] cmp r3, #1 beq _0806A6BE cmp r3, #1 bgt _0806A698 cmp r3, #0 beq _0806A6A0 b _0806A82A .align 2, 0 _0806A694: .4byte gUnk_08112294 _0806A698: cmp r3, #2 bne _0806A69E b _0806A824 _0806A69E: b _0806A82A _0806A6A0: movs r0, #1 strb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #9 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #0x13 bl sub_08004260 b _0806A82A _0806A6BE: ldr r0, _0806A6E0 @ =gUnk_02033280 ldr r0, [r0] movs r1, #0x80 lsls r1, r1, #1 ands r0, r1 cmp r0, #0 beq _0806A6E4 movs r0, #0 movs r1, #2 strb r1, [r4, #0xc] adds r1, r4, #0 adds r1, #0x63 strb r0, [r1] subs r1, #1 strb r0, [r1] b _0806A82A .align 2, 0 _0806A6E0: .4byte gUnk_02033280 _0806A6E4: ldr r0, [r4, #0x50] adds r0, #0x58 ldrb r0, [r0] cmp r0, #9 bne _0806A7C8 adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #8 rsbs r1, r1, #0 ands r1, r0 movs r0, #3 orrs r1, r0 strb r1, [r2] ldrb r2, [r4, #0xe] cmp r2, #0 bne _0806A724 bl sub_08000E50 adds r2, r0, #0 movs r1, #7 ands r0, r1 strb r0, [r4, #0xe] lsrs r0, r2, #8 movs r1, #7 ands r0, r1 add r0, sp ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x68 strb r1, [r0] b _0806A75A _0806A724: ldr r0, _0806A780 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #3 ands r0, r1 cmp r0, #0 bne _0806A75A subs r0, r2, #1 strb r0, [r4, #0xe] adds r2, r4, #0 adds r2, #0x62 movs r0, #0 ldrsb r0, [r2, r0] adds r1, r4, #0 adds r1, #0x68 cmp r0, #0 bgt _0806A746 strb r3, [r1] _0806A746: movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0xf ble _0806A752 movs r0, #0xff strb r0, [r1] _0806A752: ldrb r0, [r1] ldrb r1, [r2] adds r0, r0, r1 strb r0, [r2] _0806A75A: ldrb r2, [r4, #0xf] cmp r2, #0 bne _0806A784 bl sub_08000E50 adds r2, r0, #0 movs r1, #7 ands r0, r1 strb r0, [r4, #0xf] lsrs r0, r2, #8 movs r1, #7 ands r0, r1 add r0, sp ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x69 strb r1, [r0] b _0806A82A .align 2, 0 _0806A780: .4byte gUnk_030010A0 _0806A784: ldr r0, _0806A7C4 @ =gUnk_030010A0 ldr r0, [r0] lsrs r0, r0, #4 movs r1, #3 ands r0, r1 cmp r0, #0 bne _0806A82A subs r0, r2, #1 strb r0, [r4, #0xf] adds r3, r4, #0 adds r3, #0x63 movs r0, #0 ldrsb r0, [r3, r0] adds r2, r4, #0 adds r2, #0x69 cmp r0, #0 blt _0806A7AA movs r0, #0xff strb r0, [r2] _0806A7AA: movs r1, #0 ldrsb r1, [r3, r1] movs r0, #8 rsbs r0, r0, #0 cmp r1, r0 bgt _0806A7BA movs r0, #1 strb r0, [r2] _0806A7BA: ldrb r0, [r2] ldrb r1, [r3] adds r0, r0, r1 strb r0, [r3] b _0806A82A .align 2, 0 _0806A7C4: .4byte gUnk_030010A0 _0806A7C8: adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #8 rsbs r1, r1, #0 ands r1, r0 movs r0, #6 orrs r1, r0 strb r1, [r2] adds r1, r4, #0 adds r1, #0x62 ldrb r0, [r1] movs r2, #0 ldrsb r2, [r1, r2] cmp r2, #0 beq _0806A7FE cmp r2, #0 ble _0806A7F0 subs r0, #1 strb r0, [r1] _0806A7F0: ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bge _0806A7FE adds r0, r2, #1 strb r0, [r1] _0806A7FE: adds r1, r4, #0 adds r1, #0x63 ldrb r0, [r1] movs r2, #0 ldrsb r2, [r1, r2] cmp r2, #0 beq _0806A82A cmp r2, #0 ble _0806A814 subs r0, #1 strb r0, [r1] _0806A814: ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bge _0806A82A adds r0, r2, #1 strb r0, [r1] b _0806A82A _0806A824: adds r0, r4, #0 bl sub_08004274 _0806A82A: add sp, #8 pop {r4, pc} .align 2, 0 thumb_func_start sub_0806A830 sub_0806A830: @ 0x0806A830 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806A84E movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0x14 bl sub_08004260 adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 _0806A84E: ldr r0, _0806A88C @ =gUnk_02033280 ldr r0, [r0] movs r1, #0x80 lsls r1, r1, #2 ands r0, r1 cmp r0, #0 beq _0806A860 bl sub_0805E780 _0806A860: adds r0, r4, #0 bl sub_08004274 adds r1, r4, #0 adds r1, #0x5a ldrb r0, [r1] cmp r0, #1 bne _0806A88A movs r0, #0 strb r0, [r1] movs r0, #0x37 movs r1, #5 movs r2, #0 bl sub_0806ED50 adds r1, r0, #0 cmp r1, #0 beq _0806A88A adds r0, r4, #0 bl sub_0806FA30 _0806A88A: pop {r4, pc} .align 2, 0 _0806A88C: .4byte gUnk_02033280 thumb_func_start sub_0806A890 sub_0806A890: @ 0x0806A890 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806A8AE movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0x15 bl sub_08004260 adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 _0806A8AE: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0806A8C6 bl sub_0805E780 _0806A8C6: pop {r4, pc} thumb_func_start sub_0806A8C8 sub_0806A8C8: @ 0x0806A8C8 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x60 bl sub_0807CBD0 cmp r0, #0 bne _0806A8F0 movs r0, #0x37 movs r1, #2 movs r2, #0 bl sub_0806ED50 adds r4, r0, #0 cmp r4, #0 beq _0806A8F0 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 str r5, [r4, #0x50] _0806A8F0: movs r0, #0x37 movs r1, #3 movs r2, #0 bl sub_0806ED50 adds r4, r0, #0 cmp r4, #0 beq _0806A910 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 ldrh r0, [r4, #0x32] adds r0, #2 strh r0, [r4, #0x32] str r5, [r4, #0x50] _0806A910: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0806A914 sub_0806A914: @ 0x0806A914 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x37 movs r1, #1 movs r2, #0 bl sub_0806ED50 adds r4, r0, #0 cmp r4, #0 beq _0806A938 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FAB0 _0806A938: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0806A93C sub_0806A93C: @ 0x0806A93C push {r4, lr} adds r4, r0, #0 bl sub_08078778 ldr r3, _0806A954 @ =gUnk_0811229C adds r0, r4, #0 movs r1, #0 movs r2, #0 bl sub_08078850 pop {r4, pc} .align 2, 0 _0806A954: .4byte gUnk_0811229C thumb_func_start sub_0806A958 sub_0806A958: @ 0x0806A958 push {lr} ldrb r0, [r0, #0xc] cmp r0, #5 beq _0806A966 ldr r1, _0806A968 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0806A966: pop {pc} .align 2, 0 _0806A968: .4byte gUnk_02033280 thumb_func_start sub_0806A96C sub_0806A96C: @ 0x0806A96C push {r4, lr} adds r2, r0, #0 movs r3, #0 str r3, [r1, #0x14] movs r0, #0x39 adds r0, r0, r2 mov ip, r0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0806A9A8 ldrb r0, [r2, #0xc] cmp r0, #3 beq _0806A992 movs r0, #3 strb r0, [r2, #0xc] strb r3, [r2, #0xd] b _0806A9A8 _0806A992: ldrb r0, [r2, #0xd] cmp r0, #1 bls _0806A9A8 mov r4, ip strb r3, [r4] movs r0, #1 str r0, [r1, #0x14] ldr r2, _0806A9AC @ =gUnk_02033280 ldrb r1, [r2, #7] orrs r0, r1 strb r0, [r2, #7] _0806A9A8: pop {r4, pc} .align 2, 0 _0806A9AC: .4byte gUnk_02033280 thumb_func_start sub_0806A9B0 sub_0806A9B0: @ 0x0806A9B0 push {r4, lr} adds r4, r0, #0 movs r1, #0 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r4, #0xd] bl sub_08000E50 ldr r2, _0806A9E4 @ =gUnk_081122A0 movs r1, #7 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x80 movs r0, #9 strh r0, [r1] adds r0, r4, #0 movs r1, #9 bl sub_08004260 movs r0, #0x62 bl sub_0807CCB4 pop {r4, pc} .align 2, 0 _0806A9E4: .4byte gUnk_081122A0 thumb_func_start sub_0806A9E8 sub_0806A9E8: @ 0x0806A9E8 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x37 movs r1, #4 movs r2, #0 bl sub_0806ED50 adds r4, r0, #0 cmp r4, #0 beq _0806AA0C adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FAD8 _0806AA0C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0806AA10 sub_0806AA10: @ 0x0806AA10 push {lr} bl sub_0806A914 pop {pc} thumb_func_start sub_0806AA18 sub_0806AA18: @ 0x0806AA18 push {lr} adds r2, r0, #0 adds r0, #0x6a ldrh r0, [r0] cmp r0, #0 beq _0806AA2C ldr r1, _0806AA28 @ =0x00004408 b _0806AA3C .align 2, 0 _0806AA28: .4byte 0x00004408 _0806AA2C: ldr r0, _0806AA48 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #1 ands r0, r1 ldr r1, _0806AA4C @ =0x0000440D cmp r0, #0 bne _0806AA3C subs r1, #6 _0806AA3C: adds r0, r1, #0 adds r1, r2, #0 bl sub_08056398 pop {pc} .align 2, 0 _0806AA48: .4byte gUnk_030010A0 _0806AA4C: .4byte 0x0000440D thumb_func_start sub_0806AA50 sub_0806AA50: @ 0x0806AA50 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 adds r5, r1, #0 ldrb r0, [r5, #0x18] cmp r0, #1 beq _0806AB38 cmp r0, #1 bgt _0806AA6A cmp r0, #0 beq _0806AA70 b _0806AB64 _0806AA6A: cmp r0, #2 beq _0806AB5C b _0806AB64 _0806AA70: str r0, [r5, #0x14] movs r0, #0x8f bl sub_0807CBD0 cmp r0, #0 bne _0806AA84 ldr r2, _0806AA80 @ =gUnk_081122A8 b _0806AA9A .align 2, 0 _0806AA80: .4byte gUnk_081122A8 _0806AA84: movs r0, #0x15 bl sub_0807CA84 cmp r0, #0 bne _0806AA98 ldr r2, _0806AA94 @ =gUnk_081122B0 b _0806AA9A .align 2, 0 _0806AA94: .4byte gUnk_081122B0 _0806AA98: ldr r2, _0806AAD0 @ =gUnk_081122B8 _0806AA9A: ldr r1, _0806AAD4 @ =gUnk_02034350 ldr r0, [r1, #0x68] lsls r0, r0, #1 adds r0, r0, r2 ldrh r7, [r0] mov r8, r1 mov r4, r8 ldr r0, [r4, #0x68] adds r0, #1 str r0, [r4, #0x68] cmp r0, #2 bls _0806AAB6 movs r0, #0 str r0, [r4, #0x68] _0806AAB6: adds r0, r7, #0 adds r1, r6, #0 bl sub_08056398 ldr r0, [r5, #4] cmp r0, #1 beq _0806AAEE cmp r0, #1 blo _0806AAD8 cmp r0, #2 beq _0806AB02 b _0806AB1C .align 2, 0 _0806AAD0: .4byte gUnk_081122B8 _0806AAD4: .4byte gUnk_02034350 _0806AAD8: adds r0, r4, #0 adds r0, #0xac str r6, [r0] adds r0, r6, #0 movs r1, #7 bl sub_0805EA78 movs r0, #0xc0 lsls r0, r0, #9 str r0, [r6, #0x20] b _0806AB1C _0806AAEE: adds r0, r4, #0 adds r0, #0xac ldr r0, [r0] movs r1, #7 bl sub_0805EB64 adds r1, r0, #0 adds r0, r4, #0 adds r0, #0xb0 b _0806AB14 _0806AB02: mov r0, r8 adds r0, #0xb0 ldr r0, [r0] movs r1, #7 bl sub_0805EB64 adds r1, r0, #0 mov r0, r8 adds r0, #0xb4 _0806AB14: str r1, [r0] movs r0, #0xc0 lsls r0, r0, #9 str r0, [r1, #0x20] _0806AB1C: ldr r0, _0806AB34 @ =0x0000441E cmp r7, r0 bne _0806AB2C movs r0, #0x8f bl sub_0807CCB4 movs r0, #1 str r0, [r5, #0x14] _0806AB2C: movs r0, #1 strb r0, [r5, #0x18] b _0806AB64 .align 2, 0 _0806AB34: .4byte 0x0000441E _0806AB38: ldr r0, _0806AB58 @ =gUnk_02034350 ldr r1, [r5, #4] lsls r1, r1, #2 adds r0, #0xac adds r1, r1, r0 ldr r1, [r1] movs r2, #0x36 ldrsh r0, [r1, r2] cmp r0, #0 blt _0806AB64 movs r0, #0xc0 lsls r0, r0, #9 str r0, [r1, #0x20] movs r0, #2 strb r0, [r5, #0x18] b _0806AB64 .align 2, 0 _0806AB58: .4byte gUnk_02034350 _0806AB5C: movs r1, #0x36 ldrsh r0, [r6, r1] cmp r0, #0 bge _0806AB6A _0806AB64: ldr r1, _0806AB70 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0806AB6A: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0806AB70: .4byte gUnk_02033280 thumb_func_start sub_0806AB74 sub_0806AB74: @ 0x0806AB74 push {lr} adds r2, r0, #0 ldr r1, _0806AB94 @ =gUnk_02034350 movs r0, #1 strb r0, [r1, #3] movs r1, #0x32 ldrsh r0, [r2, r1] ldr r1, _0806AB98 @ =gUnk_03000BF0 ldrh r1, [r1, #8] subs r0, r0, r1 cmp r0, #0xa7 bgt _0806AB92 adds r0, r1, #0 adds r0, #0xa8 strh r0, [r2, #0x32] _0806AB92: pop {pc} .align 2, 0 _0806AB94: .4byte gUnk_02034350 _0806AB98: .4byte gUnk_03000BF0 thumb_func_start sub_0806AB9C sub_0806AB9C: @ 0x0806AB9C push {r4, r5, lr} sub sp, #4 adds r4, r0, #0 adds r5, r1, #0 movs r0, #0 str r0, [sp] movs r0, #7 movs r1, #0x37 movs r2, #7 movs r3, #1 bl sub_0805EB2C cmp r0, #0 beq _0806ABBC bl sub_0805E7BC _0806ABBC: adds r0, r4, #0 adds r1, r5, #0 bl sub_0807F950 add sp, #4 pop {r4, r5, pc} thumb_func_start sub_0806ABC8 sub_0806ABC8: @ 0x0806ABC8 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 bne _0806ABF4 ldr r0, _0806ABF0 @ =gUnk_081126E8 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0806ED78 b _0806ABFA .align 2, 0 _0806ABF0: .4byte gUnk_081126E8 _0806ABF4: adds r0, r4, #0 bl sub_0806ACC4 _0806ABFA: pop {r4, pc} thumb_func_start sub_0806ABFC sub_0806ABFC: @ 0x0806ABFC push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xa] lsls r1, r1, #4 ldr r0, _0806AC38 @ =gUnk_08112674 adds r1, r1, r0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806AC36 adds r0, r4, #0 movs r1, #2 bl sub_08004260 movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xe] adds r2, r4, #0 adds r2, #0x6a strb r0, [r2] lsls r0, r0, #1 strb r0, [r4, #0x14] ldrb r0, [r4, #0x14] lsls r0, r0, #2 subs r2, #1 strb r0, [r2] strb r1, [r4, #0xe] _0806AC36: pop {r4, pc} .align 2, 0 _0806AC38: .4byte gUnk_08112674 thumb_func_start sub_0806AC3C sub_0806AC3C: @ 0x0806AC3C push {r4, r5, lr} adds r5, r0, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #3 bhi _0806ACBA ldr r4, _0806AC6C @ =gUnk_03001160 adds r0, r5, #0 adds r1, r4, #0 movs r2, #0x18 movs r3, #0x18 bl sub_080041A0 cmp r0, #0 beq _0806AC70 adds r0, r5, #0 adds r1, r4, #0 bl sub_080045C4 adds r2, r0, #0 movs r0, #0x1e ands r2, r0 b _0806AC74 .align 2, 0 _0806AC6C: .4byte gUnk_03001160 _0806AC70: ldrb r0, [r5, #0x14] lsls r2, r0, #2 _0806AC74: adds r0, r5, #0 adds r0, #0x69 ldrb r3, [r0] adds r4, r0, #0 cmp r2, r3 beq _0806AC9A subs r0, r2, r3 movs r1, #0x1f ands r0, r1 cmp r0, #0xf bgt _0806AC8E subs r0, r3, #1 b _0806AC90 _0806AC8E: adds r0, r3, #1 _0806AC90: strb r0, [r4] ldrb r1, [r4] movs r0, #0x1f ands r0, r1 strb r0, [r4] _0806AC9A: ldrb r1, [r4] movs r0, #7 ands r0, r1 cmp r0, #0 bne _0806ACBA ldrb r0, [r4] bl sub_0806F5B0 strb r0, [r5, #0x14] ldrb r1, [r5, #0x14] lsrs r1, r1, #1 movs r0, #2 eors r1, r0 adds r0, r5, #0 bl sub_08004260 _0806ACBA: adds r0, r5, #0 bl sub_080042B8 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0806ACC4 sub_0806ACC4: @ 0x0806ACC4 push {r4, r5, lr} adds r4, r0, #0 ldrb r5, [r4, #0xc] cmp r5, #1 beq _0806AD28 cmp r5, #1 bgt _0806ACD8 cmp r5, #0 beq _0806ACE4 b _0806ADEA _0806ACD8: cmp r5, #2 beq _0806ADB8 cmp r5, #3 bne _0806ACE2 b _0806ADDC _0806ACE2: b _0806ADEA _0806ACE4: ldrb r1, [r4, #0xa] lsls r1, r1, #4 ldr r0, _0806AD24 @ =gUnk_08112674 adds r1, r1, r0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 bne _0806ACF8 b _0806ADFA _0806ACF8: movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x6a strb r0, [r1] lsls r0, r0, #1 strb r0, [r4, #0x14] strb r5, [r4, #0xe] adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] adds r0, r4, #0 bl sub_0807DD50 ldrb r1, [r4, #0x14] lsrs r1, r1, #1 adds r1, #8 b _0806ADCE .align 2, 0 _0806AD24: .4byte gUnk_08112674 _0806AD28: adds r5, r4, #0 adds r5, #0x39 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #2 bne _0806AD44 movs r1, #0 movs r0, #3 strb r0, [r4, #0xc] strb r1, [r5] adds r0, r4, #0 bl sub_0806F118 b _0806ADEA _0806AD44: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0806AEA8 ldrb r0, [r4, #0xb] cmp r0, #0xa bne _0806AD8A movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _0806AD8A movs r1, #0 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r5] ldr r1, _0806ADAC @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r1, #8 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] adds r0, r4, #0 bl sub_0806AFE8 _0806AD8A: ldrb r0, [r4, #0xa] cmp r0, #1 bne _0806ADEA ldr r0, _0806ADAC @ =gUnk_03001160 ldrb r3, [r0, #0x14] lsrs r3, r3, #1 ldr r0, _0806ADB0 @ =gUnk_081126E4 adds r0, r3, r0 ldrb r2, [r0] lsls r3, r3, #2 ldr r0, _0806ADB4 @ =gUnk_081126D4 adds r3, r3, r0 adds r0, r4, #0 movs r1, #1 bl sub_08078850 b _0806ADEA .align 2, 0 _0806ADAC: .4byte gUnk_03001160 _0806ADB0: .4byte gUnk_081126E4 _0806ADB4: .4byte gUnk_081126D4 _0806ADB8: ldr r0, _0806ADD8 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _0806ADEA movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x14] lsrs r1, r1, #1 adds r1, #4 _0806ADCE: adds r0, r4, #0 bl sub_08004260 b _0806ADEA .align 2, 0 _0806ADD8: .4byte gUnk_02000050 _0806ADDC: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _0806ADEA movs r0, #1 strb r0, [r4, #0xc] _0806ADEA: adds r0, r4, #0 adds r0, #0x59 ldrb r0, [r0] cmp r0, #0xff beq _0806ADFA adds r0, r4, #0 bl sub_08004274 _0806ADFA: pop {r4, r5, pc} thumb_func_start sub_0806ADFC sub_0806ADFC: @ 0x0806ADFC push {lr} adds r1, r0, #0 adds r1, #0x68 ldrb r1, [r1] bl sub_08078784 pop {pc} .align 2, 0 thumb_func_start sub_0806AE0C sub_0806AE0C: @ 0x0806AE0C push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 bne _0806AE62 adds r0, r4, #0 adds r0, #0x69 ldrb r0, [r0] lsrs r2, r0, #1 adds r0, r4, #0 adds r0, #0x5b ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0806AE3C adds r2, #0x1c adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 b _0806AE46 _0806AE3C: adds r0, r4, #0 movs r1, #0 movs r2, #0xff bl sub_0806FF60 _0806AE46: ldrb r2, [r4, #0x1e] adds r0, r4, #0 movs r1, #1 bl sub_0806FF60 adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r4, #0 bl sub_0807000C b _0806AEA4 _0806AE62: adds r0, r4, #0 adds r0, #0x5a ldrb r2, [r0] cmp r2, #0xff beq _0806AE72 movs r0, #0x81 rsbs r0, r0, #0 ands r2, r0 _0806AE72: adds r0, r4, #0 adds r0, #0x5b ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 bne _0806AE82 movs r2, #0xff _0806AE82: adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 ldrb r2, [r4, #0x1e] adds r0, r4, #0 movs r1, #1 bl sub_0806FF60 adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r4, #0 bl sub_0807000C _0806AEA4: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806AEA8 sub_0806AEA8: @ 0x0806AEA8 push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r4, #0 adds r6, #0x82 ldrh r5, [r6] ldr r0, _0806AED4 @ =0x0000FFDF ands r0, r5 strh r0, [r6] movs r0, #0x20 ands r0, r5 cmp r0, #0 beq _0806AECA movs r1, #0x80 lsls r1, r1, #7 adds r0, r4, #0 bl sub_08003FC4 _0806AECA: adds r0, r4, #0 bl sub_0807DDE4 strh r5, [r6] pop {r4, r5, r6, pc} .align 2, 0 _0806AED4: .4byte 0x0000FFDF thumb_func_start sub_0806AED8 sub_0806AED8: @ 0x0806AED8 push {lr} movs r1, #0 strb r1, [r0, #0xe] bl sub_0806AEE4 pop {pc} thumb_func_start sub_0806AEE4 sub_0806AEE4: @ 0x0806AEE4 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] adds r7, r0, #0 cmp r7, #0 beq _0806AEF6 subs r0, #1 strb r0, [r4, #0xe] b _0806AF5A _0806AEF6: movs r0, #2 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0x20 movs r2, #0x20 bl sub_0806EDD8 adds r3, r0, #0 cmp r3, #0 bge _0806AF16 adds r0, r4, #0 adds r0, #0x6a ldrb r1, [r0] lsls r0, r1, #1 strb r0, [r4, #0x14] lsls r3, r1, #3 _0806AF16: ldrb r0, [r4, #0x14] lsrs r0, r0, #1 lsls r0, r0, #5 asrs r1, r3, #1 lsls r1, r1, #1 ldr r2, _0806AF5C @ =gUnk_081125F4 adds r1, r1, r2 adds r0, r0, r1 ldrb r6, [r0] ldrb r5, [r0, #1] movs r0, #0x80 ands r0, r5 cmp r0, #0 beq _0806AF3A adds r0, r3, #0 bl sub_0806F5B0 strb r0, [r4, #0x14] _0806AF3A: movs r0, #0x7f ands r5, r0 adds r0, r4, #0 adds r0, #0x5a strb r6, [r0] strb r5, [r4, #0x1e] adds r1, r4, #0 adds r1, #0x5b movs r0, #1 strb r0, [r1] adds r0, r4, #0 adds r0, #0x58 strb r7, [r0] subs r1, #2 movs r0, #0xff strb r0, [r1] _0806AF5A: pop {r4, r5, r6, r7, pc} .align 2, 0 _0806AF5C: .4byte gUnk_081125F4 thumb_func_start sub_0806AF60 sub_0806AF60: @ 0x0806AF60 push {lr} ldrb r2, [r0, #0x14] lsrs r2, r2, #1 ldr r1, [r1, #4] adds r1, r1, r2 bl sub_08004260 pop {pc} thumb_func_start sub_0806AF70 sub_0806AF70: @ 0x0806AF70 movs r1, #0x90 lsls r1, r1, #0xa str r1, [r0, #0x20] bx lr thumb_func_start sub_0806AF78 sub_0806AF78: @ 0x0806AF78 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 movs r1, #0xc0 lsls r1, r1, #5 bl sub_08003FC4 ldr r0, [r4, #0x34] cmp r0, #0 blt _0806AF9E ldr r0, [r4, #0x20] cmp r0, #0 bgt _0806AF9E movs r0, #0 str r0, [r4, #0x34] adds r0, r4, #0 adds r1, r5, #0 bl sub_0806AF70 _0806AF9E: pop {r4, r5, pc} thumb_func_start sub_0806AFA0 sub_0806AFA0: @ 0x0806AFA0 push {r4, lr} adds r4, r0, #0 bl sub_0806ED78 cmp r0, #0 beq _0806AFBA movs r0, #0x24 ldrsh r1, [r4, r0] rsbs r1, r1, #0 ldrb r2, [r4, #0x15] adds r0, r4, #0 bl sub_0806F62C _0806AFBA: pop {r4, pc} thumb_func_start sub_0806AFBC sub_0806AFBC: @ 0x0806AFBC push {lr} adds r3, r0, #0 ldr r0, _0806AFE0 @ =gUnk_02002A40 ldrb r0, [r0, #8] subs r0, #2 cmp r0, #0 bge _0806AFCC movs r0, #0 _0806AFCC: ldrb r1, [r3, #0xb] lsls r1, r1, #6 lsls r0, r0, #3 ldr r2, _0806AFE4 @ =gUnk_081126F0 adds r0, r0, r2 adds r1, r1, r0 adds r0, r3, #0 bl sub_0806F1AC pop {pc} .align 2, 0 _0806AFE0: .4byte gUnk_02002A40 _0806AFE4: .4byte gUnk_081126F0 thumb_func_start sub_0806AFE8 sub_0806AFE8: @ 0x0806AFE8 push {lr} movs r2, #0 str r2, [r1, #0x14] ldr r3, _0806B000 @ =gUnk_08112BF0 ldrb r2, [r0, #0xb] lsls r2, r2, #2 adds r2, r2, r3 ldr r2, [r2] bl _call_via_r2 pop {pc} .align 2, 0 _0806B000: .4byte gUnk_08112BF0 thumb_func_start sub_0806B004 sub_0806B004: @ 0x0806B004 push {r4, r5, r6, lr} adds r6, r0, #0 adds r5, r1, #0 movs r4, #0 movs r0, #0x29 bl sub_0807CC30 cmp r0, #0 beq _0806B050 movs r0, #0x73 bl sub_0807CBD0 cmp r0, #0 beq _0806B048 movs r0, #0x46 bl sub_0807CA84 cmp r0, #0 bne _0806B044 movs r4, #3 movs r0, #0x78 bl sub_0807CBD0 cmp r0, #0 bne _0806B050 movs r4, #2 movs r0, #1 str r0, [r5, #0x14] movs r0, #0x78 bl sub_0807CCB4 b _0806B050 _0806B044: movs r4, #4 b _0806B050 _0806B048: movs r4, #1 movs r0, #0x6a bl sub_0807CCB4 _0806B050: ldr r0, _0806B060 @ =gUnk_08112C40 lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r6, #0 bl sub_08056398 pop {r4, r5, r6, pc} .align 2, 0 _0806B060: .4byte gUnk_08112C40 thumb_func_start sub_0806B064 sub_0806B064: @ 0x0806B064 push {r4, r5, lr} adds r5, r0, #0 movs r4, #0 movs r0, #0x29 bl sub_0807CC30 cmp r0, #0 beq _0806B082 movs r4, #1 movs r0, #0x73 bl sub_0807CBD0 cmp r0, #0 beq _0806B082 movs r4, #2 _0806B082: ldr r0, _0806B094 @ =gUnk_08112C4A lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 bl sub_08056398 pop {r4, r5, pc} .align 2, 0 _0806B094: .4byte gUnk_08112C4A thumb_func_start sub_0806B098 sub_0806B098: @ 0x0806B098 push {r4, r5, lr} adds r5, r0, #0 movs r4, #2 movs r0, #0x46 bl sub_0807CA84 cmp r0, #0 bne _0806B0C0 movs r4, #1 movs r0, #0x29 bl sub_0807CC30 cmp r0, #0 beq _0806B0C0 movs r0, #0x2a bl sub_0807CC30 rsbs r1, r0, #0 orrs r1, r0 lsrs r4, r1, #0x1f _0806B0C0: ldr r2, _0806B0DC @ =gUnk_08112C50 ldrb r1, [r5, #0xb] subs r1, #7 lsls r0, r1, #1 adds r0, r0, r1 adds r0, r0, r4 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] adds r1, r5, #0 bl sub_08056398 pop {r4, r5, pc} .align 2, 0 _0806B0DC: .4byte gUnk_08112C50 thumb_func_start sub_0806B0E0 sub_0806B0E0: @ 0x0806B0E0 push {r4, r5, lr} adds r4, r0, #0 movs r5, #0 movs r0, #0x38 movs r1, #0xb8 movs r2, #1 bl sub_080002C0 cmp r0, #0x57 bne _0806B120 movs r0, #0x48 movs r1, #0xb8 movs r2, #1 bl sub_080002C0 cmp r0, #0x57 bne _0806B120 movs r0, #0x38 movs r1, #0xc8 movs r2, #1 bl sub_080002C0 cmp r0, #0x57 bne _0806B120 movs r0, #0x48 movs r1, #0xc8 movs r2, #1 bl sub_080002C0 cmp r0, #0x57 bne _0806B120 movs r5, #1 _0806B120: ldr r0, _0806B130 @ =gUnk_08112C5C lsls r1, r5, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 bl sub_08056398 pop {r4, r5, pc} .align 2, 0 _0806B130: .4byte gUnk_08112C5C thumb_func_start sub_0806B134 sub_0806B134: @ 0x0806B134 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x45 bl sub_0807CA84 cmp r0, #0 beq _0806B158 movs r4, #2 movs r0, #0x7b bl sub_0807CBD0 cmp r0, #0 bne _0806B160 movs r4, #1 movs r0, #0x7b bl sub_0807CCB4 b _0806B160 _0806B158: movs r4, #0 movs r0, #0x4a bl sub_0807CD04 _0806B160: ldr r0, _0806B17C @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #5 bls _0806B16A movs r4, #3 _0806B16A: ldr r0, _0806B180 @ =gUnk_08112C60 lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 bl sub_08056398 pop {r4, r5, pc} .align 2, 0 _0806B17C: .4byte gUnk_02002A40 _0806B180: .4byte gUnk_08112C60 thumb_func_start sub_0806B184 sub_0806B184: @ 0x0806B184 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806B1C4 ldrb r1, [r4, #0xa] lsls r1, r1, #4 ldr r0, _0806B1C0 @ =gUnk_08112674 adds r1, r1, r0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806B1CA ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #6 bl sub_08004260 b _0806B1CA .align 2, 0 _0806B1C0: .4byte gUnk_08112674 _0806B1C4: adds r0, r4, #0 bl sub_08004274 _0806B1CA: pop {r4, pc} thumb_func_start sub_0806B1CC sub_0806B1CC: @ 0x0806B1CC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _0806B21E cmp r0, #1 bgt _0806B1E0 cmp r0, #0 beq _0806B1E6 b _0806B25C _0806B1E0: cmp r0, #2 beq _0806B24E b _0806B25C _0806B1E6: movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldrb r0, [r4, #0xe] strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD50 b _0806B25C _0806B21E: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _0806B238 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] adds r0, r4, #0 bl sub_0806F118 b _0806B25C _0806B238: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_080042B8 b _0806B25C _0806B24E: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _0806B25C movs r0, #1 strb r0, [r4, #0xc] _0806B25C: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806B260 sub_0806B260: @ 0x0806B260 push {r4, r5, r6, lr} adds r6, r0, #0 adds r5, r1, #0 movs r0, #0 str r0, [r5, #0x14] movs r0, #0x46 bl sub_0807CA84 cmp r0, #0 bne _0806B29E movs r0, #0x29 bl sub_0807CC30 cmp r0, #0 beq _0806B286 movs r4, #2 movs r0, #1 str r0, [r5, #0x14] b _0806B2A0 _0806B286: movs r0, #0x7a bl sub_0807CBD0 cmp r0, #0 bne _0806B29A movs r4, #0 movs r0, #0x7a bl sub_0807CCB4 b _0806B2A0 _0806B29A: movs r4, #1 b _0806B2A0 _0806B29E: movs r4, #3 _0806B2A0: ldr r0, _0806B2B0 @ =gUnk_08112D48 lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r6, #0 bl sub_08056398 pop {r4, r5, r6, pc} .align 2, 0 _0806B2B0: .4byte gUnk_08112D48 thumb_func_start sub_0806B2B4 sub_0806B2B4: @ 0x0806B2B4 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0xb3 bl sub_0807CBD0 cmp r0, #0 beq _0806B314 movs r0, #0 bl sub_0807CC3C cmp r0, #0 bne _0806B2D6 movs r4, #1 movs r0, #0 bl sub_0807CD10 b _0806B316 _0806B2D6: movs r0, #1 bl sub_0807CC3C cmp r0, #0 bne _0806B2EA movs r4, #2 movs r0, #1 bl sub_0807CD10 b _0806B316 _0806B2EA: movs r0, #2 bl sub_0807CC3C cmp r0, #0 bne _0806B2FE movs r4, #3 movs r0, #2 bl sub_0807CD10 b _0806B316 _0806B2FE: movs r4, #4 movs r0, #0 bl sub_0807CD8C movs r0, #1 bl sub_0807CD8C movs r0, #2 bl sub_0807CD8C b _0806B316 _0806B314: movs r4, #0 _0806B316: ldr r0, _0806B328 @ =gUnk_08112D50 lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 bl sub_08056398 pop {r4, r5, pc} .align 2, 0 _0806B328: .4byte gUnk_08112D50 thumb_func_start sub_0806B32C sub_0806B32C: @ 0x0806B32C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _0806B352 adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 movs r1, #9 bl sub_080042AC b _0806B358 _0806B352: adds r0, r2, #0 bl sub_080042B8 _0806B358: pop {pc} .align 2, 0 thumb_func_start sub_0806B35C sub_0806B35C: @ 0x0806B35C push {r4, lr} adds r4, r0, #0 adds r0, #0x5b ldrb r0, [r0] movs r2, #0x3f ands r2, r0 adds r2, #0x13 adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] movs r2, #0x7f ands r2, r0 adds r2, #0xb adds r0, r4, #0 movs r1, #1 bl sub_0806FF60 ldrb r2, [r4, #0x1e] adds r0, r4, #0 movs r1, #2 bl sub_0806FF60 adds r0, r4, #0 movs r1, #2 movs r2, #1 bl sub_0806FF88 adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_0806FFD8 adds r0, r4, #0 bl sub_0807000C pop {r4, pc} thumb_func_start sub_0806B3AC sub_0806B3AC: @ 0x0806B3AC push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0806B3C2 adds r0, r2, #0 bl sub_0806B41C b _0806B3C8 _0806B3C2: adds r0, r2, #0 bl sub_0806B3CC _0806B3C8: pop {pc} .align 2, 0 thumb_func_start sub_0806B3CC sub_0806B3CC: @ 0x0806B3CC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806B3F4 ldr r1, _0806B418 @ =gUnk_08112E1C adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806B414 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08078778 _0806B3F4: adds r0, r4, #0 bl sub_08004274 adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _0806B40E movs r0, #0 strb r0, [r1] bl sub_08056378 _0806B40E: adds r0, r4, #0 bl sub_0806ED78 _0806B414: pop {r4, pc} .align 2, 0 _0806B418: .4byte gUnk_08112E1C thumb_func_start sub_0806B41C sub_0806B41C: @ 0x0806B41C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _0806B470 cmp r0, #1 bgt _0806B430 cmp r0, #0 beq _0806B436 b _0806B4EC _0806B430: cmp r0, #2 beq _0806B4DE b _0806B4EC _0806B436: ldr r1, _0806B46C @ =gUnk_08112E1C adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806B4EC movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldrb r0, [r4, #0xb] cmp r0, #2 bne _0806B462 adds r0, r4, #0 movs r1, #0x25 movs r2, #0 bl sub_080A29AC _0806B462: adds r0, r4, #0 bl sub_0807DD50 b _0806B4EC .align 2, 0 _0806B46C: .4byte gUnk_08112E1C _0806B470: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _0806B4D4 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] ldr r1, _0806B4C8 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r1, #4 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08002632 ldr r1, _0806B4CC @ =gUnk_08001A7C lsls r0, r0, #2 adds r0, r0, r1 ldr r3, [r0] adds r0, r4, #0 adds r0, #0x68 ldrb r0, [r0] cmp r0, #0x21 bne _0806B4B2 adds r3, #6 _0806B4B2: ldrh r1, [r3] ldrh r2, [r3, #2] ldrh r3, [r3, #4] adds r0, r4, #0 bl sub_0801DFB4 ldr r0, _0806B4D0 @ =gUnk_03003F80 adds r0, #0x8b movs r1, #3 strb r1, [r0] b _0806B4EC .align 2, 0 _0806B4C8: .4byte gUnk_03001160 _0806B4CC: .4byte gUnk_08001A7C _0806B4D0: .4byte gUnk_03003F80 _0806B4D4: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 b _0806B4EC _0806B4DE: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _0806B4EC movs r0, #1 strb r0, [r4, #0xc] _0806B4EC: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806B4F0 sub_0806B4F0: @ 0x0806B4F0 push {lr} ldrb r1, [r0, #0xb] lsls r1, r1, #3 ldr r2, _0806B500 @ =gUnk_08112E2C adds r1, r1, r2 bl sub_0806F1AC pop {pc} .align 2, 0 _0806B500: .4byte gUnk_08112E2C thumb_func_start sub_0806B504 sub_0806B504: @ 0x0806B504 push {r4, r5, lr} adds r5, r0, #0 movs r4, #1 movs r0, #0x21 bl sub_0801E7F4 cmp r0, #0 beq _0806B518 movs r4, #3 b _0806B52A _0806B518: movs r0, #0x86 bl sub_0807CBD0 cmp r0, #0 bne _0806B52A movs r4, #0 movs r0, #0x86 bl sub_0807CCB4 _0806B52A: ldr r0, _0806B53C @ =gUnk_08112E54 lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 bl sub_08056398 pop {r4, r5, pc} .align 2, 0 _0806B53C: .4byte gUnk_08112E54 thumb_func_start sub_0806B540 sub_0806B540: @ 0x0806B540 push {r4, lr} adds r2, r0, #0 adds r0, #0x84 ldr r4, [r0] ldrb r0, [r4, #0x18] cmp r0, #1 beq _0806B588 cmp r0, #1 bgt _0806B558 cmp r0, #0 beq _0806B562 b _0806B600 _0806B558: cmp r0, #2 beq _0806B5AC cmp r0, #3 beq _0806B5EE b _0806B600 _0806B562: ldr r0, _0806B584 @ =0x00002312 adds r1, r2, #0 bl sub_08056398 movs r0, #0x3f bl sub_0807CBD0 cmp r0, #0 bne _0806B606 ldrb r0, [r4, #0x18] adds r0, #1 strb r0, [r4, #0x18] movs r0, #0x3f bl sub_0807CCB4 b _0806B600 .align 2, 0 _0806B584: .4byte 0x00002312 _0806B588: ldr r0, _0806B5A4 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _0806B600 movs r0, #2 strb r0, [r4, #0x18] ldr r0, _0806B5A8 @ =0x00002315 adds r1, r2, #0 bl sub_08056398 b _0806B600 .align 2, 0 _0806B5A4: .4byte gUnk_02000050 _0806B5A8: .4byte 0x00002315 _0806B5AC: ldr r0, _0806B5D4 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _0806B600 movs r0, #3 strb r0, [r4, #0x18] ldr r0, _0806B5D8 @ =gUnk_02002A40 adds r0, #0xbb ldrb r0, [r0] cmp r0, #0 beq _0806B5DC movs r0, #0x58 movs r1, #0 movs r2, #0 bl sub_080A7C18 b _0806B5E6 .align 2, 0 _0806B5D4: .4byte gUnk_02000050 _0806B5D8: .4byte gUnk_02002A40 _0806B5DC: movs r0, #0x3f movs r1, #0x64 movs r2, #0 bl sub_080A7C18 _0806B5E6: movs r0, #0xf bl sub_0807CD10 b _0806B600 _0806B5EE: ldr r0, _0806B5FC @ =gUnk_03001160 ldrb r0, [r0, #0xc] cmp r0, #8 beq _0806B600 movs r0, #0x2d strh r0, [r4, #0x10] b _0806B606 .align 2, 0 _0806B5FC: .4byte gUnk_03001160 _0806B600: ldr r1, _0806B608 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0806B606: pop {r4, pc} .align 2, 0 _0806B608: .4byte gUnk_02033280 thumb_func_start sub_0806B60C sub_0806B60C: @ 0x0806B60C push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 pop {r4, pc} thumb_func_start sub_0806B624 sub_0806B624: @ 0x0806B624 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806B65C ldr r1, _0806B658 @ =gUnk_08112E1C adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806B662 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 bl sub_08004260 b _0806B662 .align 2, 0 _0806B658: .4byte gUnk_08112E1C _0806B65C: adds r0, r4, #0 bl sub_08004274 _0806B662: pop {r4, pc} thumb_func_start sub_0806B664 sub_0806B664: @ 0x0806B664 push {lr} ldr r2, _0806B678 @ =gUnk_08112F78 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0806B678: .4byte gUnk_08112F78 thumb_func_start sub_0806B67C sub_0806B67C: @ 0x0806B67C push {r4, r5, r6, lr} adds r6, r0, #0 movs r1, #0 movs r0, #1 strb r0, [r6, #0xc] strb r1, [r6, #0xd] strb r1, [r6, #0xe] ldrb r0, [r6, #0xa] cmp r0, #5 bls _0806B692 b _0806B7B8 _0806B692: lsls r0, r0, #2 ldr r1, _0806B69C @ =_0806B6A0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806B69C: .4byte _0806B6A0 _0806B6A0: @ jump table .4byte _0806B6B8 @ case 0 .4byte _0806B7A6 @ case 1 .4byte _0806B70C @ case 2 .4byte _0806B726 @ case 3 .4byte _0806B7B0 @ case 4 .4byte _0806B7A6 @ case 5 _0806B6B8: ldrh r0, [r6, #0x32] subs r0, #0xa0 strh r0, [r6, #0x32] movs r0, #0xa0 strb r0, [r6, #0xe] movs r0, #0x20 strb r0, [r6, #0xf] adds r1, r6, #0 adds r1, #0x63 strb r0, [r1] movs r5, #0 _0806B6CE: movs r0, #0x3b movs r1, #2 adds r2, r5, #0 bl sub_0806ED50 adds r4, r0, #0 cmp r4, #0 beq _0806B6E0 str r6, [r4, #0x50] _0806B6E0: adds r5, #1 cmp r5, #3 bls _0806B6CE movs r0, #0x3b movs r1, #1 movs r2, #0 bl sub_0806ED50 adds r4, r0, #0 str r6, [r4, #0x50] adds r1, r4, #0 adds r1, #0x63 movs r0, #0xff strb r0, [r1] movs r3, #0x80 lsls r3, r3, #9 adds r0, r6, #0 adds r1, r4, #0 movs r2, #0 bl sub_0806FA48 b _0806B7A6 _0806B70C: ldrb r1, [r6, #0xb] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0806B71E ldrb r0, [r6, #0x18] movs r1, #0x40 orrs r0, r1 strb r0, [r6, #0x18] _0806B71E: adds r0, r6, #0 bl sub_0806B96C b _0806B7A6 _0806B726: movs r0, #1 strb r0, [r6, #0xe] movs r0, #0x20 strb r0, [r6, #0xf] movs r0, #0x3b movs r1, #4 movs r2, #0 bl sub_0806ED50 adds r4, r0, #0 cmp r4, #0 beq _0806B76C adds r0, r6, #0 adds r1, r4, #0 bl sub_0806FA24 str r6, [r4, #0x50] adds r0, r6, #0 adds r0, #0x29 ldrb r1, [r0] lsls r1, r1, #0x1d lsrs r1, r1, #0x1d subs r1, #1 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] movs r0, #0 strb r0, [r4, #0x1e] _0806B76C: movs r0, #0x3b movs r1, #5 movs r2, #0 bl sub_0806ED50 adds r4, r0, #0 cmp r4, #0 beq _0806B7A6 adds r0, r6, #0 adds r1, r4, #0 bl sub_0806FA24 str r6, [r4, #0x50] adds r0, r6, #0 adds r0, #0x29 ldrb r1, [r0] lsls r1, r1, #0x1d lsrs r1, r1, #0x1d adds r1, #1 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] _0806B7A6: adds r0, r6, #0 movs r1, #0 bl sub_080042AC b _0806B7B8 _0806B7B0: adds r0, r6, #0 movs r1, #0 bl sub_08004260 _0806B7B8: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0806B7BC sub_0806B7BC: @ 0x0806B7BC push {r4, r5, lr} adds r5, r0, #0 movs r0, #3 bl sub_0807CC3C cmp r0, #0 bne _0806B7CC b _0806B968 _0806B7CC: ldrb r0, [r5, #0xa] cmp r0, #1 beq _0806B84C cmp r0, #1 bgt _0806B7DC cmp r0, #0 beq _0806B7E6 b _0806B93C _0806B7DC: cmp r0, #2 beq _0806B86C cmp r0, #3 beq _0806B874 b _0806B93C _0806B7E6: ldrh r0, [r5, #0x32] adds r0, #1 strh r0, [r5, #0x32] ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] movs r1, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _0806B82C movs r0, #0x3b movs r1, #3 movs r2, #0 bl sub_0806ED50 adds r4, r0, #0 cmp r4, #0 bne _0806B80C b _0806B968 _0806B80C: adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 ldr r0, _0806B828 @ =0x00001634 bl sub_08056378 ldrb r0, [r5, #0xd] adds r0, #1 strb r0, [r5, #0xd] bl sub_0805E780 b _0806B968 .align 2, 0 _0806B828: .4byte 0x00001634 _0806B82C: ldrb r0, [r5, #0xf] subs r0, #1 strb r0, [r5, #0xf] ands r0, r1 cmp r0, #0 beq _0806B83A b _0806B95A _0806B83A: movs r0, #0x20 strb r0, [r5, #0xf] ldr r0, _0806B848 @ =0x000001A9 bl sub_080A3268 b _0806B95A .align 2, 0 _0806B848: .4byte 0x000001A9 _0806B84C: adds r0, r5, #0 bl sub_0806B9BC adds r4, r0, #0 cmp r4, #0 bne _0806B85C bl sub_0805E780 _0806B85C: movs r3, #0x84 lsls r3, r3, #0xe adds r0, r4, #0 adds r1, r5, #0 movs r2, #0 bl sub_0806FA48 b _0806B95A _0806B86C: adds r0, r5, #0 bl sub_0806B96C b _0806B95A _0806B874: ldrb r0, [r5, #0xd] cmp r0, #1 beq _0806B8A2 cmp r0, #1 bgt _0806B884 cmp r0, #0 beq _0806B88E b _0806B91E _0806B884: cmp r0, #2 beq _0806B8C4 cmp r0, #3 beq _0806B906 b _0806B91E _0806B88E: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0806B91E ldrb r0, [r5, #0xd] adds r0, #1 strb r0, [r5, #0xd] b _0806B91E _0806B8A2: adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0806B91E movs r0, #2 strb r0, [r5, #0xd] ldr r1, _0806B8C0 @ =0x0000013F adds r0, r5, #0 bl sub_0801D2B4 b _0806B8FA .align 2, 0 _0806B8C0: .4byte 0x0000013F _0806B8C4: adds r2, r5, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0806B91E movs r0, #0xef ands r0, r1 strb r0, [r2] ldrb r0, [r5, #0xe] adds r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 beq _0806B91E cmp r0, #0xa bne _0806B91E ldrb r0, [r5, #0xd] adds r0, #1 strb r0, [r5, #0xd] movs r0, #0xf4 bl sub_08004488 movs r0, #0 strb r0, [r5, #0xe] _0806B8FA: ldrb r1, [r5, #0xd] subs r1, #1 adds r0, r5, #0 bl sub_080042AC b _0806B91E _0806B906: adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0806B91E movs r0, #0 bl sub_0807CD10 bl sub_0805E780 _0806B91E: ldrb r0, [r5, #0xf] subs r0, #1 strb r0, [r5, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0806B95A movs r0, #0x20 strb r0, [r5, #0xf] ldr r0, _0806B938 @ =0x000001A9 bl sub_080A3268 b _0806B95A .align 2, 0 _0806B938: .4byte 0x000001A9 _0806B93C: adds r0, r5, #0 bl sub_0806B9BC adds r4, r0, #0 cmp r4, #0 bne _0806B94E bl sub_0805E780 b _0806B968 _0806B94E: ldrb r0, [r4, #0xd] cmp r0, #0 beq _0806B968 ldrb r0, [r5, #0xa] cmp r0, #4 beq _0806B962 _0806B95A: adds r0, r5, #0 bl sub_080042B8 b _0806B968 _0806B962: adds r0, r5, #0 bl sub_08004274 _0806B968: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0806B96C sub_0806B96C: @ 0x0806B96C push {r4, r5, lr} adds r4, r0, #0 bl sub_0806B9BC adds r5, r0, #0 cmp r5, #0 bne _0806B97E bl sub_0805E780 _0806B97E: ldrb r3, [r4, #0xb] lsls r3, r3, #1 ldr r0, _0806B9B8 @ =gUnk_08112F80 adds r3, r3, r0 ldrb r1, [r5, #0x18] lsls r1, r1, #0x1e lsrs r1, r1, #0x1e ldrb r2, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] movs r2, #0 ldrsb r2, [r3, r2] lsls r2, r2, #0x10 ldrb r3, [r3, #1] lsls r3, r3, #0x18 asrs r3, r3, #0x18 adds r3, #0x21 lsls r3, r3, #0x10 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA48 adds r0, r4, #0 bl sub_080042B8 pop {r4, r5, pc} .align 2, 0 _0806B9B8: .4byte gUnk_08112F80 thumb_func_start sub_0806B9BC sub_0806B9BC: @ 0x0806B9BC push {lr} ldr r1, [r0, #0x50] cmp r1, #0 beq _0806B9CC ldr r0, [r1, #4] cmp r0, #0 bne _0806B9CC movs r1, #0 _0806B9CC: adds r0, r1, #0 pop {pc} thumb_func_start sub_0806B9D0 sub_0806B9D0: @ 0x0806B9D0 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xc] cmp r0, #0 bne _0806B9E6 adds r0, #1 strb r0, [r1, #0xc] adds r0, r1, #0 bl sub_0807DD50 b _0806B9EE _0806B9E6: adds r0, r1, #0 movs r1, #0 bl sub_0807DD94 _0806B9EE: pop {pc} thumb_func_start sub_0806B9F0 sub_0806B9F0: @ 0x0806B9F0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806BA18 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0807DD50 ldr r1, _0806BA30 @ =gUnk_08114F30 ldrb r2, [r4, #0x19] lsrs r0, r2, #6 adds r0, r0, r1 ldrb r1, [r0] lsls r1, r1, #6 movs r0, #0x3f ands r0, r2 orrs r0, r1 strb r0, [r4, #0x19] _0806BA18: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 _0806BA30: .4byte gUnk_08114F30 thumb_func_start sub_0806BA34 sub_0806BA34: @ 0x0806BA34 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} mov sb, r0 adds r4, r1, #0 ldr r0, _0806BA58 @ =0x00004912 mov r8, r0 movs r0, #0 str r0, [r4, #0x14] movs r0, #0x73 bl sub_0807CBD0 cmp r0, #0 beq _0806BA60 ldr r0, _0806BA5C @ =0x00004913 mov r8, r0 b _0806BB06 .align 2, 0 _0806BA58: .4byte 0x00004912 _0806BA5C: .4byte 0x00004913 _0806BA60: movs r0, #0x39 bl sub_0807CA84 adds r7, r0, #0 movs r0, #0x3a bl sub_0807CA84 adds r6, r0, #0 movs r0, #0x3b bl sub_0807CA84 adds r5, r0, #0 cmp r7, #1 bne _0806BA88 ldr r0, _0806BA84 @ =0x00004906 mov r8, r0 str r7, [r4, #0x14] b _0806BAA2 .align 2, 0 _0806BA84: .4byte 0x00004906 _0806BA88: cmp r6, #1 bne _0806BA98 ldr r0, _0806BA94 @ =0x00004907 mov r8, r0 str r6, [r4, #0x14] b _0806BAA2 .align 2, 0 _0806BA94: .4byte 0x00004907 _0806BA98: cmp r5, #1 bne _0806BAB4 ldr r0, _0806BAB0 @ =0x00004908 mov r8, r0 str r5, [r4, #0x14] _0806BAA2: movs r0, #0x6b bl sub_0807CCB4 movs r0, #0x6a bl sub_0807CCB4 b _0806BB06 .align 2, 0 _0806BAB0: .4byte 0x00004908 _0806BAB4: movs r0, #0x6a bl sub_0807CBD0 cmp r0, #0 beq _0806BB06 movs r0, #0x6b bl sub_0807CBD0 cmp r0, #0 bne _0806BAD0 ldr r0, _0806BACC @ =0x00004901 b _0806BAD6 .align 2, 0 _0806BACC: .4byte 0x00004901 _0806BAD0: cmp r7, #0 bne _0806BAE4 ldr r0, _0806BAE0 @ =0x00004902 _0806BAD6: mov r8, r0 movs r0, #0x6b bl sub_0807CCB4 b _0806BB06 .align 2, 0 _0806BAE0: .4byte 0x00004902 _0806BAE4: cmp r6, #0 bne _0806BAF8 ldr r0, _0806BAF4 @ =0x00004903 mov r8, r0 movs r0, #0x6d bl sub_0807CCB4 b _0806BB06 .align 2, 0 _0806BAF4: .4byte 0x00004903 _0806BAF8: cmp r5, #0 bne _0806BB06 ldr r0, _0806BB18 @ =0x00004904 mov r8, r0 movs r0, #0x70 bl sub_0807CCB4 _0806BB06: mov r0, r8 mov r1, sb bl sub_08056398 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _0806BB18: .4byte 0x00004904 thumb_func_start sub_0806BB1C sub_0806BB1C: @ 0x0806BB1C push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 movs r4, #1 rsbs r4, r4, #0 movs r0, #0x39 bl sub_0807CA84 cmp r0, #1 bne _0806BB34 movs r4, #0x39 b _0806BB52 _0806BB34: movs r0, #0x3a bl sub_0807CA84 cmp r0, #1 bne _0806BB42 movs r4, #0x3a b _0806BB52 _0806BB42: movs r0, #0x3b bl sub_0807CA84 cmp r0, #1 bne _0806BB4E movs r4, #0x3b _0806BB4E: cmp r4, #0 ble _0806BB78 _0806BB52: ldr r0, [r6, #4] cmp r0, #0 bne _0806BB70 adds r0, r5, #0 adds r1, r4, #0 bl sub_08095BE0 adds r0, r5, #0 movs r1, #0xc bl sub_08004260 movs r0, #0xcd bl sub_080A3268 b _0806BB78 _0806BB70: adds r0, r4, #0 movs r1, #2 bl sub_0807CAA0 _0806BB78: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0806BB7C sub_0806BB7C: @ 0x0806BB7C push {r4, lr} adds r4, r1, #0 movs r0, #0 str r0, [r4, #0x14] movs r0, #0x39 bl sub_0807CA84 cmp r0, #2 bne _0806BBAC movs r0, #0x3a bl sub_0807CA84 cmp r0, #2 bne _0806BBAC movs r0, #0x3b bl sub_0807CA84 cmp r0, #2 bne _0806BBAC movs r0, #0x73 bl sub_0807CCB4 movs r0, #1 str r0, [r4, #0x14] _0806BBAC: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806BBB0 sub_0806BBB0: @ 0x0806BBB0 push {r4, lr} adds r4, r0, #0 movs r0, #0x46 bl sub_0807CA84 cmp r0, #0 bne _0806BBCC movs r0, #0x29 bl sub_0807CC30 rsbs r1, r0, #0 orrs r1, r0 lsrs r1, r1, #0x1f b _0806BBCE _0806BBCC: movs r1, #2 _0806BBCE: ldr r0, _0806BBE0 @ =gUnk_08113078 lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 bl sub_08056398 pop {r4, pc} .align 2, 0 _0806BBE0: .4byte gUnk_08113078 thumb_func_start sub_0806BBE4 sub_0806BBE4: @ 0x0806BBE4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806BC40 ldrb r0, [r4, #0xa] lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #2 ldr r0, _0806BC28 @ =gUnk_08113140 adds r1, r1, r0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806BC54 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0xe] movs r0, #1 ands r1, r0 lsls r1, r1, #6 ldrb r2, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] lsls r0, r0, #0x19 cmp r0, #0 blt _0806BC2C movs r0, #6 b _0806BC2E .align 2, 0 _0806BC28: .4byte gUnk_08113140 _0806BC2C: movs r0, #2 _0806BC2E: strb r0, [r4, #0x14] ldrb r0, [r4, #0x14] strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_0806BC58 adds r0, r4, #0 bl sub_0807DD64 _0806BC40: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_08004274 _0806BC54: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806BC58 sub_0806BC58: @ 0x0806BC58 push {lr} movs r1, #2 bl sub_0805E3A0 pop {pc} .align 2, 0 thumb_func_start sub_0806BC64 sub_0806BC64: @ 0x0806BC64 push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r0, [r0] movs r2, #0x7f ands r2, r0 adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 ldrb r2, [r4, #0x1e] adds r0, r4, #0 movs r1, #1 bl sub_0806FF60 adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r4, #0 bl sub_0807000C pop {r4, pc} thumb_func_start sub_0806BC94 sub_0806BC94: @ 0x0806BC94 push {lr} ldrb r3, [r0, #0x18] lsls r3, r3, #0x19 lsrs r3, r3, #0x1f rsbs r2, r3, #0 orrs r2, r3 asrs r2, r2, #0x1f movs r3, #8 ands r2, r3 ldr r1, [r1, #4] adds r1, r1, r2 ldrb r2, [r0, #0x14] lsrs r2, r2, #1 adds r1, r1, r2 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_0806BCB8 sub_0806BCB8: @ 0x0806BCB8 ldrb r1, [r0, #0xe] strb r1, [r0, #0x14] bx lr .align 2, 0 thumb_func_start sub_0806BCC0 sub_0806BCC0: @ 0x0806BCC0 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xa] cmp r0, #0 bne _0806BCD0 adds r0, r1, #0 bl sub_0806F188 _0806BCD0: pop {pc} .align 2, 0 thumb_func_start sub_0806BCD4 sub_0806BCD4: @ 0x0806BCD4 push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r0, #0 adds r0, r4, #0 bl sub_08078784 pop {r4, pc} .align 2, 0 thumb_func_start sub_0806BCE8 sub_0806BCE8: @ 0x0806BCE8 push {lr} ldrb r1, [r0, #0xa] lsls r1, r1, #3 ldr r2, _0806BCF8 @ =gUnk_08113158 adds r1, r1, r2 bl sub_0806F1AC pop {pc} .align 2, 0 _0806BCF8: .4byte gUnk_08113158 thumb_func_start sub_0806BCFC sub_0806BCFC: @ 0x0806BCFC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806BD4C ldrb r0, [r4, #0xa] lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #2 ldr r0, _0806BD48 @ =gUnk_08113140 adds r1, r1, r0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806BD52 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 movs r1, #0x41 rsbs r1, r1, #0 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_0806BC58 adds r0, r4, #0 movs r1, #3 bl sub_080042AC b _0806BD52 .align 2, 0 _0806BD48: .4byte gUnk_08113140 _0806BD4C: adds r0, r4, #0 bl sub_080042B8 _0806BD52: pop {r4, pc} thumb_func_start sub_0806BD54 sub_0806BD54: @ 0x0806BD54 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806BD6A adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0807DD50 b _0806BD72 _0806BD6A: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 _0806BD72: adds r4, #0x5a ldrb r1, [r4] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0806BD94 movs r0, #0xef ands r0, r1 strb r0, [r4] movs r0, #0x82 lsls r0, r0, #1 bl sub_08004488 movs r0, #0x10 movs r1, #0 bl sub_08080964 _0806BD94: ldrb r1, [r4] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _0806BDAA movs r0, #0xdf ands r0, r1 strb r0, [r4] movs r0, #0x7c bl sub_08004488 _0806BDAA: pop {r4, pc} thumb_func_start sub_0806BDAC sub_0806BDAC: @ 0x0806BDAC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _0806BDE6 cmp r0, #1 bgt _0806BDC0 cmp r0, #0 beq _0806BDC6 b _0806BE3A _0806BDC0: cmp r0, #2 beq _0806BE26 b _0806BE3A _0806BDC6: movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD50 b _0806BE3A _0806BDE6: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _0806BE1C movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] ldr r1, _0806BE18 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r1, #4 adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 bl sub_0806F118 b _0806BE3A .align 2, 0 _0806BE18: .4byte gUnk_03001160 _0806BE1C: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 b _0806BE3A _0806BE26: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _0806BE3A movs r0, #1 strb r0, [r4, #0xc] _0806BE3A: pop {r4, pc} thumb_func_start sub_0806BE3C sub_0806BE3C: @ 0x0806BE3C push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 pop {r4, pc} thumb_func_start sub_0806BE54 sub_0806BE54: @ 0x0806BE54 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _0806BE7A adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 movs r1, #2 bl sub_080042AC b _0806BE80 _0806BE7A: adds r0, r2, #0 bl sub_080042B8 _0806BE80: pop {pc} .align 2, 0 thumb_func_start sub_0806BE84 sub_0806BE84: @ 0x0806BE84 push {r4, r5, r6, lr} adds r6, r0, #0 adds r4, r1, #0 movs r0, #0 str r0, [r4, #0x14] movs r5, #1 movs r0, #0x69 bl sub_0807CBD0 cmp r0, #0 bne _0806BEA6 movs r5, #0 movs r0, #0x69 bl sub_0807CCB4 movs r0, #1 str r0, [r4, #0x14] _0806BEA6: movs r0, #0x3c bl sub_0807CA84 cmp r0, #1 bls _0806BEB2 movs r5, #2 _0806BEB2: ldr r0, _0806BEC4 @ =gUnk_08113344 lsls r1, r5, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r6, #0 bl sub_08056398 pop {r4, r5, r6, pc} .align 2, 0 _0806BEC4: .4byte gUnk_08113344 thumb_func_start sub_0806BEC8 sub_0806BEC8: @ 0x0806BEC8 push {r4, r5, r6, lr} adds r6, r0, #0 adds r5, r1, #0 movs r4, #0 str r4, [r5, #0x14] movs r0, #0x3c bl sub_0807CA84 cmp r0, #1 bne _0806BEE2 movs r4, #1 str r4, [r5, #0x14] b _0806BEE8 _0806BEE2: cmp r0, #1 bls _0806BEE8 movs r4, #2 _0806BEE8: ldr r0, _0806BEF8 @ =gUnk_0811334A lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r6, #0 bl sub_08056398 pop {r4, r5, r6, pc} .align 2, 0 _0806BEF8: .4byte gUnk_0811334A thumb_func_start sub_0806BEFC sub_0806BEFC: @ 0x0806BEFC push {lr} movs r0, #0xbf lsls r0, r0, #1 ldr r1, _0806BF2C @ =0x0000058E movs r2, #1 bl sub_0807B314 ldr r0, _0806BF30 @ =0x0000017F ldr r1, _0806BF34 @ =0x0000058F movs r2, #1 bl sub_0807B314 movs r0, #0xc0 lsls r0, r0, #1 ldr r1, _0806BF38 @ =0x000005CE movs r2, #1 bl sub_0807B314 ldr r0, _0806BF3C @ =0x00000181 ldr r1, _0806BF40 @ =0x000005CF movs r2, #1 bl sub_0807B314 pop {pc} .align 2, 0 _0806BF2C: .4byte 0x0000058E _0806BF30: .4byte 0x0000017F _0806BF34: .4byte 0x0000058F _0806BF38: .4byte 0x000005CE _0806BF3C: .4byte 0x00000181 _0806BF40: .4byte 0x000005CF thumb_func_start sub_0806BF44 sub_0806BF44: @ 0x0806BF44 push {r4, r5, lr} adds r2, r0, #0 adds r4, r1, #0 movs r0, #0 str r0, [r4, #0x14] movs r1, #0x2e ldrsh r0, [r2, r1] ldr r3, _0806BF78 @ =gUnk_03000BF0 movs r5, #0xa ldrsh r1, [r3, r5] subs r0, r0, r1 adds r0, #0x10 ldr r1, _0806BF7C @ =0x0000010F cmp r0, r1 bhi _0806BF76 movs r1, #0x32 ldrsh r0, [r2, r1] movs r2, #0xc ldrsh r1, [r3, r2] subs r0, r0, r1 adds r0, #0x18 cmp r0, #0xcf bhi _0806BF76 movs r0, #1 str r0, [r4, #0x14] _0806BF76: pop {r4, r5, pc} .align 2, 0 _0806BF78: .4byte gUnk_03000BF0 _0806BF7C: .4byte 0x0000010F thumb_func_start sub_0806BF80 sub_0806BF80: @ 0x0806BF80 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 bne _0806BFBE ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806BFA2 adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD50 _0806BFA2: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0806BFD8 b _0806BFD4 _0806BFBE: ldrb r0, [r4, #0xc] adds r1, r0, #0 cmp r1, #0 bne _0806BFD4 adds r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0x1e] adds r0, r4, #0 adds r1, r4, #0 bl sub_0806FAD8 _0806BFD4: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806BFD8 sub_0806BFD8: @ 0x0806BFD8 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x5b ldrb r0, [r0] movs r5, #3 adds r1, r5, #0 ands r1, r0 cmp r1, #1 beq _0806BFF0 cmp r1, #2 beq _0806C002 b _0806C00A _0806BFF0: bl sub_08000E50 adds r1, r0, #0 ands r1, r5 adds r1, #0xc adds r0, r4, #0 bl sub_08004260 b _0806C00A _0806C002: adds r0, r4, #0 movs r1, #0 bl sub_08004260 _0806C00A: pop {r4, r5, pc} thumb_func_start sub_0806C00C sub_0806C00C: @ 0x0806C00C push {lr} adds r2, r1, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 beq _0806C022 movs r0, #1 _0806C022: str r0, [r2, #0x14] pop {pc} .align 2, 0 thumb_func_start sub_0806C028 sub_0806C028: @ 0x0806C028 push {lr} ldrb r2, [r0, #0x14] lsrs r2, r2, #1 ldr r1, [r1, #4] adds r1, r1, r2 bl sub_08004260 pop {pc} thumb_func_start sub_0806C038 sub_0806C038: @ 0x0806C038 push {r4, r5, lr} adds r5, r0, #0 ldr r0, _0806C074 @ =gUnk_02002A40 ldrb r0, [r0, #8] subs r4, r0, #5 cmp r4, #0 beq _0806C048 movs r4, #0 _0806C048: movs r0, #0x46 bl sub_0807CA84 cmp r0, #0 bne _0806C086 movs r0, #0x3a bl sub_0807CA84 cmp r0, #0 bne _0806C078 movs r4, #6 movs r0, #0xaf bl sub_0807CBD0 cmp r0, #0 bne _0806C086 movs r4, #5 movs r0, #0xaf bl sub_0807CCB4 b _0806C086 .align 2, 0 _0806C074: .4byte gUnk_02002A40 _0806C078: movs r4, #7 movs r0, #0x3a bl sub_0807CA84 cmp r0, #1 bls _0806C086 movs r4, #0 _0806C086: ldr r0, _0806C098 @ =gUnk_081133A4 lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 bl sub_08056398 pop {r4, r5, pc} .align 2, 0 _0806C098: .4byte gUnk_081133A4 thumb_func_start sub_0806C09C sub_0806C09C: @ 0x0806C09C push {lr} ldr r3, _0806C0AC @ =gUnk_081133B4 movs r1, #1 movs r2, #0 bl sub_08078850 pop {pc} .align 2, 0 _0806C0AC: .4byte gUnk_081133B4 thumb_func_start sub_0806C0B0 sub_0806C0B0: @ 0x0806C0B0 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r5, r0, #0 cmp r5, #0 bne _0806C104 adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x19] movs r0, #0xd rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r4, #0x19] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD50 ldr r1, _0806C100 @ =gUnk_03000F50 adds r2, r1, #0 adds r2, #0x66 movs r0, #0xfd lsls r0, r0, #6 strh r0, [r2] adds r1, #0x68 movs r0, #0x80 lsls r0, r0, #5 strh r0, [r1] strh r0, [r4, #0x24] str r5, [r4, #0x20] b _0806C134 .align 2, 0 _0806C100: .4byte gUnk_03000F50 _0806C104: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 movs r1, #0x24 ldrsh r0, [r4, r1] lsls r3, r0, #8 ldr r0, [r4, #0x20] adds r3, r3, r0 asrs r3, r3, #0x10 cmp r3, #0x10 ble _0806C11E movs r3, #0x10 _0806C11E: cmp r3, #3 bgt _0806C124 movs r3, #4 _0806C124: ldr r2, _0806C138 @ =gUnk_03000F50 lsls r1, r3, #8 movs r0, #0x10 subs r0, r0, r3 orrs r1, r0 adds r2, #0x68 strh r1, [r2] strh r1, [r4, #0x24] _0806C134: pop {r4, r5, pc} .align 2, 0 _0806C138: .4byte gUnk_03000F50 thumb_func_start sub_0806C13C sub_0806C13C: @ 0x0806C13C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _0806C182 cmp r0, #1 bgt _0806C150 cmp r0, #0 beq _0806C156 b _0806C1D2 _0806C150: cmp r0, #2 beq _0806C1BE b _0806C1D2 _0806C156: movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 adds r0, r4, #0 bl sub_0807DD50 b _0806C1D2 _0806C182: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _0806C1B4 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] ldr r1, _0806C1B0 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 bl sub_0806F118 b _0806C1D2 .align 2, 0 _0806C1B0: .4byte gUnk_03001160 _0806C1B4: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 b _0806C1D2 _0806C1BE: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _0806C1D2 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x88 bl sub_0807CCB4 _0806C1D2: pop {r4, pc} thumb_func_start sub_0806C1D4 sub_0806C1D4: @ 0x0806C1D4 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _0806C1FA adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 movs r1, #2 bl sub_080042AC b _0806C200 _0806C1FA: adds r0, r2, #0 bl sub_080042B8 _0806C200: pop {pc} .align 2, 0 thumb_func_start sub_0806C204 sub_0806C204: @ 0x0806C204 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xc] cmp r0, #0 bne _0806C21A adds r0, #1 strb r0, [r1, #0xc] adds r0, r1, #0 bl sub_0807DD50 b _0806C222 _0806C21A: adds r0, r1, #0 movs r1, #0 bl sub_0807DD94 _0806C222: pop {pc} thumb_func_start sub_0806C224 sub_0806C224: @ 0x0806C224 push {lr} ldr r0, _0806C234 @ =gUnk_0813AD60 bl sub_08080840 ldr r1, _0806C238 @ =gUnk_030010A0 movs r0, #6 strb r0, [r1, #9] pop {pc} .align 2, 0 _0806C234: .4byte gUnk_0813AD60 _0806C238: .4byte gUnk_030010A0 thumb_func_start sub_0806C23C sub_0806C23C: @ 0x0806C23C push {r4, r5, lr} adds r4, r0, #0 movs r1, #0xf movs r2, #0x43 movs r3, #0 bl sub_080A2988 movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _0806C27C @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r4, #0x38 ldrb r2, [r4] movs r0, #0x73 bl sub_0807B314 movs r0, #0x73 bl sub_080A3268 pop {r4, r5, pc} .align 2, 0 _0806C27C: .4byte gUnk_03000BF0 thumb_func_start sub_0806C280 sub_0806C280: @ 0x0806C280 push {lr} movs r0, #0x50 bl sub_0807CD04 ldr r0, _0806C298 @ =gUnk_0813AD74 bl sub_08080840 ldr r1, _0806C29C @ =gUnk_030010A0 movs r0, #6 strb r0, [r1, #9] pop {pc} .align 2, 0 _0806C298: .4byte gUnk_0813AD74 _0806C29C: .4byte gUnk_030010A0 thumb_func_start sub_0806C2A0 sub_0806C2A0: @ 0x0806C2A0 push {lr} ldr r0, [r1, #4] cmp r0, #0 beq _0806C2AE cmp r0, #1 beq _0806C2B8 b _0806C2C0 _0806C2AE: movs r0, #0xd movs r1, #4 bl sub_08050054 b _0806C2C0 _0806C2B8: movs r0, #0xc movs r1, #4 bl sub_08050054 _0806C2C0: pop {pc} .align 2, 0 thumb_func_start sub_0806C2C4 sub_0806C2C4: @ 0x0806C2C4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _0806C2FA cmp r0, #1 bgt _0806C2D8 cmp r0, #0 beq _0806C2DE b _0806C350 _0806C2D8: cmp r0, #2 beq _0806C342 b _0806C350 _0806C2DE: movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldrb r0, [r4, #0xe] strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_0807DD50 b _0806C350 _0806C2FA: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _0806C338 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] ldr r1, _0806C334 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r4, #0 adds r1, #0x58 ldrb r1, [r1] movs r2, #4 rsbs r2, r2, #0 ands r1, r2 adds r1, r1, r0 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_0806F118 b _0806C350 .align 2, 0 _0806C334: .4byte gUnk_03001160 _0806C338: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 b _0806C350 _0806C342: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _0806C350 movs r0, #1 strb r0, [r4, #0xc] _0806C350: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806C354 sub_0806C354: @ 0x0806C354 push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 pop {r4, pc} thumb_func_start sub_0806C36C sub_0806C36C: @ 0x0806C36C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _0806C392 adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 movs r1, #6 bl sub_080042AC b _0806C398 _0806C392: adds r0, r2, #0 bl sub_080042B8 _0806C398: pop {pc} .align 2, 0 thumb_func_start sub_0806C39C sub_0806C39C: @ 0x0806C39C push {r4, r5, lr} adds r4, r0, #0 ldrb r5, [r4, #0xc] cmp r5, #1 beq _0806C3E2 cmp r5, #1 bgt _0806C3B0 cmp r5, #0 beq _0806C3B6 b _0806C450 _0806C3B0: cmp r5, #2 beq _0806C436 b _0806C450 _0806C3B6: adds r0, r4, #0 bl sub_0806C454 cmp r0, #0 beq _0806C450 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldrb r0, [r4, #0xe] strb r0, [r4, #0x14] adds r0, r4, #0 adds r0, #0x69 strb r5, [r0] adds r0, r4, #0 bl sub_0807DD50 b _0806C450 _0806C3E2: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _0806C420 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x69 strb r0, [r1] ldr r1, _0806C41C @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_0806F118 b _0806C450 .align 2, 0 _0806C41C: .4byte gUnk_03001160 _0806C420: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_08004274 b _0806C450 _0806C436: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _0806C450 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x69 ldrb r1, [r0] adds r0, r4, #0 bl sub_08004260 _0806C450: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0806C454 sub_0806C454: @ 0x0806C454 push {r4, lr} adds r4, r0, #0 ldr r1, _0806C470 @ =gUnk_08113754 bl sub_0806FDEC cmp r0, #0 beq _0806C474 adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 movs r0, #1 b _0806C476 .align 2, 0 _0806C470: .4byte gUnk_08113754 _0806C474: movs r0, #0 _0806C476: pop {r4, pc} thumb_func_start sub_0806C478 sub_0806C478: @ 0x0806C478 push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r0, [r0] movs r2, #0x7f ands r2, r0 adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 ldrb r2, [r4, #0x1e] adds r0, r4, #0 movs r1, #1 bl sub_0806FF60 adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r4, #0 bl sub_0807000C pop {r4, pc} thumb_func_start sub_0806C4A8 sub_0806C4A8: @ 0x0806C4A8 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 beq _0806C4D8 adds r0, r4, #0 bl sub_0806EDC4 adds r1, r0, #0 cmp r1, #0 bge _0806C4CC movs r1, #3 _0806C4CC: lsls r0, r1, #1 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_080042AC movs r0, #1 _0806C4D8: str r0, [r5, #0x14] pop {r4, r5, pc} thumb_func_start sub_0806C4DC sub_0806C4DC: @ 0x0806C4DC push {lr} ldr r1, _0806C4F0 @ =gUnk_02002A40 ldrb r1, [r1, #8] lsls r1, r1, #3 ldr r2, _0806C4F4 @ =gUnk_08113760 adds r1, r1, r2 bl sub_0806F1AC pop {pc} .align 2, 0 _0806C4F0: .4byte gUnk_02002A40 _0806C4F4: .4byte gUnk_08113760 thumb_func_start sub_0806C4F8 sub_0806C4F8: @ 0x0806C4F8 push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 pop {r4, pc} thumb_func_start sub_0806C510 sub_0806C510: @ 0x0806C510 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806C548 adds r0, r4, #0 bl sub_0806C454 cmp r0, #0 beq _0806C54E ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] ldrh r0, [r4, #0x32] subs r0, #4 strh r0, [r4, #0x32] adds r0, r4, #0 movs r1, #2 bl sub_08004260 b _0806C54E _0806C548: adds r0, r4, #0 bl sub_08004274 _0806C54E: pop {r4, pc} thumb_func_start sub_0806C550 sub_0806C550: @ 0x0806C550 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806C56E adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD50 b _0806C576 _0806C56E: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 _0806C576: pop {r4, pc} thumb_func_start sub_0806C578 sub_0806C578: @ 0x0806C578 push {lr} ldr r0, _0806C584 @ =gUnk_0813AD10 bl sub_08080840 pop {pc} .align 2, 0 _0806C584: .4byte gUnk_0813AD10 thumb_func_start sub_0806C588 sub_0806C588: @ 0x0806C588 push {lr} ldr r0, _0806C594 @ =gUnk_0813AD24 bl sub_08080840 pop {pc} .align 2, 0 _0806C594: .4byte gUnk_0813AD24 thumb_func_start sub_0806C598 sub_0806C598: @ 0x0806C598 push {lr} ldr r0, _0806C5A4 @ =gUnk_0813AD38 bl sub_08080840 pop {pc} .align 2, 0 _0806C5A4: .4byte gUnk_0813AD38 thumb_func_start sub_0806C5A8 sub_0806C5A8: @ 0x0806C5A8 push {r4, r5, lr} adds r5, r0, #0 ldrb r4, [r5, #0xc] cmp r4, #1 beq _0806C604 cmp r4, #1 bgt _0806C5BC cmp r4, #0 beq _0806C5C2 b _0806C670 _0806C5BC: cmp r4, #2 beq _0806C656 b _0806C670 _0806C5C2: ldrb r1, [r5, #0xa] lsls r1, r1, #4 ldr r0, _0806C600 @ =gUnk_08113910 adds r1, r1, r0 adds r0, r5, #0 bl sub_0806FDEC cmp r0, #0 beq _0806C670 movs r2, #1 movs r0, #1 strb r0, [r5, #0xc] ldrb r1, [r5, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r5, #0x18] ldrb r0, [r5, #0xe] strb r0, [r5, #0x14] adds r0, r5, #0 adds r0, #0x69 strb r4, [r0] adds r0, r5, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r5, #0 bl sub_0807DD50 b _0806C670 .align 2, 0 _0806C600: .4byte gUnk_08113910 _0806C604: adds r2, r5, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _0806C64C movs r0, #0 strb r1, [r5, #0xc] strb r0, [r2] adds r4, r5, #0 adds r4, #0x58 ldrb r0, [r4] adds r1, r5, #0 adds r1, #0x69 strb r0, [r1] ldr r1, _0806C648 @ =gUnk_03001160 adds r0, r5, #0 bl sub_080045C4 bl sub_0806F5A4 ldrb r1, [r4] movs r2, #4 rsbs r2, r2, #0 ands r1, r2 adds r1, r1, r0 adds r0, r5, #0 bl sub_08004260 adds r0, r5, #0 bl sub_0806F118 b _0806C670 .align 2, 0 _0806C648: .4byte gUnk_03001160 _0806C64C: adds r0, r5, #0 movs r1, #0 bl sub_0807DD94 b _0806C670 _0806C656: adds r0, r5, #0 bl sub_0806F148 cmp r0, #0 beq _0806C670 movs r0, #1 strb r0, [r5, #0xc] adds r0, r5, #0 adds r0, #0x69 ldrb r1, [r0] adds r0, r5, #0 bl sub_08004260 _0806C670: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0806C674 sub_0806C674: @ 0x0806C674 push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 pop {r4, pc} thumb_func_start sub_0806C68C sub_0806C68C: @ 0x0806C68C push {r4, r5, r6, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r2, [r0] movs r0, #0x81 rsbs r0, r0, #0 ands r2, r0 ldrb r6, [r4, #0x1e] adds r0, r4, #0 adds r0, #0x5b ldrb r0, [r0] movs r5, #0x3f ands r5, r0 ldrb r0, [r4, #0xa] cmp r0, #0 bne _0806C6D2 adds r2, #3 adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 adds r0, r4, #0 movs r1, #1 adds r2, r6, #0 bl sub_0806FF60 adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r4, #0 bl sub_0807000C b _0806C70A _0806C6D2: adds r2, #6 adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 adds r2, r5, #3 adds r0, r4, #0 movs r1, #1 bl sub_0806FF60 adds r0, r4, #0 movs r1, #2 adds r2, r6, #0 bl sub_0806FF60 adds r0, r4, #0 movs r1, #2 movs r2, #1 bl sub_0806FF88 adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_0806FFD8 adds r0, r4, #0 bl sub_0807000C _0806C70A: pop {r4, r5, r6, pc} thumb_func_start sub_0806C70C sub_0806C70C: @ 0x0806C70C push {lr} adds r3, r0, #0 ldr r0, _0806C730 @ =gUnk_02002A40 ldrb r0, [r0, #8] subs r0, #2 cmp r0, #0 bge _0806C71C movs r0, #0 _0806C71C: ldrb r1, [r3, #0xa] lsls r1, r1, #6 lsls r0, r0, #3 ldr r2, _0806C734 @ =gUnk_08113930 adds r0, r0, r2 adds r1, r1, r0 adds r0, r3, #0 bl sub_0806F1AC pop {pc} .align 2, 0 _0806C730: .4byte gUnk_02002A40 _0806C734: .4byte gUnk_08113930 thumb_func_start sub_0806C738 sub_0806C738: @ 0x0806C738 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806C778 ldrb r1, [r4, #0xa] lsls r1, r1, #4 ldr r0, _0806C774 @ =gUnk_08113910 adds r1, r1, r0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806C77E ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 bl sub_08004260 b _0806C77E .align 2, 0 _0806C774: .4byte gUnk_08113910 _0806C778: adds r0, r4, #0 bl sub_08004274 _0806C77E: pop {r4, pc} thumb_func_start sub_0806C780 sub_0806C780: @ 0x0806C780 push {lr} ldr r2, _0806C794 @ =gUnk_08113A7C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0806C794: .4byte gUnk_08113A7C thumb_func_start sub_0806C798 sub_0806C798: @ 0x0806C798 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xa] lsls r1, r1, #4 ldr r0, _0806C7D0 @ =gUnk_08113A1C adds r1, r1, r0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806C7CE movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldrb r0, [r4, #0xe] strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_0807DD50 adds r0, r4, #0 bl sub_0806C7D4 _0806C7CE: pop {r4, pc} .align 2, 0 _0806C7D0: .4byte gUnk_08113A1C thumb_func_start sub_0806C7D4 sub_0806C7D4: @ 0x0806C7D4 push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x39 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 bne _0806C7F4 movs r1, #0 movs r0, #3 strb r0, [r4, #0xc] strb r1, [r2] adds r0, r4, #0 bl sub_0806F118 b _0806C82C _0806C7F4: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 ldrb r0, [r4, #0xb] cmp r0, #3 bne _0806C82C movs r0, #0x58 bl sub_0807CC30 cmp r0, #0 bne _0806C82C movs r0, #0x63 bl sub_0807CBD0 cmp r0, #0 beq _0806C82C movs r0, #0 bl sub_0807CC3C cmp r0, #0 beq _0806C82C movs r0, #7 strb r0, [r4, #0xb] ldr r1, _0806C830 @ =gUnk_08014A80 adds r0, r4, #0 bl sub_0807DD80 _0806C82C: pop {r4, pc} .align 2, 0 _0806C830: .4byte gUnk_08014A80 thumb_func_start sub_0806C834 sub_0806C834: @ 0x0806C834 push {lr} adds r2, r0, #0 ldr r0, _0806C858 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _0806C856 ldrb r0, [r2, #0xc] subs r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x14] lsrs r1, r1, #1 adds r1, #4 adds r0, r2, #0 bl sub_08004260 _0806C856: pop {pc} .align 2, 0 _0806C858: .4byte gUnk_02000050 thumb_func_start sub_0806C85C sub_0806C85C: @ 0x0806C85C push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _0806C86C movs r0, #1 strb r0, [r4, #0xc] _0806C86C: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806C870 sub_0806C870: @ 0x0806C870 push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 pop {r4, pc} thumb_func_start sub_0806C888 sub_0806C888: @ 0x0806C888 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r7, #0x3f ands r7, r1 ldrb r0, [r4, #0xa] cmp r0, #4 bne _0806C8D4 adds r0, r4, #0 movs r1, #0 movs r2, #9 bl sub_0806FF60 adds r0, r4, #0 movs r1, #1 adds r2, r7, #0 bl sub_0806FF60 ldrb r2, [r4, #0x1e] adds r0, r4, #0 movs r1, #2 bl sub_0806FF60 adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_0806FFD8 adds r0, r4, #0 movs r1, #2 movs r2, #1 bl sub_0806FF88 adds r0, r4, #0 bl sub_0807000C b _0806C90A _0806C8D4: movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _0806C8E2 movs r6, #1 movs r5, #0 b _0806C8E6 _0806C8E2: movs r6, #0 movs r5, #1 _0806C8E6: adds r0, r4, #0 adds r1, r6, #0 adds r2, r7, #0 bl sub_0806FF60 ldrb r2, [r4, #0x1e] adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FF60 adds r0, r4, #0 adds r1, r5, #0 adds r2, r6, #0 bl sub_0806FF88 adds r0, r4, #0 bl sub_0807000C _0806C90A: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0806C90C sub_0806C90C: @ 0x0806C90C push {lr} movs r2, #0 str r2, [r1, #0x14] ldr r3, _0806C924 @ =gUnk_08113A8C ldrb r2, [r0, #0xb] lsls r2, r2, #2 adds r2, r2, r3 ldr r2, [r2] bl _call_via_r2 pop {pc} .align 2, 0 _0806C924: .4byte gUnk_08113A8C thumb_func_start sub_0806C928 sub_0806C928: @ 0x0806C928 push {lr} ldr r1, _0806C93C @ =gUnk_02002A40 ldrb r1, [r1, #8] lsls r1, r1, #3 ldr r2, _0806C940 @ =gUnk_08113ABC adds r1, r1, r2 bl sub_0806F1AC pop {pc} .align 2, 0 _0806C93C: .4byte gUnk_02002A40 _0806C940: .4byte gUnk_08113ABC thumb_func_start sub_0806C944 sub_0806C944: @ 0x0806C944 push {r4, lr} adds r4, r0, #0 movs r0, #0x58 bl sub_0807CC30 cmp r0, #0 bne _0806C956 movs r1, #0 b _0806C964 _0806C956: movs r0, #0x63 bl sub_0807CBD0 movs r1, #2 cmp r0, #0 beq _0806C964 movs r1, #1 _0806C964: ldr r0, _0806C974 @ =gUnk_08113B0C lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 bl sub_08056398 pop {r4, pc} .align 2, 0 _0806C974: .4byte gUnk_08113B0C thumb_func_start sub_0806C978 sub_0806C978: @ 0x0806C978 push {r4, lr} adds r4, r0, #0 movs r0, #0x58 bl sub_0807CC30 rsbs r1, r0, #0 orrs r1, r0 lsrs r1, r1, #0x1f ldr r0, _0806C998 @ =gUnk_08113B12 lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 bl sub_08056398 pop {r4, pc} .align 2, 0 _0806C998: .4byte gUnk_08113B12 thumb_func_start sub_0806C99C sub_0806C99C: @ 0x0806C99C push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x58 bl sub_0807CC30 rsbs r1, r0, #0 orrs r1, r0 asrs r4, r1, #0x1f movs r0, #2 ands r4, r0 movs r0, #0x63 bl sub_0807CBD0 cmp r0, #0 beq _0806C9BC adds r4, #1 _0806C9BC: ldr r0, _0806C9CC @ =gUnk_08113B16 lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 bl sub_08056398 pop {r4, r5, pc} .align 2, 0 _0806C9CC: .4byte gUnk_08113B16 thumb_func_start sub_0806C9D0 sub_0806C9D0: @ 0x0806C9D0 push {r4, r5, lr} adds r5, r0, #0 movs r4, #0 movs r0, #0x64 bl sub_0807CBD0 cmp r0, #0 bne _0806C9E2 movs r4, #1 _0806C9E2: ldr r0, _0806C9F4 @ =gUnk_08113B1E lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 bl sub_08056398 pop {r4, r5, pc} .align 2, 0 _0806C9F4: .4byte gUnk_08113B1E thumb_func_start sub_0806C9F8 sub_0806C9F8: @ 0x0806C9F8 push {r4, lr} adds r4, r0, #0 movs r0, #0x58 bl sub_0807CC30 rsbs r1, r0, #0 orrs r1, r0 lsrs r1, r1, #0x1f ldr r0, _0806CA18 @ =gUnk_08113B22 lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 bl sub_08056398 pop {r4, pc} .align 2, 0 _0806CA18: .4byte gUnk_08113B22 thumb_func_start sub_0806CA1C sub_0806CA1C: @ 0x0806CA1C push {lr} adds r1, r0, #0 ldr r0, _0806CA28 @ =0x0000251B bl sub_08056398 pop {pc} .align 2, 0 _0806CA28: .4byte 0x0000251B thumb_func_start sub_0806CA2C sub_0806CA2C: @ 0x0806CA2C push {lr} adds r1, r0, #0 ldr r0, _0806CA38 @ =0x00002527 bl sub_08056398 pop {pc} .align 2, 0 _0806CA38: .4byte 0x00002527 thumb_func_start sub_0806CA3C sub_0806CA3C: @ 0x0806CA3C push {lr} ldr r1, _0806CA48 @ =gUnk_08113B28 bl sub_0806F1AC pop {pc} .align 2, 0 _0806CA48: .4byte gUnk_08113B28 thumb_func_start sub_0806CA4C sub_0806CA4C: @ 0x0806CA4C push {lr} ldr r1, _0806CA58 @ =gUnk_08113B30 bl sub_0806F1AC pop {pc} .align 2, 0 _0806CA58: .4byte gUnk_08113B30 thumb_func_start sub_0806CA5C sub_0806CA5C: @ 0x0806CA5C push {r4, lr} adds r4, r1, #0 ldr r3, _0806CA8C @ =gUnk_08113B38 ldrb r1, [r4, #0x18] adds r2, r1, #1 strb r2, [r4, #0x18] lsls r1, r1, #0x18 lsrs r1, r1, #0x18 adds r1, r1, r3 ldrb r1, [r1] strh r1, [r4, #0x10] ldrb r0, [r0, #0xb] cmp r0, #0xa bne _0806CA7E movs r0, #0xe8 bl sub_08004488 _0806CA7E: ldrh r0, [r4, #0x10] cmp r0, #0 beq _0806CA8A ldr r1, _0806CA90 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0806CA8A: pop {r4, pc} .align 2, 0 _0806CA8C: .4byte gUnk_08113B38 _0806CA90: .4byte gUnk_02033280 thumb_func_start sub_0806CA94 sub_0806CA94: @ 0x0806CA94 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806CAD4 ldrb r1, [r4, #0xa] lsls r1, r1, #4 ldr r0, _0806CAD0 @ =gUnk_08113A1C adds r1, r1, r0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806CADA ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #6 bl sub_08004260 b _0806CADA .align 2, 0 _0806CAD0: .4byte gUnk_08113A1C _0806CAD4: adds r0, r4, #0 bl sub_08004274 _0806CADA: pop {r4, pc} thumb_func_start sub_0806CADC sub_0806CADC: @ 0x0806CADC push {lr} ldr r2, _0806CAF0 @ =gUnk_08113D8C ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0806CAF0: .4byte gUnk_08113D8C thumb_func_start sub_0806CAF4 sub_0806CAF4: @ 0x0806CAF4 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xc] cmp r0, #0 bne _0806CB66 adds r0, #1 strb r0, [r5, #0xc] adds r0, r5, #0 movs r1, #2 bl sub_0805E3A0 movs r0, #0x4a movs r1, #1 movs r2, #0 bl sub_0806ED50 adds r4, r0, #0 cmp r4, #0 beq _0806CB2C str r5, [r4, #0x50] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FAD8 _0806CB2C: movs r0, #0x4a movs r1, #2 movs r2, #0 bl sub_0806ED50 adds r4, r0, #0 cmp r4, #0 beq _0806CB4E str r5, [r4, #0x50] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FAB0 _0806CB4E: adds r0, r5, #0 bl sub_0807DD64 adds r0, r5, #0 bl sub_08078778 ldr r3, _0806CB7C @ =gUnk_08113D84 ldrb r2, [r3, #4] adds r0, r5, #0 movs r1, #1 bl sub_08078850 _0806CB66: adds r0, r5, #0 movs r1, #0 bl sub_0807DDAC adds r0, r5, #0 bl sub_0807DDE4 adds r0, r5, #0 bl sub_08004274 pop {r4, r5, pc} .align 2, 0 _0806CB7C: .4byte gUnk_08113D84 thumb_func_start sub_0806CB80 sub_0806CB80: @ 0x0806CB80 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r1, r0, #0 cmp r1, #0 bne _0806CB9E adds r0, #1 strb r0, [r4, #0xc] movs r0, #2 strb r0, [r4, #0x14] strb r1, [r4, #0x1e] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 _0806CB9E: ldr r0, [r4, #0x50] cmp r0, #0 beq _0806CBB0 adds r0, #0x5a ldrb r1, [r0] movs r0, #3 ands r0, r1 adds r0, #0x21 strb r0, [r4, #0x1e] _0806CBB0: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806CBB4 sub_0806CBB4: @ 0x0806CBB4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806CBD6 adds r0, #1 strb r0, [r4, #0xc] movs r0, #2 strb r0, [r4, #0x14] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 movs r1, #0x11 bl sub_08004260 _0806CBD6: adds r0, r4, #0 bl sub_08004274 ldr r1, [r4, #0x50] cmp r1, #0 beq _0806CC06 ldrb r0, [r4, #0x18] movs r3, #4 rsbs r3, r3, #0 adds r2, r3, #0 ands r2, r0 strb r2, [r4, #0x18] adds r0, r1, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #4 ands r0, r1 cmp r0, #0 beq _0806CC06 adds r0, r2, #0 ands r0, r3 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] _0806CC06: pop {r4, pc} thumb_func_start sub_0806CC08 sub_0806CC08: @ 0x0806CC08 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _0806CC40 cmp r0, #1 bgt _0806CC1C cmp r0, #0 beq _0806CC22 b _0806CCB0 _0806CC1C: cmp r0, #2 beq _0806CC96 b _0806CCB0 _0806CC22: movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD64 _0806CC40: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _0806CC80 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x69 strb r0, [r1] ldr r1, _0806CC7C @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r1, #8 adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 bl sub_0806F118 b _0806CCB0 .align 2, 0 _0806CC7C: .4byte gUnk_03001160 _0806CC80: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_08004274 b _0806CCB0 _0806CC96: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _0806CCB0 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x69 ldrb r1, [r0] adds r0, r4, #0 bl sub_080042AC _0806CCB0: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806CCB4 sub_0806CCB4: @ 0x0806CCB4 push {lr} adds r2, r1, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 beq _0806CCCA movs r0, #1 _0806CCCA: str r0, [r2, #0x14] pop {pc} .align 2, 0 thumb_func_start sub_0806CCD0 sub_0806CCD0: @ 0x0806CCD0 push {r4, lr} adds r3, r0, #0 adds r4, r1, #0 adds r0, #0x5b ldrb r0, [r0] movs r2, #0x3f ands r2, r0 cmp r2, #0 beq _0806CCF4 ldrb r1, [r3, #0x14] lsrs r1, r1, #1 adds r1, r2, r1 adds r0, r3, #0 bl sub_08004260 movs r0, #1 str r0, [r4, #0x14] b _0806CCF6 _0806CCF4: str r2, [r4, #0x14] _0806CCF6: pop {r4, pc} thumb_func_start sub_0806CCF8 sub_0806CCF8: @ 0x0806CCF8 push {lr} movs r1, #0x85 lsls r1, r1, #1 bl sub_0801D2B4 pop {pc} thumb_func_start sub_0806CD04 sub_0806CD04: @ 0x0806CD04 push {lr} ldr r1, _0806CD10 @ =0x0000010B bl sub_0801D2B4 pop {pc} .align 2, 0 _0806CD10: .4byte 0x0000010B thumb_func_start sub_0806CD14 sub_0806CD14: @ 0x0806CD14 push {lr} movs r1, #0x86 lsls r1, r1, #1 bl sub_0801D2B4 pop {pc} thumb_func_start sub_0806CD20 sub_0806CD20: @ 0x0806CD20 push {lr} ldr r1, _0806CD2C @ =0x0000010D bl sub_0801D2B4 pop {pc} .align 2, 0 _0806CD2C: .4byte 0x0000010D thumb_func_start sub_0806CD30 sub_0806CD30: @ 0x0806CD30 push {lr} movs r1, #0x87 lsls r1, r1, #1 bl sub_0801D2B4 pop {pc} thumb_func_start sub_0806CD3C sub_0806CD3C: @ 0x0806CD3C push {lr} ldr r1, _0806CD48 @ =0x0000010F bl sub_0801D2B4 pop {pc} .align 2, 0 _0806CD48: .4byte 0x0000010F thumb_func_start sub_0806CD4C sub_0806CD4C: @ 0x0806CD4C push {lr} movs r1, #0x88 lsls r1, r1, #1 bl sub_0801D2B4 pop {pc} thumb_func_start sub_0806CD58 sub_0806CD58: @ 0x0806CD58 push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 pop {r4, pc} thumb_func_start sub_0806CD70 sub_0806CD70: @ 0x0806CD70 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806CD9E adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 movs r1, #6 bl sub_080042AC b _0806CDA4 _0806CD9E: adds r0, r4, #0 bl sub_080042B8 _0806CDA4: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806CDA8 sub_0806CDA8: @ 0x0806CDA8 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xc] cmp r1, #1 beq _0806CDE8 cmp r1, #1 bgt _0806CDBC cmp r1, #0 beq _0806CDC2 b _0806CE58 _0806CDBC: cmp r1, #2 beq _0806CE3E b _0806CE58 _0806CDC2: movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x69 strb r1, [r0] adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD50 b _0806CE58 _0806CDE8: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _0806CE28 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x69 strb r0, [r1] ldr r1, _0806CE24 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r1, #4 adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 bl sub_0806F118 b _0806CE58 .align 2, 0 _0806CE24: .4byte gUnk_03001160 _0806CE28: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_080042B8 b _0806CE58 _0806CE3E: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _0806CE58 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x69 ldrb r1, [r0] adds r0, r4, #0 bl sub_080042AC _0806CE58: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806CE5C sub_0806CE5C: @ 0x0806CE5C push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r0, #0 adds r0, r4, #0 bl sub_08078784 ldr r3, _0806CE7C @ =gUnk_08113F44 adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_08078850 pop {r4, pc} .align 2, 0 _0806CE7C: .4byte gUnk_08113F44 thumb_func_start sub_0806CE80 sub_0806CE80: @ 0x0806CE80 push {r4, r5, lr} adds r5, r0, #0 ldr r0, _0806CEB4 @ =gUnk_02002A40 ldrb r4, [r0, #8] cmp r4, #5 bne _0806CED6 movs r0, #0x46 bl sub_0807CA84 cmp r0, #0 bne _0806CEC0 movs r0, #0x70 bl sub_0807CBD0 cmp r0, #0 beq _0806CEBC movs r0, #0x71 bl sub_0807CBD0 cmp r0, #0 bne _0806CEB8 movs r4, #0xb movs r0, #0x71 bl sub_0807CCB4 b _0806CED6 .align 2, 0 _0806CEB4: .4byte gUnk_02002A40 _0806CEB8: movs r4, #0xc b _0806CED6 _0806CEBC: movs r4, #0xa b _0806CED6 _0806CEC0: movs r0, #0x89 bl sub_0807CBD0 cmp r0, #0 bne _0806CED4 movs r4, #0xd movs r0, #0x89 bl sub_0807CCB4 b _0806CED6 _0806CED4: movs r4, #0xe _0806CED6: lsls r1, r4, #3 ldr r0, _0806CEE4 @ =gUnk_08113F48 adds r1, r1, r0 adds r0, r5, #0 bl sub_0806F1AC pop {r4, r5, pc} .align 2, 0 _0806CEE4: .4byte gUnk_08113F48 thumb_func_start sub_0806CEE8 sub_0806CEE8: @ 0x0806CEE8 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _0806CF0E adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 movs r1, #8 bl sub_080042AC b _0806CF14 _0806CF0E: adds r0, r2, #0 bl sub_080042B8 _0806CF14: pop {pc} .align 2, 0 thumb_func_start sub_0806CF18 sub_0806CF18: @ 0x0806CF18 push {lr} ldr r2, _0806CF2C @ =gUnk_081140D4 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0806CF2C: .4byte gUnk_081140D4 thumb_func_start sub_0806CF30 sub_0806CF30: @ 0x0806CF30 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xc] cmp r0, #0 bne _0806CF5E movs r0, #1 strb r0, [r5, #0xc] strb r0, [r5, #0xd] ldrh r1, [r5, #0x2e] adds r0, r5, #0 adds r0, #0x68 strh r1, [r0] adds r0, r5, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r5, #0 bl sub_0806D0B0 adds r0, r5, #0 bl sub_0807DD64 b _0806CF6C _0806CF5E: adds r0, r5, #0 movs r1, #0 bl sub_0807DDAC adds r0, r5, #0 bl sub_0807DDE4 _0806CF6C: ldrb r0, [r5, #0xd] cmp r0, #2 beq _0806CFD4 cmp r0, #2 bgt _0806D000 cmp r0, #0 blt _0806D000 ldr r0, _0806CFCC @ =gUnk_030010A0 ldr r0, [r0] movs r1, #3 ands r0, r1 cmp r0, #0 bne _0806D000 ldr r0, _0806CFD0 @ =gUnk_03001160 movs r1, #0x2e ldrsh r2, [r0, r1] ldrh r3, [r5, #0x2e] movs r4, #0x2e ldrsh r1, [r5, r4] adds r4, r0, #0 cmp r2, r1 bge _0806CFA8 adds r0, r5, #0 adds r0, #0x68 ldrh r0, [r0] subs r0, #0x20 cmp r0, r1 bge _0806CFA8 subs r0, r3, #1 strh r0, [r5, #0x2e] _0806CFA8: movs r3, #0x2e ldrsh r1, [r4, r3] ldrh r2, [r5, #0x2e] movs r4, #0x2e ldrsh r0, [r5, r4] cmp r1, r0 ble _0806D000 adds r0, r5, #0 adds r0, #0x68 ldrh r0, [r0] adds r0, #0x20 movs r3, #0x2e ldrsh r1, [r5, r3] cmp r0, r1 ble _0806D000 adds r0, r2, #1 strh r0, [r5, #0x2e] b _0806D000 .align 2, 0 _0806CFCC: .4byte gUnk_030010A0 _0806CFD0: .4byte gUnk_03001160 _0806CFD4: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0806D000 bl sub_08000E50 adds r4, r0, #0 ldr r1, _0806D008 @ =gUnk_081140CC movs r0, #3 ands r0, r4 lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] bl sub_080A3268 movs r0, #7 ands r4, r0 lsls r4, r4, #4 adds r4, #0x80 strb r4, [r5, #0xe] _0806D000: adds r0, r5, #0 bl sub_0806D02C pop {r4, r5, pc} .align 2, 0 _0806D008: .4byte gUnk_081140CC thumb_func_start sub_0806D00C sub_0806D00C: @ 0x0806D00C push {r4, lr} sub sp, #4 adds r4, r0, #0 movs r0, #0 str r0, [sp] movs r0, #7 movs r1, #0x4c movs r2, #7 movs r3, #0 bl sub_0805EB2C cmp r0, #0 beq _0806D028 str r0, [r4, #0x50] _0806D028: add sp, #4 pop {r4, pc} thumb_func_start sub_0806D02C sub_0806D02C: @ 0x0806D02C push {lr} bl sub_0806D164 ldr r2, _0806D0A8 @ =gUnk_03000F50 ldrh r1, [r2] movs r3, #0x80 lsls r3, r3, #7 adds r0, r3, #0 orrs r0, r1 strh r0, [r2] adds r1, r2, #0 adds r1, #0x60 ldr r0, _0806D0AC @ =0x00003F3F strh r0, [r1] adds r1, #2 movs r0, #0x3d strh r0, [r1] movs r1, #0x16 ldrsh r0, [r2, r1] rsbs r0, r0, #0 movs r3, #0x80 lsls r3, r3, #1 adds r1, r0, r3 cmp r0, #0 bge _0806D060 movs r0, #0 _0806D060: cmp r0, #0xf0 ble _0806D066 movs r0, #0xf0 _0806D066: cmp r1, #0 bge _0806D06C movs r1, #0 _0806D06C: cmp r1, #0xf0 ble _0806D072 movs r1, #0xf0 _0806D072: lsls r0, r0, #8 orrs r0, r1 adds r1, r2, #0 adds r1, #0x5a strh r0, [r1] movs r1, #0x18 ldrsh r0, [r2, r1] rsbs r0, r0, #0 adds r1, r0, r3 cmp r0, #0 bge _0806D08A movs r0, #0 _0806D08A: cmp r0, #0xa0 ble _0806D090 movs r0, #0xa0 _0806D090: cmp r1, #0 bge _0806D096 movs r1, #0 _0806D096: cmp r1, #0xa0 ble _0806D09C movs r1, #0xa0 _0806D09C: lsls r0, r0, #8 orrs r0, r1 adds r1, r2, #0 adds r1, #0x5e strh r0, [r1] pop {pc} .align 2, 0 _0806D0A8: .4byte gUnk_03000F50 _0806D0AC: .4byte 0x00003F3F thumb_func_start sub_0806D0B0 sub_0806D0B0: @ 0x0806D0B0 push {r4, r5, lr} adds r4, r0, #0 ldr r0, _0806D0E8 @ =gUnk_0200B650 movs r1, #0 str r1, [r0] movs r0, #0x30 bl sub_0801D7EC bl sub_0806D110 ldr r5, _0806D0EC @ =gUnk_02002F00 movs r1, #0x80 lsls r1, r1, #6 adds r0, r5, #0 bl sub_0801D630 cmp r4, #0 beq _0806D0DA adds r0, r4, #0 bl sub_0806D164 _0806D0DA: ldr r0, _0806D0F0 @ =gUnk_03000F50 ldr r1, _0806D0F4 @ =0x00001D47 strh r1, [r0, #0x14] str r5, [r0, #0x1c] movs r1, #1 strh r1, [r0, #0x1a] pop {r4, r5, pc} .align 2, 0 _0806D0E8: .4byte gUnk_0200B650 _0806D0EC: .4byte gUnk_02002F00 _0806D0F0: .4byte gUnk_03000F50 _0806D0F4: .4byte 0x00001D47 thumb_func_start sub_0806D0F8 sub_0806D0F8: @ 0x0806D0F8 push {lr} movs r0, #7 movs r1, #0x4c movs r2, #7 bl sub_0805EB00 cmp r0, #0 beq _0806D10C bl sub_0806D0B0 _0806D10C: pop {pc} .align 2, 0 thumb_func_start sub_0806D110 sub_0806D110: @ 0x0806D110 push {r4, r5, lr} ldr r4, _0806D134 @ =gUnk_02002F00 movs r0, #0x80 lsls r0, r0, #7 adds r5, r4, r0 adds r0, r4, #0 adds r1, r5, #0 bl sub_0806D138 movs r0, #0x80 lsls r0, r0, #4 adds r4, r4, r0 adds r5, #0x40 adds r0, r4, #0 adds r1, r5, #0 bl sub_0806D138 pop {r4, r5, pc} .align 2, 0 _0806D134: .4byte gUnk_02002F00 thumb_func_start sub_0806D138 sub_0806D138: @ 0x0806D138 push {r4, r5, r6, lr} adds r3, r0, #0 movs r4, #0 ldr r2, _0806D15C @ =0x040000D4 ldr r6, _0806D160 @ =0x80000020 movs r5, #0x80 lsls r5, r5, #1 _0806D146: str r3, [r2] str r1, [r2, #4] str r6, [r2, #8] ldr r0, [r2, #8] adds r4, #1 adds r3, #0x40 adds r1, r1, r5 cmp r4, #0x1f bls _0806D146 pop {r4, r5, r6, pc} .align 2, 0 _0806D15C: .4byte 0x040000D4 _0806D160: .4byte 0x80000020 thumb_func_start sub_0806D164 sub_0806D164: @ 0x0806D164 push {r4, r5, r6, r7, lr} ldr r5, _0806D1B8 @ =gUnk_03000BF0 movs r1, #0xa ldrsh r2, [r5, r1] movs r3, #0x2e ldrsh r1, [r0, r3] subs r2, r2, r1 adds r2, #0xa0 ldr r4, _0806D1BC @ =gUnk_03000F50 movs r3, #0xf adds r1, r2, #0 ands r1, r3 strh r1, [r4, #0x16] ldrh r1, [r5, #0xc] ldrh r0, [r0, #0x32] subs r1, r1, r0 adds r1, #0xb0 strh r1, [r4, #0x18] ldr r3, _0806D1C0 @ =gUnk_02006F00 ldr r0, _0806D1C4 @ =0xFFFFC000 adds r6, r3, r0 movs r5, #0x20 lsrs r2, r2, #4 lsls r2, r2, #2 adds r3, r2, r3 adds r7, r4, #0 ldr r1, _0806D1C8 @ =0x040000D4 ldr r4, _0806D1CC @ =0x80000020 movs r2, #0x80 lsls r2, r2, #1 _0806D1A0: str r3, [r1] str r6, [r1, #4] str r4, [r1, #8] ldr r0, [r1, #8] adds r3, r3, r2 adds r6, #0x40 subs r5, #1 cmp r5, #0 bne _0806D1A0 movs r0, #1 strh r0, [r7, #0x1a] pop {r4, r5, r6, r7, pc} .align 2, 0 _0806D1B8: .4byte gUnk_03000BF0 _0806D1BC: .4byte gUnk_03000F50 _0806D1C0: .4byte gUnk_02006F00 _0806D1C4: .4byte 0xFFFFC000 _0806D1C8: .4byte 0x040000D4 _0806D1CC: .4byte 0x80000020 thumb_func_start sub_0806D1D0 sub_0806D1D0: @ 0x0806D1D0 push {r4, r5, lr} adds r4, r0, #0 ldrb r5, [r4, #0xc] cmp r5, #0 bne _0806D21A bl sub_0806D00C cmp r0, #0 bne _0806D1E6 bl sub_0805E780 _0806D1E6: movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0x1b] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x1b] ldrb r0, [r4, #0x19] orrs r0, r1 strb r0, [r4, #0x19] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] ldrb r0, [r4, #0x18] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x18] strb r5, [r4, #0x1e] movs r0, #0x1e strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 _0806D21A: ldrb r0, [r4, #0xd] cmp r0, #1 beq _0806D25A cmp r0, #1 ble _0806D228 cmp r0, #2 beq _0806D25E _0806D228: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r5, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _0806D24A bl sub_08000E50 movs r1, #0x7f ands r0, r1 adds r0, #0x30 strb r0, [r4, #0xe] movs r0, #8 strb r0, [r4, #0xf] movs r0, #1 strb r0, [r4, #0x1e] _0806D24A: ldrb r0, [r4, #0xf] cmp r0, #0 beq _0806D268 subs r0, #1 strb r0, [r4, #0xf] ands r0, r5 cmp r0, #0 bne _0806D268 _0806D25A: strb r0, [r4, #0x1e] b _0806D268 _0806D25E: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] _0806D268: ldr r0, [r4, #0x50] ldrh r1, [r0, #0x2e] strh r1, [r4, #0x2e] ldrh r0, [r0, #0x32] strh r0, [r4, #0x32] pop {r4, r5, pc} thumb_func_start sub_0806D274 sub_0806D274: @ 0x0806D274 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806D2CA adds r0, r4, #0 bl sub_0806D00C cmp r0, #0 bne _0806D28C bl sub_0805E780 _0806D28C: movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0x1b] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x1b] ldrb r0, [r4, #0x19] orrs r0, r1 strb r0, [r4, #0x19] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] movs r0, #2 strb r0, [r4, #0x1e] movs r0, #8 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 movs r0, #0x4c movs r1, #3 movs r2, #0 bl sub_0806ED50 cmp r0, #0 beq _0806D2CA str r4, [r0, #0x54] _0806D2CA: ldrb r0, [r4, #0xd] cmp r0, #4 bhi _0806D2F4 lsls r0, r0, #2 ldr r1, _0806D2DC @ =_0806D2E0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806D2DC: .4byte _0806D2E0 _0806D2E0: @ jump table .4byte _0806D2F4 @ case 0 .4byte _0806D2F4 @ case 1 .4byte _0806D31C @ case 2 .4byte _0806D334 @ case 3 .4byte _0806D338 @ case 4 _0806D2F4: ldr r0, _0806D318 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 beq _0806D338 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0806D33C movs r0, #8 strb r0, [r4, #0xe] ldrb r0, [r4, #0x1e] movs r1, #1 eors r0, r1 b _0806D33A .align 2, 0 _0806D318: .4byte gUnk_02000050 _0806D31C: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0806D33C movs r0, #8 strb r0, [r4, #0xe] ldrb r0, [r4, #0x1e] movs r1, #1 eors r0, r1 b _0806D33A _0806D334: movs r0, #4 b _0806D33A _0806D338: movs r0, #2 _0806D33A: strb r0, [r4, #0x1e] _0806D33C: ldr r0, [r4, #0x50] ldrh r1, [r0, #0x2e] strh r1, [r4, #0x2e] ldrh r0, [r0, #0x32] strh r0, [r4, #0x32] pop {r4, pc} thumb_func_start sub_0806D348 sub_0806D348: @ 0x0806D348 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806D39A adds r0, r4, #0 bl sub_0806D00C cmp r0, #0 bne _0806D360 bl sub_0805E780 _0806D360: movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0x1b] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x1b] ldrb r0, [r4, #0x19] orrs r0, r1 strb r0, [r4, #0x19] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] movs r0, #5 strb r0, [r4, #0x1e] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 _0806D39A: ldr r0, [r4, #0x54] ldrb r0, [r0, #0x1e] cmp r0, #4 bne _0806D3AA ldrb r0, [r4, #0x18] movs r1, #3 orrs r0, r1 b _0806D3B2 _0806D3AA: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 _0806D3B2: strb r0, [r4, #0x18] ldr r0, [r4, #0x50] ldrh r1, [r0, #0x2e] strh r1, [r4, #0x2e] ldrh r0, [r0, #0x32] strh r0, [r4, #0x32] pop {r4, pc} thumb_func_start sub_0806D3C0 sub_0806D3C0: @ 0x0806D3C0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806D3F4 adds r0, r4, #0 bl sub_0806D00C cmp r0, #0 bne _0806D3D8 bl sub_0805E780 _0806D3D8: movs r0, #1 strb r0, [r4, #0xc] ldr r0, _0806D3F0 @ =gUnk_080FD180 str r0, [r4, #0x48] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD64 b _0806D408 .align 2, 0 _0806D3F0: .4byte gUnk_080FD180 _0806D3F4: ldr r0, [r4, #0x50] ldrh r0, [r0, #0x2e] strh r0, [r4, #0x2e] adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 _0806D408: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806D40C sub_0806D40C: @ 0x0806D40C push {lr} ldrb r1, [r0, #0x18] movs r2, #0x40 orrs r1, r2 strb r1, [r0, #0x18] bl sub_0806D41C pop {pc} thumb_func_start sub_0806D41C sub_0806D41C: @ 0x0806D41C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806D45E movs r0, #1 strb r0, [r4, #0xc] movs r0, #6 strb r0, [r4, #0x1e] adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 movs r1, #0 bl sub_0806D4C0 adds r0, r4, #0 movs r1, #1 bl sub_0806D4C0 adds r0, r4, #0 movs r1, #2 bl sub_0806D4C0 adds r0, r4, #0 movs r1, #3 bl sub_0806D4C0 adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 b _0806D46C _0806D45E: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 _0806D46C: ldr r0, _0806D4A8 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #1 ands r0, r1 cmp r0, #0 bne _0806D4BE movs r1, #0x2e ldrsh r0, [r4, r1] subs r0, #0x20 movs r2, #0x32 ldrsh r1, [r4, r2] movs r2, #0x40 movs r3, #0x40 bl sub_0806FBFC cmp r0, #0 beq _0806D4AC adds r2, r4, #0 adds r2, #0x63 ldrb r3, [r2] movs r1, #0 ldrsb r1, [r2, r1] movs r0, #8 rsbs r0, r0, #0 cmp r1, r0 ble _0806D4BE subs r0, r3, #1 strb r0, [r2] b _0806D4BE .align 2, 0 _0806D4A8: .4byte gUnk_030010A0 _0806D4AC: adds r1, r4, #0 adds r1, #0x63 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bge _0806D4BE adds r0, r2, #1 strb r0, [r1] _0806D4BE: pop {r4, pc} thumb_func_start sub_0806D4C0 sub_0806D4C0: @ 0x0806D4C0 push {r4, r5, lr} adds r5, r0, #0 adds r1, #6 movs r0, #0x4c movs r2, #0 bl sub_0806ED50 adds r4, r0, #0 cmp r4, #0 beq _0806D4EE str r5, [r4, #0x50] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FAB0 adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 _0806D4EE: pop {r4, r5, pc} thumb_func_start sub_0806D4F0 sub_0806D4F0: @ 0x0806D4F0 push {lr} movs r1, #0 bl sub_0806D520 pop {pc} .align 2, 0 thumb_func_start sub_0806D4FC sub_0806D4FC: @ 0x0806D4FC push {lr} movs r1, #1 bl sub_0806D520 pop {pc} .align 2, 0 thumb_func_start sub_0806D508 sub_0806D508: @ 0x0806D508 push {lr} movs r1, #2 bl sub_0806D520 pop {pc} .align 2, 0 thumb_func_start sub_0806D514 sub_0806D514: @ 0x0806D514 push {lr} movs r1, #3 bl sub_0806D520 pop {pc} .align 2, 0 thumb_func_start sub_0806D520 sub_0806D520: @ 0x0806D520 push {r4, lr} adds r4, r0, #0 adds r3, r1, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806D540 movs r0, #1 strb r0, [r4, #0xc] ldr r0, _0806D5B0 @ =gUnk_08114100 adds r0, r3, r0 ldrb r0, [r0] adds r0, #6 strb r0, [r4, #0xf] strb r0, [r4, #0x1e] movs r0, #8 strb r0, [r4, #0xe] _0806D540: ldr r0, [r4, #0x50] ldrh r1, [r0, #0x2e] strh r1, [r4, #0x2e] ldrh r1, [r0, #0x32] strh r1, [r4, #0x32] adds r0, #0x62 ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x62 strb r0, [r1] ldr r0, [r4, #0x50] adds r0, #0x63 ldrb r0, [r0] adds r1, #1 strb r0, [r1] ldr r0, [r4, #0x50] ldrb r1, [r0, #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] ldrb r0, [r4, #0xd] cmp r0, #0 bne _0806D590 movs r1, #0x2e ldrsh r0, [r4, r1] lsls r1, r3, #4 subs r0, r0, r1 adds r0, #0xc movs r2, #0x32 ldrsh r1, [r4, r2] movs r2, #0x18 movs r3, #0x40 bl sub_0806FBFC cmp r0, #0 beq _0806D5B4 _0806D590: ldrb r1, [r4, #0x1e] ldrb r0, [r4, #0xf] adds r0, #2 cmp r1, r0 bge _0806D5D0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0806D5D0 movs r0, #8 strb r0, [r4, #0xe] ldrb r0, [r4, #0x1e] adds r0, #1 b _0806D5CE .align 2, 0 _0806D5B0: .4byte gUnk_08114100 _0806D5B4: ldrb r1, [r4, #0x1e] ldrb r0, [r4, #0xf] cmp r1, r0 bls _0806D5D0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0806D5D0 movs r0, #8 strb r0, [r4, #0xe] subs r0, r1, #1 _0806D5CE: strb r0, [r4, #0x1e] _0806D5D0: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806D5D4 sub_0806D5D4: @ 0x0806D5D4 push {lr} bl sub_08053500 movs r0, #0xd bl sub_0805436C adds r1, r0, #0 cmp r1, #2 beq _0806D5F0 ldr r0, _0806D5FC @ =gUnk_02002A40 adds r0, #0xb4 adds r0, r1, r0 movs r1, #0 strb r1, [r0] _0806D5F0: movs r0, #0xd movs r1, #0 bl sub_0807CAA0 pop {pc} .align 2, 0 _0806D5FC: .4byte gUnk_02002A40 thumb_func_start sub_0806D600 sub_0806D600: @ 0x0806D600 push {lr} movs r2, #0 ldr r0, _0806D618 @ =gUnk_02002A40 ldr r3, _0806D61C @ =0x00000494 adds r0, r0, r3 ldr r0, [r0] cmp r0, #0 bne _0806D612 movs r2, #1 _0806D612: str r2, [r1, #0x14] pop {pc} .align 2, 0 _0806D618: .4byte gUnk_02002A40 _0806D61C: .4byte 0x00000494 thumb_func_start sub_0806D620 sub_0806D620: @ 0x0806D620 push {lr} movs r0, #0xd movs r1, #0 bl sub_0807CAA0 movs r0, #0xe movs r1, #0 movs r2, #0 bl sub_080A7C18 pop {pc} .align 2, 0 thumb_func_start sub_0806D638 sub_0806D638: @ 0x0806D638 ldrh r1, [r0, #0x32] subs r1, #0x20 strh r1, [r0, #0x32] bx lr thumb_func_start sub_0806D640 sub_0806D640: @ 0x0806D640 ldrh r1, [r0, #0x32] adds r1, #0x20 movs r2, #0 strh r1, [r0, #0x32] adds r0, #0x39 strb r2, [r0] bx lr .align 2, 0 thumb_func_start sub_0806D650 sub_0806D650: @ 0x0806D650 movs r1, #2 strb r1, [r0, #0xd] bx lr .align 2, 0 thumb_func_start sub_0806D658 sub_0806D658: @ 0x0806D658 ldr r1, [r1, #4] strb r1, [r0, #0xd] bx lr .align 2, 0 thumb_func_start sub_0806D660 sub_0806D660: @ 0x0806D660 ldrb r1, [r0, #0x1b] movs r2, #0xc0 orrs r1, r2 strb r1, [r0, #0x1b] bx lr .align 2, 0 thumb_func_start sub_0806D66C sub_0806D66C: @ 0x0806D66C ldrb r2, [r0, #0x1b] movs r1, #0x3f ands r1, r2 movs r2, #0x80 orrs r1, r2 strb r1, [r0, #0x1b] bx lr .align 2, 0 thumb_func_start sub_0806D67C sub_0806D67C: @ 0x0806D67C push {r4, r5, r6, lr} adds r5, r0, #0 ldr r4, _0806D6CC @ =gUnk_08114104 movs r0, #0 ldrsb r0, [r4, r0] movs r1, #1 rsbs r1, r1, #0 cmp r0, r1 beq _0806D6CA adds r6, r1, #0 _0806D690: movs r1, #0 ldrsb r1, [r4, r1] adds r0, r5, #0 movs r2, #0x40 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _0806D6C0 movs r0, #1 ldrsb r0, [r4, r0] ldrh r2, [r1, #0x2e] adds r0, r0, r2 strh r0, [r1, #0x2e] movs r0, #2 ldrsb r0, [r4, r0] ldrh r2, [r1, #0x32] adds r0, r0, r2 strh r0, [r1, #0x32] ldrb r0, [r4, #3] strb r0, [r1, #0x15] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r1, #0x24] _0806D6C0: adds r4, #4 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, r6 bne _0806D690 _0806D6CA: pop {r4, r5, r6, pc} .align 2, 0 _0806D6CC: .4byte gUnk_08114104 thumb_func_start sub_0806D6D0 sub_0806D6D0: @ 0x0806D6D0 push {r4, lr} sub sp, #4 movs r4, #0 str r4, [sp] movs r0, #7 movs r1, #0x4c movs r2, #7 movs r3, #2 bl sub_0805EB2C adds r1, r0, #0 cmp r1, #0 beq _0806D6EE movs r0, #2 strb r0, [r1, #0xd] _0806D6EE: str r4, [sp] movs r0, #7 movs r1, #0x4c movs r2, #7 movs r3, #1 bl sub_0805EB2C adds r1, r0, #0 cmp r1, #0 beq _0806D706 movs r0, #1 strb r0, [r1, #0xd] _0806D706: add sp, #4 pop {r4, pc} .align 2, 0 thumb_func_start sub_0806D70C sub_0806D70C: @ 0x0806D70C push {r4, lr} sub sp, #4 movs r4, #0 str r4, [sp] movs r0, #7 movs r1, #0x4c movs r2, #7 movs r3, #2 bl sub_0805EB2C adds r2, r0, #0 cmp r2, #0 beq _0806D728 strb r4, [r2, #0xd] _0806D728: str r4, [sp] movs r0, #7 movs r1, #0x4c movs r2, #7 movs r3, #1 bl sub_0805EB2C adds r2, r0, #0 cmp r2, #0 beq _0806D746 strb r4, [r2, #0xd] ldrb r0, [r2, #0x18] movs r1, #3 orrs r0, r1 strb r0, [r2, #0x18] _0806D746: add sp, #4 pop {r4, pc} .align 2, 0 thumb_func_start sub_0806D74C sub_0806D74C: @ 0x0806D74C push {r4, lr} sub sp, #4 movs r4, #0 str r4, [sp] movs r0, #7 movs r1, #0x4c movs r2, #7 movs r3, #2 bl sub_0805EB2C adds r1, r0, #0 cmp r1, #0 beq _0806D76A movs r0, #3 strb r0, [r1, #0xd] _0806D76A: str r4, [sp] movs r0, #7 movs r1, #0x4c movs r2, #7 movs r3, #1 bl sub_0805EB2C adds r1, r0, #0 cmp r1, #0 beq _0806D782 movs r0, #2 strb r0, [r1, #0xd] _0806D782: add sp, #4 pop {r4, pc} .align 2, 0 thumb_func_start sub_0806D788 sub_0806D788: @ 0x0806D788 push {r4, lr} sub sp, #4 movs r4, #0 str r4, [sp] movs r0, #7 movs r1, #0x4c movs r2, #7 movs r3, #2 bl sub_0805EB2C adds r1, r0, #0 cmp r1, #0 beq _0806D7A6 movs r0, #4 strb r0, [r1, #0xd] _0806D7A6: str r4, [sp] movs r0, #7 movs r1, #0x4c movs r2, #7 movs r3, #1 bl sub_0805EB2C adds r1, r0, #0 cmp r1, #0 beq _0806D7BE movs r0, #1 strb r0, [r1, #0xd] _0806D7BE: add sp, #4 pop {r4, pc} .align 2, 0 thumb_func_start sub_0806D7C4 sub_0806D7C4: @ 0x0806D7C4 push {r4, r5, lr} sub sp, #4 adds r4, r0, #0 adds r5, r1, #0 ldr r1, _0806D800 @ =gUnk_03001160 ldrh r0, [r1, #0x2e] movs r2, #0 strh r0, [r4, #0x2e] ldrh r0, [r1, #0x32] subs r0, #0x18 strh r0, [r4, #0x32] str r2, [sp] movs r0, #7 movs r1, #0x4c movs r2, #7 movs r3, #2 bl sub_0805EB2C cmp r0, #0 beq _0806D7FC movs r1, #0x2e ldrsh r2, [r0, r1] movs r1, #0x32 ldrsh r3, [r0, r1] adds r0, r4, #0 adds r1, r5, #0 bl sub_0807DEDC _0806D7FC: add sp, #4 pop {r4, r5, pc} .align 2, 0 _0806D800: .4byte gUnk_03001160 thumb_func_start sub_0806D804 sub_0806D804: @ 0x0806D804 push {r4, r5, lr} sub sp, #4 adds r4, r0, #0 adds r5, r1, #0 movs r0, #0 str r0, [sp] movs r0, #7 movs r1, #0x4c movs r2, #7 movs r3, #2 bl sub_0805EB2C adds r1, r0, #0 cmp r1, #0 beq _0806D83A ldrh r0, [r1, #0x2e] strh r0, [r4, #0x2e] ldrh r0, [r1, #0x32] subs r0, #0x10 strh r0, [r4, #0x32] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] _0806D83A: ldr r0, _0806D854 @ =gUnk_03001160 movs r1, #0x2e ldrsh r2, [r0, r1] movs r1, #0x32 ldrsh r3, [r0, r1] subs r3, #0x10 adds r0, r4, #0 adds r1, r5, #0 bl sub_0807DEDC add sp, #4 pop {r4, r5, pc} .align 2, 0 _0806D854: .4byte gUnk_03001160 thumb_func_start sub_0806D858 sub_0806D858: @ 0x0806D858 adds r0, #0x29 ldrb r2, [r0] movs r1, #0x39 rsbs r1, r1, #0 ands r1, r2 movs r2, #8 orrs r1, r2 strb r1, [r0] bx lr .align 2, 0 thumb_func_start sub_0806D86C sub_0806D86C: @ 0x0806D86C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806D888 adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD50 _0806D888: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 thumb_func_start sub_0806D8A0 sub_0806D8A0: @ 0x0806D8A0 push {r4, r5, lr} adds r4, r0, #0 adds r3, r1, #0 movs r2, #0 movs r0, #8 strb r0, [r3, #0x19] ldr r0, [r3, #8] movs r1, #2 orrs r0, r1 str r0, [r3, #8] str r2, [r3, #0x14] movs r2, #0x10 ldrb r0, [r4, #0x18] lsls r0, r0, #0x19 cmp r0, #0 bge _0806D8C2 rsbs r2, r2, #0 _0806D8C2: ldr r1, _0806D900 @ =gUnk_03001160 movs r5, #0x2e ldrsh r0, [r1, r5] adds r2, r2, r0 movs r0, #0x32 ldrsh r1, [r1, r0] adds r1, #2 strh r2, [r3, #0x1e] strh r1, [r3, #0x22] movs r3, #0x2e ldrsh r0, [r4, r3] subs r2, r2, r0 movs r5, #0x32 ldrsh r0, [r4, r5] subs r1, r1, r0 adds r0, r2, #0 bl sub_080045DA strb r0, [r4, #0x15] ldrb r2, [r4, #0x14] movs r1, #0x80 ands r1, r2 ldr r2, _0806D904 @ =gUnk_08114134 lsls r0, r0, #0x18 lsrs r0, r0, #0x1c adds r0, r0, r2 ldrb r0, [r0] orrs r1, r0 strb r1, [r4, #0x14] pop {r4, r5, pc} .align 2, 0 _0806D900: .4byte gUnk_03001160 _0806D904: .4byte gUnk_08114134 thumb_func_start sub_0806D908 sub_0806D908: @ 0x0806D908 push {r4, r5, lr} adds r4, r0, #0 movs r1, #0x2e ldrsh r0, [r4, r1] movs r2, #0x32 ldrsh r1, [r4, r2] ldr r3, _0806D93C @ =gUnk_03001160 movs r5, #0x2e ldrsh r2, [r3, r5] movs r5, #0x32 ldrsh r3, [r3, r5] bl sub_080045D4 strb r0, [r4, #0x15] ldrb r2, [r4, #0x14] movs r1, #0x80 ands r1, r2 ldr r2, _0806D940 @ =gUnk_08114144 lsls r0, r0, #0x18 lsrs r0, r0, #0x19 adds r0, r0, r2 ldrb r0, [r0] orrs r1, r0 strb r1, [r4, #0x14] pop {r4, r5, pc} .align 2, 0 _0806D93C: .4byte gUnk_03001160 _0806D940: .4byte gUnk_08114144 thumb_func_start sub_0806D944 sub_0806D944: @ 0x0806D944 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0x18] movs r3, #0x41 rsbs r3, r3, #0 ands r3, r0 strb r3, [r2, #0x18] ldr r0, _0806D968 @ =gUnk_03001160 ldr r1, [r2, #0x2c] ldr r0, [r0, #0x2c] cmp r1, r0 bgt _0806D964 movs r1, #0x40 adds r0, r3, #0 orrs r0, r1 strb r0, [r2, #0x18] _0806D964: pop {pc} .align 2, 0 _0806D968: .4byte gUnk_03001160 thumb_func_start sub_0806D96C sub_0806D96C: @ 0x0806D96C push {r4, lr} adds r4, r0, #0 movs r1, #0x42 movs r2, #0 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _0806D99C adds r3, r2, #0 adds r3, #0x29 ldrb r1, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r3] ldr r3, _0806D9A0 @ =0xFFE80000 adds r0, r4, #0 adds r1, r2, #0 movs r2, #0 bl sub_0806FA48 _0806D99C: pop {r4, pc} .align 2, 0 _0806D9A0: .4byte 0xFFE80000 thumb_func_start sub_0806D9A4 sub_0806D9A4: @ 0x0806D9A4 push {lr} ldr r1, _0806D9BC @ =gUnk_03001160 ldr r2, [r0, #0x2c] ldr r0, [r1, #0x2c] adds r3, r1, #0 cmp r2, r0 bgt _0806D9C0 ldrb r1, [r3, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 b _0806D9C6 .align 2, 0 _0806D9BC: .4byte gUnk_03001160 _0806D9C0: ldrb r0, [r3, #0x18] movs r1, #0x40 orrs r0, r1 _0806D9C6: strb r0, [r3, #0x18] movs r0, #4 strb r0, [r3, #0x14] pop {pc} .align 2, 0 thumb_func_start sub_0806D9D0 sub_0806D9D0: @ 0x0806D9D0 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _0806D9F8 movs r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] subs r0, #5 ands r0, r1 strb r0, [r2, #0x18] ldr r0, _0806D9F4 @ =gUnk_080FD170 str r0, [r2, #0x48] adds r0, r2, #0 bl sub_0807DD50 b _0806DA00 .align 2, 0 _0806D9F4: .4byte gUnk_080FD170 _0806D9F8: adds r0, r2, #0 movs r1, #0 bl sub_0807DD94 _0806DA00: pop {pc} .align 2, 0 thumb_func_start sub_0806DA04 sub_0806DA04: @ 0x0806DA04 push {lr} ldr r3, [r1, #4] lsls r3, r3, #3 ldr r1, _0806DA18 @ =gUnk_0811415C adds r3, r3, r1 ldrb r2, [r3, #4] movs r1, #1 bl sub_08078850 pop {pc} .align 2, 0 _0806DA18: .4byte gUnk_0811415C thumb_func_start sub_0806DA1C sub_0806DA1C: @ 0x0806DA1C push {lr} ldr r3, _0806DA34 @ =gUnk_081141A4 ldr r2, [r1, #4] lsls r0, r2, #2 adds r0, r0, r3 ldr r0, [r0] ldr r1, _0806DA38 @ =gUnk_081141E4 adds r2, r2, r1 ldrb r1, [r2] bl sub_0808091C pop {pc} .align 2, 0 _0806DA34: .4byte gUnk_081141A4 _0806DA38: .4byte gUnk_081141E4 thumb_func_start sub_0806DA3C sub_0806DA3C: @ 0x0806DA3C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xa] subs r0, #1 cmp r0, #0xa bhi _0806DA84 lsls r0, r0, #2 ldr r1, _0806DA54 @ =_0806DA58 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806DA54: .4byte _0806DA58 _0806DA58: @ jump table .4byte _0806DA88 @ case 0 .4byte _0806DA8C @ case 1 .4byte _0806DA90 @ case 2 .4byte _0806DA94 @ case 3 .4byte _0806DA98 @ case 4 .4byte _0806DAA0 @ case 5 .4byte _0806DAA0 @ case 6 .4byte _0806DAA0 @ case 7 .4byte _0806DAA0 @ case 8 .4byte _0806DAA0 @ case 9 .4byte _0806DA9C @ case 10 _0806DA84: movs r0, #0 b _0806DAA6 _0806DA88: movs r0, #1 b _0806DAA6 _0806DA8C: movs r0, #2 b _0806DAA6 _0806DA90: movs r0, #3 b _0806DAA6 _0806DA94: movs r0, #4 b _0806DAA6 _0806DA98: movs r0, #5 b _0806DAA6 _0806DA9C: movs r0, #9 b _0806DAA6 _0806DAA0: adds r0, r2, #0 bl sub_0801E99C _0806DAA6: lsls r0, r0, #0x18 lsrs r0, r0, #0x18 pop {pc} thumb_func_start sub_0806DAAC sub_0806DAAC: @ 0x0806DAAC push {r4, lr} adds r4, r1, #0 bl sub_0806DA3C lsls r0, r0, #0x18 lsrs r0, r0, #0x18 bl sub_0801E7F4 str r0, [r4, #0x14] ldr r2, _0806DACC @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, pc} .align 2, 0 _0806DACC: .4byte gUnk_02033280 thumb_func_start sub_0806DAD0 sub_0806DAD0: @ 0x0806DAD0 push {r4, lr} adds r4, r0, #0 bl sub_0806DA3C adds r1, r0, #0 lsls r1, r1, #0x18 lsrs r1, r1, #0x18 adds r0, r4, #0 bl sub_08078790 pop {r4, pc} .align 2, 0 thumb_func_start sub_0806DAE8 sub_0806DAE8: @ 0x0806DAE8 push {lr} ldrb r0, [r0, #0xa] subs r0, #1 cmp r0, #4 bhi _0806DB3A lsls r0, r0, #2 ldr r1, _0806DAFC @ =_0806DB00 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806DAFC: .4byte _0806DB00 _0806DB00: @ jump table .4byte _0806DB14 @ case 0 .4byte _0806DB1C @ case 1 .4byte _0806DB24 @ case 2 .4byte _0806DB2C @ case 3 .4byte _0806DB34 @ case 4 _0806DB14: movs r0, #0xee bl sub_0807CCB4 b _0806DB3A _0806DB1C: movs r0, #0xef bl sub_0807CCB4 b _0806DB3A _0806DB24: movs r0, #0xf0 bl sub_0807CCB4 b _0806DB3A _0806DB2C: movs r0, #0xf1 bl sub_0807CCB4 b _0806DB3A _0806DB34: movs r0, #0xf2 bl sub_0807CCB4 _0806DB3A: movs r0, #0xcd bl sub_080A3268 pop {pc} .align 2, 0 thumb_func_start sub_0806DB44 sub_0806DB44: @ 0x0806DB44 push {r4, lr} adds r4, r1, #0 movs r0, #0 str r0, [r4, #0x14] movs r0, #0xee bl sub_0807CBD0 cmp r0, #0 beq _0806DB82 movs r0, #0xef bl sub_0807CBD0 cmp r0, #0 beq _0806DB82 movs r0, #0xf0 bl sub_0807CBD0 cmp r0, #0 beq _0806DB82 movs r0, #0xf1 bl sub_0807CBD0 cmp r0, #0 beq _0806DB82 movs r0, #0xf2 bl sub_0807CBD0 cmp r0, #0 beq _0806DB82 movs r0, #1 str r0, [r4, #0x14] _0806DB82: pop {r4, pc} thumb_func_start sub_0806DB84 sub_0806DB84: @ 0x0806DB84 push {r4, r5, lr} adds r5, r0, #0 ldr r0, _0806DBE4 @ =gUnk_08114154 str r0, [r5, #0x48] movs r0, #0x3e movs r1, #4 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _0806DBB6 ldr r2, _0806DBE8 @ =0xFFF80000 adds r0, r5, #0 adds r1, r4, #0 movs r3, #0 bl sub_0806FA48 ldr r1, _0806DBEC @ =gUnk_08016030 adds r0, r4, #0 bl sub_0807DAD0 adds r1, r4, #0 adds r1, #0x84 str r0, [r1] _0806DBB6: movs r0, #0x3e movs r1, #5 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _0806DBE2 movs r2, #0x80 lsls r2, r2, #0xc adds r0, r5, #0 adds r1, r4, #0 movs r3, #0 bl sub_0806FA48 ldr r1, _0806DBF0 @ =gUnk_0801606C adds r0, r4, #0 bl sub_0807DAD0 adds r1, r4, #0 adds r1, #0x84 str r0, [r1] _0806DBE2: pop {r4, r5, pc} .align 2, 0 _0806DBE4: .4byte gUnk_08114154 _0806DBE8: .4byte 0xFFF80000 _0806DBEC: .4byte gUnk_08016030 _0806DBF0: .4byte gUnk_0801606C thumb_func_start sub_0806DBF4 sub_0806DBF4: @ 0x0806DBF4 push {r4, lr} adds r4, r0, #0 cmp r4, #1 blo _0806DC36 cmp r4, #4 bls _0806DC04 cmp r4, #6 bne _0806DC36 _0806DC04: movs r4, #1 movs r0, #2 bl sub_0807CA84 cmp r0, #0 beq _0806DC12 movs r4, #2 _0806DC12: movs r0, #3 bl sub_0807CA84 cmp r0, #0 beq _0806DC1E movs r4, #3 _0806DC1E: movs r0, #4 bl sub_0807CA84 cmp r0, #0 beq _0806DC2A movs r4, #4 _0806DC2A: movs r0, #6 bl sub_0807CA84 cmp r0, #0 beq _0806DC36 movs r4, #6 _0806DC36: adds r0, r4, #0 pop {r4, pc} .align 2, 0 thumb_func_start sub_0806DC3C sub_0806DC3C: @ 0x0806DC3C ldr r2, _0806DC54 @ =gUnk_02002A40 adds r1, r2, #0 adds r1, #0xb4 ldrb r3, [r1] adds r1, r0, #0 adds r1, #0x68 strb r3, [r1] adds r2, #0xb5 ldrb r1, [r2] adds r0, #0x69 strb r1, [r0] bx lr .align 2, 0 _0806DC54: .4byte gUnk_02002A40 thumb_func_start sub_0806DC58 sub_0806DC58: @ 0x0806DC58 push {r4, lr} adds r4, r0, #0 adds r0, #0x68 ldrb r0, [r0] bl sub_0806DBF4 movs r1, #0 bl sub_08054414 adds r4, #0x69 ldrb r0, [r4] bl sub_0806DBF4 movs r1, #1 bl sub_08054414 pop {r4, pc} .align 2, 0 thumb_func_start sub_0806DC7C sub_0806DC7C: @ 0x0806DC7C push {r4, lr} ldr r4, _0806DC84 @ =gUnk_081141F4 b _0806DC94 .align 2, 0 _0806DC84: .4byte gUnk_081141F4 _0806DC88: ldrh r1, [r4] adds r4, #2 ldr r0, _0806DC9C @ =0x00004072 movs r2, #1 bl sub_0807B314 _0806DC94: ldrh r0, [r4] cmp r0, #0 bne _0806DC88 pop {r4, pc} .align 2, 0 _0806DC9C: .4byte 0x00004072 thumb_func_start sub_0806DCA0 sub_0806DCA0: @ 0x0806DCA0 push {r4, lr} ldr r4, _0806DCA8 @ =gUnk_081141F4 b _0806DCB6 .align 2, 0 _0806DCA8: .4byte gUnk_081141F4 _0806DCAC: ldrh r0, [r4] adds r4, #2 movs r1, #1 bl sub_0807BA8C _0806DCB6: ldrh r0, [r4] cmp r0, #0 bne _0806DCAC pop {r4, pc} .align 2, 0 thumb_func_start sub_0806DCC0 sub_0806DCC0: @ 0x0806DCC0 ldr r0, _0806DCD0 @ =gUnk_030010A0 movs r1, #0xf9 lsls r1, r1, #3 strh r1, [r0, #0x20] movs r1, #0xf8 strh r1, [r0, #0x22] bx lr .align 2, 0 _0806DCD0: .4byte gUnk_030010A0 thumb_func_start sub_0806DCD4 sub_0806DCD4: @ 0x0806DCD4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806DD40 adds r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xa] subs r0, #1 cmp r0, #0xa bhi _0806DD40 lsls r0, r0, #2 ldr r1, _0806DCF4 @ =_0806DCF8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806DCF4: .4byte _0806DCF8 _0806DCF8: @ jump table .4byte _0806DD24 @ case 0 .4byte _0806DD24 @ case 1 .4byte _0806DD24 @ case 2 .4byte _0806DD24 @ case 3 .4byte _0806DD24 @ case 4 .4byte _0806DD2C @ case 5 .4byte _0806DD2C @ case 6 .4byte _0806DD2C @ case 7 .4byte _0806DD2C @ case 8 .4byte _0806DD2C @ case 9 .4byte _0806DD34 @ case 10 _0806DD24: adds r0, r4, #0 bl sub_0809623C b _0806DD40 _0806DD2C: adds r0, r4, #0 bl sub_08096260 b _0806DD40 _0806DD34: adds r0, r4, #0 movs r1, #0 bl sub_0806DB84 movs r0, #0 str r0, [r4, #0x48] _0806DD40: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806DD44 sub_0806DD44: @ 0x0806DD44 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806DD5A adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0xa] adds r0, r4, #0 bl sub_080042AC _0806DD5A: adds r0, r4, #0 bl sub_080042B8 adds r4, #0x59 ldrb r0, [r4] cmp r0, #0xfe bne _0806DD74 bl sub_08000E50 movs r1, #0x1f ands r0, r1 adds r0, #0x14 strb r0, [r4] _0806DD74: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806DD78 sub_0806DD78: @ 0x0806DD78 push {lr} ldr r2, _0806DD8C @ =gUnk_0811423C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0806DD8C: .4byte gUnk_0811423C thumb_func_start sub_0806DD90 sub_0806DD90: @ 0x0806DD90 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r7, r0, #0 movs r0, #1 strb r0, [r7, #0xc] movs r0, #0x3b bl sub_0807CC30 rsbs r1, r0, #0 orrs r1, r0 lsrs r4, r1, #0x1f movs r0, #0x3c bl sub_0807CC30 cmp r0, #0 beq _0806DDB8 movs r4, #2 _0806DDB8: movs r0, #0x3d bl sub_0807CC30 cmp r0, #0 beq _0806DDC4 movs r4, #3 _0806DDC4: adds r0, r7, #0 adds r1, r4, #0 bl sub_08004260 movs r0, #0x2e ldrsh r5, [r7, r0] movs r1, #0x32 ldrsh r4, [r7, r1] ldr r2, _0806DEC0 @ =0x00004072 mov sl, r2 ldr r0, _0806DEC4 @ =gUnk_03000BF0 mov r8, r0 ldrh r1, [r0, #6] adds r1, #0x18 subs r1, r5, r1 lsrs r1, r1, #4 movs r6, #0x3f ands r1, r6 ldrh r0, [r0, #8] adds r0, #0x10 subs r0, r4, r0 lsrs r0, r0, #4 ands r0, r6 lsls r0, r0, #6 orrs r1, r0 adds r7, #0x38 mov sb, r7 mov r0, sb ldrb r2, [r0] mov r0, sl bl sub_0800015E mov r2, r8 ldrh r1, [r2, #6] adds r1, #0x18 subs r1, r5, r1 lsrs r1, r1, #4 ands r1, r6 ldrh r0, [r2, #8] subs r0, r4, r0 lsrs r0, r0, #4 ands r0, r6 lsls r0, r0, #6 orrs r1, r0 mov r0, sb ldrb r2, [r0] mov r0, sl bl sub_0800015E mov r2, r8 ldrh r1, [r2, #6] adds r1, #0x18 subs r1, r5, r1 lsrs r1, r1, #4 ands r1, r6 ldrh r0, [r2, #8] subs r0, #0x10 subs r0, r4, r0 lsrs r0, r0, #4 ands r0, r6 lsls r0, r0, #6 orrs r1, r0 mov r0, sb ldrb r2, [r0] mov r0, sl bl sub_0800015E mov r2, r8 ldrh r1, [r2, #6] subs r1, #0x18 subs r1, r5, r1 lsrs r1, r1, #4 ands r1, r6 ldrh r0, [r2, #8] adds r0, #0x10 subs r0, r4, r0 lsrs r0, r0, #4 ands r0, r6 lsls r0, r0, #6 orrs r1, r0 mov r0, sb ldrb r2, [r0] mov r0, sl bl sub_0800015E mov r2, r8 ldrh r1, [r2, #6] subs r1, #0x18 subs r1, r5, r1 lsrs r1, r1, #4 ands r1, r6 ldrh r0, [r2, #8] subs r0, r4, r0 lsrs r0, r0, #4 ands r0, r6 lsls r0, r0, #6 orrs r1, r0 mov r0, sb ldrb r2, [r0] mov r0, sl bl sub_0800015E mov r1, r8 ldrh r0, [r1, #6] subs r0, #0x18 subs r5, r5, r0 lsrs r5, r5, #4 ands r5, r6 ldrh r0, [r1, #8] subs r0, #0x10 subs r4, r4, r0 lsrs r4, r4, #4 ands r4, r6 lsls r4, r4, #6 orrs r5, r4 mov r0, sb ldrb r2, [r0] mov r0, sl adds r1, r5, #0 bl sub_0800015E pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _0806DEC0: .4byte 0x00004072 _0806DEC4: .4byte gUnk_03000BF0 thumb_func_start sub_0806DEC8 sub_0806DEC8: @ 0x0806DEC8 push {lr} bl sub_08004274 pop {pc} thumb_func_start sub_0806DED0 sub_0806DED0: @ 0x0806DED0 push {r4, lr} adds r4, r0, #0 ldr r1, _0806DEF8 @ =gUnk_081142BC ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldrb r0, [r4, #0xa] cmp r0, #0 bne _0806DEF4 ldr r2, _0806DEFC @ =gUnk_03003F80 ldrb r1, [r2, #0x1a] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x1a] _0806DEF4: pop {r4, pc} .align 2, 0 _0806DEF8: .4byte gUnk_081142BC _0806DEFC: .4byte gUnk_03003F80 thumb_func_start sub_0806DF00 sub_0806DF00: @ 0x0806DF00 push {r4, r5, lr} adds r4, r0, #0 ldrb r5, [r4, #0xa] cmp r5, #0 bne _0806DF5C movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x51 movs r1, #1 movs r2, #0 bl sub_0806ED50 str r0, [r4, #0x68] str r4, [r0, #0x50] movs r0, #0x51 movs r1, #1 movs r2, #1 bl sub_0806ED50 str r0, [r4, #0x6c] str r4, [r0, #0x50] movs r0, #0x51 movs r1, #1 movs r2, #2 bl sub_0806ED50 str r0, [r4, #0x70] str r4, [r0, #0x50] adds r0, r4, #0 adds r0, #0x74 strh r5, [r0] adds r0, #2 movs r1, #0xa strh r1, [r0] ldr r0, _0806DF58 @ =gUnk_030010A0 strh r1, [r0, #6] adds r0, r4, #0 bl sub_0806E014 adds r0, r4, #0 bl sub_0807DD50 b _0806DF6E .align 2, 0 _0806DF58: .4byte gUnk_030010A0 _0806DF5C: ldr r0, _0806DF70 @ =gUnk_080FD150 str r0, [r4, #0x48] adds r1, r4, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_0806E0DC _0806DF6E: pop {r4, r5, pc} .align 2, 0 _0806DF70: .4byte gUnk_080FD150 thumb_func_start sub_0806DF74 sub_0806DF74: @ 0x0806DF74 push {r4, lr} adds r4, r0, #0 movs r1, #0 bl sub_0807DD94 ldrb r0, [r4, #0xe] cmp r0, #0xff beq _0806DFB0 adds r0, r4, #0 adds r0, #0x44 ldrb r0, [r0] cmp r0, #0 beq _0806DF96 ldr r1, [r4, #0x70] ldrb r0, [r1, #0xe] adds r0, #1 strb r0, [r1, #0xe] _0806DF96: ldr r1, [r4, #0x68] ldrb r0, [r1, #0xe] adds r0, #1 strb r0, [r1, #0xe] ldr r1, [r4, #0x6c] ldrb r0, [r1, #0xe] adds r0, #1 strb r0, [r1, #0xe] movs r0, #0xff strb r0, [r4, #0xe] movs r0, #0 bl sub_0807CD10 _0806DFB0: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806DFB4 sub_0806DFB4: @ 0x0806DFB4 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x39 movs r2, #0 ldrsb r2, [r1, r2] cmp r2, #0 beq _0806DFD6 movs r0, #0 strb r0, [r1] ldr r1, [r4, #0x50] ldrb r0, [r4, #0xb] strb r0, [r1, #0xe] ldr r1, [r4, #0x50] ldrb r0, [r4, #0xf] strb r0, [r1, #0xb] b _0806E00C _0806DFD6: ldrb r0, [r4, #0xe] cmp r0, #0 beq _0806E00C strb r2, [r4, #0xe] ldrb r2, [r4, #0xf] movs r0, #0x35 movs r1, #2 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _0806DFF8 str r4, [r1, #0x50] str r1, [r4, #0x54] adds r0, r4, #0 bl sub_0806FA24 _0806DFF8: adds r0, r4, #0 bl sub_080788E0 adds r0, r4, #0 adds r0, #0x76 ldrh r1, [r0] movs r0, #0x74 movs r2, #2 bl sub_0807B7D8 _0806E00C: pop {r4, pc} .align 2, 0 thumb_func_start nullsub_111 nullsub_111: @ 0x0806E010 bx lr .align 2, 0 thumb_func_start sub_0806E014 sub_0806E014: @ 0x0806E014 push {r4, r5, r6, r7, lr} adds r5, r0, #0 bl sub_08000E50 movs r1, #0x70 ands r1, r0 lsrs r4, r1, #4 movs r0, #0xff strb r0, [r5, #0xb] movs r0, #1 rsbs r0, r0, #0 adds r7, r0, #0 strb r0, [r5, #0xe] movs r0, #0x93 bl sub_0807CBD0 adds r1, r0, #0 cmp r1, #0 bne _0806E088 adds r0, r5, #0 adds r0, #0x44 strb r1, [r0] lsls r1, r4, #1 ldr r0, _0806E084 @ =gUnk_081142CC adds r6, r1, r0 ldr r1, [r5, #0x68] ldrb r0, [r6] strb r0, [r1, #0xf] ldr r1, [r5, #0x68] movs r4, #0x90 lsls r4, r4, #0xf adds r0, r5, #0 adds r2, r4, #0 adds r3, r4, #0 bl sub_0806FA48 ldr r1, [r5, #0x6c] ldrb r0, [r6, #1] strb r0, [r1, #0xf] ldr r1, [r5, #0x6c] movs r2, #0xd0 lsls r2, r2, #0xf adds r0, r5, #0 adds r3, r4, #0 bl sub_0806FA48 ldr r1, [r5, #0x70] ldrb r0, [r1, #0xf] orrs r0, r7 strb r0, [r1, #0xf] ldr r1, [r5, #0x70] adds r0, r5, #0 bl sub_0806FA24 b _0806E0D6 .align 2, 0 _0806E084: .4byte gUnk_081142CC _0806E088: adds r1, r5, #0 adds r1, #0x44 movs r0, #1 strb r0, [r1] lsls r1, r4, #2 ldr r0, _0806E0D8 @ =gUnk_081142DC adds r6, r1, r0 ldr r1, [r5, #0x68] ldrb r0, [r6] strb r0, [r1, #0xf] ldr r1, [r5, #0x68] movs r2, #0xe0 lsls r2, r2, #0xe movs r4, #0x90 lsls r4, r4, #0xf adds r0, r5, #0 adds r3, r4, #0 bl sub_0806FA48 ldr r1, [r5, #0x6c] ldrb r0, [r6, #1] strb r0, [r1, #0xf] ldr r1, [r5, #0x6c] movs r2, #0xb0 lsls r2, r2, #0xf adds r0, r5, #0 adds r3, r4, #0 bl sub_0806FA48 ldr r1, [r5, #0x70] ldrb r0, [r6, #2] strb r0, [r1, #0xf] ldr r1, [r5, #0x70] movs r2, #0xf0 lsls r2, r2, #0xf adds r0, r5, #0 adds r3, r4, #0 bl sub_0806FA48 _0806E0D6: pop {r4, r5, r6, r7, pc} .align 2, 0 _0806E0D8: .4byte gUnk_081142DC thumb_func_start sub_0806E0DC sub_0806E0DC: @ 0x0806E0DC push {r4, r5, r6, lr} adds r4, r0, #0 movs r6, #0 strb r6, [r4, #0xe] ldrb r0, [r4, #0xf] cmp r0, #0xff beq _0806E138 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _0806E134 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r5, r4, #0 adds r5, #0x76 strh r1, [r5] ldr r0, [r4, #0x54] cmp r0, #0 beq _0806E120 bl sub_0805E7BC str r6, [r4, #0x54] _0806E120: adds r0, r4, #0 bl sub_08078828 ldrh r1, [r5] movs r0, #0x73 movs r2, #2 bl sub_0807B7D8 b _0806E13C .align 2, 0 _0806E134: .4byte gUnk_03000BF0 _0806E138: movs r0, #3 strb r0, [r4, #0xc] _0806E13C: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0806E140 sub_0806E140: @ 0x0806E140 push {r4, r5, lr} adds r3, r0, #0 adds r5, r1, #0 ldrb r1, [r3, #0xb] cmp r1, #0 beq _0806E1AC movs r0, #1 str r0, [r5, #0x14] adds r1, r3, #0 adds r1, #0x74 ldrh r0, [r1] adds r0, #1 strh r0, [r1] adds r1, #2 ldrh r2, [r1] adds r0, r3, #0 adds r0, #0x44 ldrb r0, [r0] adds r4, r1, #0 cmp r0, #0 bne _0806E16E lsls r0, r2, #1 b _0806E172 _0806E16E: lsls r0, r2, #1 adds r0, r0, r2 _0806E172: strh r0, [r4] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _0806E18C @ =0x000003E7 cmp r0, r1 bls _0806E194 strh r1, [r4] movs r0, #0 str r0, [r5, #0x14] ldr r0, _0806E190 @ =0x0000421B bl sub_08056378 b _0806E1C0 .align 2, 0 _0806E18C: .4byte 0x000003E7 _0806E190: .4byte 0x0000421B _0806E194: ldr r0, _0806E1A4 @ =0x00004218 bl sub_08056378 ldr r1, _0806E1A8 @ =gUnk_02000050 ldrh r0, [r4] str r0, [r1, #0x10] b _0806E1C0 .align 2, 0 _0806E1A4: .4byte 0x00004218 _0806E1A8: .4byte gUnk_02000050 _0806E1AC: str r1, [r5, #0x14] adds r0, r3, #0 adds r0, #0x74 strh r1, [r0] adds r4, r3, #0 adds r4, #0x76 strh r1, [r4] ldr r0, _0806E1D4 @ =0x0000421C bl sub_08056378 _0806E1C0: ldr r1, _0806E1D8 @ =gUnk_030010A0 ldrh r0, [r4] strh r0, [r1, #6] ldr r2, _0806E1DC @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, r5, pc} .align 2, 0 _0806E1D4: .4byte 0x0000421C _0806E1D8: .4byte gUnk_030010A0 _0806E1DC: .4byte gUnk_02033280 thumb_func_start sub_0806E1E0 sub_0806E1E0: @ 0x0806E1E0 push {r4, lr} adds r4, r0, #0 bl sub_0806E014 ldr r0, [r4, #0x68] bl sub_0806E0DC ldr r0, [r4, #0x6c] bl sub_0806E0DC ldr r0, [r4, #0x70] bl sub_0806E0DC pop {r4, pc} thumb_func_start sub_0806E1FC sub_0806E1FC: @ 0x0806E1FC push {lr} ldr r0, _0806E208 @ =gUnk_0813AD4C bl sub_08080840 pop {pc} .align 2, 0 _0806E208: .4byte gUnk_0813AD4C thumb_func_start sub_0806E20C sub_0806E20C: @ 0x0806E20C push {r4, lr} ldr r4, _0806E224 @ =gUnk_030010A0 ldrh r0, [r4, #6] cmp r0, #0 beq _0806E230 ldr r0, _0806E228 @ =0x0000421F bl sub_08056378 ldr r1, _0806E22C @ =gUnk_02000050 ldrh r0, [r4, #6] str r0, [r1, #0x10] b _0806E236 .align 2, 0 _0806E224: .4byte gUnk_030010A0 _0806E228: .4byte 0x0000421F _0806E22C: .4byte gUnk_02000050 _0806E230: ldr r0, _0806E238 @ =0x00004220 bl sub_08056378 _0806E236: pop {r4, pc} .align 2, 0 _0806E238: .4byte 0x00004220 thumb_func_start sub_0806E23C sub_0806E23C: @ 0x0806E23C push {lr} ldr r1, _0806E24C @ =gUnk_030010A0 ldrh r0, [r1, #6] cmp r0, #0 beq _0806E24A bl sub_080526CC _0806E24A: pop {pc} .align 2, 0 _0806E24C: .4byte gUnk_030010A0 thumb_func_start sub_0806E250 sub_0806E250: @ 0x0806E250 push {r4, lr} adds r4, r1, #0 movs r0, #0 str r0, [r4, #0x14] movs r0, #0x31 bl sub_0801E7F4 cmp r0, #0 beq _0806E266 movs r0, #1 str r0, [r4, #0x14] _0806E266: ldr r2, _0806E274 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, pc} .align 2, 0 _0806E274: .4byte gUnk_02033280 thumb_func_start sub_0806E278 sub_0806E278: @ 0x0806E278 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806E2A8 adds r0, #1 strb r0, [r4, #0xc] ldr r0, _0806E2A0 @ =gUnk_081142FC str r0, [r4, #0x48] adds r0, r4, #0 bl sub_0807DD50 ldr r3, _0806E2A4 @ =gUnk_08114304 adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_08078850 b _0806E2B0 .align 2, 0 _0806E2A0: .4byte gUnk_081142FC _0806E2A4: .4byte gUnk_08114304 _0806E2A8: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 _0806E2B0: ldr r0, _0806E2CC @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _0806E2D0 ldrb r0, [r4, #0x18] subs r1, #0x84 ands r1, r0 movs r0, #1 orrs r1, r0 strb r1, [r4, #0x18] b _0806E2DA .align 2, 0 _0806E2CC: .4byte gUnk_03003F80 _0806E2D0: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] _0806E2DA: pop {r4, pc} thumb_func_start sub_0806E2DC sub_0806E2DC: @ 0x0806E2DC push {lr} adds r3, r0, #0 ldr r0, _0806E300 @ =gUnk_02002A40 ldrb r0, [r0, #8] subs r0, #2 cmp r0, #0 bge _0806E2EC movs r0, #0 _0806E2EC: ldrb r1, [r3, #0xb] lsls r1, r1, #6 lsls r0, r0, #3 ldr r2, _0806E304 @ =gUnk_08114308 adds r0, r0, r2 adds r1, r1, r0 adds r0, r3, #0 bl sub_0806F1AC pop {pc} .align 2, 0 _0806E300: .4byte gUnk_02002A40 _0806E304: .4byte gUnk_08114308 thumb_func_start sub_0806E308 sub_0806E308: @ 0x0806E308 push {r4, r5, lr} adds r4, r0, #0 ldrb r5, [r4, #0xc] cmp r5, #1 beq _0806E34C cmp r5, #1 bgt _0806E31C cmp r5, #0 beq _0806E322 b _0806E3E0 _0806E31C: cmp r5, #2 beq _0806E3C6 b _0806E3E0 _0806E322: ldr r1, _0806E348 @ =gUnk_081144F0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806E3E0 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x69 strb r5, [r0] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD50 b _0806E3E0 .align 2, 0 _0806E348: .4byte gUnk_081144F0 _0806E34C: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _0806E3BC movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x69 strb r0, [r1] ldr r1, _0806E3B0 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08002632 ldr r1, _0806E3B4 @ =gUnk_08001A7C lsls r0, r0, #2 adds r0, r0, r1 ldr r3, [r0] adds r0, r4, #0 adds r0, #0x68 ldrb r0, [r0] cmp r0, #0x32 bne _0806E398 adds r3, #6 _0806E398: ldrh r1, [r3] ldrh r2, [r3, #2] ldrh r3, [r3, #4] adds r0, r4, #0 bl sub_0801DFB4 ldr r0, _0806E3B8 @ =gUnk_03003F80 adds r0, #0x8b movs r1, #3 strb r1, [r0] b _0806E3E0 .align 2, 0 _0806E3B0: .4byte gUnk_03001160 _0806E3B4: .4byte gUnk_08001A7C _0806E3B8: .4byte gUnk_03003F80 _0806E3BC: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 b _0806E3E0 _0806E3C6: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _0806E3E0 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x69 ldrb r1, [r0] adds r0, r4, #0 bl sub_08004260 _0806E3E0: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0806E3E4 sub_0806E3E4: @ 0x0806E3E4 push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r2, [r0] movs r0, #0x81 rsbs r0, r0, #0 ands r2, r0 adds r2, #8 adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 ldrb r2, [r4, #0x1e] adds r0, r4, #0 movs r1, #1 bl sub_0806FF60 adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r4, #0 bl sub_0807000C pop {r4, pc} thumb_func_start sub_0806E418 sub_0806E418: @ 0x0806E418 push {lr} adds r2, r0, #0 ldr r0, _0806E438 @ =gUnk_02002A40 ldrb r0, [r0, #8] subs r0, #2 cmp r0, #0 bge _0806E428 movs r0, #0 _0806E428: lsls r1, r0, #3 ldr r0, _0806E43C @ =gUnk_081144FC adds r1, r1, r0 adds r0, r2, #0 bl sub_0806F1AC pop {pc} .align 2, 0 _0806E438: .4byte gUnk_02002A40 _0806E43C: .4byte gUnk_081144FC thumb_func_start sub_0806E440 sub_0806E440: @ 0x0806E440 push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 pop {r4, pc} thumb_func_start sub_0806E458 sub_0806E458: @ 0x0806E458 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806E498 ldr r1, _0806E494 @ =gUnk_081144F0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806E49E ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 movs r1, #0xa bl sub_08004260 b _0806E49E .align 2, 0 _0806E494: .4byte gUnk_081144F0 _0806E498: adds r0, r4, #0 bl sub_08004274 _0806E49E: pop {r4, pc} thumb_func_start sub_0806E4A0 sub_0806E4A0: @ 0x0806E4A0 push {lr} ldr r2, _0806E4B4 @ =gUnk_081145B4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0806E4B4: .4byte gUnk_081145B4 thumb_func_start sub_0806E4B8 sub_0806E4B8: @ 0x0806E4B8 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r0, #1 movs r5, #0 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_080787A8 adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 strb r5, [r4, #0xd] adds r0, r4, #0 bl sub_0806E4EC pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0806E4EC sub_0806E4EC: @ 0x0806E4EC push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xd] cmp r0, #0 bne _0806E50E adds r0, #1 strb r0, [r5, #0xd] bl sub_08000E50 movs r1, #0x1f ands r0, r1 adds r0, #0x3c strb r0, [r5, #0xe] adds r0, r5, #0 movs r1, #0 bl sub_080042AC _0806E50E: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0806E552 bl sub_08000E50 movs r1, #1 ands r1, r0 cmp r1, #0 beq _0806E52A movs r0, #3 b _0806E52C _0806E52A: movs r0, #2 _0806E52C: strb r0, [r5, #0xc] movs r0, #0 strb r0, [r5, #0xd] bl sub_08000E50 movs r1, #1 ands r1, r0 cmp r1, #0 beq _0806E552 ldr r4, _0806E560 @ =gUnk_081145C8 bl sub_08000E50 movs r1, #3 ands r1, r0 lsls r1, r1, #1 adds r1, r1, r4 ldrh r0, [r1] bl sub_08004488 _0806E552: adds r0, r5, #0 bl sub_0806E65C adds r0, r5, #0 bl sub_080042B8 pop {r4, r5, pc} .align 2, 0 _0806E560: .4byte gUnk_081145C8 thumb_func_start sub_0806E564 sub_0806E564: @ 0x0806E564 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #0 bne _0806E5AA adds r0, #1 strb r0, [r4, #0xd] bl sub_08000E50 movs r2, #1 ands r0, r2 cmp r0, #0 beq _0806E590 ldrb r0, [r4, #0x18] lsls r1, r0, #0x19 lsrs r1, r1, #0x1f eors r1, r2 lsls r1, r1, #6 subs r2, #0x42 ands r2, r0 orrs r2, r1 strb r2, [r4, #0x18] _0806E590: bl sub_08000E50 movs r1, #1 ands r0, r1 adds r0, #1 strb r0, [r4, #0xe] movs r0, #0xc0 lsls r0, r0, #9 str r0, [r4, #0x20] adds r0, r4, #0 movs r1, #1 bl sub_080042AC _0806E5AA: movs r1, #0xa0 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _0806E5D4 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0806E5CE movs r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0xd] b _0806E5D4 _0806E5CE: movs r0, #0xc0 lsls r0, r0, #9 str r0, [r4, #0x20] _0806E5D4: adds r0, r4, #0 bl sub_0806E65C adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 thumb_func_start sub_0806E5E4 sub_0806E5E4: @ 0x0806E5E4 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #0 bne _0806E622 adds r0, #1 strb r0, [r4, #0xd] bl sub_08000E50 movs r5, #1 ands r0, r5 cmp r0, #0 beq _0806E612 ldrb r0, [r4, #0x18] lsls r1, r0, #0x19 lsrs r1, r1, #0x1f eors r1, r5 lsls r1, r1, #6 movs r2, #0x41 rsbs r2, r2, #0 ands r2, r0 orrs r2, r1 strb r2, [r4, #0x18] _0806E612: bl sub_08000E50 adds r1, r0, #0 ands r1, r5 adds r1, #2 adds r0, r4, #0 bl sub_080042AC _0806E622: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0806E638 movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0xd] _0806E638: adds r0, r4, #0 bl sub_0806E65C adds r0, r4, #0 bl sub_080042B8 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0806E648 sub_0806E648: @ 0x0806E648 push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _0806E658 movs r0, #1 strb r0, [r4, #0xc] _0806E658: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806E65C sub_0806E65C: @ 0x0806E65C push {r4, lr} adds r4, r0, #0 adds r0, #0x39 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #0 beq _0806E6A6 ldr r0, _0806E688 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _0806E694 cmp r2, #2 bne _0806E68C movs r0, #4 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0806F118 b _0806E698 .align 2, 0 _0806E688: .4byte gUnk_03003F80 _0806E68C: adds r0, r4, #0 bl sub_0806E6A8 b _0806E698 _0806E694: bl sub_080791D0 _0806E698: movs r0, #0xd5 bl sub_080A3268 adds r1, r4, #0 adds r1, #0x39 movs r0, #0 strb r0, [r1] _0806E6A6: pop {r4, pc} thumb_func_start sub_0806E6A8 sub_0806E6A8: @ 0x0806E6A8 push {r4, r5, lr} adds r4, r0, #0 movs r5, #0 bl sub_08002632 ldr r1, _0806E6D4 @ =gUnk_02002A40 ldr r2, _0806E6D8 @ =0x000001C1 adds r1, r1, r2 adds r0, r0, r1 ldrb r0, [r0] cmp r0, #0xf3 bne _0806E6C2 movs r5, #1 _0806E6C2: ldr r0, _0806E6DC @ =gUnk_081145D0 lsls r1, r5, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 bl sub_08056398 pop {r4, r5, pc} .align 2, 0 _0806E6D4: .4byte gUnk_02002A40 _0806E6D8: .4byte 0x000001C1 _0806E6DC: .4byte gUnk_081145D0 thumb_func_start sub_0806E6E0 sub_0806E6E0: @ 0x0806E6E0 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _0806E706 adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 movs r1, #1 bl sub_080042AC b _0806E70C _0806E706: adds r0, r2, #0 bl sub_080042B8 _0806E70C: pop {pc} .align 2, 0 thumb_func_start sub_0806E710 sub_0806E710: @ 0x0806E710 push {r4, lr} adds r4, r0, #0 ldr r1, _0806E72C @ =gUnk_081145D4 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} .align 2, 0 _0806E72C: .4byte gUnk_081145D4 thumb_func_start sub_0806E730 sub_0806E730: @ 0x0806E730 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r0, #1 movs r5, #0 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_080787A8 adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 strb r5, [r4, #0xd] adds r0, r4, #0 bl sub_0806E764 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0806E764 sub_0806E764: @ 0x0806E764 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] adds r5, r0, #0 cmp r5, #0 bne _0806E782 adds r0, #1 strb r0, [r4, #0xd] bl sub_08000E50 movs r1, #0x1f ands r0, r1 adds r0, #0x1e strb r0, [r4, #0xe] strb r5, [r4, #0x1e] _0806E782: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0806E7A8 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r4, #0xd] bl sub_08000E50 movs r1, #1 ands r1, r0 cmp r1, #0 beq _0806E7A8 movs r0, #0xd6 bl sub_08004488 _0806E7A8: adds r0, r4, #0 bl sub_0806E838 pop {r4, r5, pc} thumb_func_start sub_0806E7B0 sub_0806E7B0: @ 0x0806E7B0 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #0 bne _0806E7F2 adds r0, #1 strb r0, [r4, #0xd] bl sub_08000E50 movs r5, #1 ands r0, r5 cmp r0, #0 beq _0806E7DE ldrb r0, [r4, #0x18] lsls r1, r0, #0x19 lsrs r1, r1, #0x1f eors r1, r5 lsls r1, r1, #6 movs r2, #0x41 rsbs r2, r2, #0 ands r2, r0 orrs r2, r1 strb r2, [r4, #0x18] _0806E7DE: bl sub_08000E50 movs r1, #3 ands r0, r1 adds r0, #1 strb r0, [r4, #0xe] movs r0, #0x80 lsls r0, r0, #9 str r0, [r4, #0x20] strb r5, [r4, #0x1e] _0806E7F2: movs r1, #0xc0 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _0806E81C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0806E816 movs r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0xd] b _0806E81C _0806E816: movs r0, #0x80 lsls r0, r0, #9 str r0, [r4, #0x20] _0806E81C: adds r0, r4, #0 bl sub_0806E838 pop {r4, r5, pc} thumb_func_start sub_0806E824 sub_0806E824: @ 0x0806E824 push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _0806E834 movs r0, #1 strb r0, [r4, #0xc] _0806E834: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806E838 sub_0806E838: @ 0x0806E838 push {r4, lr} adds r4, r0, #0 adds r0, #0x39 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #0 beq _0806E882 ldr r0, _0806E864 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _0806E870 cmp r2, #2 bne _0806E868 movs r0, #3 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0806F118 b _0806E874 .align 2, 0 _0806E864: .4byte gUnk_03003F80 _0806E868: adds r0, r4, #0 bl sub_0806E884 b _0806E874 _0806E870: bl sub_080791D0 _0806E874: movs r0, #0xd6 bl sub_080A3268 adds r1, r4, #0 adds r1, #0x39 movs r0, #0 strb r0, [r1] _0806E882: pop {r4, pc} thumb_func_start sub_0806E884 sub_0806E884: @ 0x0806E884 push {lr} adds r1, r0, #0 ldr r0, _0806E890 @ =0x00000DB6 bl sub_08056398 pop {pc} .align 2, 0 _0806E890: .4byte 0x00000DB6 thumb_func_start sub_0806E894 sub_0806E894: @ 0x0806E894 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0806E8B6 adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #1 strb r0, [r4, #0x1e] b _0806E8CA _0806E8B6: movs r1, #0xc0 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _0806E8CA movs r0, #0x80 lsls r0, r0, #9 str r0, [r4, #0x20] _0806E8CA: pop {r4, pc} thumb_func_start sub_0806E8CC sub_0806E8CC: @ 0x0806E8CC push {lr} adds r3, r0, #0 ldr r2, _0806E8EC @ =gUnk_080B313C ldrb r1, [r3, #0xf] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r2, #8 adds r0, r0, r2 ldr r1, [r0] cmp r1, #0 beq _0806E8F0 adds r0, r3, #0 bl _call_via_r1 b _0806E8F4 .align 2, 0 _0806E8EC: .4byte gUnk_080B313C _0806E8F0: bl sub_0805E780 _0806E8F4: pop {pc} .align 2, 0 thumb_func_start sub_0806E8F8 sub_0806E8F8: @ 0x0806E8F8 push {lr} adds r3, r0, #0 ldr r2, _0806E918 @ =gUnk_080B313C ldrb r1, [r3, #0xf] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r2, #4 adds r0, r0, r2 ldr r1, [r0] cmp r1, #0 beq _0806E916 adds r0, r3, #0 bl _call_via_r1 _0806E916: pop {pc} .align 2, 0 _0806E918: .4byte gUnk_080B313C thumb_func_start sub_0806E91C sub_0806E91C: @ 0x0806E91C push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xc] cmp r0, #0 bne _0806E950 adds r0, #1 strb r0, [r5, #0xc] ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r5, #0x18] adds r1, r5, #0 adds r1, #0x68 movs r4, #0 movs r0, #1 strh r0, [r1] adds r1, #2 ldr r0, _0806E960 @ =0x0000FFFF strh r0, [r1] adds r0, r5, #0 bl sub_0807DD64 strb r4, [r5, #0x1e] _0806E950: adds r0, r5, #0 movs r1, #0 bl sub_0807DDAC adds r0, r5, #0 bl sub_0807DDE4 pop {r4, r5, pc} .align 2, 0 _0806E960: .4byte 0x0000FFFF thumb_func_start sub_0806E964 sub_0806E964: @ 0x0806E964 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} mov sb, r0 adds r2, r1, #0 ldr r0, _0806E984 @ =gUnk_03000FF0 mov r8, r0 ldrh r1, [r0, #2] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0806E988 bl sub_08050384 b _0806EAAA .align 2, 0 _0806E984: .4byte gUnk_03000FF0 _0806E988: ldrb r0, [r2, #0x18] adds r1, r0, #0 mov r6, sb adds r6, #0x6c mov r7, sb adds r7, #0x68 cmp r1, #0 bne _0806E9A8 adds r0, #1 strb r0, [r2, #0x18] strh r1, [r6] movs r2, #0 ldrsh r1, [r7, r2] mov r0, sb bl sub_0806EABC _0806E9A8: movs r5, #0x1c movs r0, #0x55 bl sub_0807CC30 cmp r0, #0 beq _0806E9B6 movs r5, #0x34 _0806E9B6: movs r0, #0 ldrsh r4, [r7, r0] mov r2, r8 ldrh r1, [r2, #2] movs r2, #0xc0 adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _0806E9E4 movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _0806E9D4 adds r4, #1 b _0806E9D6 _0806E9D4: subs r4, #1 _0806E9D6: cmp r4, #0 bgt _0806E9DC adds r4, r5, #0 _0806E9DC: cmp r4, r5 ble _0806EA0A movs r4, #1 b _0806EA0A _0806E9E4: mov r0, r8 ldrh r1, [r0, #4] adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _0806EA0A movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _0806E9FC adds r4, #1 b _0806E9FE _0806E9FC: subs r4, #1 _0806E9FE: cmp r4, #0 bgt _0806EA04 movs r4, #1 _0806EA04: cmp r4, r5 ble _0806EA0A adds r4, r5, #0 _0806EA0A: movs r1, #0 ldrsh r0, [r7, r1] cmp r4, r0 beq _0806EA28 mov r0, sb adds r1, r4, #0 bl sub_0806EABC ldrh r1, [r6] movs r2, #0 ldrsh r0, [r6, r2] cmp r0, #0 ble _0806EA28 subs r0, r1, #1 strh r0, [r6] _0806EA28: strh r4, [r7] ldr r0, _0806EA74 @ =gUnk_03000FF0 ldrh r1, [r0, #2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0806EA86 mov r5, sb adds r5, #0x6a lsls r0, r4, #0x10 asrs r0, r0, #0x10 movs r2, #0 ldrsh r1, [r5, r2] cmp r0, r1 bne _0806EA4E movs r1, #0 ldrsh r0, [r6, r1] cmp r0, #0 bne _0806EA7C _0806EA4E: ldr r4, _0806EA78 @ =gUnk_081145E4 movs r2, #0 ldrsh r0, [r7, r2] lsls r0, r0, #2 adds r0, r0, r4 movs r1, #0 ldrsh r0, [r0, r1] bl sub_080A3268 ldrh r0, [r7] strh r0, [r5] movs r2, #0 ldrsh r0, [r7, r2] lsls r0, r0, #2 adds r4, #2 adds r0, r0, r4 ldrh r0, [r0] strh r0, [r6] b _0806EA86 .align 2, 0 _0806EA74: .4byte gUnk_03000FF0 _0806EA78: .4byte gUnk_081145E4 _0806EA7C: ldr r0, _0806EAB4 @ =0x80010000 bl sub_080A3268 movs r0, #0 strh r0, [r5] _0806EA86: ldrh r1, [r6] movs r2, #0 ldrsh r0, [r6, r2] cmp r0, #0 ble _0806EAA4 subs r0, r1, #1 movs r1, #0 strh r0, [r6] lsls r0, r0, #0x10 cmp r0, #0 bgt _0806EAA4 mov r0, sb adds r0, #0x6a strh r1, [r0] strh r1, [r6] _0806EAA4: ldr r1, _0806EAB8 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0806EAAA: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _0806EAB4: .4byte 0x80010000 _0806EAB8: .4byte gUnk_02033280 thumb_func_start sub_0806EABC sub_0806EABC: @ 0x0806EABC push {r4, lr} adds r4, r1, #0 bl sub_08050384 ldr r1, _0806EAE0 @ =gUnk_020227E8 ldr r2, _0806EAE4 @ =0x00202020 adds r0, r4, #0 bl sub_08057044 ldr r0, _0806EAE8 @ =0x00003302 ldr r1, _0806EAEC @ =gUnk_081146B8 bl sub_0805F46C ldr r1, _0806EAF0 @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0xe] pop {r4, pc} .align 2, 0 _0806EAE0: .4byte gUnk_020227E8 _0806EAE4: .4byte 0x00202020 _0806EAE8: .4byte 0x00003302 _0806EAEC: .4byte gUnk_081146B8 _0806EAF0: .4byte gUnk_03000F50 thumb_func_start sub_0806EAF4 sub_0806EAF4: @ 0x0806EAF4 push {r4, r5, r6, r7, lr} adds r6, r0, #0 ldrb r0, [r6, #0xc] cmp r0, #0 bne _0806EB48 ldr r1, _0806EBA0 @ =gUnk_081146D0 adds r0, r6, #0 bl sub_0806FDEC cmp r0, #0 beq _0806EBA8 ldrb r0, [r6, #0xc] adds r0, #1 strb r0, [r6, #0xc] ldrb r1, [r6, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r6, #0x18] ldrb r2, [r6, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 strb r0, [r6, #0x19] adds r3, r6, #0 adds r3, #0x29 ldrb r2, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 strb r0, [r3] ldrb r0, [r6, #0x1b] ands r1, r0 movs r0, #0x40 orrs r1, r0 strb r1, [r6, #0x1b] movs r0, #0x78 strh r0, [r6, #0x2e] movs r0, #0x10 strh r0, [r6, #0x32] _0806EB48: ldr r7, [r6, #0x50] cmp r7, #0 beq _0806EBA4 adds r0, r7, #0 adds r0, #0x68 movs r1, #0 ldrsh r4, [r0, r1] movs r5, #0x96 lsls r5, r5, #2 adds r0, r4, #0 adds r1, r5, #0 bl __divsi3 adds r1, r6, #0 adds r1, #0x68 strh r0, [r1] adds r0, r4, #0 adds r1, r5, #0 bl __modsi3 adds r4, r0, #0 movs r1, #0x3c bl __divsi3 adds r1, r6, #0 adds r1, #0x6a strh r0, [r1] adds r0, r4, #0 movs r1, #0x3c bl __modsi3 movs r1, #6 bl __divsi3 adds r1, r6, #0 adds r1, #0x6c strh r0, [r1] ldr r0, [r7, #4] cmp r0, #0 bne _0806EBA8 bl sub_0805E780 b _0806EBA8 .align 2, 0 _0806EBA0: .4byte gUnk_081146D0 _0806EBA4: bl sub_0805E780 _0806EBA8: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0806EBAC sub_0806EBAC: @ 0x0806EBAC push {r4, lr} adds r4, r0, #0 movs r0, #0xff strb r0, [r4, #0x1e] adds r0, r4, #0 adds r0, #0x68 movs r1, #0 ldrsh r2, [r0, r1] adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 adds r0, r4, #0 adds r0, #0x6a movs r1, #0 ldrsh r2, [r0, r1] adds r0, r4, #0 movs r1, #1 bl sub_0806FF60 adds r0, r4, #0 adds r0, #0x6c movs r1, #0 ldrsh r2, [r0, r1] adds r0, r4, #0 movs r1, #2 bl sub_0806FF60 adds r0, r4, #0 movs r1, #3 movs r2, #0xa bl sub_0806FF60 movs r2, #0xc rsbs r2, r2, #0 adds r0, r4, #0 movs r1, #0 movs r3, #0 bl sub_0806FFBC movs r2, #4 rsbs r2, r2, #0 adds r0, r4, #0 movs r1, #1 movs r3, #0 bl sub_0806FFBC adds r0, r4, #0 movs r1, #2 movs r2, #0xc movs r3, #0 bl sub_0806FFBC adds r0, r4, #0 bl sub_0807000C pop {r4, pc} .align 2, 0 thumb_func_start sub_0806EC20 sub_0806EC20: @ 0x0806EC20 push {r4, lr} adds r4, r0, #0 movs r0, #0x58 movs r1, #0 movs r2, #0 bl sub_0806ED50 cmp r0, #0 beq _0806EC34 str r4, [r0, #0x50] _0806EC34: pop {r4, pc} .align 2, 0 thumb_func_start sub_0806EC38 sub_0806EC38: @ 0x0806EC38 push {lr} movs r0, #7 movs r1, #0x58 movs r2, #7 bl sub_0805EB00 cmp r0, #0 beq _0806EC4C bl sub_0805E7BC _0806EC4C: pop {pc} .align 2, 0 thumb_func_start sub_0806EC50 sub_0806EC50: @ 0x0806EC50 push {lr} adds r3, r0, #0 ldrb r0, [r3, #9] lsls r0, r0, #3 ldr r1, _0806EC74 @ =gUnk_08114AE4 adds r2, r0, r1 ldrb r1, [r2] movs r0, #3 ands r0, r1 cmp r0, #2 bne _0806EC6E ldrb r0, [r3, #0xa] lsls r0, r0, #3 ldr r1, [r2, #4] adds r2, r1, r0 _0806EC6E: adds r0, r2, #0 pop {pc} .align 2, 0 _0806EC74: .4byte gUnk_08114AE4 thumb_func_start sub_0806EC78 sub_0806EC78: @ 0x0806EC78 push {r4, r5, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #1 ands r0, r1 cmp r0, #0 bne _0806ED4A adds r0, r4, #0 bl sub_0806EC50 adds r5, r0, #0 ldrb r1, [r5] movs r0, #3 ands r0, r1 cmp r0, #0 bne _0806ECA2 ldrb r1, [r4, #0x10] movs r0, #1 orrs r0, r1 strb r0, [r4, #0x10] b _0806ED4A _0806ECA2: ldrh r0, [r5, #2] lsls r0, r0, #0x16 lsrs r2, r0, #0x16 adds r1, r2, #0 ldrb r0, [r5, #3] lsls r0, r0, #0x1c lsrs r0, r0, #0x1e cmp r0, #1 beq _0806ECC0 cmp r0, #2 bne _0806ECCA adds r0, r4, #0 adds r0, #0x60 strh r2, [r0] b _0806ECD0 _0806ECC0: adds r0, r4, #0 movs r2, #0 bl sub_080AE008 b _0806ECD0 _0806ECCA: adds r0, r4, #0 bl sub_080ADF80 _0806ECD0: ldrh r0, [r5, #4] lsls r0, r0, #0x16 lsrs r1, r0, #0x16 adds r0, r4, #0 bl sub_0801D040 ldrh r0, [r5, #6] lsls r0, r0, #0x16 lsrs r0, r0, #0x16 strh r0, [r4, #0x12] ldrb r0, [r5, #5] movs r3, #3 movs r1, #0x30 ands r1, r0 ldrb r2, [r4, #0x18] movs r0, #0x31 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] ldrb r1, [r5, #7] lsls r1, r1, #0x1b movs r0, #0x29 adds r0, r0, r4 mov ip, r0 lsrs r1, r1, #0x1d lsls r1, r1, #3 ldrb r2, [r0] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 mov r1, ip strb r0, [r1] ldrb r1, [r5, #7] lsrs r1, r1, #5 ands r1, r3 ldrb r2, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] ldr r1, _0806ED4C @ =gUnk_08114EE4 ldrb r0, [r5, #1] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [r4, #0x48] ldrb r1, [r4, #0x10] movs r0, #1 orrs r0, r1 strb r0, [r4, #0x10] movs r1, #0xff adds r0, r4, #0 adds r0, #0x58 strb r1, [r0] strb r1, [r4, #0x1e] adds r0, r4, #0 bl sub_08016A04 _0806ED4A: pop {r4, r5, pc} .align 2, 0 _0806ED4C: .4byte gUnk_08114EE4 thumb_func_start sub_0806ED50 sub_0806ED50: @ 0x0806ED50 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r6, r1, #0 adds r7, r2, #0 bl sub_0805E678 adds r4, r0, #0 cmp r4, #0 beq _0806ED74 movs r0, #7 strb r0, [r4, #8] strb r5, [r4, #9] strb r6, [r4, #0xa] strb r7, [r4, #0xb] adds r0, r4, #0 movs r1, #7 bl sub_0805EA2C _0806ED74: adds r0, r4, #0 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0806ED78 sub_0806ED78: @ 0x0806ED78 push {r4, lr} bl sub_0800445C adds r4, r0, #0 cmp r4, #0 beq _0806ED94 ldr r0, _0806ED98 @ =gUnk_03003F80 ldrb r1, [r0, #0x1e] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _0806ED94 bl sub_08077B20 _0806ED94: adds r0, r4, #0 pop {r4, pc} .align 2, 0 _0806ED98: .4byte gUnk_03003F80 thumb_func_start sub_0806ED9C sub_0806ED9C: @ 0x0806ED9C push {r4, r5, r6, lr} adds r5, r0, #0 adds r4, r1, #0 adds r3, r2, #0 movs r6, #1 rsbs r6, r6, #0 ldr r1, _0806EDC0 @ =gUnk_03001160 adds r2, r4, #0 bl sub_080041A0 cmp r0, #0 beq _0806EDBC adds r0, r5, #0 bl sub_0806EDC4 adds r6, r0, #0 _0806EDBC: adds r0, r6, #0 pop {r4, r5, r6, pc} .align 2, 0 _0806EDC0: .4byte gUnk_03001160 thumb_func_start sub_0806EDC4 sub_0806EDC4: @ 0x0806EDC4 push {lr} ldr r1, _0806EDD4 @ =gUnk_03001160 bl sub_080045C4 bl sub_0806F5A4 pop {pc} .align 2, 0 _0806EDD4: .4byte gUnk_03001160 thumb_func_start sub_0806EDD8 sub_0806EDD8: @ 0x0806EDD8 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r4, r1, #0 adds r3, r2, #0 movs r7, #1 rsbs r7, r7, #0 ldr r6, _0806EE00 @ =gUnk_03001160 adds r1, r6, #0 adds r2, r4, #0 bl sub_080041A0 cmp r0, #0 beq _0806EDFC adds r0, r5, #0 adds r1, r6, #0 bl sub_080045C4 adds r7, r0, #0 _0806EDFC: adds r0, r7, #0 pop {r4, r5, r6, r7, pc} .align 2, 0 _0806EE00: .4byte gUnk_03001160 thumb_func_start sub_0806EE04 sub_0806EE04: @ 0x0806EE04 adds r3, r0, #0 str r1, [r3, #0x54] adds r0, #0x3c movs r1, #0 strb r2, [r0] adds r0, #3 strb r1, [r0] adds r2, r3, #0 adds r2, #0x46 movs r0, #0 strh r1, [r2] strb r0, [r3, #0x16] bx lr .align 2, 0 thumb_func_start sub_0806EE20 sub_0806EE20: @ 0x0806EE20 push {r4, lr} adds r4, r0, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0806EE4C ldr r0, [r4, #0x54] cmp r0, #0 beq _0806EE66 ldr r1, _0806EE48 @ =gUnk_08114EFC ldrb r0, [r4, #0x16] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 b _0806EE68 .align 2, 0 _0806EE48: .4byte gUnk_08114EFC _0806EE4C: adds r1, r4, #0 adds r1, #0x46 movs r0, #8 strh r0, [r1] ldr r1, _0806EE6C @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r4, #0 adds r1, #0x3e strb r0, [r1] _0806EE66: movs r0, #0 _0806EE68: pop {r4, pc} .align 2, 0 _0806EE6C: .4byte gUnk_03001160 thumb_func_start sub_0806EE70 sub_0806EE70: @ 0x0806EE70 push {r4, lr} sub sp, #4 adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x46 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #8 bls _0806EE92 movs r0, #0 strh r0, [r1] adds r0, r4, #0 bl sub_0806EF14 _0806EE92: adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 mov r1, sp bl sub_0806EF4C mov r0, sp ldrh r1, [r0] ldrh r2, [r0, #2] adds r0, r4, #0 bl sub_080041DC adds r1, r0, #0 movs r2, #0x24 ldrsh r0, [r4, r2] cmp r0, #0 bge _0806EEB8 rsbs r0, r0, #0 _0806EEB8: lsrs r0, r0, #3 cmp r0, r1 bhi _0806EEC2 movs r0, #0 b _0806EECA _0806EEC2: adds r0, r4, #0 movs r1, #3 bl sub_0806EF74 _0806EECA: add sp, #4 pop {r4, pc} .align 2, 0 thumb_func_start sub_0806EED0 sub_0806EED0: @ 0x0806EED0 push {lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x46 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 beq _0806EEE8 movs r0, #0 b _0806EEF0 _0806EEE8: adds r0, r2, #0 movs r1, #2 bl sub_0806EF74 _0806EEF0: pop {pc} .align 2, 0 thumb_func_start sub_0806EEF4 sub_0806EEF4: @ 0x0806EEF4 push {lr} adds r2, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0806EF08 movs r0, #0 b _0806EF10 _0806EF08: adds r0, r2, #0 movs r1, #1 bl sub_0806EF74 _0806EF10: pop {pc} .align 2, 0 thumb_func_start sub_0806EF14 sub_0806EF14: @ 0x0806EF14 push {r4, lr} sub sp, #4 adds r4, r0, #0 mov r1, sp bl sub_0806EF4C mov r0, sp ldrh r1, [r0] ldrh r2, [r0, #2] adds r0, r4, #0 bl sub_080045B4 strb r0, [r4, #0x15] adds r0, r4, #0 adds r0, #0x3c ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 bne _0806EF48 ldrb r0, [r4, #0x15] bl sub_0806F5A4 adds r1, r4, #0 adds r1, #0x3e strb r0, [r1] _0806EF48: add sp, #4 pop {r4, pc} thumb_func_start sub_0806EF4C sub_0806EF4C: @ 0x0806EF4C push {r4, lr} adds r2, r0, #0 adds r2, #0x3f ldrb r2, [r2] lsls r2, r2, #1 ldr r3, [r0, #0x54] adds r3, r3, r2 ldr r2, _0806EF70 @ =gUnk_03000BF0 ldrh r0, [r3, #2] ldrh r4, [r2, #6] adds r0, r0, r4 strh r0, [r1] ldrh r0, [r3, #4] ldrh r2, [r2, #8] adds r0, r0, r2 strh r0, [r1, #2] pop {r4, pc} .align 2, 0 _0806EF70: .4byte gUnk_03000BF0 thumb_func_start sub_0806EF74 sub_0806EF74: @ 0x0806EF74 push {lr} adds r3, r0, #0 adds r3, #0x3f ldrb r2, [r3] adds r2, r2, r1 strb r2, [r3] bl sub_0806EF88 pop {pc} .align 2, 0 thumb_func_start sub_0806EF88 sub_0806EF88: @ 0x0806EF88 push {lr} adds r1, r0, #0 adds r1, #0x3f ldrb r2, [r1] lsls r2, r2, #1 ldr r1, [r0, #0x54] adds r1, r1, r2 ldr r3, _0806EFA8 @ =gUnk_08114F0C ldrb r2, [r1] lsls r2, r2, #2 adds r2, r2, r3 ldr r2, [r2] bl _call_via_r2 pop {pc} .align 2, 0 _0806EFA8: .4byte gUnk_08114F0C thumb_func_start sub_0806EFAC sub_0806EFAC: @ 0x0806EFAC push {lr} adds r2, r0, #0 adds r2, #0x3f movs r1, #0 strb r1, [r2] bl sub_0806EF88 pop {pc} thumb_func_start sub_0806EFBC sub_0806EFBC: @ 0x0806EFBC movs r1, #1 strb r1, [r0, #0x16] adds r0, #0x46 movs r1, #8 strh r1, [r0] movs r0, #0 bx lr .align 2, 0 thumb_func_start sub_0806EFCC sub_0806EFCC: @ 0x0806EFCC movs r2, #2 strb r2, [r0, #0x16] ldrh r1, [r1, #2] adds r0, #0x46 strh r1, [r0] movs r0, #0 bx lr .align 2, 0 thumb_func_start sub_0806EFDC sub_0806EFDC: @ 0x0806EFDC push {lr} adds r3, r0, #0 ldrh r0, [r1] lsrs r0, r0, #8 cmp r0, #0 beq _0806EFF4 adds r2, r3, #0 adds r2, #0x3c ldrb r1, [r2] movs r0, #0xfe ands r0, r1 b _0806EFFE _0806EFF4: adds r2, r3, #0 adds r2, #0x3c ldrb r1, [r2] movs r0, #1 orrs r0, r1 _0806EFFE: strb r0, [r2] adds r1, r3, #0 adds r1, #0x3f ldrb r0, [r1] adds r0, #1 strb r0, [r1] adds r0, r3, #0 bl sub_0806EF88 pop {pc} .align 2, 0 thumb_func_start sub_0806F014 sub_0806F014: @ 0x0806F014 push {lr} ldrh r1, [r1, #2] strh r1, [r0, #0x24] adds r2, r0, #0 adds r2, #0x3f ldrb r1, [r2] adds r1, #2 strb r1, [r2] bl sub_0806EF88 pop {pc} .align 2, 0 thumb_func_start sub_0806F02C sub_0806F02C: @ 0x0806F02C push {lr} ldrh r1, [r1] lsrs r1, r1, #8 adds r2, r0, #0 adds r2, #0x3e strb r1, [r2] adds r2, #1 ldrb r1, [r2] adds r1, #1 strb r1, [r2] bl sub_0806EF88 pop {pc} .align 2, 0 thumb_func_start sub_0806F048 sub_0806F048: @ 0x0806F048 movs r1, #3 strb r1, [r0, #0x16] movs r0, #0 bx lr thumb_func_start sub_0806F050 sub_0806F050: @ 0x0806F050 push {lr} adds r1, #2 str r1, [r0, #0x54] adds r2, r0, #0 adds r2, #0x3f movs r1, #0 strb r1, [r2] bl sub_0806EF88 pop {pc} thumb_func_start sub_0806F064 sub_0806F064: @ 0x0806F064 movs r2, #0 strb r2, [r0, #0x16] adds r0, #0x3f ldrb r2, [r0] adds r2, #1 strb r2, [r0] ldrh r0, [r1] lsrs r0, r0, #8 bx lr .align 2, 0 thumb_func_start sub_0806F078 sub_0806F078: @ 0x0806F078 push {lr} adds r2, r0, #0 adds r0, #0x58 ldrb r0, [r0] cmp r1, r0 beq _0806F0A0 adds r0, r2, #0 adds r0, #0x26 ldrb r0, [r0] cmp r0, #0 beq _0806F096 adds r0, r2, #0 bl sub_080042AC b _0806F09C _0806F096: adds r0, r2, #0 bl sub_08004260 _0806F09C: movs r0, #1 b _0806F0A2 _0806F0A0: movs r0, #0 _0806F0A2: pop {pc} thumb_func_start sub_0806F0A4 sub_0806F0A4: @ 0x0806F0A4 push {r4, r5, r6, r7, lr} sub sp, #4 ldr r7, _0806F114 @ =gUnk_03003DA8 ldr r5, [r7, #4] movs r0, #0 cmp r5, r7 beq _0806F0BA _0806F0B2: adds r0, #1 ldr r5, [r5, #4] cmp r5, r7 bne _0806F0B2 _0806F0BA: cmp r0, #1 bls _0806F10E ldr r5, [r7, #4] cmp r5, r7 beq _0806F10E movs r2, #1 _0806F0C6: ldrb r1, [r5, #0x10] adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _0806F108 ldrb r1, [r5, #0x17] adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _0806F108 ldr r4, [r5, #4] cmp r4, r7 beq _0806F108 movs r6, #1 _0806F0E2: ldrb r1, [r4, #0x10] adds r0, r6, #0 ands r0, r1 cmp r0, #0 beq _0806F102 ldrb r1, [r4, #0x17] adds r0, r6, #0 ands r0, r1 cmp r0, #0 beq _0806F102 adds r0, r5, #0 adds r1, r4, #0 str r2, [sp] bl sub_08004484 ldr r2, [sp] _0806F102: ldr r4, [r4, #4] cmp r4, r7 bne _0806F0E2 _0806F108: ldr r5, [r5, #4] cmp r5, r7 bne _0806F0C6 _0806F10E: add sp, #4 pop {r4, r5, r6, r7, pc} .align 2, 0 _0806F114: .4byte gUnk_03003DA8 thumb_func_start sub_0806F118 sub_0806F118: @ 0x0806F118 push {r4, lr} adds r4, r0, #0 bl sub_08002632 ldr r1, _0806F140 @ =gUnk_08001A7C lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] ldrh r1, [r0] ldrh r2, [r0, #2] ldrh r3, [r0, #4] adds r0, r4, #0 bl sub_0801DFB4 ldr r0, _0806F144 @ =gUnk_03003F80 adds r0, #0x8b movs r1, #3 strb r1, [r0] pop {r4, pc} .align 2, 0 _0806F140: .4byte gUnk_08001A7C _0806F144: .4byte gUnk_03003F80 thumb_func_start sub_0806F148 sub_0806F148: @ 0x0806F148 push {r4, lr} bl sub_0801E00C movs r4, #1 rsbs r4, r4, #0 ldr r0, _0806F164 @ =gUnk_02022740 ldrb r0, [r0] cmp r0, #1 beq _0806F172 cmp r0, #2 beq _0806F168 movs r4, #0 b _0806F17E .align 2, 0 _0806F164: .4byte gUnk_02022740 _0806F168: ldr r0, _0806F184 @ =gUnk_03003F80 adds r0, #0x8b movs r1, #3 strb r1, [r0] movs r4, #1 _0806F172: bl sub_0807919C ldr r0, _0806F184 @ =gUnk_03003F80 adds r0, #0x8b movs r1, #1 strb r1, [r0] _0806F17E: adds r0, r4, #0 pop {r4, pc} .align 2, 0 _0806F184: .4byte gUnk_03003F80 thumb_func_start sub_0806F188 sub_0806F188: @ 0x0806F188 push {lr} bl sub_08002632 adds r1, r0, #0 cmp r1, #0 beq _0806F1A0 ldr r0, _0806F1A4 @ =gUnk_02002A40 ldr r2, _0806F1A8 @ =0x000001C1 adds r0, r0, r2 adds r0, r1, r0 movs r1, #0xf3 strb r1, [r0] _0806F1A0: pop {pc} .align 2, 0 _0806F1A4: .4byte gUnk_02002A40 _0806F1A8: .4byte 0x000001C1 thumb_func_start sub_0806F1AC sub_0806F1AC: @ 0x0806F1AC push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} mov r8, r0 adds r6, r1, #0 ldrh r1, [r6, #2] asrs r7, r1, #4 movs r0, #1 ands r7, r0 movs r0, #0xf ands r1, r0 cmp r1, #6 bls _0806F1C8 b _0806F332 _0806F1C8: lsls r0, r1, #2 ldr r1, _0806F1D4 @ =_0806F1D8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806F1D4: .4byte _0806F1D8 _0806F1D8: @ jump table .4byte _0806F332 @ case 0 .4byte _0806F342 @ case 1 .4byte _0806F1F4 @ case 2 .4byte _0806F24E @ case 3 .4byte _0806F2BA @ case 4 .4byte _0806F324 @ case 5 .4byte _0806F336 @ case 6 _0806F1F4: ldr r4, [r6] asrs r1, r4, #0xc movs r0, #0xf ands r1, r0 ldr r0, _0806F210 @ =0x00000FFF ands r4, r0 movs r5, #0 cmp r1, #1 beq _0806F22A cmp r1, #1 bgt _0806F214 cmp r1, #0 beq _0806F21A b _0806F248 .align 2, 0 _0806F210: .4byte 0x00000FFF _0806F214: cmp r1, #2 beq _0806F23A b _0806F248 _0806F21A: adds r0, r4, #0 bl sub_0807CC3C adds r5, r0, #0 _0806F222: adds r0, r4, #0 bl sub_0807CD10 b _0806F248 _0806F22A: adds r0, r4, #0 bl sub_0807CBD0 adds r5, r0, #0 _0806F232: adds r0, r4, #0 bl sub_0807CCB4 b _0806F248 _0806F23A: adds r0, r4, #0 bl sub_0807CC30 adds r5, r0, #0 adds r0, r4, #0 bl sub_0807CD04 _0806F248: cmp r5, #0 beq _0806F342 b _0806F34C _0806F24E: ldr r4, [r6] asrs r1, r4, #0xc movs r0, #0xf ands r1, r0 ldr r0, _0806F26C @ =0x00000FFF ands r4, r0 movs r5, #0 cmp r1, #1 beq _0806F28A cmp r1, #1 bgt _0806F270 cmp r1, #0 beq _0806F276 b _0806F248 .align 2, 0 _0806F26C: .4byte 0x00000FFF _0806F270: cmp r1, #2 beq _0806F29E b _0806F248 _0806F276: adds r0, r4, #0 bl sub_0807CC3C adds r5, r0, #0 cmp r5, #0 beq _0806F222 adds r0, r4, #0 bl sub_0807CD8C b _0806F248 _0806F28A: adds r0, r4, #0 bl sub_0807CBD0 adds r5, r0, #0 cmp r5, #0 beq _0806F232 adds r0, r4, #0 bl sub_0807CD34 b _0806F248 _0806F29E: adds r0, r4, #0 bl sub_0807CC30 adds r5, r0, #0 cmp r5, #0 bne _0806F2B2 adds r0, r4, #0 bl sub_0807CD04 b _0806F248 _0806F2B2: adds r0, r4, #0 bl sub_0807CD80 b _0806F248 _0806F2BA: ldr r4, [r6] asrs r1, r4, #0xc movs r0, #0xf ands r1, r0 ldr r0, _0806F2D8 @ =0x00000FFF ands r4, r0 movs r5, #0 cmp r1, #4 bhi _0806F248 lsls r0, r1, #2 ldr r1, _0806F2DC @ =_0806F2E0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806F2D8: .4byte 0x00000FFF _0806F2DC: .4byte _0806F2E0 _0806F2E0: @ jump table .4byte _0806F2F4 @ case 0 .4byte _0806F2FC @ case 1 .4byte _0806F304 @ case 2 .4byte _0806F30C @ case 3 .4byte _0806F314 @ case 4 _0806F2F4: adds r0, r4, #0 bl sub_0807CC3C b _0806F320 _0806F2FC: adds r0, r4, #0 bl sub_0807CBD0 b _0806F320 _0806F304: adds r0, r4, #0 bl sub_0807CC30 b _0806F320 _0806F30C: adds r0, r4, #0 bl sub_0801E7F4 b _0806F320 _0806F314: adds r0, r4, #0 bl sub_0807CA84 cmp r0, #0 beq _0806F320 movs r0, #1 _0806F320: adds r5, r0, #0 b _0806F248 _0806F324: ldr r1, [r6, #4] cmp r1, #0 beq _0806F332 mov r0, r8 bl _call_via_r1 b _0806F35E _0806F332: movs r0, #0 b _0806F34E _0806F336: ldr r0, _0806F348 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _0806F34C _0806F342: ldrh r0, [r6, #6] b _0806F34E .align 2, 0 _0806F348: .4byte gUnk_03003F80 _0806F34C: ldrh r0, [r6, #4] _0806F34E: cmp r7, #0 beq _0806F35A mov r1, r8 bl sub_08056398 b _0806F35E _0806F35A: bl sub_08056378 _0806F35E: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0806F364 sub_0806F364: @ 0x0806F364 push {lr} ldr r2, _0806F384 @ =gUnk_02033A90 ldrb r0, [r2, #8] movs r1, #0x80 eors r0, r1 strb r0, [r2, #8] ldrb r1, [r2, #8] adds r0, r1, #7 asrs r0, r0, #3 ldr r3, _0806F388 @ =0x00000868 adds r1, r2, r3 adds r0, r0, r1 movs r1, #0x10 bl sub_0801D630 pop {pc} .align 2, 0 _0806F384: .4byte gUnk_02033A90 _0806F388: .4byte 0x00000868 thumb_func_start sub_0806F38C sub_0806F38C: @ 0x0806F38C ldr r0, _0806F398 @ =gUnk_02033A90 ldrb r1, [r0, #8] movs r2, #0x80 eors r1, r2 strb r1, [r0, #8] bx lr .align 2, 0 _0806F398: .4byte gUnk_02033A90 thumb_func_start sub_0806F39C sub_0806F39C: @ 0x0806F39C push {r4, lr} adds r3, r0, #0 ldr r2, _0806F3B8 @ =gUnk_03001160 ldrb r1, [r2, #0x14] movs r0, #2 ands r0, r1 adds r4, r2, #0 cmp r0, #0 beq _0806F3BC movs r0, #0x2e ldrsh r1, [r3, r0] movs r2, #0x2e ldrsh r0, [r4, r2] b _0806F3C4 .align 2, 0 _0806F3B8: .4byte gUnk_03001160 _0806F3BC: movs r0, #0x32 ldrsh r1, [r3, r0] movs r2, #0x32 ldrsh r0, [r4, r2] _0806F3C4: subs r1, r1, r0 cmp r1, #0 bge _0806F3CC rsbs r1, r1, #0 _0806F3CC: cmp r1, #0x40 bgt _0806F3D4 movs r0, #0 b _0806F3E2 _0806F3D4: movs r0, #0x24 ldrsh r1, [r3, r0] ldrb r2, [r3, #0x15] adds r0, r4, #0 bl sub_080027EA movs r0, #1 _0806F3E2: pop {r4, pc} thumb_func_start sub_0806F3E4 sub_0806F3E4: @ 0x0806F3E4 push {r4, r5, r6, lr} sub sp, #0x88 adds r5, r0, #0 ldr r2, _0806F408 @ =gUnk_03003F80 ldrb r1, [r2, #0x1c] movs r0, #0x7f ands r0, r1 cmp r0, #1 bne _0806F4E0 ldrb r0, [r2, #0x1d] cmp r0, #2 beq _0806F420 cmp r0, #2 bgt _0806F40C cmp r0, #1 beq _0806F416 b _0806F410 .align 2, 0 _0806F408: .4byte gUnk_03003F80 _0806F40C: cmp r0, #3 beq _0806F42A _0806F410: adds r3, r5, #0 adds r3, #0x46 b _0806F436 _0806F416: adds r1, r5, #0 adds r1, #0x46 ldrh r0, [r1] adds r0, #0x40 b _0806F432 _0806F420: adds r1, r5, #0 adds r1, #0x46 ldrh r0, [r1] adds r0, #0x80 b _0806F432 _0806F42A: adds r1, r5, #0 adds r1, #0x46 ldrh r0, [r1] adds r0, #0xc0 _0806F432: strh r0, [r1] adds r3, r1, #0 _0806F436: adds r2, r3, #0 ldrh r0, [r2] movs r1, #0xa0 lsls r1, r1, #3 cmp r0, r1 bls _0806F444 strh r1, [r2] _0806F444: ldr r6, _0806F4BC @ =gUnk_03001160 ldrb r0, [r6, #0x14] movs r1, #0xe ands r1, r0 ldr r0, _0806F4C0 @ =gUnk_08126EE4 adds r1, r1, r0 mov r2, sp movs r0, #0 ldrsb r0, [r1, r0] ldrh r4, [r6, #0x2e] adds r0, r0, r4 strh r0, [r2, #0x2e] movs r0, #1 ldrsb r0, [r1, r0] ldrh r1, [r6, #0x32] adds r0, r0, r1 strh r0, [r2, #0x32] ldrh r4, [r3] adds r0, r5, #0 mov r1, sp bl sub_080045C4 adds r2, r0, #0 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806F5BC mov r0, sp adds r1, r5, #0 movs r2, #4 movs r3, #4 bl sub_0800419C cmp r0, #0 beq _0806F4E0 ldrb r0, [r5, #0x1c] movs r1, #0xf ands r1, r0 cmp r1, #2 bne _0806F4C8 movs r0, #3 strb r0, [r5, #0xd] str r5, [r6, #0x70] ldr r1, _0806F4C4 @ =gUnk_03003F80 movs r0, #7 strb r0, [r1, #0x1c] movs r0, #0x11 movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08077CB8 cmp r0, #0 beq _0806F4B4 str r5, [r0, #0x54] str r0, [r5, #0x50] _0806F4B4: movs r0, #0xed bl sub_080A3268 b _0806F4D8 .align 2, 0 _0806F4BC: .4byte gUnk_03001160 _0806F4C0: .4byte gUnk_08126EE4 _0806F4C4: .4byte gUnk_03003F80 _0806F4C8: cmp r1, #1 bne _0806F4D8 ldr r0, _0806F4DC @ =gUnk_03003F80 ldr r0, [r0, #0x2c] strb r1, [r0, #0xa] movs r0, #0xef bl sub_080A3268 _0806F4D8: movs r0, #1 b _0806F4E2 .align 2, 0 _0806F4DC: .4byte gUnk_03003F80 _0806F4E0: movs r0, #0 _0806F4E2: add sp, #0x88 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0806F4E8 sub_0806F4E8: @ 0x0806F4E8 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0x1d] movs r2, #3 ands r2, r0 cmp r2, #1 beq _0806F516 cmp r2, #1 bgt _0806F500 cmp r2, #0 beq _0806F510 b _0806F51C _0806F500: cmp r2, #2 beq _0806F50A cmp r2, #3 beq _0806F516 b _0806F51C _0806F50A: adds r1, #0x62 movs r0, #0xfe b _0806F51A _0806F510: adds r1, #0x62 movs r0, #2 b _0806F51A _0806F516: adds r1, #0x62 movs r0, #0 _0806F51A: strb r0, [r1] _0806F51C: pop {pc} .align 2, 0 thumb_func_start sub_0806F520 sub_0806F520: @ 0x0806F520 push {lr} adds r2, r0, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x93 beq _0806F544 adds r3, r2, #0 adds r3, #0x3a ldrb r1, [r3] movs r0, #0xfb ands r0, r1 movs r1, #0 strb r0, [r3] adds r0, r2, #0 adds r0, #0x63 strb r1, [r0] movs r0, #0 b _0806F546 _0806F544: movs r0, #1 _0806F546: pop {pc} thumb_func_start sub_0806F548 sub_0806F548: @ 0x0806F548 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 bl sub_080041A0 cmp r0, #0 bne _0806F55A movs r0, #0 b _0806F562 _0806F55A: adds r0, r4, #0 adds r1, r5, #0 bl sub_0806F58C _0806F562: pop {r4, r5, pc} thumb_func_start sub_0806F564 sub_0806F564: @ 0x0806F564 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 adds r3, r2, #0 movs r1, #0x2e ldrsh r0, [r4, r1] movs r2, #0x32 ldrsh r1, [r4, r2] adds r2, r5, #0 bl sub_080045D4 bl sub_0806F5A4 movs r2, #0 ldrb r1, [r4, #0x14] cmp r1, r0 bne _0806F588 movs r2, #1 _0806F588: adds r0, r2, #0 pop {r4, r5, pc} thumb_func_start sub_0806F58C sub_0806F58C: @ 0x0806F58C push {r4, lr} adds r4, r0, #0 bl sub_0806FCA0 movs r2, #0 ldrb r1, [r4, #0x14] lsrs r1, r1, #1 cmp r1, r0 bne _0806F5A0 movs r2, #1 _0806F5A0: adds r0, r2, #0 pop {r4, pc} thumb_func_start sub_0806F5A4 sub_0806F5A4: @ 0x0806F5A4 ldr r1, _0806F5AC @ =gUnk_08114F38 adds r0, r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0806F5AC: .4byte gUnk_08114F38 thumb_func_start sub_0806F5B0 sub_0806F5B0: @ 0x0806F5B0 ldr r1, _0806F5B8 @ =gUnk_08114F58 adds r0, r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0806F5B8: .4byte gUnk_08114F58 thumb_func_start sub_0806F5BC sub_0806F5BC: @ 0x0806F5BC push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r7, r0, #0 movs r0, #0x80 ands r0, r2 cmp r0, #0 bne _0806F620 ldr r0, _0806F628 @ =gUnk_080C9160 mov r8, r0 lsls r4, r2, #3 lsls r0, r2, #4 add r0, r8 movs r2, #0 ldrsh r0, [r0, r2] lsls r5, r1, #0x10 asrs r5, r5, #0x10 adds r1, r5, #0 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r6, #0x80 lsls r6, r6, #1 adds r1, r6, #0 bl sub_0806FA04 lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r7, #0x2c] adds r1, r1, r0 str r1, [r7, #0x2c] adds r4, #0x40 lsls r4, r4, #1 add r4, r8 movs r1, #0 ldrsh r0, [r4, r1] adds r1, r5, #0 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r6, #0 bl sub_0806FA04 lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r7, #0x30] subs r1, r1, r0 str r1, [r7, #0x30] _0806F620: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0806F628: .4byte gUnk_080C9160 thumb_func_start sub_0806F62C sub_0806F62C: @ 0x0806F62C push {r4, r5, r6, lr} mov r6, sb mov r5, r8 push {r5, r6} adds r6, r0, #0 adds r5, r1, #0 adds r4, r2, #0 ldr r0, _0806F698 @ =gUnk_080C9160 mov sb, r0 lsls r4, r4, #0x18 lsrs r4, r4, #0x18 lsls r0, r4, #1 add r0, sb movs r1, #0 ldrsh r0, [r0, r1] lsls r5, r5, #0x10 asrs r5, r5, #0x10 adds r1, r5, #0 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x80 lsls r1, r1, #1 mov r8, r1 bl sub_0806FA04 lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r6, #0x2c] adds r1, r1, r0 str r1, [r6, #0x2c] adds r4, #0x40 lsls r4, r4, #1 add r4, sb movs r1, #0 ldrsh r0, [r4, r1] adds r1, r5, #0 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r1, r8 bl sub_0806FA04 lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r6, #0x30] subs r1, r1, r0 str r1, [r6, #0x30] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, pc} .align 2, 0 _0806F698: .4byte gUnk_080C9160 thumb_func_start sub_0806F69C sub_0806F69C: @ 0x0806F69C push {r4, r5, r6, lr} adds r6, r0, #0 ldrb r1, [r6, #0x15] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0806F6FE ldr r5, _0806F700 @ =gUnk_080C9160 ldrb r0, [r6, #0x15] lsls r0, r0, #4 adds r0, r0, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r2, #0x24 ldrsh r1, [r6, r2] bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r4, #0x80 lsls r4, r4, #1 adds r1, r4, #0 bl sub_0806FA04 lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r6, #0x2c] adds r1, r1, r0 str r1, [r6, #0x2c] ldrb r0, [r6, #0x15] lsls r0, r0, #4 adds r0, #0x80 adds r0, r0, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r2, #0x24 ldrsh r1, [r6, r2] bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r4, #0 bl sub_0806FA04 lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r6, #0x30] subs r1, r1, r0 str r1, [r6, #0x30] _0806F6FE: pop {r4, r5, r6, pc} .align 2, 0 _0806F700: .4byte gUnk_080C9160 thumb_func_start sub_0806F704 sub_0806F704: @ 0x0806F704 push {r4, r5, r6, lr} lsls r3, r1, #4 movs r2, #0xfc lsls r2, r2, #2 adds r6, r2, #0 ands r3, r6 movs r5, #8 orrs r3, r5 ldr r4, _0806F72C @ =gUnk_03000BF0 ldrh r2, [r4, #6] adds r2, r2, r3 strh r2, [r0, #0x2e] lsrs r1, r1, #2 ands r1, r6 orrs r1, r5 ldrh r2, [r4, #8] adds r2, r2, r1 strh r2, [r0, #0x32] pop {r4, r5, r6, pc} .align 2, 0 _0806F72C: .4byte gUnk_03000BF0 thumb_func_start sub_0806F730 sub_0806F730: @ 0x0806F730 push {r4, r5, r6, lr} movs r6, #0x3f movs r1, #0x2e ldrsh r2, [r0, r1] ldr r4, [r0, #0x48] movs r1, #0 ldrsb r1, [r4, r1] adds r2, r2, r1 ldr r3, _0806F764 @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r5, r2, r1 movs r2, #0x32 ldrsh r1, [r0, r2] movs r2, #1 ldrsb r2, [r4, r2] adds r1, r1, r2 ldrh r2, [r3, #8] subs r1, r1, r2 ldrb r0, [r0, #0x14] cmp r0, #2 beq _0806F77E cmp r0, #2 bgt _0806F768 cmp r0, #0 beq _0806F772 b _0806F788 .align 2, 0 _0806F764: .4byte gUnk_03000BF0 _0806F768: cmp r0, #4 beq _0806F778 cmp r0, #6 beq _0806F784 b _0806F788 _0806F772: ldrb r0, [r4, #5] subs r1, r1, r0 b _0806F788 _0806F778: ldrb r0, [r4, #5] adds r1, r1, r0 b _0806F788 _0806F77E: ldrb r0, [r4, #2] adds r5, r5, r0 b _0806F788 _0806F784: ldrb r0, [r4, #2] subs r5, r5, r0 _0806F788: lsrs r0, r5, #4 ands r0, r6 lsrs r1, r1, #4 ands r1, r6 lsls r1, r1, #6 adds r0, r0, r1 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0806F798 sub_0806F798: @ 0x0806F798 push {r4, r5, lr} adds r2, r0, #0 movs r1, #0x2e ldrsh r0, [r2, r1] ldr r4, [r2, #0x48] movs r1, #0 ldrsb r1, [r4, r1] adds r0, r0, r1 ldr r3, _0806F7CC @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r0, r0, r1 movs r5, #0x32 ldrsh r1, [r2, r5] movs r2, #1 ldrsb r2, [r4, r2] adds r1, r1, r2 ldrh r2, [r3, #8] subs r1, r1, r2 movs r2, #0x3f lsrs r0, r0, #4 ands r0, r2 lsrs r1, r1, #4 ands r1, r2 lsls r1, r1, #6 adds r0, r0, r1 pop {r4, r5, pc} .align 2, 0 _0806F7CC: .4byte gUnk_03000BF0 thumb_func_start sub_0806F7D0 sub_0806F7D0: @ 0x0806F7D0 push {r4, lr} ldr r4, _0806F7E4 @ =gUnk_02025EB0 bl sub_0806F730 ldr r1, _0806F7E8 @ =0x00002004 adds r4, r4, r1 adds r0, r0, r4 ldrb r0, [r0] pop {r4, pc} .align 2, 0 _0806F7E4: .4byte gUnk_02025EB0 _0806F7E8: .4byte 0x00002004 thumb_func_start sub_0806F7EC sub_0806F7EC: @ 0x0806F7EC push {r4, lr} ldr r4, _0806F800 @ =gUnk_02025EB0 bl sub_0806F730 lsls r0, r0, #1 adds r4, #4 adds r0, r0, r4 ldrh r0, [r0] pop {r4, pc} .align 2, 0 _0806F800: .4byte gUnk_02025EB0 thumb_func_start sub_0806F804 sub_0806F804: @ 0x0806F804 lsrs r0, r0, #4 movs r2, #0x3f ands r0, r2 movs r2, #0xfc lsls r2, r2, #2 ands r2, r1 lsls r2, r2, #2 adds r0, r0, r2 ldr r1, _0806F820 @ =gUnk_02025EB0 lsls r0, r0, #1 adds r1, #4 adds r0, r0, r1 ldrh r0, [r0] bx lr .align 2, 0 _0806F820: .4byte gUnk_02025EB0 thumb_func_start sub_0806F824 sub_0806F824: @ 0x0806F824 push {r4, r5, r6, lr} mov r6, r8 push {r6} adds r4, r2, #0 adds r5, r3, #0 movs r2, #0x2e ldrsh r6, [r0, r2] movs r2, #0x32 ldrsh r3, [r0, r2] mov r8, r3 movs r3, #0x2e ldrsh r2, [r1, r3] adds r2, r2, r4 movs r0, #0x32 ldrsh r3, [r1, r0] adds r3, r3, r5 adds r0, r6, #0 mov r1, r8 bl sub_080045D4 pop {r3} mov r8, r3 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0806F854 sub_0806F854: @ 0x0806F854 push {r4, r5, r6, lr} adds r4, r0, #0 adds r3, r1, #0 adds r6, r2, #0 ldr r0, [r4, #0x34] cmp r0, #0 beq _0806F8D6 adds r0, r4, #0 adds r0, #0x38 ldrb r1, [r0] movs r0, #2 ands r0, r1 cmp r0, #0 bne _0806F8D6 movs r1, #0x2e ldrsh r0, [r4, r1] adds r0, r0, r3 ldr r2, _0806F8BC @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r5, #0x3f ands r0, r5 movs r3, #0x32 ldrsh r1, [r4, r3] adds r1, r1, r6 ldrh r2, [r2, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r5 lsls r1, r1, #6 orrs r0, r1 movs r1, #2 movs r2, #8 bl sub_080002F0 cmp r0, #0 beq _0806F8C0 ldrb r1, [r4, #0x19] adds r0, r5, #0 ands r0, r1 movs r2, #0x80 orrs r0, r2 strb r0, [r4, #0x19] ldrb r1, [r4, #0x1b] adds r0, r5, #0 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x1b] movs r0, #1 b _0806F8D8 .align 2, 0 _0806F8BC: .4byte gUnk_03000BF0 _0806F8C0: ldrb r1, [r4, #0x19] adds r0, r5, #0 ands r0, r1 movs r2, #0x40 orrs r0, r2 strb r0, [r4, #0x19] ldrb r1, [r4, #0x1b] adds r0, r5, #0 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x1b] _0806F8D6: movs r0, #0 _0806F8D8: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0806F8DC sub_0806F8DC: @ 0x0806F8DC push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x38 ldrb r1, [r5] movs r0, #2 ands r0, r1 cmp r0, #0 bne _0806F942 movs r1, #0x2e ldrsh r0, [r4, r1] movs r2, #0x32 ldrsh r1, [r4, r2] subs r1, #4 movs r2, #2 bl sub_080002A4 cmp r0, #0 beq _0806F91C ldrb r2, [r4, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 movs r2, #0x80 orrs r0, r2 strb r0, [r4, #0x19] ldrb r0, [r4, #0x1b] ands r1, r0 orrs r1, r2 strb r1, [r4, #0x1b] movs r0, #1 b _0806F944 _0806F91C: movs r1, #0x2e ldrsh r0, [r4, r1] movs r2, #0x32 ldrsh r1, [r4, r2] subs r1, #4 ldrb r2, [r5] bl sub_080002A4 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] _0806F942: movs r0, #0 _0806F944: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0806F948 sub_0806F948: @ 0x0806F948 push {r4, lr} adds r4, r0, #0 ldr r1, _0806F974 @ =gUnk_03003F80 ldrb r0, [r1, #0xd] cmp r0, #0xff beq _0806F994 ldrb r0, [r1, #0xd] lsrs r3, r0, #2 movs r0, #1 ands r0, r3 cmp r0, #0 beq _0806F978 ldrb r2, [r4, #0x14] subs r0, r2, #1 subs r0, r3, r0 movs r1, #4 ands r0, r1 cmp r0, #0 bne _0806F978 adds r0, r2, #0 b _0806F996 .align 2, 0 _0806F974: .4byte gUnk_03003F80 _0806F978: movs r2, #0 cmp r3, #4 bls _0806F980 movs r2, #1 _0806F980: 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] movs r0, #6 ands r3, r0 strb r3, [r4, #0x14] _0806F994: ldrb r0, [r4, #0x14] _0806F996: pop {r4, pc} thumb_func_start sub_0806F998 sub_0806F998: @ 0x0806F998 push {r4, lr} adds r2, r0, #0 ldrb r4, [r2, #0x14] ldrb r1, [r2, #0x15] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0806F9E6 movs r0, #0x1c ands r0, r1 lsrs r3, r0, #2 movs r1, #1 adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _0806F9C4 subs r0, r3, r4 adds r0, #1 movs r1, #4 ands r0, r1 cmp r0, #0 beq _0806F9E6 _0806F9C4: ldrb r0, [r2, #0x15] lsrs r0, r0, #2 movs r1, #0x7e ands r0, r1 strb r0, [r2, #0x14] adds r4, r0, #0 cmp r4, #4 bhi _0806F9DE ldrb r1, [r2, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 b _0806F9E4 _0806F9DE: ldrb r0, [r2, #0x18] movs r1, #0x40 orrs r0, r1 _0806F9E4: strb r0, [r2, #0x18] _0806F9E6: adds r0, r4, #0 pop {r4, pc} .align 2, 0 thumb_func_start sub_0806F9EC sub_0806F9EC: @ 0x0806F9EC push {lr} lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r1, #0x10 asrs r1, r1, #0x10 muls r0, r1, r0 cmp r0, #0 bge _0806F9FE adds r0, #0xff _0806F9FE: lsls r0, r0, #8 asrs r0, r0, #0x10 pop {pc} thumb_func_start sub_0806FA04 sub_0806FA04: @ 0x0806FA04 push {lr} lsls r0, r0, #0x10 lsrs r0, r0, #0x10 lsls r1, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0 beq _0806FA20 lsls r0, r0, #0x10 asrs r0, r0, #8 bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 b _0806FA22 _0806FA20: movs r0, #0 _0806FA22: pop {pc} thumb_func_start sub_0806FA24 sub_0806FA24: @ 0x0806FA24 push {lr} movs r2, #0 movs r3, #0 bl sub_0806FA48 pop {pc} thumb_func_start sub_0806FA30 sub_0806FA30: @ 0x0806FA30 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 movs r2, #0 movs r3, #0 bl sub_0806FA48 adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FAB0 pop {r4, r5, pc} thumb_func_start sub_0806FA48 sub_0806FA48: @ 0x0806FA48 push {r4, lr} ldr r4, [r0, #0x2c] adds r4, r4, r2 str r4, [r1, #0x2c] ldr r2, [r0, #0x30] adds r2, r2, r3 str r2, [r1, #0x30] ldr r2, [r0, #0x34] str r2, [r1, #0x34] adds r0, #0x38 ldrb r2, [r0] adds r0, r1, #0 adds r0, #0x38 strb r2, [r0] adds r0, r1, #0 bl sub_08016A04 pop {r4, pc} 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 sub_0806FA48 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 sub_0806FA48 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 @ =gUnk_03001160 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 gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 sub_080A2960 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 bl sub_080042B8 b _08070800 .align 2, 0 _080707F0: .4byte gUnk_03003F80 _080707F4: .4byte gUnk_03001160 _080707F8: movs r0, #0x97 lsls r0, r0, #2 mov r1, ip strh r0, [r1, #8] _08070800: ldr r0, _08070814 @ =gUnk_03001160 bl sub_0806F948 bl sub_08077B2C adds r0, r5, #0 bl sub_08077698 b _08070BE4 .align 2, 0 _08070814: .4byte gUnk_03001160 _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 sub_080A29AC 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 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 sub_080A2960 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 sub_080A29AC 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 sub_080A2960 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 sub_080A29AC 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 @ =gUnk_03001160 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 gUnk_03001160 _080725DC: adds r0, r4, #0 bl sub_080042B8 b _08072604 _080725E4: ldr r2, _08072624 @ =gUnk_03003F80 ldr r1, _08072628 @ =gUnk_03001160 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 gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 movs r1, #0x11 movs r2, #0x40 bl sub_080A29AC 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 gUnk_03001160 _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 @ =gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _08072DD0: ldr r1, _08072DEC @ =gUnk_0811BBD4 ldr r0, _08072DF0 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _08072E30: ldrb r0, [r4, #0x14] movs r1, #4 eors r0, r1 strb r0, [r4, #0x14] ldr r1, _08072E58 @ =gUnk_0811BBD4 ldr r0, _08072E5C @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 sub_080A2960 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 sub_080A29AC 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 sub_080A29AC 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 sub_0807CA84 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 sub_080A29AC _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 sub_0807CA84 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 sub_0807CA84 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 @ =gUnk_03001160 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 gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08075270 ldr r0, _08075298 @ =gUnk_03001160 adds r1, r4, #0 bl sub_0806FA24 adds r0, r4, #0 adds r1, r6, #0 bl sub_0807DAD0 _08075270: ldr r4, _08075298 @ =gUnk_03001160 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 gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _080753D8: .4byte 0x00017FFF _080753DC: ldr r2, _080753F0 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 sub_080A2960 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 @ =gUnk_03001160 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 gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _080757D4: ldr r7, _08075890 @ =gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 sub_080A29AC b _080759B2 .align 2, 0 _08075990: .4byte gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _08075CFC: .4byte gUnk_08126EEC _08075D00: .4byte gUnk_03003F80 _08075D04: ldr r1, _08075D10 @ =gUnk_03001160 adds r1, #0x7a ldrh r0, [r1] adds r0, #1 strh r0, [r1] _08075D0E: pop {r4, r5, pc} .align 2, 0 _08075D10: .4byte gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 sub_0807CA84 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 @ =gUnk_03001160 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 sub_0806FA48 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _08076720: ldr r1, _08076748 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _080767C8: ldr r1, _080767D4 @ =gUnk_03001160 adds r1, #0x7a ldrh r0, [r1] adds r0, #1 strh r0, [r1] b _080767FE .align 2, 0 _080767D4: .4byte gUnk_03001160 _080767D8: ldrb r0, [r4, #4] cmp r0, #1 bls _080767FE ldr r1, _080767F4 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 sub_080A29AC b _080768DA .align 2, 0 _08076880: .4byte gUnk_03003F80 _08076884: adds r0, r4, #0 movs r1, #0x11 movs r2, #0x40 bl sub_080A29AC 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 movs r0, #0xc0 lsls r0, r0, #2 b _08076AC2 .align 2, 0 _08076AB4: .4byte gUnk_03003F80 _08076AB8: .4byte gUnk_03001160 _08076ABC: ldr r1, _08076B00 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 adds r1, #0x7a ldrh r0, [r1] adds r0, #1 strh r0, [r1] pop {pc} .align 2, 0 _08076B94: .4byte gUnk_0811BDD8 _08076B98: .4byte gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 bl sub_0806F948 adds r0, r4, #0 bl sub_08077BB8 pop {r4, pc} .align 2, 0 _08076CB8: .4byte gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 str r0, [r1, #0x50] b _08076EC6 .align 2, 0 _08076EB4: .4byte gUnk_03003F80 _08076EB8: .4byte 0x00000504 _08076EBC: .4byte gUnk_03001160 _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 @ =gUnk_03001160 ldrb r0, [r0, #0xd] cmp r0, #0x1b bne _08076F24 ldr r1, _08076F20 @ =0x00000524 b _08076F36 .align 2, 0 _08076F1C: .4byte gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 sub_0807CA84 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 @ =gUnk_03001160 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 gUnk_03001160 _080772FC: .4byte gUnk_0811BE16 _08077300: adds r0, r4, #0 bl sub_08077E24 ldr r3, _08077310 @ =gUnk_03001160 ldr r2, _08077314 @ =gUnk_0811BE16 ldrb r1, [r4, #0xe] adds r0, r5, #0 b _08077326 .align 2, 0 _08077310: .4byte gUnk_03001160 _08077314: .4byte gUnk_0811BE16 _08077318: adds r0, r4, #0 bl sub_08077E24 ldr r3, _0807736C @ =gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 sub_080A29AC 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 sub_080A29AC 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 @ =gUnk_03001160 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 gUnk_03001160 _0807749C: .4byte gUnk_03003F80 thumb_func_start sub_080774A0 sub_080774A0: @ 0x080774A0 push {r4, r5, r6, r7, lr} ldr r3, _080774FC @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0x10] _08077610: pop {r4, pc} .align 2, 0 _08077614: .4byte gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 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 @ =gUnk_03001160 ldrb r0, [r1, #0xd] adds r0, #1 strb r0, [r1, #0xd] b _080777CC .align 2, 0 _0807780C: .4byte gUnk_03001160 _08077810: ldrb r0, [r2, #0x1a] cmp r0, #0 bne _0807787A ands r1, r4 cmp r1, #0 beq _0807787A ldr r0, _08077834 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 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 sub_0805E678 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 thumb_func_start sub_08077E24 sub_08077E24: @ 0x08077E24 push {r4, lr} adds r4, r0, #0 ldr r0, _08077E38 @ =gUnk_03001160 bl sub_080042B8 adds r0, r4, #0 bl sub_08077E54 pop {r4, pc} .align 2, 0 _08077E38: .4byte gUnk_03001160 thumb_func_start sub_08077E3C sub_08077E3C: @ 0x08077E3C push {r4, lr} adds r4, r0, #0 ldr r0, _08077E50 @ =gUnk_03001160 bl sub_080042BA adds r0, r4, #0 bl sub_08077E54 pop {r4, pc} .align 2, 0 _08077E50: .4byte gUnk_03001160 thumb_func_start sub_08077E54 sub_08077E54: @ 0x08077E54 ldr r2, _08077E74 @ =gUnk_03001160 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 gUnk_03001160 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 @ =gUnk_03001160 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 sub_080A2960 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _080785E8: .4byte gUnk_0811C00C _080785EC: .4byte gUnk_03003DF0 _080785F0: ldr r3, _08078624 @ =gUnk_03001160 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 gUnk_03001160 _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 sub_080A2960 _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 @ =gUnk_03001160 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 @ =gUnk_03001160 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 @ =gUnk_03001160 cmp r4, #0 bne _08078A0C _08078A2E: ldr r0, _08078A60 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 str r1, [r0, #0x74] bx lr .align 2, 0 _08079194: .4byte gUnk_03003F80 _08079198: .4byte gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 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 @ =gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _08079214: bl sub_08079258 _08079218: pop {pc} .align 2, 0 thumb_func_start sub_0807921C sub_0807921C: @ 0x0807921C push {r4, lr} ldr r4, _0807924C @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 strh r0, [r2, #0x24] strb r1, [r2, #0x15] pop {r4, pc} .align 2, 0 _080792D0: .4byte gUnk_03003F80 _080792D4: .4byte gUnk_03001160 thumb_func_start sub_080792D8 sub_080792D8: @ 0x080792D8 push {r4, r5, r6, lr} ldr r5, _08079344 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 ldrb r0, [r0, #0x14] lsrs r0, r0, #1 b _08079410 .align 2, 0 _080793FC: .4byte gUnk_03003F80 _08079400: .4byte gUnk_0811C0F8 _08079404: .4byte gUnk_03001160 _08079408: ldr r1, _08079448 @ =gUnk_0811C0F8 ldr r0, _0807944C @ =gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _0807949C: .4byte gUnk_03003F80 _080794A0: ldr r2, _080794DC @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 bl sub_08016A04 pop {r4, r5, pc} .align 2, 0 _0807951C: .4byte gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _080795B4: bl sub_08079778 cmp r0, #0 bne _080795BE b _080796FC _080795BE: ldr r3, _08079610 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 ldrb r0, [r1, #0x14] lsrs r0, r0, #1 b _080797A4 .align 2, 0 _08079790: .4byte gUnk_03003F80 _08079794: .4byte gUnk_0811C108 _08079798: .4byte gUnk_03001160 _0807979C: ldr r2, _080797BC @ =gUnk_0811C108 ldr r1, _080797C0 @ =gUnk_03001160 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 gUnk_03001160 thumb_func_start sub_080797C4 sub_080797C4: @ 0x080797C4 push {lr} ldr r1, _080797E4 @ =gUnk_0811C110 ldr r2, _080797E8 @ =gUnk_03001160 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 gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 bl sub_080042B8 _0807992E: pop {r4, r5, pc} .align 2, 0 _08079930: .4byte gUnk_03003F80 _08079934: .4byte gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _08079B20: .4byte gUnk_03003F80 thumb_func_start sub_08079B24 sub_08079B24: @ 0x08079B24 push {r4, r5, lr} ldr r2, _08079B60 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0x10] movs r0, #0 b _08079BD6 .align 2, 0 _08079BD0: .4byte gUnk_03001160 _08079BD4: movs r0, #1 _08079BD6: pop {r4, r5, pc} thumb_func_start sub_08079BD8 sub_08079BD8: @ 0x08079BD8 push {r4, r5, lr} ldr r4, _08079C2C @ =gUnk_03001160 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 gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _08079DC4: .4byte gUnk_03003F80 _08079DC8: .4byte 0x00000193 thumb_func_start sub_08079DCC sub_08079DCC: @ 0x08079DCC push {lr} ldr r0, _08079DFC @ =gUnk_03001160 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 gUnk_03001160 _08079E00: .4byte gUnk_03003F80 _08079E04: .4byte 0x00000193 thumb_func_start sub_08079E08 sub_08079E08: @ 0x08079E08 push {r4, lr} ldr r0, _08079E50 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 ldrb r1, [r0, #0x15] adds r1, #4 b _08079F7C .align 2, 0 _08079F60: .4byte gUnk_0811C118 _08079F64: .4byte gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _08079FC0: movs r0, #1 _08079FC2: pop {pc} thumb_func_start sub_08079FC4 sub_08079FC4: @ 0x08079FC4 push {lr} adds r1, r0, #0 ldr r0, _08079FD0 @ =gUnk_03001160 bl sub_08079FD4 pop {pc} .align 2, 0 _08079FD0: .4byte gUnk_03001160 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 @ =gUnk_03001160 bl sub_0801D2B4 _0807A084: pop {pc} .align 2, 0 _0807A088: .4byte gUnk_03003F80 _0807A08C: .4byte gUnk_02000050 _0807A090: .4byte gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 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 sub_0806FA48 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _0807A3F8: .4byte gUnk_0811C1D8 _0807A3FC: movs r0, #1 mov r8, r0 _0807A400: ldr r5, _0807A444 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _0807A4B0: mov r0, sb cmp r0, #2 bne _0807A4C2 ldr r0, _0807A4E8 @ =gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 cmp r4, #0xe bgt _0807A7F0 lsls r0, r4, #1 adds r1, r0, r1 b _0807A7E8 .align 2, 0 _0807A7D8: .4byte gUnk_0800823C _0807A7DC: .4byte gUnk_03001160 _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 @ =gUnk_03001160 cmp r4, #0 ble _0807A814 lsls r0, r4, #1 adds r1, r0, r1 b _0807A80C .align 2, 0 _0807A800: .4byte gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _0807A85C: lsls r2, r4 ldr r3, _0807A86C @ =gUnk_03001160 cmp r4, #0xe bgt _0807A880 movs r1, #0x80 lsls r1, r1, #8 b _0807A878 .align 2, 0 _0807A86C: .4byte gUnk_03001160 _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 @ =gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 sub_080A2960 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 sub_0806FA48 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 sub_080A2960 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 sub_0806FA48 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 sub_0807CA84 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 sub_0807CA84 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 sub_0807CA84 cmp r0, #1 bne _0807AF02 ldrh r0, [r4] movs r1, #1 orrs r0, r1 strh r0, [r4] _0807AF02: movs r0, #0x49 bl sub_0807CA84 cmp r0, #1 bne _0807AF14 ldrh r0, [r4] movs r1, #2 orrs r0, r1 strh r0, [r4] _0807AF14: movs r0, #0x4a bl sub_0807CA84 cmp r0, #1 bne _0807AF26 ldrh r0, [r4] movs r1, #4 orrs r0, r1 strh r0, [r4] _0807AF26: movs r0, #0x4b bl sub_0807CA84 cmp r0, #1 bne _0807AF38 ldrh r0, [r4] movs r1, #8 orrs r0, r1 strh r0, [r4] _0807AF38: movs r0, #0x4c bl sub_0807CA84 cmp r0, #1 bne _0807AF4A ldrh r0, [r4] movs r1, #0x10 orrs r0, r1 strh r0, [r4] _0807AF4A: movs r0, #0x4d bl sub_0807CA84 cmp r0, #1 bne _0807AF5C ldrh r0, [r4] movs r1, #0x20 orrs r0, r1 strh r0, [r4] _0807AF5C: movs r0, #0x4e bl sub_0807CA84 cmp r0, #1 bne _0807AF6E ldrh r0, [r4] movs r1, #0x40 orrs r0, r1 strh r0, [r4] _0807AF6E: movs r0, #0x4f bl sub_0807CA84 cmp r0, #1 bne _0807AF80 ldrh r0, [r4] movs r1, #0x80 orrs r0, r1 strh r0, [r4] _0807AF80: movs r0, #6 bl sub_0807CA84 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 sub_0807CA84 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 sub_0807CA84 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 sub_0807CA84 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 @ =gUnk_03001160 movs r1, #0x43 movs r2, #0 bl sub_080A29AC 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 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 @ =gUnk_03001160 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 gUnk_03001160 _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 @ =gUnk_03001160 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 gUnk_03001160 _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 thumb_func_start sub_0807CA84 sub_0807CA84: @ 0x0807CA84 adds r2, r0, #0 lsrs r0, r2, #2 ldr r1, _0807CA9C @ =gUnk_02002B32 adds r0, r0, r1 ldrb r0, [r0] movs r1, #3 ands r2, r1 lsls r2, r2, #1 asrs r0, r2 ands r0, r1 bx lr .align 2, 0 _0807CA9C: .4byte gUnk_02002B32 thumb_func_start sub_0807CAA0 sub_0807CAA0: @ 0x0807CAA0 push {r4, lr} adds r3, r0, #0 lsrs r4, r3, #2 ldr r0, _0807CAC4 @ =gUnk_02002B32 adds r4, r4, r0 movs r0, #3 ands r3, r0 lsls r3, r3, #1 lsls r1, r3 ldrb r2, [r4] lsls r0, r3 ands r0, r2 eors r2, r0 orrs r2, r1 strb r2, [r4] lsrs r0, r3 pop {r4, pc} .align 2, 0 _0807CAC4: .4byte gUnk_02002B32 thumb_func_start sub_0807CAC8 sub_0807CAC8: @ 0x0807CAC8 ldr r2, _0807CAE0 @ =gUnk_02002A40 ldr r1, _0807CAE4 @ =gUnk_02033A90 ldr r3, _0807CAE8 @ =0x0000047C adds r2, r2, r3 ldrb r1, [r1, #3] adds r2, r2, r1 movs r1, #1 lsls r1, r0 ldrb r0, [r2] orrs r1, r0 strb r1, [r2] bx lr .align 2, 0 _0807CAE0: .4byte gUnk_02002A40 _0807CAE4: .4byte gUnk_02033A90 _0807CAE8: .4byte 0x0000047C thumb_func_start sub_0807CAEC sub_0807CAEC: @ 0x0807CAEC adds r2, r0, #0 ldr r0, _0807CB04 @ =gUnk_02002A40 ldr r1, _0807CB08 @ =gUnk_02033A90 ldr r3, _0807CB0C @ =0x0000047C adds r0, r0, r3 ldrb r1, [r1, #3] adds r0, r0, r1 ldrb r0, [r0] asrs r0, r2 movs r1, #1 ands r0, r1 bx lr .align 2, 0 _0807CB04: .4byte gUnk_02002A40 _0807CB08: .4byte gUnk_02033A90 _0807CB0C: .4byte 0x0000047C thumb_func_start sub_0807CB10 sub_0807CB10: @ 0x0807CB10 push {lr} adds r2, r0, #0 ldr r0, _0807CB20 @ =gUnk_02002C9C adds r2, r2, r1 adds r1, r2, #0 bl sub_0801D5A8 pop {pc} .align 2, 0 _0807CB20: .4byte gUnk_02002C9C thumb_func_start sub_0807CB24 sub_0807CB24: @ 0x0807CB24 push {lr} adds r2, r0, #0 adds r3, r1, #0 cmp r2, #0x11 bhi _0807CB84 lsls r0, r2, #2 ldr r1, _0807CB38 @ =_0807CB3C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807CB38: .4byte _0807CB3C _0807CB3C: @ jump table .4byte _0807CB84 @ case 0 .4byte _0807CB88 @ case 1 .4byte _0807CB88 @ case 2 .4byte _0807CB88 @ case 3 .4byte _0807CB88 @ case 4 .4byte _0807CB88 @ case 5 .4byte _0807CB88 @ case 6 .4byte _0807CB88 @ case 7 .4byte _0807CB88 @ case 8 .4byte _0807CB88 @ case 9 .4byte _0807CB88 @ case 10 .4byte _0807CB88 @ case 11 .4byte _0807CB88 @ case 12 .4byte _0807CB88 @ case 13 .4byte _0807CB84 @ case 14 .4byte _0807CBA0 @ case 15 .4byte _0807CBAE @ case 16 .4byte _0807CBBC @ case 17 _0807CB84: movs r1, #0 b _0807CBCA _0807CB88: ldr r0, _0807CB9C @ =gUnk_0811E454 lsls r1, r2, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r3, #0 bl sub_0807CB10 _0807CB96: adds r1, r0, #0 b _0807CBCA .align 2, 0 _0807CB9C: .4byte gUnk_0811E454 _0807CBA0: adds r0, r3, #0 bl sub_0807CA84 cmp r0, #0 beq _0807CB96 movs r0, #1 b _0807CB96 _0807CBAE: adds r0, r3, #0 bl sub_0807CA84 movs r1, #0 cmp r0, #1 bne _0807CBCA b _0807CBC8 _0807CBBC: adds r0, r3, #0 bl sub_0807CA84 movs r1, #0 cmp r0, #2 bne _0807CBCA _0807CBC8: movs r1, #1 _0807CBCA: adds r0, r1, #0 pop {pc} .align 2, 0 thumb_func_start sub_0807CBD0 sub_0807CBD0: @ 0x0807CBD0 push {lr} adds r1, r0, #0 ldr r0, _0807CBE0 @ =gUnk_02033A90 ldrh r0, [r0, #4] bl sub_0807CB10 pop {pc} .align 2, 0 _0807CBE0: .4byte gUnk_02033A90 thumb_func_start sub_0807CBE4 sub_0807CBE4: @ 0x0807CBE4 push {lr} ldr r3, _0807CC14 @ =0x000003FF ands r3, r0 movs r1, #0xf0 lsls r1, r1, #6 ands r1, r0 lsrs r1, r1, #0xa adds r2, r1, #1 movs r1, #0xc0 lsls r1, r1, #8 ands r1, r0 lsrs r1, r1, #0xe cmp r1, #1 beq _0807CC22 cmp r1, #1 blo _0807CC18 cmp r1, #2 bne _0807CC2C adds r0, r3, #0 adds r1, r2, #0 bl sub_0807CC88 b _0807CC2E .align 2, 0 _0807CC14: .4byte 0x000003FF _0807CC18: adds r0, r3, #0 adds r1, r2, #0 bl sub_0807CC60 b _0807CC2E _0807CC22: adds r0, r3, #0 adds r1, r2, #0 bl sub_0807CC78 b _0807CC2E _0807CC2C: movs r0, #0 _0807CC2E: pop {pc} thumb_func_start sub_0807CC30 sub_0807CC30: @ 0x0807CC30 push {lr} adds r1, r0, #0 movs r0, #0 bl sub_0807CB10 pop {pc} thumb_func_start sub_0807CC3C sub_0807CC3C: @ 0x0807CC3C push {lr} adds r1, r0, #0 ldr r0, _0807CC48 @ =gUnk_02034364 bl sub_0801D5A8 pop {pc} .align 2, 0 _0807CC48: .4byte gUnk_02034364 thumb_func_start sub_0807CC4C sub_0807CC4C: @ 0x0807CC4C push {lr} adds r3, r0, #0 ldr r0, _0807CC5C @ =gUnk_02002C9C adds r3, r3, r1 adds r1, r3, #0 bl sub_08000F10 pop {pc} .align 2, 0 _0807CC5C: .4byte gUnk_02002C9C thumb_func_start sub_0807CC60 sub_0807CC60: @ 0x0807CC60 push {lr} adds r3, r0, #0 adds r2, r1, #0 ldr r0, _0807CC74 @ =gUnk_02033A90 ldrh r0, [r0, #4] adds r1, r3, #0 bl sub_0807CC4C pop {pc} .align 2, 0 _0807CC74: .4byte gUnk_02033A90 thumb_func_start sub_0807CC78 sub_0807CC78: @ 0x0807CC78 push {lr} adds r3, r0, #0 adds r2, r1, #0 movs r0, #0 adds r1, r3, #0 bl sub_0807CC4C pop {pc} thumb_func_start sub_0807CC88 sub_0807CC88: @ 0x0807CC88 push {lr} adds r3, r0, #0 adds r2, r1, #0 ldr r0, _0807CC98 @ =gUnk_02034364 adds r1, r3, #0 bl sub_08000F10 pop {pc} .align 2, 0 _0807CC98: .4byte gUnk_02034364 thumb_func_start sub_0807CC9C sub_0807CC9C: @ 0x0807CC9C push {lr} adds r2, r0, #0 cmp r1, #0 beq _0807CCAC ldr r0, _0807CCB0 @ =gUnk_02002C9C adds r1, r2, r1 bl sub_0801D5BC _0807CCAC: pop {pc} .align 2, 0 _0807CCB0: .4byte gUnk_02002C9C thumb_func_start sub_0807CCB4 sub_0807CCB4: @ 0x0807CCB4 push {lr} adds r1, r0, #0 ldr r0, _0807CCC4 @ =gUnk_02033A90 ldrh r0, [r0, #4] bl sub_0807CC9C pop {pc} .align 2, 0 _0807CCC4: .4byte gUnk_02033A90 thumb_func_start sub_0807CCC8 sub_0807CCC8: @ 0x0807CCC8 push {lr} adds r1, r0, #0 cmp r1, #0 beq _0807CD02 ldr r2, _0807CCF0 @ =0x000003FF ands r2, r1 movs r0, #0xc0 lsls r0, r0, #8 ands r0, r1 lsrs r0, r0, #0xe cmp r0, #1 beq _0807CCFC cmp r0, #1 blo _0807CCF4 cmp r0, #2 bne _0807CD02 adds r0, r2, #0 bl sub_0807CD10 b _0807CD02 .align 2, 0 _0807CCF0: .4byte 0x000003FF _0807CCF4: adds r0, r2, #0 bl sub_0807CCB4 b _0807CD02 _0807CCFC: adds r0, r2, #0 bl sub_0807CD04 _0807CD02: pop {pc} thumb_func_start sub_0807CD04 sub_0807CD04: @ 0x0807CD04 push {lr} adds r1, r0, #0 movs r0, #0 bl sub_0807CC9C pop {pc} thumb_func_start sub_0807CD10 sub_0807CD10: @ 0x0807CD10 push {lr} adds r1, r0, #0 ldr r0, _0807CD1C @ =gUnk_02034364 bl sub_0801D5BC pop {pc} .align 2, 0 _0807CD1C: .4byte gUnk_02034364 thumb_func_start sub_0807CD20 sub_0807CD20: @ 0x0807CD20 push {lr} adds r2, r0, #0 ldr r0, _0807CD30 @ =gUnk_02002C9C adds r2, r2, r1 adds r1, r2, #0 bl sub_0801D5D4 pop {pc} .align 2, 0 _0807CD30: .4byte gUnk_02002C9C thumb_func_start sub_0807CD34 sub_0807CD34: @ 0x0807CD34 push {lr} adds r1, r0, #0 ldr r0, _0807CD44 @ =gUnk_02033A90 ldrh r0, [r0, #4] bl sub_0807CD20 pop {pc} .align 2, 0 _0807CD44: .4byte gUnk_02033A90 thumb_func_start sub_0807CD48 sub_0807CD48: @ 0x0807CD48 push {lr} ldr r2, _0807CD6C @ =0x000003FF ands r2, r0 movs r1, #0xc0 lsls r1, r1, #8 ands r1, r0 lsrs r1, r1, #0xe cmp r1, #1 beq _0807CD78 cmp r1, #1 blo _0807CD70 cmp r1, #2 bne _0807CD7E adds r0, r2, #0 bl sub_0807CD8C b _0807CD7E .align 2, 0 _0807CD6C: .4byte 0x000003FF _0807CD70: adds r0, r2, #0 bl sub_0807CD34 b _0807CD7E _0807CD78: adds r0, r2, #0 bl sub_0807CD80 _0807CD7E: pop {pc} thumb_func_start sub_0807CD80 sub_0807CD80: @ 0x0807CD80 push {lr} adds r1, r0, #0 movs r0, #0 bl sub_0807CD20 pop {pc} thumb_func_start sub_0807CD8C sub_0807CD8C: @ 0x0807CD8C push {lr} adds r1, r0, #0 ldr r0, _0807CD98 @ =gUnk_02034364 bl sub_0801D5D4 pop {pc} .align 2, 0 _0807CD98: .4byte gUnk_02034364 thumb_func_start sub_0807CD9C sub_0807CD9C: @ 0x0807CD9C push {lr} bl sub_080530C8 pop {pc} thumb_func_start sub_0807CDA4 sub_0807CDA4: @ 0x0807CDA4 push {lr} ldr r2, _0807CDB8 @ =gUnk_0811E478 ldr r1, _0807CDBC @ =gUnk_02000080 ldrb r1, [r1, #7] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0807CDB8: .4byte gUnk_0811E478 _0807CDBC: .4byte gUnk_02000080 thumb_func_start sub_0807CDC0 sub_0807CDC0: @ 0x0807CDC0 push {lr} ldr r0, _0807CDE0 @ =gUnk_02021EE0 ldrh r1, [r0, #0xa] subs r1, #8 strh r1, [r0, #0xa] movs r1, #8 ldrsh r0, [r0, r1] cmp r0, #0 bgt _0807CDDC ldr r0, _0807CDE4 @ =gUnk_02000080 movs r1, #8 strh r1, [r0, #0xa] movs r1, #1 strb r1, [r0, #7] _0807CDDC: movs r0, #0 pop {pc} .align 2, 0 _0807CDE0: .4byte gUnk_02021EE0 _0807CDE4: .4byte gUnk_02000080 thumb_func_start sub_0807CDE8 sub_0807CDE8: @ 0x0807CDE8 push {r4, r5, lr} adds r4, r0, #0 ldr r1, _0807CE08 @ =gUnk_02000080 ldrh r0, [r1, #0xa] cmp r0, #0 bne _0807CE4C bl sub_0805616C cmp r4, #1 beq _0807CE20 cmp r4, #1 blo _0807CE0C cmp r4, #2 beq _0807CE2E b _0807CE38 .align 2, 0 _0807CE08: .4byte gUnk_02000080 _0807CE0C: movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #4] ldr r1, _0807CE1C @ =gUnk_02002A40 bl sub_0807CF08 b _0807CE36 .align 2, 0 _0807CE1C: .4byte gUnk_02002A40 _0807CE20: movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #4] bl sub_0807CF48 movs r5, #1 b _0807CE38 _0807CE2E: movs r0, #0x80 lsls r0, r0, #0x12 bl sub_0807CF10 _0807CE36: adds r5, r0, #0 _0807CE38: ldr r1, _0807CE48 @ =gUnk_02000080 strh r5, [r1, #0xa] movs r0, #2 strb r0, [r1, #7] bl sub_08056208 b _0807CE50 .align 2, 0 _0807CE48: .4byte gUnk_02000080 _0807CE4C: subs r0, #1 strh r0, [r1, #0xa] _0807CE50: movs r0, #0 pop {r4, r5, pc} thumb_func_start sub_0807CE54 sub_0807CE54: @ 0x0807CE54 push {r4, r5, lr} movs r4, #0 ldr r2, _0807CE88 @ =gUnk_02021EE0 ldrh r0, [r2, #0xa] adds r0, #8 strh r0, [r2, #0xa] ldrh r3, [r2, #6] movs r5, #6 ldrsh r1, [r2, r5] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r1, r0 bgt _0807CE84 strh r3, [r2, #0xa] bl sub_08050384 ldr r0, _0807CE8C @ =gUnk_02000080 movs r1, #0 strb r1, [r0, #7] ldrh r0, [r0, #0xa] subs r4, #1 cmp r0, #1 bne _0807CE84 movs r4, #1 _0807CE84: adds r0, r4, #0 pop {r4, r5, pc} .align 2, 0 _0807CE88: .4byte gUnk_02021EE0 _0807CE8C: .4byte gUnk_02000080 thumb_func_start sub_0807CE90 sub_0807CE90: @ 0x0807CE90 push {r4, r5, r6, lr} movs r0, #0x40 bl sub_080B1520 movs r0, #4 bl sub_0807D1C4 adds r4, r0, #0 movs r5, #0 ldrh r0, [r4, #6] ldr r6, _0807CF04 @ =gUnk_0811E484 ldrh r2, [r4] adds r1, r6, #0 bl sub_0807D24C cmp r0, #0 bne _0807CEB4 movs r5, #1 _0807CEB4: ldrh r0, [r4, #8] ldrh r2, [r4] adds r1, r6, #0 bl sub_0807D24C cmp r0, #0 bne _0807CEC4 adds r5, #2 _0807CEC4: cmp r5, #0 beq _0807CEFE cmp r5, #3 bne _0807CEEA movs r0, #5 bl sub_0807CF68 movs r0, #3 bl sub_0807CF68 movs r0, #2 bl sub_0807CF68 movs r0, #1 bl sub_0807CF68 movs r0, #0 bl sub_0807CF68 _0807CEEA: ldrh r0, [r4, #8] ldrh r2, [r4] adds r1, r6, #0 bl sub_0807D20C ldrh r0, [r4, #6] ldrh r2, [r4] adds r1, r6, #0 bl sub_0807D20C _0807CEFE: movs r0, #1 pop {r4, r5, r6, pc} .align 2, 0 _0807CF04: .4byte gUnk_0811E484 thumb_func_start sub_0807CF08 sub_0807CF08: @ 0x0807CF08 push {lr} bl sub_0807CF88 pop {pc} thumb_func_start sub_0807CF10 sub_0807CF10: @ 0x0807CF10 push {lr} adds r1, r0, #0 movs r0, #3 bl sub_0807CF88 pop {pc} thumb_func_start sub_0807CF1C sub_0807CF1C: @ 0x0807CF1C push {lr} adds r1, r0, #0 movs r0, #5 bl sub_0807CF88 pop {pc} thumb_func_start sub_0807CF28 sub_0807CF28: @ 0x0807CF28 push {lr} bl sub_0807D008 pop {pc} thumb_func_start sub_0807CF30 sub_0807CF30: @ 0x0807CF30 push {lr} adds r1, r0, #0 movs r0, #3 bl sub_0807D008 pop {pc} thumb_func_start sub_0807CF3C sub_0807CF3C: @ 0x0807CF3C push {lr} adds r1, r0, #0 movs r0, #5 bl sub_0807D008 pop {pc} thumb_func_start sub_0807CF48 sub_0807CF48: @ 0x0807CF48 push {r4, r5, lr} bl sub_0807D1C4 adds r4, r0, #0 ldrh r0, [r4, #4] ldr r5, _0807CF64 @ =gUnk_0811E4AC adds r1, r5, #0 bl sub_0807D184 ldrh r0, [r4, #2] adds r1, r5, #0 bl sub_0807D184 pop {r4, r5, pc} .align 2, 0 _0807CF64: .4byte gUnk_0811E4AC thumb_func_start sub_0807CF68 sub_0807CF68: @ 0x0807CF68 push {r4, r5, lr} bl sub_0807D1C4 adds r4, r0, #0 ldr r5, _0807CF84 @ =gUnk_0811E4A4 ldrh r0, [r4, #4] adds r1, r5, #0 bl sub_0807D184 ldrh r0, [r4, #2] adds r1, r5, #0 bl sub_0807D184 pop {r4, r5, pc} .align 2, 0 _0807CF84: .4byte gUnk_0811E4A4 thumb_func_start sub_0807CF88 sub_0807CF88: @ 0x0807CF88 push {r4, r5, r6, r7, lr} sub sp, #8 adds r7, r1, #0 bl sub_0807D1C4 adds r6, r0, #0 ldr r0, _0807D004 @ =0x4D435A33 mov r5, sp str r0, [sp, #4] add r0, sp, #4 movs r1, #4 bl sub_0807D1A4 adds r4, r0, #0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 ldrh r1, [r6] adds r0, r7, #0 bl sub_0807D1A4 adds r4, r4, r0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 mov r0, sp strh r4, [r0] lsls r4, r4, #0x10 asrs r4, r4, #0x10 rsbs r4, r4, #0 strh r4, [r5, #2] ldrh r0, [r6, #6] ldrh r2, [r6] adds r1, r7, #0 bl sub_0807D20C adds r4, r0, #0 cmp r4, #0 beq _0807CFDC ldrh r0, [r6, #2] mov r1, sp bl sub_0807D184 adds r4, r0, #0 _0807CFDC: ldrh r0, [r6, #8] ldrh r2, [r6] adds r1, r7, #0 bl sub_0807D20C cmp r0, #0 beq _0807CFF2 ldrh r0, [r6, #4] mov r1, sp bl sub_0807D184 _0807CFF2: movs r1, #0 cmp r4, #0 bne _0807CFFC cmp r0, #0 beq _0807CFFE _0807CFFC: movs r1, #1 _0807CFFE: adds r0, r1, #0 add sp, #8 pop {r4, r5, r6, r7, pc} .align 2, 0 _0807D004: .4byte 0x4D435A33 thumb_func_start sub_0807D008 sub_0807D008: @ 0x0807D008 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #0xc adds r7, r1, #0 bl sub_0807D1C4 adds r5, r0, #0 ldrh r0, [r5, #2] add r4, sp, #4 adds r1, r4, #0 bl sub_0807D0EC adds r6, r0, #0 mov r8, r4 cmp r6, #2 bne _0807D048 ldrh r0, [r5, #6] ldrh r2, [r5] adds r1, r7, #0 bl sub_0807D1D8 cmp r0, #0 beq _0807D046 ldrh r2, [r5] mov r0, r8 adds r1, r7, #0 bl sub_0807D0A0 cmp r0, #0 bne _0807D072 _0807D046: movs r6, #0 _0807D048: ldrh r0, [r5, #4] mov r1, r8 bl sub_0807D0EC adds r4, r0, #0 cmp r4, #2 bne _0807D078 ldrh r0, [r5, #8] ldrh r2, [r5] adds r1, r7, #0 bl sub_0807D1D8 cmp r0, #0 beq _0807D076 ldrh r2, [r5] mov r0, r8 adds r1, r7, #0 bl sub_0807D0A0 cmp r0, #0 beq _0807D076 _0807D072: movs r0, #1 b _0807D098 _0807D076: movs r4, #0 _0807D078: movs r0, #0 str r0, [sp] ldrh r2, [r5] lsrs r2, r2, #2 movs r0, #0xa0 lsls r0, r0, #0x13 orrs r2, r0 mov r0, sp adds r1, r7, #0 bl CpuSet orrs r6, r4 movs r0, #0 cmp r6, #0 bne _0807D098 subs r0, #1 _0807D098: add sp, #0xc pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0807D0A0 sub_0807D0A0: @ 0x0807D0A0 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r5, r1, #0 adds r6, r2, #0 adds r0, r7, #4 movs r1, #4 bl sub_0807D1A4 adds r4, r0, #0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 adds r0, r5, #0 adds r1, r6, #0 bl sub_0807D1A4 adds r4, r4, r0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 ldrh r0, [r7] cmp r0, r4 bne _0807D0DE lsls r0, r0, #0x10 ldrh r1, [r7, #2] rsbs r0, r0, #0 lsrs r0, r0, #0x10 cmp r1, r0 bne _0807D0DE ldr r1, [r7, #4] ldr r0, _0807D0E4 @ =0x4D435A33 cmp r1, r0 beq _0807D0E8 _0807D0DE: movs r0, #0 b _0807D0EA .align 2, 0 _0807D0E4: .4byte 0x4D435A33 _0807D0E8: movs r0, #1 _0807D0EA: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0807D0EC sub_0807D0EC: @ 0x0807D0EC push {r4, r5, r6, lr} adds r6, r0, #0 adds r4, r1, #0 movs r2, #8 bl sub_0807D1D8 cmp r0, #0 bne _0807D100 movs r5, #0 b _0807D10C _0807D100: adds r0, r4, #0 bl sub_0807D128 adds r5, r0, #0 cmp r5, #0 bne _0807D124 _0807D10C: adds r0, r6, #0 adds r0, #8 adds r1, r4, #0 movs r2, #8 bl sub_0807D1D8 cmp r0, #0 beq _0807D124 adds r0, r4, #0 bl sub_0807D128 adds r5, r0, #0 _0807D124: adds r0, r5, #0 pop {r4, r5, r6, pc} thumb_func_start sub_0807D128 sub_0807D128: @ 0x0807D128 push {lr} adds r2, r0, #0 ldr r1, [r2, #4] ldr r0, _0807D13C @ =0x4D435A33 cmp r1, r0 beq _0807D150 cmp r1, r0 bhi _0807D144 ldr r0, _0807D140 @ =0x466C6544 b _0807D146 .align 2, 0 _0807D13C: .4byte 0x4D435A33 _0807D140: .4byte 0x466C6544 _0807D144: ldr r0, _0807D14C @ =0x54494E49 _0807D146: cmp r1, r0 beq _0807D164 b _0807D17C .align 2, 0 _0807D14C: .4byte 0x54494E49 _0807D150: ldrh r0, [r2] ldrh r1, [r2, #2] adds r0, r0, r1 movs r1, #0x80 lsls r1, r1, #9 movs r3, #0 cmp r0, r1 bne _0807D17E movs r3, #2 b _0807D17E _0807D164: movs r3, #0 ldrh r0, [r2] ldrh r1, [r2, #2] ands r1, r0 ldr r0, _0807D178 @ =0x0000FFFF cmp r1, r0 bne _0807D17E movs r3, #1 b _0807D17E .align 2, 0 _0807D178: .4byte 0x0000FFFF _0807D17C: movs r3, #0 _0807D17E: adds r0, r3, #0 pop {pc} .align 2, 0 thumb_func_start sub_0807D184 sub_0807D184: @ 0x0807D184 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 movs r2, #8 bl sub_0807D20C cmp r0, #0 bne _0807D1A0 adds r0, r4, #0 adds r0, #8 adds r1, r5, #0 movs r2, #8 bl sub_0807D20C _0807D1A0: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0807D1A4 sub_0807D1A4: @ 0x0807D1A4 push {lr} adds r2, r0, #0 movs r3, #0 cmp r1, #0 beq _0807D1BC _0807D1AE: ldrh r0, [r2] eors r0, r1 adds r3, r3, r0 adds r2, #2 subs r1, #2 cmp r1, #0 bne _0807D1AE _0807D1BC: lsls r0, r3, #0x10 lsrs r0, r0, #0x10 pop {pc} .align 2, 0 thumb_func_start sub_0807D1C4 sub_0807D1C4: @ 0x0807D1C4 adds r1, r0, #0 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, _0807D1D4 @ =gUnk_0811E4BC adds r0, r0, r1 bx lr .align 2, 0 _0807D1D4: .4byte gUnk_0811E4BC thumb_func_start sub_0807D1D8 sub_0807D1D8: @ 0x0807D1D8 push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 lsrs r4, r2, #3 adds r0, r4, #0 lsrs r5, r5, #3 b _0807D200 _0807D1E6: lsls r0, r5, #0x10 lsrs r0, r0, #0x10 adds r1, r6, #0 bl sub_080B15E8 lsls r0, r0, #0x10 cmp r0, #0 beq _0807D1FA movs r0, #0 b _0807D208 _0807D1FA: adds r5, #1 adds r6, #8 adds r0, r4, #0 _0807D200: subs r4, #1 cmp r0, #0 bne _0807D1E6 movs r0, #1 _0807D208: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0807D20C sub_0807D20C: @ 0x0807D20C push {r4, r5, r6, r7, lr} adds r6, r0, #0 adds r7, r1, #0 lsrs r5, r2, #3 adds r0, r5, #0 lsrs r6, r6, #3 b _0807D242 _0807D21A: lsls r0, r6, #0x10 lsrs r4, r0, #0x10 adds r0, r4, #0 adds r1, r7, #0 bl sub_080B18DC lsls r0, r0, #0x10 cmp r0, #0 beq _0807D23C adds r0, r4, #0 ldr r1, _0807D238 @ =gUnk_0811E4B4 bl sub_080B18DC movs r0, #0 b _0807D24A .align 2, 0 _0807D238: .4byte gUnk_0811E4B4 _0807D23C: adds r6, #1 adds r7, #8 adds r0, r5, #0 _0807D242: subs r5, #1 cmp r0, #0 bne _0807D21A movs r0, #1 _0807D24A: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0807D24C sub_0807D24C: @ 0x0807D24C push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 lsrs r4, r2, #3 adds r0, r4, #0 lsrs r5, r5, #3 b _0807D274 _0807D25A: lsls r0, r5, #0x10 lsrs r0, r0, #0x10 adds r1, r6, #0 bl sub_080B180C lsls r0, r0, #0x10 cmp r0, #0 beq _0807D26E movs r0, #0 b _0807D27C _0807D26E: adds r5, #1 adds r6, #8 adds r0, r4, #0 _0807D274: subs r4, #1 cmp r0, #0 bne _0807D25A movs r0, #1 _0807D27C: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0807D280 sub_0807D280: @ 0x0807D280 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r6, r0, #0 adds r5, r1, #0 ldr r1, _0807D2B0 @ =gUnk_03000BF0 movs r0, #0xa ldrsh r2, [r1, r0] ldrh r0, [r1, #6] subs r3, r2, r0 movs r0, #0xc ldrsh r2, [r1, r0] ldrh r0, [r1, #8] subs r4, r2, r0 ldrb r0, [r1, #0x10] mov r8, r1 cmp r0, #1 beq _0807D330 cmp r0, #1 bgt _0807D2B4 cmp r0, #0 beq _0807D2BA b _0807D404 .align 2, 0 _0807D2B0: .4byte gUnk_03000BF0 _0807D2B4: cmp r0, #2 beq _0807D3A0 b _0807D404 _0807D2BA: mov r2, r8 ldrh r1, [r2, #0x18] movs r0, #3 ands r0, r1 cmp r0, #1 beq _0807D2C8 b _0807D462 _0807D2C8: movs r2, #0x1c asrs r3, r3, #4 mov sb, r3 movs r3, #0x40 adds r3, r3, r5 mov ip, r3 ldr r4, _0807D328 @ =0x040000D4 ldr r7, _0807D32C @ =0x80000020 movs r0, #0xe8 lsls r0, r0, #3 adds r3, r5, r0 subs r0, #0x80 adds r1, r5, r0 _0807D2E2: str r1, [r4] str r3, [r4, #4] str r7, [r4, #8] ldr r0, [r4, #8] subs r3, #0x40 subs r1, #0x40 subs r2, #1 cmp r2, #0 bgt _0807D2E2 mov r1, r8 ldrh r0, [r1, #0x20] lsrs r0, r0, #4 subs r0, #1 ldrh r1, [r1, #0x18] lsrs r1, r1, #2 subs r0, r0, r1 lsls r0, r0, #8 mov r2, sb lsls r1, r2, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r6, r6, r0 ldr r0, _0807D328 @ =0x040000D4 str r6, [r0] str r5, [r0, #4] ldr r2, _0807D32C @ =0x80000020 str r2, [r0, #8] ldr r1, [r0, #8] movs r3, #0x80 lsls r3, r3, #1 adds r1, r6, r3 str r1, [r0] mov r1, ip b _0807D3F0 .align 2, 0 _0807D328: .4byte 0x040000D4 _0807D32C: .4byte 0x80000020 _0807D330: mov r2, r8 ldrh r3, [r2, #0x18] movs r0, #3 ands r0, r3 cmp r0, #0 beq _0807D33E b _0807D462 _0807D33E: asrs r7, r4, #4 movs r0, #0x3c adds r0, r0, r5 mov sb, r0 cmp r3, #0 beq _0807D36A ldr r4, _0807D398 @ =0x040000D4 ldr r1, _0807D39C @ =0x8000001E mov ip, r1 adds r3, r5, #4 adds r1, r5, #0 movs r2, #0x15 _0807D356: str r3, [r4] str r1, [r4, #4] mov r0, ip str r0, [r4, #8] ldr r0, [r4, #8] adds r3, #0x40 adds r1, #0x40 subs r2, #1 cmp r2, #0 bge _0807D356 _0807D36A: lsls r1, r7, #8 mov r2, r8 ldrh r0, [r2, #0x18] lsrs r0, r0, #2 lsls r0, r0, #1 adds r1, r1, r0 lsls r1, r1, #1 adds r6, r6, r1 mov r5, sb movs r1, #0x80 lsls r1, r1, #1 movs r2, #0x15 _0807D382: ldrh r0, [r6] strh r0, [r5] ldrh r0, [r6, #2] strh r0, [r5, #2] adds r5, #0x40 adds r6, r6, r1 subs r2, #1 cmp r2, #0 bge _0807D382 b _0807D462 .align 2, 0 _0807D398: .4byte 0x040000D4 _0807D39C: .4byte 0x8000001E _0807D3A0: mov r0, r8 ldrh r1, [r0, #0x18] movs r0, #3 ands r0, r1 cmp r0, #0 bne _0807D462 lsls r2, r1, #0x10 cmp r2, #0 beq _0807D3C2 ldr r1, _0807D3F8 @ =0x040000D4 adds r0, r5, #0 adds r0, #0x80 str r0, [r1] str r5, [r1, #4] ldr r0, _0807D3FC @ =0x800003C0 str r0, [r1, #8] ldr r0, [r1, #8] _0807D3C2: lsrs r0, r2, #0x12 lsls r0, r0, #8 asrs r1, r3, #4 lsls r1, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r6, r6, r0 ldr r0, _0807D3F8 @ =0x040000D4 str r6, [r0] movs r2, #0xa0 lsls r2, r2, #3 adds r1, r5, r2 str r1, [r0, #4] ldr r2, _0807D400 @ =0x80000020 str r2, [r0, #8] ldr r1, [r0, #8] movs r3, #0x80 lsls r3, r3, #1 adds r1, r6, r3 str r1, [r0] movs r3, #0xa8 lsls r3, r3, #3 adds r1, r5, r3 _0807D3F0: str r1, [r0, #4] str r2, [r0, #8] ldr r0, [r0, #8] b _0807D462 .align 2, 0 _0807D3F8: .4byte 0x040000D4 _0807D3FC: .4byte 0x800003C0 _0807D400: .4byte 0x80000020 _0807D404: mov r0, r8 ldrh r1, [r0, #0x18] movs r0, #3 ands r0, r1 cmp r0, #1 bne _0807D462 movs r2, #0 asrs r7, r4, #4 mov ip, r5 _0807D416: movs r1, #0x1d mov r3, ip adds r3, #0x3a _0807D41C: ldrh r0, [r3] strh r0, [r3, #4] subs r3, #2 subs r1, #1 cmp r1, #0 bge _0807D41C movs r1, #0x40 add ip, r1 adds r2, #1 cmp r2, #0x15 ble _0807D416 lsls r0, r7, #8 mov r2, r8 ldrh r1, [r2, #0x1e] lsrs r1, r1, #4 subs r1, #1 ldrh r2, [r2, #0x18] lsrs r2, r2, #2 subs r1, r1, r2 lsls r1, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r6, r6, r0 movs r1, #0x80 lsls r1, r1, #1 movs r2, #0x15 _0807D450: ldrh r0, [r6] strh r0, [r5] ldrh r0, [r6, #2] strh r0, [r5, #2] adds r5, #0x40 adds r6, r6, r1 subs r2, #1 cmp r2, #0 bge _0807D450 _0807D462: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0807D46C sub_0807D46C: @ 0x0807D46C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 str r0, [sp] str r1, [sp, #4] ldr r0, _0807D494 @ =gUnk_03000BF0 ldrb r2, [r0, #0x10] mov sb, r0 cmp r2, #1 bne _0807D488 b _0807D5C4 _0807D488: cmp r2, #1 bgt _0807D498 cmp r2, #0 beq _0807D4A4 b _0807D6CC .align 2, 0 _0807D494: .4byte gUnk_03000BF0 _0807D498: cmp r2, #2 beq _0807D4A4 cmp r2, #3 bne _0807D4A2 b _0807D5C4 _0807D4A2: b _0807D6CC _0807D4A4: mov r1, sb movs r2, #0xa ldrsh r0, [r1, r2] ldrh r1, [r1, #6] subs r5, r0, r1 cmp r5, #7 ble _0807D4B4 subs r5, #8 _0807D4B4: mov r3, sb ldr r0, [r3, #0x30] movs r2, #0x2e ldrsh r0, [r0, r2] subs r0, r0, r1 subs r3, r0, #4 mov r8, r3 cmp r3, #7 ble _0807D4CA subs r0, #0xc mov r8, r0 _0807D4CA: mov r0, sb movs r2, #0xc ldrsh r1, [r0, r2] ldrh r0, [r0, #8] subs r1, r1, r0 mov ip, r1 cmp r1, #7 ble _0807D4E0 movs r3, #8 rsbs r3, r3, #0 add ip, r3 _0807D4E0: mov r1, sb ldrh r0, [r1, #0x18] lsls r0, r0, #3 mov r2, r8 subs r0, r2, r0 adds r7, r5, #0 adds r7, #0xf8 cmp r0, r5 blt _0807D548 mov r1, ip asrs r3, r1, #3 lsls r1, r3, #8 ldr r2, [sp] adds r1, r2, r1 asrs r0, r0, #3 lsls r2, r0, #1 adds r4, r1, r2 movs r1, #0x1f ands r0, r1 lsls r0, r0, #1 ldr r2, [sp, #4] adds r6, r2, r0 ands r3, r1 lsls r2, r3, #5 mov r3, sb ldrh r0, [r3, #0x20] lsls r1, r0, #0x10 lsrs r0, r1, #0x10 cmp r0, #0xaf bhi _0807D520 lsrs r3, r1, #0x13 b _0807D522 _0807D520: movs r3, #0x16 _0807D522: adds r7, r5, #0 adds r7, #0xf8 cmp r3, #0 ble _0807D548 ldr r0, _0807D55C @ =0x000003FF mov sl, r0 _0807D52E: lsls r0, r2, #1 adds r0, r0, r6 ldrh r1, [r4] strh r1, [r0] movs r1, #0x80 lsls r1, r1, #1 adds r4, r4, r1 adds r2, #0x20 mov r0, sl ands r2, r0 subs r3, #1 cmp r3, #0 bgt _0807D52E _0807D548: mov r1, sb ldrh r0, [r1, #0x18] adds r0, #1 lsls r0, r0, #3 add r0, r8 ldrh r2, [r1, #0x1e] cmp r7, r2 blt _0807D560 adds r1, r7, #0 b _0807D566 .align 2, 0 _0807D55C: .4byte 0x000003FF _0807D560: movs r3, #0x80 lsls r3, r3, #1 adds r1, r5, r3 _0807D566: cmp r0, r1 blt _0807D56C b _0807D6CC _0807D56C: mov r1, ip asrs r3, r1, #3 lsls r1, r3, #8 ldr r2, [sp] adds r1, r2, r1 asrs r0, r0, #3 lsls r2, r0, #1 adds r4, r1, r2 movs r1, #0x1f ands r0, r1 lsls r0, r0, #1 ldr r2, [sp, #4] adds r6, r2, r0 ands r3, r1 lsls r2, r3, #5 mov r3, sb ldrh r0, [r3, #0x20] lsls r1, r0, #0x10 lsrs r0, r1, #0x10 cmp r0, #0xaf bhi _0807D59A lsrs r3, r1, #0x13 b _0807D59C _0807D59A: movs r3, #0x16 _0807D59C: cmp r3, #0 bgt _0807D5A2 b _0807D6CC _0807D5A2: movs r7, #0x80 lsls r7, r7, #1 ldr r5, _0807D5C0 @ =0x000003FF _0807D5A8: lsls r0, r2, #1 adds r0, r0, r6 ldrh r1, [r4] strh r1, [r0] adds r4, r4, r7 adds r2, #0x20 ands r2, r5 subs r3, #1 cmp r3, #0 bgt _0807D5A8 b _0807D6CC .align 2, 0 _0807D5C0: .4byte 0x000003FF _0807D5C4: mov r1, sb movs r2, #0xc ldrsh r0, [r1, r2] ldrh r2, [r1, #8] subs r5, r0, r2 cmp r5, #7 ble _0807D5D4 subs r5, #8 _0807D5D4: mov r3, sb movs r0, #0xa ldrsh r1, [r3, r0] ldrh r0, [r3, #6] subs r1, r1, r0 mov r8, r1 cmp r1, #7 ble _0807D5EA movs r1, #8 rsbs r1, r1, #0 add r8, r1 _0807D5EA: mov r3, sb ldr r0, [r3, #0x30] movs r1, #0x32 ldrsh r0, [r0, r1] subs r0, r0, r2 subs r2, r0, #4 mov ip, r2 cmp r2, #7 ble _0807D600 subs r0, #0xc mov ip, r0 _0807D600: mov r3, sb ldrh r0, [r3, #0x18] lsls r0, r0, #3 mov r1, ip subs r0, r1, r0 adds r7, r5, #0 adds r7, #0xa8 movs r2, #0xb0 adds r2, r2, r5 mov sl, r2 cmp r0, r5 blt _0807D66A asrs r2, r0, #3 lsls r0, r2, #8 ldr r3, [sp] adds r0, r3, r0 mov r1, r8 asrs r3, r1, #3 lsls r1, r3, #1 adds r4, r0, r1 movs r0, #0x1f ands r2, r0 lsls r2, r2, #6 ldr r1, [sp, #4] adds r6, r1, r2 adds r2, r0, #0 ands r2, r3 mov r3, sb ldrh r0, [r3, #0x1e] lsls r1, r0, #0x10 lsrs r0, r1, #0x10 cmp r0, #0xff bhi _0807D646 lsrs r3, r1, #0x13 b _0807D648 _0807D646: movs r3, #0x20 _0807D648: adds r7, r5, #0 adds r7, #0xa8 adds r5, #0xb0 mov sl, r5 cmp r3, #0 ble _0807D66A movs r5, #0x1f _0807D656: lsls r0, r2, #1 adds r0, r0, r6 ldrh r1, [r4] strh r1, [r0] adds r4, #2 adds r2, #1 ands r2, r5 subs r3, #1 cmp r3, #0 bgt _0807D656 _0807D66A: mov r1, sb ldrh r0, [r1, #0x18] adds r0, #1 lsls r0, r0, #3 add r0, ip mov r2, sl ldrh r1, [r1, #0x20] cmp r7, r1 blt _0807D67E adds r2, r7, #0 _0807D67E: cmp r0, r2 bge _0807D6CC asrs r2, r0, #3 lsls r0, r2, #8 ldr r1, [sp] adds r0, r1, r0 mov r1, r8 asrs r3, r1, #3 lsls r1, r3, #1 adds r4, r0, r1 movs r0, #0x1f ands r2, r0 lsls r2, r2, #6 ldr r1, [sp, #4] adds r6, r1, r2 adds r2, r0, #0 ands r2, r3 mov r3, sb ldrh r0, [r3, #0x1e] lsls r1, r0, #0x10 lsrs r0, r1, #0x10 cmp r0, #0xff bhi _0807D6B0 lsrs r3, r1, #0x13 b _0807D6B2 _0807D6B0: movs r3, #0x20 _0807D6B2: cmp r3, #0 ble _0807D6CC movs r5, #0x1f _0807D6B8: lsls r0, r2, #1 adds r0, r0, r6 ldrh r1, [r4] strh r1, [r0] adds r4, #2 adds r2, #1 ands r2, r5 subs r3, #1 cmp r3, #0 bgt _0807D6B8 _0807D6CC: add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0807D6D8 sub_0807D6D8: @ 0x0807D6D8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x44 str r0, [sp] str r1, [sp, #4] ldr r5, _0807D8BC @ =gUnk_03000BF0 ldrh r0, [r5, #0x18] cmp r0, #0 bne _0807D6F2 b _0807DA62 _0807D6F2: ldrh r0, [r5, #0x1a] cmp r0, #0 bne _0807D6FA b _0807DA62 _0807D6FA: movs r1, #0xa ldrsh r0, [r5, r1] ldrh r1, [r5, #6] subs r0, r0, r1 movs r4, #0x10 rsbs r4, r4, #0 ands r0, r4 str r0, [sp, #0x24] ldr r3, [r5, #0x30] movs r2, #0x2e ldrsh r0, [r3, r2] subs r0, r0, r1 movs r2, #8 rsbs r2, r2, #0 ands r0, r2 str r0, [sp, #0x14] ldr r1, [sp, #0x24] subs r0, r0, r1 str r0, [sp, #0x1c] movs r1, #0xc ldrsh r0, [r5, r1] ldrh r1, [r5, #8] subs r0, r0, r1 ands r0, r4 str r0, [sp, #0x28] movs r4, #0x32 ldrsh r0, [r3, r4] subs r0, r0, r1 ands r0, r2 str r0, [sp, #0x18] ldr r1, [sp, #0x28] subs r0, r0, r1 str r0, [sp, #0x20] ldrh r0, [r5, #0x18] adds r2, r0, #0 muls r2, r0, r2 str r2, [sp, #0xc] ldrh r3, [r5, #0x1a] str r3, [sp, #8] adds r4, r3, #0 muls r4, r3, r4 str r4, [sp, #0x10] adds r4, r0, #0 movs r0, #0 mov sb, r0 lsls r0, r4, #1 rsbs r0, r0, #0 adds r0, #1 ldr r1, [sp, #0x10] muls r0, r1, r0 lsls r6, r2, #1 adds r7, r0, r6 adds r2, r4, #0 muls r2, r1, r2 mov r8, r2 mov r0, r8 ldr r1, [sp, #0xc] bl __divsi3 mov ip, r0 cmp sb, ip ble _0807D778 b _0807D8D8 _0807D778: mov sl, r5 ldr r3, [sp, #0xc] adds r0, r6, r3 lsls r0, r0, #1 str r0, [sp, #0x3c] mov r0, r8 str r0, [sp, #0x40] ldr r1, [sp, #0x14] subs r1, r1, r4 mov r8, r1 ldr r2, [sp, #0x14] adds r6, r4, r2 movs r0, #0x80 lsls r0, r0, #1 ldr r3, [sp, #0x24] adds r0, r3, r0 str r0, [sp, #0x2c] _0807D79A: ldr r0, [sp, #0x28] adds r0, #0xb0 ldr r1, [sp, #0x18] add r1, sb cmp r0, r1 ble _0807D812 ldr r0, [sp, #0x20] add r0, sb asrs r0, r0, #3 movs r5, #0x1f ands r0, r5 cmp r0, #0x1f beq _0807D812 lsls r0, r0, #6 ldr r3, [sp, #4] adds r2, r3, r0 asrs r0, r1, #3 lsls r0, r0, #8 ldr r1, [sp] adds r3, r1, r0 ldr r0, [sp, #0x2c] cmp r0, r6 ble _0807D7EA ldr r0, [sp, #0x1c] adds r1, r0, r4 asrs r1, r1, #3 ands r1, r5 lsls r1, r1, #1 adds r1, r1, r2 asrs r0, r6, #3 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] strh r0, [r1] mov r1, sl ldrh r0, [r1, #0x1c] movs r1, #1 orrs r0, r1 mov r1, sl strh r0, [r1, #0x1c] _0807D7EA: ldr r0, [sp, #0x24] cmp r0, r8 bge _0807D812 ldr r0, [sp, #0x1c] subs r1, r0, r4 asrs r1, r1, #3 ands r1, r5 lsls r1, r1, #1 adds r1, r1, r2 mov r2, r8 asrs r0, r2, #3 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] strh r0, [r1] mov r3, sl ldrh r0, [r3, #0x1c] movs r1, #2 orrs r0, r1 strh r0, [r3, #0x1c] _0807D812: ldr r0, [sp, #0x18] mov r2, sb subs r1, r0, r2 adds r0, r1, #0 adds r0, #8 ldr r3, [sp, #0x28] cmp r3, r0 bge _0807D88E ldr r3, [sp, #0x20] subs r0, r3, r2 asrs r0, r0, #3 movs r5, #0x1f ands r0, r5 cmp r0, #0x1f beq _0807D88E lsls r0, r0, #6 ldr r3, [sp, #4] adds r2, r3, r0 asrs r0, r1, #3 lsls r0, r0, #8 ldr r1, [sp] adds r3, r1, r0 ldr r0, [sp, #0x2c] cmp r0, r6 ble _0807D866 ldr r0, [sp, #0x1c] adds r1, r0, r4 asrs r1, r1, #3 ands r1, r5 lsls r1, r1, #1 adds r1, r1, r2 asrs r0, r6, #3 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] strh r0, [r1] mov r1, sl ldrh r0, [r1, #0x1c] movs r1, #4 orrs r0, r1 mov r1, sl strh r0, [r1, #0x1c] _0807D866: ldr r0, [sp, #0x24] cmp r0, r8 bge _0807D88E ldr r0, [sp, #0x1c] subs r1, r0, r4 asrs r1, r1, #3 ands r1, r5 lsls r1, r1, #1 adds r1, r1, r2 mov r2, r8 asrs r0, r2, #3 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] strh r0, [r1] mov r3, sl ldrh r0, [r3, #0x1c] movs r1, #8 orrs r0, r1 strh r0, [r3, #0x1c] _0807D88E: cmp r7, #0 ble _0807D8C0 lsls r0, r4, #2 rsbs r0, r0, #0 adds r0, #4 ldr r1, [sp, #0x10] muls r0, r1, r0 ldr r2, [sp, #0x3c] adds r0, r0, r2 adds r7, r7, r0 ldr r3, [sp, #0x40] subs r3, r3, r1 str r3, [sp, #0x40] movs r0, #1 add r8, r0 subs r6, #1 subs r4, #1 adds r0, r3, #0 ldr r1, [sp, #0xc] bl __divsi3 mov ip, r0 b _0807D8C4 .align 2, 0 _0807D8BC: .4byte gUnk_03000BF0 _0807D8C0: ldr r1, [sp, #0x3c] adds r7, r7, r1 _0807D8C4: ldr r2, [sp, #0xc] lsls r0, r2, #2 ldr r3, [sp, #0x3c] adds r3, r3, r0 str r3, [sp, #0x3c] movs r0, #1 add sb, r0 cmp sb, ip bgt _0807D8D8 b _0807D79A _0807D8D8: movs r4, #0 ldr r1, [sp, #8] mov sb, r1 ldr r2, [sp, #0x10] lsls r6, r2, #1 lsls r0, r1, #1 rsbs r0, r0, #0 adds r0, #1 ldr r3, [sp, #0xc] muls r0, r3, r0 adds r7, r6, r0 mov r5, sb muls r5, r3, r5 adds r0, r5, #0 adds r1, r2, #0 bl __divsi3 mov ip, r0 cmp r4, ip ble _0807D902 b _0807DA62 _0807D902: ldr r0, _0807DA40 @ =gUnk_03000BF0 mov sl, r0 ldr r1, [sp, #0x10] adds r0, r6, r1 lsls r0, r0, #1 str r0, [sp, #0x34] ldr r6, [sp, #0x14] mov r8, r6 str r5, [sp, #0x38] movs r3, #0x80 lsls r3, r3, #1 ldr r2, [sp, #0x24] adds r3, r2, r3 str r3, [sp, #0x30] _0807D91E: ldr r0, [sp, #0x28] adds r0, #0xb0 ldr r1, [sp, #0x18] add r1, sb cmp r0, r1 ble _0807D996 ldr r0, [sp, #0x20] add r0, sb asrs r0, r0, #3 movs r5, #0x1f ands r0, r5 cmp r0, #0x1f beq _0807D996 lsls r0, r0, #6 ldr r3, [sp, #4] adds r2, r3, r0 asrs r0, r1, #3 lsls r0, r0, #8 ldr r1, [sp] adds r3, r1, r0 ldr r0, [sp, #0x30] cmp r0, r6 ble _0807D96E ldr r0, [sp, #0x1c] adds r1, r0, r4 asrs r1, r1, #3 ands r1, r5 lsls r1, r1, #1 adds r1, r1, r2 asrs r0, r6, #3 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] strh r0, [r1] mov r1, sl ldrh r0, [r1, #0x1c] movs r1, #0x10 orrs r0, r1 mov r1, sl strh r0, [r1, #0x1c] _0807D96E: ldr r0, [sp, #0x24] cmp r0, r8 bge _0807D996 ldr r0, [sp, #0x1c] subs r1, r0, r4 asrs r1, r1, #3 ands r1, r5 lsls r1, r1, #1 adds r1, r1, r2 mov r2, r8 asrs r0, r2, #3 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] strh r0, [r1] mov r3, sl ldrh r0, [r3, #0x1c] movs r1, #0x20 orrs r0, r1 strh r0, [r3, #0x1c] _0807D996: ldr r0, [sp, #0x18] mov r2, sb subs r1, r0, r2 adds r0, r1, #0 adds r0, #8 ldr r3, [sp, #0x28] cmp r3, r0 bge _0807DA12 ldr r3, [sp, #0x20] subs r0, r3, r2 asrs r0, r0, #3 movs r5, #0x1f ands r0, r5 cmp r0, #0x1f beq _0807DA12 lsls r0, r0, #6 ldr r3, [sp, #4] adds r2, r3, r0 asrs r0, r1, #3 lsls r0, r0, #8 ldr r1, [sp] adds r3, r1, r0 ldr r0, [sp, #0x30] cmp r0, r6 ble _0807D9EA ldr r0, [sp, #0x1c] adds r1, r0, r4 asrs r1, r1, #3 ands r1, r5 lsls r1, r1, #1 adds r1, r1, r2 asrs r0, r6, #3 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] strh r0, [r1] mov r1, sl ldrh r0, [r1, #0x1c] movs r1, #0x40 orrs r0, r1 mov r1, sl strh r0, [r1, #0x1c] _0807D9EA: ldr r0, [sp, #0x24] cmp r0, r8 bge _0807DA12 ldr r0, [sp, #0x1c] subs r1, r0, r4 asrs r1, r1, #3 ands r1, r5 lsls r1, r1, #1 adds r1, r1, r2 mov r2, r8 asrs r0, r2, #3 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] strh r0, [r1] mov r3, sl ldrh r0, [r3, #0x1c] movs r1, #0x80 orrs r0, r1 strh r0, [r3, #0x1c] _0807DA12: cmp r7, #0 ble _0807DA44 mov r1, sb lsls r0, r1, #2 rsbs r0, r0, #0 adds r0, #4 ldr r2, [sp, #0xc] muls r0, r2, r0 ldr r3, [sp, #0x34] adds r0, r3, r0 adds r7, r7, r0 ldr r0, [sp, #0x38] subs r0, r0, r2 str r0, [sp, #0x38] movs r1, #1 rsbs r1, r1, #0 add sb, r1 ldr r1, [sp, #0x10] bl __divsi3 mov ip, r0 b _0807DA48 .align 2, 0 _0807DA40: .4byte gUnk_03000BF0 _0807DA44: ldr r2, [sp, #0x34] adds r7, r7, r2 _0807DA48: ldr r3, [sp, #0x10] lsls r0, r3, #2 ldr r1, [sp, #0x34] adds r1, r1, r0 str r1, [sp, #0x34] movs r2, #1 rsbs r2, r2, #0 add r8, r2 adds r6, #1 adds r4, #1 cmp r4, ip bgt _0807DA62 b _0807D91E _0807DA62: add sp, #0x44 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0807DA70 sub_0807DA70: @ 0x0807DA70 push {r4, lr} ldr r4, _0807DA94 @ =gUnk_02033280 adds r0, r4, #0 movs r1, #0xc bl sub_0801D630 ldr r0, _0807DA98 @ =gUnk_02036570 movs r1, #0x90 lsls r1, r1, #3 bl sub_0801D630 ldr r0, _0807DA9C @ =gUnk_02022750 movs r1, #0x24 bl sub_0801D630 movs r0, #8 strb r0, [r4, #8] pop {r4, pc} .align 2, 0 _0807DA94: .4byte gUnk_02033280 _0807DA98: .4byte gUnk_02036570 _0807DA9C: .4byte gUnk_02022750 thumb_func_start sub_0807DAA0 sub_0807DAA0: @ 0x0807DAA0 push {lr} ldr r1, _0807DABC @ =gUnk_02036570 movs r0, #0x90 lsls r0, r0, #3 adds r2, r1, r0 _0807DAAA: ldr r0, [r1] cmp r0, #0 beq _0807DAC0 adds r1, #0x24 cmp r1, r2 blo _0807DAAA movs r0, #0 b _0807DAC2 .align 2, 0 _0807DABC: .4byte gUnk_02036570 _0807DAC0: adds r0, r1, #0 _0807DAC2: pop {pc} thumb_func_start sub_0807DAC4 sub_0807DAC4: @ 0x0807DAC4 push {lr} movs r1, #0x24 bl sub_0801D630 pop {pc} .align 2, 0 thumb_func_start sub_0807DAD0 sub_0807DAD0: @ 0x0807DAD0 push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 bl sub_0807DAA0 adds r4, r0, #0 cmp r4, #0 beq _0807DAEA adds r0, r5, #0 adds r1, r4, #0 adds r2, r6, #0 bl sub_0807DAF0 _0807DAEA: adds r0, r4, #0 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0807DAF0 sub_0807DAF0: @ 0x0807DAF0 push {r4, lr} ldrb r4, [r0, #0x10] movs r3, #2 orrs r3, r4 strb r3, [r0, #0x10] adds r0, #0x84 str r1, [r0] adds r0, r1, #0 adds r1, r2, #0 bl sub_0807DB88 pop {r4, pc} thumb_func_start sub_0807DB08 sub_0807DB08: @ 0x0807DB08 push {r4, r5, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0807DB28 movs r0, #0xfd ands r0, r1 movs r5, #0 strb r0, [r4, #0x10] adds r4, #0x84 ldr r0, [r4] bl sub_0807DAC4 str r5, [r4] _0807DB28: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0807DB2C sub_0807DB2C: @ 0x0807DB2C push {r4, r5, lr} adds r5, r0, #0 ldr r4, _0807DB5C @ =gUnk_02022750 adds r0, r4, #0 movs r1, #0x24 bl sub_0801D630 str r5, [r4] ldr r0, _0807DB60 @ =gUnk_03001160 adds r0, #0x84 str r4, [r0] ldr r2, _0807DB64 @ =gUnk_03003F80 movs r1, #0 movs r0, #0x1c strb r0, [r2, #0xc] adds r0, r2, #0 adds r0, #0x3a strb r1, [r0] subs r0, #1 strb r1, [r0] subs r0, #1 strb r1, [r0] pop {r4, r5, pc} .align 2, 0 _0807DB5C: .4byte gUnk_02022750 _0807DB60: .4byte gUnk_03001160 _0807DB64: .4byte gUnk_03003F80 thumb_func_start sub_0807DB68 sub_0807DB68: @ 0x0807DB68 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 bl sub_0807DAA0 adds r2, r0, #0 cmp r2, #0 beq _0807DB84 ldrb r1, [r4, #0x10] movs r0, #2 orrs r0, r1 strb r0, [r4, #0x10] str r2, [r4, #0x3c] str r5, [r2] _0807DB84: adds r0, r2, #0 pop {r4, r5, pc} thumb_func_start sub_0807DB88 sub_0807DB88: @ 0x0807DB88 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 movs r1, #0x24 bl sub_0801D630 str r5, [r4] pop {r4, r5, pc} thumb_func_start sub_0807DB98 sub_0807DB98: @ 0x0807DB98 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r6, r1, #0 ldr r0, [r6, #8] cmp r0, #0 bne _0807DBA6 b _0807DD48 _0807DBA6: movs r7, #0 adds r4, r5, #0 adds r4, #0x82 _0807DBAC: ldr r1, [r6, #8] mvns r0, r1 adds r2, r0, #1 ands r2, r1 eors r1, r2 str r1, [r6, #8] movs r0, #0x80 lsls r0, r0, #2 cmp r2, r0 bne _0807DBC2 b _0807DCC8 _0807DBC2: cmp r2, r0 bhi _0807DC04 cmp r2, #0x10 beq _0807DC82 cmp r2, #0x10 bhi _0807DBE8 cmp r2, #2 beq _0807DC70 cmp r2, #2 bhi _0807DBDC cmp r2, #1 beq _0807DC68 b _0807DD40 _0807DBDC: cmp r2, #4 bne _0807DBE2 b _0807DD40 _0807DBE2: cmp r2, #8 beq _0807DC7A b _0807DD40 _0807DBE8: cmp r2, #0x40 beq _0807DC9E cmp r2, #0x40 bhi _0807DBF6 cmp r2, #0x20 beq _0807DC90 b _0807DD40 _0807DBF6: cmp r2, #0x80 beq _0807DCA8 movs r0, #0x80 lsls r0, r0, #1 cmp r2, r0 beq _0807DCBA b _0807DD40 _0807DC04: movs r0, #0x80 lsls r0, r0, #7 cmp r2, r0 beq _0807DCFC cmp r2, r0 bhi _0807DC38 movs r0, #0x80 lsls r0, r0, #4 cmp r2, r0 beq _0807DCDE cmp r2, r0 bhi _0807DC26 movs r0, #0x80 lsls r0, r0, #3 cmp r2, r0 beq _0807DCD6 b _0807DD40 _0807DC26: movs r0, #0x80 lsls r0, r0, #5 cmp r2, r0 beq _0807DCE8 movs r0, #0x80 lsls r0, r0, #6 cmp r2, r0 beq _0807DCF4 b _0807DD40 _0807DC38: movs r0, #0x80 lsls r0, r0, #0xa cmp r2, r0 beq _0807DD14 cmp r2, r0 bhi _0807DC56 movs r0, #0x80 lsls r0, r0, #8 cmp r2, r0 beq _0807DD04 movs r0, #0x80 lsls r0, r0, #9 cmp r2, r0 beq _0807DD0C b _0807DD40 _0807DC56: movs r0, #0x80 lsls r0, r0, #0xb cmp r2, r0 beq _0807DD2E movs r0, #0x80 lsls r0, r0, #0xc cmp r2, r0 beq _0807DD36 b _0807DD40 _0807DC68: adds r0, r5, #0 adds r0, #0x80 strh r7, [r0] b _0807DD40 _0807DC70: adds r1, r5, #0 adds r1, #0x80 movs r0, #4 strh r0, [r1] b _0807DD40 _0807DC7A: movs r0, #0xc0 lsls r0, r0, #9 str r0, [r5, #0x20] b _0807DD40 _0807DC82: adds r0, r5, #0 movs r1, #8 movs r2, #0x18 rsbs r2, r2, #0 bl sub_080A2CFC b _0807DD40 _0807DC90: adds r0, r5, #0 movs r1, #8 movs r2, #0x18 rsbs r2, r2, #0 bl sub_080A2D0C b _0807DD40 _0807DC9E: adds r0, r6, #0 bl sub_0807DAC4 bl sub_0805E780 _0807DCA8: ldrb r0, [r5, #0x18] movs r2, #4 rsbs r2, r2, #0 adds r1, r2, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r5, #0x18] b _0807DD40 _0807DCBA: ldrb r0, [r5, #0x18] movs r3, #4 rsbs r3, r3, #0 adds r1, r3, #0 ands r0, r1 strb r0, [r5, #0x18] b _0807DD40 _0807DCC8: adds r0, r5, #0 adds r0, #0x63 strb r7, [r0] subs r0, #1 strb r7, [r0] strh r7, [r4] b _0807DD40 _0807DCD6: ldrh r0, [r4] movs r1, #2 orrs r0, r1 b _0807DD3E _0807DCDE: ldrh r0, [r4] ldr r2, _0807DCE4 @ =0x0000FFFD b _0807DD3A .align 2, 0 _0807DCE4: .4byte 0x0000FFFD _0807DCE8: ldrh r0, [r4] ldr r3, _0807DCF0 @ =0x0000FFFE adds r1, r3, #0 b _0807DD3C .align 2, 0 _0807DCF0: .4byte 0x0000FFFE _0807DCF4: ldrh r0, [r4] movs r1, #1 orrs r0, r1 b _0807DD3E _0807DCFC: ldrh r0, [r4] movs r1, #8 orrs r0, r1 b _0807DD3E _0807DD04: ldrh r0, [r4] movs r1, #4 eors r0, r1 b _0807DD3E _0807DD0C: ldrh r0, [r4] movs r1, #0x10 eors r0, r1 b _0807DD3E _0807DD14: ldrb r2, [r5, #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, [r5, #0x18] b _0807DD40 _0807DD2E: ldrh r0, [r4] movs r1, #0x20 orrs r0, r1 b _0807DD3E _0807DD36: ldrh r0, [r4] ldr r2, _0807DD4C @ =0x0000FFDF _0807DD3A: adds r1, r2, #0 _0807DD3C: ands r0, r1 _0807DD3E: strh r0, [r4] _0807DD40: ldr r0, [r6, #8] cmp r0, #0 beq _0807DD48 b _0807DBAC _0807DD48: pop {r4, r5, r6, r7, pc} .align 2, 0 _0807DD4C: .4byte 0x0000FFDF thumb_func_start sub_0807DD50 sub_0807DD50: @ 0x0807DD50 push {r4, lr} adds r4, r0, #0 bl sub_0807DD64 adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 pop {r4, pc} .align 2, 0 thumb_func_start sub_0807DD64 sub_0807DD64: @ 0x0807DD64 adds r3, r0, #0 ldrb r0, [r3, #0x14] movs r2, #0 strb r0, [r3, #0xf] adds r1, r3, #0 adds r1, #0x58 movs r0, #0xff strb r0, [r1] adds r0, r3, #0 adds r0, #0x80 strh r2, [r0] adds r0, #2 strh r2, [r0] bx lr thumb_func_start sub_0807DD80 sub_0807DD80: @ 0x0807DD80 push {r4, lr} adds r4, r0, #0 adds r0, #0x84 ldr r0, [r0] bl sub_0807DB88 adds r0, r4, #0 bl sub_0807DD64 pop {r4, pc} thumb_func_start sub_0807DD94 sub_0807DD94: @ 0x0807DD94 push {r4, lr} adds r4, r0, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_0807DE80 pop {r4, pc} .align 2, 0 thumb_func_start sub_0807DDAC sub_0807DDAC: @ 0x0807DDAC push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 adds r4, r5, #0 adds r4, #0x84 ldr r1, [r4] cmp r1, #0 beq _0807DDE0 bl sub_0807DF74 cmp r6, #0 beq _0807DDCE ldr r1, [r4] adds r0, r5, #0 bl _call_via_r6 b _0807DDD6 _0807DDCE: ldr r1, [r4] adds r0, r5, #0 bl sub_0807DB98 _0807DDD6: ldr r0, [r5, #4] cmp r0, #0 bne _0807DDE0 bl sub_0805E780 _0807DDE0: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0807DDE4 sub_0807DDE4: @ 0x0807DDE4 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x82 ldrh r5, [r0] _0807DDEC: cmp r5, #0 beq _0807DE7C mvns r0, r5 adds r0, #1 ands r0, r5 eors r5, r0 cmp r0, #8 beq _0807DE26 cmp r0, #8 bhi _0807DE06 cmp r0, #2 beq _0807DE10 b _0807DDEC _0807DE06: cmp r0, #0x10 beq _0807DE44 cmp r0, #0x20 beq _0807DE70 b _0807DDEC _0807DE10: ldrb r0, [r4, #8] cmp r0, #7 bne _0807DE1E adds r0, r4, #0 bl sub_0806ED78 b _0807DDEC _0807DE1E: adds r0, r4, #0 bl sub_0800445C b _0807DDEC _0807DE26: ldr r0, _0807DE40 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #3 ands r0, r1 cmp r0, #0 bne _0807DDEC ldrb r0, [r4, #0xf] adds r0, #2 movs r1, #7 ands r0, r1 strb r0, [r4, #0x14] strb r0, [r4, #0xf] b _0807DDEC .align 2, 0 _0807DE40: .4byte gUnk_030010A0 _0807DE44: ldr r0, _0807DE68 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #1 ands r0, r1 cmp r0, #0 bne _0807DDEC bl sub_08000E50 ldr r2, _0807DE6C @ =gUnk_0811E510 movs r1, #3 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] adds r1, r4, #0 adds r1, #0x62 strb r0, [r1] b _0807DDEC .align 2, 0 _0807DE68: .4byte gUnk_030010A0 _0807DE6C: .4byte gUnk_0811E510 _0807DE70: adds r0, r4, #0 movs r1, #0x80 lsls r1, r1, #6 bl sub_08003FC4 b _0807DDEC _0807DE7C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0807DE80 sub_0807DE80: @ 0x0807DE80 push {r4, lr} adds r4, r0, #0 adds r0, #0x80 ldrh r3, [r0] cmp r3, #7 bhi _0807DEB0 adds r0, #2 ldrh r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0807DEA4 movs r1, #0xfc ands r1, r3 ldrb r0, [r4, #0xf] lsrs r0, r0, #1 adds r3, r1, r0 b _0807DEB0 _0807DEA4: movs r0, #0xfc ands r0, r3 ldrb r2, [r4, #0x14] lsrs r1, r2, #1 adds r3, r0, r1 strb r2, [r4, #0xf] _0807DEB0: adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r3, r0 beq _0807DEC2 adds r0, r4, #0 adds r1, r3, #0 bl sub_080042AC _0807DEC2: adds r0, r4, #0 adds r0, #0x82 ldrh r1, [r0] movs r0, #4 ands r0, r1 movs r1, #1 cmp r0, #0 beq _0807DED4 movs r1, #2 _0807DED4: adds r0, r4, #0 bl sub_080042BA pop {r4, pc} thumb_func_start sub_0807DEDC sub_0807DEDC: @ 0x0807DEDC push {r4, r5, r6, lr} adds r5, r0, #0 movs r6, #0 movs r0, #8 strb r0, [r1, #0x19] ldr r0, [r1, #8] movs r4, #2 orrs r0, r4 str r0, [r1, #8] str r6, [r1, #0x14] strh r2, [r1, #0x1e] strh r3, [r1, #0x22] movs r2, #0x1e ldrsh r0, [r1, r2] movs r3, #0x2e ldrsh r2, [r5, r3] subs r0, r0, r2 movs r2, #0x22 ldrsh r1, [r1, r2] movs r3, #0x32 ldrsh r2, [r5, r3] subs r1, r1, r2 bl sub_080045DA strb r0, [r5, #0x15] ldrb r2, [r5, #0x14] movs r1, #0x80 ands r1, r2 ldr r2, _0807DF24 @ =gUnk_0811E514 lsls r0, r0, #0x18 lsrs r0, r0, #0x1c adds r0, r0, r2 ldrb r0, [r0] orrs r1, r0 strb r1, [r5, #0x14] pop {r4, r5, r6, pc} .align 2, 0 _0807DF24: .4byte gUnk_0811E514 thumb_func_start sub_0807DF28 sub_0807DF28: @ 0x0807DF28 push {lr} bl sub_0807DF38 bl sub_08079184 bl sub_08077B20 pop {pc} thumb_func_start sub_0807DF38 sub_0807DF38: @ 0x0807DF38 ldr r1, _0807DF48 @ =gUnk_0200AF00 movs r0, #0xff strb r0, [r1, #1] ldr r1, _0807DF4C @ =gUnk_02034490 movs r0, #1 rsbs r0, r0, #0 strb r0, [r1] bx lr .align 2, 0 _0807DF48: .4byte gUnk_0200AF00 _0807DF4C: .4byte gUnk_02034490 thumb_func_start sub_0807DF50 sub_0807DF50: @ 0x0807DF50 push {lr} ldr r0, _0807DF6C @ =gUnk_02034490 movs r1, #0 strb r1, [r0] ldr r0, _0807DF70 @ =gUnk_0200AF00 strb r1, [r0, #1] movs r0, #0 bl sub_0801C4A0 bl sub_080791D0 bl sub_08079184 pop {pc} .align 2, 0 _0807DF6C: .4byte gUnk_02034490 _0807DF70: .4byte gUnk_0200AF00 thumb_func_start sub_0807DF74 sub_0807DF74: @ 0x0807DF74 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} mov r8, r0 adds r5, r1, #0 ldr r0, [r5] cmp r0, #0 beq _0807DFE8 ldrh r0, [r5, #0x10] adds r1, r0, #0 cmp r1, #0 beq _0807DF92 subs r0, #1 strh r0, [r5, #0x10] b _0807DFE8 _0807DF92: ldr r6, _0807DFF0 @ =gUnk_02033280 strb r1, [r6, #7] _0807DF96: ldr r0, [r5] bl sub_08016986 adds r1, r0, #0 ldr r0, _0807DFF4 @ =0x0000FFFF cmp r1, r0 beq _0807DFE8 lsrs r0, r1, #0xa strb r0, [r6, #6] ldr r2, _0807DFF8 @ =0x000003FF adds r0, r2, #0 ands r1, r0 movs r7, #0 strh r1, [r6, #4] ldr r4, [r5] ldrb r1, [r6, #7] movs r0, #0xfe ands r0, r1 strb r0, [r6, #7] ldr r1, _0807DFFC @ =gUnk_0811E524 ldrh r0, [r6, #4] lsls r0, r0, #2 adds r0, r0, r1 ldr r2, [r0] mov r0, r8 adds r1, r5, #0 bl _call_via_r2 ldrb r1, [r6, #6] lsls r1, r1, #1 ldr r0, [r5] adds r0, r0, r1 str r0, [r5] cmp r4, r0 beq _0807DFDE strb r7, [r5, #0x18] _0807DFDE: ldrb r1, [r6, #7] movs r0, #3 ands r0, r1 cmp r0, #0 bne _0807DF96 _0807DFE8: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0807DFF0: .4byte gUnk_02033280 _0807DFF4: .4byte 0x0000FFFF _0807DFF8: .4byte 0x000003FF _0807DFFC: .4byte gUnk_0811E524 thumb_func_start nullsub_507 nullsub_507: @ 0x0807E000 bx lr .align 2, 0 thumb_func_start sub_0807E004 sub_0807E004: @ 0x0807E004 ldr r2, _0807E010 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #2 orrs r0, r1 strb r0, [r2, #7] bx lr .align 2, 0 _0807E010: .4byte gUnk_02033280 thumb_func_start sub_0807E014 sub_0807E014: @ 0x0807E014 ldr r2, _0807E020 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #0xfd ands r0, r1 strb r0, [r2, #7] bx lr .align 2, 0 _0807E020: .4byte gUnk_02033280 thumb_func_start sub_0807E024 sub_0807E024: @ 0x0807E024 push {r4, lr} adds r4, r1, #0 ldr r0, [r4] adds r0, #2 str r0, [r4] bl sub_08016986 lsls r0, r0, #0x10 asrs r1, r0, #0x10 lsrs r0, r0, #0x1f adds r1, r1, r0 asrs r1, r1, #1 lsls r1, r1, #1 ldr r0, [r4] adds r0, r0, r1 str r0, [r4] ldr r1, _0807E04C @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] pop {r4, pc} .align 2, 0 _0807E04C: .4byte gUnk_02033280 thumb_func_start sub_0807E050 sub_0807E050: @ 0x0807E050 push {lr} adds r2, r0, #0 ldr r0, [r1, #0x14] cmp r0, #0 beq _0807E060 adds r0, r2, #0 bl sub_0807E024 _0807E060: pop {pc} .align 2, 0 thumb_func_start sub_0807E064 sub_0807E064: @ 0x0807E064 push {lr} adds r2, r0, #0 ldr r0, [r1, #0x14] cmp r0, #0 bne _0807E074 adds r0, r2, #0 bl sub_0807E024 _0807E074: pop {pc} .align 2, 0 thumb_func_start sub_0807E078 sub_0807E078: @ 0x0807E078 push {lr} adds r3, r0, #0 adds r2, r1, #0 ldr r0, _0807E09C @ =gUnk_02033280 ldrb r0, [r0, #6] ldr r1, [r2, #4] cmp r0, r1 bls _0807E098 lsls r1, r1, #1 ldr r0, [r2] adds r0, r0, r1 str r0, [r2] adds r0, r3, #0 adds r1, r2, #0 bl sub_0807E024 _0807E098: pop {pc} .align 2, 0 _0807E09C: .4byte gUnk_02033280 thumb_func_start sub_0807E0A0 sub_0807E0A0: @ 0x0807E0A0 push {r4, lr} adds r4, r1, #0 ldr r0, [r4] bl sub_08016998 str r0, [r4] ldr r1, _0807E0B4 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] pop {r4, pc} .align 2, 0 _0807E0B4: .4byte gUnk_02033280 thumb_func_start sub_0807E0B8 sub_0807E0B8: @ 0x0807E0B8 push {lr} adds r2, r0, #0 ldr r0, [r1, #0x14] cmp r0, #0 beq _0807E0C8 adds r0, r2, #0 bl sub_0807E0A0 _0807E0C8: pop {pc} .align 2, 0 thumb_func_start sub_0807E0CC sub_0807E0CC: @ 0x0807E0CC push {lr} adds r2, r0, #0 ldr r0, [r1, #0x14] cmp r0, #0 bne _0807E0DC adds r0, r2, #0 bl sub_0807E0A0 _0807E0DC: pop {pc} .align 2, 0 thumb_func_start sub_0807E0E0 sub_0807E0E0: @ 0x0807E0E0 push {r4, lr} adds r4, r0, #0 adds r2, r1, #0 ldr r0, _0807E108 @ =gUnk_02033280 ldrb r1, [r0, #6] ldr r3, [r2, #4] lsls r0, r3, #1 adds r0, #1 cmp r1, r0 bls _0807E104 lsls r1, r3, #2 ldr r0, [r2] adds r0, r0, r1 str r0, [r2] adds r0, r4, #0 adds r1, r2, #0 bl sub_0807E0A0 _0807E104: pop {r4, pc} .align 2, 0 _0807E108: .4byte gUnk_02033280 thumb_func_start sub_0807E10C sub_0807E10C: @ 0x0807E10C push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 ldr r0, [r4] bl sub_08016998 adds r2, r0, #0 adds r0, r5, #0 adds r1, r4, #0 bl _call_via_r2 pop {r4, r5, pc} thumb_func_start sub_0807E124 sub_0807E124: @ 0x0807E124 push {r4, r5, r6, lr} adds r6, r0, #0 adds r4, r1, #0 ldr r0, [r4] bl sub_08016998 adds r5, r0, #0 ldr r0, [r4] adds r0, #6 bl sub_0801698E str r0, [r4, #4] adds r0, r6, #0 adds r1, r4, #0 bl _call_via_r5 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0807E148 sub_0807E148: @ 0x0807E148 push {lr} ldr r0, [r1] bl sub_08016998 bl sub_0804ADDC pop {pc} .align 2, 0 thumb_func_start sub_0807E158 sub_0807E158: @ 0x0807E158 push {r4, r5, lr} adds r4, r1, #0 ldr r0, [r4] bl sub_08016998 adds r2, r0, #0 movs r5, #0 ldr r3, _0807E184 @ =gUnk_02033280 ldr r1, [r3] adds r0, r1, #0 ands r0, r2 cmp r0, r2 bne _0807E174 movs r5, #1 _0807E174: str r5, [r4, #0x14] bics r1, r2 str r1, [r3] ldrb r1, [r3, #7] movs r0, #1 orrs r0, r1 strb r0, [r3, #7] pop {r4, r5, pc} .align 2, 0 _0807E184: .4byte gUnk_02033280 thumb_func_start sub_0807E188 sub_0807E188: @ 0x0807E188 push {r4, lr} adds r4, r1, #0 ldr r0, [r4] bl sub_0801698A cmp r0, #0x51 beq _0807E1B4 cmp r0, #0x51 bhi _0807E1A0 cmp r0, #0x50 beq _0807E1BA b _0807E1C0 _0807E1A0: cmp r0, #0x52 beq _0807E1AE cmp r0, #0x53 bne _0807E1C0 bl sub_08052734 b _0807E1C4 _0807E1AE: bl sub_08052764 b _0807E1C4 _0807E1B4: bl sub_0805279C b _0807E1C4 _0807E1BA: bl sub_080527CC b _0807E1C4 _0807E1C0: bl sub_0807CA84 _0807E1C4: str r0, [r4, #0x14] ldr r2, _0807E1D4 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, pc} .align 2, 0 _0807E1D4: .4byte gUnk_02033280 thumb_func_start sub_0807E1D8 sub_0807E1D8: @ 0x0807E1D8 push {r4, lr} adds r4, r1, #0 ldr r0, [r4] ldrh r0, [r0, #2] bl sub_0807CA84 movs r1, #0 cmp r0, #2 bne _0807E1EC movs r1, #1 _0807E1EC: str r1, [r4, #0x14] ldr r2, _0807E1FC @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, pc} .align 2, 0 _0807E1FC: .4byte gUnk_02033280 thumb_func_start sub_0807E200 sub_0807E200: @ 0x0807E200 push {r4, lr} adds r4, r1, #0 ldr r0, [r4] ldrh r0, [r0, #2] bl sub_0807CBD0 str r0, [r4, #0x14] ldr r2, _0807E21C @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, pc} .align 2, 0 _0807E21C: .4byte gUnk_02033280 thumb_func_start sub_0807E220 sub_0807E220: @ 0x0807E220 push {r4, lr} adds r4, r1, #0 ldr r1, [r4] ldrh r0, [r1, #2] ldrh r1, [r1, #4] bl sub_0807CB10 str r0, [r4, #0x14] ldr r2, _0807E23C @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, pc} .align 2, 0 _0807E23C: .4byte gUnk_02033280 thumb_func_start sub_0807E240 sub_0807E240: @ 0x0807E240 push {r4, lr} adds r4, r1, #0 ldr r0, [r4] bl sub_0801698A bl sub_0807CC30 str r0, [r4, #0x14] ldr r2, _0807E25C @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, pc} .align 2, 0 _0807E25C: .4byte gUnk_02033280 thumb_func_start sub_0807E260 sub_0807E260: @ 0x0807E260 push {r4, lr} adds r4, r1, #0 ldr r0, [r4] ldrh r0, [r0, #2] bl sub_0807CC3C str r0, [r4, #0x14] ldr r2, _0807E27C @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, pc} .align 2, 0 _0807E27C: .4byte gUnk_02033280 thumb_func_start sub_0807E280 sub_0807E280: @ 0x0807E280 push {r4, lr} adds r4, r1, #0 ldr r1, [r4] ldrh r2, [r1, #6] lsrs r3, r2, #8 movs r0, #0xff ands r2, r0 ldrh r0, [r1, #2] ldrh r1, [r1, #4] bl sub_0800293E str r0, [r4, #0x14] ldr r2, _0807E2A4 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, pc} .align 2, 0 _0807E2A4: .4byte gUnk_02033280 thumb_func_start sub_0807E2A8 sub_0807E2A8: @ 0x0807E2A8 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r6, r1, #0 ldr r0, [r6] ldrh r3, [r0, #2] ldrb r2, [r0, #2] lsrs r3, r3, #8 movs r1, #0x2e ldrsh r0, [r5, r1] ldr r4, _0807E2DC @ =gUnk_03000BF0 ldrh r1, [r4, #6] subs r0, r0, r1 movs r7, #0x32 ldrsh r1, [r5, r7] ldrh r4, [r4, #8] subs r1, r1, r4 bl sub_0800293E str r0, [r6, #0x14] ldr r2, _0807E2E0 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, r5, r6, r7, pc} .align 2, 0 _0807E2DC: .4byte gUnk_03000BF0 _0807E2E0: .4byte gUnk_02033280 thumb_func_start sub_0807E2E4 sub_0807E2E4: @ 0x0807E2E4 push {lr} adds r2, r0, #0 adds r2, #0x39 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _0807E2F8 movs r0, #0 strb r0, [r2] movs r0, #1 _0807E2F8: str r0, [r1, #0x14] ldr r2, _0807E308 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {pc} .align 2, 0 _0807E308: .4byte gUnk_02033280 thumb_func_start sub_0807E30C sub_0807E30C: @ 0x0807E30C push {r4, r5, r6, lr} adds r5, r0, #0 adds r4, r1, #0 ldrb r1, [r4, #0x1a] movs r0, #0xf ands r0, r1 cmp r0, #0 bne _0807E348 ldr r0, _0807E374 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _0807E348 ldr r6, _0807E378 @ =gUnk_03001160 adds r0, r5, #0 adds r1, r6, #0 movs r2, #0x28 movs r3, #0x28 bl sub_080041A0 cmp r0, #0 beq _0807E348 adds r0, r5, #0 adds r1, r6, #0 bl sub_080045C4 bl sub_0806F5B0 strb r0, [r5, #0x14] _0807E348: ldrb r0, [r4, #0x1a] adds r0, #1 strb r0, [r4, #0x1a] adds r1, r5, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _0807E37C movs r0, #0 strb r0, [r1] movs r0, #1 str r0, [r4, #0x14] ldr r1, _0807E378 @ =gUnk_03001160 adds r0, r5, #0 bl sub_080045C4 bl sub_0806F5B0 strb r0, [r5, #0x14] b _0807E37E .align 2, 0 _0807E374: .4byte gUnk_03003F80 _0807E378: .4byte gUnk_03001160 _0807E37C: str r0, [r4, #0x14] _0807E37E: ldr r2, _0807E38C @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, r5, r6, pc} .align 2, 0 _0807E38C: .4byte gUnk_02033280 thumb_func_start sub_0807E390 sub_0807E390: @ 0x0807E390 push {lr} adds r2, r1, #0 movs r3, #0 ldr r0, [r2] ldr r1, _0807E3B4 @ =gUnk_02002A40 adds r1, #0xc0 ldrh r0, [r0, #2] ldrh r1, [r1] cmp r0, r1 bhi _0807E3A6 movs r3, #1 _0807E3A6: str r3, [r2, #0x14] ldr r2, _0807E3B8 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {pc} .align 2, 0 _0807E3B4: .4byte gUnk_02002A40 _0807E3B8: .4byte gUnk_02033280 thumb_func_start sub_0807E3BC sub_0807E3BC: @ 0x0807E3BC push {lr} adds r2, r1, #0 movs r3, #0 ldr r0, [r2] ldr r1, _0807E3E0 @ =gUnk_02002A40 adds r1, #0xc2 ldrh r0, [r0, #2] ldrh r1, [r1] cmp r0, r1 bhi _0807E3D2 movs r3, #1 _0807E3D2: str r3, [r2, #0x14] ldr r2, _0807E3E4 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {pc} .align 2, 0 _0807E3E0: .4byte gUnk_02002A40 _0807E3E4: .4byte gUnk_02033280 thumb_func_start sub_0807E3E8 sub_0807E3E8: @ 0x0807E3E8 push {lr} movs r2, #0 ldr r0, _0807E404 @ =gUnk_02000040 ldrb r0, [r0, #1] cmp r0, #0 bne _0807E3F6 movs r2, #1 _0807E3F6: str r2, [r1, #0x14] ldr r2, _0807E408 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {pc} .align 2, 0 _0807E404: .4byte gUnk_02000040 _0807E408: .4byte gUnk_02033280 thumb_func_start sub_0807E40C sub_0807E40C: @ 0x0807E40C push {r4, lr} adds r4, r1, #0 ldr r0, [r4] ldrh r0, [r0, #2] bl sub_0801E7F4 str r0, [r4, #0x14] ldr r2, _0807E428 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, pc} .align 2, 0 _0807E428: .4byte gUnk_02033280 thumb_func_start sub_0807E42C sub_0807E42C: @ 0x0807E42C push {r4, r5, r6, lr} adds r5, r1, #0 ldr r0, [r5] ldrh r4, [r0, #2] ldrh r6, [r0, #4] cmp r4, #0 bne _0807E440 ldr r0, _0807E480 @ =gUnk_02034350 ldrb r4, [r0, #6] ldrb r6, [r0, #7] _0807E440: adds r0, r4, #0 bl sub_08053FE0 adds r2, r0, #0 movs r1, #0 ldr r0, _0807E484 @ =gUnk_02002A40 adds r0, #0xc0 ldrh r0, [r0] cmp r2, r0 bgt _0807E456 movs r1, #1 _0807E456: str r1, [r5, #0x14] cmp r1, #0 beq _0807E474 rsbs r0, r2, #0 bl sub_080526CC adds r0, r4, #0 adds r1, r6, #0 movs r2, #0 bl sub_080A7C18 ldr r1, _0807E480 @ =gUnk_02034350 movs r0, #0 strb r0, [r1, #6] strb r0, [r1, #7] _0807E474: ldr r2, _0807E488 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, r5, r6, pc} .align 2, 0 _0807E480: .4byte gUnk_02034350 _0807E484: .4byte gUnk_02002A40 _0807E488: .4byte gUnk_02033280 thumb_func_start sub_0807E48C sub_0807E48C: @ 0x0807E48C push {r4, lr} adds r4, r1, #0 ldr r0, [r4] ldrh r0, [r0, #2] bl sub_080544DC str r0, [r4, #0x14] ldr r2, _0807E4A8 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, pc} .align 2, 0 _0807E4A8: .4byte gUnk_02033280 thumb_func_start sub_0807E4AC sub_0807E4AC: @ 0x0807E4AC ldr r0, _0807E4C4 @ =gUnk_02034350 ldrb r2, [r0, #6] rsbs r0, r2, #0 orrs r0, r2 lsrs r0, r0, #0x1f str r0, [r1, #0x14] ldr r2, _0807E4C8 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] bx lr .align 2, 0 _0807E4C4: .4byte gUnk_02034350 _0807E4C8: .4byte gUnk_02033280 thumb_func_start sub_0807E4CC sub_0807E4CC: @ 0x0807E4CC ldr r0, [r1] ldrh r0, [r0, #2] ldr r2, [r1, #4] ands r2, r0 rsbs r0, r2, #0 orrs r0, r2 lsrs r0, r0, #0x1f str r0, [r1, #0x14] ldr r2, _0807E4E8 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] bx lr .align 2, 0 _0807E4E8: .4byte gUnk_02033280 thumb_func_start sub_0807E4EC sub_0807E4EC: @ 0x0807E4EC push {lr} adds r2, r1, #0 ldr r0, [r2] ldrh r1, [r0, #2] movs r3, #0 ldr r0, [r2, #4] ands r0, r1 cmp r1, r0 bne _0807E500 movs r3, #1 _0807E500: str r3, [r2, #0x14] ldr r2, _0807E510 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {pc} .align 2, 0 _0807E510: .4byte gUnk_02033280 thumb_func_start sub_0807E514 sub_0807E514: @ 0x0807E514 push {lr} adds r2, r1, #0 ldr r0, [r2] ldrh r1, [r0, #2] movs r3, #0 ldr r0, [r2, #4] cmp r1, r0 bne _0807E526 movs r3, #1 _0807E526: str r3, [r2, #0x14] ldr r2, _0807E534 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {pc} .align 2, 0 _0807E534: .4byte gUnk_02033280 thumb_func_start sub_0807E538 sub_0807E538: @ 0x0807E538 push {r4, lr} adds r4, r1, #0 ldr r0, [r4] bl sub_08016998 ldr r1, _0807E55C @ =gUnk_03003F80 ldr r1, [r1, #0x30] ands r0, r1 rsbs r1, r0, #0 orrs r1, r0 lsrs r1, r1, #0x1f str r1, [r4, #0x14] ldr r2, _0807E560 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, pc} .align 2, 0 _0807E55C: .4byte gUnk_03003F80 _0807E560: .4byte gUnk_02033280 thumb_func_start sub_0807E564 sub_0807E564: @ 0x0807E564 ldr r0, _0807E57C @ =gUnk_03003F80 ldr r0, [r0, #0x30] lsrs r0, r0, #7 movs r2, #1 ands r0, r2 str r0, [r1, #0x14] ldr r2, _0807E580 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] bx lr .align 2, 0 _0807E57C: .4byte gUnk_03003F80 _0807E580: .4byte gUnk_02033280 thumb_func_start sub_0807E584 sub_0807E584: @ 0x0807E584 ldr r2, [r0, #0x34] rsbs r0, r2, #0 orrs r0, r2 lsrs r0, r0, #0x1f str r0, [r1, #0x14] ldr r2, _0807E59C @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] bx lr .align 2, 0 _0807E59C: .4byte gUnk_02033280 thumb_func_start sub_0807E5A0 sub_0807E5A0: @ 0x0807E5A0 push {lr} adds r2, r1, #0 movs r3, #0 ldr r0, [r2] ldr r1, _0807E5C4 @ =gUnk_03001160 ldrh r0, [r0, #2] ldrb r1, [r1, #0xc] cmp r0, r1 bne _0807E5B4 movs r3, #1 _0807E5B4: str r3, [r2, #0x14] ldr r2, _0807E5C8 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {pc} .align 2, 0 _0807E5C4: .4byte gUnk_03001160 _0807E5C8: .4byte gUnk_02033280 thumb_func_start sub_0807E5CC sub_0807E5CC: @ 0x0807E5CC push {lr} adds r2, r1, #0 movs r3, #0 ldr r0, [r2] ldr r1, _0807E5F0 @ =gUnk_03001160 ldrh r0, [r0, #2] ldrb r1, [r1, #0x14] cmp r0, r1 bne _0807E5E0 movs r3, #1 _0807E5E0: str r3, [r2, #0x14] ldr r2, _0807E5F4 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {pc} .align 2, 0 _0807E5F0: .4byte gUnk_03001160 _0807E5F4: .4byte gUnk_02033280 thumb_func_start sub_0807E5F8 sub_0807E5F8: @ 0x0807E5F8 push {lr} ldr r0, [r1] bl sub_08016998 ldr r2, _0807E60C @ =gUnk_02033280 ldr r1, [r2] orrs r1, r0 str r1, [r2] pop {pc} .align 2, 0 _0807E60C: .4byte gUnk_02033280 thumb_func_start sub_0807E610 sub_0807E610: @ 0x0807E610 push {lr} ldr r0, [r1] bl sub_08016998 ldr r2, _0807E624 @ =gUnk_02033280 ldr r1, [r2] bics r1, r0 str r1, [r2] pop {pc} .align 2, 0 _0807E624: .4byte gUnk_02033280 thumb_func_start sub_0807E628 sub_0807E628: @ 0x0807E628 push {lr} ldr r0, [r1] ldrh r0, [r0, #2] bl sub_0807CCB4 pop {pc} thumb_func_start sub_0807E634 sub_0807E634: @ 0x0807E634 push {lr} ldr r1, [r1] ldrh r0, [r1, #2] ldrh r1, [r1, #4] bl sub_0807CC9C pop {pc} .align 2, 0 thumb_func_start sub_0807E644 sub_0807E644: @ 0x0807E644 push {lr} ldr r0, [r1] ldrh r0, [r0, #2] bl sub_0807CD34 pop {pc} thumb_func_start sub_0807E650 sub_0807E650: @ 0x0807E650 push {lr} ldr r0, [r1] ldrh r0, [r0, #2] bl sub_0807CD04 pop {pc} thumb_func_start sub_0807E65C sub_0807E65C: @ 0x0807E65C push {lr} ldr r0, [r1] ldrh r0, [r0, #2] bl sub_0807CD80 pop {pc} thumb_func_start sub_0807E668 sub_0807E668: @ 0x0807E668 push {lr} ldr r0, [r1] ldrh r0, [r0, #2] bl sub_0807CD10 pop {pc} thumb_func_start sub_0807E674 sub_0807E674: @ 0x0807E674 push {lr} ldr r0, [r1] ldrh r0, [r0, #2] bl sub_0807CD8C pop {pc} thumb_func_start sub_0807E680 sub_0807E680: @ 0x0807E680 push {r4, lr} adds r4, r1, #0 ldr r0, [r4] bl sub_0801698A strh r0, [r4, #0x10] pop {r4, pc} .align 2, 0 thumb_func_start sub_0807E690 sub_0807E690: @ 0x0807E690 push {lr} ldr r0, [r1] bl sub_08016998 ldr r2, _0807E6A8 @ =gUnk_02033280 ldr r1, [r2] ands r1, r0 cmp r1, r0 beq _0807E6A6 movs r0, #0 strb r0, [r2, #6] _0807E6A6: pop {pc} .align 2, 0 _0807E6A8: .4byte gUnk_02033280 thumb_func_start sub_0807E6AC sub_0807E6AC: @ 0x0807E6AC push {lr} ldr r0, [r1] bl sub_08016998 ldr r3, _0807E6C8 @ =gUnk_02033280 ldr r2, [r3] adds r1, r2, #0 ands r1, r0 cmp r1, r0 beq _0807E6CC movs r0, #0 strb r0, [r3, #6] b _0807E6D8 .align 2, 0 _0807E6C8: .4byte gUnk_02033280 _0807E6CC: bics r2, r1 str r2, [r3] ldrb r1, [r3, #7] movs r0, #1 orrs r0, r1 strb r0, [r3, #7] _0807E6D8: pop {pc} .align 2, 0 thumb_func_start sub_0807E6DC sub_0807E6DC: @ 0x0807E6DC push {lr} ldr r0, _0807E6F0 @ =gUnk_03001160 ldrb r0, [r0, #0xc] cmp r0, #8 bne _0807E6F8 ldr r1, _0807E6F4 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] b _0807E6FC .align 2, 0 _0807E6F0: .4byte gUnk_03001160 _0807E6F4: .4byte gUnk_02033280 _0807E6F8: movs r0, #0x2d strh r0, [r1, #0x10] _0807E6FC: pop {pc} .align 2, 0 thumb_func_start sub_0807E700 sub_0807E700: @ 0x0807E700 push {lr} ldr r0, _0807E718 @ =gUnk_03001160 ldrb r0, [r0, #0xc] cmp r0, #0x17 beq _0807E720 ldr r2, _0807E71C @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] b _0807E726 .align 2, 0 _0807E718: .4byte gUnk_03001160 _0807E71C: .4byte gUnk_02033280 _0807E720: ldr r1, _0807E728 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0807E726: pop {pc} .align 2, 0 _0807E728: .4byte gUnk_02033280 thumb_func_start sub_0807E72C sub_0807E72C: @ 0x0807E72C push {lr} ldr r0, _0807E744 @ =gUnk_03000BF0 ldrb r1, [r0, #0xf] movs r0, #4 ands r0, r1 cmp r0, #0 beq _0807E74C ldr r1, _0807E748 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] b _0807E756 .align 2, 0 _0807E744: .4byte gUnk_03000BF0 _0807E748: .4byte gUnk_02033280 _0807E74C: ldr r2, _0807E758 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] _0807E756: pop {pc} .align 2, 0 _0807E758: .4byte gUnk_02033280 thumb_func_start sub_0807E75C sub_0807E75C: @ 0x0807E75C push {lr} ldr r0, _0807E770 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 beq _0807E76C ldr r1, _0807E774 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0807E76C: pop {pc} .align 2, 0 _0807E770: .4byte gUnk_03000FD0 _0807E774: .4byte gUnk_02033280 thumb_func_start sub_0807E778 sub_0807E778: @ 0x0807E778 ldr r2, _0807E784 @ =gUnk_02033280 ldr r0, [r1] ldrh r0, [r0, #2] strb r0, [r2, #8] bx lr .align 2, 0 _0807E784: .4byte gUnk_02033280 thumb_func_start sub_0807E788 sub_0807E788: @ 0x0807E788 push {lr} ldr r0, [r1] bl sub_08016998 ldr r1, _0807E798 @ =gUnk_03000FD0 str r0, [r1, #4] pop {pc} .align 2, 0 _0807E798: .4byte gUnk_03000FD0 thumb_func_start sub_0807E79C sub_0807E79C: @ 0x0807E79C push {lr} ldr r0, _0807E7A8 @ =gUnk_02033280 ldrb r0, [r0, #8] bl sub_080500F4 pop {pc} .align 2, 0 _0807E7A8: .4byte gUnk_02033280 thumb_func_start nullsub_508 nullsub_508: @ 0x0807E7AC bx lr .align 2, 0 thumb_func_start sub_0807E7B0 sub_0807E7B0: @ 0x0807E7B0 push {lr} ldr r0, _0807E7C0 @ =gUnk_02033280 ldrb r1, [r0, #8] movs r0, #4 bl sub_08050054 pop {pc} .align 2, 0 _0807E7C0: .4byte gUnk_02033280 thumb_func_start sub_0807E7C4 sub_0807E7C4: @ 0x0807E7C4 push {lr} ldr r0, _0807E7D4 @ =gUnk_02033280 ldrb r1, [r0, #8] movs r0, #5 bl sub_08050054 pop {pc} .align 2, 0 _0807E7D4: .4byte gUnk_02033280 thumb_func_start sub_0807E7D8 sub_0807E7D8: @ 0x0807E7D8 push {lr} ldr r0, _0807E7E8 @ =gUnk_02033280 ldrb r1, [r0, #8] movs r0, #6 bl sub_08050054 pop {pc} .align 2, 0 _0807E7E8: .4byte gUnk_02033280 thumb_func_start sub_0807E7EC sub_0807E7EC: @ 0x0807E7EC push {lr} ldr r0, _0807E7FC @ =gUnk_02033280 ldrb r1, [r0, #8] movs r0, #7 bl sub_08050054 pop {pc} .align 2, 0 _0807E7FC: .4byte gUnk_02033280 thumb_func_start sub_0807E800 sub_0807E800: @ 0x0807E800 push {lr} movs r0, #0x10 bl sub_0807E818 pop {pc} .align 2, 0 thumb_func_start sub_0807E80C sub_0807E80C: @ 0x0807E80C push {lr} movs r0, #0x11 bl sub_0807E818 pop {pc} .align 2, 0 thumb_func_start sub_0807E818 sub_0807E818: @ 0x0807E818 push {r4, r5, lr} adds r5, r0, #0 ldr r2, _0807E83C @ =gUnk_03000BF0 ldr r3, [r2, #0x30] cmp r3, #0 beq _0807E840 movs r0, #0x2e ldrsh r1, [r3, r0] movs r4, #0xa ldrsh r0, [r2, r4] subs r4, r1, r0 movs r0, #0x32 ldrsh r1, [r3, r0] movs r3, #0xc ldrsh r0, [r2, r3] subs r1, r1, r0 b _0807E844 .align 2, 0 _0807E83C: .4byte gUnk_03000BF0 _0807E840: movs r4, #0x78 movs r1, #0x50 _0807E844: ldr r0, _0807E854 @ =gUnk_02033280 ldrb r3, [r0, #8] adds r0, r4, #0 adds r2, r5, #0 bl sub_08050110 pop {r4, r5, pc} .align 2, 0 _0807E854: .4byte gUnk_02033280 thumb_func_start sub_0807E858 sub_0807E858: @ 0x0807E858 push {lr} ldr r0, [r1] ldrh r0, [r0, #2] bl sub_08050038 pop {pc} thumb_func_start sub_0807E864 sub_0807E864: @ 0x0807E864 push {lr} ldr r0, _0807E874 @ =gUnk_03003F80 adds r0, #0x8b movs r1, #3 strb r1, [r0] bl sub_08078B48 pop {pc} .align 2, 0 _0807E874: .4byte gUnk_03003F80 thumb_func_start sub_0807E878 sub_0807E878: @ 0x0807E878 ldr r0, _0807E884 @ =gUnk_03003F80 adds r0, #0x8b movs r1, #1 strb r1, [r0] bx lr .align 2, 0 _0807E884: .4byte gUnk_03003F80 thumb_func_start sub_0807E888 sub_0807E888: @ 0x0807E888 ldr r0, _0807E894 @ =gUnk_03003F80 adds r0, #0x8b movs r1, #3 strb r1, [r0] bx lr .align 2, 0 _0807E894: .4byte gUnk_03003F80 thumb_func_start sub_0807E898 sub_0807E898: @ 0x0807E898 push {lr} ldr r0, [r1] bl sub_08016998 ldr r3, _0807E8C0 @ =gUnk_03003F80 strb r0, [r3, #0xc] lsrs r2, r0, #8 adds r1, r3, #0 adds r1, #0x38 strb r2, [r1] lsrs r1, r0, #0x10 adds r2, r3, #0 adds r2, #0x39 strb r1, [r2] lsrs r0, r0, #0x18 adds r1, r3, #0 adds r1, #0x3a strb r0, [r1] pop {pc} .align 2, 0 _0807E8C0: .4byte gUnk_03003F80 thumb_func_start sub_0807E8C4 sub_0807E8C4: @ 0x0807E8C4 push {lr} ldr r0, [r1] bl sub_08016998 bl sub_0807DB2C pop {pc} .align 2, 0 thumb_func_start sub_0807E8D4 sub_0807E8D4: @ 0x0807E8D4 ldr r2, _0807E8E0 @ =gUnk_03003F80 ldr r0, [r1] ldrh r0, [r0, #2] strh r0, [r2, #8] bx lr .align 2, 0 _0807E8E0: .4byte gUnk_03003F80 thumb_func_start sub_0807E8E4 sub_0807E8E4: @ 0x0807E8E4 ldr r0, _0807E8FC @ =gUnk_08016984 ldrh r0, [r0] ldr r2, _0807E900 @ =0x000003FF ands r2, r0 ldr r3, _0807E904 @ =gUnk_03001160 ldr r0, [r1] ldrh r0, [r0] subs r0, r0, r2 lsls r0, r0, #1 strb r0, [r3, #0x14] bx lr .align 2, 0 _0807E8FC: .4byte gUnk_08016984 _0807E900: .4byte 0x000003FF _0807E904: .4byte gUnk_03001160 thumb_func_start sub_0807E908 sub_0807E908: @ 0x0807E908 ldr r1, [r1] ldrh r1, [r1, #2] movs r2, #0 strb r1, [r0, #0xc] strb r2, [r0, #0xd] bx lr thumb_func_start sub_0807E914 sub_0807E914: @ 0x0807E914 push {r4, lr} adds r4, r1, #0 ldr r0, [r4] bl sub_08016998 str r0, [r4, #4] pop {r4, pc} .align 2, 0 thumb_func_start sub_0807E924 sub_0807E924: @ 0x0807E924 adds r0, #0x5a ldrb r2, [r0] str r2, [r1, #4] movs r1, #0 strb r1, [r0] bx lr thumb_func_start sub_0807E930 sub_0807E930: @ 0x0807E930 push {lr} ldr r3, [r1] ldrh r2, [r3, #2] adds r1, r0, #0 adds r1, #0x80 strh r2, [r1] ldrh r1, [r3, #2] bl sub_080042AC pop {pc} thumb_func_start sub_0807E944 sub_0807E944: @ 0x0807E944 push {lr} adds r2, r0, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #0 beq _0807E968 movs r0, #0 strb r0, [r2] ldr r2, _0807E964 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] b _0807E96C .align 2, 0 _0807E964: .4byte gUnk_02033280 _0807E968: ldr r0, _0807E970 @ =gUnk_02033280 strb r1, [r0, #6] _0807E96C: pop {pc} .align 2, 0 _0807E970: .4byte gUnk_02033280 thumb_func_start sub_0807E974 sub_0807E974: @ 0x0807E974 push {lr} adds r2, r1, #0 ldrb r1, [r2, #0x18] cmp r1, #0 beq _0807E990 cmp r1, #1 beq _0807E9AE ldrb r0, [r2, #0x19] subs r0, #1 strb r0, [r2, #0x19] lsls r0, r0, #0x18 cmp r0, #0 beq _0807E9C8 b _0807E9C2 _0807E990: adds r3, r0, #0 adds r3, #0x39 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _0807E9C2 strb r1, [r3] ldrb r0, [r2, #0x18] adds r0, #1 strb r0, [r2, #0x18] ldr r0, [r2] ldrh r0, [r0, #2] bl sub_08056378 b _0807E9C2 _0807E9AE: ldr r0, _0807E9CC @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _0807E9C2 movs r0, #2 strb r0, [r2, #0x18] movs r0, #0xf strb r0, [r2, #0x19] _0807E9C2: ldr r1, _0807E9D0 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0807E9C8: pop {pc} .align 2, 0 _0807E9CC: .4byte gUnk_02000050 _0807E9D0: .4byte gUnk_02033280 thumb_func_start sub_0807E9D4 sub_0807E9D4: @ 0x0807E9D4 push {lr} bl sub_08078778 pop {pc} thumb_func_start sub_0807E9DC sub_0807E9DC: @ 0x0807E9DC push {lr} bl sub_080788E0 pop {pc} thumb_func_start sub_0807E9E4 sub_0807E9E4: @ 0x0807E9E4 push {lr} ldr r1, [r1] ldrh r1, [r1, #2] bl sub_08078784 pop {pc} thumb_func_start sub_0807E9F0 sub_0807E9F0: @ 0x0807E9F0 push {r4, lr} adds r4, r1, #0 bl sub_0801E00C movs r2, #1 ldr r0, _0807EA18 @ =gUnk_02022740 ldrb r0, [r0] cmp r0, #1 beq _0807EA24 cmp r0, #2 bne _0807EA40 ldr r0, _0807EA1C @ =gUnk_03003F80 adds r0, #0x8b movs r1, #3 strb r1, [r0] ldr r0, _0807EA20 @ =gUnk_02034490 strb r2, [r0] str r2, [r4, #0x14] b _0807EA28 .align 2, 0 _0807EA18: .4byte gUnk_02022740 _0807EA1C: .4byte gUnk_03003F80 _0807EA20: .4byte gUnk_02034490 _0807EA24: movs r0, #0 str r0, [r4, #0x14] _0807EA28: cmp r2, #0 beq _0807EA40 bl sub_0807919C ldr r0, _0807EA3C @ =gUnk_03003F80 adds r0, #0x8b movs r1, #1 strb r1, [r0] b _0807EA46 .align 2, 0 _0807EA3C: .4byte gUnk_03003F80 _0807EA40: ldr r1, _0807EA48 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0807EA46: pop {r4, pc} .align 2, 0 _0807EA48: .4byte gUnk_02033280 thumb_func_start sub_0807EA4C sub_0807EA4C: @ 0x0807EA4C push {r4, lr} adds r1, r0, #0 adds r4, r1, #0 adds r4, #0x39 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #2 bne _0807EA7C adds r0, r1, #0 movs r1, #0 movs r2, #0 movs r3, #0 bl sub_0801DFB4 movs r0, #0 strb r0, [r4] ldr r2, _0807EA78 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] b _0807EA82 .align 2, 0 _0807EA78: .4byte gUnk_02033280 _0807EA7C: ldr r1, _0807EA84 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0807EA82: pop {r4, pc} .align 2, 0 _0807EA84: .4byte gUnk_02033280 thumb_func_start sub_0807EA88 sub_0807EA88: @ 0x0807EA88 push {lr} ldr r1, [r1] ldrh r1, [r1, #2] bl sub_08078790 pop {pc} thumb_func_start sub_0807EA94 sub_0807EA94: @ 0x0807EA94 push {lr} ldr r0, _0807EAAC @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 beq _0807EAA8 ldr r1, _0807EAB0 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0807EAA8: pop {pc} .align 2, 0 _0807EAAC: .4byte gUnk_02000050 _0807EAB0: .4byte gUnk_02033280 thumb_func_start sub_0807EAB4 sub_0807EAB4: @ 0x0807EAB4 push {lr} ldr r0, [r1] ldrh r0, [r0, #2] bl sub_08056378 pop {pc} thumb_func_start sub_0807EAC0 sub_0807EAC0: @ 0x0807EAC0 push {lr} adds r2, r0, #0 ldr r0, [r1] ldrh r0, [r0, #2] adds r1, r2, #0 bl sub_08056398 pop {pc} thumb_func_start sub_0807EAD0 sub_0807EAD0: @ 0x0807EAD0 push {r4, lr} adds r4, r1, #0 ldr r0, [r4] ldrh r0, [r0, #2] bl sub_08056378 ldr r1, _0807EAEC @ =gUnk_02000050 movs r0, #1 strb r0, [r1, #6] ldr r0, [r4] ldrh r0, [r0, #4] strb r0, [r1, #7] pop {r4, pc} .align 2, 0 _0807EAEC: .4byte gUnk_02000050 thumb_func_start sub_0807EAF0 sub_0807EAF0: @ 0x0807EAF0 push {lr} ldr r0, _0807EB0C @ =gUnk_02033280 ldrb r0, [r0, #6] ldr r2, [r1, #4] cmp r0, r2 bls _0807EB10 lsls r0, r2, #1 ldr r1, [r1] adds r1, r1, r0 ldrh r0, [r1, #2] bl sub_08056378 b _0807EB16 .align 2, 0 _0807EB0C: .4byte gUnk_02033280 _0807EB10: movs r0, #0 bl sub_08056378 _0807EB16: pop {pc} thumb_func_start sub_0807EB18 sub_0807EB18: @ 0x0807EB18 push {lr} adds r2, r0, #0 ldr r0, [r1, #4] adds r1, r2, #0 bl sub_08056398 pop {pc} .align 2, 0 thumb_func_start sub_0807EB28 sub_0807EB28: @ 0x0807EB28 push {lr} ldr r0, [r1] ldrh r0, [r0, #2] movs r1, #0 bl sub_08078AA8 pop {pc} .align 2, 0 thumb_func_start sub_0807EB38 sub_0807EB38: @ 0x0807EB38 ldr r0, _0807EB40 @ =gUnk_02000040 ldrb r0, [r0, #1] str r0, [r1, #4] bx lr .align 2, 0 _0807EB40: .4byte gUnk_02000040 thumb_func_start sub_0807EB44 sub_0807EB44: @ 0x0807EB44 ldr r1, [r1] ldrh r1, [r1, #2] strb r1, [r0, #0x14] bx lr thumb_func_start sub_0807EB4C sub_0807EB4C: @ 0x0807EB4C push {r4, lr} adds r4, r0, #0 ldr r2, [r1] ldrh r1, [r2, #2] ldr r3, _0807EB70 @ =gUnk_03000BF0 ldrh r0, [r3, #6] adds r1, r1, r0 ldrh r2, [r2, #4] ldrh r0, [r3, #8] adds r2, r2, r0 adds r0, r4, #0 bl sub_080045B4 bl sub_0806F5B0 strb r0, [r4, #0x14] pop {r4, pc} .align 2, 0 _0807EB70: .4byte gUnk_03000BF0 thumb_func_start sub_0807EB74 sub_0807EB74: @ 0x0807EB74 push {r4, lr} adds r4, r0, #0 ldr r1, _0807EB88 @ =gUnk_03001160 bl sub_080045C4 bl sub_0806F5B0 strb r0, [r4, #0x14] pop {r4, pc} .align 2, 0 _0807EB88: .4byte gUnk_03001160 thumb_func_start sub_0807EB8C sub_0807EB8C: @ 0x0807EB8C push {r4, lr} adds r1, r0, #0 ldr r4, _0807EBA4 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5B0 movs r1, #0xfe ands r0, r1 strb r0, [r4, #0x14] pop {r4, pc} .align 2, 0 _0807EBA4: .4byte gUnk_03001160 thumb_func_start sub_0807EBA8 sub_0807EBA8: @ 0x0807EBA8 ldr r1, [r1] ldrh r1, [r1, #2] strb r1, [r0, #0x15] bx lr thumb_func_start sub_0807EBB0 sub_0807EBB0: @ 0x0807EBB0 ldr r1, [r1] ldrh r1, [r1, #2] strb r1, [r0, #0x15] ldrb r1, [r0, #0x15] lsrs r1, r1, #2 strb r1, [r0, #0x14] bx lr .align 2, 0 thumb_func_start sub_0807EBC0 sub_0807EBC0: @ 0x0807EBC0 ldr r1, [r1] ldrh r1, [r1, #2] strh r1, [r0, #0x24] bx lr thumb_func_start sub_0807EBC8 sub_0807EBC8: @ 0x0807EBC8 push {r4, lr} adds r4, r0, #0 ldr r0, [r1] bl sub_08016998 str r0, [r4, #0x20] pop {r4, pc} .align 2, 0 thumb_func_start sub_0807EBD8 sub_0807EBD8: @ 0x0807EBD8 push {r4, lr} ldr r3, _0807EBF0 @ =gUnk_03000BF0 ldr r2, [r1] ldrh r1, [r2, #2] ldrh r4, [r3, #6] adds r1, r1, r4 strh r1, [r0, #0x2e] ldrh r1, [r2, #4] ldrh r3, [r3, #8] adds r1, r1, r3 strh r1, [r0, #0x32] pop {r4, pc} .align 2, 0 _0807EBF0: .4byte gUnk_03000BF0 thumb_func_start sub_0807EBF4 sub_0807EBF4: @ 0x0807EBF4 ldr r2, [r1] ldrh r1, [r2, #2] ldrh r3, [r0, #0x2e] adds r1, r1, r3 strh r1, [r0, #0x2e] ldrh r1, [r2, #4] ldrh r2, [r0, #0x32] adds r1, r1, r2 strh r1, [r0, #0x32] bx lr thumb_func_start sub_0807EC08 sub_0807EC08: @ 0x0807EC08 push {lr} adds r1, r0, #0 ldr r0, _0807EC14 @ =gUnk_03001160 bl sub_0806FA24 pop {pc} .align 2, 0 _0807EC14: .4byte gUnk_03001160 thumb_func_start nullsub_509 nullsub_509: @ 0x0807EC18 bx lr .align 2, 0 thumb_func_start sub_0807EC1C sub_0807EC1C: @ 0x0807EC1C push {lr} adds r3, r0, #0 adds r2, r1, #0 ldrb r0, [r2, #0x18] cmp r0, #0 bne _0807EC3A movs r0, #1 strb r0, [r2, #0x18] ldr r0, [r2] ldrh r0, [r0, #2] strh r0, [r2, #0x12] ldr r0, [r2, #8] movs r1, #2 orrs r0, r1 str r0, [r2, #8] _0807EC3A: adds r0, r3, #0 adds r1, r2, #0 bl sub_0807EC44 pop {pc} thumb_func_start sub_0807EC44 sub_0807EC44: @ 0x0807EC44 push {r4, lr} adds r4, r1, #0 bl sub_0806F69C ldrh r0, [r4, #0x12] subs r0, #1 strh r0, [r4, #0x12] lsls r0, r0, #0x10 cmp r0, #0 beq _0807EC5E ldr r1, _0807EC60 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0807EC5E: pop {r4, pc} .align 2, 0 _0807EC60: .4byte gUnk_02033280 thumb_func_start sub_0807EC64 sub_0807EC64: @ 0x0807EC64 push {lr} adds r3, r0, #0 adds r2, r1, #0 ldrb r0, [r2, #0x18] cmp r0, #0 bne _0807EC88 movs r0, #1 strb r0, [r2, #0x18] ldr r0, [r2] ldrh r0, [r0, #2] movs r1, #0 strh r0, [r2, #0x12] strb r1, [r3, #0x14] strb r1, [r3, #0x15] ldr r0, [r2, #8] movs r1, #2 orrs r0, r1 str r0, [r2, #8] _0807EC88: adds r0, r3, #0 adds r1, r2, #0 bl sub_0807EC44 pop {pc} .align 2, 0 thumb_func_start sub_0807EC94 sub_0807EC94: @ 0x0807EC94 push {lr} adds r3, r0, #0 adds r2, r1, #0 ldrb r0, [r2, #0x18] cmp r0, #0 bne _0807ECB8 movs r0, #1 strb r0, [r2, #0x18] ldr r0, [r2] ldrh r0, [r0, #2] strh r0, [r2, #0x12] movs r1, #2 strb r1, [r3, #0x14] movs r0, #8 strb r0, [r3, #0x15] ldr r0, [r2, #8] orrs r0, r1 str r0, [r2, #8] _0807ECB8: adds r0, r3, #0 adds r1, r2, #0 bl sub_0807EC44 pop {pc} .align 2, 0 thumb_func_start sub_0807ECC4 sub_0807ECC4: @ 0x0807ECC4 push {lr} adds r3, r0, #0 adds r2, r1, #0 ldrb r0, [r2, #0x18] cmp r0, #0 bne _0807ECEA movs r0, #1 strb r0, [r2, #0x18] ldr r0, [r2] ldrh r0, [r0, #2] strh r0, [r2, #0x12] movs r0, #4 strb r0, [r3, #0x14] movs r0, #0x10 strb r0, [r3, #0x15] ldr r0, [r2, #8] movs r1, #2 orrs r0, r1 str r0, [r2, #8] _0807ECEA: adds r0, r3, #0 adds r1, r2, #0 bl sub_0807EC44 pop {pc} thumb_func_start sub_0807ECF4 sub_0807ECF4: @ 0x0807ECF4 push {lr} adds r3, r0, #0 adds r2, r1, #0 ldrb r0, [r2, #0x18] cmp r0, #0 bne _0807ED1A movs r0, #1 strb r0, [r2, #0x18] ldr r0, [r2] ldrh r0, [r0, #2] strh r0, [r2, #0x12] movs r0, #6 strb r0, [r3, #0x14] movs r0, #0x18 strb r0, [r3, #0x15] ldr r0, [r2, #8] movs r1, #2 orrs r0, r1 str r0, [r2, #8] _0807ED1A: adds r0, r3, #0 adds r1, r2, #0 bl sub_0807EC44 pop {pc} thumb_func_start sub_0807ED24 sub_0807ED24: @ 0x0807ED24 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r6, r1, #0 ldrb r0, [r6, #0x18] cmp r0, #0 bne _0807ED90 movs r0, #1 strb r0, [r6, #0x18] ldr r4, [r6] ldrh r0, [r4, #6] strh r0, [r6, #0x12] ldrh r2, [r4, #2] movs r1, #0x2e ldrsh r0, [r7, r1] ldr r5, _0807ED8C @ =gUnk_03000BF0 ldrh r1, [r5, #6] subs r0, r0, r1 subs r0, r2, r0 lsls r0, r0, #0x10 ldrh r1, [r6, #0x12] bl __divsi3 str r0, [r6, #0x1c] ldrh r2, [r4, #4] movs r3, #0x32 ldrsh r0, [r7, r3] ldrh r1, [r5, #8] subs r0, r0, r1 subs r0, r2, r0 lsls r0, r0, #0x10 ldrh r1, [r6, #0x12] bl __divsi3 str r0, [r6, #0x20] ldrh r1, [r4, #2] ldrh r0, [r5, #6] adds r1, r1, r0 ldrh r2, [r4, #4] ldrh r0, [r5, #8] adds r2, r2, r0 adds r0, r7, #0 bl sub_080045B4 bl sub_0806F5B0 strb r0, [r7, #0x14] ldr r0, [r6, #8] movs r1, #2 orrs r0, r1 str r0, [r6, #8] b _0807EDC8 .align 2, 0 _0807ED8C: .4byte gUnk_03000BF0 _0807ED90: ldrh r0, [r6, #0x12] subs r0, #1 strh r0, [r6, #0x12] lsls r0, r0, #0x10 cmp r0, #0 bne _0807EDB8 ldr r2, [r6] ldr r1, _0807EDB4 @ =gUnk_03000BF0 ldrh r0, [r1, #6] ldrh r3, [r2, #2] adds r0, r0, r3 strh r0, [r7, #0x2e] ldrh r0, [r1, #8] ldrh r2, [r2, #4] adds r0, r0, r2 strh r0, [r7, #0x32] b _0807EDCE .align 2, 0 _0807EDB4: .4byte gUnk_03000BF0 _0807EDB8: ldr r0, [r7, #0x2c] ldr r1, [r6, #0x1c] adds r0, r0, r1 str r0, [r7, #0x2c] ldr r0, [r7, #0x30] ldr r1, [r6, #0x20] adds r0, r0, r1 str r0, [r7, #0x30] _0807EDC8: ldr r1, _0807EDD0 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0807EDCE: pop {r4, r5, r6, r7, pc} .align 2, 0 _0807EDD0: .4byte gUnk_02033280 thumb_func_start sub_0807EDD4 sub_0807EDD4: @ 0x0807EDD4 push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 ldrb r0, [r4, #0x18] cmp r0, #0 bne _0807EDEA movs r0, #1 strb r0, [r4, #0x18] adds r0, r5, #0 bl sub_0807EE04 _0807EDEA: adds r0, r5, #0 adds r1, r4, #0 bl sub_0807EE30 ldr r1, [r4, #0x14] cmp r1, #0 bne _0807EDFC ldr r0, _0807EE00 @ =gUnk_02033280 strb r1, [r0, #6] _0807EDFC: pop {r4, r5, pc} .align 2, 0 _0807EE00: .4byte gUnk_02033280 thumb_func_start sub_0807EE04 sub_0807EE04: @ 0x0807EE04 push {r4, r5, lr} ldr r5, [r1] ldrh r2, [r5, #2] ldr r4, _0807EE28 @ =gUnk_03000BF0 ldrh r3, [r4, #6] adds r2, r2, r3 ldrh r3, [r5, #4] ldrh r4, [r4, #8] adds r3, r3, r4 bl sub_0807DEDC ldr r2, _0807EE2C @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, r5, pc} .align 2, 0 _0807EE28: .4byte gUnk_03000BF0 _0807EE2C: .4byte gUnk_02033280 thumb_func_start sub_0807EE30 sub_0807EE30: @ 0x0807EE30 push {r4, r5, r6, r7, lr} adds r6, r0, #0 adds r5, r1, #0 ldrb r0, [r5, #0x19] subs r0, #1 strb r0, [r5, #0x19] lsls r0, r0, #0x18 cmp r0, #0 bne _0807EE60 movs r0, #8 strb r0, [r5, #0x19] movs r1, #0x1e ldrsh r0, [r5, r1] movs r2, #0x2e ldrsh r1, [r6, r2] subs r0, r0, r1 movs r3, #0x22 ldrsh r1, [r5, r3] movs r3, #0x32 ldrsh r2, [r6, r3] subs r1, r1, r2 bl sub_080045DA strb r0, [r6, #0x15] _0807EE60: movs r0, #0x2e ldrsh r4, [r6, r0] movs r1, #0x1e ldrsh r0, [r5, r1] subs r4, r4, r0 movs r2, #0x32 ldrsh r1, [r6, r2] movs r3, #0x22 ldrsh r0, [r5, r3] subs r7, r1, r0 movs r0, #0x24 ldrsh r1, [r6, r0] ldrb r2, [r6, #0x15] adds r0, r6, #0 bl sub_0806F62C movs r1, #0x2e ldrsh r0, [r6, r1] movs r2, #0x1e ldrsh r1, [r5, r2] subs r0, r0, r1 muls r4, r0, r4 movs r3, #0x32 ldrsh r0, [r6, r3] movs r2, #0x22 ldrsh r1, [r5, r2] subs r0, r0, r1 muls r7, r0, r7 cmp r4, #0 bgt _0807EEAC cmp r7, #0 bgt _0807EEAC ldrh r0, [r5, #0x1e] strh r0, [r6, #0x2e] ldrh r0, [r5, #0x22] strh r0, [r6, #0x32] movs r0, #1 b _0807EEAE _0807EEAC: movs r0, #0 _0807EEAE: str r0, [r5, #0x14] pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0807EEB4 sub_0807EEB4: @ 0x0807EEB4 push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 ldrb r0, [r4, #0x18] cmp r0, #0 bne _0807EED6 movs r0, #1 strb r0, [r4, #0x18] ldr r0, _0807EEEC @ =gUnk_03001160 movs r1, #0x2e ldrsh r2, [r0, r1] movs r1, #0x32 ldrsh r3, [r0, r1] adds r0, r5, #0 adds r1, r4, #0 bl sub_0807DEDC _0807EED6: adds r0, r5, #0 adds r1, r4, #0 bl sub_0807EE30 ldr r1, [r4, #0x14] cmp r1, #0 bne _0807EEE8 ldr r0, _0807EEF0 @ =gUnk_02033280 strb r1, [r0, #6] _0807EEE8: pop {r4, r5, pc} .align 2, 0 _0807EEEC: .4byte gUnk_03001160 _0807EEF0: .4byte gUnk_02033280 thumb_func_start sub_0807EEF4 sub_0807EEF4: @ 0x0807EEF4 push {r4, r5, r6, lr} adds r5, r0, #0 adds r4, r1, #0 ldrb r0, [r4, #0x18] cmp r0, #0 bne _0807EF22 movs r0, #1 strb r0, [r4, #0x18] movs r0, #0x2e ldrsh r2, [r5, r0] ldr r1, [r4] movs r3, #2 ldrsh r0, [r1, r3] adds r2, r2, r0 movs r6, #0x32 ldrsh r3, [r5, r6] movs r6, #4 ldrsh r0, [r1, r6] adds r3, r3, r0 adds r0, r5, #0 adds r1, r4, #0 bl sub_0807DEDC _0807EF22: adds r0, r5, #0 adds r1, r4, #0 bl sub_0807EE30 ldr r1, [r4, #0x14] cmp r1, #0 bne _0807EF34 ldr r0, _0807EF38 @ =gUnk_02033280 strb r1, [r0, #6] _0807EF34: pop {r4, r5, r6, pc} .align 2, 0 _0807EF38: .4byte gUnk_02033280 thumb_func_start sub_0807EF3C sub_0807EF3C: @ 0x0807EF3C push {r4, lr} adds r3, r0, #0 adds r2, r1, #0 ldrb r0, [r2, #0x18] cmp r0, #0 bne _0807EF66 movs r0, #1 strb r0, [r2, #0x18] ldr r1, [r2] movs r4, #2 ldrsh r0, [r1, r4] lsls r0, r0, #8 str r0, [r3, #0x20] ldrh r0, [r1, #4] lsls r0, r0, #8 strh r0, [r2, #0x1c] ldrh r1, [r2, #0x1c] adds r0, r3, #0 bl sub_08003FC4 b _0807EF72 _0807EF66: ldrh r1, [r2, #0x1c] adds r0, r3, #0 bl sub_08003FC4 cmp r0, #0 beq _0807EF78 _0807EF72: ldr r1, _0807EF7C @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0807EF78: pop {r4, pc} .align 2, 0 _0807EF7C: .4byte gUnk_02033280 thumb_func_start sub_0807EF80 sub_0807EF80: @ 0x0807EF80 ldr r0, [r1] movs r2, #1 ldrh r0, [r0, #2] lsls r2, r0 ldr r0, [r1, #8] orrs r0, r2 str r0, [r1, #8] bx lr thumb_func_start sub_0807EF90 sub_0807EF90: @ 0x0807EF90 ldr r0, [r1] movs r2, #1 ldrh r0, [r0, #2] lsls r2, r0 ldr r0, [r1, #8] orrs r0, r2 str r0, [r1, #8] bx lr thumb_func_start sub_0807EFA0 sub_0807EFA0: @ 0x0807EFA0 push {lr} ldr r0, [r1] ldrh r0, [r0, #2] bl sub_080A3268 pop {pc} thumb_func_start sub_0807EFAC sub_0807EFAC: @ 0x0807EFAC push {lr} ldr r1, [r1] ldrh r0, [r1, #2] cmp r0, #0x63 bls _0807EFCC ldr r0, _0807EFC8 @ =gUnk_02033A90 movs r1, #0x86 lsls r1, r1, #4 adds r0, r0, r1 ldr r0, [r0] bl sub_080A3268 b _0807EFD2 .align 2, 0 _0807EFC8: .4byte gUnk_02033A90 _0807EFCC: ldrh r0, [r1, #2] bl sub_080A3268 _0807EFD2: pop {pc} thumb_func_start sub_0807EFD4 sub_0807EFD4: @ 0x0807EFD4 push {lr} ldr r0, [r1] bl sub_08016998 bl sub_080A3268 pop {pc} .align 2, 0 thumb_func_start sub_0807EFE4 sub_0807EFE4: @ 0x0807EFE4 push {lr} ldr r0, _0807EFF0 @ =0x80100000 bl sub_080A3268 pop {pc} .align 2, 0 _0807EFF0: .4byte 0x80100000 thumb_func_start sub_0807EFF4 sub_0807EFF4: @ 0x0807EFF4 push {lr} ldr r0, [r1] movs r1, #2 ldrsh r0, [r0, r1] bl sub_080526CC pop {pc} .align 2, 0 thumb_func_start sub_0807F004 sub_0807F004: @ 0x0807F004 push {lr} ldr r0, [r1] ldrh r0, [r0, #2] bl sub_080526A0 pop {pc} thumb_func_start sub_0807F010 sub_0807F010: @ 0x0807F010 push {lr} ldr r3, _0807F030 @ =gUnk_02002A40 adds r2, r3, #0 adds r2, #0xab ldrb r0, [r2] adds r1, r0, #0 adds r1, #8 cmp r1, #0xa0 ble _0807F024 movs r1, #0xa0 _0807F024: strb r1, [r2] adds r0, r3, #0 adds r0, #0xaa strb r1, [r0] pop {pc} .align 2, 0 _0807F030: .4byte gUnk_02002A40 thumb_func_start sub_0807F034 sub_0807F034: @ 0x0807F034 push {lr} movs r3, #0 ldr r2, [r1] ldrh r0, [r2, #2] cmp r0, #0x3f bne _0807F042 ldr r3, [r1, #4] _0807F042: ldrh r0, [r2, #2] adds r1, r3, #0 movs r2, #0 bl sub_080A7C18 pop {pc} .align 2, 0 thumb_func_start sub_0807F050 sub_0807F050: @ 0x0807F050 push {lr} ldr r0, [r1] ldrh r1, [r0, #2] movs r0, #0x5c movs r2, #0 bl sub_080A7C18 pop {pc} thumb_func_start sub_0807F060 sub_0807F060: @ 0x0807F060 push {r4, lr} adds r4, r1, #0 ldr r0, [r4] ldrh r0, [r0, #2] bl sub_0807CA84 str r0, [r4, #4] rsbs r1, r0, #0 orrs r1, r0 lsrs r1, r1, #0x1f str r1, [r4, #0x14] pop {r4, pc} thumb_func_start sub_0807F078 sub_0807F078: @ 0x0807F078 push {lr} ldr r1, [r1] ldrh r0, [r1, #2] ldrh r1, [r1, #4] bl sub_0807CAA0 pop {pc} .align 2, 0 thumb_func_start sub_0807F088 sub_0807F088: @ 0x0807F088 push {lr} ldr r0, [r1] ldrh r0, [r0, #2] movs r1, #0 movs r2, #3 bl sub_080A7C18 pop {pc} thumb_func_start sub_0807F098 sub_0807F098: @ 0x0807F098 ldr r1, _0807F0A0 @ =gUnk_03000BF0 str r0, [r1, #0x30] bx lr .align 2, 0 _0807F0A0: .4byte gUnk_03000BF0 thumb_func_start sub_0807F0A4 sub_0807F0A4: @ 0x0807F0A4 ldr r1, _0807F0AC @ =gUnk_03000BF0 ldr r0, _0807F0B0 @ =gUnk_03001160 str r0, [r1, #0x30] bx lr .align 2, 0 _0807F0AC: .4byte gUnk_03000BF0 _0807F0B0: .4byte gUnk_03001160 thumb_func_start sub_0807F0B4 sub_0807F0B4: @ 0x0807F0B4 ldr r2, _0807F0C4 @ =gUnk_03000BF0 ldr r0, [r1] ldrb r1, [r0, #2] movs r0, #7 ands r0, r1 strb r0, [r2, #0xe] bx lr .align 2, 0 _0807F0C4: .4byte gUnk_03000BF0 thumb_func_start sub_0807F0C8 sub_0807F0C8: @ 0x0807F0C8 push {lr} ldr r1, [r1] ldrh r0, [r1, #2] ldrh r1, [r1, #4] bl sub_08080964 pop {pc} .align 2, 0 thumb_func_start sub_0807F0D8 sub_0807F0D8: @ 0x0807F0D8 ldr r0, _0807F0E8 @ =gUnk_03000FF0 ldrh r2, [r0, #2] rsbs r0, r2, #0 orrs r0, r2 lsrs r0, r0, #0x1f str r0, [r1, #0x14] bx lr .align 2, 0 _0807F0E8: .4byte gUnk_03000FF0 thumb_func_start sub_0807F0EC sub_0807F0EC: @ 0x0807F0EC push {r4, lr} adds r4, r1, #0 bl sub_08000E50 ldr r1, [r4, #4] bl __modsi3 str r0, [r4, #4] pop {r4, pc} .align 2, 0 thumb_func_start sub_0807F100 sub_0807F100: @ 0x0807F100 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 bl sub_08000E50 movs r2, #6 adds r1, r0, #0 ands r1, r2 strb r1, [r4, #0x14] ldr r2, _0807F124 @ =gUnk_0811E750 lsrs r0, r0, #8 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] strb r0, [r5, #0x1a] pop {r4, r5, pc} .align 2, 0 _0807F124: .4byte gUnk_0811E750 thumb_func_start sub_0807F128 sub_0807F128: @ 0x0807F128 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 bl sub_08000E50 ldr r2, _0807F150 @ =gUnk_0811E758 movs r3, #7 adds r1, r0, #0 ands r1, r3 adds r1, r1, r2 ldrb r1, [r1] strb r1, [r4, #0x14] ldr r1, _0807F154 @ =gUnk_0811E760 lsrs r0, r0, #8 ands r0, r3 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r5, #0x1a] pop {r4, r5, pc} .align 2, 0 _0807F150: .4byte gUnk_0811E758 _0807F154: .4byte gUnk_0811E760 thumb_func_start sub_0807F158 sub_0807F158: @ 0x0807F158 push {lr} adds r2, r0, #0 adds r2, #0x38 movs r1, #1 strb r1, [r2] bl sub_08016A04 pop {pc} thumb_func_start sub_0807F168 sub_0807F168: @ 0x0807F168 push {lr} ldr r0, _0807F17C @ =gUnk_03001160 adds r2, r0, #0 adds r2, #0x38 movs r1, #1 strb r1, [r2] bl sub_08016A04 pop {pc} .align 2, 0 _0807F17C: .4byte gUnk_03001160 thumb_func_start sub_0807F180 sub_0807F180: @ 0x0807F180 push {lr} adds r2, r0, #0 adds r2, #0x38 movs r1, #2 strb r1, [r2] bl sub_08016A04 pop {pc} thumb_func_start sub_0807F190 sub_0807F190: @ 0x0807F190 push {lr} movs r1, #0x80 lsls r1, r1, #1 movs r0, #4 bl sub_08050054 pop {pc} .align 2, 0 thumb_func_start sub_0807F1A0 sub_0807F1A0: @ 0x0807F1A0 push {r4, lr} ldr r3, _0807F1BC @ =gUnk_03001160 movs r4, #0x2e ldrsh r2, [r3, r4] movs r4, #0x32 ldrsh r3, [r3, r4] bl sub_0807DEDC ldr r2, _0807F1C0 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, pc} .align 2, 0 _0807F1BC: .4byte gUnk_03001160 _0807F1C0: .4byte gUnk_02033280 thumb_func_start sub_0807F1C4 sub_0807F1C4: @ 0x0807F1C4 push {lr} ldr r2, _0807F1D8 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 beq _0807F1E0 ldr r0, _0807F1DC @ =0x00000459 b _0807F1E4 .align 2, 0 _0807F1D8: .4byte gUnk_03003F80 _0807F1DC: .4byte 0x00000459 _0807F1E0: movs r0, #0xde lsls r0, r0, #1 _0807F1E4: strh r0, [r2, #8] pop {pc} thumb_func_start sub_0807F1E8 sub_0807F1E8: @ 0x0807F1E8 push {lr} ldr r2, _0807F1FC @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 beq _0807F204 ldr r0, _0807F200 @ =0x0000045A b _0807F206 .align 2, 0 _0807F1FC: .4byte gUnk_03003F80 _0807F200: .4byte 0x0000045A _0807F204: ldr r0, _0807F20C @ =0x000002BD _0807F206: strh r0, [r2, #8] pop {pc} .align 2, 0 _0807F20C: .4byte 0x000002BD thumb_func_start sub_0807F210 sub_0807F210: @ 0x0807F210 push {lr} ldr r2, _0807F224 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 beq _0807F22C ldr r0, _0807F228 @ =0x0000041C b _0807F22E .align 2, 0 _0807F224: .4byte gUnk_03003F80 _0807F228: .4byte 0x0000041C _0807F22C: ldr r0, _0807F234 @ =0x0000080C _0807F22E: strh r0, [r2, #8] pop {pc} .align 2, 0 _0807F234: .4byte 0x0000080C thumb_func_start sub_0807F238 sub_0807F238: @ 0x0807F238 ldr r2, _0807F240 @ =gUnk_03003F80 ldr r0, [r1, #4] strh r0, [r2, #8] bx lr .align 2, 0 _0807F240: .4byte gUnk_03003F80 thumb_func_start sub_0807F244 sub_0807F244: @ 0x0807F244 push {r4, r5, lr} ldr r0, [r1, #4] ldr r4, _0807F298 @ =0x0000FFFF lsrs r5, r0, #0x10 ands r4, r0 cmp r4, #1 blo _0807F28C cmp r4, #4 bls _0807F25A cmp r4, #6 bne _0807F28C _0807F25A: movs r4, #1 movs r0, #2 bl sub_0807CA84 cmp r0, #0 beq _0807F268 movs r4, #2 _0807F268: movs r0, #3 bl sub_0807CA84 cmp r0, #0 beq _0807F274 movs r4, #3 _0807F274: movs r0, #4 bl sub_0807CA84 cmp r0, #0 beq _0807F280 movs r4, #4 _0807F280: movs r0, #6 bl sub_0807CA84 cmp r0, #0 beq _0807F28C movs r4, #6 _0807F28C: adds r0, r4, #0 adds r1, r5, #0 bl sub_08054414 pop {r4, r5, pc} .align 2, 0 _0807F298: .4byte 0x0000FFFF thumb_func_start sub_0807F29C sub_0807F29C: @ 0x0807F29C push {lr} ldr r0, [r1, #4] bl sub_0805ED14 pop {pc} .align 2, 0 thumb_func_start sub_0807F2A8 sub_0807F2A8: @ 0x0807F2A8 push {lr} ldr r0, _0807F2C0 @ =gUnk_03003F80 adds r0, #0x9c ldr r0, [r0] cmp r0, #0 bne _0807F2C8 ldr r2, _0807F2C4 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] b _0807F2CE .align 2, 0 _0807F2C0: .4byte gUnk_03003F80 _0807F2C4: .4byte gUnk_02033280 _0807F2C8: ldr r1, _0807F2D0 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0807F2CE: pop {pc} .align 2, 0 _0807F2D0: .4byte gUnk_02033280 thumb_func_start sub_0807F2D4 sub_0807F2D4: @ 0x0807F2D4 push {lr} adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 beq _0807F2F8 ldr r2, _0807F2F4 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] b _0807F2FC .align 2, 0 _0807F2F4: .4byte gUnk_02033280 _0807F2F8: ldr r0, _0807F300 @ =gUnk_02033280 strb r1, [r0, #6] _0807F2FC: pop {pc} .align 2, 0 _0807F300: .4byte gUnk_02033280 thumb_func_start sub_0807F304 sub_0807F304: @ 0x0807F304 push {lr} ldr r0, _0807F324 @ =gUnk_03001160 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 beq _0807F32C ldr r2, _0807F328 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] b _0807F330 .align 2, 0 _0807F324: .4byte gUnk_03001160 _0807F328: .4byte gUnk_02033280 _0807F32C: ldr r0, _0807F334 @ =gUnk_02033280 strb r1, [r0, #6] _0807F330: pop {pc} .align 2, 0 _0807F334: .4byte gUnk_02033280 thumb_func_start sub_0807F338 sub_0807F338: @ 0x0807F338 movs r1, #0 str r1, [r0, #0x48] ldrb r2, [r0, #0x17] movs r1, #0xfe ands r1, r2 strb r1, [r0, #0x17] bx lr .align 2, 0 thumb_func_start sub_0807F348 sub_0807F348: @ 0x0807F348 push {lr} movs r1, #2 bl sub_0805E3A0 pop {pc} .align 2, 0 thumb_func_start sub_0807F354 sub_0807F354: @ 0x0807F354 push {lr} movs r1, #6 bl sub_0805E3A0 pop {pc} .align 2, 0 thumb_func_start sub_0807F360 sub_0807F360: @ 0x0807F360 push {lr} movs r1, #3 bl sub_0805E3A0 pop {pc} .align 2, 0 thumb_func_start sub_0807F36C sub_0807F36C: @ 0x0807F36C push {r4, r5, lr} adds r5, r0, #0 movs r1, #0x41 movs r2, #0 bl sub_080A29AC adds r4, r0, #0 cmp r4, #0 beq _0807F3C2 adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2] ldr r3, _0807F3C4 @ =0xFFF80000 adds r0, r5, #0 adds r1, r4, #0 movs r2, #0 bl sub_0806FA48 bl sub_08000E50 movs r5, #1 ands r0, r5 cmp r0, #0 beq _0807F3B0 ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x18] _0807F3B0: bl sub_08000E50 ands r0, r5 cmp r0, #0 beq _0807F3C2 ldrb r0, [r4, #0x18] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x18] _0807F3C2: pop {r4, r5, pc} .align 2, 0 _0807F3C4: .4byte 0xFFF80000 thumb_func_start sub_0807F3C8 sub_0807F3C8: @ 0x0807F3C8 push {lr} bl sub_0807F36C movs r0, #0xe5 bl sub_080A3268 pop {pc} .align 2, 0 thumb_func_start sub_0807F3D8 sub_0807F3D8: @ 0x0807F3D8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0x14] lsrs r0, r0, #1 ldr r1, [r1, #4] adds r1, r1, r0 adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] adds r4, #0x80 strh r0, [r4] pop {r4, pc} .align 2, 0 thumb_func_start sub_0807F3F8 sub_0807F3F8: @ 0x0807F3F8 push {lr} ldr r0, _0807F408 @ =gUnk_03001160 movs r2, #0x18 rsbs r2, r2, #0 movs r1, #8 bl sub_080A2CFC pop {pc} .align 2, 0 _0807F408: .4byte gUnk_03001160 thumb_func_start sub_0807F40C sub_0807F40C: @ 0x0807F40C push {lr} ldr r0, _0807F41C @ =gUnk_03001160 movs r2, #0x18 rsbs r2, r2, #0 movs r1, #8 bl sub_080A2D0C pop {pc} .align 2, 0 _0807F41C: .4byte gUnk_03001160 thumb_func_start sub_0807F420 sub_0807F420: @ 0x0807F420 push {lr} ldr r2, [r1, #4] ldrb r0, [r1, #4] lsrs r2, r2, #8 lsls r2, r2, #0x18 lsrs r2, r2, #0x18 adds r1, r2, #0 bl sub_080A7138 pop {pc} thumb_func_start sub_0807F434 sub_0807F434: @ 0x0807F434 push {lr} adds r3, r0, #0 adds r3, #0x39 movs r2, #0 ldrsb r2, [r3, r2] cmp r2, #1 beq _0807F44C cmp r2, #2 beq _0807F44C movs r0, #0 str r0, [r1, #4] b _0807F452 _0807F44C: movs r0, #0 strb r0, [r3] str r2, [r1, #4] _0807F452: ldr r2, _0807F460 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {pc} .align 2, 0 _0807F460: .4byte gUnk_02033280 thumb_func_start sub_0807F464 sub_0807F464: @ 0x0807F464 push {r4, r5, r6, lr} adds r4, r0, #0 adds r5, r1, #0 ldrb r0, [r5, #0x18] cmp r0, #0 bne _0807F4BC adds r0, #1 movs r3, #0 strb r0, [r5, #0x18] ldr r0, [r5, #8] movs r1, #2 orrs r0, r1 str r0, [r5, #8] ldr r2, [r5, #4] ldr r1, _0807F4A8 @ =gUnk_03000BF0 ldrh r0, [r1, #6] adds r0, r0, r2 strh r0, [r5, #0x1e] ldrh r0, [r4, #0x32] strh r0, [r5, #0x22] movs r6, #0x2e ldrsh r0, [r4, r6] ldrh r1, [r1, #6] subs r0, r0, r1 cmp r2, r0 ble _0807F4AC movs r0, #0x40 strb r0, [r4, #0x15] ldrb r1, [r4, #0x14] movs r0, #0x80 ands r0, r1 movs r1, #2 b _0807F4B8 .align 2, 0 _0807F4A8: .4byte gUnk_03000BF0 _0807F4AC: movs r0, #0xc0 strb r0, [r4, #0x15] ldrb r1, [r4, #0x14] movs r0, #0x80 ands r0, r1 movs r1, #6 _0807F4B8: orrs r0, r1 strb r0, [r4, #0x14] _0807F4BC: movs r0, #0x24 ldrsh r1, [r4, r0] ldrb r2, [r4, #0x15] adds r0, r4, #0 bl sub_0806F62C movs r2, #0x1e ldrsh r1, [r5, r2] movs r6, #0x2e ldrsh r0, [r4, r6] subs r1, r1, r0 ldrb r2, [r4, #0x15] movs r0, #0x80 ands r0, r2 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 lsls r0, r0, #0x18 eors r1, r0 cmp r1, #0 bge _0807F4EA ldrh r0, [r5, #0x1e] strh r0, [r4, #0x2e] b _0807F4F0 _0807F4EA: ldr r1, _0807F4F4 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0807F4F0: pop {r4, r5, r6, pc} .align 2, 0 _0807F4F4: .4byte gUnk_02033280 thumb_func_start sub_0807F4F8 sub_0807F4F8: @ 0x0807F4F8 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 ldrb r0, [r5, #0x18] cmp r0, #0 bne _0807F548 adds r0, #1 strb r0, [r5, #0x18] ldr r0, [r5, #8] movs r1, #2 orrs r0, r1 str r0, [r5, #8] ldr r2, [r5, #4] ldrh r0, [r4, #0x2e] strh r0, [r5, #0x1e] ldr r1, _0807F538 @ =gUnk_03000BF0 ldrh r0, [r1, #8] adds r0, r0, r2 strh r0, [r5, #0x22] movs r3, #0x32 ldrsh r0, [r4, r3] ldrh r1, [r1, #8] subs r0, r0, r1 cmp r2, r0 ble _0807F53C movs r0, #0x80 strb r0, [r4, #0x15] ldrb r1, [r4, #0x14] ands r0, r1 movs r1, #4 orrs r0, r1 b _0807F546 .align 2, 0 _0807F538: .4byte gUnk_03000BF0 _0807F53C: movs r0, #0 strb r0, [r4, #0x15] ldrb r1, [r4, #0x14] movs r0, #0x80 ands r0, r1 _0807F546: strb r0, [r4, #0x14] _0807F548: movs r0, #0x24 ldrsh r1, [r4, r0] ldrb r2, [r4, #0x15] adds r0, r4, #0 bl sub_0806F62C movs r2, #0x22 ldrsh r1, [r5, r2] movs r3, #0x32 ldrsh r0, [r4, r3] subs r1, r1, r0 ldrb r2, [r4, #0x15] movs r0, #0x80 ands r0, r2 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 lsls r0, r0, #0x18 eors r1, r0 cmp r1, #0 blt _0807F576 ldrh r0, [r5, #0x22] strh r0, [r4, #0x32] b _0807F57C _0807F576: ldr r1, _0807F580 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0807F57C: pop {r4, r5, pc} .align 2, 0 _0807F580: .4byte gUnk_02033280 thumb_func_start sub_0807F584 sub_0807F584: @ 0x0807F584 ldr r0, _0807F590 @ =gUnk_03001160 ldrb r0, [r0, #0x14] lsrs r0, r0, #1 str r0, [r1, #4] bx lr .align 2, 0 _0807F590: .4byte gUnk_03001160 thumb_func_start sub_0807F594 sub_0807F594: @ 0x0807F594 push {lr} ldr r0, _0807F5A8 @ =gUnk_03003F80 adds r0, #0xa8 ldrb r0, [r0] cmp r0, #0 beq _0807F5A6 ldr r1, _0807F5AC @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0807F5A6: pop {pc} .align 2, 0 _0807F5A8: .4byte gUnk_03003F80 _0807F5AC: .4byte gUnk_02033280 thumb_func_start sub_0807F5B0 sub_0807F5B0: @ 0x0807F5B0 ldr r0, _0807F5BC @ =gUnk_03003F80 ldr r1, [r1, #4] adds r0, #0x27 strb r1, [r0] bx lr .align 2, 0 _0807F5BC: .4byte gUnk_03003F80 thumb_func_start sub_0807F5C0 sub_0807F5C0: @ 0x0807F5C0 push {r4, lr} ldr r4, _0807F620 @ =gUnk_03000BF0 ldr r1, [r4, #0x30] cmp r1, #0 beq _0807F62E movs r2, #0x2e ldrsh r0, [r1, r2] adds r2, r0, #0 subs r2, #0x78 movs r3, #0x32 ldrsh r0, [r1, r3] adds r3, r0, #0 subs r3, #0x50 ldrh r1, [r4, #6] cmp r2, r1 bge _0807F5E2 adds r2, r1, #0 _0807F5E2: ldrh r0, [r4, #0x1e] adds r0, r1, r0 subs r0, #0xf0 cmp r2, r0 ble _0807F5EE adds r2, r0, #0 _0807F5EE: ldrh r1, [r4, #8] cmp r3, r1 bge _0807F5F6 adds r3, r1, #0 _0807F5F6: ldrh r0, [r4, #0x20] adds r0, r1, r0 subs r0, #0xa0 cmp r3, r0 ble _0807F602 adds r3, r0, #0 _0807F602: movs r1, #0xa ldrsh r0, [r4, r1] cmp r2, r0 bne _0807F628 movs r2, #0xc ldrsh r0, [r4, r2] cmp r3, r0 bne _0807F628 ldr r2, _0807F624 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] b _0807F62E .align 2, 0 _0807F620: .4byte gUnk_03000BF0 _0807F624: .4byte gUnk_02033280 _0807F628: ldr r1, _0807F630 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0807F62E: pop {r4, pc} .align 2, 0 _0807F630: .4byte gUnk_02033280 thumb_func_start sub_0807F634 sub_0807F634: @ 0x0807F634 push {lr} ldr r3, [r1, #4] ldrh r1, [r3] ldrh r2, [r3, #2] ldrh r3, [r3, #4] bl sub_0801DFB4 ldr r0, _0807F64C @ =gUnk_03003F80 adds r0, #0x8b movs r1, #3 strb r1, [r0] pop {pc} .align 2, 0 _0807F64C: .4byte gUnk_03003F80 thumb_func_start sub_0807F650 sub_0807F650: @ 0x0807F650 push {r4, lr} adds r4, r0, #0 bl sub_08002632 ldr r1, _0807F678 @ =gUnk_08001A7C lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] ldrh r1, [r0] ldrh r2, [r0, #2] ldrh r3, [r0, #4] adds r0, r4, #0 bl sub_0801DFB4 ldr r0, _0807F67C @ =gUnk_03003F80 adds r0, #0x8b movs r1, #3 strb r1, [r0] pop {r4, pc} .align 2, 0 _0807F678: .4byte gUnk_08001A7C _0807F67C: .4byte gUnk_03003F80 thumb_func_start sub_0807F680 sub_0807F680: @ 0x0807F680 push {lr} adds r2, r1, #0 movs r3, #0 ldr r0, _0807F6A8 @ =gUnk_03001160 movs r1, #0x2e ldrsh r0, [r0, r1] ldr r1, _0807F6AC @ =gUnk_03000BF0 ldrh r1, [r1, #6] subs r0, r0, r1 ldrh r1, [r2, #4] cmp r0, r1 ble _0807F69A movs r3, #1 _0807F69A: str r3, [r2, #0x14] ldr r2, _0807F6B0 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {pc} .align 2, 0 _0807F6A8: .4byte gUnk_03001160 _0807F6AC: .4byte gUnk_03000BF0 _0807F6B0: .4byte gUnk_02033280 thumb_func_start sub_0807F6B4 sub_0807F6B4: @ 0x0807F6B4 push {lr} adds r2, r1, #0 movs r3, #0 ldr r0, _0807F6DC @ =gUnk_03001160 movs r1, #0x32 ldrsh r0, [r0, r1] ldr r1, _0807F6E0 @ =gUnk_03000BF0 ldrh r1, [r1, #8] subs r0, r0, r1 ldrh r1, [r2, #4] cmp r0, r1 ble _0807F6CE movs r3, #1 _0807F6CE: str r3, [r2, #0x14] ldr r2, _0807F6E4 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {pc} .align 2, 0 _0807F6DC: .4byte gUnk_03001160 _0807F6E0: .4byte gUnk_03000BF0 _0807F6E4: .4byte gUnk_02033280 thumb_func_start sub_0807F6E8 sub_0807F6E8: @ 0x0807F6E8 ldr r2, _0807F6F4 @ =gUnk_03003F80 ldr r0, [r2, #0x30] ldr r1, [r1, #4] orrs r0, r1 str r0, [r2, #0x30] bx lr .align 2, 0 _0807F6F4: .4byte gUnk_03003F80 thumb_func_start sub_0807F6F8 sub_0807F6F8: @ 0x0807F6F8 ldr r2, _0807F704 @ =gUnk_03003F80 ldr r1, [r1, #4] ldr r0, [r2, #0x30] bics r0, r1 str r0, [r2, #0x30] bx lr .align 2, 0 _0807F704: .4byte gUnk_03003F80 thumb_func_start sub_0807F708 sub_0807F708: @ 0x0807F708 push {lr} ldr r1, [r1, #4] bl sub_0806F1AC pop {pc} .align 2, 0 thumb_func_start sub_0807F714 sub_0807F714: @ 0x0807F714 push {lr} adds r1, r0, #0 ldr r2, _0807F734 @ =gUnk_08114F30 ldrb r3, [r1, #0x19] lsrs r0, r3, #6 adds r0, r0, r2 ldrb r2, [r0] lsls r2, r2, #6 movs r0, #0x3f ands r0, r3 orrs r0, r2 strb r0, [r1, #0x19] adds r0, r1, #0 bl sub_0806FAB0 pop {pc} .align 2, 0 _0807F734: .4byte gUnk_08114F30 thumb_func_start sub_0807F738 sub_0807F738: @ 0x0807F738 push {lr} adds r1, r0, #0 ldr r2, _0807F758 @ =gUnk_08114F34 ldrb r3, [r1, #0x19] lsrs r0, r3, #6 adds r0, r0, r2 ldrb r2, [r0] lsls r2, r2, #6 movs r0, #0x3f ands r0, r3 orrs r0, r2 strb r0, [r1, #0x19] adds r0, r1, #0 bl sub_0806FAD8 pop {pc} .align 2, 0 _0807F758: .4byte gUnk_08114F34 thumb_func_start sub_0807F75C sub_0807F75C: @ 0x0807F75C push {r4, lr} ldr r2, [r1, #4] ldr r3, _0807F774 @ =gUnk_03001160 ldr r1, _0807F778 @ =gUnk_03000BF0 asrs r0, r2, #0x10 ldrh r4, [r1, #6] adds r0, r0, r4 strh r0, [r3, #0x2e] ldrh r0, [r1, #8] adds r0, r0, r2 strh r0, [r3, #0x32] pop {r4, pc} .align 2, 0 _0807F774: .4byte gUnk_03001160 _0807F778: .4byte gUnk_03000BF0 thumb_func_start sub_0807F77C sub_0807F77C: @ 0x0807F77C push {lr} ldr r0, [r1, #0x14] cmp r0, #0 beq _0807F786 movs r0, #1 _0807F786: str r0, [r1, #4] pop {pc} .align 2, 0 thumb_func_start sub_0807F78C sub_0807F78C: @ 0x0807F78C push {r4, r5, r6, lr} adds r6, r0, #0 ldr r5, [r1, #4] cmp r5, #0 bne _0807F79A ldr r0, _0807F7BC @ =gUnk_02034350 ldrb r5, [r0, #6] _0807F79A: adds r0, r5, #0 bl sub_08053FD0 adds r4, r0, #0 adds r0, r5, #0 bl sub_08053FE0 adds r5, r0, #0 adds r0, r4, #0 adds r1, r6, #0 bl sub_08056398 ldr r0, _0807F7C0 @ =gUnk_02000050 lsls r5, r5, #0x10 lsrs r5, r5, #0x10 str r5, [r0, #0x10] pop {r4, r5, r6, pc} .align 2, 0 _0807F7BC: .4byte gUnk_02034350 _0807F7C0: .4byte gUnk_02000050 thumb_func_start sub_0807F7C4 sub_0807F7C4: @ 0x0807F7C4 push {r4, lr} adds r4, r1, #0 ldr r0, [r4, #4] cmp r0, #0 bne _0807F7D2 ldr r0, _0807F7F4 @ =gUnk_02034350 ldrb r0, [r0, #6] _0807F7D2: bl sub_08053FE0 movs r2, #0 ldr r1, _0807F7F8 @ =gUnk_02002A40 adds r1, #0xc0 ldrh r1, [r1] cmp r0, r1 bgt _0807F7E4 movs r2, #1 _0807F7E4: str r2, [r4, #0x14] ldr r2, _0807F7FC @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, pc} .align 2, 0 _0807F7F4: .4byte gUnk_02034350 _0807F7F8: .4byte gUnk_02002A40 _0807F7FC: .4byte gUnk_02033280 thumb_func_start sub_0807F800 sub_0807F800: @ 0x0807F800 push {r4, lr} ldr r4, [r1, #4] cmp r4, #0 bne _0807F80C ldr r0, _0807F834 @ =gUnk_02034350 ldrb r4, [r0, #6] _0807F80C: adds r0, r4, #0 bl sub_08053FE0 rsbs r0, r0, #0 bl sub_080526CC adds r0, r4, #0 movs r1, #0 movs r2, #0 bl sub_080A7C18 ldr r1, _0807F834 @ =gUnk_02034350 movs r0, #0 strb r0, [r1, #6] ldr r2, _0807F838 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, pc} .align 2, 0 _0807F834: .4byte gUnk_02034350 _0807F838: .4byte gUnk_02033280 thumb_func_start sub_0807F83C sub_0807F83C: @ 0x0807F83C push {lr} bl sub_08079184 pop {pc} thumb_func_start sub_0807F844 sub_0807F844: @ 0x0807F844 push {lr} ldr r1, _0807F850 @ =gUnk_03000BF0 str r0, [r1, #0x30] bl sub_080809D4 pop {pc} .align 2, 0 _0807F850: .4byte gUnk_03000BF0 thumb_func_start sub_0807F854 sub_0807F854: @ 0x0807F854 push {lr} ldr r1, [r1, #4] lsrs r2, r1, #0x10 movs r0, #3 ands r2, r0 ldr r3, _0807F870 @ =0x0000FFFF ands r3, r1 cmp r2, #4 bhi _0807F8B4 lsls r0, r2, #2 ldr r1, _0807F874 @ =_0807F878 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807F870: .4byte 0x0000FFFF _0807F874: .4byte _0807F878 _0807F878: @ jump table .4byte _0807F88C @ case 0 .4byte _0807F88C @ case 1 .4byte _0807F898 @ case 2 .4byte _0807F8A4 @ case 3 .4byte _0807F8B0 @ case 4 _0807F88C: ldr r0, _0807F894 @ =gUnk_02000050 str r3, [r0, #0x10] b _0807F8B4 .align 2, 0 _0807F894: .4byte gUnk_02000050 _0807F898: ldr r0, _0807F8A0 @ =gUnk_02000050 str r3, [r0, #0x14] b _0807F8B4 .align 2, 0 _0807F8A0: .4byte gUnk_02000050 _0807F8A4: ldr r0, _0807F8AC @ =gUnk_02000050 str r3, [r0, #0x18] b _0807F8B4 .align 2, 0 _0807F8AC: .4byte gUnk_02000050 _0807F8B0: ldr r0, _0807F8B8 @ =gUnk_02000050 str r3, [r0, #0x1c] _0807F8B4: pop {pc} .align 2, 0 _0807F8B8: .4byte gUnk_02000050 thumb_func_start sub_0807F8BC sub_0807F8BC: @ 0x0807F8BC push {r4, lr} adds r4, r1, #0 bl sub_080040A8 cmp r0, #0 beq _0807F8CA movs r0, #1 _0807F8CA: str r0, [r4, #0x14] pop {r4, pc} .align 2, 0 thumb_func_start sub_0807F8D0 sub_0807F8D0: @ 0x0807F8D0 push {lr} ldr r1, [r1, #4] bl sub_08003FC4 ldr r2, _0807F8E4 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {pc} .align 2, 0 _0807F8E4: .4byte gUnk_02033280 thumb_func_start sub_0807F8E8 sub_0807F8E8: @ 0x0807F8E8 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 movs r1, #0xa6 movs r2, #0 movs r3, #0 bl sub_080A2988 adds r2, r0, #0 cmp r2, #0 beq _0807F912 str r4, [r2, #0x50] ldr r0, [r5, #4] ldr r1, _0807F914 @ =0x000003FF ands r0, r1 movs r3, #0x80 lsls r3, r3, #8 adds r1, r3, #0 adds r2, #0x86 orrs r0, r1 strh r0, [r2] _0807F912: pop {r4, r5, pc} .align 2, 0 _0807F914: .4byte 0x000003FF thumb_func_start sub_0807F918 sub_0807F918: @ 0x0807F918 push {lr} ldr r0, [r1, #4] bl sub_08054398 pop {pc} .align 2, 0 thumb_func_start sub_0807F924 sub_0807F924: @ 0x0807F924 push {lr} bl sub_0807879C pop {pc} thumb_func_start sub_0807F92C sub_0807F92C: @ 0x0807F92C push {lr} bl sub_080787C0 pop {pc} thumb_func_start sub_0807F934 sub_0807F934: @ 0x0807F934 push {lr} bl sub_080787B4 pop {pc} thumb_func_start sub_0807F93C sub_0807F93C: @ 0x0807F93C push {lr} ldr r2, [r1, #4] lsrs r1, r2, #8 movs r3, #0xff ands r1, r3 ands r2, r3 bl sub_080A2D1C pop {pc} .align 2, 0 thumb_func_start sub_0807F950 sub_0807F950: @ 0x0807F950 push {lr} sub sp, #4 movs r0, #2 str r0, [sp] movs r0, #6 movs r1, #0x56 movs r2, #6 movs r3, #0 bl sub_0805EB2C cmp r0, #0 beq _0807F96C bl sub_0805E7BC _0807F96C: add sp, #4 pop {pc} thumb_func_start sub_0807F970 sub_0807F970: @ 0x0807F970 push {lr} adds r2, r1, #0 movs r3, #0 ldr r1, _0807F988 @ =gUnk_02022780 ldr r0, [r2, #4] ldrh r1, [r1, #0x28] cmp r0, r1 bne _0807F982 movs r3, #1 _0807F982: str r3, [r2, #0x14] pop {pc} .align 2, 0 _0807F988: .4byte gUnk_02022780 thumb_func_start sub_0807F98C sub_0807F98C: @ 0x0807F98C ldr r1, [r1, #4] str r1, [r0, #0x34] bx lr .align 2, 0 thumb_func_start sub_0807F994 sub_0807F994: @ 0x0807F994 ldr r2, [r1, #4] asrs r1, r2, #0x10 adds r3, r0, #0 adds r3, #0x62 strb r1, [r3] adds r0, #0x63 strb r2, [r0] bx lr thumb_func_start sub_0807F9A4 sub_0807F9A4: @ 0x0807F9A4 push {lr} ldr r0, _0807F9BC @ =gUnk_03003F80 adds r0, #0xa8 ldrb r0, [r0] subs r0, #5 cmp r0, #0x17 bhi _0807FA30 lsls r0, r0, #2 ldr r1, _0807F9C0 @ =_0807F9C4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807F9BC: .4byte gUnk_03003F80 _0807F9C0: .4byte _0807F9C4 _0807F9C4: @ jump table .4byte _0807FA24 @ case 0 .4byte _0807FA30 @ case 1 .4byte _0807FA24 @ case 2 .4byte _0807FA24 @ case 3 .4byte _0807FA30 @ case 4 .4byte _0807FA24 @ case 5 .4byte _0807FA24 @ case 6 .4byte _0807FA24 @ case 7 .4byte _0807FA24 @ case 8 .4byte _0807FA24 @ case 9 .4byte _0807FA24 @ case 10 .4byte _0807FA24 @ case 11 .4byte _0807FA24 @ case 12 .4byte _0807FA24 @ case 13 .4byte _0807FA24 @ case 14 .4byte _0807FA24 @ case 15 .4byte _0807FA24 @ case 16 .4byte _0807FA24 @ case 17 .4byte _0807FA24 @ case 18 .4byte _0807FA24 @ case 19 .4byte _0807FA30 @ case 20 .4byte _0807FA30 @ case 21 .4byte _0807FA24 @ case 22 .4byte _0807FA24 @ case 23 _0807FA24: ldr r1, _0807FA2C @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] b _0807FA3A .align 2, 0 _0807FA2C: .4byte gUnk_02033280 _0807FA30: ldr r2, _0807FA3C @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] _0807FA3A: pop {pc} .align 2, 0 _0807FA3C: .4byte gUnk_02033280 thumb_func_start sub_0807FA40 sub_0807FA40: @ 0x0807FA40 push {lr} ldr r0, _0807FA58 @ =gUnk_03003F80 adds r0, #0xa8 ldrb r0, [r0] subs r0, #5 cmp r0, #0x17 bhi _0807FACC lsls r0, r0, #2 ldr r1, _0807FA5C @ =_0807FA60 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807FA58: .4byte gUnk_03003F80 _0807FA5C: .4byte _0807FA60 _0807FA60: @ jump table .4byte _0807FAC0 @ case 0 .4byte _0807FACC @ case 1 .4byte _0807FAC0 @ case 2 .4byte _0807FAC0 @ case 3 .4byte _0807FACC @ case 4 .4byte _0807FAC0 @ case 5 .4byte _0807FAC0 @ case 6 .4byte _0807FAC0 @ case 7 .4byte _0807FAC0 @ case 8 .4byte _0807FAC0 @ case 9 .4byte _0807FAC0 @ case 10 .4byte _0807FAC0 @ case 11 .4byte _0807FAC0 @ case 12 .4byte _0807FAC0 @ case 13 .4byte _0807FACC @ case 14 .4byte _0807FAC0 @ case 15 .4byte _0807FAC0 @ case 16 .4byte _0807FAC0 @ case 17 .4byte _0807FAC0 @ case 18 .4byte _0807FAC0 @ case 19 .4byte _0807FACC @ case 20 .4byte _0807FACC @ case 21 .4byte _0807FAC0 @ case 22 .4byte _0807FAC0 @ case 23 _0807FAC0: ldr r1, _0807FAC8 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] b _0807FAD6 .align 2, 0 _0807FAC8: .4byte gUnk_02033280 _0807FACC: ldr r2, _0807FAD8 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] _0807FAD6: pop {pc} .align 2, 0 _0807FAD8: .4byte gUnk_02033280 thumb_func_start sub_0807FADC sub_0807FADC: @ 0x0807FADC push {r4, lr} adds r2, r0, #0 adds r4, r1, #0 ldrb r0, [r4, #0x18] cmp r0, #1 beq _0807FB06 cmp r0, #1 bgt _0807FAF2 cmp r0, #0 beq _0807FAF8 b _0807FB1C _0807FAF2: cmp r0, #2 beq _0807FB16 b _0807FB1C _0807FAF8: movs r0, #1 strb r0, [r4, #0x18] ldr r1, [r4, #4] adds r0, r2, #0 bl sub_0808C650 b _0807FB1C _0807FB06: bl sub_0808C67C cmp r0, #0 beq _0807FB1C ldrb r0, [r4, #0x18] adds r0, #1 strb r0, [r4, #0x18] b _0807FB1C _0807FB16: bl sub_0808C688 b _0807FB22 _0807FB1C: ldr r1, _0807FB24 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0807FB22: pop {r4, pc} .align 2, 0 _0807FB24: .4byte gUnk_02033280 thumb_func_start sub_0807FB28 sub_0807FB28: @ 0x0807FB28 push {r4, lr} adds r4, r1, #0 ldrb r0, [r4, #0x18] cmp r0, #0 bne _0807FB3A ldr r0, _0807FB54 @ =0x00007FFF movs r1, #1 bl sub_0801D7BC _0807FB3A: ldrb r0, [r4, #0x18] adds r0, #1 strb r0, [r4, #0x18] ldrb r1, [r4, #0x18] ldr r0, [r4, #4] cmp r1, r0 blo _0807FB58 movs r0, #0 movs r1, #0 bl sub_0801D7BC b _0807FB5E .align 2, 0 _0807FB54: .4byte 0x00007FFF _0807FB58: ldr r1, _0807FB60 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0807FB5E: pop {r4, pc} .align 2, 0 _0807FB60: .4byte gUnk_02033280 thumb_func_start sub_0807FB64 sub_0807FB64: @ 0x0807FB64 ldr r0, _0807FB70 @ =gUnk_03001160 ldr r1, [r1, #4] adds r0, #0x3d strb r1, [r0] bx lr .align 2, 0 _0807FB70: .4byte gUnk_03001160 thumb_func_start sub_0807FB74 sub_0807FB74: @ 0x0807FB74 ldr r0, _0807FB8C @ =gUnk_03003F80 adds r0, #0x26 movs r1, #0 strb r1, [r0] ldr r1, _0807FB90 @ =gUnk_03001160 adds r1, #0x3c ldrb r2, [r1] movs r0, #0xfb ands r0, r2 strb r0, [r1] bx lr .align 2, 0 _0807FB8C: .4byte gUnk_03003F80 _0807FB90: .4byte gUnk_03001160 thumb_func_start sub_0807FB94 sub_0807FB94: @ 0x0807FB94 push {lr} movs r0, #4 bl sub_08056010 pop {pc} .align 2, 0 thumb_func_start sub_0807FBA0 sub_0807FBA0: @ 0x0807FBA0 ldr r2, _0807FBB0 @ =gUnk_03000BF0 ldrh r1, [r2, #0xa] adds r1, #0x78 strh r1, [r0, #0x2e] ldrh r1, [r2, #0xc] adds r1, #0x50 strh r1, [r0, #0x32] bx lr .align 2, 0 _0807FBB0: .4byte gUnk_03000BF0 thumb_func_start sub_0807FBB4 sub_0807FBB4: @ 0x0807FBB4 ldr r2, _0807FBC0 @ =gUnk_03003F80 ldrb r1, [r2, #0x1a] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x1a] bx lr .align 2, 0 _0807FBC0: .4byte gUnk_03003F80 thumb_func_start sub_0807FBC4 sub_0807FBC4: @ 0x0807FBC4 push {lr} bl sub_0805E4A0 pop {pc} thumb_func_start sub_0807FBCC sub_0807FBCC: @ 0x0807FBCC push {lr} bl sub_0805E4CC pop {pc} thumb_func_start sub_0807FBD4 sub_0807FBD4: @ 0x0807FBD4 push {r4, lr} adds r4, r0, #0 movs r0, #0x24 ldrsh r1, [r4, r0] ldrb r2, [r4, #0x15] adds r0, r4, #0 bl sub_0806F62C adds r0, r4, #0 bl sub_080040A8 cmp r0, #0 beq _0807FBF4 ldr r1, _0807FBF8 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0807FBF4: pop {r4, pc} .align 2, 0 _0807FBF8: .4byte gUnk_02033280 thumb_func_start sub_0807FBFC sub_0807FBFC: @ 0x0807FBFC ldr r3, _0807FC20 @ =gUnk_02002A40 adds r0, r3, #0 adds r0, #0xb2 movs r1, #0 strb r1, [r0] adds r0, #0x12 movs r2, #0 strh r1, [r0] subs r0, #0x11 strb r2, [r0] adds r0, #0x13 strh r1, [r0] subs r0, #0xc strb r2, [r0] adds r0, #0xe strh r1, [r0] bx lr .align 2, 0 _0807FC20: .4byte gUnk_02002A40 thumb_func_start sub_0807FC24 sub_0807FC24: @ 0x0807FC24 push {lr} ldr r0, _0807FC3C @ =gUnk_03000BF0 ldrb r0, [r0, #5] movs r1, #0xd1 cmp r0, #1 bne _0807FC32 movs r1, #0xcf _0807FC32: adds r0, r1, #0 bl sub_0807CCB4 pop {pc} .align 2, 0 _0807FC3C: .4byte gUnk_03000BF0 thumb_func_start sub_0807FC40 sub_0807FC40: @ 0x0807FC40 push {lr} ldr r0, _0807FC5C @ =gUnk_03000BF0 ldrb r2, [r0, #0xf] movs r1, #0xfb ands r1, r2 strb r1, [r0, #0xf] ldr r2, _0807FC60 @ =gUnk_0811E768 ldrb r1, [r0, #2] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0807FC5C: .4byte gUnk_03000BF0 _0807FC60: .4byte gUnk_0811E768 thumb_func_start sub_0807FC64 sub_0807FC64: @ 0x0807FC64 push {lr} movs r2, #0 movs r1, #1 strb r1, [r0, #2] strh r2, [r0] movs r1, #4 strb r1, [r0, #0xe] bl sub_0807FC7C bl sub_080805F8 pop {pc} thumb_func_start sub_0807FC7C sub_0807FC7C: @ 0x0807FC7C push {r4, r5, r6, r7, lr} adds r2, r0, #0 ldr r0, [r2, #0x30] cmp r0, #0 bne _0807FC88 b _0807FDA6 _0807FC88: movs r1, #0xa ldrsh r4, [r2, r1] movs r1, #0x2e ldrsh r0, [r0, r1] subs r0, #0x78 subs r3, r4, r0 cmp r3, #0 beq _0807FD16 ldrh r6, [r2, #0xa] movs r7, #7 ands r7, r6 mov ip, r6 cmp r3, #0 ble _0807FCDC ldrh r0, [r2, #6] adds r5, r0, #0 cmp r5, r4 bge _0807FD16 ldrb r0, [r2, #0xe] cmp r0, r3 bgt _0807FCBC adds r3, r0, #0 ldrb r1, [r2, #0xf] movs r0, #4 orrs r0, r1 strb r0, [r2, #0xf] _0807FCBC: mov r1, ip subs r0, r1, r3 strh r0, [r2, #0xa] subs r0, r7, r3 cmp r0, #0 bgt _0807FCCE ldr r1, _0807FCD8 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] _0807FCCE: movs r1, #0xa ldrsh r0, [r2, r1] cmp r5, r0 blt _0807FD16 b _0807FD14 .align 2, 0 _0807FCD8: .4byte gUnk_02000070 _0807FCDC: ldrh r0, [r2, #6] ldrh r1, [r2, #0x1e] adds r0, r0, r1 adds r5, r0, #0 subs r5, #0xf0 cmp r4, r5 bge _0807FD16 ldrb r0, [r2, #0xe] rsbs r0, r0, #0 cmp r0, r3 blt _0807FCFC adds r3, r0, #0 ldrb r1, [r2, #0xf] movs r0, #4 orrs r0, r1 strb r0, [r2, #0xf] _0807FCFC: subs r0, r6, r3 strh r0, [r2, #0xa] subs r0, r7, r3 cmp r0, #7 ble _0807FD0C ldr r1, _0807FD68 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] _0807FD0C: movs r1, #0xa ldrsh r0, [r2, r1] cmp r0, r5 blt _0807FD16 _0807FD14: strh r5, [r2, #0xa] _0807FD16: movs r0, #0xc ldrsh r4, [r2, r0] ldr r0, [r2, #0x30] movs r1, #0x32 ldrsh r0, [r0, r1] subs r0, #0x50 subs r3, r4, r0 cmp r3, #0 beq _0807FDA6 ldrh r6, [r2, #0xc] movs r7, #7 ands r7, r6 mov ip, r6 cmp r3, #0 ble _0807FD6C ldrh r0, [r2, #8] adds r5, r0, #0 cmp r5, r4 bge _0807FDA6 ldrb r0, [r2, #0xe] cmp r0, r3 bgt _0807FD4C adds r3, r0, #0 ldrb r1, [r2, #0xf] movs r0, #4 orrs r0, r1 strb r0, [r2, #0xf] _0807FD4C: mov r1, ip subs r0, r1, r3 strh r0, [r2, #0xc] subs r0, r7, r3 cmp r0, #0 bgt _0807FD5E ldr r1, _0807FD68 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] _0807FD5E: movs r1, #0xc ldrsh r0, [r2, r1] cmp r5, r0 blt _0807FDA6 b _0807FDA4 .align 2, 0 _0807FD68: .4byte gUnk_02000070 _0807FD6C: ldrh r0, [r2, #8] ldrh r1, [r2, #0x20] adds r0, r0, r1 adds r5, r0, #0 subs r5, #0xa0 cmp r4, r5 bge _0807FDA6 ldrb r0, [r2, #0xe] rsbs r0, r0, #0 cmp r0, r3 blt _0807FD8C adds r3, r0, #0 ldrb r1, [r2, #0xf] movs r0, #4 orrs r0, r1 strb r0, [r2, #0xf] _0807FD8C: subs r0, r6, r3 strh r0, [r2, #0xc] subs r0, r7, r3 cmp r0, #7 ble _0807FD9C ldr r1, _0807FDAC @ =gUnk_02000070 movs r0, #1 strb r0, [r1] _0807FD9C: movs r1, #0xc ldrsh r0, [r2, r1] cmp r0, r5 blt _0807FDA6 _0807FDA4: strh r5, [r2, #0xc] _0807FDA6: bl sub_08080BC4 pop {r4, r5, r6, r7, pc} .align 2, 0 _0807FDAC: .4byte gUnk_02000070 thumb_func_start sub_0807FDB0 sub_0807FDB0: @ 0x0807FDB0 push {lr} ldr r2, _0807FDC4 @ =gUnk_0811E780 ldrb r1, [r0, #3] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0807FDC4: .4byte gUnk_0811E780 thumb_func_start sub_0807FDC8 sub_0807FDC8: @ 0x0807FDC8 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _0807FDE0 @ =gUnk_02000070 movs r0, #1 strb r0, [r4] bl sub_08000108 movs r1, #0 movs r0, #1 strb r0, [r5, #3] strb r1, [r4] pop {r4, r5, pc} .align 2, 0 _0807FDE0: .4byte gUnk_02000070 thumb_func_start sub_0807FDE4 sub_0807FDE4: @ 0x0807FDE4 movs r2, #0 movs r1, #2 strb r1, [r0, #3] strh r2, [r0, #0x18] ldr r0, _0807FDF4 @ =gUnk_02000070 strb r1, [r0] bx lr .align 2, 0 _0807FDF4: .4byte gUnk_02000070 thumb_func_start sub_0807FDF8 sub_0807FDF8: @ 0x0807FDF8 push {r4, lr} adds r4, r0, #0 ldr r1, _0807FE18 @ =gUnk_02000070 movs r0, #2 strb r0, [r1] ldrh r0, [r4, #0x18] adds r0, #1 strh r0, [r4, #0x18] ldrb r0, [r4, #0x10] cmp r0, #1 beq _0807FE44 cmp r0, #1 bgt _0807FE1C cmp r0, #0 beq _0807FE26 b _0807FEB6 .align 2, 0 _0807FE18: .4byte gUnk_02000070 _0807FE1C: cmp r0, #2 beq _0807FE68 cmp r0, #3 beq _0807FE94 b _0807FEB6 _0807FE26: ldrh r0, [r4, #0xc] subs r0, #4 strh r0, [r4, #0xc] ldr r1, [r4, #0x30] ldr r0, _0807FE3C @ =gUnk_03001160 cmp r1, r0 bne _0807FE80 ldr r0, [r1, #0x30] ldr r2, _0807FE40 @ =0xFFFFA000 b _0807FE7C .align 2, 0 _0807FE3C: .4byte gUnk_03001160 _0807FE40: .4byte 0xFFFFA000 _0807FE44: ldrh r0, [r4, #0xa] adds r0, #4 strh r0, [r4, #0xa] ldr r1, [r4, #0x30] ldr r0, _0807FE64 @ =gUnk_03001160 cmp r1, r0 bne _0807FE5C ldr r0, [r1, #0x2c] movs r2, #0x80 lsls r2, r2, #7 adds r0, r0, r2 str r0, [r1, #0x2c] _0807FE5C: ldrh r0, [r4, #0x18] cmp r0, #0x3c bne _0807FEB6 b _0807FE86 .align 2, 0 _0807FE64: .4byte gUnk_03001160 _0807FE68: ldrh r0, [r4, #0xc] adds r0, #4 strh r0, [r4, #0xc] ldr r1, [r4, #0x30] ldr r0, _0807FE90 @ =gUnk_03001160 cmp r1, r0 bne _0807FE80 ldr r0, [r1, #0x30] movs r2, #0xc0 lsls r2, r2, #7 _0807FE7C: adds r0, r0, r2 str r0, [r1, #0x30] _0807FE80: ldrh r0, [r4, #0x18] cmp r0, #0x28 bne _0807FEB6 _0807FE86: adds r0, r4, #0 bl sub_0807FEC8 b _0807FEB6 .align 2, 0 _0807FE90: .4byte gUnk_03001160 _0807FE94: ldrh r0, [r4, #0xa] subs r0, #4 strh r0, [r4, #0xa] ldr r1, [r4, #0x30] ldr r0, _0807FEC0 @ =gUnk_03001160 cmp r1, r0 bne _0807FEAA ldr r0, [r1, #0x2c] ldr r2, _0807FEC4 @ =0xFFFFC000 adds r0, r0, r2 str r0, [r1, #0x2c] _0807FEAA: ldrh r0, [r4, #0x18] cmp r0, #0x3c bne _0807FEB6 adds r0, r4, #0 bl sub_0807FEC8 _0807FEB6: movs r0, #0 strh r0, [r4, #0x16] bl sub_08080BC4 pop {r4, pc} .align 2, 0 _0807FEC0: .4byte gUnk_03001160 _0807FEC4: .4byte 0xFFFFC000 thumb_func_start sub_0807FEC8 sub_0807FEC8: @ 0x0807FEC8 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0 strb r0, [r5, #2] subs r0, #1 ldr r4, _0807FEEC @ =gUnk_03003FC0 adds r1, r4, #0 movs r2, #0x40 bl sub_0801D610 subs r4, #0x40 ldr r1, [r5, #0x30] ldrh r0, [r1, #0x2e] strh r0, [r4, #0x16] ldrh r0, [r1, #0x32] strh r0, [r4, #0x18] pop {r4, r5, pc} .align 2, 0 _0807FEEC: .4byte gUnk_03003FC0 thumb_func_start sub_0807FEF0 sub_0807FEF0: @ 0x0807FEF0 push {lr} ldr r2, _0807FF04 @ =gUnk_0811E78C ldrb r1, [r0, #3] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0807FF04: .4byte gUnk_0811E78C thumb_func_start sub_0807FF08 sub_0807FF08: @ 0x0807FF08 movs r2, #0 movs r1, #1 strb r1, [r0, #3] strh r2, [r0, #0x18] ldr r1, _0807FF18 @ =gUnk_02000070 movs r0, #3 strb r0, [r1] bx lr .align 2, 0 _0807FF18: .4byte gUnk_02000070 thumb_func_start sub_0807FF1C sub_0807FF1C: @ 0x0807FF1C push {lr} adds r2, r0, #0 ldr r0, _0807FF4C @ =gUnk_030010A0 ldr r0, [r0] movs r1, #1 ands r0, r1 cmp r0, #0 bne _0807FF48 ldr r1, _0807FF50 @ =gUnk_02000070 movs r0, #3 strb r0, [r1] ldrh r0, [r2, #0x18] adds r0, #1 strh r0, [r2, #0x18] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x13 bls _0807FF48 movs r0, #0 strb r0, [r2, #2] bl sub_0805E5B4 _0807FF48: pop {pc} .align 2, 0 _0807FF4C: .4byte gUnk_030010A0 _0807FF50: .4byte gUnk_02000070 thumb_func_start sub_0807FF54 sub_0807FF54: @ 0x0807FF54 push {lr} ldr r2, _0807FF68 @ =gUnk_0811E794 ldrb r1, [r0, #3] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0807FF68: .4byte gUnk_0811E794 thumb_func_start sub_0807FF6C sub_0807FF6C: @ 0x0807FF6C push {r4, lr} movs r1, #1 strb r1, [r0, #3] ldr r3, _0807FFC8 @ =gUnk_03000F50 ldrh r1, [r3] movs r2, #0x80 lsls r2, r2, #7 adds r0, r2, #0 orrs r0, r1 strh r0, [r3] adds r2, r3, #0 adds r2, #0x60 ldrb r0, [r2] movs r4, #0xb8 lsls r4, r4, #5 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] adds r2, #2 ldrh r1, [r2] movs r0, #0xff lsls r0, r0, #8 ands r0, r1 movs r1, #7 movs r4, #0 orrs r0, r1 strh r0, [r2] adds r0, r3, #0 adds r0, #0x5a movs r1, #0xf0 strh r1, [r0] adds r0, #4 strh r1, [r0] bl sub_08077B2C bl sub_080791D0 ldr r0, _0807FFCC @ =gUnk_03004030 ldrb r0, [r0, #8] cmp r0, #0 beq _0807FFD4 ldr r1, _0807FFD0 @ =gUnk_03001160 movs r0, #4 strb r0, [r1, #0x14] b _0807FFD8 .align 2, 0 _0807FFC8: .4byte gUnk_03000F50 _0807FFCC: .4byte gUnk_03004030 _0807FFD0: .4byte gUnk_03001160 _0807FFD4: ldr r0, _0807FFE0 @ =gUnk_03001160 strb r4, [r0, #0x14] _0807FFD8: bl sub_080809D4 pop {r4, pc} .align 2, 0 _0807FFE0: .4byte gUnk_03001160 thumb_func_start sub_0807FFE4 sub_0807FFE4: @ 0x0807FFE4 push {r4, r5, lr} adds r5, r0, #0 movs r0, #2 strb r0, [r5, #3] bl sub_080803D0 adds r0, #6 strh r0, [r5, #0x18] ldr r4, _0808002C @ =gUnk_0200B640 bl sub_08080278 strh r0, [r4] ldr r1, _08080030 @ =gUnk_08109194 ldr r0, _08080034 @ =gUnk_03004030 ldr r0, [r0] ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] ldr r0, [r0] bl sub_080197D4 ldr r4, _08080038 @ =gUnk_0200B654 ldrh r1, [r5, #0x1e] lsrs r1, r1, #4 ldrh r2, [r5, #0x20] lsrs r2, r2, #4 adds r0, r4, #0 bl sub_0807C8B0 ldr r0, _0808003C @ =gUnk_02002F00 subs r4, #4 adds r1, r4, #0 bl sub_0801AB08 pop {r4, r5, pc} .align 2, 0 _0808002C: .4byte gUnk_0200B640 _08080030: .4byte gUnk_08109194 _08080034: .4byte gUnk_03004030 _08080038: .4byte gUnk_0200B654 _0808003C: .4byte gUnk_02002F00 thumb_func_start sub_08080040 sub_08080040: @ 0x08080040 push {r4, r5, r6, r7, lr} adds r5, r0, #0 ldrh r4, [r5, #0x18] subs r4, #6 strh r4, [r5, #0x18] ldrh r0, [r5, #0x18] lsls r0, r0, #1 movs r1, #3 bl __divsi3 strh r0, [r5, #0x1a] lsls r4, r4, #0x10 lsrs r4, r4, #0x10 cmp r4, #0x2a bls _080800C6 ldr r3, [r5, #0x30] movs r1, #0x2e ldrsh r0, [r3, r1] movs r2, #0xa ldrsh r1, [r5, r2] subs r2, r0, r1 ldrh r1, [r5, #0x18] subs r0, r2, r1 adds r7, r0, #0 adds r7, #8 cmp r7, #0 bge _08080078 movs r7, #0 _08080078: adds r0, r2, r1 adds r6, r0, #0 subs r6, #8 cmp r6, #0xf0 ble _08080084 movs r6, #0xf0 _08080084: movs r1, #0x32 ldrsh r0, [r3, r1] movs r2, #0xc ldrsh r1, [r5, r2] subs r2, r0, r1 ldrh r1, [r5, #0x1a] subs r0, r2, r1 adds r4, r0, #0 adds r4, #8 cmp r4, #0 bge _0808009C movs r4, #0 _0808009C: adds r0, r2, r1 adds r3, r0, #0 subs r3, #8 cmp r3, #0xa0 ble _080800A8 movs r3, #0xa0 _080800A8: ldr r2, _080800F0 @ =gUnk_03000F50 movs r1, #0xff ands r7, r1 lsls r0, r7, #8 ands r6, r1 orrs r0, r6 adds r6, r2, #0 adds r6, #0x5a strh r0, [r6] ands r4, r1 lsls r0, r4, #8 ands r3, r1 orrs r0, r3 adds r2, #0x5e strh r0, [r2] _080800C6: ldrh r0, [r5, #0x18] cmp r0, #0 bne _080800FC movs r0, #3 strb r0, [r5, #3] bl sub_0805E9F4 bl sub_0807C810 ldr r1, _080800F4 @ =gUnk_08109194 ldr r0, _080800F8 @ =gUnk_03004030 ldr r0, [r0] ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] ldr r0, [r0, #4] bl sub_08080C80 b _08080102 .align 2, 0 _080800F0: .4byte gUnk_03000F50 _080800F4: .4byte gUnk_08109194 _080800F8: .4byte gUnk_03004030 _080800FC: ldr r1, _08080104 @ =gUnk_02000070 movs r0, #4 strb r0, [r1] _08080102: pop {r4, r5, r6, r7, pc} .align 2, 0 _08080104: .4byte gUnk_02000070 thumb_func_start sub_08080108 sub_08080108: @ 0x08080108 push {r4, r5, r6, lr} movs r1, #4 strb r1, [r0, #3] ldr r5, _08080178 @ =gUnk_02025EB4 movs r0, #0xc0 lsls r0, r0, #6 adds r1, r5, r0 movs r6, #0x80 lsls r6, r6, #6 adds r0, r5, #0 adds r2, r6, #0 bl sub_0801D66C ldr r4, _0808017C @ =gUnk_0200B654 movs r0, #0xc0 lsls r0, r0, #6 adds r1, r4, r0 adds r0, r4, #0 adds r2, r6, #0 bl sub_0801D66C bl sub_08080368 ldr r1, _08080180 @ =gUnk_02034480 ldr r0, _08080184 @ =gUnk_0200B640 ldrh r0, [r0] strh r0, [r1] ldr r0, _08080188 @ =gUnk_02022830 ldr r1, _0808018C @ =gUnk_020246B0 movs r2, #0xc0 lsls r2, r2, #5 bl sub_0801D66C subs r5, #4 adds r0, r5, #0 bl sub_08080B60 subs r4, #4 adds r0, r4, #0 bl sub_08080B60 bl sub_0807BBE4 bl sub_0807BC84 bl sub_0805E248 ldr r0, _08080190 @ =gUnk_02019EE0 adds r1, r5, #0 bl sub_0801AB08 ldr r0, _08080194 @ =gUnk_02002F00 adds r1, r4, #0 bl sub_0801AB08 pop {r4, r5, r6, pc} .align 2, 0 _08080178: .4byte gUnk_02025EB4 _0808017C: .4byte gUnk_0200B654 _08080180: .4byte gUnk_02034480 _08080184: .4byte gUnk_0200B640 _08080188: .4byte gUnk_02022830 _0808018C: .4byte gUnk_020246B0 _08080190: .4byte gUnk_02019EE0 _08080194: .4byte gUnk_02002F00 thumb_func_start sub_08080198 sub_08080198: @ 0x08080198 push {r4, lr} movs r1, #5 strb r1, [r0, #3] movs r4, #0 movs r1, #0xff strh r1, [r0, #0x1c] bl sub_0804B01C bl sub_0804AFF4 ldr r0, _080801B8 @ =gUnk_02000070 strb r4, [r0] bl sub_080805F8 pop {r4, pc} .align 2, 0 _080801B8: .4byte gUnk_02000070 thumb_func_start sub_080801BC sub_080801BC: @ 0x080801BC push {r4, r5, r6, r7, lr} adds r5, r0, #0 ldrh r4, [r5, #0x18] adds r4, #6 strh r4, [r5, #0x18] ldrh r0, [r5, #0x18] lsls r0, r0, #1 movs r1, #3 bl __divsi3 strh r0, [r5, #0x1a] lsls r4, r4, #0x10 lsrs r4, r4, #0x10 cmp r4, #0x1e bls _08080232 ldr r2, [r5, #0x30] movs r0, #0x2e ldrsh r1, [r2, r0] movs r3, #0xa ldrsh r0, [r5, r3] subs r0, r1, r0 ldrh r1, [r5, #0x18] subs r7, r0, r1 cmp r7, #0 bge _080801F0 movs r7, #0 _080801F0: adds r6, r0, r1 cmp r6, #0xf0 ble _080801F8 movs r6, #0xf0 _080801F8: movs r0, #0x32 ldrsh r1, [r2, r0] movs r2, #0xc ldrsh r0, [r5, r2] subs r0, r1, r0 ldrh r1, [r5, #0x1a] subs r4, r0, r1 cmp r4, #0 bge _0808020C movs r4, #0 _0808020C: adds r3, r0, r1 cmp r3, #0xa0 ble _08080214 movs r3, #0xa0 _08080214: ldr r2, _08080260 @ =gUnk_03000F50 movs r1, #0xff ands r7, r1 lsls r0, r7, #8 ands r6, r1 orrs r0, r6 adds r6, r2, #0 adds r6, #0x5a strh r0, [r6] ands r4, r1 lsls r0, r4, #8 ands r3, r1 orrs r0, r3 adds r2, #0x5e strh r0, [r2] _08080232: ldrh r0, [r5, #0x1c] cmp r0, #0 bne _08080268 strb r0, [r5, #2] strh r0, [r5] bl sub_0805E5B4 ldr r1, _08080260 @ =gUnk_03000F50 ldrh r2, [r1] ldr r0, _08080264 @ =0x0000BFFF ands r0, r2 strh r0, [r1] adds r2, r1, #0 adds r2, #0x60 ldrb r0, [r2] strh r0, [r2] adds r1, #0x62 ldrh r2, [r1] movs r0, #0xff lsls r0, r0, #8 ands r0, r2 strh r0, [r1] b _08080272 .align 2, 0 _08080260: .4byte gUnk_03000F50 _08080264: .4byte 0x0000BFFF _08080268: ldr r0, _08080274 @ =gUnk_02000070 movs r1, #4 strb r1, [r0] movs r0, #0 strh r0, [r5, #0x1c] _08080272: pop {r4, r5, r6, r7, pc} .align 2, 0 _08080274: .4byte gUnk_02000070 thumb_func_start sub_08080278 sub_08080278: @ 0x08080278 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 ldr r0, _08080344 @ =gUnk_02022830 mov ip, r0 ldr r1, _08080348 @ =gUnk_03000BF0 ldrh r0, [r1, #0x1e] lsrs r0, r0, #4 str r0, [sp] ldrh r0, [r1, #0x20] lsrs r0, r0, #4 lsls r0, r0, #6 str r0, [sp, #4] movs r5, #0 mov sl, r5 cmp r5, r0 bhs _08080336 mov sb, r5 _080802A2: movs r1, #0 mov r8, r1 ldr r0, [sp] cmp r8, r0 bhs _08080328 ldr r4, _0808034C @ =gUnk_0200B654 add r4, sb ldr r7, _08080350 @ =gUnk_0200E654 add r7, sb ldr r3, _08080354 @ =gUnk_02025EB4 add r3, sb ldr r6, _08080358 @ =gUnk_02028EB4 add r6, sb _080802BC: mov r2, sl add r2, r8 ldrh r0, [r6] ldrh r1, [r3] cmp r0, r1 beq _080802EA ldr r0, _0808035C @ =0x00003FFF cmp r1, r0 bhi _080802EA adds r0, #1 adds r1, r0, #0 adds r0, r2, #0 orrs r0, r1 mov r1, ip strh r0, [r1] ldrh r0, [r3] strh r0, [r1, #2] movs r0, #4 add ip, r0 adds r5, #1 ldr r0, _08080360 @ =0x000005FF cmp r5, r0 bhi _08080336 _080802EA: ldrh r0, [r7] ldrh r1, [r4] cmp r0, r1 beq _08080316 ldr r0, _0808035C @ =0x00003FFF cmp r1, r0 bhi _08080316 movs r1, #0x80 lsls r1, r1, #8 adds r0, r1, #0 orrs r2, r0 mov r0, ip strh r2, [r0] ldrh r0, [r4] mov r1, ip strh r0, [r1, #2] movs r0, #4 add ip, r0 adds r5, #1 ldr r0, _08080364 @ =0x000007FF cmp r5, r0 bhi _08080336 _08080316: adds r4, #2 adds r7, #2 adds r3, #2 adds r6, #2 movs r1, #1 add r8, r1 ldr r0, [sp] cmp r8, r0 blo _080802BC _08080328: movs r1, #0x80 add sb, r1 movs r0, #0x40 add sl, r0 ldr r1, [sp, #4] cmp sl, r1 blo _080802A2 _08080336: adds r0, r5, #0 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 _08080344: .4byte gUnk_02022830 _08080348: .4byte gUnk_03000BF0 _0808034C: .4byte gUnk_0200B654 _08080350: .4byte gUnk_0200E654 _08080354: .4byte gUnk_02025EB4 _08080358: .4byte gUnk_02028EB4 _0808035C: .4byte 0x00003FFF _08080360: .4byte 0x000005FF _08080364: .4byte 0x000007FF thumb_func_start sub_08080368 sub_08080368: @ 0x08080368 push {r4, r5, r6, r7, lr} ldr r0, _08080384 @ =gUnk_03004030 ldr r1, _08080388 @ =gUnk_03000BF0 ldrb r0, [r0, #0xa] ldrb r1, [r1, #4] cmp r0, r1 beq _08080390 cmp r0, #0xff beq _08080390 ldr r1, _0808038C @ =gUnk_02034480 movs r0, #0 strh r0, [r1] b _080803BE .align 2, 0 _08080384: .4byte gUnk_03004030 _08080388: .4byte gUnk_03000BF0 _0808038C: .4byte gUnk_02034480 _08080390: ldr r5, _080803C0 @ =gUnk_020246B0 ldr r0, _080803C4 @ =gUnk_02034480 ldrh r0, [r0] lsls r6, r0, #1 movs r4, #0 cmp r4, r6 bhs _080803B8 ldr r0, _080803C8 @ =0x00000FFF adds r7, r0, #0 _080803A2: ldrh r0, [r5, #2] ldrh r2, [r5] adds r1, r7, #0 ands r1, r2 lsrs r2, r2, #0xe bl sub_0807B9B8 adds r5, #4 adds r4, #2 cmp r4, r6 blo _080803A2 _080803B8: ldr r1, _080803CC @ =gUnk_02000070 movs r0, #0 strb r0, [r1] _080803BE: pop {r4, r5, r6, r7, pc} .align 2, 0 _080803C0: .4byte gUnk_020246B0 _080803C4: .4byte gUnk_02034480 _080803C8: .4byte 0x00000FFF _080803CC: .4byte gUnk_02000070 thumb_func_start sub_080803D0 sub_080803D0: @ 0x080803D0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x38 ldr r1, _080804F0 @ =gUnk_03000BF0 movs r2, #0xa ldrsh r0, [r1, r2] ldrh r2, [r1, #6] subs r0, r0, r2 str r0, [sp, #0x18] ldr r3, [r1, #0x30] movs r4, #0x2e ldrsh r0, [r3, r4] subs r0, r0, r2 str r0, [sp, #0x10] movs r2, #0xc ldrsh r0, [r1, r2] ldrh r1, [r1, #8] subs r0, r0, r1 str r0, [sp, #0x1c] movs r4, #0x32 ldrsh r0, [r3, r4] subs r0, r0, r1 str r0, [sp, #0x14] movs r0, #0x3c str r0, [sp, #8] _08080408: movs r7, #0 ldr r1, [sp, #8] adds r1, #6 str r1, [sp, #8] adds r2, r1, #0 muls r2, r1, r2 mov sl, r2 lsls r4, r1, #1 adds r0, r4, #0 movs r1, #3 bl __divsi3 str r0, [sp, #0xc] adds r1, r0, #0 muls r1, r0, r1 mov sb, r1 movs r2, #0 str r2, [sp, #4] rsbs r4, r4, #0 adds r4, #1 mov r0, sb muls r0, r4, r0 mov r4, sl lsls r5, r4, #1 adds r4, r0, r5 ldr r0, [sp, #8] mov r6, sb muls r6, r0, r6 adds r0, r6, #0 mov r1, sl bl __divsi3 adds r2, r0, #0 cmp r7, r2 bgt _08080506 ldr r1, [sp, #0x18] adds r1, #0xf8 str r1, [sp, #0x20] mov r1, sl adds r0, r5, r1 lsls r3, r0, #1 str r6, [sp, #0x2c] ldr r0, [sp, #8] lsls r1, r0, #2 rsbs r1, r1, #0 adds r1, #4 mov r8, r1 rsbs r0, r0, #0 adds r0, #8 ldr r1, [sp, #0x10] adds r6, r0, r1 ldr r0, [sp, #8] adds r5, r0, r1 mov r0, r8 mov r1, sb muls r1, r0, r1 mov r8, r1 _0808047A: ldr r1, [sp, #0x1c] adds r1, #0xa8 mov ip, r1 ldr r0, [sp, #0x14] ldr r1, [sp, #4] adds r0, r0, r1 str r0, [sp, #0x34] cmp ip, r0 ble _080804A0 ldr r0, [sp, #0x20] cmp r0, r5 ble _08080496 movs r0, #1 orrs r7, r0 _08080496: ldr r1, [sp, #0x18] cmp r1, r6 bge _080804A0 movs r0, #2 orrs r7, r0 _080804A0: ldr r0, [sp, #0x14] ldr r1, [sp, #4] subs r0, r0, r1 mov ip, r0 adds r0, #8 ldr r1, [sp, #0x1c] cmp r1, r0 bge _080804C4 ldr r0, [sp, #0x20] cmp r0, r5 ble _080804BA movs r0, #4 orrs r7, r0 _080804BA: ldr r1, [sp, #0x18] cmp r1, r6 bge _080804C4 movs r0, #8 orrs r7, r0 _080804C4: cmp r4, #0 ble _080804F4 mov r2, r8 adds r0, r2, r3 adds r4, r4, r0 ldr r0, [sp, #0x2c] mov r1, sb subs r0, r0, r1 str r0, [sp, #0x2c] lsls r0, r1, #2 add r8, r0 adds r6, #1 subs r5, #1 ldr r0, [sp, #0x2c] mov r1, sl str r3, [sp, #0x30] bl __divsi3 adds r2, r0, #0 ldr r3, [sp, #0x30] b _080804F6 .align 2, 0 _080804F0: .4byte gUnk_03000BF0 _080804F4: adds r4, r4, r3 _080804F6: mov r1, sl lsls r0, r1, #2 adds r3, r3, r0 ldr r0, [sp, #4] adds r0, #1 str r0, [sp, #4] cmp r0, r2 ble _0808047A _08080506: movs r1, #0 str r1, [sp] ldr r2, [sp, #0xc] str r2, [sp, #4] mov r4, sb lsls r6, r4, #1 lsls r0, r2, #1 rsbs r0, r0, #0 adds r0, #1 mov r1, sl muls r1, r0, r1 adds r0, r1, #0 adds r4, r6, r0 mov r5, sl muls r5, r2, r5 adds r0, r5, #0 mov r1, sb bl __divsi3 adds r2, r0, #0 ldr r0, [sp] cmp r0, r2 bgt _080805E4 ldr r1, [sp, #0x18] adds r1, #0xf8 str r1, [sp, #0x24] mov r1, sb adds r0, r6, r1 lsls r0, r0, #1 mov r8, r0 ldr r3, [sp, #0x10] adds r3, #8 ldr r6, [sp, #0x10] str r5, [sp, #0x28] ldr r1, [sp, #4] lsls r0, r1, #2 rsbs r0, r0, #0 adds r0, #4 mov r5, sl muls r5, r0, r5 _08080556: ldr r0, [sp, #0x1c] adds r0, #0xa8 mov ip, r0 ldr r1, [sp, #0x14] ldr r0, [sp, #4] adds r1, r1, r0 str r1, [sp, #0x34] cmp ip, r1 ble _0808057C ldr r1, [sp, #0x24] cmp r1, r6 ble _08080572 movs r0, #0x10 orrs r7, r0 _08080572: ldr r0, [sp, #0x18] cmp r0, r3 bge _0808057C movs r0, #0x20 orrs r7, r0 _0808057C: ldr r1, [sp, #0x14] ldr r0, [sp, #4] subs r1, r1, r0 mov ip, r1 mov r0, ip adds r0, #8 ldr r1, [sp, #0x1c] cmp r1, r0 bge _080805A2 ldr r0, [sp, #0x24] cmp r0, r6 ble _08080598 movs r0, #0x40 orrs r7, r0 _08080598: ldr r1, [sp, #0x18] cmp r1, r3 bge _080805A2 movs r0, #0x80 orrs r7, r0 _080805A2: cmp r4, #0 ble _080805CE mov r2, r8 adds r0, r2, r5 adds r4, r4, r0 ldr r0, [sp, #0x28] mov r1, sl subs r0, r0, r1 str r0, [sp, #0x28] lsls r0, r1, #2 adds r5, r5, r0 ldr r2, [sp, #4] subs r2, #1 str r2, [sp, #4] ldr r0, [sp, #0x28] mov r1, sb str r3, [sp, #0x30] bl __divsi3 adds r2, r0, #0 ldr r3, [sp, #0x30] b _080805D0 _080805CE: add r4, r8 _080805D0: mov r1, sb lsls r0, r1, #2 add r8, r0 subs r3, #1 adds r6, #1 ldr r0, [sp] adds r0, #1 str r0, [sp] cmp r0, r2 ble _08080556 _080805E4: cmp r7, #0 beq _080805EA b _08080408 _080805EA: ldr r0, [sp, #8] add sp, #0x38 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} thumb_func_start sub_080805F8 sub_080805F8: @ 0x080805F8 push {lr} ldr r0, _08080610 @ =gUnk_03000BF0 ldrb r0, [r0, #4] subs r0, #0xc cmp r0, #0xd bhi _0808065C lsls r0, r0, #2 ldr r1, _08080614 @ =_08080618 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08080610: .4byte gUnk_03000BF0 _08080614: .4byte _08080618 _08080618: @ jump table .4byte _08080650 @ case 0 .4byte _0808065C @ case 1 .4byte _0808065C @ case 2 .4byte _08080650 @ case 3 .4byte _0808065C @ case 4 .4byte _0808065C @ case 5 .4byte _0808065C @ case 6 .4byte _08080650 @ case 7 .4byte _08080650 @ case 8 .4byte _0808065C @ case 9 .4byte _08080650 @ case 10 .4byte _08080650 @ case 11 .4byte _0808065C @ case 12 .4byte _08080650 @ case 13 _08080650: ldr r1, _08080658 @ =gUnk_03004030 movs r0, #1 b _08080660 .align 2, 0 _08080658: .4byte gUnk_03004030 _0808065C: ldr r1, _08080664 @ =gUnk_03004030 movs r0, #0 _08080660: strb r0, [r1, #8] pop {pc} .align 2, 0 _08080664: .4byte gUnk_03004030 thumb_func_start sub_08080668 sub_08080668: @ 0x08080668 push {r4, r5, lr} ldr r5, _080806A4 @ =gUnk_03000BF0 adds r0, r5, #0 movs r1, #0x38 bl sub_0801D630 ldr r4, _080806A8 @ =gUnk_03004030 adds r0, r4, #0 movs r1, #0xc bl sub_0801D630 ldr r0, _080806AC @ =0x0000FFFF strh r0, [r5, #0x22] movs r0, #0xff strb r0, [r4, #0xa] ldr r1, _080806B0 @ =gUnk_02034480 movs r0, #0 strh r0, [r1] ldr r0, _080806B4 @ =gUnk_02019EE0 movs r4, #0x80 lsls r4, r4, #8 adds r1, r4, #0 bl sub_0801D630 ldr r0, _080806B8 @ =gUnk_02002F00 adds r1, r4, #0 bl sub_0801D630 pop {r4, r5, pc} .align 2, 0 _080806A4: .4byte gUnk_03000BF0 _080806A8: .4byte gUnk_03004030 _080806AC: .4byte 0x0000FFFF _080806B0: .4byte gUnk_02034480 _080806B4: .4byte gUnk_02019EE0 _080806B8: .4byte gUnk_02002F00 thumb_func_start sub_080806BC sub_080806BC: @ 0x080806BC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} mov sb, r0 mov r8, r1 adds r7, r2, #0 adds r6, r3, #0 ldr r0, _08080710 @ =gUnk_02033A90 ldr r1, _08080714 @ =0x0000085C adds r0, r0, r1 ldr r0, [r0] ldr r5, [r0, #0x18] ldrh r0, [r5] ldr r1, _08080718 @ =0x0000FFFF cmp r0, r1 beq _08080728 mov sl, r1 _080806E2: ldrh r2, [r5] movs r0, #1 lsls r0, r2 ands r0, r6 cmp r0, #0 beq _08080720 ldr r1, _0808071C @ =gUnk_0811E7AC lsls r0, r2, #2 adds r0, r0, r1 ldr r4, [r0] adds r0, r5, #0 mov r1, sb mov r2, r8 adds r3, r7, #0 bl _call_via_r4 cmp r0, #0 beq _08080720 adds r0, r5, #0 bl sub_08080840 movs r0, #1 b _0808072A .align 2, 0 _08080710: .4byte gUnk_02033A90 _08080714: .4byte 0x0000085C _08080718: .4byte 0x0000FFFF _0808071C: .4byte gUnk_0811E7AC _08080720: adds r5, #0x14 ldrh r0, [r5] cmp r0, sl bne _080806E2 _08080728: movs r0, #0 _0808072A: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08080734 sub_08080734: @ 0x08080734 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 adds r5, r1, #0 ldr r0, _08080778 @ =gUnk_02033A90 ldr r1, _0808077C @ =0x0000085C adds r0, r0, r1 ldr r0, [r0] ldr r4, [r0, #0x18] movs r0, #0xa mov r8, r0 ldrh r0, [r4] ldr r1, _08080780 @ =0x0000FFFF cmp r0, r1 beq _0808078C adds r7, r1, #0 _08080756: movs r0, #1 ldrh r1, [r4] lsls r0, r1 mov r1, r8 ands r0, r1 cmp r0, #0 beq _08080784 adds r0, r4, #0 adds r1, r6, #0 adds r2, r5, #0 movs r3, #0 bl sub_08080808 cmp r0, #0 beq _08080784 adds r0, r4, #0 b _0808078E .align 2, 0 _08080778: .4byte gUnk_02033A90 _0808077C: .4byte 0x0000085C _08080780: .4byte 0x0000FFFF _08080784: adds r4, #0x14 ldrh r0, [r4] cmp r0, r7 bne _08080756 _0808078C: movs r0, #0 _0808078E: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08080794 sub_08080794: @ 0x08080794 push {r4, lr} adds r4, r0, #0 cmp r3, #1 beq _080807C0 cmp r3, #1 blo _080807AC cmp r3, #2 beq _080807D4 cmp r3, #3 beq _080807E8 _080807A8: movs r0, #0 b _08080800 _080807AC: ldr r0, _080807BC @ =gUnk_03000BF0 ldrh r0, [r0, #0x1e] lsrs r0, r0, #1 movs r3, #1 cmp r0, r1 bhs _080807F6 movs r3, #2 b _080807F6 .align 2, 0 _080807BC: .4byte gUnk_03000BF0 _080807C0: ldr r0, _080807D0 @ =gUnk_03000BF0 ldrh r0, [r0, #0x20] lsrs r0, r0, #1 movs r3, #4 cmp r0, r2 bhs _080807F6 movs r3, #8 b _080807F6 .align 2, 0 _080807D0: .4byte gUnk_03000BF0 _080807D4: ldr r0, _080807E4 @ =gUnk_03000BF0 ldrh r0, [r0, #0x1e] lsrs r0, r0, #1 movs r3, #0x10 cmp r0, r1 bhs _080807F6 movs r3, #0x20 b _080807F6 .align 2, 0 _080807E4: .4byte gUnk_03000BF0 _080807E8: ldr r0, _08080804 @ =gUnk_03000BF0 ldrh r0, [r0, #0x20] lsrs r0, r0, #1 movs r3, #0x40 cmp r0, r2 bhs _080807F6 movs r3, #0x80 _080807F6: ldrb r0, [r4, #0xa] ands r0, r3 cmp r0, #0 beq _080807A8 movs r0, #1 _08080800: pop {r4, pc} .align 2, 0 _08080804: .4byte gUnk_03000BF0 thumb_func_start sub_08080808 sub_08080808: @ 0x08080808 push {r4, r5, lr} adds r3, r0, #0 adds r5, r2, #0 ldrb r0, [r3, #0xa] lsls r0, r0, #1 ldr r2, _08080838 @ =gUnk_0811E7BC adds r4, r0, r2 ldrb r0, [r4] ldrh r2, [r3, #2] subs r1, r1, r2 adds r1, r1, r0 lsls r0, r0, #1 cmp r1, r0 bhi _0808083C ldrb r1, [r4, #1] ldrh r0, [r3, #4] subs r0, r5, r0 adds r0, r0, r1 lsls r1, r1, #1 cmp r0, r1 bhi _0808083C movs r0, #1 b _0808083E .align 2, 0 _08080838: .4byte gUnk_0811E7BC _0808083C: movs r0, #0 _0808083E: pop {r4, r5, pc} thumb_func_start sub_08080840 sub_08080840: @ 0x08080840 push {r4, lr} adds r4, r0, #0 ldr r0, _0808085C @ =gUnk_030010A0 movs r1, #1 strb r1, [r0, #8] adds r2, r0, #0 adds r2, #0xc ldrh r1, [r4, #6] ldr r0, _08080860 @ =0x000003FF cmp r1, r0 bhi _08080864 strh r1, [r2, #4] b _08080872 .align 2, 0 _0808085C: .4byte gUnk_030010A0 _08080860: .4byte 0x000003FF _08080864: ldr r0, _08080880 @ =gUnk_03000BF0 ldr r0, [r0, #0x30] ldrh r1, [r0, #0x2e] ldr r3, _08080884 @ =0xFFFF8000 adds r0, r3, #0 orrs r0, r1 strh r0, [r2, #4] _08080872: ldrh r1, [r4, #8] ldr r0, _08080888 @ =0x000003FF cmp r1, r0 bhi _0808088C strh r1, [r2, #6] b _0808089A .align 2, 0 _08080880: .4byte gUnk_03000BF0 _08080884: .4byte 0xFFFF8000 _08080888: .4byte 0x000003FF _0808088C: ldr r0, _080808CC @ =gUnk_03000BF0 ldr r0, [r0, #0x30] ldrh r1, [r0, #0x32] ldr r3, _080808D0 @ =0xFFFF8000 adds r0, r3, #0 orrs r0, r1 strh r0, [r2, #6] _0808089A: ldrb r0, [r4, #0xb] strb r0, [r2] ldrb r0, [r4, #0xc] strb r0, [r2, #1] ldrb r0, [r4, #0xd] strb r0, [r2, #8] ldrb r0, [r4, #0xe] strb r0, [r2, #3] ldrb r0, [r4, #0xf] strb r0, [r2, #2] ldrh r0, [r4, #0x10] cmp r0, #0 beq _080808B8 bl sub_080A3268 _080808B8: ldr r0, _080808D4 @ =gUnk_0811E7C4 ldrh r1, [r4] lsls r1, r1, #2 adds r1, r1, r0 ldrb r0, [r4, #0xa] ldr r1, [r1] bl _call_via_r1 pop {r4, pc} .align 2, 0 _080808CC: .4byte gUnk_03000BF0 _080808D0: .4byte 0xFFFF8000 _080808D4: .4byte gUnk_0811E7C4 thumb_func_start sub_080808D8 sub_080808D8: @ 0x080808D8 ldr r1, _080808E0 @ =gUnk_030010A0 movs r0, #0 strb r0, [r1, #9] bx lr .align 2, 0 _080808E0: .4byte gUnk_030010A0 thumb_func_start sub_080808E4 sub_080808E4: @ 0x080808E4 push {r4, lr} ldr r4, _080808F8 @ =gUnk_030010A0 ldrb r0, [r4, #0xc] bl sub_08052638 cmp r0, #0 beq _080808FC movs r0, #0 b _080808FE .align 2, 0 _080808F8: .4byte gUnk_030010A0 _080808FC: movs r0, #5 _080808FE: strb r0, [r4, #9] pop {r4, pc} .align 2, 0 thumb_func_start sub_08080904 sub_08080904: @ 0x08080904 ldr r1, _0808090C @ =gUnk_030010A0 movs r0, #1 strb r0, [r1, #9] bx lr .align 2, 0 _0808090C: .4byte gUnk_030010A0 thumb_func_start sub_08080910 sub_08080910: @ 0x08080910 ldr r1, _08080918 @ =gUnk_030010A0 movs r0, #1 strb r0, [r1, #9] bx lr .align 2, 0 _08080918: .4byte gUnk_030010A0 thumb_func_start sub_0808091C sub_0808091C: @ 0x0808091C push {r4, lr} adds r4, r1, #0 bl sub_08080840 ldr r0, _0808092C @ =gUnk_030010A0 strb r4, [r0, #9] pop {r4, pc} .align 2, 0 _0808092C: .4byte gUnk_030010A0 thumb_func_start sub_08080930 sub_08080930: @ 0x08080930 push {lr} ldr r1, _08080948 @ =gUnk_03000BF0 movs r2, #0 movs r0, #5 strb r0, [r1, #2] strb r2, [r1, #3] movs r0, #2 strh r0, [r1] strb r2, [r1, #0x10] bl sub_0805E5A8 pop {pc} .align 2, 0 _08080948: .4byte gUnk_03000BF0 thumb_func_start sub_0808094C sub_0808094C: @ 0x0808094C push {lr} cmp r0, #2 beq _0808095C ldr r0, _08080958 @ =gUnk_02025EB0 b _0808095E .align 2, 0 _08080958: .4byte gUnk_02025EB0 _0808095C: ldr r0, _08080960 @ =gUnk_0200B650 _0808095E: pop {pc} .align 2, 0 _08080960: .4byte gUnk_0200B650 thumb_func_start sub_08080964 sub_08080964: @ 0x08080964 ldr r2, _08080970 @ =gUnk_03000BF0 strh r0, [r2, #0x16] movs r0, #7 ands r1, r0 strb r1, [r2, #0x14] bx lr .align 2, 0 _08080970: .4byte gUnk_03000BF0 thumb_func_start sub_08080974 sub_08080974: @ 0x08080974 push {r4, lr} adds r3, r0, #0 adds r4, r1, #0 ldr r1, _0808098C @ =gUnk_03000BF0 ldrh r2, [r1, #6] adds r0, r2, #0 adds r0, #0x78 cmp r3, r0 bhi _08080990 strh r2, [r1, #0xa] b _080809A2 .align 2, 0 _0808098C: .4byte gUnk_03000BF0 _08080990: ldrh r0, [r1, #0x1e] adds r2, r2, r0 adds r0, r2, #0 subs r0, #0x78 cmp r3, r0 bhs _0808099E adds r0, r3, #0 _0808099E: subs r0, #0x78 strh r0, [r1, #0xa] _080809A2: ldrh r2, [r1, #8] adds r0, r2, #0 adds r0, #0x50 cmp r4, r0 bhi _080809B0 strh r2, [r1, #0xc] b _080809C2 _080809B0: ldrh r0, [r1, #0x20] adds r2, r2, r0 adds r0, r2, #0 subs r0, #0x50 cmp r4, r0 bhs _080809BE adds r0, r4, #0 _080809BE: subs r0, #0x50 strh r0, [r1, #0xc] _080809C2: bl sub_080809D4 ldr r1, _080809D0 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] pop {r4, pc} .align 2, 0 _080809D0: .4byte gUnk_02000070 thumb_func_start sub_080809D4 sub_080809D4: @ 0x080809D4 push {r4, lr} ldr r2, _080809F4 @ =gUnk_03000BF0 ldrb r0, [r2, #0xf] movs r1, #0xfb ands r1, r0 strb r1, [r2, #0xf] ldr r4, [r2, #0x30] movs r0, #0x2e ldrsh r3, [r4, r0] ldrh r1, [r2, #6] adds r0, r1, #0 adds r0, #0x78 cmp r3, r0 bgt _080809F8 strh r1, [r2, #0xa] b _08080A0A .align 2, 0 _080809F4: .4byte gUnk_03000BF0 _080809F8: ldrh r0, [r2, #0x1e] adds r1, r1, r0 adds r0, r1, #0 subs r0, #0x78 cmp r3, r0 bge _08080A06 ldrh r0, [r4, #0x2e] _08080A06: subs r0, #0x78 strh r0, [r2, #0xa] _08080A0A: ldr r4, [r2, #0x30] movs r0, #0x32 ldrsh r3, [r4, r0] ldrh r1, [r2, #8] adds r0, r1, #0 adds r0, #0x50 cmp r3, r0 bgt _08080A1E strh r1, [r2, #0xc] b _08080A30 _08080A1E: ldrh r0, [r2, #0x20] adds r1, r1, r0 adds r0, r1, #0 subs r0, #0x50 cmp r3, r0 bge _08080A2C ldrh r0, [r4, #0x32] _08080A2C: subs r0, #0x50 strh r0, [r2, #0xc] _08080A30: bl sub_08080BC4 ldr r1, _08080A3C @ =gUnk_02000070 movs r0, #1 strb r0, [r1] pop {r4, pc} .align 2, 0 _08080A3C: .4byte gUnk_02000070 thumb_func_start sub_08080A40 sub_08080A40: @ 0x08080A40 push {r4, r5, r6, r7, lr} ldr r7, _08080A70 @ =gUnk_03000BF0 ldr r1, [r7, #0x30] ldr r0, _08080A74 @ =gUnk_03001160 adds r2, r7, #0 cmp r1, r0 beq _08080A50 b _08080B5C _08080A50: ldr r0, _08080A78 @ =gUnk_03003F80 ldrb r0, [r0, #2] cmp r0, #0 beq _08080A5A b _08080B5C _08080A5A: ldrb r0, [r1, #0xc] subs r0, #1 cmp r0, #0x1c bls _08080A64 b _08080B5C _08080A64: lsls r0, r0, #2 ldr r1, _08080A7C @ =_08080A80 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08080A70: .4byte gUnk_03000BF0 _08080A74: .4byte gUnk_03001160 _08080A78: .4byte gUnk_03003F80 _08080A7C: .4byte _08080A80 _08080A80: @ jump table .4byte _08080AFA @ case 0 .4byte _08080B5C @ case 1 .4byte _08080B5C @ case 2 .4byte _08080B5C @ case 3 .4byte _08080B5C @ case 4 .4byte _08080B5C @ case 5 .4byte _08080B5C @ case 6 .4byte _08080B5C @ case 7 .4byte _08080AFA @ case 8 .4byte _08080B5C @ case 9 .4byte _08080B5C @ case 10 .4byte _08080B5C @ case 11 .4byte _08080B5C @ case 12 .4byte _08080B5C @ case 13 .4byte _08080AF4 @ case 14 .4byte _08080B5C @ case 15 .4byte _08080B5C @ case 16 .4byte _08080B5C @ case 17 .4byte _08080B5C @ case 18 .4byte _08080B5C @ case 19 .4byte _08080B5C @ case 20 .4byte _08080B5C @ case 21 .4byte _08080B5C @ case 22 .4byte _08080AFA @ case 23 .4byte _08080B5C @ case 24 .4byte _08080B5C @ case 25 .4byte _08080B5C @ case 26 .4byte _08080B5C @ case 27 .4byte _08080AFA @ case 28 _08080AF4: ldrb r0, [r2, #4] cmp r0, #0x48 beq _08080B5C _08080AFA: ldr r3, [r7, #0x30] movs r0, #0x32 ldrsh r1, [r3, r0] ldrh r0, [r7, #8] subs r6, r1, r0 movs r0, #0x2e ldrsh r1, [r3, r0] ldrh r0, [r7, #6] subs r5, r1, r0 asrs r0, r5, #4 movs r2, #0x3f ands r0, r2 asrs r1, r6, #4 ands r1, r2 lsls r1, r1, #6 orrs r0, r1 adds r3, #0x38 ldrb r1, [r3] bl sub_080002C8 adds r4, r0, #0 ldr r0, [r7, #0x30] adds r0, #0x38 ldrb r2, [r0] adds r0, r5, #0 adds r1, r6, #0 bl sub_080002A8 ldr r1, _08080B48 @ =gUnk_030010A0 strh r0, [r1, #0xa] cmp r4, #0x3f beq _08080B50 cmp r4, #0x3f bhi _08080B4C cmp r4, #0x29 bhi _08080B5C cmp r4, #0x28 blo _08080B5C b _08080B50 .align 2, 0 _08080B48: .4byte gUnk_030010A0 _08080B4C: cmp r4, #0xf1 bne _08080B5C _08080B50: adds r0, r5, #0 adds r1, r6, #0 movs r2, #0xff movs r3, #0xa bl sub_080806BC _08080B5C: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08080B60 sub_08080B60: @ 0x08080B60 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r1, _08080B90 @ =0x00005004 adds r4, r0, r1 ldr r2, _08080B94 @ =gUnk_080B37A0 mov r8, r2 movs r3, #0 ldr r1, _08080B98 @ =0x00003FFF mov ip, r1 ldr r7, _08080B9C @ =gUnk_080B7910 ldr r2, _08080BA0 @ =0x0000B004 adds r1, r0, r2 adds r2, r0, #4 ldr r6, _08080BA4 @ =0xFFFFC000 ldr r5, _08080BA8 @ =0x00000FFF _08080B80: ldrh r0, [r2] cmp r0, ip bhi _08080BAC lsls r0, r0, #1 adds r0, r0, r4 ldrh r0, [r0] add r0, r8 b _08080BB0 .align 2, 0 _08080B90: .4byte 0x00005004 _08080B94: .4byte gUnk_080B37A0 _08080B98: .4byte 0x00003FFF _08080B9C: .4byte gUnk_080B7910 _08080BA0: .4byte 0x0000B004 _08080BA4: .4byte 0xFFFFC000 _08080BA8: .4byte 0x00000FFF _08080BAC: adds r0, r0, r6 adds r0, r0, r7 _08080BB0: ldrb r0, [r0] strb r0, [r1] adds r1, #1 adds r2, #2 adds r3, #1 cmp r3, r5 bls _08080B80 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08080BC4 sub_08080BC4: @ 0x08080BC4 push {r4, r5, r6, lr} ldr r3, _08080C40 @ =gUnk_03000BF0 movs r0, #0xa ldrsh r1, [r3, r0] ldrh r0, [r3, #6] subs r5, r1, r0 movs r2, #0xf ands r5, r2 movs r1, #0xc ldrsh r0, [r3, r1] ldrh r1, [r3, #8] subs r0, r0, r1 ands r0, r2 adds r6, r0, #0 adds r6, #8 ldrh r2, [r3, #0x16] adds r4, r2, #0 cmp r4, #0 beq _08080C50 subs r2, #1 strh r2, [r3, #0x16] ldrb r0, [r3, #0x14] lsls r0, r0, #4 movs r1, #0xe ands r2, r1 adds r0, r0, r2 ldr r1, _08080C44 @ =gUnk_080169A4 adds r2, r0, r1 ldr r4, _08080C48 @ =gUnk_02025EB0 ldr r1, [r4] cmp r1, #0 beq _08080C16 movs r0, #0 ldrsb r0, [r2, r0] adds r0, r0, r5 strh r0, [r1, #2] ldr r1, [r4] movs r0, #1 ldrsb r0, [r2, r0] adds r0, r0, r6 strh r0, [r1, #4] _08080C16: ldr r4, _08080C4C @ =gUnk_0200B650 ldr r1, [r4] cmp r1, #0 beq _08080C30 movs r0, #0 ldrsb r0, [r2, r0] adds r0, r0, r5 strh r0, [r1, #2] ldr r1, [r4] movs r0, #1 ldrsb r0, [r2, r0] adds r0, r0, r6 strh r0, [r1, #4] _08080C30: ldrb r1, [r2] adds r0, r3, #0 adds r0, #0x24 strb r1, [r0] ldrb r1, [r2, #1] adds r0, #1 strb r1, [r0] b _08080C76 .align 2, 0 _08080C40: .4byte gUnk_03000BF0 _08080C44: .4byte gUnk_080169A4 _08080C48: .4byte gUnk_02025EB0 _08080C4C: .4byte gUnk_0200B650 _08080C50: ldr r0, _08080C78 @ =gUnk_02025EB0 ldr r1, [r0] cmp r1, #0 beq _08080C5E strh r5, [r1, #2] ldr r0, [r0] strh r6, [r0, #4] _08080C5E: ldr r0, _08080C7C @ =gUnk_0200B650 ldr r1, [r0] cmp r1, #0 beq _08080C6C strh r5, [r1, #2] ldr r0, [r0] strh r6, [r0, #4] _08080C6C: adds r0, r3, #0 adds r0, #0x24 strb r4, [r0] adds r0, #1 strb r4, [r0] _08080C76: pop {r4, r5, r6, pc} .align 2, 0 _08080C78: .4byte gUnk_02025EB0 _08080C7C: .4byte gUnk_0200B650 thumb_func_start sub_08080C80 sub_08080C80: @ 0x08080C80 push {r4, lr} bl sub_080197D4 ldr r0, _08080CA8 @ =gUnk_02025EB4 ldr r4, _08080CAC @ =gUnk_03000BF0 ldrh r1, [r4, #0x1e] lsrs r1, r1, #4 ldrh r2, [r4, #0x20] lsrs r2, r2, #4 bl sub_0807C8B0 ldr r0, _08080CB0 @ =gUnk_0200B654 ldrh r1, [r4, #0x1e] lsrs r1, r1, #4 ldrh r2, [r4, #0x20] lsrs r2, r2, #4 bl sub_0807C8B0 pop {r4, pc} .align 2, 0 _08080CA8: .4byte gUnk_02025EB4 _08080CAC: .4byte gUnk_03000BF0 _08080CB0: .4byte gUnk_0200B654 thumb_func_start sub_08080CB4 sub_08080CB4: @ 0x08080CB4 push {r4, r5, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x58 ldrb r0, [r4, #0xa] ldrb r1, [r1] cmp r0, r1 beq _08080CF0 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC ldrb r0, [r4, #0xa] cmp r0, #0x5c beq _08080CD4 b _08080E00 _08080CD4: ldrb r0, [r4, #0xb] lsls r0, r0, #3 ldr r1, _08080CEC @ =gUnk_080C9CBC adds r0, r0, r1 ldrb r0, [r0] movs r1, #0xf ands r1, r0 lsls r0, r0, #4 orrs r0, r1 strb r0, [r4, #0x1a] b _08080E00 .align 2, 0 _08080CEC: .4byte gUnk_080C9CBC _08080CF0: adds r0, r4, #0 bl sub_080042B8 ldrb r0, [r4, #0x18] lsls r0, r0, #0x1e cmp r0, #0 bne _08080D00 b _08080E00 _08080D00: ldrb r0, [r4, #0xa] subs r0, #0x40 cmp r0, #0x22 bhi _08080E00 lsls r0, r0, #2 ldr r1, _08080D14 @ =_08080D18 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08080D14: .4byte _08080D18 _08080D18: @ jump table .4byte _08080DEE @ case 0 .4byte _08080DEE @ case 1 .4byte _08080DEE @ case 2 .4byte _08080DEE @ case 3 .4byte _08080E00 @ case 4 .4byte _08080E00 @ case 5 .4byte _08080E00 @ case 6 .4byte _08080E00 @ case 7 .4byte _08080E00 @ case 8 .4byte _08080E00 @ case 9 .4byte _08080E00 @ case 10 .4byte _08080E00 @ case 11 .4byte _08080E00 @ case 12 .4byte _08080E00 @ case 13 .4byte _08080E00 @ case 14 .4byte _08080E00 @ case 15 .4byte _08080E00 @ case 16 .4byte _08080E00 @ case 17 .4byte _08080E00 @ case 18 .4byte _08080E00 @ case 19 .4byte _08080E00 @ case 20 .4byte _08080E00 @ case 21 .4byte _08080E00 @ case 22 .4byte _08080E00 @ case 23 .4byte _08080E00 @ case 24 .4byte _08080E00 @ case 25 .4byte _08080E00 @ case 26 .4byte _08080E00 @ case 27 .4byte _08080DEE @ case 28 .4byte _08080E00 @ case 29 .4byte _08080E00 @ case 30 .4byte _08080E00 @ case 31 .4byte _08080DA4 @ case 32 .4byte _08080E00 @ case 33 .4byte _08080DEE @ case 34 _08080DA4: adds r5, r4, #0 adds r5, #0x6a ldrb r0, [r5] cmp r0, #0 beq _08080DB4 subs r0, #1 strb r0, [r5] b _08080E00 _08080DB4: bl sub_08000E50 movs r1, #0x1f ands r0, r1 adds r0, #0xa strb r0, [r5] adds r0, r4, #0 movs r1, #7 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _08080E00 adds r0, r4, #0 adds r0, #0x62 ldrb r0, [r0] adds r2, r1, #0 adds r2, #0x62 strb r0, [r2] adds r0, r4, #0 adds r0, #0x63 ldrb r0, [r0] adds r2, #1 strb r0, [r2] adds r0, r4, #0 bl sub_0806FAB0 b _08080E00 _08080DEE: ldr r0, _08080E04 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #0xf ands r0, r1 cmp r0, #0 bne _08080E00 adds r0, r4, #0 bl sub_080A2B80 _08080E00: pop {r4, r5, pc} .align 2, 0 _08080E04: .4byte gUnk_030010A0 thumb_func_start sub_08080E08 sub_08080E08: @ 0x08080E08 push {r4, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08080EDE movs r0, #0x7f ands r0, r1 cmp r0, #0x1e bhi _08080EDE lsls r0, r0, #2 ldr r1, _08080E2C @ =_08080E30 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08080E2C: .4byte _08080E30 _08080E30: @ jump table .4byte _08080ED8 @ case 0 .4byte _08080ED8 @ case 1 .4byte _08080EDE @ case 2 .4byte _08080EDE @ case 3 .4byte _08080ED8 @ case 4 .4byte _08080ED8 @ case 5 .4byte _08080ED8 @ case 6 .4byte _08080EDE @ case 7 .4byte _08080ED8 @ case 8 .4byte _08080ED8 @ case 9 .4byte _08080ED8 @ case 10 .4byte _08080ED8 @ case 11 .4byte _08080ED8 @ case 12 .4byte _08080EDE @ case 13 .4byte _08080EDE @ case 14 .4byte _08080EDE @ case 15 .4byte _08080EDE @ case 16 .4byte _08080EDE @ case 17 .4byte _08080EDE @ case 18 .4byte _08080EDE @ case 19 .4byte _08080EAC @ case 20 .4byte _08080EDE @ case 21 .4byte _08080EDE @ case 22 .4byte _08080EDE @ case 23 .4byte _08080EDE @ case 24 .4byte _08080EDE @ case 25 .4byte _08080EDE @ case 26 .4byte _08080EDE @ case 27 .4byte _08080EDE @ case 28 .4byte _08080EDE @ case 29 .4byte _08080ED8 @ case 30 _08080EAC: movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r2, r4, #0 adds r2, #0x3c ldrb r1, [r2] movs r0, #0x10 orrs r0, r1 strb r0, [r2] ldr r0, [r4, #0x4c] str r0, [r4, #0x54] b _08080EDE _08080ED8: adds r0, r4, #0 bl sub_08081598 _08080EDE: adds r0, r4, #0 bl sub_0806F520 cmp r0, #0 beq _08080EF0 adds r0, r4, #0 bl sub_080813BC b _08080F00 _08080EF0: ldr r0, _08080F18 @ =gUnk_0811E7D4 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _08080F00: ldrb r0, [r4, #0xa] cmp r0, #0x5c bne _08080F0E ldr r1, _08080F1C @ =gUnk_02034350 ldrb r0, [r1, #4] adds r0, #1 strb r0, [r1, #4] _08080F0E: adds r0, r4, #0 bl sub_08080CB4 pop {r4, pc} .align 2, 0 _08080F18: .4byte gUnk_0811E7D4 _08080F1C: .4byte gUnk_02034350 thumb_func_start sub_08080F20 sub_08080F20: @ 0x08080F20 push {r4, r5, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x86 ldrh r0, [r1] cmp r0, #0 beq _08080F3A bl sub_0807CBE4 cmp r0, #0 beq _08080F3A bl sub_0805E780 _08080F3A: ldrb r0, [r4, #0xa] cmp r0, #0x60 bne _08080F42 b _0808107C _08080F42: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 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] adds r1, r4, #0 adds r1, #0x3f movs r0, #7 strb r0, [r1] subs r1, #3 movs r0, #0x47 strb r0, [r1] adds r1, #4 movs r0, #0x44 strb r0, [r1] adds r1, #5 movs r0, #0xff strb r0, [r1] ldr r0, _08080F9C @ =gUnk_080FD1A8 str r0, [r4, #0x48] ldrb r0, [r4, #0xa] subs r0, #0x3f cmp r0, #0x20 bhi _08081030 lsls r0, r0, #2 ldr r1, _08080FA0 @ =_08080FA4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08080F9C: .4byte gUnk_080FD1A8 _08080FA0: .4byte _08080FA4 _08080FA4: @ jump table .4byte _08081028 @ case 0 .4byte _08081030 @ case 1 .4byte _08081030 @ case 2 .4byte _08081030 @ case 3 .4byte _08081030 @ case 4 .4byte _08081030 @ case 5 .4byte _08081030 @ case 6 .4byte _08081030 @ case 7 .4byte _08081030 @ case 8 .4byte _08081030 @ case 9 .4byte _08081030 @ case 10 .4byte _08081030 @ case 11 .4byte _08081030 @ case 12 .4byte _08081030 @ case 13 .4byte _08081030 @ case 14 .4byte _08081030 @ case 15 .4byte _08081030 @ case 16 .4byte _08081030 @ case 17 .4byte _08081030 @ case 18 .4byte _08081030 @ case 19 .4byte _08081030 @ case 20 .4byte _08081028 @ case 21 .4byte _08081028 @ case 22 .4byte _08081028 @ case 23 .4byte _08081028 @ case 24 .4byte _08081028 @ case 25 .4byte _08081030 @ case 26 .4byte _08081030 @ case 27 .4byte _08081030 @ case 28 .4byte _08081028 @ case 29 .4byte _08081028 @ case 30 .4byte _08081028 @ case 31 .4byte _08081028 @ case 32 _08081028: adds r1, r4, #0 adds r1, #0x3b movs r0, #0x17 b _08081036 _08081030: adds r1, r4, #0 adds r1, #0x3b movs r0, #0x11 _08081036: strb r0, [r1] ldrb r0, [r4, #0xe] adds r5, r4, #0 adds r5, #0x69 movs r2, #0 strb r0, [r5] adds r0, r4, #0 adds r0, #0x6a strb r2, [r0] adds r0, #2 movs r1, #0 strh r2, [r0] subs r0, #4 strb r1, [r0] strb r1, [r4, #0xe] adds r0, r4, #0 movs r1, #3 bl sub_0805E3A0 ldrb r0, [r4, #0xa] bl sub_0808147C strb r0, [r4, #0x1c] ldr r1, _08081078 @ =gUnk_0811E7E8 ldrb r0, [r5] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 b _080810A4 .align 2, 0 _08081078: .4byte gUnk_0811E7E8 _0808107C: movs r0, #0x40 movs r1, #0x60 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _080810A4 movs r0, #0 strb r0, [r1, #0xe] ldrb r0, [r4, #0xe] cmp r0, #1 bne _0808109A movs r0, #2 strb r0, [r1, #0xb] _0808109A: adds r0, r4, #0 bl sub_0806FA24 bl sub_0805E780 _080810A4: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080810A8 sub_080810A8: @ 0x080810A8 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_080814A4 ldrb r1, [r4, #0x15] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080810D6 movs r0, #0x1f ands r0, r1 strb r0, [r4, #0x15] movs r1, #0x24 ldrsh r0, [r4, r1] cmp r0, #0 bne _080810DC movs r0, #0x80 lsls r0, r0, #1 strh r0, [r4, #0x24] b _080810DC _080810D6: movs r0, #0xff orrs r0, r1 strb r0, [r4, #0x15] _080810DC: ldr r0, [r4, #0x20] cmp r0, #0 bne _080810E8 movs r0, #0xf0 lsls r0, r0, #9 str r0, [r4, #0x20] _080810E8: adds r0, r4, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #2 bne _080810F8 adds r0, r4, #0 bl sub_08016A30 _080810F8: pop {r4, pc} .align 2, 0 thumb_func_start sub_080810FC sub_080810FC: @ 0x080810FC push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xa] cmp r0, #0x5f beq _0808110E adds r0, r2, #0 bl sub_08081598 b _0808112E _0808110E: movs r1, #0 movs r0, #2 strb r0, [r2, #0xc] strb r1, [r2, #0xd] ldrb r1, [r2, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x10] adds r1, r2, #0 adds r1, #0x3b movs r0, #0x11 strb r0, [r1] ldr r0, _08081130 @ =gUnk_03001160 adds r1, r2, #0 bl sub_0806FA24 _0808112E: pop {pc} .align 2, 0 _08081130: .4byte gUnk_03001160 thumb_func_start sub_08081134 sub_08081134: @ 0x08081134 push {r4, lr} adds r4, r0, #0 bl sub_080814A4 adds r1, r4, #0 adds r1, #0x6c ldrh r0, [r1] adds r0, #0x50 strh r0, [r1] adds r0, r4, #0 bl sub_08081150 pop {r4, pc} .align 2, 0 thumb_func_start sub_08081150 sub_08081150: @ 0x08081150 push {lr} movs r1, #2 strb r1, [r0, #0xc] ldrb r2, [r0, #0x10] movs r1, #0x80 orrs r1, r2 strb r1, [r0, #0x10] ldr r1, _08081180 @ =0x0000FF80 strh r1, [r0, #0x36] ldrb r3, [r0, #0x1b] movs r2, #0x3f adds r1, r2, #0 ands r1, r3 movs r3, #0x40 orrs r1, r3 strb r1, [r0, #0x1b] ldrb r1, [r0, #0x19] ands r2, r1 orrs r2, r3 strb r2, [r0, #0x19] ldr r0, _08081184 @ =0x0000012D bl sub_080A3268 pop {pc} .align 2, 0 _08081180: .4byte 0x0000FF80 _08081184: .4byte 0x0000012D thumb_func_start sub_08081188 sub_08081188: @ 0x08081188 push {lr} adds r2, r0, #0 movs r0, #2 strb r0, [r2, #0xc] ldrb r1, [r2, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x10] adds r0, r2, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #2 bne _080811A8 adds r0, r2, #0 bl sub_08016A30 _080811A8: pop {pc} .align 2, 0 thumb_func_start sub_080811AC sub_080811AC: @ 0x080811AC push {r4, lr} adds r4, r0, #0 movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #6 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_080002A0 adds r4, #0x6e strh r0, [r4] pop {r4, pc} thumb_func_start sub_080811C8 sub_080811C8: @ 0x080811C8 movs r1, #2 strb r1, [r0, #0xc] ldrb r2, [r0, #0x18] subs r1, #6 ands r1, r2 strb r1, [r0, #0x18] bx lr .align 2, 0 thumb_func_start sub_080811D8 sub_080811D8: @ 0x080811D8 push {lr} bl sub_08081188 ldr r0, _080811E8 @ =0x00000215 bl sub_080A3268 pop {pc} .align 2, 0 _080811E8: .4byte 0x00000215 thumb_func_start sub_080811EC sub_080811EC: @ 0x080811EC push {r4, lr} adds r4, r0, #0 adds r0, #0x69 ldrb r0, [r0] cmp r0, #6 beq _08081200 adds r0, r4, #0 bl sub_080AEFE0 b _08081206 _08081200: adds r0, r4, #0 bl sub_0806F69C _08081206: movs r1, #0xa0 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 ldr r0, [r4, #0x20] cmp r0, #0 bgt _08081228 movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 bl sub_080814A4 _08081228: pop {r4, pc} .align 2, 0 thumb_func_start sub_0808122C sub_0808122C: @ 0x0808122C push {lr} ldr r2, _08081244 @ =gUnk_0811E814 adds r1, r0, #0 adds r1, #0x69 ldrb r1, [r1] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08081244: .4byte gUnk_0811E814 thumb_func_start sub_08081248 sub_08081248: @ 0x08081248 push {r4, lr} adds r4, r0, #0 bl sub_08081500 adds r0, r4, #0 bl sub_080814C0 cmp r0, #0 beq _08081264 adds r0, r4, #0 movs r1, #0 bl sub_08081404 b _0808126A _08081264: adds r0, r4, #0 bl sub_0800442E _0808126A: pop {r4, pc} thumb_func_start sub_0808126C sub_0808126C: @ 0x0808126C push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_0808153C pop {r4, pc} thumb_func_start sub_0808127C sub_0808127C: @ 0x0808127C push {r4, lr} adds r4, r0, #0 bl sub_080814C0 cmp r0, #0 beq _08081292 adds r0, r4, #0 movs r1, #0 bl sub_08081404 b _08081298 _08081292: adds r0, r4, #0 bl sub_0808153C _08081298: pop {r4, pc} .align 2, 0 thumb_func_start nullsub_113 nullsub_113: @ 0x0808129C bx lr .align 2, 0 thumb_func_start sub_080812A0 sub_080812A0: @ 0x080812A0 push {lr} bl sub_08081500 pop {pc} thumb_func_start sub_080812A8 sub_080812A8: @ 0x080812A8 push {r4, r5, lr} adds r5, r0, #0 bl sub_080002D0 cmp r0, #0xf beq _080812E4 adds r0, r5, #0 adds r0, #0x6e ldrh r4, [r0] adds r0, r5, #0 bl sub_080002A0 cmp r4, r0 beq _080812E4 movs r0, #0 strb r0, [r5, #0x15] movs r2, #0 strh r0, [r5, #0x24] ldrb r1, [r5, #0x18] subs r0, #4 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r5, #0x18] adds r0, r5, #0 adds r0, #0x69 strb r2, [r0] adds r0, r5, #0 bl sub_080810A8 _080812E4: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080812E8 sub_080812E8: @ 0x080812E8 push {r4, lr} adds r4, r0, #0 ldr r3, _0808131C @ =gUnk_03003F80 adds r0, r3, #0 adds r0, #0x26 ldrb r1, [r0] movs r2, #0x80 adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _08081318 ldr r0, [r3, #0x30] ands r0, r2 cmp r0, #0 bne _08081318 ldr r1, _08081320 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080177A0 cmp r0, #0 beq _08081318 adds r0, r4, #0 bl sub_080810FC _08081318: pop {r4, pc} .align 2, 0 _0808131C: .4byte gUnk_03003F80 _08081320: .4byte gUnk_03001160 thumb_func_start nullsub_510 nullsub_510: @ 0x08081324 bx lr .align 2, 0 thumb_func_start sub_08081328 sub_08081328: @ 0x08081328 push {r4, lr} adds r4, r0, #0 ldr r2, [r4, #0x54] ldrh r1, [r2, #8] movs r0, #0xc2 lsls r0, r0, #2 cmp r1, r0 beq _08081342 adds r0, r4, #0 movs r1, #0 bl sub_08081404 b _08081364 _08081342: adds r0, r2, #0 adds r1, r4, #0 bl sub_0806FA24 ldrh r0, [r4, #0x36] subs r0, #1 strh r0, [r4, #0x36] ldr r2, _08081368 @ =gUnk_03001160 adds r0, r4, #0 adds r1, r2, #0 bl sub_080177A0 cmp r0, #0 beq _08081364 adds r0, r4, #0 bl sub_080810FC _08081364: pop {r4, pc} .align 2, 0 _08081368: .4byte gUnk_03001160 thumb_func_start sub_0808136C sub_0808136C: @ 0x0808136C push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 beq _080813B2 ldr r3, [r5, #0x54] ldr r0, [r3, #0x2c] str r0, [r5, #0x2c] ldr r0, [r3, #0x30] str r0, [r5, #0x30] ldrb r2, [r3, #0x1b] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r4, [r5, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r4 orrs r0, r2 strb r0, [r5, #0x1b] ldrb r0, [r3, #0x19] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r5, #0x19] ands r1, r2 orrs r1, r0 strb r1, [r5, #0x19] movs r1, #0xa0 lsls r1, r1, #6 adds r0, r5, #0 bl sub_08003FC4 b _080813BA _080813B2: adds r0, r5, #0 movs r1, #1 bl sub_08081404 _080813BA: pop {r4, r5, pc} thumb_func_start sub_080813BC sub_080813BC: @ 0x080813BC push {lr} ldr r2, _080813D0 @ =gUnk_0811E840 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080813D0: .4byte gUnk_0811E840 thumb_func_start sub_080813D4 sub_080813D4: @ 0x080813D4 movs r3, #1 movs r1, #1 strb r1, [r0, #0xd] strb r1, [r0, #0x1d] ldrb r2, [r0, #0x18] subs r1, #5 ands r1, r2 orrs r1, r3 strb r1, [r0, #0x18] bx lr thumb_func_start sub_080813E8 sub_080813E8: @ 0x080813E8 push {lr} bl sub_0806F4E8 pop {pc} thumb_func_start sub_080813F0 sub_080813F0: @ 0x080813F0 push {r4, lr} adds r4, r0, #0 bl sub_0806F3E4 cmp r0, #0 beq _08081402 adds r0, r4, #0 bl sub_080810FC _08081402: pop {r4, pc} thumb_func_start sub_08081404 sub_08081404: @ 0x08081404 push {lr} cmp r1, #0 beq _08081418 adds r1, r0, #0 adds r1, #0x86 ldrh r0, [r1] cmp r0, #0 beq _08081418 bl sub_0807CCC8 _08081418: bl sub_0805E780 pop {pc} .align 2, 0 thumb_func_start sub_08081420 sub_08081420: @ 0x08081420 push {r4, lr} adds r4, r0, #0 bl sub_08081450 cmp r0, #0 bne _08081438 ldrb r0, [r4, #0xa] ldrb r1, [r4, #0xb] bl sub_08053FF0 movs r0, #0 b _0808144C _08081438: adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 ldrb r0, [r4, #0xa] ldrb r1, [r4, #0xb] movs r2, #0 bl sub_080A7C00 movs r0, #1 _0808144C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08081450 sub_08081450: @ 0x08081450 push {r4, lr} movs r4, #0 ldr r1, _08081478 @ =gUnk_080FD5B4 ldrb r2, [r0, #0xa] lsls r0, r2, #3 adds r0, r0, r1 ldrb r1, [r0, #3] movs r0, #2 ands r0, r1 cmp r0, #0 bne _08081470 adds r0, r2, #0 bl sub_0807CA84 cmp r0, #0 bne _08081472 _08081470: movs r4, #1 _08081472: adds r0, r4, #0 pop {r4, pc} .align 2, 0 _08081478: .4byte gUnk_080FD5B4 thumb_func_start sub_0808147C sub_0808147C: @ 0x0808147C lsls r0, r0, #3 ldr r1, _08081488 @ =gUnk_0811E84C adds r0, r0, r1 ldrb r0, [r0, #4] bx lr .align 2, 0 _08081488: .4byte gUnk_0811E84C thumb_func_start sub_0808148C sub_0808148C: @ 0x0808148C push {lr} lsls r0, r0, #3 ldr r1, _080814A0 @ =gUnk_0811E84C adds r1, r0, r1 ldrh r0, [r1, #2] cmp r0, #0 beq _0808149E bl sub_080A3268 _0808149E: pop {pc} .align 2, 0 _080814A0: .4byte gUnk_0811E84C thumb_func_start sub_080814A4 sub_080814A4: @ 0x080814A4 push {lr} adds r1, r0, #0 adds r0, #0x69 ldrb r0, [r0] cmp r0, #0xa bne _080814B6 adds r1, #0x6c movs r0, #0x78 b _080814BC _080814B6: adds r1, #0x6c movs r0, #0x96 lsls r0, r0, #2 _080814BC: strh r0, [r1] pop {pc} thumb_func_start sub_080814C0 sub_080814C0: @ 0x080814C0 push {r4, lr} adds r4, r0, #0 bl sub_0805E40C cmp r0, #0 bne _080814FA adds r0, r4, #0 adds r0, #0x6c ldrh r1, [r0] subs r1, #1 strh r1, [r0] lsls r0, r1, #0x10 cmp r0, #0 bne _080814E0 movs r0, #1 b _080814FC _080814E0: lsls r0, r1, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x59 bhi _080814FA ldrb r2, [r4, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #1 eors r1, r0 subs r0, #5 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] _080814FA: movs r0, #0 _080814FC: pop {r4, pc} .align 2, 0 thumb_func_start sub_08081500 sub_08081500: @ 0x08081500 push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x68 ldrb r0, [r5] cmp r0, #0 bne _08081538 movs r1, #0xa0 lsls r1, r1, #6 adds r0, r4, #0 bl sub_080044EC cmp r0, #0 bne _08081522 movs r0, #1 strb r0, [r5] b _08081538 _08081522: cmp r0, #1 bne _08081532 ldrb r0, [r4, #0xa] bl sub_0808148C adds r0, r4, #0 bl sub_08016A04 _08081532: adds r0, r4, #0 bl sub_080AEFE0 _08081538: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0808153C sub_0808153C: @ 0x0808153C push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x68 ldrb r0, [r5] cmp r0, #1 bhi _08081596 cmp r0, #0 bne _0808157E movs r1, #0x80 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08081596 adds r0, r4, #0 bl sub_0800442E cmp r0, #0 bne _08081596 movs r0, #1 strb r0, [r5] movs r0, #0xf0 lsls r0, r0, #9 str r0, [r4, #0x20] ldrb r0, [r4, #0xa] bl sub_0808148C adds r0, r4, #0 bl sub_08016A04 b _08081596 _0808157E: movs r1, #0xa0 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08081596 movs r0, #2 strb r0, [r5] ldrb r0, [r4, #0xa] bl sub_0808148C _08081596: pop {r4, r5, pc} thumb_func_start sub_08081598 sub_08081598: @ 0x08081598 push {r4, lr} adds r4, r0, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _080815AC adds r0, r4, #0 movs r1, #1 bl sub_08081404 _080815AC: ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r0, #4 strb r0, [r4, #0xc] movs r0, #0xe strb r0, [r4, #0xe] movs r0, #0x80 lsls r0, r0, #0xa str r0, [r4, #0x20] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 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, #0x10 orrs r0, r1 movs r1, #8 rsbs r1, r1, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r2] ldr r0, _08081618 @ =gUnk_03001160 str r0, [r4, #0x54] adds r1, r4, #0 bl sub_0806FA24 ldrh r0, [r4, #0x36] subs r0, #4 strh r0, [r4, #0x36] ldrb r0, [r4, #0xa] cmp r0, #0x5f beq _08081614 adds r0, r4, #0 bl sub_08081420 cmp r0, #0 beq _08081614 adds r0, r4, #0 movs r1, #1 bl sub_08081404 _08081614: pop {r4, pc} .align 2, 0 _08081618: .4byte gUnk_03001160 thumb_func_start sub_0808161C sub_0808161C: @ 0x0808161C push {lr} ldr r2, _08081630 @ =gUnk_0811EBFC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08081630: .4byte gUnk_0811EBFC thumb_func_start sub_08081634 sub_08081634: @ 0x08081634 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x6c ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0808169C movs r5, #0 movs r0, #0x65 strh r0, [r4, #0x12] movs r1, #2 strb r1, [r4, #0xc] strb r5, [r4, #0x15] movs r0, #0x40 strh r0, [r4, #0x24] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] adds r0, r4, #0 bl sub_08016A04 ldrb r0, [r4, #0x19] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x19] ldrb r0, [r4, #0xe] movs r2, #0x80 cmp r0, #0 beq _08081674 adds r2, r0, #0 strb r5, [r4, #0xe] _08081674: adds r0, r4, #0 adds r1, r2, #0 movs r3, #0 bl sub_0805EC9C adds r0, r4, #0 movs r1, #4 movs r2, #0 bl sub_080AE008 adds r0, r4, #0 movs r1, #0 bl sub_080042AC ldr r0, _08081698 @ =0x00000129 bl sub_080A3268 b _0808170C .align 2, 0 _08081698: .4byte 0x00000129 _0808169C: movs r0, #0xc ands r0, r1 cmp r0, #0 beq _080816B2 adds r0, r4, #0 bl sub_08081790 adds r0, r4, #0 bl sub_0808180C b _08081702 _080816B2: movs r0, #2 ands r0, r1 cmp r0, #0 beq _080816C4 adds r0, r4, #0 movs r1, #2 bl sub_08004260 b _08081702 _080816C4: 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] ldr r1, _08081718 @ =gUnk_0811EC08 ldrb r0, [r4, #0xa] lsrs r0, r0, #2 adds r0, r0, r1 ldrb r2, [r0] ldrb r0, [r4, #0xa] movs r1, #3 ands r0, r1 lsls r0, r0, #1 asrs r2, r0 ands r2, r1 ldr r1, [r4, #0x50] cmp r1, #0 beq _080816FA ldr r0, _0808171C @ =gUnk_0811EC20 adds r0, r2, r0 ldrb r0, [r0] strb r0, [r1, #0xe] _080816FA: adds r0, r4, #0 adds r1, r2, #0 bl sub_08004260 _08081702: movs r0, #1 strb r0, [r4, #0xc] movs r0, #0xff bl sub_08004488 _0808170C: adds r0, r4, #0 movs r1, #3 bl sub_0805E3A0 pop {r4, r5, pc} .align 2, 0 _08081718: .4byte gUnk_0811EC08 _0808171C: .4byte gUnk_0811EC20 thumb_func_start sub_08081720 sub_08081720: @ 0x08081720 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08081744 adds r0, r4, #0 bl sub_08081790 adds r0, r4, #0 bl sub_0808180C b _0808175E _08081744: movs r0, #1 ands r0, r1 cmp r0, #0 beq _0808175E 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] _0808175E: pop {r4, pc} thumb_func_start sub_08081760 sub_08081760: @ 0x08081760 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 _0808177E adds r0, r4, #0 bl sub_0808180C b _0808178C _0808177E: movs r0, #1 ands r0, r1 cmp r0, #0 beq _0808178C adds r0, r4, #0 bl sub_0806F69C _0808178C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08081790 sub_08081790: @ 0x08081790 push {lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x6d ldrb r0, [r1] cmp r0, #0xef bhi _080817B4 ldr r0, _080817B0 @ =gUnk_0811EC64 ldrb r1, [r1] adds r1, r1, r0 ldrb r1, [r1] adds r0, r2, #0 bl sub_0805457C b _080817C6 .align 2, 0 _080817B0: .4byte gUnk_0811EC64 _080817B4: ldr r0, _080817C8 @ =gUnk_0811EC24 ldrb r1, [r1] subs r1, #0xf0 lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 _080817C6: pop {pc} .align 2, 0 _080817C8: .4byte gUnk_0811EC24 thumb_func_start sub_080817CC sub_080817CC: @ 0x080817CC push {lr} movs r1, #9 bl sub_0805457C pop {pc} .align 2, 0 thumb_func_start sub_080817D8 sub_080817D8: @ 0x080817D8 push {lr} movs r1, #0xd bl sub_0805457C pop {pc} .align 2, 0 thumb_func_start sub_080817E4 sub_080817E4: @ 0x080817E4 push {lr} movs r1, #0xe bl sub_0805457C pop {pc} .align 2, 0 thumb_func_start sub_080817F0 sub_080817F0: @ 0x080817F0 push {lr} movs r1, #1 bl sub_0805457C pop {pc} .align 2, 0 thumb_func_start sub_080817FC sub_080817FC: @ 0x080817FC push {lr} adds r1, r0, #0 adds r1, #0x6e ldrb r1, [r1] movs r2, #0 bl sub_08054754 pop {pc} thumb_func_start sub_0808180C sub_0808180C: @ 0x0808180C push {lr} bl sub_0805E780 pop {pc} thumb_func_start sub_08081814 sub_08081814: @ 0x08081814 push {r4, lr} adds r4, r0, #0 ldr r1, _08081850 @ =gUnk_0811EE28 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_080040A8 cmp r0, #0 beq _08081838 adds r0, r4, #0 bl sub_08080CB4 _08081838: ldrb r0, [r4, #0xe] cmp r0, #2 bgt _0808184E cmp r0, #1 blt _0808184E ldrb r0, [r4, #0xc] cmp r0, #1 bne _0808184E adds r0, r4, #0 bl sub_0800445C _0808184E: pop {r4, pc} .align 2, 0 _08081850: .4byte gUnk_0811EE28 thumb_func_start sub_08081854 sub_08081854: @ 0x08081854 push {r4, lr} adds r4, r0, #0 movs r3, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] strb r3, [r4, #0x16] str r4, [r4, #0x54] adds r0, r4, #0 bl sub_08081A5C ldrb r0, [r4, #0xe] cmp r0, #0 beq _0808188E cmp r0, #1 beq _08081898 b _0808189C _0808188E: ldr r0, _08081894 @ =gUnk_080FD328 b _0808189A .align 2, 0 _08081894: .4byte gUnk_080FD328 _08081898: ldr r0, _080818A0 @ =gUnk_080FD198 _0808189A: str r0, [r4, #0x48] _0808189C: pop {r4, pc} .align 2, 0 _080818A0: .4byte gUnk_080FD198 thumb_func_start sub_080818A4 sub_080818A4: @ 0x080818A4 push {r4, lr} adds r4, r0, #0 ldrb r2, [r4, #0xd] cmp r2, #0 beq _080818C0 movs r1, #2 strb r1, [r4, #0xc] ldr r0, _080818BC @ =gUnk_0200AF00 adds r0, #0x2f strb r1, [r0] b _08081920 .align 2, 0 _080818BC: .4byte gUnk_0200AF00 _080818C0: ldrb r0, [r4, #0xa] cmp r0, #0x36 bne _080818F0 adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08081920 strb r2, [r1] movs r0, #3 strb r0, [r4, #0xc] ldr r1, _080818E8 @ =gUnk_02034350 movs r0, #1 str r0, [r1, #0x68] ldr r1, _080818EC @ =gUnk_03003F80 movs r0, #7 strb r0, [r1, #0xc] b _08081920 .align 2, 0 _080818E8: .4byte gUnk_02034350 _080818EC: .4byte gUnk_03003F80 _080818F0: adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08081920 strb r2, [r1] movs r0, #1 strb r0, [r4, #0xd] bl sub_08078B48 bl sub_08077B2C ldr r1, _08081924 @ =gUnk_03003F80 movs r0, #4 strb r0, [r1, #5] ldr r0, _08081928 @ =gUnk_03001160 str r4, [r0, #0x74] ldr r0, _0808192C @ =gUnk_0200AF00 adds r0, #0x2f movs r1, #2 strb r1, [r0] bl sub_08056360 _08081920: pop {r4, pc} .align 2, 0 _08081924: .4byte gUnk_03003F80 _08081928: .4byte gUnk_03001160 _0808192C: .4byte gUnk_0200AF00 thumb_func_start sub_08081930 sub_08081930: @ 0x08081930 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r0, _08081968 @ =gUnk_0200AF00 adds r6, r0, #0 adds r6, #0x2f movs r0, #2 strb r0, [r6] ldr r3, _0808196C @ =gUnk_03001160 ldrb r1, [r3, #0x18] lsls r1, r1, #0x1e lsrs r1, r1, #0x1e ldrb r2, [r4, #0x18] subs r0, #6 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] ldr r5, _08081970 @ =gUnk_03003F80 ldrb r0, [r5, #5] cmp r0, #0 beq _0808195E ldr r0, [r3, #0x74] cmp r4, r0 beq _08081974 _0808195E: adds r0, r4, #0 bl sub_080819B4 b _080819AC .align 2, 0 _08081968: .4byte gUnk_0200AF00 _0808196C: .4byte gUnk_03001160 _08081970: .4byte gUnk_03003F80 _08081974: bl sub_080784E4 adds r1, r0, #0 ldr r0, [r1, #8] cmp r0, #0 beq _08081998 ldrb r0, [r1, #1] cmp r0, #1 bne _08081998 movs r0, #7 strb r0, [r6] adds r0, r5, #0 adds r0, #0x92 ldrh r1, [r0] movs r0, #0x88 ands r0, r1 cmp r0, #0 bne _080819AC _08081998: ldr r0, _080819B0 @ =gUnk_03003F80 adds r0, #0x92 ldrh r1, [r0] movs r0, #0x98 ands r0, r1 cmp r0, #0 beq _080819AC adds r0, r4, #0 bl sub_080819B4 _080819AC: pop {r4, r5, r6, pc} .align 2, 0 _080819B0: .4byte gUnk_03003F80 thumb_func_start sub_080819B4 sub_080819B4: @ 0x080819B4 push {r4, r5, r6, lr} adds r5, r0, #0 ldr r0, _08081A48 @ =gUnk_02034350 ldrb r0, [r0, #6] cmp r0, #0 bne _080819D4 ldr r0, [r5, #0x50] cmp r0, #0 beq _080819D0 adds r0, #0x20 ldrb r1, [r5, #0xf] adds r0, r0, r1 movs r1, #0xff strb r1, [r0] _080819D0: bl sub_0805E780 _080819D4: ldr r0, _08081A4C @ =gUnk_03003F80 movs r2, #0 strb r2, [r0, #5] ldr r4, _08081A50 @ =gUnk_03001160 str r2, [r4, #0x74] ldr r1, _08081A54 @ =gUnk_0200AF00 ldr r3, _08081A48 @ =gUnk_02034350 strb r2, [r3, #6] adds r0, r1, #0 adds r0, #0x2c strb r2, [r0] adds r1, #0x2f strb r2, [r1] strb r2, [r3, #7] adds r1, r5, #0 adds r1, #0x80 ldr r3, _08081A58 @ =gUnk_03000BF0 ldrh r0, [r3, #6] ldrh r1, [r1] adds r0, r0, r1 movs r1, #0 strh r0, [r5, #0x2e] movs r6, #0x82 ldrh r0, [r3, #8] ldrh r3, [r6, r5] adds r0, r0, r3 strh r0, [r5, #0x32] str r2, [r5, #0x34] movs r3, #1 strb r3, [r5, #0xc] strb r1, [r5, #0xd] ldrb r1, [r4, #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] adds r0, r5, #0 adds r0, #0x38 strb r3, [r0] 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] adds r0, r5, #0 bl sub_08016A04 adds r0, r5, #0 bl sub_08081A5C pop {r4, r5, r6, pc} .align 2, 0 _08081A48: .4byte gUnk_02034350 _08081A4C: .4byte gUnk_03003F80 _08081A50: .4byte gUnk_03001160 _08081A54: .4byte gUnk_0200AF00 _08081A58: .4byte gUnk_03000BF0 thumb_func_start sub_08081A5C sub_08081A5C: @ 0x08081A5C push {r4, lr} adds r4, r0, #0 bl sub_080787D8 adds r2, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #1 bne _08081A7A ldr r0, _08081A7C @ =gUnk_03003DF0 lsls r1, r2, #1 adds r1, r1, r2 lsls r1, r1, #2 adds r1, r1, r0 movs r0, #0 strb r0, [r1, #0xa] _08081A7A: pop {r4, pc} .align 2, 0 _08081A7C: .4byte gUnk_03003DF0 thumb_func_start sub_08081A80 sub_08081A80: @ 0x08081A80 push {lr} adds r2, r0, #0 ldr r0, _08081A98 @ =gUnk_02034350 ldr r0, [r0, #0x68] cmp r0, #0 bne _08081A9C bl sub_08081AB0 bl sub_0805E780 b _08081AAC .align 2, 0 _08081A98: .4byte gUnk_02034350 _08081A9C: cmp r0, #2 bne _08081AAC movs r1, #0 movs r0, #1 strb r0, [r2, #0xc] strb r1, [r2, #0xd] bl sub_08081AB0 _08081AAC: pop {pc} .align 2, 0 thumb_func_start sub_08081AB0 sub_08081AB0: @ 0x08081AB0 push {lr} ldr r1, _08081AC4 @ =gUnk_02034350 movs r0, #0 str r0, [r1, #0x68] strb r0, [r1, #6] strb r0, [r1, #7] bl sub_08078A90 pop {pc} .align 2, 0 _08081AC4: .4byte gUnk_02034350 thumb_func_start sub_08081AC8 sub_08081AC8: @ 0x08081AC8 push {lr} ldr r2, _08081ADC @ =gUnk_0811EE38 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08081ADC: .4byte gUnk_0811EE38 thumb_func_start sub_08081AE0 sub_08081AE0: @ 0x08081AE0 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x11] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r4, #0x11] ldrh r0, [r4, #0x32] adds r0, #1 strh r0, [r4, #0x32] adds r0, r4, #0 adds r0, #0x84 ldrh r1, [r0] cmp r1, #0 beq _08081B0E subs r0, #0x4c strb r1, [r0] _08081B0E: movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _08081B6C @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r5, r4, #0 adds r5, #0x74 strh r1, [r5] ldrh r0, [r5] adds r6, r4, #0 adds r6, #0x38 ldrb r1, [r6] bl sub_080002B0 adds r1, r4, #0 adds r1, #0x72 strh r0, [r1] ldrb r0, [r4, #0xa] cmp r0, #0 bne _08081B70 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _08081B70 movs r0, #5 strb r0, [r4, #0xc] ldrh r1, [r5] ldrb r2, [r6] movs r0, #0x7a bl sub_0807B314 b _08081B82 .align 2, 0 _08081B6C: .4byte gUnk_03000BF0 _08081B70: adds r0, r4, #0 bl sub_08081E3C cmp r0, #0 beq _08081B7E movs r0, #2 b _08081B80 _08081B7E: movs r0, #1 _08081B80: strb r0, [r4, #0xc] _08081B82: pop {r4, r5, r6, pc} thumb_func_start sub_08081B84 sub_08081B84: @ 0x08081B84 push {r4, lr} adds r4, r0, #0 bl sub_08081E3C cmp r0, #0 beq _08081BAA movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x74 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080002B0 adds r1, r4, #0 adds r1, #0x72 strh r0, [r1] _08081BAA: pop {r4, pc} thumb_func_start sub_08081BAC sub_08081BAC: @ 0x08081BAC push {r4, lr} adds r4, r0, #0 bl sub_08081CB0 cmp r0, #0 beq _08081BDC movs r0, #0 strb r0, [r4, #0xd] movs r0, #0xa strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0xa bl sub_0805E4E0 adds r0, r4, #0 bl sub_08081FF8 ldrb r0, [r4, #0xa] cmp r0, #1 bne _08081BD8 movs r0, #3 b _08081BDA _08081BD8: movs r0, #5 _08081BDA: strb r0, [r4, #0xc] _08081BDC: pop {r4, pc} .align 2, 0 thumb_func_start sub_08081BE0 sub_08081BE0: @ 0x08081BE0 push {r4, lr} adds r4, r0, #0 movs r1, #0x78 bl sub_08081F7C cmp r0, #0 beq _08081C2C adds r0, r4, #0 bl sub_08081D28 cmp r0, #0 bne _08081C26 movs r0, #4 strb r0, [r4, #0xc] movs r0, #1 strb r0, [r4, #0xf] ldr r1, _08081C1C @ =gUnk_03003F80 ldrb r0, [r1, #5] cmp r0, #2 beq _08081C16 adds r0, r1, #0 adds r0, #0x35 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _08081C20 _08081C16: movs r0, #0x18 strb r0, [r4, #0xe] b _08081C2C .align 2, 0 _08081C1C: .4byte gUnk_03003F80 _08081C20: movs r0, #8 strb r0, [r4, #0xe] b _08081C2C _08081C26: adds r0, r4, #0 bl sub_08081E6C _08081C2C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08081C30 sub_08081C30: @ 0x08081C30 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08081C70 subs r0, #1 movs r5, #0 strb r0, [r4, #0xe] ldrb r0, [r4, #0xf] cmp r0, #0 beq _08081C5A strb r5, [r4, #0xf] ldr r0, _08081C6C @ =0x00004035 adds r1, r4, #0 adds r1, #0x74 ldrh r1, [r1] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E _08081C5A: adds r0, r4, #0 bl sub_08081CB0 cmp r0, #0 beq _08081C96 movs r0, #3 strb r0, [r4, #0xc] strb r5, [r4, #0xe] b _08081C96 .align 2, 0 _08081C6C: .4byte 0x00004035 _08081C70: movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CD48 adds r0, r4, #0 adds r0, #0x74 ldrh r1, [r0] subs r0, #0x3c ldrb r2, [r0] movs r0, #0x77 bl sub_0807B314 movs r0, #0x86 lsls r0, r0, #1 bl sub_080A3268 _08081C96: pop {r4, r5, pc} thumb_func_start sub_08081C98 sub_08081C98: @ 0x08081C98 push {r4, lr} adds r4, r0, #0 movs r1, #0x7a bl sub_08081F7C cmp r0, #0 beq _08081CAC adds r0, r4, #0 bl sub_08081E6C _08081CAC: pop {r4, pc} .align 2, 0 thumb_func_start sub_08081CB0 sub_08081CB0: @ 0x08081CB0 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_08081D74 cmp r0, #0 beq _08081CEC adds r1, r4, #0 adds r1, #0x70 ldr r0, _08081CE4 @ =0x0000FFFF strh r0, [r1] adds r5, r4, #0 adds r5, #0x74 ldrh r0, [r5] adds r4, #0x38 ldrb r1, [r4] bl sub_080002B0 ldr r1, _08081CE8 @ =0x00004035 cmp r0, r1 bne _08081D1C ldrh r1, [r5] ldrb r2, [r4] movs r0, #0x78 bl sub_0807B7D8 b _08081D1C .align 2, 0 _08081CE4: .4byte 0x0000FFFF _08081CE8: .4byte 0x00004035 _08081CEC: adds r6, r4, #0 adds r6, #0x74 ldrh r0, [r6] adds r5, r4, #0 adds r5, #0x38 ldrb r1, [r5] bl sub_080002B0 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 cmp r1, #0x77 beq _08081D24 cmp r1, #0x79 beq _08081D24 ldr r0, _08081D20 @ =0x00004035 cmp r1, r0 beq _08081D24 ldrh r0, [r6] ldrb r1, [r5] bl sub_080001DA adds r1, r4, #0 adds r1, #0x70 strh r0, [r1] _08081D1C: movs r0, #1 b _08081D26 .align 2, 0 _08081D20: .4byte 0x00004035 _08081D24: movs r0, #0 _08081D26: pop {r4, r5, r6, pc} thumb_func_start sub_08081D28 sub_08081D28: @ 0x08081D28 push {r4, r5, lr} adds r4, r0, #0 bl sub_08081D74 cmp r0, #0 beq _08081D44 adds r1, r4, #0 adds r1, #0x70 ldr r0, _08081D40 @ =0x0000FFFF strh r0, [r1] movs r0, #1 b _08081D72 .align 2, 0 _08081D40: .4byte 0x0000FFFF _08081D44: adds r5, r4, #0 adds r5, #0x70 ldrh r1, [r5] ldr r0, _08081D6C @ =0x0000FFFF cmp r1, r0 beq _08081D70 adds r0, r4, #0 adds r0, #0x74 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080001DA ldrh r5, [r5] cmp r0, r5 bne _08081D70 movs r0, #1 b _08081D72 .align 2, 0 _08081D6C: .4byte 0x0000FFFF _08081D70: movs r0, #0 _08081D72: pop {r4, r5, pc} thumb_func_start sub_08081D74 sub_08081D74: @ 0x08081D74 push {r4, r5, r6, lr} adds r4, r0, #0 adds r0, #0x74 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080002E0 cmp r0, #0xf bne _08081D8E movs r0, #0 b _08081E0A _08081D8E: movs r6, #0 adds r0, r4, #0 bl sub_08081E0C cmp r0, #0 beq _08081DB4 ldr r0, _08081DAC @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x90 ands r0, r1 cmp r0, #0 bne _08081E06 ldr r6, _08081DB0 @ =gUnk_03001160 b _08081E06 .align 2, 0 _08081DAC: .4byte gUnk_03003F80 _08081DB0: .4byte gUnk_03001160 _08081DB4: ldr r0, _08081DD8 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 lsls r1, r1, #0xf ands r0, r1 cmp r0, #0 beq _08081E06 ldr r5, _08081DDC @ =gUnk_03004040 ldr r1, [r5] adds r0, r4, #0 movs r2, #5 movs r3, #6 bl sub_080041A0 cmp r0, #0 beq _08081DE0 ldr r6, [r5] b _08081E06 .align 2, 0 _08081DD8: .4byte gUnk_03003F80 _08081DDC: .4byte gUnk_03004040 _08081DE0: ldr r1, [r5, #4] adds r0, r4, #0 movs r2, #5 movs r3, #6 bl sub_080041A0 cmp r0, #0 beq _08081DF4 ldr r6, [r5, #4] b _08081E06 _08081DF4: ldr r1, [r5, #8] adds r0, r4, #0 movs r2, #5 movs r3, #6 bl sub_080041A0 cmp r0, #0 beq _08081E06 ldr r6, [r5, #8] _08081E06: str r6, [r4, #0x54] adds r0, r6, #0 _08081E0A: pop {r4, r5, r6, pc} thumb_func_start sub_08081E0C sub_08081E0C: @ 0x08081E0C push {r4, r5, lr} adds r4, r0, #0 ldr r5, _08081E28 @ =gUnk_03001160 movs r1, #0x36 ldrsh r0, [r5, r1] cmp r0, #0 bne _08081E22 bl sub_08079F8C cmp r0, #0 bne _08081E2C _08081E22: movs r0, #0 b _08081E38 .align 2, 0 _08081E28: .4byte gUnk_03001160 _08081E2C: adds r0, r4, #0 adds r1, r5, #0 movs r2, #5 movs r3, #6 bl sub_080041A0 _08081E38: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08081E3C sub_08081E3C: @ 0x08081E3C push {lr} adds r1, r0, #0 adds r1, #0x74 ldrh r2, [r1] adds r0, #0x38 ldrb r1, [r0] adds r0, r2, #0 bl sub_080002B0 adds r2, r0, #0 ldr r1, _08081E64 @ =gUnk_0811EE50 _08081E52: ldrh r0, [r1] cmp r0, r2 beq _08081E68 adds r1, #2 ldrh r0, [r1] cmp r0, #0 bne _08081E52 movs r0, #0 b _08081E6A .align 2, 0 _08081E64: .4byte gUnk_0811EE50 _08081E68: movs r0, #1 _08081E6A: pop {pc} thumb_func_start sub_08081E6C sub_08081E6C: @ 0x08081E6C push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r0, #0x74 ldrh r6, [r0] subs r0, #0x3c ldrb r5, [r0] adds r0, r6, #0 adds r1, r5, #0 bl sub_080002B0 adds r7, r0, #0 ldr r0, _08081EEC @ =0x00003FFF cmp r7, r0 bls _08081EE8 adds r0, r5, #0 bl sub_0808094C adds r1, r0, #0 ldrb r0, [r4, #0xa] movs r4, #0x78 cmp r0, #0 bne _08081E9A movs r4, #0x7a _08081E9A: ldr r0, _08081EF0 @ =0x00007004 adds r3, r1, r0 lsls r0, r4, #1 ldr r2, _08081EF4 @ =0x00006004 adds r1, r1, r2 adds r1, r1, r0 ldrh r0, [r1] lsls r0, r0, #3 adds r3, r3, r0 ldr r2, _08081EF8 @ =gUnk_02019EE0 cmp r5, #2 bne _08081EB4 ldr r2, _08081EFC @ =gUnk_02002F00 _08081EB4: movs r0, #0x3f ands r0, r6 lsls r0, r0, #1 movs r1, #0xfc lsls r1, r1, #4 ands r1, r6 lsls r1, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 adds r2, r2, r0 adds r0, r2, #0 adds r1, r3, #0 bl sub_08081F00 cmp r0, #0 bne _08081EE8 adds r0, r4, #0 adds r1, r6, #0 adds r2, r5, #0 bl sub_0807B314 adds r0, r7, #0 adds r1, r6, #0 adds r2, r5, #0 bl sub_0800015E _08081EE8: pop {r4, r5, r6, r7, pc} .align 2, 0 _08081EEC: .4byte 0x00003FFF _08081EF0: .4byte 0x00007004 _08081EF4: .4byte 0x00006004 _08081EF8: .4byte gUnk_02019EE0 _08081EFC: .4byte gUnk_02002F00 thumb_func_start sub_08081F00 sub_08081F00: @ 0x08081F00 push {lr} adds r2, r0, #0 adds r3, r1, #0 ldr r1, [r2] ldr r0, [r3] cmp r1, r0 bne _08081F20 movs r1, #0x80 lsls r1, r1, #1 adds r0, r2, r1 ldr r1, [r0] ldr r0, [r3, #4] cmp r1, r0 bne _08081F20 movs r0, #1 b _08081F22 _08081F20: movs r0, #0 _08081F22: pop {pc} thumb_func_start sub_08081F24 sub_08081F24: @ 0x08081F24 push {r4, lr} adds r4, r0, #0 movs r1, #0x11 movs r2, #0x40 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _08081F50 ldrb r1, [r2, #0x11] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r2, #0x11] ldrh r0, [r2, #0x2e] adds r0, #7 strh r0, [r2, #0x2e] ldrh r0, [r2, #0x32] adds r0, #5 strh r0, [r2, #0x32] _08081F50: adds r0, r4, #0 movs r1, #0x11 movs r2, #0x40 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _08081F7A ldrb r1, [r2, #0x11] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r2, #0x11] ldrh r0, [r2, #0x2e] subs r0, #7 strh r0, [r2, #0x2e] ldrh r0, [r2, #0x32] adds r0, #5 strh r0, [r2, #0x32] _08081F7A: pop {r4, pc} thumb_func_start sub_08081F7C sub_08081F7C: @ 0x08081F7C push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r7, r1, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08081FF4 subs r1, r0, #1 strb r1, [r4, #0xe] lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #6 bls _08081FA4 ldr r0, [r4, #0x54] cmp r0, #0 beq _08081FF4 adds r1, r0, #0 adds r1, #0x63 movs r0, #0xfc strb r0, [r1] b _08081FF4 _08081FA4: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #6 bne _08081FF4 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 adds r6, r4, #0 adds r6, #0x74 ldrh r1, [r6] adds r5, r4, #0 adds r5, #0x38 ldrb r2, [r5] adds r0, r7, #0 bl sub_0807B314 adds r0, r4, #0 bl sub_08081F24 movs r0, #0x86 lsls r0, r0, #1 bl sub_080A3268 adds r2, r4, #0 adds r2, #0x70 ldrh r1, [r2] ldr r0, _08081FF0 @ =0x0000FFFF cmp r1, r0 beq _08081FEC adds r0, r1, #0 ldrh r1, [r6] ldrb r2, [r5] bl sub_0800015E _08081FEC: movs r0, #0 b _08081FF6 .align 2, 0 _08081FF0: .4byte 0x0000FFFF _08081FF4: movs r0, #1 _08081FF6: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08081FF8 sub_08081FF8: @ 0x08081FF8 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r1, [r4, #0x54] ldr r0, _08082038 @ =gUnk_03001160 cmp r1, r0 bne _08082036 adds r0, r1, #0 adds r1, r4, #0 bl sub_080045C4 adds r6, r0, #0 ldr r0, [r4, #0x54] movs r1, #0x80 lsls r1, r1, #2 adds r2, r6, #0 bl sub_080044AE movs r5, #0 ldr r4, _0808203C @ =gUnk_03004040 _0808201E: ldr r0, [r4] cmp r0, #0 beq _0808202E movs r1, #0x80 lsls r1, r1, #2 adds r2, r6, #0 bl sub_080044AE _0808202E: adds r4, #4 adds r5, #1 cmp r5, #2 bls _0808201E _08082036: pop {r4, r5, r6, pc} .align 2, 0 _08082038: .4byte gUnk_03001160 _0808203C: .4byte gUnk_03004040 thumb_func_start sub_08082040 sub_08082040: @ 0x08082040 push {lr} ldr r2, _08082054 @ =gUnk_0811EE5C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08082054: .4byte gUnk_0811EE5C thumb_func_start sub_08082058 sub_08082058: @ 0x08082058 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x11] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r4, #0x11] ldrb r1, [r4, #0x10] movs r0, #0x20 orrs r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 movs r2, #3 bl sub_080AE008 adds r0, r4, #0 bl sub_08082098 pop {r4, pc} .align 2, 0 thumb_func_start sub_08082098 sub_08082098: @ 0x08082098 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldr r0, _08082100 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _080820AC bl sub_0805E780 _080820AC: ldr r5, _08082104 @ =gUnk_03001160 adds r0, r4, #0 bl sub_08079BD8 ldrb r1, [r4, #0x1b] movs r0, #0x3f ands r0, r1 movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x1b] ldrb r1, [r5, #0x1a] lsls r1, r1, #0x1c lsrs r1, r1, #0x1c ldrb r2, [r4, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x1a] ldrb r1, [r5, #0x14] movs r0, #0xe ands r0, r1 strb r0, [r4, #0x14] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] ldrb r0, [r5, #0x14] lsrs r3, r0, #1 adds r7, r3, #0 ldrb r0, [r5, #0xc] cmp r0, #0x14 beq _08082122 cmp r0, #0x14 bgt _08082108 cmp r0, #0xa beq _0808212A b _0808212E .align 2, 0 _08082100: .4byte gUnk_03003F80 _08082104: .4byte gUnk_03001160 _08082108: cmp r0, #0x16 beq _08082112 cmp r0, #0x18 beq _08082126 b _0808212E _08082112: ldrb r0, [r4, #0x14] movs r3, #0xd adds r5, r4, #0 adds r5, #0x58 cmp r0, #2 bne _080821F2 movs r3, #0xe b _080821F2 _08082122: movs r3, #0xc b _080821EE _08082126: adds r3, #0xf b _080821EE _0808212A: movs r3, #0x13 b _080821EE _0808212E: adds r0, r5, #0 adds r0, #0x42 ldrb r0, [r0] cmp r0, #0 beq _0808213E adds r3, r7, #0 adds r3, #8 b _080821EE _0808213E: ldr r2, _0808215C @ =gUnk_03003F80 ldrb r1, [r2, #2] adds r6, r1, #0 cmp r6, #0 beq _08082160 movs r0, #0x10 ands r0, r1 adds r5, r4, #0 adds r5, #0x58 cmp r0, #0 bne _080821F2 adds r3, r7, #0 adds r3, #0x19 b _080821F2 .align 2, 0 _0808215C: .4byte gUnk_03003F80 _08082160: adds r0, r2, #0 adds r0, #0xa8 ldrb r0, [r0] cmp r0, #1 beq _0808216E cmp r0, #0x19 bne _080821C8 _0808216E: adds r3, r7, #4 adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] adds r5, r0, #0 cmp r1, r3 beq _08082180 str r6, [r4, #0x34] b _080821BA _08082180: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r7, #0xff lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _080821F2 adds r2, r4, #0 adds r2, #0x63 movs r1, #0 ldrsb r1, [r2, r1] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 beq _080821C0 cmp r1, r0 bgt _080821AC subs r0, #1 cmp r1, r0 beq _080821B4 b _080821F2 _080821AC: cmp r1, #0 bne _080821F2 movs r0, #0xfe b _080821B8 _080821B4: ldrb r0, [r2] orrs r0, r7 _080821B8: strb r0, [r2] _080821BA: movs r0, #6 strb r0, [r4, #0xe] b _080821F2 _080821C0: strb r6, [r2] movs r0, #3 strb r0, [r4, #0xe] b _080821F2 _080821C8: adds r0, r2, #0 adds r0, #0x26 ldrb r2, [r0] adds r1, r2, #0 cmp r1, #0 beq _080821E8 movs r0, #0x80 ands r0, r2 adds r3, r7, #0 adds r3, #0x14 adds r5, r4, #0 adds r5, #0x58 cmp r0, #0 beq _080821F2 movs r3, #0x18 b _080821F2 _080821E8: adds r0, r4, #0 adds r0, #0x63 strb r1, [r0] _080821EE: adds r5, r4, #0 adds r5, #0x58 _080821F2: ldrb r0, [r5] cmp r0, r3 beq _08082202 adds r0, r4, #0 adds r1, r3, #0 bl sub_080042AC b _08082208 _08082202: adds r0, r4, #0 bl sub_080042B8 _08082208: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0808220C sub_0808220C: @ 0x0808220C push {r4, lr} adds r4, r0, #0 ldr r1, _08082228 @ =gUnk_0811F090 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r4, #0x41 movs r0, #0 strb r0, [r4] pop {r4, pc} .align 2, 0 _08082228: .4byte gUnk_0811F090 thumb_func_start sub_0808222C sub_0808222C: @ 0x0808222C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 ldrb r0, [r4, #0xb] cmp r0, #1 bne _0808224C adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _0808224C bl sub_0805E780 _0808224C: movs r2, #1 strb r2, [r4, #0xc] ldr r0, _08082308 @ =gUnk_080FD338 str r0, [r4, #0x48] movs r1, #0 movs r0, #0x80 strh r0, [r4, #0x24] ldrh r0, [r4, #0x32] adds r0, #3 strh r0, [r4, #0x32] strb r1, [r4, #0x16] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 adds r0, #0x45 strb r2, [r0] adds r1, r4, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] adds r1, #3 movs r0, #0x6e strb r0, [r1] subs r1, #4 movs r0, #0x84 strb r0, [r1] movs r0, #0x12 strb r0, [r4, #0x1c] adds r5, r4, #0 adds r5, #0x38 ldrb r0, [r5] cmp r0, #0 bne _08082298 adds r0, r4, #0 bl sub_08016A30 _08082298: movs r1, #0x2e ldrsh r0, [r4, r1] ldr r7, _0808230C @ =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, [r4, r2] ldrh r2, [r7, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r6 lsls r1, r1, #6 orrs r0, r1 ldrb r1, [r5] bl sub_080001DA adds r1, r4, #0 adds r1, #0x70 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x80 lsls r1, r1, #7 mov r8, r1 cmp r0, r8 bne _080822D6 bl sub_0805E780 _080822D6: movs r2, #0x2e ldrsh r1, [r4, r2] ldrh r0, [r7, #6] subs r1, r1, r0 asrs r1, r1, #4 ands r1, r6 movs r2, #0x32 ldrsh r0, [r4, r2] ldrh r2, [r7, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r6 lsls r0, r0, #6 orrs r1, r0 ldrb r2, [r5] mov r0, r8 bl sub_0800015E adds r0, r4, #0 movs r1, #5 bl sub_08004260 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08082308: .4byte gUnk_080FD338 _0808230C: .4byte gUnk_03000BF0 thumb_func_start sub_08082310 sub_08082310: @ 0x08082310 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r0, #0x41 ldrb r0, [r0] movs r6, #0x7f adds r1, r6, #0 ands r1, r0 cmp r1, #0x13 beq _08082342 cmp r1, #0x1d beq _0808234C adds r0, r5, #0 bl sub_080002A0 adds r4, r0, #0 movs r0, #0x80 lsls r0, r0, #7 cmp r4, r0 bne _08082338 b _080824F0 _08082338: adds r0, #1 cmp r4, r0 bhs _08082340 b _08082484 _08082340: b _080823C4 _08082342: movs r1, #0 movs r0, #3 strb r0, [r5, #0xc] strb r1, [r5, #0xd] b _080824F6 _0808234C: adds r0, r5, #0 adds r0, #0x70 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _080823C0 @ =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 adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E movs r1, #0 movs r0, #5 strb r0, [r5, #0xc] movs r0, #0xa8 lsls r0, r0, #0xa str r0, [r5, #0x20] adds r0, r5, #0 adds r0, #0x63 strb r1, [r0] ldrb r1, [r5, #0x18] movs r0, #0x31 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x10 orrs r0, r1 strb r0, [r5, #0x18] adds r2, r5, #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, [r5, #0x10] adds r0, r6, #0 ands r0, r1 strb r0, [r5, #0x10] adds r0, r5, #0 bl sub_08082824 b _080824F6 .align 2, 0 _080823C0: .4byte gUnk_03000BF0 _080823C4: ldr r0, _080823D4 @ =0x00004004 cmp r4, r0 bls _080823D8 adds r0, #0x63 cmp r4, r0 beq _08082448 b _08082484 .align 2, 0 _080823D4: .4byte 0x00004004 _080823D8: ldr r1, _08082438 @ =0xFFFFBFFF adds r0, r4, r1 lsls r0, r0, #3 strb r0, [r5, #0x15] movs r0, #0x20 strb r0, [r5, #0xe] movs r0, #4 strb r0, [r5, #0xc] ldr r0, _0808243C @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _08082400 ldrh r0, [r5, #0x24] lsls r0, r0, #0x10 asrs r0, r0, #0x11 strh r0, [r5, #0x24] movs r0, #0x40 strb r0, [r5, #0xe] _08082400: adds r0, r5, #0 adds r0, #0x70 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _08082440 @ =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 ldr r0, _08082444 @ =0x0000010F bl sub_08004488 b _080824F6 .align 2, 0 _08082438: .4byte 0xFFFFBFFF _0808243C: .4byte gUnk_03003F80 _08082440: .4byte gUnk_03000BF0 _08082444: .4byte 0x0000010F _08082448: adds r0, r5, #0 adds r0, #0x70 ldrh r0, [r0] movs r7, #0x2e ldrsh r1, [r5, r7] ldr r3, _08082480 @ =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 bl sub_0805E780 b _080824F6 .align 2, 0 _08082480: .4byte gUnk_03000BF0 _08082484: adds r0, r5, #0 bl sub_080002B8 cmp r0, #0xd bne _0808249A adds r0, r5, #0 movs r1, #0 movs r2, #0 bl sub_080A29AC b _080824D8 _0808249A: ldr r0, _080824E4 @ =0x00004005 cmp r4, r0 bne _080824D8 ldr r0, _080824E8 @ =gUnk_03003F80 adds r0, #0xab movs r1, #4 strb r1, [r0] adds r0, r5, #0 adds r0, #0x70 ldrh r0, [r0] movs r7, #0x2e ldrsh r1, [r5, r7] ldr r3, _080824EC @ =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 _080824D8: adds r0, r5, #0 movs r1, #0 bl sub_08082850 b _080824F6 .align 2, 0 _080824E4: .4byte 0x00004005 _080824E8: .4byte gUnk_03003F80 _080824EC: .4byte gUnk_03000BF0 _080824F0: adds r0, r5, #0 bl sub_08078930 _080824F6: pop {r4, r5, r6, r7, pc} thumb_func_start sub_080824F8 sub_080824F8: @ 0x080824F8 push {lr} ldr r2, _0808250C @ =gUnk_0811F0A8 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808250C: .4byte gUnk_0811F0A8 thumb_func_start sub_08082510 sub_08082510: @ 0x08082510 push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r1, [r5, #0x10] movs r0, #0x80 movs r2, #0 orrs r0, r1 strb r0, [r5, #0x10] ldr r0, _08082578 @ =gUnk_080FD340 str r0, [r5, #0x48] adds r1, r5, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] adds r1, #3 movs r0, #1 strb r0, [r1] ldr r0, _0808257C @ =gUnk_03001160 adds r0, #0x3b ldrb r0, [r0] subs r1, #4 strb r0, [r1] adds r0, r5, #0 adds r0, #0x63 strb r2, [r0] adds r0, #0xd ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _08082580 @ =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, #0xd] adds r0, #1 strb r0, [r5, #0xd] pop {r4, r5, r6, pc} .align 2, 0 _08082578: .4byte gUnk_080FD340 _0808257C: .4byte gUnk_03001160 _08082580: .4byte gUnk_03000BF0 thumb_func_start nullsub_511 nullsub_511: @ 0x08082584 bx lr .align 2, 0 thumb_func_start sub_08082588 sub_08082588: @ 0x08082588 adds r0, #0x29 ldrb r2, [r0] movs r1, #0x39 rsbs r1, r1, #0 ands r1, r2 movs r2, #0x18 orrs r1, r2 strb r1, [r0] bx lr .align 2, 0 thumb_func_start sub_0808259C sub_0808259C: @ 0x0808259C push {r4, lr} adds r4, r0, #0 bl sub_080043E8 cmp r0, #2 beq _080825B8 cmp r0, #2 bhi _080825B2 cmp r0, #1 beq _080825BE b _080825D0 _080825B2: cmp r0, #3 beq _080825C4 b _080825D0 _080825B8: adds r0, r4, #0 movs r1, #0xb b _080825C8 _080825BE: adds r0, r4, #0 movs r1, #0 b _080825C8 _080825C4: adds r0, r4, #0 movs r1, #0xc _080825C8: movs r2, #0 bl sub_080A29AC b _080825E0 _080825D0: ldr r1, _080825DC @ =gUnk_03001160 adds r0, r4, #0 bl sub_08082850 b _080825E4 .align 2, 0 _080825DC: .4byte gUnk_03001160 _080825E0: bl sub_0805E780 _080825E4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080825E8 sub_080825E8: @ 0x080825E8 push {lr} bl sub_0805E780 pop {pc} thumb_func_start sub_080825F0 sub_080825F0: @ 0x080825F0 push {lr} adds r1, r0, #0 ldr r0, _08082604 @ =gUnk_03003F80 ldrb r0, [r0, #5] cmp r0, #0 bne _08082602 adds r0, r1, #0 bl sub_08082608 _08082602: pop {pc} .align 2, 0 _08082604: .4byte gUnk_03003F80 thumb_func_start sub_08082608 sub_08082608: @ 0x08082608 movs r2, #0 movs r1, #1 strb r1, [r0, #0xc] strb r2, [r0, #0xd] bx lr .align 2, 0 thumb_func_start sub_08082614 sub_08082614: @ 0x08082614 push {r4, r5, r6, r7, lr} adds r5, r0, #0 bl sub_0800445C ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff beq _08082638 adds r0, r5, #0 bl sub_0806F69C adds r0, r5, #0 bl sub_08016A6C b _080826DC _08082638: adds r0, r5, #0 bl sub_0800442E cmp r0, #0 bne _080826DC movs r0, #1 strb r0, [r5, #0xc] ldr r0, _080826A4 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _08082658 ldrh r0, [r5, #0x24] lsls r0, r0, #1 strh r0, [r5, #0x24] _08082658: movs r1, #0x2e ldrsh r0, [r5, r1] ldr r2, _080826A8 @ =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 adds r1, r5, #0 adds r1, #0x70 strh r0, [r1] adds r0, r5, #0 bl sub_080002A0 adds r6, r4, #0 cmp r0, #0x72 bhi _080826AC cmp r0, #0x71 blo _080826AC adds r0, r5, #0 movs r1, #0 bl sub_08082850 b _080826DC .align 2, 0 _080826A4: .4byte gUnk_03003F80 _080826A8: .4byte gUnk_03000BF0 _080826AC: movs r0, #0x80 lsls r0, r0, #7 movs r7, #0x2e ldrsh r1, [r5, r7] ldr r3, _080826E0 @ =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 adds r0, r5, #0 bl sub_08078930 _080826DC: pop {r4, r5, r6, r7, pc} .align 2, 0 _080826E0: .4byte gUnk_03000BF0 thumb_func_start sub_080826E4 sub_080826E4: @ 0x080826E4 push {lr} ldr r2, _080826F8 @ =gUnk_0811F0C4 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080826F8: .4byte gUnk_0811F0C4 thumb_func_start sub_080826FC sub_080826FC: @ 0x080826FC movs r2, #0 movs r1, #1 strb r1, [r0, #0xd] movs r1, #0x30 strb r1, [r0, #0x1d] strb r2, [r0, #0xe] bx lr .align 2, 0 thumb_func_start sub_0808270C sub_0808270C: @ 0x0808270C push {r4, r5, r6, lr} adds r5, r0, #0 ldr r0, _08082768 @ =gUnk_03003F80 ldrb r1, [r0, #0x1c] movs r0, #0xf ands r0, r1 cmp r0, #1 bne _0808272A adds r0, r5, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0x13 beq _08082770 _0808272A: adds r1, r5, #0 adds r1, #0x62 movs r0, #0 strb r0, [r1] movs r0, #1 strb r0, [r5, #0xc] movs r0, #0x80 lsls r0, r0, #7 movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _0808276C @ =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 b _08082776 .align 2, 0 _08082768: .4byte gUnk_03003F80 _0808276C: .4byte gUnk_03000BF0 _08082770: adds r0, r5, #0 bl sub_0806F4E8 _08082776: pop {r4, r5, r6, pc} thumb_func_start sub_08082778 sub_08082778: @ 0x08082778 push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r1, [r5, #0xe] cmp r1, #0 bne _080827C4 movs r0, #1 strb r0, [r5, #0xe] adds r0, r5, #0 adds r0, #0x62 strb r1, [r0] adds r1, r5, #0 adds r1, #0x63 movs r0, #0xfe strb r0, [r1] adds r0, r5, #0 adds r0, #0x70 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _080827E8 @ =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 _080827C4: ldr r0, _080827EC @ =gUnk_03003F80 ldrb r1, [r0, #0x1c] movs r0, #0xf ands r0, r1 cmp r0, #1 bne _080827DE adds r0, r5, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0x13 beq _080827F0 _080827DE: adds r0, r5, #0 movs r1, #0 bl sub_08082850 b _080827F6 .align 2, 0 _080827E8: .4byte gUnk_03000BF0 _080827EC: .4byte gUnk_03003F80 _080827F0: adds r0, r5, #0 bl sub_0806F3E4 _080827F6: pop {r4, r5, r6, pc} thumb_func_start sub_080827F8 sub_080827F8: @ 0x080827F8 push {lr} adds r1, r0, #0 ldr r0, _08082810 @ =gUnk_03003F80 ldrb r0, [r0, #0x1c] cmp r0, #0 bne _0808280C adds r0, r1, #0 movs r1, #0 bl sub_08082850 _0808280C: pop {pc} .align 2, 0 _08082810: .4byte gUnk_03003F80 thumb_func_start nullsub_512 nullsub_512: @ 0x08082814 bx lr .align 2, 0 thumb_func_start sub_08082818 sub_08082818: @ 0x08082818 push {lr} movs r1, #0 bl sub_08082850 pop {pc} .align 2, 0 thumb_func_start sub_08082824 sub_08082824: @ 0x08082824 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x20] cmp r0, #0 bge _08082836 ldrb r0, [r4, #0x18] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x18] _08082836: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _0808284C adds r0, r4, #0 movs r1, #0 bl sub_08082850 _0808284C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08082850 sub_08082850: @ 0x08082850 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 ldrb r1, [r4, #0xa] adds r0, #0x7d ldrb r2, [r0] ldrb r3, [r4, #0xb] adds r0, r4, #0 bl sub_0808288C adds r2, r0, #0 adds r0, r4, #0 movs r1, #5 bl sub_080A29AC cmp r0, #0 beq _08082874 str r5, [r0, #0x50] _08082874: ldrb r0, [r4, #0xb] cmp r0, #1 bne _08082884 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 _08082884: bl sub_0805E780 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0808288C sub_0808288C: @ 0x0808288C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r7, r0, #0 adds r4, r1, #0 adds r5, r2, #0 mov r8, r3 movs r6, #0 cmp r4, #0 beq _080828A6 cmp r4, #0xff bne _080828AA b _080828D6 _080828A6: movs r6, #0x80 b _080828D6 _080828AA: adds r0, r7, #0 movs r1, #0 adds r2, r4, #0 adds r3, r5, #0 bl sub_080A2988 adds r2, r0, #0 cmp r2, #0 beq _080828D6 mov r0, r8 cmp r0, #2 bne _080828D4 movs r0, #5 strb r0, [r2, #0xe] adds r0, r7, #0 adds r0, #0x86 ldrh r1, [r0] adds r0, r2, #0 adds r0, #0x86 strh r1, [r0] b _080828D6 _080828D4: strb r6, [r2, #0xe] _080828D6: adds r0, r6, #0 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080828E0 sub_080828E0: @ 0x080828E0 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _080828F8 ldr r0, _080828F4 @ =gUnk_0811F15C b _08082900 .align 2, 0 _080828F4: .4byte gUnk_0811F15C _080828F8: ldrb r0, [r2, #0xa] cmp r0, #0 bne _08082914 ldr r0, _08082910 @ =gUnk_0811F14C _08082900: ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 b _08082924 .align 2, 0 _08082910: .4byte gUnk_0811F14C _08082914: ldr r0, _08082928 @ =gUnk_0811F154 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 _08082924: pop {pc} .align 2, 0 _08082928: .4byte gUnk_0811F154 thumb_func_start sub_0808292C sub_0808292C: @ 0x0808292C push {r4, r5, lr} adds r4, r0, #0 ldrb r1, [r4, #0x11] movs r3, #0x10 rsbs r3, r3, #0 adds r0, r3, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r4, #0x11] ldr r5, _080829C8 @ =gUnk_03001160 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, 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, r4 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] ldrb r0, [r5, #0x1a] lsls r0, r0, #0x1c lsrs r0, r0, #0x1c ldrb r1, [r4, #0x1a] ands r3, r1 orrs r3, r0 strb r3, [r4, #0x1a] adds r0, r5, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r5, #0x14] cmp r0, #2 bne _080829A4 ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x18] _080829A4: adds r0, r4, #0 movs r1, #1 movs r2, #3 bl sub_080AE008 ldrb r0, [r4, #0xa] cmp r0, #0 bne _080829CC movs r0, #7 strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #7 bl sub_080042AC movs r0, #0xf3 bl sub_080A3268 b _080829E2 .align 2, 0 _080829C8: .4byte gUnk_03001160 _080829CC: movs r0, #0 strb r0, [r4, #0xe] movs r0, #0xa strb r0, [r4, #0xf] ldrh r0, [r4, #0x32] subs r0, #0xe strh r0, [r4, #0x32] adds r0, r4, #0 movs r1, #0x14 bl sub_080042AC _080829E2: pop {r4, r5, pc} thumb_func_start sub_080829E4 sub_080829E4: @ 0x080829E4 push {r4, r5, lr} adds r5, r0, #0 ldr r0, _08082A10 @ =gUnk_03001160 ldrb r1, [r0, #0x1a] lsls r1, r1, #0x1c lsrs r1, r1, #0x1c ldrb r2, [r5, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r5, #0x1a] ldr r3, _08082A14 @ =gUnk_02000050 ldrb r0, [r3] movs r1, #0x7f ands r1, r0 cmp r1, #0 bne _08082A18 adds r0, r5, #0 bl sub_0805E7BC b _08082AB4 .align 2, 0 _08082A10: .4byte gUnk_03001160 _08082A14: .4byte gUnk_02000050 _08082A18: cmp r1, #5 beq _08082A9C ldrb r1, [r3, #1] adds r0, r1, #0 cmp r0, #0xa beq _08082A30 cmp r0, #0 beq _08082A30 movs r0, #0xf ands r0, r1 cmp r0, #9 bls _08082A4A _08082A30: adds r1, r5, #0 adds r1, #0x58 ldrb r2, [r5, #0xf] movs r0, #3 ldrb r1, [r1] orrs r2, r0 cmp r1, r2 beq _08082A9C adds r0, r5, #0 adds r1, r2, #0 bl sub_080042AC b _08082AB4 _08082A4A: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08082A78 adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x90 ands r0, r1 cmp r0, #0 beq _08082A9C bl sub_08000E50 ldr r4, _08082A74 @ =gUnk_0811F16C movs r1, #9 bl __modsi3 adds r0, r0, r4 ldrb r0, [r0] strb r0, [r5, #0xf] b _08082A8C .align 2, 0 _08082A74: .4byte gUnk_0811F16C _08082A78: adds r2, r5, #0 adds r2, #0x58 ldr r1, _08082A98 @ =gUnk_0811F16C ldrb r0, [r3, #1] adds r0, r0, r1 ldrb r1, [r0] ldrb r0, [r2] cmp r0, r1 beq _08082A9C strb r1, [r5, #0xf] _08082A8C: ldrb r1, [r5, #0xf] adds r0, r5, #0 bl sub_080042AC b _08082AB4 .align 2, 0 _08082A98: .4byte gUnk_0811F16C _08082A9C: adds r0, r5, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #7 bls _08082AAA movs r0, #1 b _08082AAC _08082AAA: movs r0, #0 _08082AAC: strb r0, [r5, #0xe] adds r0, r5, #0 bl sub_080042B8 _08082AB4: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08082AB8 sub_08082AB8: @ 0x08082AB8 push {r4, r5, lr} adds r4, r0, #0 ldr r0, _08082B10 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r5, #0x80 ands r0, r5 cmp r0, #0 beq _08082ACC bl sub_0805E780 _08082ACC: adds r0, r4, #0 bl sub_080042B8 ldrb r0, [r4, #0xd] cmp r0, #0 bne _08082B5C ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _08082B98 ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] movs r0, #0xa strb r0, [r4, #0xf] ldrb r0, [r4, #0xe] subs r5, r0, #1 adds r0, r4, #0 movs r1, #0x79 adds r2, r5, #0 movs r3, #0 bl sub_080A2988 adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 beq _08082B18 cmp r5, #0 bne _08082B14 str r1, [r4, #0x50] b _08082B18 .align 2, 0 _08082B10: .4byte gUnk_03003F80 _08082B14: ldr r0, [r4, #0x50] str r0, [r1, #0x50] _08082B18: ldrb r0, [r4, #0xe] cmp r0, #6 bne _08082B36 movs r0, #3 strb r0, [r4, #0xd] movs r0, #0x3c strb r0, [r4, #0xe] ldr r1, [r4, #0x50] movs r0, #1 strb r0, [r1, #0xb] adds r0, r4, #0 movs r1, #0x1c bl sub_080042AC b _08082B98 _08082B36: ldr r1, _08082B58 @ =gUnk_0811F178 ldrb r0, [r4, #0xe] subs r0, #1 lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl sub_080042AC ldrb r0, [r4, #0xe] cmp r0, #2 bls _08082B98 ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x18] b _08082B98 .align 2, 0 _08082B58: .4byte gUnk_0811F178 _08082B5C: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] adds r0, r5, #0 ands r0, r1 cmp r0, #0 beq _08082B98 bl sub_08000E50 movs r1, #3 ands r0, r1 strb r0, [r4, #0xe] cmp r0, #0 beq _08082B98 bl sub_08000E50 movs r1, #1 ands r1, r0 lsls r1, r1, #6 ldrb r2, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] ldrb r1, [r4, #0xe] adds r1, #0x1b adds r0, r4, #0 bl sub_080042AC _08082B98: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08082B9C sub_08082B9C: @ 0x08082B9C push {r4, r5, r6, lr} adds r6, r0, #0 ldrb r1, [r6, #0x11] movs r2, #0x10 rsbs r2, r2, #0 adds r0, r2, #0 ands r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r6, #0x11] ldr r5, _08082C34 @ =gUnk_03001160 ldrb r0, [r5, #0x1a] lsls r0, r0, #0x1c lsrs r0, r0, #0x1c ldrb r1, [r6, #0x1a] ands r2, r1 orrs r2, r0 strb r2, [r6, #0x1a] adds r0, r5, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r6, #0 adds r0, #0x38 movs r4, #0 strb r1, [r0] adds r2, r6, #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, [r6, #0x18] movs r0, #0x31 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x10 orrs r0, r1 strb r0, [r6, #0x18] movs r0, #1 strb r0, [r6, #0xc] adds r0, r6, #0 movs r1, #1 movs r2, #3 bl sub_080AE008 adds r0, r6, #0 movs r1, #0xc bl sub_080042AC adds r0, r6, #0 adds r0, #0x82 strh r4, [r0] adds r4, r6, #0 adds r4, #0x84 ldr r1, [r4] adds r0, r6, #0 bl sub_0807DF74 ldr r1, [r4] adds r0, r6, #0 bl sub_08082D20 ldrb r0, [r5, #0x14] cmp r0, #2 bne _08082C2C ldrb r0, [r6, #0x18] movs r1, #0x40 orrs r0, r1 strb r0, [r6, #0x18] _08082C2C: adds r0, r6, #0 bl sub_08082C5C pop {r4, r5, r6, pc} .align 2, 0 _08082C34: .4byte gUnk_03001160 thumb_func_start sub_08082C38 sub_08082C38: @ 0x08082C38 push {r4, r5, lr} adds r5, r0, #0 adds r4, r5, #0 adds r4, #0x84 ldr r1, [r4] bl sub_0807DF74 ldr r1, [r4] adds r0, r5, #0 bl sub_08082D20 ldrb r0, [r5, #0xc] cmp r0, #1 bhi _08082C5A adds r0, r5, #0 bl sub_08082C5C _08082C5A: pop {r4, r5, pc} thumb_func_start sub_08082C5C sub_08082C5C: @ 0x08082C5C push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xd] cmp r0, #4 bhi _08082D0C lsls r0, r0, #2 ldr r1, _08082C70 @ =_08082C74 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08082C70: .4byte _08082C74 _08082C74: @ jump table .4byte _08082C88 @ case 0 .4byte _08082C9C @ case 1 .4byte _08082CB0 @ case 2 .4byte _08082CE4 @ case 3 .4byte _08082CF8 @ case 4 _08082C88: adds r0, r5, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0x17 beq _08082D0C adds r0, r5, #0 movs r1, #0x17 bl sub_080042AC b _08082D1C _08082C9C: adds r0, r5, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0x18 beq _08082D0C adds r0, r5, #0 movs r1, #0x18 bl sub_080042AC b _08082D1C _08082CB0: adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08082D0C bl sub_08000E50 adds r4, r0, #0 bl sub_08000E50 adds r1, r0, #0 ldr r2, _08082CE0 @ =gUnk_0811F18C movs r0, #3 ands r4, r0 adds r4, r4, r2 ands r1, r0 ldrb r4, [r4] adds r1, r1, r4 adds r0, r5, #0 bl sub_080042AC b _08082D1C .align 2, 0 _08082CE0: .4byte gUnk_0811F18C _08082CE4: adds r0, r5, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0x13 beq _08082D0C adds r0, r5, #0 movs r1, #0x13 bl sub_080042AC b _08082D1C _08082CF8: adds r0, r5, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0x1a beq _08082D0C adds r0, r5, #0 movs r1, #0x1a bl sub_080042AC b _08082D1C _08082D0C: movs r1, #0x80 lsls r1, r1, #6 adds r0, r5, #0 bl sub_08003FC4 adds r0, r5, #0 bl sub_080042B8 _08082D1C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08082D20 sub_08082D20: @ 0x08082D20 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r3, r1, #0 ldr r0, [r3, #8] cmp r0, #0 beq _08082E10 movs r6, #0 movs r5, #1 movs r0, #4 rsbs r0, r0, #0 mov ip, r0 _08082D36: ldr r1, [r3, #8] mvns r0, r1 adds r2, r0, #1 ands r2, r1 eors r1, r2 str r1, [r3, #8] cmp r2, #0x80 beq _08082DB4 cmp r2, #0x80 bhi _08082D66 cmp r2, #4 beq _08082D9E cmp r2, #4 bhi _08082D5C cmp r2, #1 beq _08082D96 cmp r2, #2 beq _08082D9A b _08082E0A _08082D5C: cmp r2, #8 beq _08082DA4 cmp r2, #0x40 beq _08082DDA b _08082E0A _08082D66: movs r0, #0x80 lsls r0, r0, #0xd cmp r2, r0 beq _08082DDE cmp r2, r0 bhi _08082D84 movs r0, #0x80 lsls r0, r0, #1 cmp r2, r0 beq _08082DAA movs r0, #0x80 lsls r0, r0, #0xa cmp r2, r0 beq _08082DC0 b _08082E0A _08082D84: movs r0, #0x80 lsls r0, r0, #0xe cmp r2, r0 beq _08082DE6 movs r0, #0x80 lsls r0, r0, #0xf cmp r2, r0 beq _08082DF2 b _08082E0A _08082D96: strb r6, [r4, #0xd] b _08082E0A _08082D9A: strb r5, [r4, #0xd] b _08082E0A _08082D9E: movs r0, #2 strb r0, [r4, #0xd] b _08082E0A _08082DA4: movs r0, #3 strb r0, [r4, #0xd] b _08082E0A _08082DAA: ldrb r0, [r4, #0x18] mov r1, ip ands r0, r1 strb r0, [r4, #0x18] b _08082E0A _08082DB4: ldrb r0, [r4, #0x18] mov r7, ip ands r0, r7 orrs r0, r5 strb r0, [r4, #0x18] b _08082E0A _08082DC0: ldrb r0, [r4, #0x18] lsls r1, r0, #0x19 lsrs r1, r1, #0x1f eors r1, r5 ands r1, r5 lsls r1, r1, #6 movs r7, #0x41 rsbs r7, r7, #0 adds r2, r7, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] b _08082E0A _08082DDA: bl sub_0805E780 _08082DDE: movs r0, #2 strb r0, [r4, #0xc] strb r6, [r4, #0xd] b _08082E10 _08082DE6: movs r0, #4 strb r0, [r4, #0xd] adds r1, r4, #0 adds r1, #0x62 strb r0, [r1] b _08082E0A _08082DF2: movs r0, #3 strb r0, [r4, #0xc] strb r6, [r4, #0xd] adds r1, r4, #0 adds r1, #0x62 movs r0, #4 strb r0, [r1] adds r0, r4, #0 movs r1, #0x1b bl sub_080042AC b _08082E10 _08082E0A: ldr r0, [r3, #8] cmp r0, #0 bne _08082D36 _08082E10: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08082E14 sub_08082E14: @ 0x08082E14 push {r4, lr} adds r4, r0, #0 adds r0, #0x84 ldr r1, [r0] adds r0, r4, #0 bl sub_0807DF74 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 ldrb r0, [r4, #0xd] cmp r0, #0 beq _08082E38 cmp r0, #1 beq _08082E44 b _08082E5E _08082E38: ldr r0, [r4, #0x20] cmp r0, #0 bge _08082E5E movs r0, #1 strb r0, [r4, #0xd] b _08082E5E _08082E44: movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #0xa rsbs r0, r0, #0 cmp r1, r0 ble _08082E5E ldr r0, _08082E68 @ =gUnk_02033280 ldr r1, [r0] movs r2, #2 orrs r1, r2 str r1, [r0] bl sub_0805E780 _08082E5E: adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 _08082E68: .4byte gUnk_02033280 thumb_func_start sub_08082E6C sub_08082E6C: @ 0x08082E6C 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 _08082E98 movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0xd] adds r0, r4, #0 adds r0, #0x62 strb r1, [r0] adds r0, r4, #0 movs r1, #0x17 bl sub_080042AC _08082E98: pop {r4, pc} .align 2, 0 thumb_func_start sub_08082E9C sub_08082E9C: @ 0x08082E9C push {lr} ldr r2, _08082EB0 @ =gUnk_0811F624 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08082EB0: .4byte gUnk_0811F624 thumb_func_start sub_08082EB4 sub_08082EB4: @ 0x08082EB4 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r0, _08082EE0 @ =gUnk_03000BF0 ldrb r1, [r0, #4] adds r6, r0, #0 cmp r1, #0x11 bne _08082EF6 adds r0, r4, #0 bl sub_080AE068 ldr r1, _08082EE4 @ =0x000001C1 adds r0, r4, #0 bl sub_080ADF80 cmp r0, #0 bne _08082EE8 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] b _0808308E .align 2, 0 _08082EE0: .4byte gUnk_03000BF0 _08082EE4: .4byte 0x000001C1 _08082EE8: ldrb r0, [r4, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 movs r0, #1 orrs r1, r0 strb r1, [r4, #0x18] _08082EF6: movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x20 strb r0, [r4, #0xe] movs r0, #0x80 strh r0, [r4, #0x24] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #0x88 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] movs r1, #0x2e ldrsh r0, [r4, r1] ldrh r1, [r6, #6] subs r0, r0, r1 asrs r5, r0, #4 movs r2, #0x3f ands r5, r2 movs r1, #0x32 ldrsh r0, [r4, r1] ldrh r1, [r6, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r5, r0 ldrb r1, [r4, #0xa] lsls r1, r1, #3 ldrh r0, [r4, #0x2e] adds r0, r1, r0 strh r0, [r4, #0x2e] ldrh r0, [r4, #0x32] adds r1, r1, r0 strh r1, [r4, #0x32] ldr r1, _08082F6C @ =gUnk_0811F64C ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [r4, #0x48] adds r0, r4, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r5, #0 bl sub_080002B0 str r0, [r4, #0x68] ldrb r0, [r4, #0xa] cmp r0, #1 beq _08082F7A cmp r0, #1 bgt _08082F70 cmp r0, #0 beq _08082F76 b _08082FF0 .align 2, 0 _08082F6C: .4byte gUnk_0811F64C _08082F70: cmp r0, #2 beq _08082F9A b _08082FF0 _08082F76: adds r0, r5, #0 b _08082FE8 _08082F7A: adds r0, r5, #0 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #1 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #0 adds r0, #0x40 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #0 adds r0, #0x41 b _08082FE8 _08082F9A: adds r0, r5, #0 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #1 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #2 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #0 adds r0, #0x40 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #0 adds r0, #0x41 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #0 adds r0, #0x42 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #0 adds r0, #0x80 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #0 adds r0, #0x81 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #0 adds r0, #0x82 _08082FE8: adds r1, r4, #0 bl sub_080832D8 b _08083088 _08082FF0: adds r0, r5, #0 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #1 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #2 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #3 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #0 adds r0, #0x40 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #0 adds r0, #0x41 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #0 adds r0, #0x42 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #0 adds r0, #0x43 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #0 adds r0, #0x80 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #0 adds r0, #0x81 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #0 adds r0, #0x82 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #0 adds r0, #0x83 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #0 adds r0, #0xc0 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #0 adds r0, #0xc1 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #0 adds r0, #0xc2 adds r1, r4, #0 bl sub_080832D8 adds r0, r5, #0 adds r0, #0xc3 adds r1, r4, #0 bl sub_080832D8 _08083088: ldr r0, _08083090 @ =0x0000010F bl sub_08004488 _0808308E: pop {r4, r5, r6, pc} .align 2, 0 _08083090: .4byte 0x0000010F thumb_func_start sub_08083094 sub_08083094: @ 0x08083094 push {r4, lr} adds r4, r0, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_0800445C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080830B4 adds r0, r4, #0 bl sub_080830B8 _080830B4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080830B8 sub_080830B8: @ 0x080830B8 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} mov sb, r0 ldrb r5, [r0, #0xa] lsls r4, r5, #3 movs r1, #0x2e ldrsh r0, [r0, r1] subs r0, r0, r4 ldr r3, _080830FC @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r0, r0, r1 asrs r7, r0, #4 movs r2, #0x3f ands r7, r2 mov r6, sb movs r1, #0x32 ldrsh r0, [r6, r1] subs r0, r0, r4 ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r7, r0 cmp r5, #1 beq _08083128 cmp r5, #1 bgt _08083100 cmp r5, #0 beq _08083106 b _080831EC .align 2, 0 _080830FC: .4byte gUnk_03000BF0 _08083100: cmp r5, #2 beq _08083160 b _080831EC _08083106: mov r0, sb bl sub_0800442E cmp r0, #0 beq _08083112 b _080832C0 _08083112: ldr r0, _08083124 @ =0x00000365 mov r1, sb adds r1, #0x38 ldrb r2, [r1] adds r1, r7, #0 bl sub_0807B7D8 b _080832BA .align 2, 0 _08083124: .4byte 0x00000365 _08083128: mov r2, sb ldr r0, [r2, #0x68] mov r4, sb adds r4, #0x38 ldrb r2, [r4] adds r1, r7, #0 bl sub_0807B7D8 ldr r0, _08083158 @ =0x0000036F adds r1, r7, #1 ldrb r2, [r4] bl sub_0807B7D8 movs r0, #0xdc lsls r0, r0, #2 adds r1, r7, #0 adds r1, #0x40 ldrb r2, [r4] bl sub_0807B7D8 ldr r0, _0808315C @ =0x00000371 adds r1, r7, #0 adds r1, #0x41 b _080831CA .align 2, 0 _08083158: .4byte 0x0000036F _0808315C: .4byte 0x00000371 _08083160: mov r6, sb ldr r0, [r6, #0x68] mov r4, sb adds r4, #0x38 ldrb r2, [r4] adds r1, r7, #0 bl sub_0807B7D8 ldr r0, _080831D4 @ =0x00000372 adds r1, r7, #1 ldrb r2, [r4] bl sub_0807B7D8 ldr r0, _080831D8 @ =0x0000036F adds r1, r7, #2 ldrb r2, [r4] bl sub_0807B7D8 movs r0, #0xdd lsls r0, r0, #2 adds r1, r7, #0 adds r1, #0x40 ldrb r2, [r4] bl sub_0807B7D8 ldr r0, _080831DC @ =0x00000376 adds r1, r7, #0 adds r1, #0x41 ldrb r2, [r4] bl sub_0807B7D8 ldr r0, _080831E0 @ =0x00000375 adds r1, r7, #0 adds r1, #0x42 ldrb r2, [r4] bl sub_0807B7D8 movs r0, #0xdc lsls r0, r0, #2 adds r1, r7, #0 adds r1, #0x80 ldrb r2, [r4] bl sub_0807B7D8 ldr r0, _080831E4 @ =0x00000373 adds r1, r7, #0 adds r1, #0x81 ldrb r2, [r4] bl sub_0807B7D8 ldr r0, _080831E8 @ =0x00000371 adds r1, r7, #0 adds r1, #0x82 _080831CA: ldrb r2, [r4] bl sub_0807B7D8 b _080832BA .align 2, 0 _080831D4: .4byte 0x00000372 _080831D8: .4byte 0x0000036F _080831DC: .4byte 0x00000376 _080831E0: .4byte 0x00000375 _080831E4: .4byte 0x00000373 _080831E8: .4byte 0x00000371 _080831EC: mov r1, sb ldr r0, [r1, #0x68] mov r4, sb adds r4, #0x38 ldrb r2, [r4] adds r1, r7, #0 bl sub_0807B7D8 ldr r5, _080832C8 @ =0x00000372 adds r1, r7, #1 ldrb r2, [r4] adds r0, r5, #0 bl sub_0807B7D8 adds r1, r7, #2 ldrb r2, [r4] adds r0, r5, #0 bl sub_0807B7D8 ldr r0, _080832CC @ =0x0000036F adds r1, r7, #3 ldrb r2, [r4] bl sub_0807B7D8 movs r2, #0xdd lsls r2, r2, #2 mov r8, r2 adds r1, r7, #0 adds r1, #0x40 ldrb r2, [r4] mov r0, r8 bl sub_0807B7D8 adds r5, #4 adds r1, r7, #0 adds r1, #0x41 ldrb r2, [r4] adds r0, r5, #0 bl sub_0807B7D8 adds r1, r7, #0 adds r1, #0x42 ldrb r2, [r4] adds r0, r5, #0 bl sub_0807B7D8 ldr r6, _080832D0 @ =0x00000375 adds r1, r7, #0 adds r1, #0x43 ldrb r2, [r4] adds r0, r6, #0 bl sub_0807B7D8 adds r1, r7, #0 adds r1, #0x80 ldrb r2, [r4] mov r0, r8 bl sub_0807B7D8 adds r1, r7, #0 adds r1, #0x81 ldrb r2, [r4] adds r0, r5, #0 bl sub_0807B7D8 adds r1, r7, #0 adds r1, #0x82 ldrb r2, [r4] adds r0, r5, #0 bl sub_0807B7D8 adds r1, r7, #0 adds r1, #0x83 ldrb r2, [r4] adds r0, r6, #0 bl sub_0807B7D8 movs r0, #0xdc lsls r0, r0, #2 adds r1, r7, #0 adds r1, #0xc0 ldrb r2, [r4] bl sub_0807B7D8 subs r5, #3 adds r1, r7, #0 adds r1, #0xc1 ldrb r2, [r4] adds r0, r5, #0 bl sub_0807B7D8 adds r1, r7, #0 adds r1, #0xc2 ldrb r2, [r4] adds r0, r5, #0 bl sub_0807B7D8 ldr r0, _080832D4 @ =0x00000371 adds r1, r7, #0 adds r1, #0xc3 ldrb r2, [r4] bl sub_0807B7D8 _080832BA: mov r0, sb bl sub_0805E7BC _080832C0: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _080832C8: .4byte 0x00000372 _080832CC: .4byte 0x0000036F _080832D0: .4byte 0x00000375 _080832D4: .4byte 0x00000371 thumb_func_start sub_080832D8 sub_080832D8: @ 0x080832D8 push {lr} adds r3, r0, #0 adds r2, r1, #0 adds r2, #0x38 ldrb r0, [r2] cmp r0, #2 beq _080832FC ldrb r1, [r1, #0x15] movs r0, #8 ands r0, r1 cmp r0, #0 beq _080832F6 ldrb r2, [r2] movs r0, #0x21 b _0808330A _080832F6: ldrb r2, [r2] movs r0, #0x20 b _0808330A _080832FC: ldrb r1, [r1, #0x15] movs r0, #8 ands r0, r1 cmp r0, #0 beq _08083312 ldrb r2, [r2] movs r0, #0x2f _0808330A: adds r1, r3, #0 bl sub_0807B7D8 b _0808331C _08083312: ldrb r2, [r2] movs r0, #0x2e adds r1, r3, #0 bl sub_0807B7D8 _0808331C: pop {pc} .align 2, 0 thumb_func_start sub_08083320 sub_08083320: @ 0x08083320 push {lr} ldr r2, _08083334 @ =gUnk_0811F65C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08083334: .4byte gUnk_0811F65C thumb_func_start sub_08083338 sub_08083338: @ 0x08083338 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x84 ldrh r1, [r2] ldr r0, _08083400 @ =0x0000FFFF cmp r1, r0 beq _08083356 adds r0, r1, #0 bl sub_0807CBE4 cmp r0, #0 beq _08083356 bl sub_0805E780 _08083356: adds r0, r4, #0 bl sub_080837B0 cmp r0, #0 bne _08083362 b _080834B2 _08083362: ldrb r2, [r4, #0xa] lsrs r0, r2, #2 movs r1, #3 ands r0, r1 strb r0, [r4, #0xb] movs r7, #3 adds r0, r7, #0 ands r0, r2 strb r0, [r4, #0x1e] movs r0, #0xc0 lsls r0, r0, #2 strh r0, [r4, #0x24] ldrh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x70 strh r1, [r0] ldrh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x72 strh r0, [r1] ldrb r1, [r4, #0xa] adds r0, r7, #0 ands r0, r1 adds r6, r4, #0 adds r6, #0x7e strb r0, [r6] ldr r0, _08083404 @ =gUnk_080FD170 str r0, [r4, #0x48] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #5 orrs r0, r1 strb r0, [r2] ldrb r1, [r4, #0xa] movs r0, #0xf ands r0, r1 adds r1, r4, #0 adds r1, #0x5a strb r0, [r1] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _08083408 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r5, r4, #0 adds r5, #0x76 strh r1, [r5] ldrh r0, [r5] adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080001DA adds r1, r4, #0 adds r1, #0x74 strh r0, [r1] ldrb r0, [r4, #0xb] cmp r0, #1 beq _08083438 cmp r0, #1 bgt _0808340C cmp r0, #0 beq _08083412 b _080834AE .align 2, 0 _08083400: .4byte 0x0000FFFF _08083404: .4byte gUnk_080FD170 _08083408: .4byte gUnk_03000BF0 _0808340C: cmp r0, #2 beq _08083456 b _080834AE _08083412: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 bne _0808342E ldrb r1, [r4, #0xa] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0808344E strb r7, [r4, #0xc] b _080834B2 _0808342E: ldrb r1, [r4, #0xa] movs r0, #0xef ands r0, r1 strb r0, [r4, #0xa] b _08083446 _08083438: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 bne _0808344E _08083446: adds r0, r4, #0 bl sub_08083638 b _080834B2 _0808344E: adds r0, r4, #0 bl sub_080836A0 b _080834B2 _08083456: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 bne _080834A8 ldrb r0, [r4, #0x1e] movs r1, #4 orrs r0, r1 strb r0, [r4, #0x1e] ldrb r1, [r6] ldrh r2, [r5] adds r0, r4, #0 bl sub_080836DC bl sub_08052660 cmp r0, #0 bne _08083484 movs r0, #5 strb r0, [r4, #0xc] b _080834B2 _08083484: movs r0, #8 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_080787CC ldr r1, _080834A4 @ =gUnk_0811F740 ldrb r0, [r6] adds r0, r0, r1 ldrb r2, [r0] adds r0, r4, #0 movs r1, #0 movs r3, #0 bl sub_08078850 b _080834B2 .align 2, 0 _080834A4: .4byte gUnk_0811F740 _080834A8: bl sub_0805E780 b _080834B2 _080834AE: bl sub_0805E780 _080834B2: pop {r4, r5, r6, r7, pc} thumb_func_start sub_080834B4 sub_080834B4: @ 0x080834B4 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 _080834E6 movs r0, #2 strb r0, [r2, #0xc] movs r0, #7 strb r0, [r2, #0xe] adds r0, r2, #0 adds r0, #0x74 ldrh r0, [r0] adds r1, r2, #0 adds r1, #0x76 ldrh r1, [r1] adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E ldr r0, _080834E8 @ =0x0000010B bl sub_08004488 _080834E6: pop {pc} .align 2, 0 _080834E8: .4byte 0x0000010B thumb_func_start sub_080834EC sub_080834EC: @ 0x080834EC push {r4, lr} adds r4, r0, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08083516 ldrb r1, [r4, #0xa] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08083512 adds r0, r4, #0 bl sub_08083638 b _08083516 _08083512: bl sub_0805E780 _08083516: pop {r4, pc} thumb_func_start sub_08083518 sub_08083518: @ 0x08083518 push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x7e ldrb r1, [r5] bl sub_08083734 cmp r0, #0 beq _0808353C movs r0, #4 strb r0, [r4, #0xc] ldrb r1, [r5] adds r0, r4, #0 adds r0, #0x76 ldrh r2, [r0] adds r0, r4, #0 bl sub_080836DC _0808353C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08083540 sub_08083540: @ 0x08083540 push {r4, lr} adds r4, r0, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0808358C ldrb r1, [r4, #0xa] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08083566 movs r0, #0xef ands r0, r1 strb r0, [r4, #0xa] b _0808356E _08083566: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08083576 _0808356E: adds r0, r4, #0 bl sub_080836A0 b _0808357A _08083576: movs r0, #5 strb r0, [r4, #0xc] _0808357A: adds r0, r4, #0 adds r0, #0x7e ldrb r1, [r0] adds r0, r4, #0 bl sub_08083814 ldr r0, _08083590 @ =0x0000010B bl sub_08004488 _0808358C: pop {r4, pc} .align 2, 0 _08083590: .4byte 0x0000010B thumb_func_start nullsub_513 nullsub_513: @ 0x08083594 bx lr .align 2, 0 thumb_func_start sub_08083598 sub_08083598: @ 0x08083598 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xb] cmp r0, #0 bne _080835B2 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _080835C6 b _080835C0 _080835B2: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 bne _080835C6 _080835C0: adds r0, r4, #0 bl sub_08083658 _080835C6: pop {r4, pc} thumb_func_start sub_080835C8 sub_080835C8: @ 0x080835C8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xb] cmp r0, #0 bne _080835E2 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 bne _080835F4 b _080835F0 _080835E2: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _080835F4 _080835F0: movs r0, #3 strb r0, [r4, #0xc] _080835F4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080835F8 sub_080835F8: @ 0x080835F8 push {r4, lr} adds r4, r0, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08083616 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _08083636 _08083616: movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x14 strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_08083658 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 movs r0, #1 rsbs r0, r0, #0 bl sub_080526F8 _08083636: pop {r4, pc} thumb_func_start sub_08083638 sub_08083638: @ 0x08083638 adds r2, r0, #0 movs r0, #7 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] subs r0, #0xb ands r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 adds r0, #0x70 ldrh r0, [r0] strh r0, [r2, #0x2e] adds r0, r2, #0 adds r0, #0x72 ldrh r0, [r0] strh r0, [r2, #0x32] bx lr thumb_func_start sub_08083658 sub_08083658: @ 0x08083658 push {lr} movs r1, #1 strb r1, [r0, #0xc] movs r1, #0x14 strb r1, [r0, #0xe] adds r2, r0, #0 adds r2, #0x7e ldrb r1, [r2] lsls r1, r1, #3 strb r1, [r0, #0x15] ldrb r2, [r2] lsls r2, r2, #1 ldr r1, _08083698 @ =gUnk_0811F680 adds r2, r2, r1 movs r1, #0 ldrsb r1, [r2, r1] ldrh r3, [r0, #0x2e] adds r1, r1, r3 strh r1, [r0, #0x2e] movs r1, #1 ldrsb r1, [r2, r1] ldrh r2, [r0, #0x32] adds r1, r1, r2 strh r1, [r0, #0x32] movs r1, #0x3c bl sub_0805E4E0 ldr r0, _0808369C @ =0x0000010B bl sub_080A3268 pop {pc} .align 2, 0 _08083698: .4byte gUnk_0811F680 _0808369C: .4byte 0x0000010B thumb_func_start sub_080836A0 sub_080836A0: @ 0x080836A0 push {lr} adds r2, r0, #0 movs r0, #6 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] subs r0, #0xa ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 adds r0, #0x70 ldrh r0, [r0] strh r0, [r2, #0x2e] adds r0, r2, #0 adds r0, #0x72 ldrh r0, [r0] strh r0, [r2, #0x32] ldr r0, _080836D8 @ =0x00004022 adds r1, r2, #0 adds r1, #0x76 ldrh r1, [r1] adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E pop {pc} .align 2, 0 _080836D8: .4byte 0x00004022 thumb_func_start sub_080836DC sub_080836DC: @ 0x080836DC push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 adds r1, r2, #0 ldr r0, _0808372C @ =0x00004022 adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E movs r0, #7 strb r0, [r5, #0xe] ldrb r1, [r5, #0x18] subs r0, #0xb ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r5, #0x18] lsls r0, r4, #3 movs r1, #0x10 eors r0, r1 strb r0, [r5, #0x15] lsls r4, r4, #1 ldr r0, _08083730 @ =gUnk_0811F688 adds r4, r4, r0 ldrb r0, [r5, #0xb] cmp r0, #2 beq _08083728 movs r0, #0 ldrsb r0, [r4, r0] ldrh r1, [r5, #0x2e] adds r0, r0, r1 strh r0, [r5, #0x2e] movs r0, #1 ldrsb r0, [r4, r0] ldrh r1, [r5, #0x32] adds r0, r0, r1 strh r0, [r5, #0x32] _08083728: pop {r4, r5, pc} .align 2, 0 _0808372C: .4byte 0x00004022 _08083730: .4byte gUnk_0811F688 thumb_func_start sub_08083734 sub_08083734: @ 0x08083734 push {lr} adds r2, r0, #0 cmp r1, #1 beq _08083760 cmp r1, #1 blo _0808374A cmp r1, #2 beq _08083774 cmp r1, #3 beq _08083790 b _080837AC _0808374A: adds r0, r2, #0 adds r0, #0x72 ldrh r1, [r0] ldr r0, _0808375C @ =gUnk_03001160 movs r2, #0x32 ldrsh r0, [r0, r2] subs r0, #0xd b _0808379E .align 2, 0 _0808375C: .4byte gUnk_03001160 _08083760: ldr r0, _08083770 @ =gUnk_03001160 movs r1, #0x2e ldrsh r0, [r0, r1] adds r0, #0xb adds r1, r2, #0 adds r1, #0x70 b _08083780 .align 2, 0 _08083770: .4byte gUnk_03001160 _08083774: ldr r0, _0808378C @ =gUnk_03001160 movs r1, #0x32 ldrsh r0, [r0, r1] adds r0, #8 adds r1, r2, #0 adds r1, #0x72 _08083780: ldrh r1, [r1] subs r0, r0, r1 cmp r0, #0 bge _080837AC movs r0, #1 b _080837AE .align 2, 0 _0808378C: .4byte gUnk_03001160 _08083790: adds r0, r2, #0 adds r0, #0x70 ldrh r1, [r0] ldr r0, _080837A8 @ =gUnk_03001160 movs r2, #0x2e ldrsh r0, [r0, r2] subs r0, #0xa _0808379E: subs r1, r1, r0 cmp r1, #0 bge _080837AC movs r0, #1 b _080837AE .align 2, 0 _080837A8: .4byte gUnk_03001160 _080837AC: movs r0, #0 _080837AE: pop {pc} thumb_func_start sub_080837B0 sub_080837B0: @ 0x080837B0 push {r4, r5, lr} adds r4, r0, #0 ldr r0, _080837C8 @ =gUnk_03000BF0 ldrb r2, [r0, #4] cmp r2, #0x3f bhi _080837DC cmp r2, #0x25 beq _080837CC cmp r2, #0x35 beq _080837D4 movs r5, #0xa b _080837E8 .align 2, 0 _080837C8: .4byte gUnk_03000BF0 _080837CC: ldr r5, _080837D0 @ =0x000001E7 b _080837E8 .align 2, 0 _080837D0: .4byte 0x000001E7 _080837D4: ldr r5, _080837D8 @ =0x000001C3 b _080837E8 .align 2, 0 _080837D8: .4byte 0x000001C3 _080837DC: ldr r1, _080837F8 @ =gUnk_0811F690 adds r0, r2, #0 subs r0, #0x40 lsls r0, r0, #1 adds r0, r0, r1 ldrh r5, [r0] _080837E8: cmp r2, #0x68 bne _080837FC adds r0, r4, #0 movs r1, #0 bl sub_0801D2B4 b _08083808 .align 2, 0 _080837F8: .4byte gUnk_0811F690 _080837FC: cmp r2, #0x88 bne _08083808 adds r0, r4, #0 movs r1, #1 bl sub_0801D2B4 _08083808: adds r0, r4, #0 adds r1, r5, #0 bl sub_080ADF80 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08083814 sub_08083814: @ 0x08083814 push {r4, r5, lr} adds r5, r0, #0 lsls r1, r1, #2 ldr r0, _08083868 @ =gUnk_0811F730 adds r4, r1, r0 adds r0, r5, #0 movs r1, #0x11 movs r2, #0x40 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _08083842 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] _08083842: adds r0, r5, #0 movs r1, #0x11 movs r2, #0x40 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _08083866 movs r0, #2 ldrsb r0, [r4, r0] ldrh r1, [r2, #0x2e] adds r0, r0, r1 strh r0, [r2, #0x2e] movs r0, #3 ldrsb r0, [r4, r0] ldrh r1, [r2, #0x32] adds r0, r0, r1 strh r0, [r2, #0x32] _08083866: pop {r4, r5, pc} .align 2, 0 _08083868: .4byte gUnk_0811F730 thumb_func_start sub_0808386C sub_0808386C: @ 0x0808386C push {r4, lr} adds r4, r0, #0 ldr r0, _080838C8 @ =gUnk_03003F80 adds r0, #0x27 ldrb r1, [r0] rsbs r0, r1, #0 orrs r0, r1 lsrs r2, r0, #0x1f ldr r0, _080838CC @ =gUnk_02022740 ldrb r0, [r0] cmp r0, #2 bgt _08083894 cmp r0, #0 blt _08083894 ldr r0, _080838D0 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 beq _080838AC _08083894: ldr r0, _080838D4 @ =gUnk_03003DF0 ldr r0, [r0, #4] ldrb r0, [r0, #3] cmp r0, #0x32 bne _080838AA movs r0, #0x32 bl sub_0801E7F4 movs r2, #0 cmp r0, #0 beq _080838AC _080838AA: movs r2, #1 _080838AC: cmp r2, #0 beq _080838B6 adds r0, r4, #0 bl sub_080838DC _080838B6: ldr r0, _080838D8 @ =gUnk_0811F754 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _080838C8: .4byte gUnk_03003F80 _080838CC: .4byte gUnk_02022740 _080838D0: .4byte gUnk_02000050 _080838D4: .4byte gUnk_03003DF0 _080838D8: .4byte gUnk_0811F754 thumb_func_start sub_080838DC sub_080838DC: @ 0x080838DC ldrb r2, [r0, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r2 strb r1, [r0, #0x18] ldrb r2, [r0, #0x1b] movs r3, #0x3f adds r1, r3, #0 ands r1, r2 movs r2, #0x40 orrs r1, r2 strb r1, [r0, #0x1b] ldrb r1, [r0, #0x19] ands r3, r1 strb r3, [r0, #0x19] adds r3, r0, #0 adds r3, #0x29 ldrb r2, [r3] movs r1, #8 rsbs r1, r1, #0 ands r1, r2 strb r1, [r3] movs r2, #0 movs r1, #4 strb r1, [r0, #0xe] str r2, [r0, #0x54] strb r2, [r0, #0xc] bx lr thumb_func_start sub_08083914 sub_08083914: @ 0x08083914 push {r4, lr} adds r4, r0, #0 adds r0, #0x26 ldrb r0, [r0] cmp r0, #1 beq _08083942 adds r0, r4, #0 movs r1, #1 movs r2, #1 bl sub_080AE008 adds r0, r4, #0 adds r0, #0x60 ldrh r1, [r0] subs r1, #0x10 strh r1, [r0] ldr r1, _08083958 @ =0x01027820 movs r0, #1 bl sub_080ADDD8 adds r0, r4, #0 bl sub_080838DC _08083942: movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x20 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 pop {r4, pc} .align 2, 0 _08083958: .4byte 0x01027820 thumb_func_start sub_0808395C sub_0808395C: @ 0x0808395C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xe] cmp r0, #0 beq _0808396C subs r0, #1 strb r0, [r2, #0xe] b _08083992 _0808396C: ldr r3, _08083994 @ =gUnk_03003DF0 ldr r0, [r3, #4] ldr r1, [r0, #8] cmp r1, #0 beq _08083992 ldrb r0, [r0, #3] subs r0, #1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x63 bhi _08083992 str r1, [r2, #0x54] ldrb r0, [r3, #3] adds r1, r2, #0 adds r1, #0x39 strb r0, [r1] adds r0, r2, #0 bl sub_08083A40 _08083992: pop {pc} .align 2, 0 _08083994: .4byte gUnk_03003DF0 thumb_func_start sub_08083998 sub_08083998: @ 0x08083998 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #1 beq _080839C8 ldr r0, _080839C4 @ =gUnk_03003DF0 ldr r2, [r0, #4] ldrb r0, [r2, #3] subs r0, #1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x63 bhi _080839BA ldr r1, [r4, #0x54] ldr r0, [r2, #8] cmp r1, r0 beq _080839C8 _080839BA: adds r0, r4, #0 bl sub_080838DC b _08083A32 .align 2, 0 _080839C4: .4byte gUnk_03003DF0 _080839C8: ldr r1, [r4, #0x54] ldr r0, [r1, #0x2c] str r0, [r4, #0x2c] ldr r0, [r1, #0x30] str r0, [r4, #0x30] ldr r0, [r1, #0x34] str r0, [r4, #0x34] adds r1, r4, #0 adds r1, #0x5a ldrb r0, [r1] cmp r0, #1 bne _08083A2C movs r0, #0 strb r0, [r1] ldrb r0, [r4, #0xa] cmp r0, #0 bne _080839F8 ldr r0, _080839F4 @ =gUnk_03003DF0 ldr r0, [r0, #4] ldrb r0, [r0, #3] b _080839FA .align 2, 0 _080839F4: .4byte gUnk_03003DF0 _080839F8: ldrb r0, [r4, #0xb] _080839FA: lsls r0, r0, #3 ldr r1, _08083A34 @ =gUnk_080C9CBC adds r0, r0, r1 ldrb r2, [r0, #6] movs r1, #1 ands r1, r2 ldrb r3, [r4, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r3 orrs r0, r1 strb r0, [r4, #0x1a] ldr r0, _08083A38 @ =gUnk_0811F744 lsls r2, r2, #2 adds r2, r2, r0 ldr r1, [r2] lsrs r2, r1, #0x1f ldr r0, _08083A3C @ =0x00FFFFFF ands r1, r0 orrs r1, r2 adds r0, #1 orrs r1, r0 movs r0, #0 bl sub_080ADDD8 _08083A2C: adds r0, r4, #0 bl sub_08004274 _08083A32: pop {r4, pc} .align 2, 0 _08083A34: .4byte gUnk_080C9CBC _08083A38: .4byte gUnk_0811F744 _08083A3C: .4byte 0x00FFFFFF thumb_func_start sub_08083A40 sub_08083A40: @ 0x08083A40 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #2 strb r0, [r4, #0xc] ldr r0, [r4, #0x54] ldr r1, _08083A70 @ =gUnk_03001160 movs r3, #0x2e ldrsh r2, [r0, r3] movs r3, #0x2e ldrsh r0, [r1, r3] cmp r2, r0 ble _08083A74 movs r1, #0 adds r2, r4, #0 adds r2, #0x62 movs r0, #8 b _08083A7C .align 2, 0 _08083A70: .4byte gUnk_03001160 _08083A74: movs r1, #1 adds r2, r4, #0 adds r2, #0x62 movs r0, #0xf8 _08083A7C: strb r0, [r2] adds r2, r4, #0 adds r2, #0x63 movs r0, #0xee strb r0, [r2] adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08083998 pop {r4, pc} thumb_func_start sub_08083A94 sub_08083A94: @ 0x08083A94 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 ldrb r0, [r6, #0xc] cmp r0, #0 bne _08083B24 movs r0, #1 mov r8, r0 mov r2, r8 strb r2, [r6, #0xc] ldr r0, _08083B10 @ =gUnk_080FD170 str r0, [r6, #0x48] adds r7, r6, #0 adds r7, #0x38 ldrb r0, [r7] movs r1, #0x34 cmp r0, #1 bne _08083ABC movs r1, #0x26 _08083ABC: adds r4, r6, #0 adds r4, #0x70 strh r1, [r4] adds r0, r6, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _08083B1C ldrh r0, [r4] movs r3, #0x2e ldrsh r1, [r6, r3] ldr r5, _08083B14 @ =gUnk_03000BF0 ldrh r2, [r5, #6] subs r1, r1, r2 asrs r1, r1, #4 movs r4, #0x3f ands r1, r4 movs r3, #0x32 ldrsh r2, [r6, r3] ldrh r3, [r5, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r4 lsls r2, r2, #6 orrs r1, r2 ldrb r2, [r7] bl sub_0807B314 ldrh r1, [r5] mov r0, r8 ands r0, r1 cmp r0, #0 beq _08083B08 ldr r1, _08083B18 @ =gUnk_02000070 movs r0, #0 strb r0, [r1] _08083B08: bl sub_0805E780 b _08083B7E .align 2, 0 _08083B10: .4byte gUnk_080FD170 _08083B14: .4byte gUnk_03000BF0 _08083B18: .4byte gUnk_02000070 _08083B1C: adds r0, r6, #0 bl sub_080787CC b _08083B7E _08083B24: adds r0, r6, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08083B7E adds r0, r6, #0 adds r0, #0x70 ldrh r0, [r0] movs r5, #0x2e ldrsh r1, [r6, r5] ldr r3, _08083B84 @ =gUnk_03000BF0 ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 movs r4, #0x3f ands r1, r4 movs r5, #0x32 ldrsh r2, [r6, r5] ldrh r3, [r3, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r4 lsls r2, r2, #6 orrs r1, r2 adds r2, r6, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0807B314 adds r0, r6, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 adds r0, r6, #0 bl sub_080A29BC movs r0, #1 rsbs r0, r0, #0 bl sub_080526F8 bl sub_0805E780 _08083B7E: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08083B84: .4byte gUnk_03000BF0 thumb_func_start sub_08083B88 sub_08083B88: @ 0x08083B88 push {r4, lr} adds r4, r0, #0 ldr r1, _08083BDC @ =gUnk_0811F7D8 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldr r0, [r4, #0x50] adds r0, #0x5a ldrb r1, [r0] lsrs r1, r1, #6 movs r0, #1 ands r1, r0 ldrb r2, [r4, #0x18] subs r0, #5 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_08080CB4 adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] ldrb r1, [r4, #0x1b] movs r2, #0x3f adds r0, r2, #0 ands r0, r1 movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x1b] ldrb r0, [r4, #0x19] ands r2, r0 strb r2, [r4, #0x19] pop {r4, pc} .align 2, 0 _08083BDC: .4byte gUnk_0811F7D8 thumb_func_start sub_08083BE0 sub_08083BE0: @ 0x08083BE0 push {r4, lr} adds r4, r0, #0 movs r1, #6 bl sub_0805E3A0 movs r0, #1 strb r0, [r4, #0xc] pop {r4, pc} thumb_func_start sub_08083BF0 sub_08083BF0: @ 0x08083BF0 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] adds r0, #0x5a ldrb r0, [r0] cmp r0, #0x41 bne _08083C98 movs r0, #2 strb r0, [r4, #0xc] ldrb r0, [r4, #0xe] cmp r0, #5 bhi _08083C98 lsls r0, r0, #2 ldr r1, _08083C14 @ =_08083C18 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08083C14: .4byte _08083C18 _08083C18: @ jump table .4byte _08083C30 @ case 0 .4byte _08083C30 @ case 1 .4byte _08083C4A @ case 2 .4byte _08083C98 @ case 3 .4byte _08083C98 @ case 4 .4byte _08083C74 @ case 5 _08083C30: ldrb r0, [r4, #0xa] ldrb r1, [r4, #0xb] bl sub_08053FF0 adds r1, r4, #0 adds r1, #0x68 strh r0, [r1] ldrb r0, [r4, #0xa] cmp r0, #0x43 bgt _08083C62 cmp r0, #0x40 bge _08083C98 b _08083C62 _08083C4A: ldrb r0, [r4, #0xa] ldrb r1, [r4, #0xb] bl sub_08053FF0 ldr r1, _08083C6C @ =gUnk_080FD964 ldrb r0, [r4, #0xa] lsls r0, r0, #3 adds r0, r0, r1 ldrh r1, [r0, #6] adds r0, r4, #0 adds r0, #0x68 strh r1, [r0] _08083C62: ldr r0, _08083C70 @ =0x00000109 bl sub_080A3268 b _08083C98 .align 2, 0 _08083C6C: .4byte gUnk_080FD964 _08083C70: .4byte 0x00000109 _08083C74: ldrb r0, [r4, #0xa] bl sub_0807CA84 ldrb r1, [r4, #0xa] lsls r1, r1, #3 ldr r2, _08083C8C @ =gUnk_080FD5B4 adds r1, r1, r2 cmp r0, #0 bne _08083C90 ldrh r1, [r1, #4] b _08083C92 .align 2, 0 _08083C8C: .4byte gUnk_080FD5B4 _08083C90: ldrh r1, [r1, #6] _08083C92: adds r0, r4, #0 adds r0, #0x68 strh r1, [r0] _08083C98: pop {r4, pc} .align 2, 0 thumb_func_start sub_08083C9C sub_08083C9C: @ 0x08083C9C push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] adds r0, #0x5a ldrb r0, [r0] cmp r0, #0x42 bne _08083D22 movs r0, #3 strb r0, [r4, #0xc] ldrb r0, [r4, #0xe] cmp r0, #5 bhi _08083D22 lsls r0, r0, #2 ldr r1, _08083CC0 @ =_08083CC4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08083CC0: .4byte _08083CC4 _08083CC4: @ jump table .4byte _08083CDC @ case 0 .4byte _08083D22 @ case 1 .4byte _08083CDC @ case 2 .4byte _08083D22 @ case 3 .4byte _08083D22 @ case 4 .4byte _08083CDC @ case 5 _08083CDC: adds r0, r4, #0 adds r0, #0x68 ldrh r1, [r0] cmp r1, #0 beq _08083D22 ldrb r0, [r4, #0xa] cmp r0, #0x3f beq _08083D00 cmp r0, #0x63 bne _08083D16 ldr r0, _08083CFC @ =gUnk_02002A40 adds r0, #0xa9 ldrb r0, [r0] adds r1, r1, r0 b _08083D16 .align 2, 0 _08083CFC: .4byte gUnk_02002A40 _08083D00: ldrb r0, [r4, #0xb] cmp r0, #1 bls _08083D16 ldr r0, _08083D10 @ =0x00000577 cmp r1, r0 bne _08083D14 subs r1, #1 b _08083D16 .align 2, 0 _08083D10: .4byte 0x00000577 _08083D14: adds r1, #1 _08083D16: adds r0, r1, #0 bl sub_08056378 ldr r1, _08083D24 @ =gUnk_02000050 ldrb r0, [r4, #0xb] str r0, [r1, #0x10] _08083D22: pop {r4, pc} .align 2, 0 _08083D24: .4byte gUnk_02000050 thumb_func_start sub_08083D28 sub_08083D28: @ 0x08083D28 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldrb r0, [r0, #0xc] cmp r0, #8 beq _08083DD4 ldrb r0, [r4, #0xe] cmp r0, #5 bhi _08083DD0 lsls r0, r0, #2 ldr r1, _08083D44 @ =_08083D48 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08083D44: .4byte _08083D48 _08083D48: @ jump table .4byte _08083D60 @ case 0 .4byte _08083D60 @ case 1 .4byte _08083D60 @ case 2 .4byte _08083DAC @ case 3 .4byte _08083DD0 @ case 4 .4byte _08083DD0 @ case 5 _08083D60: ldrb r0, [r4, #0xa] cmp r0, #0x62 beq _08083D88 cmp r0, #0x63 bne _08083DD0 movs r0, #0xa0 bl sub_080526A0 ldr r0, _08083DA8 @ =gUnk_02002A40 adds r1, r0, #0 adds r1, #0xa9 ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #3 bls _08083DD0 movs r0, #0 strb r0, [r1] _08083D88: ldr r0, _08083DA8 @ =gUnk_02002A40 adds r1, r0, #0 adds r1, #0xab ldrb r0, [r1] adds r0, #8 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xa0 bls _08083DA0 movs r0, #0xa0 strb r0, [r1] _08083DA0: movs r0, #0xa0 bl sub_080526A0 b _08083DD0 .align 2, 0 _08083DA8: .4byte gUnk_02002A40 _08083DAC: ldrb r0, [r4, #0xa] bl sub_080544DC adds r1, r0, #0 cmp r1, #0 beq _08083DC8 ldr r0, _08083DC4 @ =gUnk_02002A40 adds r0, r0, r1 adds r0, #0xb5 movs r1, #0x20 strb r1, [r0] b _08083DD0 .align 2, 0 _08083DC4: .4byte gUnk_02002A40 _08083DC8: ldrb r0, [r4, #0xa] movs r1, #2 bl sub_0807CAA0 _08083DD0: bl sub_0805E780 _08083DD4: pop {r4, pc} .align 2, 0 thumb_func_start sub_08083DD8 sub_08083DD8: @ 0x08083DD8 push {lr} ldr r2, _08083DEC @ =gUnk_0811F7E8 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08083DEC: .4byte gUnk_0811F7E8 thumb_func_start sub_08083DF0 sub_08083DF0: @ 0x08083DF0 push {lr} ldr r2, _08083E04 @ =gUnk_0811F808 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08083E04: .4byte gUnk_0811F808 thumb_func_start sub_08083E08 sub_08083E08: @ 0x08083E08 push {lr} ldr r2, _08083E1C @ =gUnk_0811F818 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08083E1C: .4byte gUnk_0811F818 thumb_func_start sub_08083E20 sub_08083E20: @ 0x08083E20 push {r4, lr} adds r4, r0, #0 movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #7 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] ldrb r1, [r4, #0x19] movs r0, #0xd rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x19] adds r0, r4, #0 bl sub_080842D8 adds r0, r4, #0 bl sub_08078828 pop {r4, pc} thumb_func_start sub_08083E4C sub_08083E4C: @ 0x08083E4C push {r4, lr} adds r4, r0, #0 ldr r0, _08083E80 @ =gUnk_0811F8B0 str r0, [r4, #0x48] ldrb r0, [r4, #0xb] bl sub_0807CBD0 cmp r0, #0 beq _08083E84 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #5 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_080842D8 adds r0, r4, #0 movs r1, #1 bl sub_08004260 b _08083EAC .align 2, 0 _08083E80: .4byte gUnk_0811F8B0 _08083E84: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 bne _08083E98 ldrb r0, [r4, #0xa] cmp r0, #4 bne _08083EA0 _08083E98: adds r0, r4, #0 bl sub_08083E20 b _08083EA4 _08083EA0: movs r0, #1 strb r0, [r4, #0xc] _08083EA4: adds r0, r4, #0 movs r1, #0 bl sub_08004260 _08083EAC: pop {r4, pc} .align 2, 0 thumb_func_start sub_08083EB0 sub_08083EB0: @ 0x08083EB0 push {r4, lr} adds r4, r0, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _08083F0A ldr r1, _08083F0C @ =gUnk_03000F50 adds r2, r1, #0 adds r2, #0x66 movs r3, #0 movs r0, #0xf4 lsls r0, r0, #4 strh r0, [r2] adds r1, #0x68 adds r0, #0xc0 strh r0, [r1] ldr r1, _08083F10 @ =gUnk_02034490 movs r2, #1 movs r0, #1 strb r0, [r1] movs r0, #2 strb r0, [r4, #0xc] strb r3, [r4, #0xd] movs r0, #0x1e strb r0, [r4, #0xf] ldrb r1, [r4, #0x18] subs r0, #0x22 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldrb r1, [r4, #0x19] movs r0, #0xd rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r4, #0x19] adds r0, r4, #0 movs r1, #0x1e bl sub_0805E4E0 bl sub_0805BC4C _08083F0A: pop {r4, pc} .align 2, 0 _08083F0C: .4byte gUnk_03000F50 _08083F10: .4byte gUnk_02034490 thumb_func_start sub_08083F14 sub_08083F14: @ 0x08083F14 push {r4, r5, lr} adds r4, r0, #0 movs r0, #0x1e bl sub_0805E510 ldrb r0, [r4, #0xd] cmp r0, #0 beq _08083F78 cmp r0, #1 beq _08083FA4 adds r0, r4, #0 bl sub_0800445C movs r1, #0x2e ldrsh r0, [r4, r1] movs r2, #0x32 ldrsh r1, [r4, r2] movs r2, #2 bl sub_080577AC ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r2, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _08083FE6 movs r0, #8 strb r0, [r4, #0xe] ldrb r0, [r4, #0xf] adds r0, #1 strb r0, [r4, #0xf] ands r2, r0 ldr r3, _08083F74 @ =gUnk_03000F50 movs r0, #0x10 subs r0, r0, r2 lsls r0, r0, #8 movs r5, #0xff lsls r5, r5, #8 adds r1, r5, #0 ands r0, r1 orrs r0, r2 adds r1, r3, #0 adds r1, #0x68 strh r0, [r1] cmp r0, #0x10 bne _08083FE6 b _08083FCC .align 2, 0 _08083F74: .4byte gUnk_03000F50 _08083F78: ldr r5, _08083FA0 @ =gUnk_03001160 adds r0, r4, #0 adds r1, r5, #0 movs r2, #0x10 movs r3, #8 bl sub_080041A0 cmp r0, #0 beq _08083F98 movs r0, #0x10 movs r1, #0 movs r2, #0 bl sub_08078AC0 movs r0, #0x10 strb r0, [r5, #0x15] _08083F98: movs r0, #1 strb r0, [r4, #0xd] b _08083FE6 .align 2, 0 _08083FA0: .4byte gUnk_03001160 _08083FA4: ldrb r0, [r4, #0xa] cmp r0, #5 beq _08083FB2 ldr r0, _08083FC8 @ =gUnk_03001160 ldrb r0, [r0, #0xc] cmp r0, #1 bne _08083FE6 _08083FB2: movs r1, #0 movs r0, #2 strb r0, [r4, #0xd] movs r0, #8 strb r0, [r4, #0xe] strb r1, [r4, #0xf] movs r0, #0xa5 lsls r0, r0, #1 bl sub_080A3268 b _08083FE6 .align 2, 0 _08083FC8: .4byte gUnk_03001160 _08083FCC: ldr r1, _08083FE8 @ =gUnk_02034490 movs r0, #0 strb r0, [r1] adds r1, r3, #0 adds r1, #0x66 movs r0, #0 strh r0, [r1] adds r0, r4, #0 bl sub_08083E20 movs r0, #0x73 bl sub_080A3268 _08083FE6: pop {r4, r5, pc} .align 2, 0 _08083FE8: .4byte gUnk_02034490 thumb_func_start sub_08083FEC sub_08083FEC: @ 0x08083FEC push {r4, lr} adds r4, r0, #0 bl sub_0800445C adds r0, r4, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0808401E movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_080788E0 adds r0, r4, #0 movs r1, #0x3c bl sub_0805E4E0 ldr r0, _08084020 @ =0x0000011B bl sub_080A3268 _0808401E: pop {r4, pc} .align 2, 0 _08084020: .4byte 0x0000011B thumb_func_start sub_08084024 sub_08084024: @ 0x08084024 push {r4, lr} adds r4, r0, #0 bl sub_0800445C adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08084070 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0808406A ldrb r0, [r4, #0xe] cmp r0, #0x18 bne _08084060 movs r0, #6 strb r0, [r4, #0xc] movs r0, #8 strb r0, [r4, #0xe] movs r0, #0x10 strb r0, [r4, #0xf] b _0808406A _08084060: movs r0, #5 strb r0, [r4, #0xc] ldrb r0, [r4, #0xb] bl sub_08084074 _0808406A: ldrb r0, [r4, #0xb] bl sub_0807CCB4 _08084070: pop {r4, pc} .align 2, 0 thumb_func_start sub_08084074 sub_08084074: @ 0x08084074 push {r4, lr} adds r4, r0, #0 movs r0, #3 bl sub_0804B128 adds r1, r0, #0 cmp r1, #0 beq _080840A4 b _0808409E _08084086: cmp r0, #3 bne _0808409C ldrb r0, [r1, #1] cmp r4, r0 bne _0808409C ldrb r0, [r1, #2] ldrb r1, [r1, #3] movs r2, #0 bl sub_080A7C00 b _080840A4 _0808409C: adds r1, #8 _0808409E: ldrb r0, [r1] cmp r0, #0 bne _08084086 _080840A4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080840A8 sub_080840A8: @ 0x080840A8 push {r4, r5, r6, r7, lr} adds r6, r0, #0 adds r7, r1, #0 ldr r4, _0808413C @ =gUnk_0811F838 bl sub_08000E50 movs r1, #7 ands r1, r0 adds r1, r1, r4 ldrb r1, [r1] movs r0, #0 movs r2, #0 bl sub_080A2960 adds r5, r0, #0 cmp r5, #0 beq _08084138 movs r0, #6 strb r0, [r5, #0xe] bl sub_08000E50 movs r1, #7 ands r0, r1 adds r0, #0xc movs r1, #0x80 orrs r0, r1 strb r0, [r5, #0x15] bl sub_08000E50 movs r1, #0xf ands r1, r0 lsls r1, r1, #1 adds r1, #0x20 strh r1, [r5, #0x24] bl sub_08000E50 ldr r1, _08084140 @ =gUnk_0811F840 movs r4, #3 ands r0, r4 lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [r5, #0x20] bl sub_08000E50 ldr r1, _08084144 @ =gUnk_0811F850 ands r0, r4 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, r0, r6 strh r0, [r5, #0x2e] adds r0, r7, #1 strh r0, [r5, #0x32] ldr r0, _08084148 @ =0x0000FFF8 strh r0, [r5, #0x36] adds r0, r5, #0 bl sub_08016A30 adds r0, r5, #0 movs r1, #0x11 movs r2, #0 bl sub_080A29AC adds r5, r0, #0 cmp r5, #0 beq _08084138 movs r0, #0x92 lsls r0, r0, #1 bl sub_080A3268 _08084138: pop {r4, r5, r6, r7, pc} .align 2, 0 _0808413C: .4byte gUnk_0811F838 _08084140: .4byte gUnk_0811F840 _08084144: .4byte gUnk_0811F850 _08084148: .4byte 0x0000FFF8 thumb_func_start sub_0808414C sub_0808414C: @ 0x0808414C push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xe] subs r0, #1 strb r0, [r1, #0xe] movs r2, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _08084180 movs r0, #8 strb r0, [r1, #0xe] ldrb r0, [r1, #0xf] subs r0, #1 strb r0, [r1, #0xf] ands r0, r2 cmp r0, #0 beq _0808417C movs r2, #0x2e ldrsh r0, [r1, r2] movs r2, #0x32 ldrsh r1, [r1, r2] bl sub_080840A8 b _08084180 _0808417C: movs r0, #5 strb r0, [r1, #0xc] _08084180: pop {pc} .align 2, 0 thumb_func_start sub_08084184 sub_08084184: @ 0x08084184 push {lr} bl sub_0800445C pop {pc} thumb_func_start nullsub_114 nullsub_114: @ 0x0808418C bx lr .align 2, 0 thumb_func_start sub_08084190 sub_08084190: @ 0x08084190 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _08084204 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r5, r4, #0 adds r5, #0x70 strh r1, [r5] ldr r0, _08084208 @ =gUnk_0811F8A8 str r0, [r4, #0x48] adds r0, r4, #0 bl sub_080002A0 cmp r0, #0x74 bne _080841D2 bl sub_0805E780 _080841D2: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _08084200 movs r0, #3 strb r0, [r4, #0xc] ldrh r1, [r5] adds r0, r4, #0 adds r0, #0x38 ldrb r2, [r0] movs r0, #0x73 bl sub_0807B7D8 ldrb r1, [r4, #0xa] movs r0, #1 ands r0, r1 cmp r0, #0 bne _08084200 bl sub_0805E780 _08084200: pop {r4, r5, pc} .align 2, 0 _08084204: .4byte gUnk_03000BF0 _08084208: .4byte gUnk_0811F8A8 thumb_func_start sub_0808420C sub_0808420C: @ 0x0808420C push {r4, lr} adds r4, r0, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _08084220 movs r0, #2 strb r0, [r4, #0xc] _08084220: pop {r4, pc} .align 2, 0 thumb_func_start sub_08084224 sub_08084224: @ 0x08084224 push {r4, lr} adds r4, r0, #0 adds r0, #0x70 ldrh r1, [r0] subs r0, #0x38 ldrb r2, [r0] movs r0, #0x73 bl sub_0807B7D8 ldrb r0, [r4, #0xa] cmp r0, #7 bgt _0808424C cmp r0, #6 blt _0808424C ldr r0, _08084248 @ =0x00000215 bl sub_080A3268 b _08084258 .align 2, 0 _08084248: .4byte 0x00000215 _0808424C: movs r0, #0x72 bl sub_080A3268 adds r0, r4, #0 bl sub_080A29BC _08084258: movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0xe] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 adds r1, r4, #0 adds r1, #0x72 strh r0, [r1] ldrb r1, [r4, #0xa] movs r0, #1 ands r0, r1 cmp r0, #0 bne _08084278 bl sub_0805E780 _08084278: pop {r4, pc} .align 2, 0 thumb_func_start sub_0808427C sub_0808427C: @ 0x0808427C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #1 beq _0808428A cmp r0, #7 bne _080842D4 _0808428A: adds r0, r4, #0 bl sub_080002A0 cmp r0, #0x74 bne _0808429C adds r0, r4, #0 bl sub_0805E7BC b _080842D4 _0808429C: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 bne _080842D4 adds r1, r4, #0 adds r1, #0x72 ldrh r0, [r1] cmp r0, #0 beq _080842BA subs r0, #1 strh r0, [r1] b _080842D4 _080842BA: movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x70 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_0807BA8C adds r0, r4, #0 bl sub_080A29BC _080842D4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080842D8 sub_080842D8: @ 0x080842D8 push {r4, r5, r6, lr} adds r5, r0, #0 ldrh r2, [r5, #0x2e] movs r1, #8 adds r0, r1, #0 ands r0, r2 lsls r0, r0, #0x10 asrs r0, r0, #0x10 rsbs r0, r0, #0 lsrs r2, r0, #0x1f ldrh r0, [r5, #0x32] ands r1, r0 cmp r1, #0 beq _080842F6 adds r2, #2 _080842F6: ldr r1, _0808432C @ =gUnk_0811F898 lsls r0, r2, #2 adds r0, r0, r1 ldr r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _08084330 @ =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_0801AF18 pop {r4, r5, r6, pc} .align 2, 0 _0808432C: .4byte gUnk_0811F898 _08084330: .4byte gUnk_03000BF0 thumb_func_start sub_08084334 sub_08084334: @ 0x08084334 push {lr} ldr r2, _08084348 @ =gUnk_0811F908 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08084348: .4byte gUnk_0811F908 thumb_func_start sub_0808434C sub_0808434C: @ 0x0808434C push {r4, r5, r6, lr} adds r5, r0, #0 movs r2, #1 movs r3, #1 strb r3, [r5, #0xc] ldrb r1, [r5, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r5, #0x10] ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 strb r0, [r5, #0x18] adds r1, r5, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] adds r0, r5, #0 adds r0, #0x3f strb r3, [r0] adds r1, #4 movs r0, #0x47 strb r0, [r1] subs r1, #5 movs r0, #2 strb r0, [r1] ldr r0, _080843E0 @ =gUnk_080FD188 str r0, [r5, #0x48] ldr r0, _080843E4 @ =0x00004050 movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _080843E8 @ =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, #0xa] cmp r0, #1 beq _080843C8 adds r0, r5, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _080843EC _080843C8: movs r0, #3 strb r0, [r5, #0xc] adds r0, r5, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 adds r0, r5, #0 movs r1, #1 bl sub_08004260 b _080843F4 .align 2, 0 _080843E0: .4byte gUnk_080FD188 _080843E4: .4byte 0x00004050 _080843E8: .4byte gUnk_03000BF0 _080843EC: ldrb r1, [r5, #0xa] adds r0, r5, #0 bl sub_08004260 _080843F4: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080843F8 sub_080843F8: @ 0x080843F8 push {lr} adds r2, r0, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x9c bne _08084420 movs r0, #2 strb r0, [r2, #0xc] ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0x10] adds r0, r2, #0 movs r1, #0xd movs r2, #0 bl sub_080A29AC ldr r0, _08084424 @ =0x0000010D bl sub_08004488 _08084420: pop {pc} .align 2, 0 _08084424: .4byte 0x0000010D thumb_func_start sub_08084428 sub_08084428: @ 0x08084428 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08084454 movs r0, #3 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 movs r0, #0x86 lsls r0, r0, #1 bl sub_08004488 _08084454: pop {r4, pc} .align 2, 0 thumb_func_start sub_08084458 sub_08084458: @ 0x08084458 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08084472 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x14 strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_08004168 b _080844C2 _08084472: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _080844C2 movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _080844C4 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] 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] movs r0, #0x35 bl sub_0807B7D8 adds r0, r4, #0 movs r1, #0 movs r2, #0x40 bl sub_080A29AC movs r0, #0x93 lsls r0, r0, #1 bl sub_080A3268 bl sub_0805E780 _080844C2: pop {r4, r5, pc} .align 2, 0 _080844C4: .4byte gUnk_03000BF0 thumb_func_start sub_080844C8 sub_080844C8: @ 0x080844C8 push {lr} ldr r2, _080844DC @ =gUnk_0811FAC0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080844DC: .4byte gUnk_0811FAC0 thumb_func_start sub_080844E0 sub_080844E0: @ 0x080844E0 push {r4, r5, lr} adds r5, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r5, #0xc] ldrb r1, [r5, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r5, #0x10] ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 strb r0, [r5, #0x18] adds r0, r5, #0 movs r1, #6 bl sub_0805E3A0 adds r0, r5, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #0 bne _08084516 adds r0, r5, #0 bl sub_08016A30 _08084516: ldrb r0, [r5, #0xa] cmp r0, #0x20 bne _08084524 ldrb r0, [r5, #0x10] movs r1, #0x20 orrs r0, r1 strb r0, [r5, #0x10] _08084524: ldrb r4, [r5, #0xa] cmp r4, #3 bne _08084538 bl sub_08000E50 ldr r1, _080845AC @ =gUnk_0811FAC8 ands r4, r0 adds r1, r4, r1 ldrb r0, [r1] strb r0, [r5, #0xa] _08084538: ldrb r0, [r5, #0xa] cmp r0, #0x17 bne _0808454E bl sub_08000E50 ldr r2, _080845B0 @ =gUnk_0811FACC movs r1, #3 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r5, #0xa] _0808454E: ldrb r1, [r5, #0xa] adds r0, r5, #0 bl sub_08004260 ldrb r0, [r5, #0xa] lsls r0, r0, #2 ldr r1, _080845B4 @ =gUnk_0811F960 adds r4, r0, r1 ldrb r1, [r4] movs r0, #0xf ands r0, r1 cmp r0, #6 bne _0808456C movs r0, #0x40 strh r0, [r5, #0x24] _0808456C: ldrh r0, [r4, #2] cmp r0, #0 beq _08084582 ldrb r1, [r5, #0xb] movs r0, #0x40 ands r0, r1 cmp r0, #0 bne _08084582 ldrh r0, [r4, #2] bl sub_08004488 _08084582: ldrb r1, [r5, #0xb] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08084594 ldrb r1, [r4, #1] adds r0, r5, #0 bl sub_0805457C _08084594: ldrb r1, [r5, #0xb] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _080845AA ldrb r0, [r5, #0x19] movs r1, #0x3f ands r1, r0 movs r0, #0x40 orrs r1, r0 strb r1, [r5, #0x19] _080845AA: pop {r4, r5, pc} .align 2, 0 _080845AC: .4byte gUnk_0811FAC8 _080845B0: .4byte gUnk_0811FACC _080845B4: .4byte gUnk_0811F960 thumb_func_start sub_080845B8 sub_080845B8: @ 0x080845B8 push {lr} ldr r3, _080845D4 @ =gUnk_0811FAD0 ldr r2, _080845D8 @ =gUnk_0811F960 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldrb r1, [r1] lsls r1, r1, #0x1c lsrs r1, r1, #0x1a adds r1, r1, r3 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080845D4: .4byte gUnk_0811FAD0 _080845D8: .4byte gUnk_0811F960 thumb_func_start sub_080845DC sub_080845DC: @ 0x080845DC 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 _080845F4 bl sub_0805E780 _080845F4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080845F8 sub_080845F8: @ 0x080845F8 push {r4, lr} adds r4, r0, #0 ldrh r2, [r4, #0x2e] movs r1, #0xf adds r0, r1, #0 ands r0, r2 movs r2, #8 subs r3, r2, r0 ldrh r0, [r4, #0x32] ands r1, r0 subs r1, r2, r1 adds r0, r3, #0 orrs r0, r1 cmp r0, #0 beq _08084626 adds r0, r3, #0 bl sub_080045DA lsrs r0, r0, #3 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_0806F69C _08084626: adds r0, r4, #0 bl sub_08084630 pop {r4, pc} .align 2, 0 thumb_func_start sub_08084630 sub_08084630: @ 0x08084630 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808467E ldrb r1, [r4, #0xb] movs r3, #1 adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _0808467A ldr r1, [r4, #0x54] cmp r1, #0 beq _0808467A adds r1, #0x6a ldrh r0, [r1] subs r0, #1 strh r0, [r1] ldr r0, [r4, #0x68] cmp r0, #0 beq _0808467A ldr r2, [r4, #0x54] adds r2, #0x6c subs r0, #1 movs r1, #0x1f ands r0, r1 adds r1, r3, #0 lsls r1, r0 ldrh r0, [r2] bics r0, r1 strh r0, [r2] _0808467A: bl sub_0805E780 _0808467E: pop {r4, pc} thumb_func_start sub_08084680 sub_08084680: @ 0x08084680 push {lr} ldr r1, [r0, #0x34] movs r2, #0x80 lsls r2, r2, #7 adds r1, r1, r2 str r1, [r0, #0x34] bl sub_080845DC pop {pc} .align 2, 0 thumb_func_start sub_08084694 sub_08084694: @ 0x08084694 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] cmp r0, #0 beq _080846A4 ldr r0, [r0, #4] cmp r0, #0 bne _080846A8 _080846A4: bl sub_0805E780 _080846A8: adds r0, r4, #0 bl sub_08004274 pop {r4, pc} thumb_func_start sub_080846B0 sub_080846B0: @ 0x080846B0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _080846D8 ldrh r1, [r4, #0x24] movs r2, #0x24 ldrsh r0, [r4, r2] cmp r0, #0 beq _080846CA adds r0, r1, #0 subs r0, #0x10 strh r0, [r4, #0x24] _080846CA: adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_080845DC b _08084718 _080846D8: movs r0, #1 strb r0, [r4, #0xe] ldrb r1, [r4, #0x14] movs r0, #2 orrs r0, r1 cmp r0, #2 bne _080846EA movs r0, #0x1e b _080846EC _080846EA: movs r0, #2 _080846EC: strb r0, [r4, #0x15] ldrb r0, [r4, #0xf] cmp r0, #0 beq _08084712 adds r1, r4, #0 adds r1, #0x60 ldrh r0, [r1] adds r0, #1 strh r0, [r1] ldrb r0, [r4, #0x15] movs r1, #1 cmp r0, #0x17 bls _08084708 subs r1, #2 _08084708: adds r0, r0, r1 strb r0, [r4, #0x15] movs r0, #0xa0 lsls r0, r0, #2 b _08084716 _08084712: movs r0, #0xc0 lsls r0, r0, #2 _08084716: strh r0, [r4, #0x24] _08084718: pop {r4, pc} .align 2, 0 thumb_func_start sub_0808471C sub_0808471C: @ 0x0808471C push {r4, r5, lr} adds r5, r0, #0 bl sub_08004274 adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08084768 movs r4, #0 _08084734: adds r0, r5, #0 movs r1, #0x24 movs r2, #0 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _0808475E lsls r1, r4, #1 ldr r0, _0808476C @ =gUnk_0811FB08 adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] ldrh r3, [r2, #0x2e] adds r0, r0, r3 strh r0, [r2, #0x2e] movs r0, #1 ldrsb r0, [r1, r0] ldrh r1, [r2, #0x32] adds r0, r0, r1 strh r0, [r2, #0x32] _0808475E: adds r4, #1 cmp r4, #3 bls _08084734 bl sub_0805E780 _08084768: pop {r4, r5, pc} .align 2, 0 _0808476C: .4byte gUnk_0811FB08 thumb_func_start sub_08084770 sub_08084770: @ 0x08084770 push {lr} ldr r1, [r0, #0x34] ldr r2, _08084780 @ =0xFFFFC000 adds r1, r1, r2 str r1, [r0, #0x34] bl sub_080845DC pop {pc} .align 2, 0 _08084780: .4byte 0xFFFFC000 thumb_func_start sub_08084784 sub_08084784: @ 0x08084784 push {lr} ldr r1, [r0, #0x34] movs r2, #0x80 lsls r2, r2, #7 adds r1, r1, r2 str r1, [r0, #0x34] bl sub_080845DC pop {pc} .align 2, 0 thumb_func_start sub_08084798 sub_08084798: @ 0x08084798 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080847B6 ldr r0, [r4, #0x54] ldr r0, [r0, #4] cmp r0, #0 bne _080847BA _080847B6: bl sub_0805E780 _080847BA: pop {r4, pc} thumb_func_start sub_080847BC sub_080847BC: @ 0x080847BC push {lr} ldr r1, [r0, #0x34] ldr r2, _080847CC @ =0xFFFFE000 adds r1, r1, r2 str r1, [r0, #0x34] bl sub_080845DC pop {pc} .align 2, 0 _080847CC: .4byte 0xFFFFE000 thumb_func_start sub_080847D0 sub_080847D0: @ 0x080847D0 push {r4, lr} adds r4, r0, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_080845DC pop {r4, pc} thumb_func_start sub_080847E0 sub_080847E0: @ 0x080847E0 push {r4, r5, lr} adds r5, r0, #0 ldr r0, _08084814 @ =gUnk_03000BF0 ldrh r0, [r0] cmp r0, #1 bne _080847F0 bl sub_0805E780 _080847F0: ldr r4, _08084818 @ =gUnk_03001160 ldr r3, _0808481C @ =0xFFFD0000 adds r0, r4, #0 adds r1, r5, #0 movs r2, #0 bl sub_0806FA48 ldr r0, _08084820 @ =0x0000FFFD strh r0, [r5, #0x36] adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FAB0 adds r0, r5, #0 bl sub_080845DC pop {r4, r5, pc} .align 2, 0 _08084814: .4byte gUnk_03000BF0 _08084818: .4byte gUnk_03001160 _0808481C: .4byte 0xFFFD0000 _08084820: .4byte 0x0000FFFD thumb_func_start sub_08084824 sub_08084824: @ 0x08084824 push {lr} ldr r2, _08084838 @ =gUnk_08120560 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08084838: .4byte gUnk_08120560 thumb_func_start sub_0808483C sub_0808483C: @ 0x0808483C push {r4, r5, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x19] movs r0, #0x3f ands r0, r1 movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x19] 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] ldrh r2, [r4, #0x2e] movs r1, #0x10 rsbs r1, r1, #0 adds r0, r1, #0 ands r0, r2 movs r2, #8 orrs r0, r2 strh r0, [r4, #0x2e] ldrh r0, [r4, #0x32] ands r1, r0 orrs r1, r2 strh r1, [r4, #0x32] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _080848C0 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r5, r4, #0 adds r5, #0x74 strh r1, [r5] adds r0, r4, #0 movs r1, #8 bl sub_08004260 ldr r0, _080848C4 @ =0x00004016 ldrh r1, [r5] adds r4, #0x38 ldrb r2, [r4] bl sub_0800015E movs r0, #0x89 lsls r0, r0, #1 bl sub_080A3268 pop {r4, r5, pc} .align 2, 0 _080848C0: .4byte gUnk_03000BF0 _080848C4: .4byte 0x00004016 thumb_func_start sub_080848C8 sub_080848C8: @ 0x080848C8 push {r4, r5, lr} adds r4, r0, #0 ldr r0, _08084980 @ =gUnk_03003F80 adds r0, #0xa0 ldrb r0, [r0] cmp r0, #5 bne _08084994 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 adds r0, #0x45 movs r5, #1 strb r5, [r0] movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x11] subs r0, #0x12 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r4, #0x11] ldr r0, _08084984 @ =gUnk_08120574 str r0, [r4, #0x48] ldrb r1, [r4, #0xa] adds r1, #1 lsls r0, r1, #4 subs r0, r0, r1 strb r0, [r4, #0xf] ldr r2, _08084988 @ =gUnk_03001160 ldrh r0, [r4, #0x2e] ldrh r1, [r2, #0x2e] subs r0, r0, r1 adds r3, r4, #0 adds r3, #0x78 strh r0, [r3] ldrh r1, [r4, #0x32] ldrh r0, [r2, #0x32] subs r1, r1, r0 adds r0, r4, #0 adds r0, #0x7a strh r1, [r0] ldrh r0, [r3] cmp r0, #0 beq _0808493C lsls r0, r1, #0x10 cmp r0, #0 beq _0808493C ldr r0, _0808498C @ =gUnk_03004040 ldrb r1, [r4, #0xa] lsls r1, r1, #2 adds r1, r1, r0 ldr r0, [r1] str r5, [r0, #0x70] _0808493C: ldr r0, _08084990 @ =0x00000315 adds r1, r4, #0 adds r1, #0x74 ldrh r1, [r1] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_08000152 ldrb r1, [r4, #0xa] adds r1, #1 ldr r0, _08084980 @ =gUnk_03003F80 ldr r0, [r0, #0x2c] adds r0, #0x68 ldrb r3, [r0] movs r0, #1 movs r2, #0 bl sub_08077CF8 str r0, [r4, #0x54] cmp r0, #0 beq _0808496A str r4, [r0, #0x50] _0808496A: adds r0, r4, #0 bl sub_0801766C adds r0, r4, #0 bl sub_0806FDA0 adds r0, r4, #0 bl sub_080849D8 b _080849D6 .align 2, 0 _08084980: .4byte gUnk_03003F80 _08084984: .4byte gUnk_08120574 _08084988: .4byte gUnk_03001160 _0808498C: .4byte gUnk_03004040 _08084990: .4byte 0x00000315 _08084994: cmp r0, #4 beq _080849C4 ldr r0, _080849BC @ =0x00000315 adds r1, r4, #0 adds r1, #0x74 ldrh r1, [r1] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_08000152 ldr r1, _080849C0 @ =gUnk_03004040 ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 movs r1, #0 str r1, [r0] bl sub_0805E780 b _080849D6 .align 2, 0 _080849BC: .4byte 0x00000315 _080849C0: .4byte gUnk_03004040 _080849C4: ldrb r2, [r4, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #1 eors r1, r0 subs r0, #5 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] _080849D6: pop {r4, r5, pc} thumb_func_start sub_080849D8 sub_080849D8: @ 0x080849D8 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] adds r1, r0, #0 cmp r1, #1 bne _080849EE movs r0, #0x76 bl sub_080A3268 ldrb r0, [r4, #0xf] b _080849F2 _080849EE: cmp r1, #0 beq _080849F6 _080849F2: subs r0, #1 strb r0, [r4, #0xf] _080849F6: ldr r2, _08084A3C @ =gUnk_03003F80 adds r3, r2, #0 adds r3, #0xa0 ldrb r0, [r3] cmp r0, #5 beq _08084A04 b _08084AF8 _08084A04: ldr r0, _08084A40 @ =gUnk_03004040 ldrb r1, [r4, #0xa] lsls r1, r1, #2 adds r1, r1, r0 ldr r0, [r1] cmp r0, #0 beq _08084AF8 adds r0, r2, #0 adds r0, #0xa8 ldrb r0, [r0] cmp r0, #0x13 beq _08084AF8 adds r0, r4, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 beq _08084AF8 ldr r5, _08084A44 @ =gUnk_03001160 adds r0, r5, #0 adds r0, #0x3d ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08084A48 movs r0, #1 strb r0, [r3] b _08084AF8 .align 2, 0 _08084A3C: .4byte gUnk_03003F80 _08084A40: .4byte gUnk_03004040 _08084A44: .4byte gUnk_03001160 _08084A48: adds r0, r4, #0 bl sub_080002B8 adds r0, r4, #0 bl sub_08084B1C adds r0, r4, #0 adds r0, #0x78 ldrh r0, [r0] ldrh r1, [r5, #0x2e] adds r0, r0, r1 strh r0, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x7a ldrh r0, [r0] ldrh r5, [r5, #0x32] adds r0, r0, r5 strh r0, [r4, #0x32] adds r0, r4, #0 bl sub_08084CAC adds r0, r4, #0 bl sub_080085B0 ldrh r2, [r4, #0x2a] ldr r1, _08084AB8 @ =0x00006666 adds r0, r1, #0 ands r0, r2 cmp r0, r1 beq _08084AEA movs r3, #0 ldr r5, _08084ABC @ =gUnk_0812056C ldrh r1, [r5] adds r0, r1, #0 ands r0, r2 cmp r1, r0 beq _08084AA6 adds r2, r5, #0 _08084A94: adds r2, #2 adds r3, #1 cmp r3, #3 bhi _08084AA6 ldrh r1, [r2] ldrh r0, [r4, #0x2a] ands r0, r1 cmp r1, r0 bne _08084A94 _08084AA6: cmp r3, #4 bne _08084AC0 movs r0, #0 strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #4 ands r0, r1 movs r1, #1 b _08084ADE .align 2, 0 _08084AB8: .4byte 0x00006666 _08084ABC: .4byte gUnk_0812056C _08084AC0: ldrb r0, [r4, #0xe] cmp r0, #0 beq _08084AE4 subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 beq _08084AEA ldrb r2, [r4, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #1 eors r1, r0 subs r0, #5 ands r0, r2 _08084ADE: orrs r0, r1 strb r0, [r4, #0x18] b _08084B16 _08084AE4: movs r0, #0x1e strb r0, [r4, #0xe] b _08084B16 _08084AEA: ldr r0, _08084AF4 @ =gUnk_03003F80 adds r0, #0xa0 movs r1, #1 strb r1, [r0] b _08084B16 .align 2, 0 _08084AF4: .4byte gUnk_03003F80 _08084AF8: bl sub_0807A108 adds r0, r4, #0 movs r1, #0x30 movs r2, #0 bl sub_080A29AC ldr r0, [r4, #0x54] bl sub_0805E7BC ldr r0, _08084B18 @ =0x0000018F bl sub_080A3268 bl sub_0805E780 _08084B16: pop {r4, r5, pc} .align 2, 0 _08084B18: .4byte 0x0000018F thumb_func_start sub_08084B1C sub_08084B1C: @ 0x08084B1C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r4, r0, #0 ldr r3, _08084CA4 @ =gUnk_03001160 ldrb r0, [r3, #0x10] strb r0, [r4, #0x10] adds r0, r3, #0 adds r0, #0x60 ldrh r1, [r0] adds r0, r4, #0 adds r0, #0x60 strh r1, [r0] ldrb r0, [r3, #0x1e] strb r0, [r4, #0x1e] adds r0, r3, #0 adds r0, #0x5b ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x5b strb r0, [r1] ldrh r0, [r3, #0x12] strh r0, [r4, #0x12] ldrb r0, [r3, #0x15] strb r0, [r4, #0x15] ldrb r0, [r3, #0x14] strb r0, [r4, #0x14] ldrb r0, [r3, #0x18] movs r1, #1 mov r8, r1 movs r1, #0x40 ands r1, r0 ldrb r2, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 mov sb, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] ldrb r1, [r3, #0x19] lsrs r1, r1, #6 lsls r1, r1, #6 ldrb r2, [r4, #0x19] movs r7, #0x3f adds r0, r7, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x19] adds r0, r3, #0 adds r0, #0x29 ldrb r1, [r0] lsls r1, r1, #0x1d movs r0, #0x29 adds r0, r0, r4 mov ip, r0 movs r6, #7 lsrs r1, r1, #0x1d ldrb r2, [r0] movs r0, #8 rsbs r0, r0, #0 mov sl, r0 ands r0, r2 orrs r0, r1 mov r1, ip strb r0, [r1] ldrb r1, [r3, #0x1b] lsrs r1, r1, #6 lsls r1, r1, #6 ldrb r2, [r4, #0x1b] adds r0, r7, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x1b] adds r0, r3, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] adds r0, r3, #0 adds r0, #0x3b ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x3b strb r0, [r1] adds r0, r3, #0 adds r0, #0x3f ldrb r0, [r0] adds r1, #4 strb r0, [r1] adds r0, r3, #0 adds r0, #0x3c ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x3c strb r1, [r0] adds r0, r3, #0 adds r0, #0x40 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x40 strb r1, [r0] ldr r1, [r4, #0x54] adds r0, r4, #0 bl sub_0806FA24 ldr r5, _08084CA8 @ =gUnk_03003F80 ldrb r0, [r5, #4] cmp r0, #0 beq _08084C6A ldr r1, [r4, #0x54] ldr r0, [r5, #0x2c] adds r0, #0x44 ldrb r0, [r0] adds r1, #0x44 strb r0, [r1] ldr r1, [r4, #0x54] ldr r0, [r5, #0x2c] ldrb r0, [r0, #0x1e] strb r0, [r1, #0x1e] ldr r3, [r4, #0x54] ldr r0, [r5, #0x2c] ldrb r1, [r0, #0x18] lsls r1, r1, #0x19 lsrs r1, r1, #0x1f mov r0, r8 ands r1, r0 lsls r1, r1, #6 ldrb r2, [r3, #0x18] mov r0, sb ands r0, r2 orrs r0, r1 strb r0, [r3, #0x18] ldr r3, [r4, #0x54] ldr r0, [r5, #0x2c] ldrb r1, [r0, #0x19] lsrs r1, r1, #6 lsls r1, r1, #6 ldrb r2, [r3, #0x19] adds r0, r7, #0 ands r0, r2 orrs r0, r1 strb r0, [r3, #0x19] ldr r2, [r4, #0x54] ldr r0, [r5, #0x2c] adds r0, #0x29 ldrb r0, [r0] lsls r0, r0, #0x1d lsrs r0, r0, #0x1d adds r2, #0x29 ands r6, r0 ldrb r1, [r2] mov r0, sl ands r0, r1 orrs r0, r6 strb r0, [r2] ldr r1, [r4, #0x54] ldrb r0, [r1, #0x18] lsls r0, r0, #0x19 cmp r0, #0 bge _08084C6A ldr r1, [r1, #0x48] ldrb r0, [r1] rsbs r0, r0, #0 strb r0, [r1] _08084C6A: 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 ldr r0, [r4, #0x54] adds r1, r4, #0 bl sub_08078E84 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _08084CA4: .4byte gUnk_03001160 _08084CA8: .4byte gUnk_03003F80 thumb_func_start sub_08084CAC sub_08084CAC: @ 0x08084CAC push {r4, r5, r6, r7, lr} adds r5, r0, #0 ldr r6, _08084D18 @ =gUnk_03004040 ldrb r0, [r5, #0xa] lsls r0, r0, #2 adds r0, r0, r6 ldr r0, [r0] ldr r0, [r0, #0x70] cmp r0, #0 bne _08084D32 ldrb r0, [r5, #0x14] movs r2, #6 ands r2, r0 lsls r2, r2, #1 ldr r0, _08084D1C @ =gUnk_080B4468 adds r2, r2, r0 movs r1, #0x2e ldrsh r0, [r5, r1] movs r3, #0 ldrsh r1, [r2, r3] adds r0, r0, r1 ldr r4, _08084D20 @ =gUnk_03000BF0 ldrh r1, [r4, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r3, #0x3f ands r0, r3 movs r7, #0x32 ldrsh r1, [r5, r7] movs r7, #2 ldrsh r2, [r2, r7] 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] bl sub_080002B0 bl sub_080002E4 cmp r0, #0x72 bne _08084D24 ldr r2, [r6] movs r1, #1 ldrb r5, [r5, #0xa] lsls r1, r5 ldr r0, [r2, #0x6c] orrs r0, r1 b _08084D30 .align 2, 0 _08084D18: .4byte gUnk_03004040 _08084D1C: .4byte gUnk_080B4468 _08084D20: .4byte gUnk_03000BF0 _08084D24: ldr r2, [r6] movs r1, #1 ldrb r5, [r5, #0xa] lsls r1, r5 ldr r0, [r2, #0x6c] bics r0, r1 _08084D30: str r0, [r2, #0x6c] _08084D32: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08084D34 sub_08084D34: @ 0x08084D34 push {r4, lr} adds r4, r0, #0 bl sub_0805E3B0 cmp r0, #0 bne _08084D50 ldr r0, _08084D54 @ =gUnk_0812057C ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _08084D50: pop {r4, pc} .align 2, 0 _08084D54: .4byte gUnk_0812057C thumb_func_start sub_08084D58 sub_08084D58: @ 0x08084D58 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r7, r0, #0 ldrb r0, [r7, #0xa] cmp r0, #3 bne _08084D6C adds r0, r7, #0 bl sub_08084F8C _08084D6C: adds r0, r7, #0 bl sub_08004168 ldrb r0, [r7, #0xa] cmp r0, #4 bne _08084D7E adds r0, r7, #0 bl sub_08084F8C _08084D7E: movs r0, #2 strb r0, [r7, #0xc] ldrb r0, [r7, #0x10] movs r2, #0x80 orrs r0, r2 strb r0, [r7, #0x10] ldrb r1, [r7, #0x19] movs r5, #0x3f adds r0, r5, #0 ands r0, r1 orrs r0, r2 strb r0, [r7, #0x19] ldr r0, _08084E48 @ =gUnk_08120588 mov r8, r0 ldrb r0, [r7, #0xa] lsls r0, r0, #2 add r0, r8 ldrb r0, [r0, #1] strb r0, [r7, #0x1d] ldrb r0, [r7, #0xa] lsls r0, r0, #2 add r0, r8 ldrb r0, [r0, #2] strb r0, [r7, #0x1c] movs r2, #0 movs r0, #0x80 strh r0, [r7, #0x24] ldr r0, _08084E4C @ =gUnk_03001160 adds r0, #0x38 ldrb r0, [r0] adds r6, r7, #0 adds r6, #0x38 strb r0, [r6] adds r1, r7, #0 adds r1, #0x45 movs r0, #1 strb r0, [r1] subs r1, #9 movs r0, #7 strb r0, [r1] adds r1, #3 movs r0, #0x6e strb r0, [r1] subs r1, #4 movs r0, #4 strb r0, [r1] ldr r0, _08084E50 @ =gUnk_081205B4 str r0, [r7, #0x48] adds r0, r7, #0 adds r0, #0x72 strb r2, [r0] movs r1, #0x2e ldrsh r0, [r7, r1] ldr r4, _08084E54 @ =gUnk_03000BF0 ldrh r1, [r4, #6] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r5 movs r2, #0x32 ldrsh r1, [r7, r2] ldrh r2, [r4, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r5 lsls r1, r1, #6 orrs r0, r1 ldrb r1, [r6] bl sub_080001DA adds r1, r7, #0 adds r1, #0x70 strh r0, [r1] ldr r0, _08084E58 @ =0x00004022 movs r3, #0x2e ldrsh r1, [r7, r3] ldrh r2, [r4, #6] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r5 movs r3, #0x32 ldrsh r2, [r7, r3] ldrh r3, [r4, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r5 lsls r2, r2, #6 orrs r1, r2 ldrb r2, [r6] bl sub_0800015E ldrb r0, [r7, #0xa] lsls r0, r0, #2 add r0, r8 ldrb r1, [r0] adds r0, r7, #0 bl sub_08004260 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08084E48: .4byte gUnk_08120588 _08084E4C: .4byte gUnk_03001160 _08084E50: .4byte gUnk_081205B4 _08084E54: .4byte gUnk_03000BF0 _08084E58: .4byte 0x00004022 thumb_func_start sub_08084E5C sub_08084E5C: @ 0x08084E5C push {r4, r5, lr} adds r4, r0, #0 ldr r0, _08084EAC @ =gUnk_03003F80 ldrb r1, [r0, #0x1c] movs r0, #0xf ands r0, r1 cmp r0, #1 bne _08084E7A adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0x13 beq _08084EA8 _08084E7A: movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _08084EB0 @ =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 bl sub_0805E780 _08084EA8: pop {r4, r5, pc} .align 2, 0 _08084EAC: .4byte gUnk_03003F80 _08084EB0: .4byte gUnk_03000BF0 thumb_func_start sub_08084EB4 sub_08084EB4: @ 0x08084EB4 push {lr} ldr r2, _08084EC8 @ =gUnk_0812059C ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08084EC8: .4byte gUnk_0812059C thumb_func_start sub_08084ECC sub_08084ECC: @ 0x08084ECC push {lr} movs r1, #1 strb r1, [r0, #0xd] bl sub_08084ED8 pop {pc} thumb_func_start sub_08084ED8 sub_08084ED8: @ 0x08084ED8 push {r4, lr} adds r4, r0, #0 bl sub_08084E5C adds r0, r4, #0 bl sub_0806F4E8 ldrb r0, [r4, #0x1d] cmp r0, #0 beq _08084EFA subs r0, #1 strb r0, [r4, #0x1d] lsls r0, r0, #0x18 cmp r0, #0 bne _08084EFA movs r0, #2 strb r0, [r4, #0xd] _08084EFA: pop {r4, pc} thumb_func_start sub_08084EFC sub_08084EFC: @ 0x08084EFC push {r4, r5, r6, lr} adds r5, r0, #0 adds r2, r5, #0 adds r2, #0x72 ldrb r1, [r2] cmp r1, #0 bne _08084F42 movs r0, #1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x62 strb r1, [r0] adds r0, #0xe ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _08084F7C @ =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_0807B9B8 _08084F42: ldr r0, _08084F80 @ =gUnk_03003F80 ldrb r1, [r0, #0x1c] movs r0, #0xf ands r0, r1 cmp r0, #1 bne _08084F5C adds r0, r5, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0x13 beq _08084F62 _08084F5C: adds r0, r5, #0 bl sub_08084F8C _08084F62: adds r0, r5, #0 bl sub_0806F3E4 cmp r0, #0 beq _08084F7A ldrb r1, [r5, #0x1c] movs r0, #0xf ands r0, r1 cmp r0, #1 bne _08084F7A bl sub_0805E780 _08084F7A: pop {r4, r5, r6, pc} .align 2, 0 _08084F7C: .4byte gUnk_03000BF0 _08084F80: .4byte gUnk_03003F80 thumb_func_start sub_08084F84 sub_08084F84: @ 0x08084F84 bx lr .align 2, 0 thumb_func_start sub_08084F88 sub_08084F88: @ 0x08084F88 bx lr .align 2, 0 thumb_func_start sub_08084F8C sub_08084F8C: @ 0x08084F8C push {lr} ldrb r1, [r0, #0xb] cmp r1, #0xf beq _08084FA4 cmp r1, #0xf bgt _08084F9E cmp r1, #0 beq _08084FB8 b _08084FAE _08084F9E: cmp r1, #0xff bne _08084FAE b _08084FB8 _08084FA4: ldrb r1, [r0, #0xe] movs r2, #0x80 bl sub_080A29AC b _08084FB8 _08084FAE: ldrb r1, [r0, #0xb] ldrb r2, [r0, #0xe] movs r3, #0 bl sub_080A2988 _08084FB8: bl sub_0805E780 pop {pc} .align 2, 0 thumb_func_start sub_08084FC0 sub_08084FC0: @ 0x08084FC0 push {lr} ldr r2, _08084FD4 @ =gUnk_081205BC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08084FD4: .4byte gUnk_081205BC thumb_func_start sub_08084FD8 sub_08084FD8: @ 0x08084FD8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 bne _0808500C adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _08084FF4 bl sub_0805E780 _08084FF4: movs r0, #1 strb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 bl sub_080850FC b _0808501C _0808500C: movs r0, #2 strb r0, [r4, #0xc] movs r0, #0xf0 strb r0, [r4, #0xe] movs r0, #0x80 strh r0, [r4, #0x24] movs r0, #0x18 strb r0, [r4, #0x15] _0808501C: movs r0, #0 strb r0, [r4, #0x1e] pop {r4, pc} .align 2, 0 thumb_func_start nullsub_115 nullsub_115: @ 0x08085024 bx lr .align 2, 0 thumb_func_start sub_08085028 sub_08085028: @ 0x08085028 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080850A6 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x63 movs r0, #4 strb r0, [r1] ldr r0, _080850A8 @ =gUnk_03000F50 mov ip, r0 ldrh r1, [r0] movs r2, #0x80 lsls r2, r2, #6 adds r0, r2, #0 orrs r0, r1 mov r1, ip strh r0, [r1] adds r1, #0x60 movs r0, #0x1f strh r0, [r1] adds r1, #2 movs r0, #0xf strh r0, [r1] movs r2, #0x2e ldrsh r0, [r4, r2] ldr r3, _080850AC @ =gUnk_03000BF0 movs r2, #0xa ldrsh r1, [r3, r2] subs r0, r0, r1 adds r1, r0, #0 subs r1, #0x18 movs r2, #0xff ands r1, r2 lsls r1, r1, #8 adds r0, #0x18 ands r0, r2 orrs r1, r0 mov r0, ip adds r0, #0x58 strh r1, [r0] movs r1, #0x32 ldrsh r0, [r4, r1] movs r4, #0xc ldrsh r1, [r3, r4] subs r0, r0, r1 adds r1, r0, #0 subs r1, #0x18 ands r1, r2 lsls r1, r1, #8 adds r0, #0x18 ands r0, r2 orrs r1, r0 mov r0, ip adds r0, #0x5c strh r1, [r0] _080850A6: pop {r4, pc} .align 2, 0 _080850A8: .4byte gUnk_03000F50 _080850AC: .4byte gUnk_03000BF0 thumb_func_start sub_080850B0 sub_080850B0: @ 0x080850B0 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 _080850C8 movs r0, #4 strb r0, [r1, #0xc] movs r0, #0x60 strb r0, [r1, #0xe] _080850C8: pop {pc} .align 2, 0 thumb_func_start sub_080850CC sub_080850CC: @ 0x080850CC push {r4, lr} adds r4, r0, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080850F0 ldr r2, _080850F4 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _080850F8 @ =0x0000DFFF ands r0, r1 strh r0, [r2] adds r0, r4, #0 bl sub_0805E7BC _080850F0: pop {r4, pc} .align 2, 0 _080850F4: .4byte gUnk_03000F50 _080850F8: .4byte 0x0000DFFF thumb_func_start sub_080850FC sub_080850FC: @ 0x080850FC push {r4, r5, r6, lr} movs r1, #0x2e ldrsh r4, [r0, r1] ldr r2, _0808518C @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r4, r4, r1 asrs r4, r4, #4 movs r3, #0x3f ands r4, r3 movs r5, #0x32 ldrsh r1, [r0, r5] ldrh r2, [r2, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r3 lsls r1, r1, #6 orrs r4, r1 adds r0, #0x38 ldrb r6, [r0] ldr r5, _08085190 @ =0x0000403D adds r1, r4, #0 subs r1, #0x41 adds r0, r5, #0 adds r2, r6, #0 bl sub_0800015E adds r1, r4, #0 subs r1, #0x40 adds r0, r5, #0 adds r2, r6, #0 bl sub_0800015E adds r1, r4, #0 subs r1, #0x3f adds r0, r5, #0 adds r2, r6, #0 bl sub_0800015E subs r1, r4, #1 adds r0, r5, #0 adds r2, r6, #0 bl sub_0800015E adds r0, r5, #0 adds r1, r4, #0 adds r2, r6, #0 bl sub_0800015E adds r1, r4, #1 adds r0, r5, #0 adds r2, r6, #0 bl sub_0800015E adds r1, r4, #0 adds r1, #0x3f adds r0, r5, #0 adds r2, r6, #0 bl sub_0800015E adds r1, r4, #0 adds r1, #0x40 adds r0, r5, #0 adds r2, r6, #0 bl sub_0800015E adds r4, #0x41 adds r0, r5, #0 adds r1, r4, #0 adds r2, r6, #0 bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 _0808518C: .4byte gUnk_03000BF0 _08085190: .4byte 0x0000403D thumb_func_start sub_08085194 sub_08085194: @ 0x08085194 push {lr} ldr r2, _080851A8 @ =gUnk_081205D0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080851A8: .4byte gUnk_081205D0 thumb_func_start sub_080851AC sub_080851AC: @ 0x080851AC push {r4, r5, r6, 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] adds r2, r5, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] ldrb r1, [r5, #0xb] adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _080851E8 adds r1, r5, #0 adds r1, #0x7c ldr r0, _080851E4 @ =0x0000FFFF strh r0, [r1] b _080851EE .align 2, 0 _080851E4: .4byte 0x0000FFFF _080851E8: adds r0, r5, #0 adds r0, #0x7c strh r3, [r0] _080851EE: ldrb r1, [r5, #0xb] movs r0, #2 ands r0, r1 strb r0, [r5, #0x14] ldrb r4, [r5, #0xa] cmp r4, #3 bne _0808521E adds r0, r5, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 adds r1, r5, #0 adds r1, #0x7a strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 beq _0808521E ldrb r0, [r5, #0x14] adds r0, #2 movs r1, #3 ands r0, r1 strb r0, [r5, #0x14] strb r4, [r5, #0xc] _0808521E: ldrb r1, [r5, #0x14] adds r0, r5, #0 bl sub_08004260 adds r0, r5, #0 adds r0, #0x38 ldrb r0, [r0] bl sub_0808094C movs r1, #0x2e ldrsh r2, [r5, r1] ldr r3, _08085260 @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r2, r2, r1 asrs r2, r2, #4 movs r4, #0x3f ands r2, r4 movs r6, #0x32 ldrsh r1, [r5, r6] ldrh r3, [r3, #8] subs r1, r1, r3 asrs r1, r1, #4 ands r1, r4 lsls r1, r1, #6 orrs r2, r1 lsls r2, r2, #1 adds r2, #4 adds r0, r0, r2 str r0, [r5, #0x70] adds r0, r5, #0 bl sub_08085394 pop {r4, r5, r6, pc} .align 2, 0 _08085260: .4byte gUnk_03000BF0 thumb_func_start sub_08085264 sub_08085264: @ 0x08085264 push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x86 ldrh r0, [r5] bl sub_0807CBE4 cmp r0, #0 beq _080852AE movs r0, #2 strb r0, [r4, #0xc] movs r0, #8 strb r0, [r4, #0xf] ldrb r0, [r4, #0xa] cmp r0, #1 bne _0808528A ldrh r0, [r5] bl sub_0807CD48 _0808528A: adds r0, r4, #0 adds r0, #0x7c ldrb r0, [r0] ldrb r1, [r4, #0x14] adds r0, r0, r1 movs r1, #3 ands r0, r1 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_0808543C ldr r0, _080852B0 @ =0x00000151 bl sub_08004488 _080852AE: pop {r4, r5, pc} .align 2, 0 _080852B0: .4byte 0x00000151 thumb_func_start sub_080852B4 sub_080852B4: @ 0x080852B4 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xf] subs r0, #1 strb r0, [r5, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08085300 movs r4, #3 movs r0, #3 strb r0, [r5, #0xc] ldrb r0, [r5, #0xe] strb r0, [r5, #0xf] adds r0, r5, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 adds r1, r5, #0 adds r1, #0x7a strh r0, [r1] adds r0, r5, #0 adds r0, #0x7c ldrb r0, [r0] ldrb r1, [r5, #0x14] adds r0, r0, r1 ands r0, r4 strb r0, [r5, #0x14] ldrb r1, [r5, #0x14] adds r0, r5, #0 bl sub_08004260 adds r0, r5, #0 bl sub_08085394 ldr r0, _08085304 @ =0x00000151 bl sub_08004488 _08085300: pop {r4, r5, pc} .align 2, 0 _08085304: .4byte 0x00000151 thumb_func_start sub_08085308 sub_08085308: @ 0x08085308 push {r4, lr} adds r4, r0, #0 bl sub_080854A8 cmp r0, #0 bne _0808538C ldrb r0, [r4, #0xa] cmp r0, #2 beq _08085324 cmp r0, #2 ble _08085354 cmp r0, #3 beq _08085338 b _08085354 _08085324: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 bne _08085354 movs r0, #1 strb r0, [r4, #0xc] b _0808538C _08085338: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 adds r1, r4, #0 adds r1, #0x7a ldrh r1, [r1] cmp r0, r1 bne _08085350 movs r0, #0xff b _08085352 _08085350: movs r0, #1 _08085352: strb r0, [r4, #0xf] _08085354: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0808538C movs r0, #2 strb r0, [r4, #0xc] movs r0, #8 strb r0, [r4, #0xf] adds r0, r4, #0 adds r0, #0x7c ldrb r0, [r0] ldrb r1, [r4, #0x14] adds r0, r0, r1 movs r1, #3 ands r0, r1 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_0808543C ldr r0, _08085390 @ =0x00000151 bl sub_08004488 _0808538C: pop {r4, pc} .align 2, 0 _08085390: .4byte 0x00000151 thumb_func_start sub_08085394 sub_08085394: @ 0x08085394 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r7, r0, #0 ldr r0, _08085430 @ =gUnk_081205E0 ldrb r2, [r7, #0x14] lsrs r2, r2, #1 lsls r2, r2, #1 adds r0, r2, r0 ldrh r0, [r0] mov sl, r0 ldr r0, _08085434 @ =gUnk_080B4488 adds r2, r2, r0 ldr r0, [r7, #0x70] mov sb, r0 movs r1, #0x2e ldrsh r4, [r7, r1] ldr r1, _08085438 @ =gUnk_03000BF0 ldrh r0, [r1, #6] subs r4, r4, r0 asrs r4, r4, #4 movs r3, #0x3f ands r4, r3 movs r5, #0x32 ldrsh r0, [r7, r5] ldrh r1, [r1, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r4, r0 ldrb r2, [r2] lsls r2, r2, #0x18 asrs r2, r2, #0x18 mov r8, r2 lsls r5, r2, #1 mov r1, sb subs r0, r1, r5 ldrh r1, [r0] adds r0, r7, #0 adds r0, #0x74 strh r1, [r0] subs r1, r4, r2 adds r6, r7, #0 adds r6, #0x38 ldrb r2, [r6] mov r0, sl bl sub_0800015E mov r1, sb ldrh r0, [r1] adds r1, r7, #0 adds r1, #0x76 strh r0, [r1] ldrb r2, [r6] mov r0, sl adds r1, r4, #0 bl sub_0800015E add r5, sb ldrh r1, [r5] adds r0, r7, #0 adds r0, #0x78 strh r1, [r0] add r4, r8 ldrb r2, [r6] mov r0, sl adds r1, r4, #0 bl sub_0800015E pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _08085430: .4byte gUnk_081205E0 _08085434: .4byte gUnk_080B4488 _08085438: .4byte gUnk_03000BF0 thumb_func_start sub_0808543C sub_0808543C: @ 0x0808543C push {r4, r5, r6, r7, lr} adds r7, r0, #0 ldr r0, _080854A0 @ =gUnk_080B4488 ldrb r2, [r7, #0x14] lsrs r2, r2, #1 lsls r2, r2, #1 adds r2, r2, r0 movs r0, #0x2e ldrsh r4, [r7, r0] ldr r1, _080854A4 @ =gUnk_03000BF0 ldrh r0, [r1, #6] subs r4, r4, r0 asrs r4, r4, #4 movs r3, #0x3f ands r4, r3 movs r5, #0x32 ldrsh r0, [r7, r5] ldrh r1, [r1, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r4, r0 adds r0, r7, #0 adds r0, #0x74 ldrh r0, [r0] movs r6, #0 ldrsb r6, [r2, r6] subs r1, r4, r6 adds r5, r7, #0 adds r5, #0x38 ldrb r2, [r5] bl sub_0800015E adds r0, r7, #0 adds r0, #0x76 ldrh r0, [r0] ldrb r2, [r5] adds r1, r4, #0 bl sub_0800015E adds r0, r7, #0 adds r0, #0x78 ldrh r0, [r0] adds r4, r4, r6 ldrb r2, [r5] adds r1, r4, #0 bl sub_0800015E pop {r4, r5, r6, r7, pc} .align 2, 0 _080854A0: .4byte gUnk_080B4488 _080854A4: .4byte gUnk_03000BF0 thumb_func_start sub_080854A8 sub_080854A8: @ 0x080854A8 push {r4, lr} ldr r2, _080854E0 @ =gUnk_081205E0 ldrb r1, [r0, #0x14] lsrs r1, r1, #1 lsls r1, r1, #1 adds r2, r1, r2 ldrh r3, [r2] adds r4, r3, #0 ldr r2, _080854E4 @ =gUnk_080B4488 adds r1, r1, r2 ldr r2, [r0, #0x70] movs r0, #0 ldrsb r0, [r1, r0] lsls r1, r0, #1 subs r0, r2, r1 ldrh r0, [r0] cmp r3, r0 bne _080854E8 ldrh r0, [r2] cmp r3, r0 bne _080854E8 adds r0, r1, r2 ldrh r0, [r0] cmp r4, r0 bne _080854E8 movs r0, #0 b _080854EA .align 2, 0 _080854E0: .4byte gUnk_081205E0 _080854E4: .4byte gUnk_080B4488 _080854E8: movs r0, #1 _080854EA: pop {r4, pc} thumb_func_start sub_080854EC sub_080854EC: @ 0x080854EC push {lr} ldr r2, _08085500 @ =gUnk_08120608 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08085500: .4byte gUnk_08120608 thumb_func_start sub_08085504 sub_08085504: @ 0x08085504 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0xff bne _08085520 movs r0, #0x46 bl sub_0807CA84 cmp r0, #0 beq _0808551C bl sub_0805E780 _0808551C: movs r0, #0 strb r0, [r4, #0xa] _08085520: ldrb r0, [r4, #0xa] cmp r0, #0 beq _08085552 ldr r0, _08085540 @ =gUnk_02033A90 ldrb r0, [r0, #1] cmp r0, #0x1b beq _08085544 ldrb r0, [r4, #0xb] bl sub_0807CBD0 cmp r0, #0 bne _08085552 movs r0, #5 strb r0, [r4, #0xc] b _080855E2 .align 2, 0 _08085540: .4byte gUnk_02033A90 _08085544: ldrb r0, [r4, #0xb] bl sub_0807CBD0 cmp r0, #0 bne _08085552 bl sub_0805E780 _08085552: ldrb r0, [r4, #0xe] cmp r0, #0 beq _0808556C adds r0, r4, #0 bl sub_080040A2 cmp r0, #0 bne _08085566 bl sub_0805E780 _08085566: movs r0, #0 strb r0, [r4, #0xe] b _0808557A _0808556C: adds r0, r4, #0 bl sub_0805EABC cmp r0, #0 beq _0808557A bl sub_0805E780 _0808557A: movs r2, #1 strb r2, [r4, #0xc] movs r3, #0 movs r0, #0x80 lsls r0, r0, #1 strh r0, [r4, #0x24] movs r0, #0x29 adds r0, r0, r4 mov ip, r0 ldrb r1, [r0] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 mov r1, ip strb r0, [r1] ldr r0, _080855E4 @ =gUnk_08120640 str r0, [r4, #0x48] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] adds r0, r4, #0 adds r0, #0x3f strb r2, [r0] subs r1, #1 movs r0, #4 strb r0, [r1] movs r0, #0x80 lsls r0, r0, #0x11 str r0, [r4, #0x78] adds r1, #0x43 movs r0, #0x80 lsls r0, r0, #5 strh r0, [r1] adds r0, r4, #0 adds r0, #0x85 strb r3, [r0] subs r0, #1 strb r3, [r0] adds r0, r4, #0 movs r1, #9 bl sub_08004260 adds r0, r4, #0 bl sub_080855E8 _080855E2: pop {r4, pc} .align 2, 0 _080855E4: .4byte gUnk_08120640 thumb_func_start sub_080855E8 sub_080855E8: @ 0x080855E8 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r7, r0, #0 ldrb r1, [r7, #0x10] movs r0, #0x20 orrs r0, r1 strb r0, [r7, #0x10] ldr r6, _0808564C @ =gUnk_03001160 adds r0, r7, #0 adds r1, r6, #0 movs r2, #0x18 bl sub_0806FC80 adds r1, r0, #0 cmp r1, #0 beq _080856EE ldr r3, _08085650 @ =gUnk_03003F80 ldr r0, [r3, #0x30] movs r1, #2 orrs r0, r1 str r0, [r3, #0x30] ldr r4, [r6, #0x34] cmp r4, #0 beq _0808561C b _080857CE _0808561C: adds r5, r3, #0 adds r5, #0x26 ldrb r0, [r5] cmp r0, #0 beq _08085634 adds r2, r6, #0 adds r2, #0x3c ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] strb r4, [r5] _08085634: adds r0, r3, #0 adds r0, #0x84 str r7, [r0] adds r0, r7, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #1 bne _08085654 adds r0, r6, #0 bl sub_0800455E b _0808565A .align 2, 0 _0808564C: .4byte gUnk_03001160 _08085650: .4byte gUnk_03003F80 _08085654: adds r0, r6, #0 bl sub_08004542 _0808565A: ldrb r0, [r7, #0xf] cmp r0, #0 bne _0808568C movs r0, #4 strb r0, [r7, #0xf] _08085664: adds r0, r7, #0 movs r1, #8 movs r2, #0xa bl sub_080A2AF4 ldrb r0, [r7, #0xf] subs r0, #1 strb r0, [r7, #0xf] lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #0 bne _08085664 movs r0, #1 strb r0, [r7, #0xf] ldrb r1, [r7, #0xe] movs r0, #0x80 orrs r0, r1 strb r0, [r7, #0xe] str r2, [r7, #0x70] str r2, [r7, #0x6c] _0808568C: ldr r2, _080856B8 @ =gUnk_03003F80 ldrb r0, [r2, #0x1c] cmp r0, #3 beq _08085696 b _080857CE _08085696: ldr r1, _080856BC @ =gUnk_08120620 ldrb r0, [r2, #0x1d] subs r0, #1 lsls r0, r0, #2 adds r0, r0, r1 ldr r4, [r0] ldr r0, _080856C0 @ =gUnk_03001160 ldrb r0, [r0, #0x14] movs r1, #6 ands r1, r0 cmp r1, #2 beq _080856DE cmp r1, #2 bgt _080856C4 cmp r1, #0 beq _080856D6 b _080857CE .align 2, 0 _080856B8: .4byte gUnk_03003F80 _080856BC: .4byte gUnk_08120620 _080856C0: .4byte gUnk_03001160 _080856C4: cmp r1, #4 beq _080856CE cmp r1, #6 beq _080856E6 b _080857CE _080856CE: ldr r0, [r7, #0x70] subs r0, r0, r4 str r0, [r7, #0x70] b _080857CE _080856D6: ldr r0, [r7, #0x70] adds r0, r0, r4 str r0, [r7, #0x70] b _080857CE _080856DE: ldr r0, [r7, #0x6c] subs r0, r0, r4 str r0, [r7, #0x6c] b _080857CE _080856E6: ldr r0, [r7, #0x6c] adds r0, r0, r4 str r0, [r7, #0x6c] b _080857CE _080856EE: ldrb r0, [r7, #0xf] cmp r0, #0 beq _080856FC strb r1, [r7, #0xf] movs r0, #0x83 bl sub_080A3268 _080856FC: adds r2, r7, #0 adds r2, #0x41 ldrb r1, [r2] movs r0, #0x7f ands r0, r1 mov r8, r2 cmp r0, #0x13 bne _080857C8 movs r0, #0x2e ldrsh r1, [r6, r0] ldr r3, _08085758 @ =gUnk_08126EE4 ldrb r2, [r6, #0x14] movs r0, #0xe ands r0, r2 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r5, r1, r0 movs r0, #0x32 ldrsh r1, [r6, r0] movs r0, #1 orrs r0, r2 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r3, r1, r0 movs r1, #0x2e ldrsh r0, [r7, r1] movs r2, #0x32 ldrsh r1, [r7, r2] adds r2, r5, #0 bl sub_080045D4 strb r0, [r7, #0x15] ldr r0, _0808575C @ =gUnk_03003F80 ldrb r0, [r0, #0x1d] cmp r0, #2 beq _0808576A cmp r0, #2 bgt _08085760 cmp r0, #1 beq _08085770 b _08085774 .align 2, 0 _08085758: .4byte gUnk_08126EE4 _0808575C: .4byte gUnk_03003F80 _08085760: cmp r0, #3 bne _08085774 movs r4, #0x80 lsls r4, r4, #3 b _08085774 _0808576A: movs r4, #0xc0 lsls r4, r4, #2 b _08085774 _08085770: movs r4, #0x80 lsls r4, r4, #2 _08085774: ldr r6, _080858A8 @ =gUnk_080C9160 ldrb r0, [r7, #0x15] lsls r0, r0, #4 adds r0, r0, r6 movs r1, #0 ldrsh r0, [r0, r1] lsls r4, r4, #0x10 asrs r4, r4, #0x18 adds r1, r4, #0 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r5, #0x80 lsls r5, r5, #1 adds r1, r5, #0 bl sub_0806FA04 lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r7, #0x6c] adds r1, r1, r0 str r1, [r7, #0x6c] ldrb r0, [r7, #0x15] lsls r0, r0, #4 adds r0, #0x80 adds r0, r0, r6 movs r2, #0 ldrsh r0, [r0, r2] adds r1, r4, #0 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r5, #0 bl sub_0806FA04 lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r7, #0x70] subs r1, r1, r0 str r1, [r7, #0x70] _080857C8: movs r0, #0 mov r1, r8 strb r0, [r1] _080857CE: ldr r0, [r7, #0x2c] str r0, [r7, #0x54] ldr r0, [r7, #0x30] str r0, [r7, #0x50] ldr r0, [r7, #0x6c] cmp r0, #0 bne _080857E4 ldr r0, [r7, #0x70] cmp r0, #0 bne _080857E4 b _080859F4 _080857E4: ldr r0, [r7, #0x70] ldr r1, _080858AC @ =0xFFFF0000 cmp r0, r1 blt _080857F4 movs r1, #0x80 lsls r1, r1, #9 cmp r0, r1 ble _080857F6 _080857F4: str r1, [r7, #0x70] _080857F6: ldr r0, [r7, #0x6c] ldr r1, _080858AC @ =0xFFFF0000 cmp r0, r1 blt _08085806 movs r1, #0x80 lsls r1, r1, #9 cmp r0, r1 ble _08085808 _08085806: str r1, [r7, #0x6c] _08085808: ldr r0, _080858B0 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #0xf ands r0, r1 cmp r0, #0 bne _0808581A adds r0, r7, #0 bl sub_080A2AD4 _0808581A: ldr r0, [r7, #0x2c] ldr r1, [r7, #0x6c] adds r5, r0, r1 ldr r1, [r7, #0x30] ldr r2, [r7, #0x70] adds r3, r1, r2 adds r2, r5, #0 bl sub_080045D4 strb r0, [r7, #0x15] ldr r0, [r7, #0x6c] lsls r0, r0, #8 asrs r0, r0, #0x10 movs r4, #0x80 lsls r4, r4, #1 adds r1, r4, #0 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r5, _080858A8 @ =gUnk_080C9160 ldrb r1, [r7, #0x15] lsls r1, r1, #4 adds r1, r1, r5 movs r2, #0 ldrsh r1, [r1, r2] bl sub_0806FA04 strh r0, [r7, #0x24] ldr r0, [r7, #0x70] lsls r0, r0, #8 asrs r0, r0, #0x10 adds r1, r4, #0 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldrb r1, [r7, #0x15] lsls r1, r1, #4 adds r1, #0x80 adds r1, r1, r5 movs r2, #0 ldrsh r1, [r1, r2] bl sub_0806FA04 lsls r0, r0, #0x10 asrs r0, r0, #0x10 rsbs r4, r0, #0 movs r1, #0x24 ldrsh r0, [r7, r1] cmp r4, r0 ble _08085884 strh r4, [r7, #0x24] _08085884: ldrb r0, [r7, #0xb] cmp r0, #0 beq _080858BC adds r0, r7, #0 adds r0, #0x7e movs r2, #0 ldrsh r1, [r0, r2] ldr r0, _080858B4 @ =0x00000FFF cmp r1, r0 bgt _080858B8 movs r0, #0x24 ldrsh r1, [r7, r0] lsls r1, r1, #0xc ldr r0, [r7, #0x7c] adds r0, r0, r1 str r0, [r7, #0x7c] b _080858E0 .align 2, 0 _080858A8: .4byte gUnk_080C9160 _080858AC: .4byte 0xFFFF0000 _080858B0: .4byte gUnk_030010A0 _080858B4: .4byte 0x00000FFF _080858B8: movs r0, #0 b _080858DE _080858BC: adds r0, r7, #0 adds r0, #0x7e movs r2, #0 ldrsh r1, [r0, r2] ldr r0, _080858D8 @ =0xFFFFF000 cmp r1, r0 ble _080858DC movs r0, #0x24 ldrsh r1, [r7, r0] lsls r1, r1, #0xc ldr r0, [r7, #0x7c] subs r0, r0, r1 str r0, [r7, #0x7c] b _080858E0 .align 2, 0 _080858D8: .4byte 0xFFFFF000 _080858DC: movs r0, #1 _080858DE: strb r0, [r7, #0xb] _080858E0: adds r0, r7, #0 bl sub_08085EFC adds r0, r7, #0 bl sub_080AF134 ldr r1, [r7, #0x54] ldr r0, [r7, #0x2c] cmp r1, r0 bne _0808590C adds r0, r7, #0 adds r0, #0x85 ldrb r1, [r0] adds r2, r0, #0 cmp r1, #2 bne _08085906 movs r0, #0 str r0, [r7, #0x6c] b _08085916 _08085906: adds r0, r1, #1 strb r0, [r2] b _08085916 _0808590C: adds r1, r7, #0 adds r1, #0x85 movs r0, #0 strb r0, [r1] adds r2, r1, #0 _08085916: ldr r1, [r7, #0x50] ldr r0, [r7, #0x30] cmp r1, r0 bne _0808592E ldrb r0, [r2] cmp r0, #2 bne _0808592A movs r0, #0 str r0, [r7, #0x70] b _08085932 _0808592A: adds r0, #1 b _08085930 _0808592E: movs r0, #0 _08085930: strb r0, [r2] _08085932: ldr r0, _0808595C @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #2 ands r0, r1 cmp r0, #0 beq _08085944 adds r0, r7, #0 bl sub_08085F1C _08085944: ldr r1, [r7, #0x6c] cmp r1, #0 beq _08085998 cmp r1, #0 bge _0808596E movs r0, #0x80 rsbs r0, r0, #0 cmp r1, r0 ble _08085960 movs r0, #0 b _08085964 .align 2, 0 _0808595C: .4byte gUnk_03003F80 _08085960: adds r0, r1, #0 adds r0, #0x80 _08085964: str r0, [r7, #0x6c] ldrh r2, [r7, #0x2a] movs r1, #0xe0 lsls r1, r1, #4 b _08085982 _0808596E: cmp r1, #0x7f bhi _08085976 movs r0, #0 b _0808597A _08085976: adds r0, r1, #0 subs r0, #0x80 _0808597A: str r0, [r7, #0x6c] ldrh r2, [r7, #0x2a] movs r1, #0xe0 lsls r1, r1, #8 _08085982: adds r0, r1, #0 ands r0, r2 cmp r0, r1 bne _08085998 ldr r0, [r7, #0x6c] cmp r0, #0 bge _08085992 adds r0, #3 _08085992: asrs r0, r0, #2 rsbs r0, r0, #0 str r0, [r7, #0x6c] _08085998: ldr r1, [r7, #0x70] cmp r1, #0 beq _080859E6 cmp r1, #0 bge _080859C0 movs r0, #0x80 rsbs r0, r0, #0 cmp r1, r0 ble _080859AE movs r0, #0 b _080859B2 _080859AE: adds r0, r1, #0 adds r0, #0x80 _080859B2: str r0, [r7, #0x70] ldrh r1, [r7, #0x2a] movs r0, #0xe ands r0, r1 cmp r0, #0xe bne _080859E6 b _080859D8 _080859C0: cmp r1, #0x7f bhi _080859C8 movs r0, #0 b _080859CC _080859C8: adds r0, r1, #0 subs r0, #0x80 _080859CC: str r0, [r7, #0x70] ldrh r1, [r7, #0x2a] movs r0, #0xe0 ands r0, r1 cmp r0, #0xe0 bne _080859E6 _080859D8: ldr r0, [r7, #0x70] cmp r0, #0 bge _080859E0 adds r0, #3 _080859E0: asrs r0, r0, #2 rsbs r0, r0, #0 str r0, [r7, #0x70] _080859E6: adds r0, r7, #0 bl sub_08085D28 adds r0, r7, #0 bl sub_08085D60 b _08085A0A _080859F4: ldr r0, _08085A18 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #0x1f ands r0, r1 cmp r0, #0 bne _08085A0A adds r0, r7, #0 movs r1, #8 movs r2, #0xa bl sub_080A2AF4 _08085A0A: adds r0, r7, #0 bl sub_08085F48 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08085A18: .4byte gUnk_030010A0 thumb_func_start sub_08085A1C sub_08085A1C: @ 0x08085A1C push {lr} ldr r2, _08085A3C @ =gUnk_0812062C ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 ldr r2, _08085A40 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #2 orrs r0, r1 str r0, [r2, #0x30] bl sub_08078B48 pop {pc} .align 2, 0 _08085A3C: .4byte gUnk_0812062C _08085A40: .4byte gUnk_03003F80 thumb_func_start sub_08085A44 sub_08085A44: @ 0x08085A44 push {r4, lr} adds r4, r0, #0 movs r0, #0x80 lsls r0, r0, #2 strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #0x10 movs r2, #0x18 bl sub_080002B4 cmp r0, #0x11 beq _08085A62 movs r0, #0x18 strb r0, [r4, #0x15] b _08085A82 _08085A62: movs r1, #0x10 rsbs r1, r1, #0 adds r0, r4, #0 movs r2, #0x18 bl sub_080002B4 cmp r0, #0x11 beq _08085A78 movs r0, #8 strb r0, [r4, #0x15] b _08085A82 _08085A78: movs r0, #0x10 strb r0, [r4, #0x15] movs r0, #1 strb r0, [r4, #0xd] b _08085A94 _08085A82: adds r0, r4, #0 bl sub_08085EFC adds r0, r4, #0 bl sub_080AF134 adds r0, r4, #0 bl sub_08085F1C _08085A94: pop {r4, pc} .align 2, 0 thumb_func_start sub_08085A98 sub_08085A98: @ 0x08085A98 push {r4, lr} adds r4, r0, #0 bl sub_08085EFC adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_08085F1C ldr r1, [r4, #0x78] ldr r0, _08085B00 @ =0x007FFFFF cmp r1, r0 bls _08085ACC ldr r2, _08085B04 @ =0xFFFE0000 adds r0, r1, r2 str r0, [r4, #0x78] adds r0, r4, #0 adds r0, #0x7a ldrh r2, [r0] adds r0, #4 ldrh r3, [r0] adds r0, r4, #0 adds r1, r2, #0 bl sub_0805EC9C _08085ACC: adds r0, r4, #0 movs r1, #0 movs r2, #0x18 bl sub_080002B4 cmp r0, #0x11 beq _08085B34 movs r0, #2 strb r0, [r4, #0xd] ldr r0, _08085B08 @ =gUnk_02033A90 ldrb r0, [r0, #1] cmp r0, #0x1b bne _08085B10 ldrh r0, [r4, #0x32] adds r0, #0xd0 strh r0, [r4, #0x32] ldr r0, _08085B0C @ =0x0000FF30 strh r0, [r4, #0x36] adds r1, r4, #0 adds r1, #0x82 movs r0, #0x46 strh r0, [r1] movs r0, #0x73 bl sub_0807CCB4 b _08085B22 .align 2, 0 _08085B00: .4byte 0x007FFFFF _08085B04: .4byte 0xFFFE0000 _08085B08: .4byte gUnk_02033A90 _08085B0C: .4byte 0x0000FF30 _08085B10: ldrh r0, [r4, #0x32] adds r0, #0x40 strh r0, [r4, #0x32] ldr r0, _08085B38 @ =0x0000FFC0 strh r0, [r4, #0x36] adds r1, r4, #0 adds r1, #0x82 movs r0, #0xf strh r0, [r1] _08085B22: adds r0, r4, #0 movs r1, #0x2b movs r2, #0 movs r3, #0 bl sub_080A2988 ldr r0, _08085B3C @ =0x0000012D bl sub_080A3268 _08085B34: pop {r4, pc} .align 2, 0 _08085B38: .4byte 0x0000FFC0 _08085B3C: .4byte 0x0000012D thumb_func_start sub_08085B40 sub_08085B40: @ 0x08085B40 push {r4, r5, lr} adds r5, r0, #0 ldr r0, [r5, #0x34] cmp r0, #0 beq _08085BB4 movs r1, #0x80 lsls r1, r1, #6 adds r0, r5, #0 bl sub_08003FC4 cmp r0, #0 beq _08085BE8 ldr r1, [r5, #0x78] ldr r0, _08085B9C @ =0x011FFFFF cmp r1, r0 bhi _08085B7A movs r2, #0x80 lsls r2, r2, #0xd adds r0, r1, r2 str r0, [r5, #0x78] adds r0, r5, #0 adds r0, #0x7a ldrh r2, [r0] adds r0, #4 ldrh r3, [r0] adds r0, r5, #0 adds r1, r2, #0 bl sub_0805EC9C _08085B7A: ldr r4, _08085BA0 @ =gUnk_03001160 ldrh r3, [r5, #0x32] ldrh r0, [r5, #0x36] adds r0, r3, r0 adds r1, r5, #0 adds r1, #0x74 ldrh r1, [r1] subs r2, r0, r1 strh r2, [r4, #0x32] ldr r0, _08085BA4 @ =gUnk_02033A90 ldrb r0, [r0, #1] cmp r0, #0x1b bne _08085BA8 subs r0, r3, r1 adds r1, r2, #0 adds r1, #0xd0 b _08085BAE .align 2, 0 _08085B9C: .4byte 0x011FFFFF _08085BA0: .4byte gUnk_03001160 _08085BA4: .4byte gUnk_02033A90 _08085BA8: subs r0, r3, r1 adds r1, r2, #0 adds r1, #0x40 _08085BAE: subs r0, r0, r1 strh r0, [r4, #0x36] b _08085BE8 _08085BB4: adds r0, r5, #0 bl sub_0800455E adds r0, r5, #0 bl sub_080002B8 cmp r0, #0xd bne _08085BE8 ldr r4, _08085C50 @ =gUnk_03001160 adds r0, r4, #0 bl sub_0800455E adds r0, r5, #0 bl sub_08085CDC adds r0, r4, #0 adds r1, r5, #0 bl sub_080045C4 strb r0, [r5, #0x15] movs r1, #0x80 lsls r1, r1, #1 ldrb r2, [r5, #0x15] adds r0, r4, #0 bl sub_0806F5BC _08085BE8: adds r1, r5, #0 adds r1, #0x82 ldrh r0, [r1] cmp r0, #0 bne _08085C54 ldr r4, _08085C50 @ =gUnk_03001160 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08085C58 adds r0, r4, #0 bl sub_0800455E adds r0, r5, #0 bl sub_08085F1C movs r0, #1 strb r0, [r5, #0xc] movs r0, #4 strb r0, [r5, #0xf] _08085C16: adds r0, r5, #0 movs r1, #8 movs r2, #0xa bl sub_080A2AF4 ldrb r0, [r5, #0xf] subs r0, #1 strb r0, [r5, #0xf] lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #0 bne _08085C16 movs r0, #1 strb r0, [r5, #0xf] ldrb r1, [r5, #0xe] movs r0, #0x80 orrs r0, r1 strb r0, [r5, #0xe] str r2, [r5, #0x70] str r2, [r5, #0x6c] adds r0, r5, #0 bl sub_080002B8 cmp r0, #0xd bne _08085C58 movs r0, #4 strb r0, [r5, #0xc] b _08085C58 .align 2, 0 _08085C50: .4byte gUnk_03001160 _08085C54: subs r0, #1 strh r0, [r1] _08085C58: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08085C5C sub_08085C5C: @ 0x08085C5C push {r4, r5, lr} adds r4, r0, #0 ldr r5, _08085CA0 @ =gUnk_03001160 adds r1, r5, #0 movs r2, #0x18 bl sub_0806FC80 cmp r0, #0 beq _08085CAE adds r0, r4, #0 bl sub_0806F69C ldrh r0, [r4, #0x24] strh r0, [r5, #0x24] ldrb r0, [r4, #0x15] strb r0, [r5, #0x15] adds r0, r5, #0 bl sub_0806F69C ldr r2, _08085CA4 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #2 orrs r0, r1 str r0, [r2, #0x30] adds r0, r4, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #1 bne _08085CA8 adds r0, r5, #0 bl sub_0800455E b _08085CAE .align 2, 0 _08085CA0: .4byte gUnk_03001160 _08085CA4: .4byte gUnk_03003F80 _08085CA8: adds r0, r5, #0 bl sub_08004542 _08085CAE: ldr r3, _08085CD4 @ =gUnk_03000BF0 ldrh r0, [r3] cmp r0, #0 bne _08085CD2 ldrb r1, [r4, #0x10] movs r0, #0xdf ands r0, r1 strb r0, [r4, #0x10] movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x11] lsrs r2, r1, #4 subs r0, #0x11 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x11] ldr r0, _08085CD8 @ =gUnk_03001160 str r0, [r3, #0x30] _08085CD2: pop {r4, r5, pc} .align 2, 0 _08085CD4: .4byte gUnk_03000BF0 _08085CD8: .4byte gUnk_03001160 thumb_func_start sub_08085CDC sub_08085CDC: @ 0x08085CDC push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x78] movs r1, #0x80 lsls r1, r1, #0xd adds r0, r0, r1 str r0, [r4, #0x78] ldr r1, _08085D04 @ =0x03FFFFFF cmp r0, r1 bhi _08085D08 adds r0, r4, #0 adds r0, #0x7a ldrh r2, [r0] adds r0, #4 ldrh r3, [r0] adds r0, r4, #0 adds r1, r2, #0 bl sub_0805EC9C b _08085D0C .align 2, 0 _08085D04: .4byte 0x03FFFFFF _08085D08: bl sub_0805E780 _08085D0C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08085D10 sub_08085D10: @ 0x08085D10 push {r4, lr} adds r4, r0, #0 bl sub_0805EABC cmp r0, #0 beq _08085D26 ldrb r0, [r4, #0xb] bl sub_0807CCB4 bl sub_0805E780 _08085D26: pop {r4, pc} thumb_func_start sub_08085D28 sub_08085D28: @ 0x08085D28 push {r4, r5, lr} adds r4, r0, #0 ldr r1, _08085D5C @ =gUnk_03003F80 adds r0, r1, #0 adds r0, #0xa8 ldrb r0, [r0] cmp r0, #0x13 beq _08085D5A ldr r0, [r1, #0x30] movs r5, #2 ands r0, r5 cmp r0, #0 beq _08085D5A adds r0, r4, #0 movs r1, #0 movs r2, #0x18 bl sub_080002B4 cmp r0, #0x11 bne _08085D5A movs r0, #0 strb r5, [r4, #0xc] strb r0, [r4, #0xd] bl sub_08078B48 _08085D5A: pop {r4, r5, pc} .align 2, 0 _08085D5C: .4byte gUnk_03003F80 thumb_func_start sub_08085D60 sub_08085D60: @ 0x08085D60 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 ldr r2, _08085D94 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #2 ands r0, r1 cmp r0, #0 beq _08085E64 adds r0, r2, #0 adds r0, #0xa8 ldrb r0, [r0] cmp r0, #0x12 beq _08085E64 ldrb r0, [r2, #2] cmp r0, #0 bne _08085E64 ldrb r1, [r5, #0x15] movs r0, #7 ands r0, r1 cmp r0, #0 bne _08085D98 ldrb r6, [r5, #0x15] adds r4, r6, #0 b _08085DB0 .align 2, 0 _08085D94: .4byte gUnk_03003F80 _08085D98: movs r0, #0x10 ands r0, r1 movs r4, #8 cmp r0, #0 beq _08085DA4 movs r4, #0x18 _08085DA4: ldrb r0, [r5, #0x15] subs r0, #8 movs r6, #0x10 cmp r0, #0x10 ble _08085DB0 movs r6, #0 _08085DB0: cmp r4, #0x18 beq _08085DB8 cmp r4, #8 bne _08085E20 _08085DB8: lsrs r3, r4, #2 ldr r1, _08085E10 @ =gUnk_08120638 adds r0, r3, r1 movs r7, #0 ldrsb r7, [r0, r7] adds r0, r3, #1 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r8, r0 adds r0, r5, #0 adds r1, r7, #0 mov r2, r8 bl sub_080002CC cmp r0, #0xff bne _08085E20 movs r1, #0x2e ldrsh r0, [r5, r1] ldr r2, _08085E14 @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r0, r0, r1 adds r0, r0, r7 movs r3, #0x32 ldrsh r1, [r5, r3] ldrh r2, [r2, #8] subs r1, r1, r2 add r1, r8 adds r2, r4, #0 movs r3, #5 bl sub_080806BC cmp r0, #0 bne _08085E1C ldr r0, _08085E18 @ =gUnk_03001160 lsrs r1, r4, #3 bl sub_0807BD14 cmp r0, #0 beq _08085E20 strb r4, [r5, #0x15] b _08085E52 .align 2, 0 _08085E10: .4byte gUnk_08120638 _08085E14: .4byte gUnk_03000BF0 _08085E18: .4byte gUnk_03001160 _08085E1C: strb r4, [r5, #0x15] b _08085E6C _08085E20: cmp r6, #0 beq _08085E28 cmp r6, #0x10 bne _08085E6C _08085E28: lsrs r3, r6, #2 ldr r2, _08085E5C @ =gUnk_08120638 adds r0, r3, r2 movs r1, #0 ldrsb r1, [r0, r1] adds r0, r3, #1 adds r0, r0, r2 movs r2, #0 ldrsb r2, [r0, r2] adds r0, r5, #0 bl sub_080002CC cmp r0, #0xff bne _08085E6C ldr r0, _08085E60 @ =gUnk_03001160 lsrs r1, r6, #3 bl sub_0807BD14 cmp r0, #0 beq _08085E6C strb r6, [r5, #0x15] _08085E52: adds r0, r5, #0 bl sub_08085E74 b _08085E6C .align 2, 0 _08085E5C: .4byte gUnk_08120638 _08085E60: .4byte gUnk_03001160 _08085E64: ldrb r1, [r5, #0x10] movs r0, #0xdf ands r0, r1 strb r0, [r5, #0x10] _08085E6C: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08085E74 sub_08085E74: @ 0x08085E74 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #0x20 orrs r0, r1 strb r0, [r2, #0x10] ldrb r1, [r2, #0x11] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2, #0x11] movs r0, #3 strb r0, [r2, #0xc] ldrb r0, [r2, #0x15] cmp r0, #8 beq _08085EB8 cmp r0, #8 bgt _08085EA2 cmp r0, #0 beq _08085EAC b _08085EBE _08085EA2: cmp r0, #0x10 beq _08085EB2 cmp r0, #0x18 beq _08085EB8 b _08085EBE _08085EAC: movs r0, #0x90 lsls r0, r0, #1 b _08085EBC _08085EB2: movs r0, #0x9c lsls r0, r0, #1 b _08085EBC _08085EB8: movs r0, #0x80 lsls r0, r0, #1 _08085EBC: strh r0, [r2, #0x24] _08085EBE: movs r0, #0 str r0, [r2, #0x70] str r0, [r2, #0x6c] strh r0, [r2, #0x2c] strh r0, [r2, #0x30] ldr r1, _08085EF0 @ =gUnk_03001160 strh r0, [r1, #0x2c] strh r0, [r1, #0x30] ldrb r0, [r2, #0x15] strb r0, [r1, #0x15] ldr r1, _08085EF4 @ =gUnk_03003F80 movs r0, #0x80 lsls r0, r0, #1 strh r0, [r1, #8] ldr r0, _08085EF8 @ =gUnk_03000BF0 str r2, [r0, #0x30] ldr r0, [r1, #0x2c] cmp r0, #0 beq _08085EE8 bl sub_0805E7BC _08085EE8: bl sub_08077B2C pop {pc} .align 2, 0 _08085EF0: .4byte gUnk_03001160 _08085EF4: .4byte gUnk_03003F80 _08085EF8: .4byte gUnk_03000BF0 thumb_func_start sub_08085EFC sub_08085EFC: @ 0x08085EFC ldr r3, _08085F18 @ =gUnk_03001160 ldrh r1, [r0, #0x2e] ldrh r2, [r3, #0x2e] subs r1, r1, r2 adds r2, r0, #0 adds r2, #0x76 strh r1, [r2] ldrh r1, [r0, #0x32] ldrh r2, [r3, #0x32] subs r1, r1, r2 adds r0, #0x74 strh r1, [r0] bx lr .align 2, 0 _08085F18: .4byte gUnk_03001160 thumb_func_start sub_08085F1C sub_08085F1C: @ 0x08085F1C push {lr} adds r3, r0, #0 ldr r2, _08085F44 @ =gUnk_03001160 adds r1, r3, #0 adds r1, #0x76 ldrh r0, [r3, #0x2e] ldrh r1, [r1] subs r0, r0, r1 strh r0, [r2, #0x2e] adds r1, r3, #0 adds r1, #0x74 ldrh r0, [r3, #0x32] ldrh r1, [r1] subs r0, r0, r1 strh r0, [r2, #0x32] ldrb r0, [r3, #0x15] bl sub_0807A5B8 pop {pc} .align 2, 0 _08085F44: .4byte gUnk_03001160 thumb_func_start sub_08085F48 sub_08085F48: @ 0x08085F48 push {r4, r5, lr} adds r4, r0, #0 ldrb r2, [r4, #0xe] movs r0, #0x80 ands r0, r2 lsls r0, r0, #0x18 lsrs r3, r0, #0x18 cmp r3, #0 beq _08085F8C ldr r5, _08085F80 @ =gUnk_03003F80 ldrb r0, [r5, #0x12] cmp r0, #0x17 bne _08085F6A bl sub_08078F60 movs r0, #0x19 strb r0, [r5, #0x12] _08085F6A: movs r0, #0x83 bl sub_080A3268 ldr r1, [r4, #0x78] ldr r0, _08085F84 @ =0x0127FFFF cmp r1, r0 bhi _08085F88 movs r2, #0x80 lsls r2, r2, #0xc b _08085FF8 .align 2, 0 _08085F80: .4byte gUnk_03003F80 _08085F84: .4byte 0x0127FFFF _08085F88: movs r0, #0 b _08086006 _08085F8C: ldr r0, _08085FAC @ =gUnk_03003F80 ldr r1, [r0, #0x30] movs r0, #2 ands r1, r0 cmp r1, #0 beq _08085FCC lsls r0, r2, #0x18 cmp r0, #0 beq _08085FB8 ldr r1, [r4, #0x78] ldr r0, _08085FB0 @ =0x011FFFFF cmp r1, r0 bhi _08085FB4 movs r2, #0x80 lsls r2, r2, #8 b _08085FF8 .align 2, 0 _08085FAC: .4byte gUnk_03003F80 _08085FB0: .4byte 0x011FFFFF _08085FB4: strb r3, [r4, #0xe] b _08086008 _08085FB8: ldr r1, [r4, #0x78] movs r0, #0x88 lsls r0, r0, #0x11 cmp r1, r0 bls _08086004 ldr r2, _08085FC8 @ =0xFFFF8000 b _08085FF8 .align 2, 0 _08085FC8: .4byte 0xFFFF8000 _08085FCC: lsls r0, r2, #0x18 cmp r0, #0 beq _08085FEC ldr r2, [r4, #0x78] ldr r0, _08085FE4 @ =0x010FFFFF cmp r2, r0 bhi _08085FE8 movs r1, #0x80 lsls r1, r1, #7 adds r0, r2, r1 str r0, [r4, #0x78] b _08086008 .align 2, 0 _08085FE4: .4byte 0x010FFFFF _08085FE8: strb r1, [r4, #0xe] b _08086008 _08085FEC: ldr r1, [r4, #0x78] movs r0, #0x83 lsls r0, r0, #0x11 cmp r1, r0 bls _08086004 ldr r2, _08086000 @ =0xFFFFC000 _08085FF8: adds r0, r1, r2 str r0, [r4, #0x78] b _08086008 .align 2, 0 _08086000: .4byte 0xFFFFC000 _08086004: movs r0, #1 _08086006: strb r0, [r4, #0xe] _08086008: adds r0, r4, #0 adds r0, #0x7a ldrh r2, [r0] adds r0, #4 ldrh r3, [r0] adds r0, r4, #0 adds r1, r2, #0 bl sub_0805EC9C pop {r4, r5, pc} thumb_func_start sub_0808601C sub_0808601C: @ 0x0808601C push {lr} ldr r2, _08086030 @ =gUnk_08120648 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08086030: .4byte gUnk_08120648 thumb_func_start sub_08086034 sub_08086034: @ 0x08086034 push {lr} movs r3, #1 movs r1, #1 strb r1, [r0, #0xc] ldrb r2, [r0, #0x18] subs r1, #5 ands r1, r2 orrs r1, r3 strb r1, [r0, #0x18] adds r1, r0, #0 adds r1, #0x58 ldrb r1, [r1] bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_08086054 sub_08086054: @ 0x08086054 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 bne _08086064 adds r0, r4, #0 bl sub_08004274 _08086064: ldrb r0, [r4, #0xb] cmp r0, #0 beq _0808607C ldrb r2, [r4, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #1 eors r1, r0 subs r0, #5 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] _0808607C: ldrb r0, [r4, #0xe] lsls r1, r0, #0x18 cmp r1, #0 blt _080860AA cmp r1, #0 beq _08086098 subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080860AA bl sub_0805E780 b _080860AA _08086098: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080860AA bl sub_0805E780 _080860AA: ldr r1, [r4, #0x54] cmp r1, #0 beq _080860BC ldr r0, [r1, #0x2c] str r0, [r4, #0x2c] ldr r0, [r1, #0x30] str r0, [r4, #0x30] ldr r0, [r1, #0x34] str r0, [r4, #0x34] _080860BC: pop {r4, pc} .align 2, 0 thumb_func_start sub_080860C0 sub_080860C0: @ 0x080860C0 push {lr} ldr r2, _080860D4 @ =gUnk_08120650 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080860D4: .4byte gUnk_08120650 thumb_func_start sub_080860D8 sub_080860D8: @ 0x080860D8 push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] adds r0, #0xff strh r0, [r4, #0x24] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldrb r0, [r4, #0xa] strb r0, [r4, #0x1e] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] ldrb r0, [r4, #0xb] bl sub_0804B128 str r0, [r4, #0x54] adds r1, r4, #0 adds r1, #0x54 adds r2, r4, #0 adds r2, #0x70 adds r0, r4, #0 bl sub_080A2CC0 pop {r4, pc} .align 2, 0 thumb_func_start sub_0808611C sub_0808611C: @ 0x0808611C push {r4, lr} adds r4, r0, #0 bl sub_08086168 adds r1, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _0808613C ldr r2, [r4, #0x50] ldrb r0, [r2, #0xe] cmp r0, #0 bne _08086144 cmp r1, #0 beq _0808613C adds r0, #1 strb r0, [r2, #0xe] _0808613C: adds r0, r4, #0 bl sub_080A2BE4 b _0808614C _08086144: adds r0, r4, #0 movs r1, #0 bl sub_080A2BE4 _0808614C: adds r2, r4, #0 adds r2, #0x70 ldrh r0, [r2] subs r0, #1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 bne _08086166 adds r1, r4, #0 adds r1, #0x54 adds r0, r4, #0 bl sub_080A2CC0 _08086166: pop {r4, pc} thumb_func_start sub_08086168 sub_08086168: @ 0x08086168 push {r4, lr} ldrb r1, [r0, #0xa] lsls r1, r1, #1 ldr r2, _0808619C @ =gUnk_08120658 adds r1, r1, r2 ldr r4, _080861A0 @ =gUnk_03001160 ldrb r2, [r1] ldrb r3, [r1, #1] adds r1, r4, #0 bl sub_080041A0 cmp r0, #0 beq _080861A8 bl sub_08079F8C cmp r0, #0 beq _080861A8 ldr r0, _080861A4 @ =gUnk_03003F80 movs r1, #1 strb r1, [r0, #0x14] movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 bne _080861A8 movs r0, #1 b _080861AA .align 2, 0 _0808619C: .4byte gUnk_08120658 _080861A0: .4byte gUnk_03001160 _080861A4: .4byte gUnk_03003F80 _080861A8: movs r0, #0 _080861AA: pop {r4, pc} thumb_func_start sub_080861AC sub_080861AC: @ 0x080861AC push {lr} ldr r2, _080861C0 @ =gUnk_08120660 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080861C0: .4byte gUnk_08120660 thumb_func_start sub_080861C4 sub_080861C4: @ 0x080861C4 push {r4, r5, r6, lr} adds r4, r0, #0 movs r5, #1 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x80 strh r0, [r4, #0x24] ldr r0, _08086230 @ =gUnk_03001160 mov ip, r0 ldrb r1, [r0, #0x19] lsrs r1, r1, #6 lsls r1, r1, #6 ldrb r3, [r4, #0x19] movs r2, #0x3f adds r0, r2, #0 ands r0, r3 orrs r0, r1 strb r0, [r4, #0x19] mov r0, ip adds r0, #0x29 ldrb r1, [r0] lsls r1, r1, #0x1d adds r6, r4, #0 adds r6, #0x29 lsrs r1, r1, #0x1d ldrb r3, [r6] movs r0, #8 rsbs r0, r0, #0 ands r0, r3 orrs r0, r1 strb r0, [r6] mov r0, ip adds r0, #0x38 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] mov r1, ip ldrb r0, [r1, #0x1b] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r1, [r4, #0x1b] ands r2, r1 orrs r2, r0 strb r2, [r4, #0x1b] bl sub_08000E50 ands r0, r5 strb r0, [r4, #0xa] adds r0, r4, #0 movs r1, #0x11 bl sub_08004260 pop {r4, r5, r6, pc} .align 2, 0 _08086230: .4byte gUnk_03001160 thumb_func_start sub_08086234 sub_08086234: @ 0x08086234 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 beq _08086258 ldr r0, _08086254 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #1 ands r0, r1 cmp r0, #0 bne _0808625E adds r0, r4, #0 bl sub_08004274 b _0808625E .align 2, 0 _08086254: .4byte gUnk_030010A0 _08086258: adds r0, r4, #0 bl sub_08004274 _0808625E: adds r0, r4, #0 bl sub_0806F3E4 cmp r0, #0 beq _0808626E bl sub_0805E780 b _0808627E _0808626E: ldr r0, _08086280 @ =gUnk_03003F80 ldrb r1, [r0, #0x1c] movs r0, #0xf ands r0, r1 cmp r0, #1 beq _0808627E bl sub_0805E780 _0808627E: pop {r4, pc} .align 2, 0 _08086280: .4byte gUnk_03003F80 thumb_func_start sub_08086284 sub_08086284: @ 0x08086284 push {r4, lr} adds r4, r0, #0 ldr r1, _080862B4 @ =gUnk_08120668 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r1, r4, #0 adds r1, #0x41 movs r0, #0 strb r0, [r1] adds r0, r4, #0 adds r0, #0x76 ldrh r1, [r0] adds r0, #4 ldrh r2, [r0] adds r0, r4, #0 movs r3, #0 bl sub_0805EC9C pop {r4, pc} .align 2, 0 _080862B4: .4byte gUnk_08120668 thumb_func_start sub_080862B8 sub_080862B8: @ 0x080862B8 push {r4, r5, lr} adds r4, r0, #0 movs r0, #0x63 bl sub_0807CBD0 cmp r0, #0 beq _080862CA bl sub_0805E780 _080862CA: movs r3, #1 strb r3, [r4, #0xc] ldr r1, _08086350 @ =gUnk_08120678 ldrb r0, [r4, #0xa] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x7c strh r0, [r1] adds r2, r4, #0 adds r2, #0x76 strh r0, [r2] ldrh r0, [r1] subs r1, #2 strh r0, [r1] ldrb r0, [r4, #0xa] cmp r0, #0 bne _08086354 adds r1, #6 ldr r0, [r4, #0x2c] str r0, [r1] adds r1, #4 ldr r0, [r4, #0x30] str r0, [r1] ldrb r1, [r4, #0x19] movs r0, #0x3f ands r0, r1 strb r0, [r4, #0x19] str r4, [r4, #0x50] ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] adds r0, r4, #0 adds r0, #0x3f strb r3, [r0] subs r1, #1 movs r0, #4 strb r0, [r1] movs r2, #0 _08086324: adds r5, r2, #1 adds r0, r4, #0 movs r1, #0x18 adds r2, r5, #0 movs r3, #0 bl sub_080A2988 adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 beq _08086346 ldr r0, [r4, #0x50] str r0, [r1, #0x50] ldr r0, [r4, #0x54] str r4, [r0, #0x54] ldr r0, [r4, #0x54] str r0, [r4, #0x50] _08086346: adds r2, r5, #0 cmp r2, #3 bls _08086324 b _08086360 .align 2, 0 _08086350: .4byte gUnk_08120678 _08086354: ldrb r0, [r4, #0x19] movs r1, #0x3f ands r1, r0 movs r0, #0x40 orrs r1, r0 strb r1, [r4, #0x19] _08086360: ldrb r1, [r4, #0xa] adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08086370 pop {r4, r5, pc} thumb_func_start sub_08086370 sub_08086370: @ 0x08086370 push {r4, r5, r6, lr} adds r6, r0, #0 ldrb r2, [r6, #0xa] cmp r2, #0 beq _08086440 ldr r0, [r6, #0x54] adds r0, #0x7f ldrb r0, [r0] cmp r0, #0 bne _080863B6 adds r1, r6, #0 adds r1, #0x7c ldrh r0, [r1] adds r2, r6, #0 adds r2, #0x76 strh r0, [r2] ldrh r0, [r1] subs r1, #2 strh r0, [r1] movs r0, #0xc0 lsls r0, r0, #2 strh r0, [r6, #0x24] ldr r2, [r6, #0x50] ldr r0, [r2, #0x2c] ldr r1, [r6, #0x2c] subs r0, r0, r1 ldr r1, [r2, #0x30] ldr r2, [r6, #0x30] subs r1, r1, r2 bl sub_080045DA movs r1, #0x80 eors r0, r1 strb r0, [r6, #0x15] b _08086428 _080863B6: movs r0, #0xc0 lsls r0, r0, #3 strh r0, [r6, #0x24] ldr r2, _080863E8 @ =gUnk_03001160 ldr r0, [r2, #0x2c] ldr r1, [r6, #0x2c] subs r0, r0, r1 ldr r1, [r2, #0x30] ldr r2, [r6, #0x30] subs r1, r1, r2 bl sub_080045DA adds r1, r0, #0 movs r0, #0x80 eors r1, r0 ldrb r2, [r6, #0x15] cmp r1, r2 beq _080863F0 subs r0, r1, r2 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x80 bls _080863EC adds r0, r2, #3 b _080863EE .align 2, 0 _080863E8: .4byte gUnk_03001160 _080863EC: subs r0, r2, #3 _080863EE: strb r0, [r6, #0x15] _080863F0: ldr r0, _0808640C @ =gUnk_03001160 ldrb r1, [r0, #0x14] movs r0, #2 ands r0, r1 cmp r0, #0 bne _08086410 adds r0, r6, #0 adds r0, #0x7c ldrh r0, [r0] adds r0, #0x40 adds r1, r6, #0 adds r1, #0x76 b _08086426 .align 2, 0 _0808640C: .4byte gUnk_03001160 _08086410: adds r0, r6, #0 adds r0, #0x7c ldrh r1, [r0] subs r1, #0x20 adds r2, r6, #0 adds r2, #0x76 strh r1, [r2] ldrh r0, [r0] adds r0, #0x50 adds r1, r6, #0 adds r1, #0x7a _08086426: strh r0, [r1] _08086428: ldr r1, [r6, #0x50] ldr r0, [r1, #0x2c] str r0, [r6, #0x2c] ldr r0, [r1, #0x30] str r0, [r6, #0x30] movs r0, #0x24 ldrsh r1, [r6, r0] ldrb r2, [r6, #0x15] adds r0, r6, #0 bl sub_0806F62C b _0808654A _08086440: adds r0, r6, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0x13 bne _08086498 ldrb r0, [r6, #0x15] adds r0, #1 strb r0, [r6, #0x15] ldrb r0, [r6, #0x1d] subs r0, #1 strb r0, [r6, #0x1d] adds r2, r6, #0 adds r2, #0x7f movs r0, #1 strb r0, [r2] ldr r0, _08086480 @ =gUnk_03001160 ldrb r1, [r0, #0x14] movs r0, #2 ands r0, r1 adds r3, r2, #0 cmp r0, #0 bne _08086484 adds r0, r6, #0 adds r0, #0x7c ldrh r0, [r0] adds r0, #0x10 adds r1, r6, #0 adds r1, #0x76 strh r0, [r1] b _080864BC .align 2, 0 _08086480: .4byte gUnk_03001160 _08086484: adds r1, r6, #0 adds r1, #0x7c ldrh r0, [r1] subs r0, #0x20 adds r2, r6, #0 adds r2, #0x76 strh r0, [r2] ldrh r0, [r1] adds r0, #0x30 b _080864B6 _08086498: ldrb r0, [r6, #0x15] adds r0, #2 strb r0, [r6, #0x15] movs r0, #0xf0 strb r0, [r6, #0x1d] adds r3, r6, #0 adds r3, #0x7f strb r2, [r3] adds r1, r6, #0 adds r1, #0x7c ldrh r0, [r1] adds r2, r6, #0 adds r2, #0x76 strh r0, [r2] ldrh r0, [r1] _080864B6: subs r1, #2 strh r0, [r1] adds r1, r2, #0 _080864BC: ldrb r2, [r6, #0x1d] cmp r2, #0 bne _080864CA movs r0, #2 strb r0, [r6, #0xc] strb r2, [r3] b _0808654A _080864CA: ldrb r0, [r6, #0x15] adds r0, #0x40 lsls r0, r0, #0x18 cmp r0, #0 blt _080864E0 ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0 ble _080864EE b _080864EA _080864E0: ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0 bge _080864EE _080864EA: rsbs r0, r2, #0 strh r0, [r1] _080864EE: ldr r5, _0808654C @ =gUnk_080C9160 ldrb r0, [r6, #0x15] lsls r0, r0, #1 adds r0, r0, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0x80 lsls r1, r1, #6 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r4, #0x80 lsls r4, r4, #1 adds r1, r4, #0 bl sub_0806FA04 adds r1, r6, #0 adds r1, #0x80 lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r1] adds r1, r1, r0 str r1, [r6, #0x2c] ldrb r0, [r6, #0x15] adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r5 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0x80 lsls r1, r1, #5 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r4, #0 bl sub_0806FA04 adds r1, r6, #0 adds r1, #0x84 lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r1] subs r1, r1, r0 str r1, [r6, #0x30] _0808654A: pop {r4, r5, r6, pc} .align 2, 0 _0808654C: .4byte gUnk_080C9160 thumb_func_start sub_08086550 sub_08086550: @ 0x08086550 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0x13 beq _08086566 movs r0, #3 strb r0, [r4, #0xc] b _08086592 _08086566: adds r0, r4, #0 bl sub_0806F3E4 cmp r0, #0 beq _08086592 movs r0, #0x63 bl sub_0807CCB4 movs r0, #0 bl sub_0807CD10 movs r5, #0 _0808657E: ldr r0, [r4, #0x54] ldr r1, [r0, #0x50] str r1, [r4, #0x54] bl sub_0805E7BC adds r5, #1 cmp r5, #3 bls _0808657E bl sub_0805E780 _08086592: pop {r4, r5, pc} thumb_func_start sub_08086594 sub_08086594: @ 0x08086594 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r0, #0x80 ldr r0, [r0] ldr r1, [r7, #0x2c] subs r0, r0, r1 adds r1, r7, #0 adds r1, #0x84 ldr r1, [r1] ldr r2, [r7, #0x30] subs r1, r1, r2 bl sub_080045DA strb r0, [r7, #0x15] adds r0, r7, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0x13 bne _08086608 movs r0, #0x80 lsls r0, r0, #1 strh r0, [r7, #0x24] ldrb r0, [r7, #0x1d] subs r0, #1 strb r0, [r7, #0x1d] adds r2, r7, #0 adds r2, #0x7f movs r0, #1 strb r0, [r2] ldr r0, _080865EC @ =gUnk_03001160 ldrb r1, [r0, #0x14] movs r0, #2 ands r0, r1 cmp r0, #0 bne _080865F0 adds r0, r7, #0 adds r0, #0x7c ldrh r0, [r0] adds r0, #0x10 adds r1, r7, #0 adds r1, #0x76 b _0808662A .align 2, 0 _080865EC: .4byte gUnk_03001160 _080865F0: adds r0, r7, #0 adds r0, #0x7c ldrh r1, [r0] subs r1, #0x20 adds r3, r7, #0 adds r3, #0x76 strh r1, [r3] ldrh r0, [r0] adds r0, #0x30 adds r1, r7, #0 adds r1, #0x7a b _0808662A _08086608: movs r1, #0 movs r0, #0x80 lsls r0, r0, #2 strh r0, [r7, #0x24] movs r0, #0xf0 strb r0, [r7, #0x1d] adds r2, r7, #0 adds r2, #0x7f strb r1, [r2] adds r1, r7, #0 adds r1, #0x7c ldrh r0, [r1] adds r3, r7, #0 adds r3, #0x76 strh r0, [r3] ldrh r0, [r1] subs r1, #2 _0808662A: strh r0, [r1] ldrb r1, [r7, #0x1d] cmp r1, #0 bne _0808663A movs r0, #2 strb r0, [r7, #0xc] strb r1, [r2] b _080866B8 _0808663A: movs r0, #0x24 ldrsh r1, [r7, r0] ldrb r2, [r7, #0x15] adds r0, r7, #0 bl sub_0806F62C ldrb r0, [r7, #0x15] movs r1, #0x80 eors r0, r1 strb r0, [r7, #0x15] ldr r6, _080866BC @ =gUnk_080C9160 ldrb r0, [r7, #0x15] lsls r0, r0, #1 adds r0, r0, r6 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0x80 lsls r1, r1, #6 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r5, #0x80 lsls r5, r5, #1 adds r1, r5, #0 bl sub_0806FA04 adds r1, r7, #0 adds r1, #0x80 lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r4, [r1] adds r4, r4, r0 ldrb r0, [r7, #0x15] adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r6 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0x80 lsls r1, r1, #5 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r5, #0 bl sub_0806FA04 adds r1, r7, #0 adds r1, #0x84 lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r2, [r1] subs r2, r2, r0 adds r0, r7, #0 adds r1, r4, #0 movs r3, #2 bl sub_0806FCB8 cmp r0, #0 beq _080866B8 movs r0, #1 strb r0, [r7, #0xc] _080866B8: pop {r4, r5, r6, r7, pc} .align 2, 0 _080866BC: .4byte gUnk_080C9160 thumb_func_start sub_080866C0 sub_080866C0: @ 0x080866C0 push {lr} ldr r2, _080866D4 @ =gUnk_081206B4 ldrb r1, [r0, #0xb] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080866D4: .4byte gUnk_081206B4 thumb_func_start sub_080866D8 sub_080866D8: @ 0x080866D8 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r6, r0, #0 ldrb r1, [r6, #0xc] cmp r1, #0 bne _080866FE movs r0, #1 strb r0, [r6, #0xc] str r1, [r6, #0x68] ldrb r1, [r6, #0xe] adds r0, r6, #0 adds r0, #0x6c strb r1, [r0] adds r0, r6, #0 movs r1, #6 bl sub_0805E3A0 _080866FE: adds r0, r6, #0 adds r0, #0x6c ldrb r0, [r0] bl sub_0804B128 adds r5, r0, #0 movs r0, #0 mov r8, r0 ldrh r0, [r5] ldr r1, _080867C4 @ =0x0000FFFF cmp r0, r1 beq _080867BA mov sb, r1 _08086718: movs r7, #1 mov r1, r8 lsls r7, r1 ldr r0, [r6, #0x68] ands r0, r7 cmp r0, #0 bne _080867A8 ldrb r0, [r5, #5] bl sub_080867CC cmp r0, #0 beq _080867A8 ldrh r0, [r5] ldrh r1, [r5, #2] movs r2, #0x20 movs r3, #0x20 bl sub_080562CC cmp r0, #0 beq _080867A8 ldrb r1, [r5, #7] ldrb r2, [r5, #6] movs r0, #0x19 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _080867A8 adds r0, #0x6c mov r2, r8 strb r2, [r0] ldr r1, _080867C8 @ =gUnk_03000BF0 ldrh r0, [r5] ldrh r2, [r1, #6] adds r0, r0, r2 adds r0, #0x10 strh r0, [r4, #0x2e] ldrh r0, [r5, #2] ldrh r1, [r1, #8] adds r0, r0, r1 adds r0, #0x20 strh r0, [r4, #0x32] str r6, [r4, #0x50] ldrh r1, [r5] adds r0, r4, #0 adds r0, #0x68 strh r1, [r0] ldrh r0, [r5, #2] adds r1, r4, #0 adds r1, #0x6a strh r0, [r1] ldrb r1, [r5, #4] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] ldrb r0, [r5, #5] strb r0, [r4, #0xd] adds r0, r4, #0 bl sub_08016A04 ldr r0, [r6, #0x68] orrs r0, r7 str r0, [r6, #0x68] ldr r1, [r5, #8] cmp r1, #0 beq _080867A8 adds r0, r4, #0 bl sub_0807DAD0 adds r1, r4, #0 adds r1, #0x84 str r0, [r1] _080867A8: adds r5, #0xc movs r0, #1 add r8, r0 ldrh r0, [r5] cmp r0, sb beq _080867BA mov r1, r8 cmp r1, #0x1f bls _08086718 _080867BA: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _080867C4: .4byte 0x0000FFFF _080867C8: .4byte gUnk_03000BF0 thumb_func_start sub_080867CC sub_080867CC: @ 0x080867CC push {lr} cmp r0, #0 beq _080867DE cmp r0, #2 bne _080867DE movs r0, #0x18 bl sub_0807CC30 b _080867E0 _080867DE: movs r0, #1 _080867E0: pop {pc} .align 2, 0 thumb_func_start sub_080867E4 sub_080867E4: @ 0x080867E4 push {r4, lr} adds r4, r0, #0 adds r0, #0x68 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x6a ldrh r1, [r1] movs r2, #0x20 movs r3, #0x20 bl sub_080562CC cmp r0, #0 bne _08086814 ldr r2, [r4, #0x50] adds r0, r4, #0 adds r0, #0x6c movs r1, #1 ldrb r0, [r0] lsls r1, r0 ldr r0, [r2, #0x68] bics r0, r1 str r0, [r2, #0x68] bl sub_0805E780 _08086814: adds r0, r4, #0 bl sub_0808681C pop {r4, pc} thumb_func_start sub_0808681C sub_0808681C: @ 0x0808681C push {r4, r5, lr} adds r5, r0, #0 ldrb r4, [r5, #0xc] cmp r4, #0 beq _0808682C cmp r4, #1 beq _08086868 b _0808688C _0808682C: movs r2, #1 movs r0, #1 strb r0, [r5, #0xc] movs r0, #8 strb r0, [r5, #0xe] ldrb r1, [r5, #0x18] subs r0, #0xc ands r0, r1 orrs r0, r2 strb r0, [r5, #0x18] strb r4, [r5, #0x1e] ldr r0, _08086864 @ =gUnk_081206AC str r0, [r5, #0x48] ldrb r1, [r5, #0xd] cmp r1, #1 bne _08086852 movs r0, #2 strb r0, [r5, #0xc] strb r1, [r5, #0x1e] _08086852: ldrb r1, [r5, #0x10] movs r2, #2 adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _080868AA strb r2, [r5, #0xc] b _0808688C .align 2, 0 _08086864: .4byte gUnk_081206AC _08086868: adds r0, r5, #0 bl sub_08086954 lsls r0, r0, #0x18 cmp r0, #0 bne _0808688C ldrb r0, [r5, #0xc] adds r0, #1 strb r0, [r5, #0xc] strb r4, [r5, #0x1e] movs r0, #0x10 movs r1, #0 movs r2, #1 bl sub_08078AC0 ldr r0, _080868AC @ =0x00000111 bl sub_080A3268 _0808688C: ldrb r1, [r5, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _080868AA adds r4, r5, #0 adds r4, #0x84 ldr r1, [r4] adds r0, r5, #0 bl sub_0807DF74 ldr r1, [r4] adds r0, r5, #0 bl sub_080868EC _080868AA: pop {r4, r5, pc} .align 2, 0 _080868AC: .4byte 0x00000111 thumb_func_start sub_080868B0 sub_080868B0: @ 0x080868B0 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xc] cmp r0, #0 bne _080868D2 movs r2, #1 movs r0, #1 strb r0, [r5, #0xc] ldrb r1, [r5, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r5, #0x18] ldr r0, _080868E8 @ =gUnk_081206AC str r0, [r5, #0x48] movs r0, #8 strb r0, [r5, #0xe] _080868D2: adds r4, r5, #0 adds r4, #0x84 ldr r1, [r4] adds r0, r5, #0 bl sub_0807DF74 ldr r1, [r4] adds r0, r5, #0 bl sub_080868EC pop {r4, r5, pc} .align 2, 0 _080868E8: .4byte gUnk_081206AC thumb_func_start sub_080868EC sub_080868EC: @ 0x080868EC push {r4, r5, lr} adds r3, r0, #0 ldr r2, [r1, #8] movs r0, #0 str r0, [r1, #8] cmp r2, #0 beq _0808691E movs r5, #0x80 lsls r5, r5, #1 movs r4, #0 movs r1, #1 _08086902: mvns r0, r2 adds r0, #1 ands r0, r2 eors r2, r0 cmp r0, #0x80 beq _08086914 cmp r0, r5 beq _08086918 b _0808691A _08086914: strb r4, [r3, #0x1e] b _0808691A _08086918: strb r1, [r3, #0x1e] _0808691A: cmp r2, #0 bne _08086902 _0808691E: ldrb r0, [r3, #0x1e] cmp r0, #0 bne _0808692A adds r0, r3, #0 bl sub_0800445C _0808692A: pop {r4, r5, pc} thumb_func_start sub_0808692C sub_0808692C: @ 0x0808692C push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #0xfd ands r0, r1 strb r0, [r2, #0x10] movs r0, #2 strb r0, [r2, #0xb] ldrb r0, [r2, #0x1e] movs r1, #2 cmp r0, #0 bne _08086946 movs r1, #1 _08086946: strb r1, [r2, #0xc] movs r0, #0 strb r0, [r2, #0xd] movs r0, #8 strb r0, [r2, #0xe] pop {pc} .align 2, 0 thumb_func_start sub_08086954 sub_08086954: @ 0x08086954 push {r4, lr} adds r4, r0, #0 bl sub_0800445C cmp r0, #0 beq _0808699C adds r0, r4, #0 movs r1, #6 movs r2, #0x14 bl sub_0806ED9C cmp r0, #0 blt _080869A0 ldr r0, _08086994 @ =gUnk_03001160 ldrb r0, [r0, #0x14] cmp r0, #0 bne _080869A0 ldr r2, _08086998 @ =gUnk_03003F80 adds r0, r2, #0 adds r0, #0x90 ldrh r1, [r0] movs r0, #0x80 lsls r0, r0, #3 cmp r1, r0 bne _080869A0 ldrb r0, [r2, #2] cmp r0, #0 bne _080869A0 ldrb r0, [r4, #0xe] subs r0, #1 b _0808699E .align 2, 0 _08086994: .4byte gUnk_03001160 _08086998: .4byte gUnk_03003F80 _0808699C: movs r0, #8 _0808699E: strb r0, [r4, #0xe] _080869A0: ldrb r0, [r4, #0xe] pop {r4, pc} thumb_func_start sub_080869A4 sub_080869A4: @ 0x080869A4 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 movs r0, #0 str r0, [r5, #0x14] adds r0, r4, #0 bl sub_08086954 lsls r0, r0, #0x18 cmp r0, #0 bne _080869C2 movs r0, #8 strb r0, [r4, #0xe] movs r0, #1 str r0, [r5, #0x14] _080869C2: pop {r4, r5, pc} thumb_func_start sub_080869C4 sub_080869C4: @ 0x080869C4 push {lr} ldr r2, _080869D8 @ =gUnk_081206C4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080869D8: .4byte gUnk_081206C4 thumb_func_start sub_080869DC sub_080869DC: @ 0x080869DC push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 strb r0, [r4, #0x18] ldr r0, _08086A24 @ =gUnk_080FD1A8 str r0, [r4, #0x48] adds r2, r4, #0 adds r2, #0x3c ldrb r1, [r2] movs r0, #0x10 orrs r0, r1 strb r0, [r2] ldrb r1, [r4, #0xa] movs r0, #0 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _08086A20 movs r0, #0xa strb r0, [r1, #0xe] str r4, [r1, #0x50] str r1, [r4, #0x54] adds r0, r4, #0 bl sub_0806FA24 adds r0, r4, #0 bl sub_08086A6C _08086A20: pop {r4, pc} .align 2, 0 _08086A24: .4byte gUnk_080FD1A8 thumb_func_start sub_08086A28 sub_08086A28: @ 0x08086A28 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x54] ldr r0, [r0, #4] cmp r0, #0 bne _08086A3A movs r0, #2 strb r0, [r4, #0xc] b _08086A5A _08086A3A: movs r1, #0xa0 lsls r1, r1, #6 adds r0, r4, #0 bl sub_080044EC cmp r0, #0 bne _08086A4C movs r0, #2 strb r0, [r4, #0xc] _08086A4C: adds r0, r4, #0 bl sub_080AEF88 ldr r1, [r4, #0x54] adds r0, r4, #0 bl sub_0806FA24 _08086A5A: pop {r4, pc} thumb_func_start sub_08086A5C sub_08086A5C: @ 0x08086A5C push {lr} ldr r1, [r0, #0x54] movs r0, #0 str r0, [r1, #0x50] bl sub_0805E780 pop {pc} .align 2, 0 thumb_func_start sub_08086A6C sub_08086A6C: @ 0x08086A6C push {r4, lr} adds r4, r0, #0 bl sub_08000E50 movs r1, #0xa0 lsls r1, r1, #0xa str r1, [r4, #0x20] lsrs r1, r0, #0x10 movs r2, #0x1f ands r1, r2 strb r1, [r4, #0x15] movs r2, #0xf0 lsls r2, r2, #1 adds r1, r2, #0 ands r0, r1 strh r0, [r4, #0x24] pop {r4, pc} .align 2, 0 thumb_func_start sub_08086A90 sub_08086A90: @ 0x08086A90 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08086AA4 ldrb r0, [r4, #0xa] movs r1, #0xb bl __modsi3 strb r0, [r4, #0xb] _08086AA4: ldr r0, _08086AB8 @ =gUnk_081206D0 ldrb r1, [r4, #0xb] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _08086AB8: .4byte gUnk_081206D0 thumb_func_start sub_08086ABC sub_08086ABC: @ 0x08086ABC push {r4, lr} adds r4, r0, #0 ldr r1, _08086AE4 @ =gUnk_081206FC ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldr r3, _08086AE8 @ =gUnk_03001160 movs r1, #0x32 ldrsh r0, [r3, r1] ldr r2, _08086AEC @ =gUnk_03000BF0 ldrh r1, [r2, #8] subs r0, r0, r1 cmp r0, #0xa7 bgt _08086AF0 str r4, [r2, #0x30] b _08086AF2 .align 2, 0 _08086AE4: .4byte gUnk_081206FC _08086AE8: .4byte gUnk_03001160 _08086AEC: .4byte gUnk_03000BF0 _08086AF0: str r3, [r2, #0x30] _08086AF2: movs r0, #2 strb r0, [r2, #0xe] pop {r4, pc} thumb_func_start sub_08086AF8 sub_08086AF8: @ 0x08086AF8 push {r4, lr} adds r4, r0, #0 bl sub_08087380 movs r0, #0 strb r0, [r4, #0xe] adds r4, #0x84 movs r0, #0x91 lsls r0, r0, #1 strh r0, [r4] pop {r4, pc} .align 2, 0 thumb_func_start sub_08086B10 sub_08086B10: @ 0x08086B10 push {r4, r5, r6, lr} adds r4, r0, #0 movs r0, #0 bl sub_0807CC3C cmp r0, #0 beq _08086B9A adds r1, r4, #0 adds r1, #0x84 ldrh r0, [r1] cmp r0, #0 beq _08086B2C subs r0, #1 strh r0, [r1] _08086B2C: ldrh r1, [r1] cmp r1, #0x96 beq _08086B62 cmp r1, #0x96 bgt _08086B40 cmp r1, #0 beq _08086B5C cmp r1, #0x82 beq _08086B62 b _08086B9A _08086B40: cmp r1, #0xd2 beq _08086B62 cmp r1, #0xd2 bgt _08086B4E cmp r1, #0xaa beq _08086B62 b _08086B9A _08086B4E: ldr r0, _08086B58 @ =0x00000121 cmp r1, r0 beq _08086B62 b _08086B9A .align 2, 0 _08086B58: .4byte 0x00000121 _08086B5C: movs r0, #2 strb r0, [r4, #0xc] b _08086B9A _08086B62: adds r0, r4, #0 movs r1, #6 movs r2, #0 bl sub_080873AC adds r5, r0, #0 cmp r5, #0 beq _08086B9A ldr r3, _08086B9C @ =gUnk_08120714 ldrb r1, [r4, #0xe] lsls r0, r1, #1 adds r0, r0, r3 movs r6, #0 ldrsh r2, [r0, r6] lsls r2, r2, #0x10 adds r1, #1 lsls r1, r1, #1 adds r1, r1, r3 movs r0, #0 ldrsh r3, [r1, r0] lsls r3, r3, #0x10 adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA48 ldrb r0, [r4, #0xe] adds r0, #2 strb r0, [r4, #0xe] _08086B9A: pop {r4, r5, r6, pc} .align 2, 0 _08086B9C: .4byte gUnk_08120714 thumb_func_start sub_08086BA0 sub_08086BA0: @ 0x08086BA0 push {r4, lr} adds r4, r0, #0 movs r1, #7 movs r2, #0 bl sub_080873AC adds r1, r0, #0 cmp r1, #0 beq _08086BC2 movs r3, #0x80 lsls r3, r3, #0xc adds r0, r4, #0 movs r2, #0 bl sub_0806FA48 movs r0, #3 strb r0, [r4, #0xc] _08086BC2: pop {r4, pc} thumb_func_start sub_08086BC4 sub_08086BC4: @ 0x08086BC4 push {r4, lr} adds r4, r0, #0 ldr r0, _08086C10 @ =gUnk_02034350 ldr r0, [r0, #0x68] movs r1, #1 ands r0, r1 cmp r0, #0 beq _08086C0C adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_080873AC adds r1, r0, #0 cmp r1, #0 beq _08086C0C adds r0, r4, #0 bl sub_0806FA24 movs r0, #6 movs r1, #4 bl sub_08050054 ldr r0, _08086C14 @ =0x00000145 bl sub_080A3268 movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #0x40 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] _08086C0C: pop {r4, pc} .align 2, 0 _08086C10: .4byte gUnk_02034350 _08086C14: .4byte 0x00000145 thumb_func_start sub_08086C18 sub_08086C18: @ 0x08086C18 push {r4, r5, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xe] adds r5, r0, #0 cmp r5, #0 beq _08086C2E subs r0, #1 strb r0, [r4, #0xe] b _08086C52 _08086C2E: adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_080873AC adds r1, r0, #0 cmp r1, #0 beq _08086C52 ldr r3, _08086C54 @ =0xFFEC0000 adds r0, r4, #0 movs r2, #0 bl sub_0806FA48 movs r0, #5 strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xe] strb r5, [r4, #0xf] _08086C52: pop {r4, r5, pc} .align 2, 0 _08086C54: .4byte 0xFFEC0000 thumb_func_start sub_08086C58 sub_08086C58: @ 0x08086C58 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08086C68 subs r0, #1 strb r0, [r4, #0xe] b _08086C90 _08086C68: ldrb r0, [r4, #0xf] cmp r0, #0 bne _08086C90 adds r0, r4, #0 movs r1, #9 movs r2, #0 bl sub_080873AC adds r5, r0, #0 cmp r5, #0 beq _08086C90 ldr r3, _08086C98 @ =0xFFB40000 adds r0, r4, #0 adds r1, r5, #0 movs r2, #0 bl sub_0806FA48 str r4, [r5, #0x50] movs r0, #1 strb r0, [r4, #0xf] _08086C90: adds r0, r4, #0 bl sub_08004274 pop {r4, r5, pc} .align 2, 0 _08086C98: .4byte 0xFFB40000 thumb_func_start sub_08086C9C sub_08086C9C: @ 0x08086C9C push {lr} ldr r2, _08086CB0 @ =gUnk_08120728 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08086CB0: .4byte gUnk_08120728 thumb_func_start sub_08086CB4 sub_08086CB4: @ 0x08086CB4 push {r4, lr} adds r4, r0, #0 bl sub_08087380 adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #5 orrs r0, r1 strb r0, [r2] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] ldrb r1, [r4, #0x19] movs r0, #0xd rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r4, #0x19] ldr r1, _08086D10 @ =gUnk_03000F50 adds r2, r1, #0 adds r2, #0x66 movs r0, #0xf4 lsls r0, r0, #4 strh r0, [r2] adds r1, #0x68 ldr r0, _08086D14 @ =0x00000809 strh r0, [r1] movs r1, #0x80 lsls r1, r1, #3 strh r1, [r4, #0x24] movs r2, #0x80 lsls r2, r2, #1 adds r0, r4, #0 movs r3, #0 bl sub_0805EC9C pop {r4, pc} .align 2, 0 _08086D10: .4byte gUnk_03000F50 _08086D14: .4byte 0x00000809 thumb_func_start sub_08086D18 sub_08086D18: @ 0x08086D18 push {lr} adds r3, r0, #0 ldrh r0, [r3, #0x24] subs r0, #0x20 strh r0, [r3, #0x24] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r2, #0x80 lsls r2, r2, #1 cmp r0, r2 bne _08086D58 movs r0, #2 strb r0, [r3, #0xc] adds r0, r3, #0 bl sub_0805EC60 ldr r2, _08086D50 @ =gUnk_02034350 ldr r0, [r2, #0x68] movs r1, #0x20 orrs r0, r1 str r0, [r2, #0x68] ldr r2, _08086D54 @ =gUnk_02033280 ldr r0, [r2] movs r1, #4 orrs r0, r1 str r0, [r2] b _08086D64 .align 2, 0 _08086D50: .4byte gUnk_02034350 _08086D54: .4byte gUnk_02033280 _08086D58: movs r0, #0x24 ldrsh r1, [r3, r0] adds r0, r3, #0 movs r3, #0 bl sub_0805EC9C _08086D64: pop {pc} .align 2, 0 thumb_func_start nullsub_116 nullsub_116: @ 0x08086D68 bx lr .align 2, 0 thumb_func_start sub_08086D6C sub_08086D6C: @ 0x08086D6C push {lr} ldr r2, _08086D80 @ =gUnk_08120734 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08086D80: .4byte gUnk_08120734 thumb_func_start sub_08086D84 sub_08086D84: @ 0x08086D84 push {r4, lr} adds r4, r0, #0 bl sub_08087380 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r4, #0x29 ldrb r1, [r4] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r4] pop {r4, pc} thumb_func_start sub_08086DAC sub_08086DAC: @ 0x08086DAC push {lr} bl sub_08004274 pop {pc} thumb_func_start sub_08086DB4 sub_08086DB4: @ 0x08086DB4 push {lr} ldr r2, _08086DC8 @ =gUnk_0812073C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08086DC8: .4byte gUnk_0812073C thumb_func_start sub_08086DCC sub_08086DCC: @ 0x08086DCC push {r4, r5, lr} adds r5, r0, #0 movs r1, #4 movs r2, #0 bl sub_080873AC adds r4, r0, #0 cmp r4, #0 beq _08086E00 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 str r5, [r4, #0x50] adds r0, r5, #0 bl sub_08087380 ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r5, #0x18] movs r0, #0 strb r0, [r5, #0xf] _08086E00: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08086E04 sub_08086E04: @ 0x08086E04 push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldr r0, [r4, #0x34] ldr r1, _08086E2C @ =0xFFFF8000 adds r0, r0, r1 str r0, [r4, #0x34] movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #0x14 rsbs r0, r0, #0 cmp r1, r0 bne _08086E34 movs r0, #2 strb r0, [r4, #0xc] ldr r0, _08086E30 @ =0x00000141 bl sub_080A3268 b _08086E62 .align 2, 0 _08086E2C: .4byte 0xFFFF8000 _08086E30: .4byte 0x00000141 _08086E34: movs r0, #0xa rsbs r0, r0, #0 cmp r1, r0 bne _08086E62 ldrb r0, [r4, #0xf] cmp r0, #0 bne _08086E62 adds r0, r4, #0 movs r1, #5 movs r2, #0 bl sub_080873AC adds r1, r0, #0 cmp r1, #0 beq _08086E62 movs r3, #0x80 lsls r3, r3, #0xb adds r0, r4, #0 movs r2, #0 bl sub_0806FA48 movs r0, #1 strb r0, [r4, #0xf] _08086E62: pop {r4, pc} thumb_func_start sub_08086E64 sub_08086E64: @ 0x08086E64 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080873D0 ldr r0, _08086E88 @ =gUnk_02034350 ldr r0, [r0, #0x68] movs r1, #1 ands r0, r1 cmp r0, #0 beq _08086E84 adds r0, r4, #0 bl sub_0805E7BC _08086E84: pop {r4, pc} .align 2, 0 _08086E88: .4byte gUnk_02034350 thumb_func_start sub_08086E8C sub_08086E8C: @ 0x08086E8C push {lr} ldr r2, _08086EA0 @ =gUnk_08120748 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08086EA0: .4byte gUnk_08120748 thumb_func_start sub_08086EA4 sub_08086EA4: @ 0x08086EA4 push {r4, lr} adds r4, r0, #0 bl sub_08087380 adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] pop {r4, pc} .align 2, 0 thumb_func_start sub_08086ED0 sub_08086ED0: @ 0x08086ED0 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA24 movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #0x14 rsbs r0, r0, #0 cmp r1, r0 bne _08086F0C movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x5a strb r0, [r4, #0xe] movs r0, #0x80 lsls r0, r0, #5 strh r0, [r4, #0x24] ldrb r0, [r4, #0x19] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x19] movs r2, #0x80 lsls r2, r2, #1 adds r0, r4, #0 adds r1, r2, #0 movs r3, #0 bl sub_0805EC9C _08086F0C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08086F10 sub_08086F10: @ 0x08086F10 push {lr} adds r3, r0, #0 ldrb r0, [r3, #0xe] subs r0, #1 strb r0, [r3, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08086F3C ldr r2, _08086F38 @ =gUnk_02034350 ldr r0, [r2, #0x68] movs r1, #1 orrs r0, r1 str r0, [r2, #0x68] movs r0, #3 strb r0, [r3, #0xc] adds r0, r3, #0 bl sub_0805EC60 b _08086F52 .align 2, 0 _08086F38: .4byte gUnk_02034350 _08086F3C: ldrh r2, [r3, #0x24] subs r2, #0x18 strh r2, [r3, #0x24] movs r1, #0x80 lsls r1, r1, #1 lsls r2, r2, #0x10 asrs r2, r2, #0x14 adds r0, r3, #0 movs r3, #0 bl sub_0805EC9C _08086F52: pop {pc} thumb_func_start sub_08086F54 sub_08086F54: @ 0x08086F54 push {lr} ldr r2, _08086F68 @ =gUnk_08120758 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08086F68: .4byte gUnk_08120758 thumb_func_start sub_08086F6C sub_08086F6C: @ 0x08086F6C push {r4, lr} adds r4, r0, #0 bl sub_08087380 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #0 strh r0, [r4, #0x36] adds r4, #0x29 ldrb r1, [r4] subs r0, #8 ands r0, r1 movs r1, #5 orrs r0, r1 strb r0, [r4] movs r0, #0xa0 lsls r0, r0, #1 bl sub_080A3268 pop {r4, pc} .align 2, 0 thumb_func_start sub_08086FA0 sub_08086FA0: @ 0x08086FA0 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08086FBC adds r0, r4, #0 bl sub_0805E7BC _08086FBC: pop {r4, pc} .align 2, 0 thumb_func_start sub_08086FC0 sub_08086FC0: @ 0x08086FC0 push {lr} ldr r2, _08086FD4 @ =gUnk_08120760 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08086FD4: .4byte gUnk_08120760 thumb_func_start sub_08086FD8 sub_08086FD8: @ 0x08086FD8 push {r4, lr} adds r4, r0, #0 bl sub_08087380 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r4, #0x29 ldrb r1, [r4] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r4] pop {r4, pc} thumb_func_start sub_08087000 sub_08087000: @ 0x08087000 push {lr} adds r2, r0, #0 ldr r0, _08087018 @ =gUnk_02034350 ldr r0, [r0, #0x68] movs r1, #2 ands r0, r1 cmp r0, #0 beq _0808701C adds r0, r2, #0 bl sub_0805E7BC b _08087022 .align 2, 0 _08087018: .4byte gUnk_02034350 _0808701C: adds r0, r2, #0 bl sub_08004274 _08087022: pop {pc} thumb_func_start sub_08087024 sub_08087024: @ 0x08087024 push {lr} ldr r2, _08087038 @ =gUnk_08120768 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08087038: .4byte gUnk_08120768 thumb_func_start sub_0808703C sub_0808703C: @ 0x0808703C push {r4, lr} adds r4, r0, #0 bl sub_08087380 movs r0, #0x78 strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #0x7c ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r4, #0x29 ldrb r1, [r4] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #5 orrs r0, r1 strb r0, [r4] movs r0, #0xf9 bl sub_080A3268 pop {r4, pc} thumb_func_start sub_0808706C sub_0808706C: @ 0x0808706C push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08087080 subs r0, #1 strb r0, [r4, #0xe] b _080870AA _08087080: adds r0, r4, #0 movs r1, #3 movs r2, #0 bl sub_080873AC adds r1, r0, #0 cmp r1, #0 beq _080870AA ldr r3, _080870AC @ =0xFFF80000 adds r0, r4, #0 movs r2, #0 bl sub_0806FA48 ldr r2, _080870B0 @ =gUnk_02034350 ldr r0, [r2, #0x68] movs r1, #2 orrs r0, r1 str r0, [r2, #0x68] adds r0, r4, #0 bl sub_0805E7BC _080870AA: pop {r4, pc} .align 2, 0 _080870AC: .4byte 0xFFF80000 _080870B0: .4byte gUnk_02034350 thumb_func_start sub_080870B4 sub_080870B4: @ 0x080870B4 push {lr} ldr r2, _080870C8 @ =gUnk_08120770 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080870C8: .4byte gUnk_08120770 thumb_func_start sub_080870CC sub_080870CC: @ 0x080870CC push {r4, lr} adds r4, r0, #0 bl sub_08087380 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r4, #0x29 ldrb r1, [r4] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #5 orrs r0, r1 strb r0, [r4] pop {r4, pc} thumb_func_start sub_080870F4 sub_080870F4: @ 0x080870F4 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08087110 adds r0, r4, #0 bl sub_0805E7BC _08087110: pop {r4, pc} .align 2, 0 thumb_func_start sub_08087114 sub_08087114: @ 0x08087114 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xb] cmp r0, #0 bne _08087134 ldr r0, _08087130 @ =gUnk_08120778 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 b _0808714A .align 2, 0 _08087130: .4byte gUnk_08120778 _08087134: ldr r0, _0808714C @ =gUnk_08120788 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_08004274 _0808714A: pop {r4, pc} .align 2, 0 _0808714C: .4byte gUnk_08120788 thumb_func_start sub_08087150 sub_08087150: @ 0x08087150 push {r4, lr} adds r4, r0, #0 bl sub_08087380 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] ldrb r2, [r4, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 strb r0, [r4, #0x1b] ldrb r0, [r4, #0x19] ands r1, r0 strb r1, [r4, #0x19] 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] movs r0, #0x80 strh r0, [r4, #0x24] movs r0, #0x10 strb r0, [r4, #0x15] ldr r0, _080871A0 @ =gUnk_0812079C ldrb r0, [r0] movs r1, #0xf ands r1, r0 lsls r0, r0, #4 orrs r0, r1 strb r0, [r4, #0x1a] pop {r4, pc} .align 2, 0 _080871A0: .4byte gUnk_0812079C thumb_func_start nullsub_516 nullsub_516: @ 0x080871A4 bx lr .align 2, 0 thumb_func_start sub_080871A8 sub_080871A8: @ 0x080871A8 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 _080871CA movs r0, #3 strb r0, [r1, #0xc] movs r0, #0x3c strb r0, [r1, #0xe] ldr r2, _080871CC @ =gUnk_02034350 ldr r0, [r2, #0x68] movs r1, #4 orrs r0, r1 str r0, [r2, #0x68] _080871CA: pop {pc} .align 2, 0 _080871CC: .4byte gUnk_02034350 thumb_func_start sub_080871D0 sub_080871D0: @ 0x080871D0 push {lr} adds r3, r0, #0 ldrb r0, [r3, #0xe] subs r0, #1 strb r0, [r3, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080871F0 ldr r0, _080871F4 @ =gUnk_02034350 ldr r1, [r0, #0x68] movs r2, #8 orrs r1, r2 str r1, [r0, #0x68] adds r0, r3, #0 bl sub_0805E7BC _080871F0: pop {pc} .align 2, 0 _080871F4: .4byte gUnk_02034350 thumb_func_start sub_080871F8 sub_080871F8: @ 0x080871F8 push {r4, r5, lr} adds r4, r0, #0 ldr r3, [r4, #0x54] movs r0, #0x2e ldrsh r1, [r3, r0] movs r2, #0x2e ldrsh r0, [r4, r2] cmp r1, r0 bne _0808721E movs r5, #0x32 ldrsh r0, [r3, r5] subs r0, #0x20 movs r2, #0x32 ldrsh r1, [r4, r2] cmp r0, r1 bne _0808721E movs r0, #2 strb r0, [r4, #0xc] b _0808723C _0808721E: movs r5, #0x2e ldrsh r0, [r4, r5] movs r2, #0x32 ldrsh r1, [r4, r2] movs r5, #0x2e ldrsh r2, [r3, r5] movs r5, #0x32 ldrsh r3, [r3, r5] subs r3, #0x20 bl sub_080045D4 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_0806F69C _0808723C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08087240 sub_08087240: @ 0x08087240 push {lr} adds r2, r0, #0 ldr r0, _08087260 @ =gUnk_02034350 ldr r0, [r0, #0x68] movs r1, #4 ands r0, r1 cmp r0, #0 beq _0808725C movs r0, #3 strb r0, [r2, #0xc] movs r0, #0x14 strb r0, [r2, #0xe] movs r0, #0x10 strb r0, [r2, #0x15] _0808725C: pop {pc} .align 2, 0 _08087260: .4byte gUnk_02034350 thumb_func_start sub_08087264 sub_08087264: @ 0x08087264 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xe] cmp r0, #0 beq _08087278 subs r0, #1 strb r0, [r1, #0xe] adds r0, r1, #0 bl sub_0806F69C _08087278: pop {pc} .align 2, 0 thumb_func_start sub_0808727C sub_0808727C: @ 0x0808727C 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 _08087292 adds r0, r1, #0 bl sub_0805E7BC _08087292: pop {pc} thumb_func_start sub_08087294 sub_08087294: @ 0x08087294 push {lr} ldr r2, _080872A8 @ =gUnk_081207A4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080872A8: .4byte gUnk_081207A4 thumb_func_start sub_080872AC sub_080872AC: @ 0x080872AC push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] ldrb r1, [r4, #0x1b] movs r2, #0x3f adds r0, r2, #0 ands r0, r1 movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x1b] ldrb r0, [r4, #0x19] ands r2, r0 strb r2, [r4, #0x19] ldrh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x68 strh r1, [r0] ldrh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x6a strh r0, [r1] bl sub_08000E50 movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] movs r0, #0x20 strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_08087380 pop {r4, pc} thumb_func_start sub_080872F8 sub_080872F8: @ 0x080872F8 push {r4, r5, lr} adds r4, r0, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_08004274 adds r2, r4, #0 adds r2, #0x68 ldrh r0, [r2] ldrh r1, [r4, #0x2e] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xc bhi _0808732A adds r0, r4, #0 adds r0, #0x6a ldrh r0, [r0] ldrh r1, [r4, #0x32] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xc bls _0808735C _0808732A: movs r1, #0x2e ldrsh r0, [r4, r1] movs r3, #0x32 ldrsh r1, [r4, r3] movs r5, #0 ldrsh r2, [r2, r5] adds r3, r4, #0 adds r3, #0x6a movs r5, #0 ldrsh r3, [r3, r5] bl sub_080045D4 strb r0, [r4, #0x15] bl sub_08000E50 ldr r2, _08087378 @ =gUnk_081207AC movs r1, #3 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] ldrb r1, [r4, #0x15] adds r0, r0, r1 movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] _0808735C: ldr r1, _0808737C @ =gUnk_080C9160 ldrb r0, [r4, #0xe] adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r1 movs r3, #0 ldrsh r0, [r0, r3] asrs r0, r0, #6 subs r0, #8 strh r0, [r4, #0x36] ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] pop {r4, r5, pc} .align 2, 0 _08087378: .4byte gUnk_081207AC _0808737C: .4byte gUnk_080C9160 thumb_func_start sub_08087380 sub_08087380: @ 0x08087380 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xa] movs r1, #0xb bl __modsi3 strb r0, [r4, #0xb] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] ldrb r1, [r4, #0xb] adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 pop {r4, pc} thumb_func_start sub_080873AC sub_080873AC: @ 0x080873AC push {r4, r5, r6, lr} adds r5, r1, #0 adds r6, r2, #0 ldrb r0, [r0, #0xa] movs r4, #0xb movs r1, #0xb bl __divsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 adds r1, r0, #0 muls r1, r4, r1 adds r1, r1, r5 movs r0, #0x1b adds r2, r6, #0 bl sub_080A2960 pop {r4, r5, r6, pc} thumb_func_start sub_080873D0 sub_080873D0: @ 0x080873D0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _080873DE subs r0, #1 b _080873F6 _080873DE: adds r0, r4, #0 movs r1, #8 movs r2, #0 bl sub_080873AC adds r1, r0, #0 cmp r1, #0 beq _080873F8 adds r0, r4, #0 bl sub_0806FA24 movs r0, #0x30 _080873F6: strb r0, [r4, #0xe] _080873F8: pop {r4, pc} .align 2, 0 thumb_func_start sub_080873FC sub_080873FC: @ 0x080873FC push {lr} movs r0, #0xf7 bl sub_080A3268 ldr r1, _0808740C @ =gUnk_03000BF0 movs r0, #0 str r0, [r1, #0x30] b _08087414 .align 2, 0 _0808740C: .4byte gUnk_03000BF0 _08087410: bl sub_0805E7BC _08087414: movs r0, #6 movs r1, #0x1b movs r2, #6 bl sub_0805EB00 cmp r0, #0 bne _08087410 pop {pc} thumb_func_start sub_08087424 sub_08087424: @ 0x08087424 push {r4, r5, lr} adds r5, r1, #0 bl sub_080791D0 movs r0, #0x64 movs r1, #0 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _0808744E ldr r0, _0808745C @ =gUnk_03001160 str r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA24 adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 _0808744E: ldr r1, [r5, #4] cmp r1, #0 beq _08087460 cmp r1, #1 beq _0808746C b _08087474 .align 2, 0 _0808745C: .4byte gUnk_03001160 _08087460: ldr r0, _08087468 @ =gUnk_02002A40 adds r0, #0xad b _08087472 .align 2, 0 _08087468: .4byte gUnk_02002A40 _0808746C: ldr r0, _08087478 @ =gUnk_02002A40 adds r0, #0xac movs r1, #0 _08087472: strb r1, [r0] _08087474: pop {r4, r5, pc} .align 2, 0 _08087478: .4byte gUnk_02002A40 thumb_func_start sub_0808747C sub_0808747C: @ 0x0808747C push {r4, lr} sub sp, #4 adds r4, r1, #0 movs r0, #0 str r0, [sp] movs r0, #6 movs r1, #0xf movs r2, #6 movs r3, #0xb bl sub_0805EB2C cmp r0, #0 beq _08087498 movs r0, #1 _08087498: str r0, [r4, #0x14] add sp, #4 pop {r4, pc} .align 2, 0 thumb_func_start sub_080874A0 sub_080874A0: @ 0x080874A0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080874AE movs r0, #1 strb r0, [r4, #0xc] _080874AE: adds r0, r4, #0 adds r0, #0x80 movs r1, #0 ldrsh r0, [r0, r1] adds r1, r4, #0 adds r1, #0x82 movs r2, #0 ldrsh r1, [r1, r2] movs r2, #0x10 movs r3, #0x10 bl sub_0800290E cmp r0, #0 bne _080874DC ldr r2, [r4, #0x50] movs r1, #1 ldrb r4, [r4, #0xb] lsls r1, r4 ldr r0, [r2, #0x20] bics r0, r1 str r0, [r2, #0x20] bl sub_0805E780 _080874DC: pop {r4, pc} .align 2, 0 thumb_func_start sub_080874E0 sub_080874E0: @ 0x080874E0 push {lr} ldr r2, _080874F4 @ =gUnk_081208A0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080874F4: .4byte gUnk_081208A0 thumb_func_start sub_080874F8 sub_080874F8: @ 0x080874F8 push {lr} bl sub_0805E780 pop {pc} thumb_func_start nullsub_117 nullsub_117: @ 0x08087500 bx lr .align 2, 0 thumb_func_start sub_08087504 sub_08087504: @ 0x08087504 push {r4, lr} adds r4, r0, #0 bl sub_0805E3B0 cmp r0, #0 bne _08087520 ldr r0, _08087524 @ =gUnk_081208B8 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _08087520: pop {r4, pc} .align 2, 0 _08087524: .4byte gUnk_081208B8 thumb_func_start sub_08087528 sub_08087528: @ 0x08087528 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldr r0, _08087590 @ =gUnk_03001160 ldrb r0, [r0, #0x14] lsrs r0, r0, #1 strb r0, [r4, #0x14] ldrb r1, [r4, #0x19] movs r2, #0x3f adds r0, r2, #0 ands r0, r1 movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x19] adds r3, r4, #0 adds r3, #0x29 ldrb r1, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r3] ldrb r1, [r4, #0x1b] lsrs r0, r1, #6 subs r0, #1 lsls r0, r0, #6 ands r2, r1 orrs r2, r0 strb r2, [r4, #0x1b] ldrb r0, [r4, #0xb] cmp r0, #0 beq _08087594 ldrb r1, [r4, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x1a] ldrb r0, [r4, #0x14] cmp r0, #1 bne _08087588 ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x18] _08087588: adds r0, r4, #0 bl sub_08087640 b _080875DC .align 2, 0 _08087590: .4byte gUnk_03001160 _08087594: ldr r0, _080875B4 @ =gUnk_02033A90 ldrb r0, [r0, #1] movs r1, #4 cmp r0, #0x10 bne _080875A2 movs r1, #0xb5 lsls r1, r1, #1 _080875A2: adds r0, r4, #0 bl sub_0801D2B4 ldrb r0, [r4, #0x14] cmp r0, #1 beq _080875B8 cmp r0, #3 bne _080875CE b _080875C0 .align 2, 0 _080875B4: .4byte gUnk_02033A90 _080875B8: ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x18] _080875C0: ldrb r0, [r4, #0xa] cmp r0, #0x40 bne _080875DC ldrh r0, [r4, #0x32] adds r0, #4 strh r0, [r4, #0x32] b _080875DC _080875CE: ldrb r0, [r4, #0xa] cmp r0, #0x40 bne _080875DC ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x18] _080875DC: adds r0, r4, #0 movs r1, #3 bl sub_0805E3A0 ldrb r1, [r4, #0xb] lsls r1, r1, #2 ldrb r0, [r4, #0x14] adds r1, r1, r0 adds r0, r4, #0 bl sub_08004260 pop {r4, pc} thumb_func_start sub_080875F4 sub_080875F4: @ 0x080875F4 push {r4, r5, lr} adds r4, r0, #0 bl sub_08004274 adds r5, r4, #0 adds r5, #0x5a ldrb r1, [r5] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808760E bl sub_0805E780 _0808760E: ldrb r0, [r4, #0xb] cmp r0, #0 beq _08087638 ldr r0, _0808763C @ =gUnk_03001160 adds r0, #0x29 ldrb r1, [r0] lsls r1, r1, #0x1d lsrs r1, r1, #0x1d ldrb r0, [r5] subs r0, #1 subs r1, r1, r0 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] _08087638: pop {r4, r5, pc} .align 2, 0 _0808763C: .4byte gUnk_03001160 thumb_func_start sub_08087640 sub_08087640: @ 0x08087640 push {r4, r5, r6, lr} adds r4, r0, #0 movs r0, #0x2e ldrsh r5, [r4, r0] movs r1, #0x32 ldrsh r6, [r4, r1] ldrb r1, [r4, #0x14] lsls r1, r1, #1 ldr r0, _08087684 @ =gUnk_081208C0 adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] ldrh r2, [r4, #0x2e] adds r0, r0, r2 strh r0, [r4, #0x2e] movs r0, #1 ldrsb r0, [r1, r0] ldrh r1, [r4, #0x32] adds r0, r0, r1 strh r0, [r4, #0x32] ldr r0, _08087688 @ =gUnk_03000BF0 ldrh r1, [r0, #4] ldr r0, _0808768C @ =0x00000403 movs r2, #0x16 cmp r1, r0 bne _08087676 movs r2, #0x17 _08087676: adds r0, r4, #0 adds r1, r2, #0 bl sub_0805457C strh r5, [r4, #0x2e] strh r6, [r4, #0x32] pop {r4, r5, r6, pc} .align 2, 0 _08087684: .4byte gUnk_081208C0 _08087688: .4byte gUnk_03000BF0 _0808768C: .4byte 0x00000403 thumb_func_start sub_08087690 sub_08087690: @ 0x08087690 push {lr} ldr r2, _080876A4 @ =gUnk_08120A0C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080876A4: .4byte gUnk_08120A0C thumb_func_start sub_080876A8 sub_080876A8: @ 0x080876A8 push {lr} mov ip, r0 movs r0, #1 mov r1, ip strb r0, [r1, #0xc] movs r0, #0xb0 lsls r0, r0, #0xa str r0, [r1, #0x20] ldrb r2, [r1, #0x14] lsls r0, r2, #2 movs r1, #0x10 eors r0, r1 mov r3, ip strb r0, [r3, #0x15] lsls r2, r2, #0x18 cmp r2, #0 bne _080876E2 adds r3, #0x29 ldrb r2, [r3] lsls r1, r2, #0x1d lsrs r1, r1, #0x1d subs r1, #1 movs r0, #7 ands r1, r0 movs r0, #8 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080876E2: ldr r1, _08087760 @ =gUnk_08120A20 mov r2, ip ldrb r0, [r2, #0x14] adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r3, [r2, #0x2e] adds r0, r0, r3 strh r0, [r2, #0x2e] ldrb r0, [r2, #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, [r2, #0x32] ldr r3, _08087764 @ =gUnk_08120A18 ldrb r0, [r2, #0xf] lsls r0, r0, #2 adds r0, r0, r3 ldrb r1, [r0, #3] mov r0, ip adds r0, #0x60 strh r1, [r0] ldrb r0, [r2, #0xf] lsls r0, r0, #2 adds r0, r0, r3 ldrb r1, [r0, #1] movs r0, #0xf ands r1, r0 ldrb r2, [r2, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 mov r2, ip strb r0, [r2, #0x1a] ldrb r0, [r2, #0xf] lsls r0, r0, #2 adds r0, r0, r3 ldrb r0, [r0, #2] str r0, [r2, #0x6c] ldr r0, _08087768 @ =gUnk_03001160 adds r0, #0x38 ldrb r1, [r0] mov r0, ip adds r0, #0x38 strb r1, [r0] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r2, #0x24] ldrb r0, [r2, #0xf] lsls r0, r0, #2 adds r0, r0, r3 ldrb r1, [r0] mov r0, ip bl sub_08004260 pop {pc} .align 2, 0 _08087760: .4byte gUnk_08120A20 _08087764: .4byte gUnk_08120A18 _08087768: .4byte gUnk_03001160 thumb_func_start sub_0808776C sub_0808776C: @ 0x0808776C push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x6c] cmp r0, #0 beq _08087788 subs r0, #1 str r0, [r4, #0x6c] ldr r0, _08087784 @ =gUnk_03003F80 adds r0, #0x3d ldrb r0, [r0] b _08087798 .align 2, 0 _08087784: .4byte gUnk_03003F80 _08087788: adds r0, r4, #0 bl sub_080AEFE0 movs r1, #0xa0 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 _08087798: cmp r0, #0 bne _080877A0 movs r0, #2 strb r0, [r4, #0xc] _080877A0: pop {r4, pc} .align 2, 0 thumb_func_start sub_080877A4 sub_080877A4: @ 0x080877A4 push {r4, lr} adds r4, r0, #0 bl sub_080002D0 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 adds r1, r0, #0 cmp r0, #0x25 beq _080877D0 cmp r0, #0x25 bgt _080877C4 cmp r0, #0x21 beq _080877CA cmp r0, #0x24 beq _080877D6 b _080877E2 _080877C4: cmp r1, #0x30 beq _080877D6 b _080877E2 _080877CA: adds r0, r4, #0 movs r1, #0 b _080877DA _080877D0: adds r0, r4, #0 movs r1, #0xc b _080877DA _080877D6: adds r0, r4, #0 movs r1, #0xb _080877DA: movs r2, #0 bl sub_080A29AC b _08087804 _080877E2: ldrb r0, [r4, #0xb] cmp r0, #0 beq _08087804 cmp r0, #0xf bne _080877F8 ldrb r1, [r4, #0xe] adds r0, r4, #0 movs r2, #0x80 bl sub_080A29AC b _08087804 _080877F8: ldrb r1, [r4, #0xb] ldrb r2, [r4, #0xe] adds r0, r4, #0 movs r3, #0 bl sub_080A2988 _08087804: bl sub_0805E780 pop {r4, pc} .align 2, 0 thumb_func_start sub_0808780C sub_0808780C: @ 0x0808780C push {lr} ldr r2, _08087820 @ =gUnk_08120A28 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08087820: .4byte gUnk_08120A28 thumb_func_start sub_08087824 sub_08087824: @ 0x08087824 push {r4, lr} adds r4, r0, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #0 bne _08087836 adds r0, r4, #0 bl sub_08016A30 _08087836: movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x3c movs r0, #0x13 strb r0, [r1] adds r1, #9 movs r0, #0xff strb r0, [r1] subs r1, #6 movs r0, #0xa9 strb r0, [r1] adds r1, #1 movs r0, #0x16 strb r0, [r1] ldr r0, _08087884 @ =gUnk_08120A54 ldr r0, [r0] str r0, [r4, #0x48] subs r1, #5 movs r0, #0x8b strb r0, [r1] adds r0, r4, #0 bl sub_080878CC adds r0, r4, #0 movs r1, #1 bl sub_08004260 adds r0, r4, #0 bl sub_0801766C movs r0, #0xfd bl sub_08004488 pop {r4, pc} .align 2, 0 _08087884: .4byte gUnk_08120A54 thumb_func_start sub_08087888 sub_08087888: @ 0x08087888 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080878A4 bl sub_0805E780 b _080878C8 _080878A4: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #4 bhi _080878C0 ldr r0, _080878BC @ =gUnk_08120A54 ldrb r1, [r2] lsls r1, r1, #2 adds r1, r1, r0 ldr r0, [r1] str r0, [r4, #0x48] b _080878C8 .align 2, 0 _080878BC: .4byte gUnk_08120A54 _080878C0: ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] _080878C8: pop {r4, pc} .align 2, 0 thumb_func_start sub_080878CC sub_080878CC: @ 0x080878CC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x10 adds r7, r0, #0 movs r1, #0x2e ldrsh r0, [r7, r1] str r0, [sp] movs r0, #0x32 ldrsh r2, [r7, r0] str r2, [sp, #4] adds r0, r7, #0 adds r0, #0x38 ldrb r0, [r0] mov r8, r0 movs r0, #0x10 rsbs r0, r0, #0 mov r1, r8 lsls r1, r1, #0x18 str r1, [sp, #8] _080878F8: movs r2, #0x10 rsbs r2, r2, #0 mov sb, r2 ldr r1, [sp] adds r1, r1, r0 mov sl, r1 adds r0, #0x10 str r0, [sp, #0xc] mov r6, sl _0808790A: ldr r2, _0808795C @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r0, r6, r0 lsrs r4, r0, #4 movs r0, #0x3f ands r4, r0 ldr r5, [sp, #4] add r5, sb ldrh r0, [r2, #8] subs r0, r5, r0 lsrs r0, r0, #4 movs r1, #0x3f ands r0, r1 lsls r0, r0, #6 orrs r4, r0 adds r0, r4, #0 ldr r2, [sp, #8] lsrs r1, r2, #0x18 bl sub_080002C8 cmp r0, #0x2e bne _08087970 adds r0, r4, #0 mov r1, r8 bl sub_080002B0 adds r1, r0, #0 movs r0, #0xda lsls r0, r0, #2 cmp r1, r0 bhi _08087960 subs r0, #1 cmp r1, r0 blo _08087960 adds r0, r7, #0 movs r1, #3 adds r2, r6, #0 adds r3, r5, #0 bl sub_08008796 b _0808797C .align 2, 0 _0808795C: .4byte gUnk_03000BF0 _08087960: ldr r0, _0808796C @ =0x00004022 adds r1, r4, #0 mov r2, r8 bl sub_0800015E b _0808797C .align 2, 0 _0808796C: .4byte 0x00004022 _08087970: adds r0, r7, #0 movs r1, #3 mov r2, sl adds r3, r5, #0 bl sub_08008796 _0808797C: movs r0, #0x10 add sb, r0 mov r1, sb cmp r1, #0x10 ble _0808790A ldr r0, [sp, #0xc] cmp r0, #0x10 ble _080878F8 add sp, #0x10 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08087998 sub_08087998: @ 0x08087998 push {r4, lr} adds r4, r0, #0 ldr r0, _080879C0 @ =gUnk_08120A68 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0xe] cmp r0, #0 beq _080879C4 subs r0, #1 strb r0, [r4, #0xe] b _080879EA .align 2, 0 _080879C0: .4byte gUnk_08120A68 _080879C4: adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0xa bne _080879D8 adds r0, r4, #0 movs r1, #0xd bl sub_08004260 b _080879EA _080879D8: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080879EA bl sub_0805E780 _080879EA: movs r1, #0x24 ldrsh r0, [r4, r1] cmp r0, #0 beq _08087A0C adds r0, r4, #0 bl sub_0806F69C ldrh r1, [r4, #0x24] movs r2, #0x24 ldrsh r0, [r4, r2] cmp r0, #0x10 ble _08087A08 adds r0, r1, #0 subs r0, #0x10 b _08087A0A _08087A08: movs r0, #0 _08087A0A: strh r0, [r4, #0x24] _08087A0C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08087A10 sub_08087A10: @ 0x08087A10 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xb] cmp r0, #0 beq _08087A26 adds r0, r4, #0 movs r1, #3 bl sub_0801D2B4 _08087A26: ldrb r0, [r4, #0xa] cmp r0, #2 bls _08087A3C ldr r0, _08087A4C @ =gUnk_08120A78 ldrb r1, [r4, #0xa] subs r1, #3 adds r1, r1, r0 ldrb r1, [r1] adds r0, r4, #0 bl sub_0801D2B4 _08087A3C: ldrb r0, [r4, #0xa] cmp r0, #4 bhi _08087AF0 lsls r0, r0, #2 ldr r1, _08087A50 @ =_08087A54 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08087A4C: .4byte gUnk_08120A78 _08087A50: .4byte _08087A54 _08087A54: @ jump table .4byte _08087A76 @ case 0 .4byte _08087AF0 @ case 1 .4byte _08087AA0 @ case 2 .4byte _08087A76 @ case 3 .4byte _08087A68 @ case 4 _08087A68: adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 _08087A76: ldrb r1, [r4, #0x10] movs r0, #0x80 movs r2, #0 orrs r0, r1 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x45 movs r0, #1 strb r0, [r1] subs r1, #9 movs r0, #7 strb r0, [r1] adds r1, #3 movs r0, #0xaa strb r0, [r1] subs r1, #4 movs r0, #0xe strb r0, [r1] ldr r0, _08087AE4 @ =gUnk_08120A8C str r0, [r4, #0x48] strb r2, [r4, #0x1c] _08087AA0: bl sub_08000E50 ldr r2, _08087AE8 @ =gUnk_08120A7A movs r3, #3 adds r1, r0, #0 ands r1, r3 adds r1, r1, r2 ldrb r1, [r1] strb r1, [r4, #0xe] lsrs r2, r0, #8 ands r2, r3 movs r1, #0x10 ands r1, r0 cmp r1, #0 beq _08087AC0 rsbs r2, r2, #0 _08087AC0: ldrh r0, [r4, #0x2e] adds r0, r0, r2 strh r0, [r4, #0x2e] ldrh r0, [r4, #0x32] adds r0, r0, r2 strh r0, [r4, #0x32] ldr r0, _08087AEC @ =gUnk_03001160 adds r0, #0x38 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] adds r0, r4, #0 movs r1, #0xa bl sub_08004260 b _08087AF8 .align 2, 0 _08087AE4: .4byte gUnk_08120A8C _08087AE8: .4byte gUnk_08120A7A _08087AEC: .4byte gUnk_03001160 _08087AF0: adds r0, r4, #0 movs r1, #0x10 bl sub_08004260 _08087AF8: pop {r4, pc} .align 2, 0 thumb_func_start sub_08087AFC sub_08087AFC: @ 0x08087AFC push {r4, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08087B56 movs r0, #0x7f ands r0, r1 cmp r0, #0x16 beq _08087B3C cmp r0, #0x16 bgt _08087B1E cmp r0, #0x13 beq _08087B4E b _08087B56 _08087B1E: cmp r0, #0x1c bgt _08087B56 cmp r0, #0x1b blt _08087B56 ldr r1, [r4, #0x4c] adds r0, r1, #0 adds r0, #0x84 ldr r0, [r0] adds r1, #0x80 ldr r1, [r1] ldr r2, [r4, #0x2c] ldr r3, [r4, #0x30] bl sub_080045D4 b _08087B44 _08087B3C: ldr r0, [r4, #0x4c] adds r1, r4, #0 bl sub_080045C4 _08087B44: strb r0, [r4, #0x15] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r4, #0x24] b _08087B56 _08087B4E: movs r1, #0 movs r0, #3 strb r0, [r4, #0xc] strb r1, [r4, #0xd] _08087B56: pop {r4, pc} thumb_func_start sub_08087B58 sub_08087B58: @ 0x08087B58 push {lr} adds r2, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08087B80 ldr r0, _08087B7C @ =gUnk_08120A80 ldrb r1, [r2, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 b _08087B84 .align 2, 0 _08087B7C: .4byte gUnk_08120A80 _08087B80: movs r0, #1 strb r0, [r2, #0xc] _08087B84: pop {pc} .align 2, 0 thumb_func_start sub_08087B88 sub_08087B88: @ 0x08087B88 adds r2, r0, #0 adds r2, #0x46 movs r1, #0x80 lsls r1, r1, #1 strh r1, [r2] movs r1, #1 strb r1, [r0, #0xd] strb r1, [r0, #0x1d] bx lr .align 2, 0 thumb_func_start sub_08087B9C sub_08087B9C: @ 0x08087B9C push {lr} bl sub_0806F3E4 cmp r0, #0 beq _08087BAA bl sub_0805E780 _08087BAA: pop {pc} thumb_func_start sub_08087BAC sub_08087BAC: @ 0x08087BAC push {lr} ldr r2, _08087BC0 @ =gUnk_08120A94 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08087BC0: .4byte gUnk_08120A94 thumb_func_start sub_08087BC4 sub_08087BC4: @ 0x08087BC4 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] adds r0, #1 movs r5, #0 strb r0, [r4, #0xc] ldrb r0, [r4, #0xa] cmp r0, #1 beq _08087C04 cmp r0, #1 bgt _08087BE0 cmp r0, #0 beq _08087BEA b _08087CA6 _08087BE0: cmp r0, #2 beq _08087C64 cmp r0, #3 beq _08087C7C b _08087CA6 _08087BEA: movs r0, #0x5e bl sub_0807CBD0 cmp r0, #0 beq _08087C16 adds r1, r4, #0 adds r1, #0x7a movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_080787B4 b _08087C1C _08087C04: movs r0, #0x22 movs r1, #3 movs r2, #0 bl sub_080A2960 cmp r0, #0 beq _08087C16 str r4, [r0, #0x50] str r0, [r4, #0x54] _08087C16: adds r0, r4, #0 adds r0, #0x7a strb r5, [r0] _08087C1C: ldrb r0, [r4, #0x19] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x19] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _08087C60 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] 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, #0x78 strh r1, [r0] adds r0, r4, #0 bl sub_08087F58 b _08087CA6 .align 2, 0 _08087C60: .4byte gUnk_03000BF0 _08087C64: adds r0, r4, #0 adds r0, #0x7a strb r5, [r0] adds r0, r4, #0 movs r1, #7 bl sub_0805E3A0 adds r0, r4, #0 movs r1, #1 bl sub_08004260 b _08087CA6 _08087C7C: movs r0, #0x1e strb r0, [r4, #0xe] strb r5, [r4, #0xf] adds r1, r4, #0 adds r1, #0x81 movs r0, #1 strb r0, [r1] adds r0, r4, #0 adds r0, #0x7a strb r5, [r0] adds r0, #1 strb r5, [r0] adds r0, #5 strb r5, [r0] adds r0, r4, #0 bl sub_0808804C adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 _08087CA6: pop {r4, r5, pc} thumb_func_start sub_08087CA8 sub_08087CA8: @ 0x08087CA8 push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x7a ldrb r0, [r5] cmp r0, #1 beq _08087CCA cmp r0, #1 bgt _08087D02 cmp r0, #0 bne _08087D02 movs r0, #1 strb r0, [r5] adds r0, r4, #0 bl sub_080787B4 b _08087D1A _08087CCA: adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08087D1A movs r0, #0 strb r0, [r1] bl sub_080791D0 movs r0, #0x5e bl sub_0807CBD0 cmp r0, #0 beq _08087CFA movs r0, #2 strb r0, [r5] bl sub_0807CD10 movs r0, #7 movs r1, #0xff bl sub_080A7138 b _08087D1A _08087CFA: movs r0, #5 bl sub_0807CD10 b _08087D1A _08087D02: movs r0, #2 bl sub_0807CC3C cmp r0, #0 bne _08087D1A adds r1, r4, #0 adds r1, #0x7a movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_080787B4 _08087D1A: pop {r4, r5, pc} thumb_func_start sub_08087D1C sub_08087D1C: @ 0x08087D1C push {r4, r5, lr} adds r5, r0, #0 adds r4, r5, #0 adds r4, #0x7a ldrb r0, [r4] cmp r0, #1 beq _08087D60 cmp r0, #1 bgt _08087D34 cmp r0, #0 beq _08087D3A b _08087DB0 _08087D34: cmp r0, #2 beq _08087D5A b _08087DB0 _08087D3A: movs r0, #0 bl sub_0807CC3C cmp r0, #0 beq _08087DB0 movs r0, #0x5e bl sub_0807CBD0 cmp r0, #0 beq _08087D54 movs r0, #1 strb r0, [r4] b _08087DB0 _08087D54: movs r0, #2 strb r0, [r4] b _08087DB0 _08087D5A: movs r0, #0x5e bl sub_0807CCB4 _08087D60: adds r1, r5, #0 adds r1, #0x7a movs r0, #0 strb r0, [r1] ldr r0, [r5, #0x54] bl sub_08088328 movs r0, #0 bl sub_0807CD8C movs r0, #0x22 movs r1, #2 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08087DAA str r5, [r4, #0x50] adds r0, r5, #0 adds r0, #0x7d ldrb r0, [r0] strb r0, [r4, #0xf] ldr r1, _08087DB4 @ =gUnk_080FC3E4 ldrb r0, [r4, #0xf] lsls r0, r0, #3 adds r0, r0, r1 ldrb r0, [r0, #7] strb r0, [r4, #0xb] movs r2, #0x80 lsls r2, r2, #0xc movs r3, #0xe0 lsls r3, r3, #0xb adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA48 _08087DAA: ldr r0, _08087DB8 @ =0x00000111 bl sub_08004488 _08087DB0: pop {r4, r5, pc} .align 2, 0 _08087DB4: .4byte gUnk_080FC3E4 _08087DB8: .4byte 0x00000111 thumb_func_start sub_08087DBC sub_08087DBC: @ 0x08087DBC push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r2, r4, #0 adds r2, #0x7a ldrb r0, [r2] cmp r0, #1 beq _08087E10 cmp r0, #1 bgt _08087E3C cmp r0, #0 bne _08087E3C adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08087E5A movs r0, #1 strb r0, [r2] movs r0, #0x28 strb r0, [r4, #0xe] ldr r1, _08087E0C @ =gUnk_08120AA8 ldrb r0, [r4, #0xb] adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 bl sub_0801D2B4 adds r0, r4, #0 movs r1, #2 bl sub_08004260 movs r0, #0x88 lsls r0, r0, #1 bl sub_080A3268 b _08087E5A .align 2, 0 _08087E0C: .4byte gUnk_08120AA8 _08087E10: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08087E5A ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08087E5A movs r0, #2 strb r0, [r2] bl sub_0807CD10 ldrb r1, [r4, #0xf] movs r0, #7 bl sub_080A7138 b _08087E5A _08087E3C: movs r0, #2 bl sub_0807CC3C cmp r0, #0 bne _08087E5A ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] movs r0, #4 bl sub_0807CD8C bl sub_0805E780 _08087E5A: pop {r4, pc} thumb_func_start sub_08087E5C sub_08087E5C: @ 0x08087E5C push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x7a ldrb r1, [r5] cmp r1, #1 beq _08087EAC cmp r1, #1 bgt _08087E74 cmp r1, #0 beq _08087E7A b _08087F4E _08087E74: cmp r1, #2 beq _08087F24 b _08087F4E _08087E7A: adds r0, r4, #0 adds r0, #0x7b ldrb r0, [r0] cmp r0, #4 bne _08087EA4 movs r0, #1 bl sub_0807CC3C cmp r0, #0 beq _08087F4E movs r0, #1 strb r0, [r5] adds r1, r4, #0 adds r1, #0x81 strb r0, [r1] bl sub_0807CD8C adds r0, r4, #0 bl sub_0808826C b _08087F1C _08087EA4: adds r0, r4, #0 bl sub_080880D8 b _08087F4E _08087EAC: ldrb r0, [r4, #0xe] cmp r0, #0 beq _08087EB6 subs r0, #1 strb r0, [r4, #0xe] _08087EB6: ldr r6, _08087ED4 @ =gUnk_03000FF0 ldrh r0, [r6, #2] ands r1, r0 cmp r1, #0 beq _08087ED8 movs r0, #0x6a bl sub_080A3268 movs r0, #2 strb r0, [r5] movs r0, #0x3c strb r0, [r4, #0xe] bl sub_08050384 b _08087F4E .align 2, 0 _08087ED4: .4byte gUnk_03000FF0 _08087ED8: adds r2, r4, #0 adds r2, #0x81 ldrb r7, [r2] ldrh r1, [r6] movs r0, #0x80 lsls r0, r0, #1 ands r0, r1 movs r3, #1 adds r5, r2, #0 cmp r0, #0 beq _08087EF0 movs r3, #0xa _08087EF0: ldrh r1, [r6, #4] ldr r0, _08087F00 @ =0xFFFFFEFF ands r1, r0 cmp r1, #0x40 beq _08087F04 cmp r1, #0x80 beq _08087F0E b _08087F16 .align 2, 0 _08087F00: .4byte 0xFFFFFEFF _08087F04: adds r0, r4, #0 adds r1, r3, #0 bl sub_08087F94 b _08087F16 _08087F0E: rsbs r1, r3, #0 adds r0, r4, #0 bl sub_08087F94 _08087F16: ldrb r5, [r5] cmp r7, r5 beq _08087F4E _08087F1C: adds r0, r4, #0 bl sub_080882A8 b _08087F4E _08087F24: movs r0, #0 strb r0, [r5] adds r1, r4, #0 adds r1, #0x7b movs r0, #4 strb r0, [r1] movs r0, #3 bl sub_0807CD10 ldr r0, _08087F50 @ =0x0000431A bl sub_08056378 ldr r1, _08087F54 @ =gUnk_02000050 movs r0, #1 strb r0, [r1, #6] movs r0, #0xc strb r0, [r1, #7] adds r0, r4, #0 adds r0, #0x81 ldrb r0, [r0] str r0, [r1, #0x10] _08087F4E: pop {r4, r5, r6, r7, pc} .align 2, 0 _08087F50: .4byte 0x0000431A _08087F54: .4byte gUnk_02000050 thumb_func_start sub_08087F58 sub_08087F58: @ 0x08087F58 push {r4, r5, lr} ldrb r1, [r0, #0xa] cmp r1, #1 bgt _08087F8C cmp r1, #0 blt _08087F8C ldr r5, _08087F90 @ =0x00004022 adds r4, r0, #0 adds r4, #0x78 ldrh r1, [r4] subs r1, #1 adds r0, r5, #0 movs r2, #1 bl sub_0800015E ldrh r1, [r4] adds r0, r5, #0 movs r2, #1 bl sub_0800015E ldrh r1, [r4] adds r1, #1 adds r0, r5, #0 movs r2, #1 bl sub_0800015E _08087F8C: pop {r4, r5, pc} .align 2, 0 _08087F90: .4byte 0x00004022 thumb_func_start sub_08087F94 sub_08087F94: @ 0x08087F94 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r4, r1, #0 movs r0, #0x5f bl sub_0807CBD0 cmp r0, #0 bne _08088014 adds r0, r5, #0 adds r0, #0x83 movs r1, #0 ldrsb r1, [r0, r1] mov ip, r1 adds r3, r1, r4 adds r7, r0, #0 cmp r4, #0 bge _08087FEA adds r2, r5, #0 adds r2, #0x82 movs r0, #0 ldrsb r0, [r2, r0] cmp r3, r0 bge _08087FD6 movs r1, #0 ldrsb r1, [r7, r1] ldrb r3, [r2] cmp r1, r0 beq _08088014 strb r3, [r7] adds r1, r5, #0 adds r1, #0x81 movs r0, #1 b _08087FE0 _08087FD6: strb r3, [r7] adds r1, r5, #0 adds r1, #0x81 ldrb r0, [r1] adds r0, r0, r4 _08087FE0: strb r0, [r1] movs r0, #0x69 bl sub_080A3268 b _08088032 _08087FEA: adds r1, r5, #0 adds r1, #0x81 ldrb r6, [r1] adds r2, r6, r4 ldr r0, _0808801C @ =gUnk_02002A40 adds r0, #0xc2 ldrh r0, [r0] cmp r2, r0 ble _08088008 cmp r0, r6 beq _08088014 adds r2, r0, #0 subs r4, r2, r6 mov r0, ip adds r3, r0, r4 _08088008: cmp r3, #0x64 ble _08088028 movs r0, #0 ldrsb r0, [r7, r0] cmp r0, #0x64 bne _08088020 _08088014: adds r0, r5, #0 bl sub_08088034 b _08088032 .align 2, 0 _0808801C: .4byte gUnk_02002A40 _08088020: movs r3, #0x64 mov r0, ip subs r4, r3, r0 adds r2, r6, r4 _08088028: strb r3, [r7] strb r2, [r1] movs r0, #0x69 bl sub_080A3268 _08088032: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08088034 sub_08088034: @ 0x08088034 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xe] cmp r0, #0 bne _08088048 movs r0, #0x14 strb r0, [r1, #0xe] movs r0, #0x6d bl sub_080A3268 _08088048: pop {pc} .align 2, 0 thumb_func_start sub_0808804C sub_0808804C: @ 0x0808804C push {r4, r5, lr} adds r5, r0, #0 movs r4, #0 ldr r0, _08088060 @ =gUnk_02002A40 ldrb r0, [r0, #6] cmp r0, #0 beq _08088064 movs r4, #9 b _080880D0 .align 2, 0 _08088060: .4byte gUnk_02002A40 _08088064: movs r0, #6 bl sub_0807CC30 cmp r0, #0 beq _08088072 movs r4, #7 b _080880D0 _08088072: movs r0, #0x80 lsls r0, r0, #4 movs r1, #0x77 bl sub_0807CB10 cmp r0, #0 beq _08088084 movs r4, #6 b _080880D0 _08088084: movs r0, #0xc0 lsls r0, r0, #2 movs r1, #0x32 bl sub_0807CB10 cmp r0, #0 beq _08088096 movs r4, #5 b _080880D0 _08088096: movs r0, #5 bl sub_0807CC30 cmp r0, #0 beq _080880A4 movs r4, #4 b _080880D0 _080880A4: movs r0, #4 bl sub_0807CC30 cmp r0, #0 beq _080880B2 movs r4, #3 b _080880D0 _080880B2: movs r0, #0x80 lsls r0, r0, #1 movs r1, #0x9c bl sub_0807CB10 cmp r0, #0 beq _080880C4 movs r4, #2 b _080880D0 _080880C4: movs r0, #3 bl sub_0807CC30 cmp r0, #0 beq _080880D0 movs r4, #1 _080880D0: adds r0, r5, #0 adds r0, #0x7c strb r4, [r0] pop {r4, r5, pc} thumb_func_start sub_080880D8 sub_080880D8: @ 0x080880D8 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r0, #0x7b ldrb r1, [r0] ldr r0, _08088158 @ =gUnk_08120AAC adds r6, r1, r0 ldrb r4, [r6] ldrb r0, [r6, #1] cmp r4, r0 bhs _0808810A adds r5, r7, #0 adds r5, #0x80 _080880F0: adds r0, r7, #0 adds r1, r4, #0 bl sub_08088160 cmp r0, #0 beq _08088102 ldrb r0, [r5] adds r0, #1 strb r0, [r5] _08088102: adds r4, #1 ldrb r0, [r6, #1] cmp r4, r0 blo _080880F0 _0808810A: adds r1, r7, #0 adds r1, #0x7b ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #4 bne _08088156 ldr r5, _0808815C @ =gUnk_02002A40 adds r0, r7, #0 adds r0, #0x80 ldrb r1, [r5, #9] adds r4, r0, #0 ldrb r0, [r4] cmp r1, r0 beq _0808813A cmp r1, #0 beq _08088136 movs r0, #6 bl sub_0807CD10 _08088136: ldrb r0, [r4] strb r0, [r5, #9] _0808813A: movs r0, #0x5f bl sub_0807CBD0 cmp r0, #0 beq _08088156 ldr r0, _0808815C @ =gUnk_02002A40 adds r0, #0xb0 ldrb r1, [r4] ldrb r0, [r0] cmp r1, r0 beq _08088156 movs r0, #0x5f bl sub_0807CD34 _08088156: pop {r4, r5, r6, r7, pc} .align 2, 0 _08088158: .4byte gUnk_08120AAC _0808815C: .4byte gUnk_02002A40 thumb_func_start sub_08088160 sub_08088160: @ 0x08088160 push {r4, lr} adds r2, r0, #0 lsls r1, r1, #3 ldr r0, _08088188 @ =gUnk_080FC3E4 adds r1, r1, r0 movs r4, #0 adds r0, r2, #0 adds r0, #0x7c ldrb r0, [r0] ldrb r3, [r1, #6] cmp r0, r3 bhs _08088266 ldrb r0, [r1, #6] cmp r0, #0x10 beq _0808819E cmp r0, #0x10 bgt _0808818C cmp r0, #8 beq _08088194 b _08088268 .align 2, 0 _08088188: .4byte gUnk_080FC3E4 _0808818C: cmp r0, #0x20 beq _080881A6 cmp r0, #0x40 bne _08088268 _08088194: ldr r0, [r1] ldrh r1, [r1, #4] bl sub_0807CB10 b _08088262 _0808819E: ldrh r0, [r1, #4] bl sub_0801E7F4 b _08088262 _080881A6: ldrh r0, [r1, #4] cmp r0, #5 bhi _08088268 lsls r0, r0, #2 ldr r1, _080881B8 @ =_080881BC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080881B8: .4byte _080881BC _080881BC: @ jump table .4byte _080881D4 @ case 0 .4byte _080881F0 @ case 1 .4byte _080881FE @ case 2 .4byte _0808821A @ case 3 .4byte _08088236 @ case 4 .4byte _08088252 @ case 5 _080881D4: movs r0, #0x20 bl sub_0801E7F4 cmp r0, #0 bne _08088266 movs r0, #0x10 bl sub_0801E7F4 cmp r0, #0 bne _08088266 movs r0, #0x19 _080881EA: bl sub_0801E7F4 b _08088262 _080881F0: adds r0, r2, #0 adds r0, #0x7c ldrb r0, [r0] cmp r0, #4 bls _08088268 movs r0, #0x28 b _080881EA _080881FE: movs r0, #0x54 bl sub_0801E7F4 cmp r0, #0 bne _08088266 movs r0, #0x56 bl sub_0801E7F4 cmp r0, #0 bne _08088266 movs r0, #0x3d bl sub_0801E7F4 b _08088262 _0808821A: movs r0, #0x3b bl sub_0801E7F4 cmp r0, #0 bne _08088266 movs r0, #0x4a bl sub_0801E7F4 cmp r0, #0 bne _08088266 movs r0, #0xd bl sub_0801E7F4 b _08088262 _08088236: movs r0, #0x49 bl sub_0801E7F4 cmp r0, #0 bne _08088266 movs r0, #0x55 bl sub_0801E7F4 cmp r0, #0 bne _08088266 movs r0, #0x3c bl sub_0801E7F4 b _08088262 _08088252: adds r0, r2, #0 adds r0, #0x7c ldrb r0, [r0] cmp r0, #1 bls _08088268 movs r0, #0x12 bl sub_0807CC30 _08088262: cmp r0, #0 beq _08088268 _08088266: movs r4, #1 _08088268: adds r0, r4, #0 pop {r4, pc} thumb_func_start sub_0808826C sub_0808826C: @ 0x0808826C push {r4, r5, lr} adds r5, r0, #0 movs r4, #0x64 adds r0, #0x80 ldrb r1, [r0] ldr r0, _080882A4 @ =gUnk_02002A40 adds r0, #0xb0 ldrb r0, [r0] subs r0, r1, r0 muls r4, r0, r4 adds r0, r4, #0 bl __divsi3 adds r4, r0, #0 cmp r4, #0 bne _08088298 movs r0, #0x5f bl sub_0807CBD0 cmp r0, #0 bne _08088298 movs r4, #1 _08088298: adds r0, r5, #0 adds r0, #0x83 strb r4, [r0] subs r0, #1 strb r4, [r0] pop {r4, r5, pc} .align 2, 0 _080882A4: .4byte gUnk_02002A40 thumb_func_start sub_080882A8 sub_080882A8: @ 0x080882A8 push {r4, r5, r6, lr} adds r6, r0, #0 bl sub_08050384 adds r0, r6, #0 adds r0, #0x81 ldrb r0, [r0] ldr r4, _080882F4 @ =gUnk_020227E8 ldr r5, _080882F8 @ =0x00202020 adds r1, r4, #0 adds r2, r5, #0 bl sub_08057044 adds r0, r6, #0 adds r0, #0x83 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r4, #8 adds r1, r4, #0 adds r2, r5, #0 bl sub_08057044 movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] cmp r0, #0 bne _08088304 ldr r1, _080882FC @ =gUnk_08120AE4 ldrb r0, [r6, #0xb] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] ldr r1, _08088300 @ =gUnk_08120AB4 bl sub_0805F46C b _08088314 .align 2, 0 _080882F4: .4byte gUnk_020227E8 _080882F8: .4byte 0x00202020 _080882FC: .4byte gUnk_08120AE4 _08088300: .4byte gUnk_08120AB4 _08088304: ldr r1, _0808831C @ =gUnk_08120AE4 ldrb r0, [r6, #0xb] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] ldr r1, _08088320 @ =gUnk_08120ACC bl sub_0805F46C _08088314: ldr r1, _08088324 @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0xe] pop {r4, r5, r6, pc} .align 2, 0 _0808831C: .4byte gUnk_08120AE4 _08088320: .4byte gUnk_08120ACC _08088324: .4byte gUnk_03000F50 thumb_func_start sub_08088328 sub_08088328: @ 0x08088328 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 movs r4, #0x7f _08088332: bl sub_08000E50 adds r5, r0, #0 ands r5, r4 cmp r5, #0x63 bhi _08088332 adds r0, r6, #0 adds r0, #0x81 ldrb r0, [r0] rsbs r0, r0, #0 bl sub_080542C0 bl sub_08000E50 movs r1, #0x7f ands r1, r0 adds r4, r1, #1 adds r7, r4, #0 adds r0, r6, #0 bl sub_08088424 adds r0, r6, #0 adds r0, #0x83 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r5, r0 bhs _080883A4 movs r5, #0 movs r0, #0x7d adds r0, r0, r6 mov r8, r0 _08088372: cmp r5, #0 bne _080883E2 cmp r4, #0x88 bls _0808837C movs r4, #1 _0808837C: adds r0, r6, #0 adds r1, r4, #0 bl sub_08088160 cmp r0, #0 beq _0808839C ldr r0, _08088398 @ =gUnk_02002B0E adds r1, r4, #0 bl sub_0801D5A8 cmp r0, #0 bne _0808839C movs r5, #1 b _0808839E .align 2, 0 _08088398: .4byte gUnk_02002B0E _0808839C: adds r4, #1 _0808839E: cmp r7, r4 bne _08088372 b _080883DE _080883A4: movs r5, #1 movs r0, #0x7d adds r0, r0, r6 mov r8, r0 _080883AC: cmp r5, #0 beq _08088414 cmp r4, #0x88 bls _080883B6 movs r4, #1 _080883B6: adds r0, r6, #0 adds r1, r4, #0 bl sub_08088160 cmp r0, #0 beq _080883D8 ldr r0, _080883D4 @ =gUnk_02002B0E adds r1, r4, #0 bl sub_0801D5A8 cmp r0, #0 beq _080883D8 movs r5, #0 b _080883DA .align 2, 0 _080883D4: .4byte gUnk_02002B0E _080883D8: adds r4, #1 _080883DA: cmp r7, r4 bne _080883AC _080883DE: cmp r5, #0 beq _08088414 _080883E2: ldr r0, _08088404 @ =gUnk_02002A40 adds r0, #0xb0 ldrb r1, [r0] adds r1, #1 strb r1, [r0] adds r0, r6, #0 adds r0, #0x80 lsls r1, r1, #0x18 lsrs r1, r1, #0x18 ldrb r0, [r0] cmp r1, r0 beq _08088408 movs r0, #7 bl sub_0807CD10 b _08088414 .align 2, 0 _08088404: .4byte gUnk_02002A40 _08088408: movs r0, #0x5f bl sub_0807CCB4 movs r0, #8 bl sub_0807CD10 _08088414: mov r0, r8 strb r4, [r0] ldr r0, [r6, #0x50] adds r0, #0x7d strb r4, [r0] pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08088424 sub_08088424: @ 0x08088424 push {lr} adds r1, r0, #0 ldr r0, _08088440 @ =gUnk_02002A40 adds r0, #0xb0 ldrb r0, [r0] cmp r0, #0x31 bhi _08088444 adds r1, #0x83 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xe bgt _08088476 movs r0, #0xf b _08088474 .align 2, 0 _08088440: .4byte gUnk_02002A40 _08088444: cmp r0, #0x4f bhi _08088456 adds r1, #0x83 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xb bgt _08088476 movs r0, #0xc b _08088474 _08088456: cmp r0, #0x6d bhi _08088468 adds r1, #0x83 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #8 bgt _08088476 movs r0, #9 b _08088474 _08088468: adds r1, #0x83 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #5 bgt _08088476 movs r0, #6 _08088474: strb r0, [r1] _08088476: pop {pc} thumb_func_start sub_08088478 sub_08088478: @ 0x08088478 push {r4, lr} movs r4, #0 movs r0, #8 bl sub_0807CC3C cmp r0, #0 bne _080884A4 movs r0, #7 bl sub_0807CC3C cmp r0, #0 bne _0808849C ldr r1, _08088498 @ =0x00004322 movs r4, #1 b _080884D2 .align 2, 0 _08088498: .4byte 0x00004322 _0808849C: ldr r1, _080884A0 @ =0x00004325 b _080884D2 .align 2, 0 _080884A0: .4byte 0x00004325 _080884A4: ldr r1, _080884C0 @ =gUnk_02002A40 adds r0, r1, #0 adds r0, #0xb0 ldrb r0, [r0] cmp r0, #0x82 beq _080884C8 cmp r0, #0x88 bne _080884D0 adds r1, #0xb1 movs r0, #0xff strb r0, [r1] ldr r1, _080884C4 @ =0x00004329 b _080884D2 .align 2, 0 _080884C0: .4byte gUnk_02002A40 _080884C4: .4byte 0x00004329 _080884C8: ldrb r0, [r1, #6] ldr r1, _080884F4 @ =0x00004328 cmp r0, #0 beq _080884D2 _080884D0: ldr r1, _080884F8 @ =0x00004327 _080884D2: adds r0, r1, #0 bl sub_08056378 ldr r1, _080884FC @ =gUnk_02000050 movs r0, #1 strb r0, [r1, #6] movs r0, #0xc strb r0, [r1, #7] cmp r4, #0 beq _080884EA movs r0, #5 str r0, [r1, #0x10] _080884EA: ldr r1, _08088500 @ =gUnk_03001160 movs r0, #6 strb r0, [r1, #0x14] pop {r4, pc} .align 2, 0 _080884F4: .4byte 0x00004328 _080884F8: .4byte 0x00004327 _080884FC: .4byte gUnk_02000050 _08088500: .4byte gUnk_03001160 thumb_func_start sub_08088504 sub_08088504: @ 0x08088504 push {lr} ldr r0, _08088518 @ =gUnk_02002A40 adds r0, #0xb0 ldrb r0, [r0] cmp r0, #0x82 beq _08088520 cmp r0, #0x88 bne _08088528 ldr r0, _0808851C @ =0x0000432F b _0808852A .align 2, 0 _08088518: .4byte gUnk_02002A40 _0808851C: .4byte 0x0000432F _08088520: ldr r0, _08088524 @ =0x00004314 b _0808852A .align 2, 0 _08088524: .4byte 0x00004314 _08088528: ldr r0, _0808853C @ =0x00004311 _0808852A: bl sub_08056378 ldr r0, _08088540 @ =gUnk_02000050 movs r1, #1 strb r1, [r0, #6] movs r1, #0xc strb r1, [r0, #7] pop {pc} .align 2, 0 _0808853C: .4byte 0x00004311 _08088540: .4byte gUnk_02000050 thumb_func_start sub_08088544 sub_08088544: @ 0x08088544 push {lr} ldr r0, _08088568 @ =gUnk_02002A40 adds r0, #0xb0 ldrb r0, [r0] ldr r1, _0808856C @ =0x00004315 cmp r0, #0x82 beq _08088554 subs r1, #7 _08088554: adds r0, r1, #0 bl sub_08056378 ldr r0, _08088570 @ =gUnk_02000050 movs r1, #1 strb r1, [r0, #6] movs r1, #0xc strb r1, [r0, #7] pop {pc} .align 2, 0 _08088568: .4byte gUnk_02002A40 _0808856C: .4byte 0x00004315 _08088570: .4byte gUnk_02000050 thumb_func_start sub_08088574 sub_08088574: @ 0x08088574 push {lr} movs r0, #9 bl sub_0807CC3C cmp r0, #0 beq _08088594 movs r0, #0x5f bl sub_0807CBD0 ldr r1, _08088590 @ =0x0000430C cmp r0, #0 beq _08088596 adds r1, #7 b _08088596 .align 2, 0 _08088590: .4byte 0x0000430C _08088594: ldr r1, _080885A8 @ =0x0000430B _08088596: adds r0, r1, #0 bl sub_08056378 ldr r0, _080885AC @ =gUnk_02000050 movs r1, #1 strb r1, [r0, #6] movs r1, #0xc strb r1, [r0, #7] pop {pc} .align 2, 0 _080885A8: .4byte 0x0000430B _080885AC: .4byte gUnk_02000050 thumb_func_start sub_080885B0 sub_080885B0: @ 0x080885B0 push {lr} movs r0, #8 bl sub_0807CC3C cmp r0, #0 bne _080885E8 movs r0, #7 bl sub_0807CC3C cmp r0, #0 bne _0808860A movs r0, #5 bl sub_080526CC ldr r0, _080885E0 @ =0x00004326 bl sub_08056378 ldr r1, _080885E4 @ =gUnk_02000050 movs r0, #1 strb r0, [r1, #6] movs r0, #0xc strb r0, [r1, #7] b _0808860A .align 2, 0 _080885E0: .4byte 0x00004326 _080885E4: .4byte gUnk_02000050 _080885E8: ldr r1, _08088618 @ =gUnk_02002A40 adds r0, r1, #0 adds r0, #0xb1 ldrb r0, [r0] cmp r0, #0 beq _0808860A adds r1, #0xbb movs r0, #1 strb r0, [r1] movs r0, #0x3e movs r1, #0 movs r2, #0 bl sub_080A7C00 movs r0, #0x59 bl sub_0807CD04 _0808860A: movs r0, #8 bl sub_0807CD8C movs r0, #7 bl sub_0807CD8C pop {pc} .align 2, 0 _08088618: .4byte gUnk_02002A40 thumb_func_start sub_0808861C sub_0808861C: @ 0x0808861C push {r4, lr} adds r4, r1, #0 movs r0, #0xa8 movs r1, #0x54 movs r2, #0xc movs r3, #8 bl sub_0800293E str r0, [r4, #0x14] ldr r1, _08088650 @ =gUnk_03001160 ldrb r0, [r1, #0x14] cmp r0, #0 bne _0808863E movs r2, #0x36 ldrsh r0, [r1, r2] cmp r0, #0 beq _08088642 _0808863E: movs r0, #0 str r0, [r4, #0x14] _08088642: ldr r2, _08088654 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, pc} .align 2, 0 _08088650: .4byte gUnk_03001160 _08088654: .4byte gUnk_02033280 thumb_func_start sub_08088658 sub_08088658: @ 0x08088658 push {r4, lr} adds r4, r1, #0 movs r0, #0x78 movs r1, #0x78 movs r2, #0x10 movs r3, #8 bl sub_0800293E str r0, [r4, #0x14] ldr r0, _08088684 @ =gUnk_03001160 movs r1, #0x36 ldrsh r0, [r0, r1] cmp r0, #0 beq _08088678 movs r0, #0 str r0, [r4, #0x14] _08088678: ldr r2, _08088688 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, pc} .align 2, 0 _08088684: .4byte gUnk_03001160 _08088688: .4byte gUnk_02033280 thumb_func_start sub_0808868C sub_0808868C: @ 0x0808868C push {lr} ldr r2, _080886A0 @ =gUnk_08120B20 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080886A0: .4byte gUnk_08120B20 thumb_func_start sub_080886A4 sub_080886A4: @ 0x080886A4 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r1, [r4, #0xa] movs r6, #3 adds r0, r6, #0 ands r0, r1 strb r0, [r4, #0x14] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] adds r1, #4 movs r0, #0x48 strb r0, [r1] adds r0, r4, #0 adds r0, #0x3f movs r5, #1 strb r5, [r0] subs r1, #5 movs r0, #2 strb r0, [r1] ldr r0, _08088700 @ =gUnk_080FD168 str r0, [r4, #0x48] adds r0, r4, #0 adds r0, #0x84 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _08088704 strb r6, [r4, #0xc] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_08004260 b _08088716 .align 2, 0 _08088700: .4byte gUnk_080FD168 _08088704: strb r5, [r4, #0xc] ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 _08088716: pop {r4, r5, r6, pc} thumb_func_start sub_08088718 sub_08088718: @ 0x08088718 push {r4, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x95 beq _08088728 cmp r0, #0x8e bne _0808875A _08088728: ldr r0, [r4, #0x4c] ldrb r1, [r0, #0x15] adds r1, #4 movs r0, #0x18 ands r1, r0 asrs r1, r1, #3 ldrb r2, [r4, #0x14] movs r0, #3 ands r0, r2 cmp r1, r0 bne _0808875A movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldr r0, _0808875C @ =0x00000111 bl sub_08004488 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 _0808875A: pop {r4, pc} .align 2, 0 _0808875C: .4byte 0x00000111 thumb_func_start sub_08088760 sub_08088760: @ 0x08088760 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808878E movs r0, #3 strb r0, [r4, #0xc] ldrb r0, [r4, #0xe] lsls r0, r0, #1 adds r1, r4, #0 adds r1, #0x70 strh r0, [r1] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_08004260 _0808878E: pop {r4, pc} thumb_func_start sub_08088790 sub_08088790: @ 0x08088790 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _080887D6 adds r0, r4, #0 adds r0, #0x86 adds r2, r4, #0 adds r2, #0x84 ldrh r1, [r0] adds r5, r0, #0 ldrh r0, [r2] cmp r1, r0 beq _080887BC ldrh r0, [r2] bl sub_0807CBE4 cmp r0, #0 beq _080887BC movs r0, #0 strb r0, [r4, #0xe] b _080887D6 _080887BC: adds r1, r4, #0 adds r1, #0x70 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _080887D6 movs r0, #4 strb r0, [r4, #0xc] ldrh r0, [r5] bl sub_0807CD48 _080887D6: pop {r4, r5, pc} thumb_func_start sub_080887D8 sub_080887D8: @ 0x080887D8 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08088802 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 _08088802: pop {r4, pc} thumb_func_start sub_08088804 sub_08088804: @ 0x08088804 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] cmp r0, #0 beq _08088828 subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08088828 ldrb r0, [r4, #0x14] adds r1, r4, #0 adds r1, #0x72 strb r0, [r1] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 _08088828: ldr r0, _0808883C @ =gUnk_08120BE0 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _0808883C: .4byte gUnk_08120BE0 thumb_func_start sub_08088840 sub_08088840: @ 0x08088840 movs r3, #1 movs r1, #1 strb r1, [r0, #0xc] ldrb r2, [r0, #0x18] subs r1, #5 ands r1, r2 orrs r1, r3 strb r1, [r0, #0x18] adds r3, r0, #0 adds r3, #0x29 ldrb r1, [r3] movs r2, #7 orrs r1, r2 strb r1, [r3] ldr r1, _08088868 @ =gUnk_080FD1D4 str r1, [r0, #0x48] ldrb r1, [r0, #0x14] adds r0, #0x72 strb r1, [r0] bx lr .align 2, 0 _08088868: .4byte gUnk_080FD1D4 thumb_func_start sub_0808886C sub_0808886C: @ 0x0808886C push {r4, r5, lr} adds r5, r0, #0 bl sub_08088938 adds r4, r0, #0 adds r0, r5, #0 bl sub_080889A8 adds r4, r4, r0 lsls r4, r4, #0x18 lsrs r4, r4, #0x18 ldrb r1, [r5, #0xa] adds r0, r1, #2 cmp r0, r4 bgt _080888B8 movs r1, #0 movs r0, #2 strb r0, [r5, #0xc] strb r1, [r5, #0xf] movs r0, #4 strb r0, [r5, #0x14] strh r1, [r5, #0x36] adds r0, r5, #0 movs r1, #4 bl sub_08004260 adds r0, r5, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 ldr r0, _080888B4 @ =0x0000016B bl sub_08004488 b _080888F2 .align 2, 0 _080888B4: .4byte 0x0000016B _080888B8: ldrb r0, [r5, #0x14] cmp r4, r0 bls _080888E4 adds r0, r1, #1 cmp r0, r4 bne _080888D2 movs r0, #4 strb r0, [r5, #0xf] adds r1, r4, #1 adds r0, r5, #0 bl sub_08004260 b _080888DA _080888D2: adds r0, r5, #0 adds r1, r4, #0 bl sub_08004260 _080888DA: movs r0, #0x86 lsls r0, r0, #1 bl sub_08004488 b _080888F0 _080888E4: cmp r4, r0 bhs _080888F0 adds r0, r5, #0 adds r1, r4, #0 bl sub_08004260 _080888F0: strb r4, [r5, #0x14] _080888F2: pop {r4, r5, pc} thumb_func_start sub_080888F4 sub_080888F4: @ 0x080888F4 push {r4, r5, lr} adds r5, r0, #0 adds r0, #0x70 ldrh r0, [r0] cmp r0, #0 beq _08088934 adds r0, r5, #0 bl sub_08088938 adds r4, r0, #0 adds r0, r5, #0 bl sub_080889A8 adds r4, r4, r0 lsls r4, r4, #0x18 lsrs r4, r4, #0x18 ldrb r0, [r5, #0xa] adds r0, #2 cmp r0, r4 ble _08088934 movs r0, #1 strb r0, [r5, #0xc] strb r4, [r5, #0x14] adds r0, r5, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CD48 adds r0, r5, #0 adds r1, r4, #0 bl sub_08004260 _08088934: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08088938 sub_08088938: @ 0x08088938 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} movs r5, #0 ldrh r1, [r0, #0x2e] subs r1, #8 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov ip, r1 ldrh r1, [r0, #0x32] subs r1, #8 lsls r1, r1, #0x10 lsrs r7, r1, #0x10 movs r4, #0 ldr r1, _080889A0 @ =gUnk_02034350 ldr r2, _080889A4 @ =gUnk_08120BEC mov r8, r2 adds r3, r1, #0 adds r3, #0xac adds r6, r0, #0 adds r6, #0x72 _08088962: ldr r2, [r3] cmp r2, #0 beq _08088990 ldrh r0, [r2, #0x2e] mov r1, ip subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x10 bhi _08088990 ldrh r0, [r2, #0x32] subs r0, r0, r7 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x10 bhi _08088990 ldrb r0, [r6] add r0, r8 ldrb r1, [r0] adds r0, r2, #0 adds r0, #0x63 strb r1, [r0] adds r5, #1 _08088990: adds r3, #4 adds r4, #1 cmp r4, #7 bls _08088962 adds r0, r5, #0 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _080889A0: .4byte gUnk_02034350 _080889A4: .4byte gUnk_08120BEC thumb_func_start sub_080889A8 sub_080889A8: @ 0x080889A8 push {r4, r5, r6, lr} adds r4, r0, #0 movs r5, #0 bl sub_08017850 cmp r0, #0 beq _080889CA ldr r1, _08088A40 @ =gUnk_03001160 ldr r2, _08088A44 @ =gUnk_08120BEC adds r0, r4, #0 adds r0, #0x72 ldrb r0, [r0] adds r0, r0, r2 ldrb r0, [r0] adds r1, #0x63 strb r0, [r1] movs r5, #1 _080889CA: ldr r0, _08088A48 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 lsls r1, r1, #0xf ands r0, r1 cmp r0, #0 beq _08088A3A ldr r6, _08088A4C @ =gUnk_03004040 ldr r1, [r6] adds r0, r4, #0 bl sub_080177A0 cmp r0, #0 beq _080889FA ldr r1, [r6] ldr r2, _08088A44 @ =gUnk_08120BEC adds r0, r4, #0 adds r0, #0x72 ldrb r0, [r0] adds r0, r0, r2 ldrb r0, [r0] adds r1, #0x63 strb r0, [r1] adds r5, #1 _080889FA: ldr r1, [r6, #4] adds r0, r4, #0 bl sub_080177A0 cmp r0, #0 beq _08088A1A ldr r1, [r6, #4] ldr r2, _08088A44 @ =gUnk_08120BEC adds r0, r4, #0 adds r0, #0x72 ldrb r0, [r0] adds r0, r0, r2 ldrb r0, [r0] adds r1, #0x63 strb r0, [r1] adds r5, #1 _08088A1A: ldr r1, [r6, #8] adds r0, r4, #0 bl sub_080177A0 cmp r0, #0 beq _08088A3A ldr r1, [r6, #8] ldr r2, _08088A44 @ =gUnk_08120BEC adds r0, r4, #0 adds r0, #0x72 ldrb r0, [r0] adds r0, r0, r2 ldrb r0, [r0] adds r1, #0x63 strb r0, [r1] adds r5, #1 _08088A3A: adds r0, r5, #0 pop {r4, r5, r6, pc} .align 2, 0 _08088A40: .4byte gUnk_03001160 _08088A44: .4byte gUnk_08120BEC _08088A48: .4byte gUnk_03003F80 _08088A4C: .4byte gUnk_03004040 thumb_func_start sub_08088A50 sub_08088A50: @ 0x08088A50 push {lr} ldr r2, _08088A64 @ =gUnk_08120C34 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08088A64: .4byte gUnk_08120C34 thumb_func_start sub_08088A68 sub_08088A68: @ 0x08088A68 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08088AE4 movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0x18] movs r2, #3 orrs r0, r2 strb r0, [r4, #0x18] ldrb r1, [r4, #0x11] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x11] movs r0, #0x17 bl sub_0807CC30 cmp r0, #0 beq _08088AA0 ldr r0, _08088A9C @ =gUnk_02002A40 ldrb r0, [r0, #7] adds r0, #1 b _08088AA4 .align 2, 0 _08088A9C: .4byte gUnk_02002A40 _08088AA0: ldr r0, _08088AD8 @ =gUnk_02002A40 ldrb r0, [r0, #7] _08088AA4: strb r0, [r4, #0x1e] adds r0, r4, #0 bl sub_08088BE0 movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _08088ADC @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r0, r0, r1 movs r3, #0x32 ldrsh r1, [r4, r3] ldrh r2, [r2, #8] subs r1, r1, r2 movs r2, #0x80 movs r3, #0x60 bl sub_0800293E cmp r0, #0 beq _08088B82 ldr r0, _08088AE0 @ =gUnk_02034350 ldr r1, [r0, #0x68] movs r2, #4 orrs r1, r2 str r1, [r0, #0x68] b _08088B82 .align 2, 0 _08088AD8: .4byte gUnk_02002A40 _08088ADC: .4byte gUnk_03000BF0 _08088AE0: .4byte gUnk_02034350 _08088AE4: ldr r5, _08088B70 @ =gUnk_02034350 ldr r1, [r5, #0x68] movs r6, #1 adds r0, r1, #0 ands r0, r6 cmp r0, #0 beq _08088B06 movs r0, #2 rsbs r0, r0, #0 ands r1, r0 str r1, [r5, #0x68] strb r6, [r4, #0xe] ldr r0, _08088B74 @ =gUnk_08120C1C str r0, [r4, #0x68] movs r0, #0x8a bl sub_080A3268 _08088B06: ldr r1, [r5, #0x68] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08088B24 movs r0, #3 rsbs r0, r0, #0 ands r1, r0 str r1, [r5, #0x68] strb r6, [r4, #0xe] ldr r0, _08088B78 @ =gUnk_08120C25 str r0, [r4, #0x68] movs r0, #0x89 bl sub_080A3268 _08088B24: ldr r1, [r5, #0x68] movs r0, #4 ands r0, r1 cmp r0, #0 beq _08088B42 movs r0, #5 rsbs r0, r0, #0 ands r1, r0 str r1, [r5, #0x68] strb r6, [r4, #0xe] ldr r0, _08088B7C @ =gUnk_08120C2E str r0, [r4, #0x68] movs r0, #0x8a bl sub_080A3268 _08088B42: ldrb r0, [r4, #0xe] cmp r0, #0 beq _08088B82 subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r3, r0, #0x18 cmp r3, #0 bne _08088B82 ldr r1, [r4, #0x68] ldrb r0, [r1] adds r2, r4, #0 adds r2, #0x63 strb r0, [r2] adds r1, #1 ldrb r0, [r1] cmp r0, #0xff beq _08088B80 movs r0, #8 strb r0, [r4, #0xe] str r1, [r4, #0x68] b _08088B82 .align 2, 0 _08088B70: .4byte gUnk_02034350 _08088B74: .4byte gUnk_08120C1C _08088B78: .4byte gUnk_08120C25 _08088B7C: .4byte gUnk_08120C2E _08088B80: strb r3, [r2] _08088B82: adds r5, r4, #0 adds r5, #0x29 ldrb r1, [r5] movs r6, #8 rsbs r6, r6, #0 adds r0, r6, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r5] movs r1, #0x2e ldrsh r0, [r4, r1] subs r0, #0x50 movs r2, #0x32 ldrsh r1, [r4, r2] subs r1, #0x50 movs r2, #0xa0 movs r3, #0x30 bl sub_0806FBFC cmp r0, #0 beq _08088BBA ldrb r0, [r5] adds r1, r6, #0 ands r1, r0 movs r0, #5 orrs r1, r0 strb r1, [r5] _08088BBA: movs r3, #0x2e ldrsh r0, [r4, r3] subs r0, #0x50 movs r2, #0x32 ldrsh r1, [r4, r2] adds r1, #0x30 movs r2, #0xa0 movs r3, #0x30 bl sub_0806FBFC cmp r0, #0 beq _08088BDE ldrb r0, [r5] adds r1, r6, #0 ands r1, r0 movs r0, #5 orrs r1, r0 strb r1, [r5] _08088BDE: pop {r4, r5, r6, pc} thumb_func_start sub_08088BE0 sub_08088BE0: @ 0x08088BE0 push {r4, lr} adds r4, r0, #0 movs r0, #0x15 bl sub_0807CBD0 cmp r0, #0 bne _08088C1C movs r3, #0x78 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_08088C78 adds r0, r4, #0 movs r1, #4 movs r2, #0x15 movs r3, #0 bl sub_08088C78 adds r2, r0, #0 cmp r2, #0 beq _08088C1C ldr r0, _08088C74 @ =gUnk_03000BF0 ldrh r1, [r0, #6] adds r1, #0x48 strh r1, [r2, #0x2e] ldrh r0, [r0, #8] adds r0, #0xc8 strh r0, [r2, #0x32] _08088C1C: movs r0, #0x16 bl sub_0807CBD0 cmp r0, #0 bne _08088C58 adds r0, r4, #0 movs r1, #2 movs r2, #1 movs r3, #0x78 bl sub_08088C78 adds r0, r4, #0 movs r1, #4 movs r2, #0x16 movs r3, #0 bl sub_08088C78 adds r2, r0, #0 cmp r2, #0 beq _08088C58 ldr r0, _08088C74 @ =gUnk_03000BF0 movs r3, #0xc4 lsls r3, r3, #1 adds r1, r3, #0 ldrh r3, [r0, #6] adds r1, r1, r3 strh r1, [r2, #0x2e] ldrh r0, [r0, #8] adds r0, #0xc8 strh r0, [r2, #0x32] _08088C58: movs r3, #0x78 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_08088C78 adds r0, r4, #0 movs r1, #1 movs r2, #1 movs r3, #0x78 bl sub_08088C78 pop {r4, pc} .align 2, 0 _08088C74: .4byte gUnk_03000BF0 thumb_func_start sub_08088C78 sub_08088C78: @ 0x08088C78 push {r4, r5, lr} adds r4, r0, #0 adds r5, r3, #0 movs r0, #0x25 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _08088C96 ldrh r0, [r4, #0x2e] adds r0, r0, r5 strh r0, [r1, #0x2e] ldrh r0, [r4, #0x32] strh r0, [r1, #0x32] str r4, [r1, #0x50] _08088C96: adds r0, r1, #0 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08088C9C sub_08088C9C: @ 0x08088C9C push {r4, lr} adds r4, r0, #0 ldr r1, _08088CEC @ =gUnk_08120C48 ldr r0, [r4, #0x50] adds r0, #0x29 ldrb r0, [r0] lsls r0, r0, #0x1d lsrs r0, r0, #0x1d adds r0, r0, r1 ldrb r0, [r0] adds r3, r4, #0 adds r3, #0x29 movs r1, #7 ands r1, r0 ldrb r2, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] ldr r0, [r4, #0x50] adds r0, #0x63 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 adds r1, r4, #0 adds r1, #0x63 strb r0, [r1] ldrb r0, [r4, #0xc] cmp r0, #1 beq _08088D4C cmp r0, #1 bgt _08088CF0 cmp r0, #0 beq _08088CFA b _08088DB0 .align 2, 0 _08088CEC: .4byte gUnk_08120C48 _08088CF0: cmp r0, #2 beq _08088D5A cmp r0, #3 beq _08088D7A b _08088DB0 _08088CFA: movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldrb r2, [r4, #0xb] adds r0, r2, #4 strb r0, [r4, #0x1e] ldrb r1, [r4, #0x11] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r4, #0x11] lsls r2, r2, #0x18 movs r0, #0x16 cmp r2, #0 bne _08088D28 movs r0, #0x15 _08088D28: strb r0, [r4, #0xf] ldrb r0, [r4, #0xf] bl sub_0807CBD0 cmp r0, #0 beq _08088DB0 ldr r1, _08088D48 @ =gUnk_08120C50 ldrb r0, [r4, #0xb] adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r4, #0x2e] adds r0, r0, r1 strh r0, [r4, #0x2e] b _08088DAC .align 2, 0 _08088D48: .4byte gUnk_08120C50 _08088D4C: ldrb r0, [r4, #0xf] bl sub_0807CBD0 cmp r0, #0 beq _08088DB0 movs r0, #2 b _08088DAE _08088D5A: ldr r2, _08088D98 @ =gUnk_02034350 ldr r1, [r2, #0x68] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _08088DB0 movs r0, #0x21 rsbs r0, r0, #0 ands r1, r0 str r1, [r2, #0x68] movs r0, #3 strb r0, [r4, #0xc] movs r0, #4 strb r0, [r4, #0xd] movs r0, #1 strb r0, [r4, #0xe] _08088D7A: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08088DB0 movs r0, #8 strb r0, [r4, #0xe] movs r0, #0x2e ldrsh r1, [r4, r0] ldrb r0, [r4, #0xb] cmp r0, #0 beq _08088D9C subs r0, r1, #2 b _08088D9E .align 2, 0 _08088D98: .4byte gUnk_02034350 _08088D9C: adds r0, r1, #2 _08088D9E: strh r0, [r4, #0x2e] ldrb r0, [r4, #0xd] subs r0, #1 strb r0, [r4, #0xd] lsls r0, r0, #0x18 cmp r0, #0 bne _08088DB0 _08088DAC: movs r0, #4 _08088DAE: strb r0, [r4, #0xc] _08088DB0: pop {r4, pc} .align 2, 0 thumb_func_start sub_08088DB4 sub_08088DB4: @ 0x08088DB4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _08088E28 cmp r0, #1 bgt _08088DC8 cmp r0, #0 beq _08088DEC b _08088E50 _08088DC8: cmp r0, #4 bgt _08088E50 ldr r0, _08088DE8 @ =gUnk_02034350 ldr r0, [r0, #0x68] movs r1, #8 ands r0, r1 cmp r0, #0 beq _08088E6E ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08088E6E b _08088E3E .align 2, 0 _08088DE8: .4byte gUnk_02034350 _08088DEC: movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldrb r0, [r4, #0xb] lsls r0, r0, #2 adds r0, #6 strb r0, [r4, #0x1e] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r4, #0 movs r1, #3 bl sub_0805E3A0 ldrb r0, [r4, #0xb] movs r1, #0x16 cmp r0, #0 bne _08088E1E movs r1, #0x15 _08088E1E: strb r1, [r4, #0xb] adds r0, r4, #0 bl sub_08016A04 b _08088E6E _08088E28: ldrb r0, [r4, #0xb] bl sub_0807CBD0 cmp r0, #0 beq _08088E6E ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] movs r0, #0xa strb r0, [r4, #0xe] b _08088E6E _08088E3E: movs r0, #0x1e strb r0, [r4, #0xe] ldrb r0, [r4, #0x1e] adds r0, #1 strb r0, [r4, #0x1e] ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] b _08088E6E _08088E50: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08088E6E ldr r0, _08088E70 @ =gUnk_02034350 ldr r1, [r0, #0x68] movs r2, #9 rsbs r2, r2, #0 ands r1, r2 str r1, [r0, #0x68] adds r0, r4, #0 bl sub_0805E7BC _08088E6E: pop {r4, pc} .align 2, 0 _08088E70: .4byte gUnk_02034350 thumb_func_start sub_08088E74 sub_08088E74: @ 0x08088E74 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08088E94 movs r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] ldr r2, _08088EB0 @ =gUnk_02034350 ldr r0, [r2, #0x68] movs r1, #8 orrs r0, r1 str r0, [r2, #0x68] _08088E94: adds r0, r4, #0 bl sub_0806FB38 cmp r0, #0 beq _08088EB4 ldr r0, _08088EB0 @ =gUnk_02034350 ldr r1, [r0, #0x68] movs r2, #0x10 orrs r1, r2 str r1, [r0, #0x68] adds r0, r4, #0 bl sub_0805E7BC b _08088F14 .align 2, 0 _08088EB0: .4byte gUnk_02034350 _08088EB4: ldr r0, _08088F18 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #7 ands r0, r1 cmp r0, #0 bne _08088F14 adds r0, r4, #0 movs r1, #0x2a movs r2, #0 movs r3, #0x1e bl sub_080A2988 adds r4, r0, #0 cmp r4, #0 beq _08088F14 ldrb r1, [r4, #0x11] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r4, #0x11] ldrb r2, [r4, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 strb r0, [r4, #0x19] adds r3, r4, #0 adds r3, #0x29 ldrb r2, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 strb r0, [r3] ldrb r0, [r4, #0x1b] ands r1, r0 strb r1, [r4, #0x1b] bl sub_08000E50 ldr r2, _08088F1C @ =gUnk_08120C52 movs r1, #3 ands r1, r0 adds r1, r1, r2 movs r0, #0 ldrsb r0, [r1, r0] ldrh r1, [r4, #0x32] adds r0, r0, r1 strh r0, [r4, #0x32] _08088F14: pop {r4, pc} .align 2, 0 _08088F18: .4byte gUnk_030010A0 _08088F1C: .4byte gUnk_08120C52 thumb_func_start sub_08088F20 sub_08088F20: @ 0x08088F20 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _08088F62 cmp r0, #1 bgt _08088F34 cmp r0, #0 beq _08088F3E b _08089020 _08088F34: cmp r0, #2 beq _08088FEC cmp r0, #3 beq _08089004 b _08089020 _08088F3E: movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x11] subs r0, #0x11 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r4, #0x11] ldrb r0, [r4, #0xb] bl sub_0807CBD0 cmp r0, #0 bne _08088F5A b _0808908E _08088F5A: adds r0, r4, #0 bl sub_0805E7BC b _0808908E _08088F62: ldrb r0, [r4, #0xb] bl sub_0807CBD0 cmp r0, #0 bne _08088F6E b _0808908E _08088F6E: movs r5, #2 strb r5, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] movs r1, #0x87 lsls r1, r1, #1 adds r0, r4, #0 bl sub_0805E4E0 movs r0, #0x2a movs r1, #1 movs r2, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _08088FBC ldrb r1, [r2, #0x11] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r2, #0x11] ldrh r0, [r4, #0x2e] strh r0, [r2, #0x2e] ldrh r0, [r4, #0x32] strh r0, [r2, #0x32] adds r0, r2, #0 adds r0, #0x38 strb r5, [r0] adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r2] _08088FBC: movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _08088FE8 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 movs r0, #0x76 movs r2, #2 bl sub_0807B314 b _0808908E .align 2, 0 _08088FE8: .4byte gUnk_03000BF0 _08088FEC: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0808908E adds r0, r4, #0 bl sub_08089094 movs r0, #3 strb r0, [r4, #0xc] b _0808908E _08089004: ldr r0, _0808901C @ =gUnk_02034350 ldr r0, [r0, #0x68] movs r1, #0x10 ands r0, r1 cmp r0, #0 beq _0808908E movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xe] b _0808908E .align 2, 0 _0808901C: .4byte gUnk_02034350 _08089020: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x5a bne _0808905C movs r0, #0x15 movs r1, #2 bl sub_0807CC60 cmp r0, #0 beq _08089048 ldr r0, _08089044 @ =gUnk_02034350 ldr r1, [r0, #0x68] movs r2, #2 b _0808904E .align 2, 0 _08089044: .4byte gUnk_02034350 _08089048: ldr r0, _08089090 @ =gUnk_02034350 ldr r1, [r0, #0x68] movs r2, #1 _0808904E: orrs r1, r2 str r1, [r0, #0x68] adds r2, r0, #0 ldr r0, [r2, #0x68] movs r1, #0x20 orrs r0, r1 str r0, [r2, #0x68] _0808905C: ldrb r0, [r4, #0xe] cmp r0, #0 bne _0808908E ldr r2, _08089090 @ =gUnk_02034350 ldr r0, [r2, #0x68] movs r1, #0x11 rsbs r1, r1, #0 ands r0, r1 str r0, [r2, #0x68] movs r0, #0x15 movs r1, #2 bl sub_0807CC60 cmp r0, #0 beq _08089088 adds r0, r4, #0 movs r1, #0x3c bl sub_0805E4E0 movs r0, #0x72 bl sub_080A3268 _08089088: adds r0, r4, #0 bl sub_0805E7BC _0808908E: pop {r4, r5, pc} .align 2, 0 _08089090: .4byte gUnk_02034350 thumb_func_start sub_08089094 sub_08089094: @ 0x08089094 push {r4, r5, lr} adds r5, r0, #0 movs r1, #0x2e ldrsh r0, [r5, r1] ldr r1, _080890C4 @ =gUnk_03000BF0 ldrh r1, [r1, #6] subs r0, r0, r1 cmp r0, #0xff bgt _080890CC ldr r4, _080890C8 @ =gUnk_08120C56 movs r2, #8 rsbs r2, r2, #0 adds r0, r5, #0 adds r1, r4, #0 bl sub_080890EC adds r4, #4 adds r0, r5, #0 adds r1, r4, #0 movs r2, #4 bl sub_080890EC b _080890E6 .align 2, 0 _080890C4: .4byte gUnk_03000BF0 _080890C8: .4byte gUnk_08120C56 _080890CC: ldr r4, _080890E8 @ =gUnk_08120C5E movs r2, #8 rsbs r2, r2, #0 adds r0, r5, #0 adds r1, r4, #0 bl sub_080890EC adds r4, #4 adds r0, r5, #0 adds r1, r4, #0 movs r2, #4 bl sub_080890EC _080890E6: pop {r4, r5, pc} .align 2, 0 _080890E8: .4byte gUnk_08120C5E thumb_func_start sub_080890EC sub_080890EC: @ 0x080890EC push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r7, r1, #0 adds r6, r2, #0 movs r0, #0x25 movs r1, #3 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08089132 movs r1, #3 bl sub_0805E3A0 ldrh r0, [r5, #0x2e] strh r0, [r4, #0x2e] ldrh r0, [r5, #0x32] adds r0, r0, r6 strh r0, [r4, #0x32] str r5, [r4, #0x50] movs r0, #0x2e ldrsh r1, [r4, r0] movs r2, #0 ldrsh r0, [r7, r2] adds r1, r1, r0 movs r3, #0x32 ldrsh r2, [r4, r3] movs r3, #2 ldrsh r0, [r7, r3] adds r2, r2, r0 adds r0, r4, #0 movs r3, #0x5a bl sub_0806FB00 _08089132: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08089134 sub_08089134: @ 0x08089134 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xc] cmp r0, #0 bne _0808919C 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 r0, [r5, #0xa] strb r0, [r5, #0x1e] movs r0, #0x10 strb r0, [r5, #0xe] strb r3, [r5, #0xf] ldrb r0, [r5, #0xa] lsls r3, r0, #1 adds r3, r3, r0 ldr r0, _080891D4 @ =gUnk_08120C80 adds r3, r3, r0 ldrb r1, [r3] lsls r1, r1, #6 ldrb r4, [r5, #0x19] movs r2, #0x3f adds r0, r2, #0 ands r0, r4 orrs r0, r1 strb r0, [r5, #0x19] ldrb r0, [r3, #1] movs r1, #0x29 adds r1, r1, r5 mov ip, r1 movs r1, #7 ands r1, r0 mov r0, ip ldrb r4, [r0] movs r0, #8 rsbs r0, r0, #0 ands r0, r4 orrs r0, r1 mov r1, ip strb r0, [r1] ldrb r0, [r3, #2] lsls r0, r0, #6 ldrb r1, [r5, #0x1b] ands r2, r1 orrs r2, r0 strb r2, [r5, #0x1b] _0808919C: ldrb r0, [r5, #0xa] cmp r0, #4 bne _080891D0 ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 lsrs r3, r0, #0x18 cmp r3, #0 bne _080891D0 movs r0, #0x10 strb r0, [r5, #0xe] ldr r2, _080891D8 @ =gUnk_08120C92 ldrb r0, [r5, #0xf] adds r1, r0, #1 strb r1, [r5, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 adds r0, r0, r2 ldrb r0, [r0] strb r0, [r5, #0x1e] lsls r1, r1, #0x18 lsrs r1, r1, #0x18 cmp r1, #3 bne _080891D0 strb r3, [r5, #0xf] _080891D0: pop {r4, r5, pc} .align 2, 0 _080891D4: .4byte gUnk_08120C80 _080891D8: .4byte gUnk_08120C92 thumb_func_start sub_080891DC sub_080891DC: @ 0x080891DC push {lr} ldr r2, _080891F0 @ =gUnk_08120C98 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080891F0: .4byte gUnk_08120C98 thumb_func_start sub_080891F4 sub_080891F4: @ 0x080891F4 push {r4, lr} adds r4, r0, #0 bl sub_0808965C cmp r0, #0 beq _08089236 movs r3, #0 movs r2, #1 strb r2, [r4, #0xc] movs r0, #0x80 strh r0, [r4, #0x24] ldrb r1, [r4, #0x11] subs r0, #0x90 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r4, #0x11] ldr r0, _08089238 @ =gUnk_080FD1F4 str r0, [r4, #0x48] strb r2, [r4, #0x16] adds r0, r4, #0 adds r0, #0x86 strh r3, [r0] adds r0, r4, #0 bl sub_08089454 adds r0, r4, #0 bl sub_080894C8 adds r0, r4, #0 movs r1, #0 bl sub_08004260 _08089236: pop {r4, pc} .align 2, 0 _08089238: .4byte gUnk_080FD1F4 thumb_func_start sub_0808923C sub_0808923C: @ 0x0808923C push {r4, r5, lr} adds r4, r0, #0 bl sub_0800442E cmp r0, #0 bne _080892C0 adds r0, r4, #0 adds r0, #0x84 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080002B0 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 ldr r0, _08089278 @ =0x0000400B cmp r5, r0 beq _080892BA adds r0, r5, #0 bl sub_0808968C cmp r0, #1 beq _0808927C cmp r0, #1 blo _08089294 cmp r0, #2 beq _080892B2 b _080892C0 .align 2, 0 _08089278: .4byte 0x0000400B _0808927C: movs r1, #3 movs r0, #3 strb r0, [r4, #0xc] adds r0, r5, #0 subs r0, #0xc ands r0, r1 lsls r0, r0, #3 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_08089538 b _080892C0 _08089294: movs r0, #0xf movs r1, #4 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _080892AA adds r0, r4, #0 bl sub_0806FA24 _080892AA: adds r0, r4, #0 bl sub_080894FC b _080892C0 _080892B2: adds r0, r4, #0 adds r0, #0x80 strh r5, [r0] b _080892C0 _080892BA: adds r0, r4, #0 bl sub_08078930 _080892C0: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080892C4 sub_080892C4: @ 0x080892C4 push {lr} adds r2, r0, #0 adds r0, #0x86 ldrh r0, [r0] cmp r0, #0 beq _080892D8 adds r0, r2, #0 bl sub_080895C0 b _080892F6 _080892D8: ldr r0, _080892F8 @ =gUnk_03003F80 ldrb r0, [r0, #5] cmp r0, #0 bne _080892E4 movs r0, #6 strb r0, [r2, #0xd] _080892E4: ldr r0, _080892FC @ =gUnk_08120CAC ldrb r1, [r2, #0xd] subs r1, #5 lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 _080892F6: pop {pc} .align 2, 0 _080892F8: .4byte gUnk_03003F80 _080892FC: .4byte gUnk_08120CAC thumb_func_start sub_08089300 sub_08089300: @ 0x08089300 push {r4, r5, lr} adds r5, r0, #0 adds r1, r5, #0 adds r1, #0x83 ldrb r0, [r1] cmp r0, #0 bne _0808932C movs r0, #1 strb r0, [r1] ldr r1, _0808935C @ =gUnk_03001160 ldrb r0, [r1, #0x14] ldr r2, _08089360 @ =gUnk_08120CB4 adds r0, r0, r2 movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #0x10 movs r3, #1 ldrsb r3, [r0, r3] lsls r3, r3, #0x10 adds r0, r5, #0 bl sub_0806FA48 _0808932C: adds r0, r5, #0 adds r0, #0x84 ldrh r0, [r0] adds r1, r5, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080002B0 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 ldr r0, _08089364 @ =0x0000400B cmp r4, r0 beq _080893A0 adds r0, r4, #0 bl sub_0808968C cmp r0, #1 beq _08089368 cmp r0, #1 blo _0808937C cmp r0, #2 beq _0808939A b _080893A0 .align 2, 0 _0808935C: .4byte gUnk_03001160 _08089360: .4byte gUnk_08120CB4 _08089364: .4byte 0x0000400B _08089368: adds r0, r4, #0 subs r0, #0xc movs r1, #3 ands r0, r1 lsls r0, r0, #3 strb r0, [r5, #0x15] adds r0, r5, #0 bl sub_08089538 b _080893A0 _0808937C: movs r0, #0xf movs r1, #4 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _08089392 adds r0, r5, #0 bl sub_0806FA24 _08089392: adds r0, r5, #0 bl sub_080894FC b _080893D6 _0808939A: adds r0, r5, #0 adds r0, #0x80 strh r4, [r0] _080893A0: bl sub_080896B0 cmp r0, #0 beq _080893D6 ldr r2, _080893D8 @ =gUnk_03003F80 movs r3, #0 movs r0, #0x10 strb r0, [r2, #0xc] adds r1, r2, #0 adds r1, #0x38 movs r0, #0x20 strb r0, [r1] ldr r0, [r2, #0x30] movs r1, #1 orrs r0, r1 str r0, [r2, #0x30] ldr r0, _080893DC @ =gUnk_03001160 strh r3, [r0, #0x2c] strh r3, [r0, #0x30] ldrb r0, [r0, #0x14] movs r1, #4 eors r0, r1 lsls r0, r0, #2 strb r0, [r5, #0x15] adds r0, r5, #0 bl sub_08089538 _080893D6: pop {r4, r5, pc} .align 2, 0 _080893D8: .4byte gUnk_03003F80 _080893DC: .4byte gUnk_03001160 thumb_func_start sub_080893E0 sub_080893E0: @ 0x080893E0 movs r2, #0 movs r1, #1 strb r1, [r0, #0xc] adds r0, #0x83 strb r2, [r0] bx lr thumb_func_start sub_080893EC sub_080893EC: @ 0x080893EC push {r4, lr} adds r4, r0, #0 bl sub_080895C0 cmp r0, #0 beq _080893FC movs r0, #1 strb r0, [r4, #0xc] _080893FC: pop {r4, pc} .align 2, 0 thumb_func_start sub_08089400 sub_08089400: @ 0x08089400 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 beq _08089424 ldrb r2, [r4, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #1 eors r1, r0 subs r0, #5 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] b _0808944E _08089424: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #1 strb r0, [r4, #0xc] ldr r0, _08089450 @ =0x0000400B adds r1, r4, #0 adds r1, #0x84 ldrh r1, [r1] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E adds r0, r4, #0 bl sub_080894C8 _0808944E: pop {r4, pc} .align 2, 0 _08089450: .4byte 0x0000400B thumb_func_start sub_08089454 sub_08089454: @ 0x08089454 push {r4, r5, r6, lr} adds r5, r0, #0 movs r0, #0x2e ldrsh r1, [r5, r0] ldr r2, _080894C0 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r4, #0x32 ldrsh r0, [r5, r4] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r6, r5, #0 adds r6, #0x84 strh r1, [r6] ldrh r0, [r6] adds r4, r5, #0 adds r4, #0x38 ldrb r1, [r4] bl sub_080001DA adds r1, r5, #0 adds r1, #0x80 strh r0, [r1] ldr r5, _080894C4 @ =0x0000400B ldrh r1, [r6] ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldrb r0, [r4] cmp r0, #2 bne _080894BC ldrh r0, [r6] movs r1, #1 bl sub_080002B0 movs r1, #0xc4 lsls r1, r1, #2 cmp r0, r1 bne _080894BC ldrh r1, [r6] adds r0, r5, #0 movs r2, #1 bl sub_0800015E _080894BC: pop {r4, r5, r6, pc} .align 2, 0 _080894C0: .4byte gUnk_03000BF0 _080894C4: .4byte 0x0000400B thumb_func_start sub_080894C8 sub_080894C8: @ 0x080894C8 push {r4, lr} adds r3, r0, #0 movs r2, #0 ldr r1, _080894E0 @ =gUnk_02034350 adds r4, r1, #0 adds r4, #0xac ldr r0, [r4] mov ip, r1 cmp r0, #0 bne _080894E4 str r3, [r4] b _080894FA .align 2, 0 _080894E0: .4byte gUnk_02034350 _080894E4: adds r2, #1 cmp r2, #7 bhi _080894FA lsls r0, r2, #2 mov r1, ip adds r1, #0xac adds r1, r0, r1 ldr r0, [r1] cmp r0, #0 bne _080894E4 str r3, [r1] _080894FA: pop {r4, pc} thumb_func_start sub_080894FC sub_080894FC: @ 0x080894FC push {r4, lr} adds r3, r0, #0 movs r2, #0 ldr r1, _08089514 @ =gUnk_02034350 adds r4, r1, #0 adds r4, #0xac ldr r0, [r4] mov ip, r1 cmp r3, r0 bne _08089518 str r2, [r4] b _08089530 .align 2, 0 _08089514: .4byte gUnk_02034350 _08089518: adds r2, #1 cmp r2, #7 bhi _08089530 lsls r0, r2, #2 mov r1, ip adds r1, #0xac adds r1, r0, r1 ldr r0, [r1] cmp r3, r0 bne _08089518 movs r0, #0 str r0, [r1] _08089530: adds r0, r3, #0 bl sub_0805E7BC pop {r4, pc} thumb_func_start sub_08089538 sub_08089538: @ 0x08089538 push {r4, r5, r6, lr} adds r5, r0, #0 adds r1, r5, #0 adds r1, #0x86 movs r0, #0x20 strh r0, [r1] adds r0, #0xef bl sub_08004488 adds r0, r5, #0 adds r0, #0x80 ldrh r0, [r0] adds r6, r5, #0 adds r6, #0x84 ldrh r1, [r6] adds r4, r5, #0 adds r4, #0x38 ldrb r2, [r4] bl sub_0800015E ldrb r0, [r4] cmp r0, #2 bne _08089580 ldrh r0, [r6] movs r1, #1 bl sub_080002B0 ldr r1, _080895B8 @ =0x0000400B cmp r0, r1 bne _08089580 movs r0, #0xc4 lsls r0, r0, #2 ldrh r1, [r6] movs r2, #1 bl sub_08000152 _08089580: adds r2, r5, #0 adds r2, #0x84 ldr r1, _080895BC @ =gUnk_080B4488 ldrb r0, [r5, #0x15] lsrs r0, r0, #3 lsls r0, r0, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] ldrh r2, [r2] adds r0, r0, r2 adds r1, r5, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080002B0 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x79 beq _080895AC cmp r0, #0x77 bne _080895B4 _080895AC: adds r1, r5, #0 adds r1, #0x63 movs r0, #0xfe strb r0, [r1] _080895B4: pop {r4, r5, r6, pc} .align 2, 0 _080895B8: .4byte 0x0000400B _080895BC: .4byte gUnk_080B4488 thumb_func_start sub_080895C0 sub_080895C0: @ 0x080895C0 push {r4, lr} adds r4, r0, #0 bl sub_0806F69C adds r1, r4, #0 adds r1, #0x86 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0808964C adds r0, r4, #0 bl sub_0800442E cmp r0, #0 bne _0808964C adds r1, r4, #0 adds r1, #0x63 movs r0, #0 strb r0, [r1] adds r0, r4, #0 bl sub_080002D0 cmp r0, #0 bne _080895FE adds r0, r4, #0 bl sub_08089454 movs r0, #1 b _08089654 _080895FE: movs r0, #0xf movs r1, #4 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _08089614 adds r0, r4, #0 bl sub_0806FA24 _08089614: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] ldr r2, _08089658 @ =gUnk_08120CBC ldrb r1, [r4, #0x15] lsrs r1, r1, #2 lsls r0, r1, #1 adds r0, r0, r2 ldrh r0, [r0] ldrh r3, [r4, #0x2e] adds r0, r0, r3 strh r0, [r4, #0x2e] adds r1, #1 lsls r1, r1, #1 adds r1, r1, r2 ldrh r0, [r1] ldrh r1, [r4, #0x32] adds r0, r0, r1 strh r0, [r4, #0x32] adds r0, r4, #0 bl sub_08089454 movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] _0808964C: adds r0, r4, #0 bl sub_0800445C movs r0, #0 _08089654: pop {r4, pc} .align 2, 0 _08089658: .4byte gUnk_08120CBC thumb_func_start sub_0808965C sub_0808965C: @ 0x0808965C push {lr} adds r2, r0, #0 ldr r3, _08089678 @ =gUnk_03000BF0 ldrb r0, [r3, #4] cmp r0, #0x3f bls _08089680 ldr r1, _0808967C @ =gUnk_08120CCC subs r0, #0x40 lsls r0, r0, #1 adds r0, r0, r1 ldrh r1, [r0] adds r0, r2, #0 b _08089684 .align 2, 0 _08089678: .4byte gUnk_03000BF0 _0808967C: .4byte gUnk_08120CCC _08089680: adds r0, r2, #0 movs r1, #0xe9 _08089684: bl sub_080ADF80 pop {pc} .align 2, 0 thumb_func_start sub_0808968C sub_0808968C: @ 0x0808968C push {lr} adds r2, r0, #0 ldr r1, _08089694 @ =gUnk_08120D6C b _080896A4 .align 2, 0 _08089694: .4byte gUnk_08120D6C _08089698: ldrh r0, [r1] cmp r0, r2 bne _080896A2 ldrh r0, [r1, #2] b _080896AC _080896A2: adds r1, #4 _080896A4: ldrh r0, [r1] cmp r0, #0 bne _08089698 movs r0, #0 _080896AC: pop {pc} .align 2, 0 thumb_func_start sub_080896B0 sub_080896B0: @ 0x080896B0 push {r4, r5, r6, r7, lr} ldr r0, _08089750 @ =gUnk_03003F80 ldrb r1, [r0, #5] movs r0, #0x1f ands r0, r1 cmp r0, #0x12 bne _08089768 ldr r6, _08089754 @ =gUnk_03001160 adds r0, r6, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08089768 ldrb r3, [r6, #0x14] movs r2, #6 ands r2, r3 lsls r2, r2, #1 ldr r0, _08089758 @ =gUnk_080B4468 adds r2, r2, r0 ldr r0, _0808975C @ =gUnk_080B4488 lsrs r3, r3, #1 lsls r3, r3, #1 adds r3, r3, r0 movs r0, #0x2e ldrsh r1, [r6, r0] movs r4, #0 ldrsh r0, [r2, r4] adds r1, r1, r0 ldr r5, _08089760 @ =gUnk_03000BF0 ldrh r0, [r5, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r4, #0x3f ands r1, r4 movs r7, #0x32 ldrsh r0, [r6, r7] movs r7, #2 ldrsh r2, [r2, r7] adds r0, r0, r2 ldrh r2, [r5, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r4 lsls r0, r0, #6 orrs r1, r0 movs r0, #0 ldrsh r7, [r3, r0] subs r1, r1, r7 lsls r4, r1, #0x10 lsrs r0, r4, #0x10 adds r5, r6, #0 adds r5, #0x38 ldrb r1, [r5] bl sub_080002C8 adds r1, r0, #0 subs r0, #0x26 cmp r0, #1 bls _08089768 cmp r1, #0x29 beq _08089768 ldrb r0, [r5] bl sub_0808094C asrs r1, r4, #0x10 ldr r2, _08089764 @ =0x00002004 adds r0, r0, r2 adds r2, r0, r1 ldrb r2, [r2] subs r1, r1, r7 adds r0, r0, r1 ldrb r0, [r0] cmp r2, #0 bne _08089768 cmp r0, #0 bne _08089768 movs r0, #1 b _0808976A .align 2, 0 _08089750: .4byte gUnk_03003F80 _08089754: .4byte gUnk_03001160 _08089758: .4byte gUnk_080B4468 _0808975C: .4byte gUnk_080B4488 _08089760: .4byte gUnk_03000BF0 _08089764: .4byte 0x00002004 _08089768: movs r0, #0 _0808976A: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0808976C sub_0808976C: @ 0x0808976C push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080897D0 movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0x18] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x18] ldrb r0, [r4, #0xb] strb r0, [r4, #0x1e] ldrb r0, [r4, #0x1b] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x1b] ldrb r0, [r4, #0x19] orrs r0, r1 strb r0, [r4, #0x19] ldrb r0, [r4, #0xa] cmp r0, #3 bne _080897AE adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #8 rsbs r1, r1, #0 ands r1, r0 movs r0, #6 orrs r1, r0 strb r1, [r2] b _080897BA _080897AE: adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] _080897BA: ldrh r0, [r4, #0x2e] adds r1, r4, #0 adds r1, #0x68 strh r0, [r1] ldrh r0, [r4, #0x32] adds r1, #2 strh r0, [r1] adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 _080897D0: ldrb r1, [r4, #0x10] movs r0, #0x10 ands r0, r1 cmp r0, #0 bne _08089840 movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _08089844 @ =gUnk_03000BF0 movs r3, #0xa ldrsh r0, [r2, r3] subs r5, r1, r0 adds r3, r5, #0 subs r3, #0x78 movs r6, #0x32 ldrsh r1, [r4, r6] movs r6, #0xc ldrsh r0, [r2, r6] subs r1, r1, r0 adds r2, r1, #0 subs r2, #0x50 adds r0, r3, #0 cmp r0, #0 bge _08089802 adds r0, r5, #0 subs r0, #0x75 _08089802: asrs r3, r0, #2 adds r0, r2, #0 cmp r0, #0 bge _0808980E adds r0, r1, #0 subs r0, #0x4d _0808980E: asrs r2, r0, #2 movs r0, #0x10 rsbs r0, r0, #0 cmp r3, r0 bge _0808981A adds r3, r0, #0 _0808981A: cmp r3, #0x10 ble _08089820 movs r3, #0x10 _08089820: cmp r2, r0 bge _08089826 adds r2, r0, #0 _08089826: cmp r2, #0x10 ble _0808982C movs r2, #0x10 _0808982C: adds r0, r4, #0 adds r0, #0x68 ldrh r0, [r0] adds r0, r0, r3 strh r0, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x6a ldrh r0, [r0] adds r0, r0, r2 strh r0, [r4, #0x32] _08089840: pop {r4, r5, r6, pc} .align 2, 0 _08089844: .4byte gUnk_03000BF0 thumb_func_start sub_08089848 sub_08089848: @ 0x08089848 push {r4, lr} adds r4, r0, #0 ldr r1, _08089870 @ =gUnk_08120D90 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 bl sub_08000E50 movs r1, #1 ands r1, r0 adds r1, #1 adds r0, r4, #0 bl sub_08004276 pop {r4, pc} .align 2, 0 _08089870: .4byte gUnk_08120D90 thumb_func_start sub_08089874 sub_08089874: @ 0x08089874 push {r4, r5, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r3, #1 adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _08089940 adds r0, r4, #0 adds r0, #0x38 movs r2, #3 strb r2, [r0] ldrb r1, [r4, #0xb] adds r5, r0, #0 cmp r1, #0 bne _08089900 ldrb r0, [r4, #0xa] cmp r0, #0x80 bne _080898B4 strb r2, [r4, #0xc] ldrb r0, [r4, #0x19] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x19] adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08089AE0 b _08089940 _080898B4: str r1, [r4, #0x50] adds r0, r4, #0 movs r1, #0x29 movs r2, #0 movs r3, #0xff bl sub_080A2988 ldrb r0, [r4, #0xa] cmp r0, #0 beq _080898FA _080898C8: ldrb r3, [r4, #0xa] adds r0, r4, #0 movs r1, #0x29 movs r2, #0 bl sub_080A2988 adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 beq _080898EE ldr r0, [r4, #0x50] str r0, [r1, #0x50] ldr r1, [r4, #0x50] cmp r1, #0 beq _080898EA ldr r0, [r4, #0x54] str r0, [r1, #0x54] _080898EA: ldr r0, [r4, #0x54] str r0, [r4, #0x50] _080898EE: ldrb r0, [r4, #0xa] subs r0, #1 strb r0, [r4, #0xa] lsls r0, r0, #0x18 cmp r0, #0 bne _080898C8 _080898FA: bl sub_0805E780 b _08089940 _08089900: strb r3, [r4, #0xc] ldr r0, [r4, #0x50] cmp r0, #0 bne _08089912 adds r0, r4, #0 movs r1, #0 bl sub_08004260 b _0808991A _08089912: adds r0, r4, #0 movs r1, #1 bl sub_08004260 _0808991A: ldrb r0, [r4, #0xb] cmp r0, #0xff bne _08089934 movs r0, #1 strb r0, [r5] adds r0, r4, #0 bl sub_08016A30 adds r0, r4, #0 movs r1, #0x15 bl sub_0801D2B4 b _08089940 _08089934: ldrb r1, [r4, #0xb] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 rsbs r0, r0, #0 strh r0, [r4, #0x36] _08089940: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08089944 sub_08089944: @ 0x08089944 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r3, [r4, #0xb] cmp r3, #0xff bne _08089964 adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] ldrb r0, [r4, #0x19] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x19] b _08089A76 _08089964: ldrb r1, [r4, #0x1b] movs r2, #0x3f adds r0, r2, #0 ands r0, r1 movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x1b] ldrb r0, [r4, #0x19] ands r2, r0 strb r2, [r4, #0x19] cmp r3, #1 beq _08089984 ldr r0, [r4, #0x54] ldrb r0, [r0, #0xc] cmp r0, #2 bne _08089A76 _08089984: ldr r0, _08089998 @ =gUnk_03001160 movs r1, #0x36 ldrsh r2, [r0, r1] movs r1, #0x24 rsbs r1, r1, #0 adds r6, r0, #0 cmp r2, r1 bge _0808999C movs r0, #1 b _0808999E .align 2, 0 _08089998: .4byte gUnk_03001160 _0808999C: movs r0, #0 _0808999E: strb r0, [r4, #0xe] ldrb r0, [r4, #0xb] subs r0, #1 lsls r1, r0, #3 adds r1, r1, r0 lsls r1, r1, #2 ldrh r0, [r4, #0x32] subs r0, r0, r1 strh r0, [r4, #0x32] adds r5, r6, #0 adds r0, r4, #0 adds r1, r5, #0 movs r2, #0xf movs r3, #0xf bl sub_080041A0 cmp r0, #0 beq _08089A62 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08089A62 movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x1b] movs r0, #0x3f ands r0, r1 movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x1b] ldrb r0, [r4, #0x19] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x19] ldrb r0, [r4, #0xb] cmp r0, #1 beq _080899EC ldr r1, [r4, #0x54] movs r0, #1 strb r0, [r1, #0xc] _080899EC: ldr r1, _08089A78 @ =gUnk_03003F80 movs r0, #1 strb r0, [r1, #0x14] ldrh r0, [r5, #0x32] subs r0, #0x24 strh r0, [r5, #0x32] ldrh r0, [r5, #0x36] adds r0, #0x24 strh r0, [r5, #0x36] adds r0, r5, #0 bl sub_0807AA80 ldrb r0, [r4, #0xf] cmp r0, #0 bne _08089A62 adds r0, r5, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _08089A20 ldrh r0, [r1, #0x2e] adds r0, #8 strh r0, [r1, #0x2e] _08089A20: adds r0, r5, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _08089A36 ldrh r0, [r1, #0x2e] subs r0, #8 strh r0, [r1, #0x2e] _08089A36: adds r0, r5, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _08089A4C ldrh r0, [r1, #0x32] adds r0, #8 strh r0, [r1, #0x32] _08089A4C: adds r0, r6, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _08089A62 ldrh r0, [r1, #0x32] subs r0, #8 strh r0, [r1, #0x32] _08089A62: ldrb r0, [r4, #0xb] subs r0, #1 lsls r1, r0, #3 adds r1, r1, r0 lsls r1, r1, #2 ldrh r0, [r4, #0x32] adds r1, r1, r0 strh r1, [r4, #0x32] ldrb r0, [r4, #0xe] strb r0, [r4, #0xf] _08089A76: pop {r4, r5, r6, pc} .align 2, 0 _08089A78: .4byte gUnk_03003F80 thumb_func_start sub_08089A7C sub_08089A7C: @ 0x08089A7C push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xb] lsls r1, r0, #3 adds r1, r1, r0 lsls r1, r1, #2 ldrh r0, [r4, #0x32] subs r0, r0, r1 strh r0, [r4, #0x32] ldr r5, _08089AB0 @ =gUnk_03001160 adds r0, r4, #0 adds r1, r5, #0 movs r2, #0xf movs r3, #0xf bl sub_080041A0 cmp r0, #0 beq _08089AB8 ldr r2, _08089AB4 @ =gUnk_03003F80 movs r0, #1 strb r0, [r2, #0x14] ldr r0, [r2, #0x30] movs r1, #2 orrs r0, r1 str r0, [r2, #0x30] b _08089AD0 .align 2, 0 _08089AB0: .4byte gUnk_03001160 _08089AB4: .4byte gUnk_03003F80 _08089AB8: movs r2, #1 strb r2, [r4, #0xc] ldrh r1, [r4, #0x36] ldrh r3, [r5, #0x36] adds r0, r1, r3 strh r0, [r5, #0x36] ldrh r0, [r5, #0x32] subs r0, r0, r1 strh r0, [r5, #0x32] adds r0, r5, #0 adds r0, #0x38 strb r2, [r0] _08089AD0: ldrb r1, [r4, #0xb] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 ldrh r1, [r4, #0x32] adds r0, r0, r1 strh r0, [r4, #0x32] pop {r4, r5, pc} thumb_func_start sub_08089AE0 sub_08089AE0: @ 0x08089AE0 push {lr} ldr r1, _08089AF8 @ =gUnk_03001160 movs r2, #0xf movs r3, #0xf bl sub_080041A0 cmp r0, #0 beq _08089AF6 ldr r1, _08089AFC @ =gUnk_03003F80 movs r0, #1 strb r0, [r1, #0x14] _08089AF6: pop {pc} .align 2, 0 _08089AF8: .4byte gUnk_03001160 _08089AFC: .4byte gUnk_03003F80 thumb_func_start sub_08089B00 sub_08089B00: @ 0x08089B00 push {lr} ldr r2, _08089B14 @ =gUnk_08120DD0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08089B14: .4byte gUnk_08120DD0 thumb_func_start sub_08089B18 sub_08089B18: @ 0x08089B18 push {r4, r5, r6, lr} adds r4, r0, #0 movs r2, #1 movs r6, #1 strb r6, [r4, #0xc] ldrb r1, [r4, #0x18] movs r5, #4 rsbs r5, r5, #0 adds r0, r5, #0 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldrb r0, [r4, #0xb] cmp r0, #0 beq _08089B38 strb r0, [r4, #0xe] _08089B38: adds r0, r4, #0 movs r1, #0 bl sub_08004260 ldrb r0, [r4, #0xa] cmp r0, #2 beq _08089B66 cmp r0, #2 bgt _08089B50 cmp r0, #1 beq _08089B5A b _08089B96 _08089B50: cmp r0, #3 beq _08089B72 cmp r0, #4 beq _08089B7C b _08089B96 _08089B5A: ldrh r0, [r4, #0x32] subs r0, #8 strh r0, [r4, #0x32] movs r0, #0x28 strb r0, [r4, #0xe] b _08089B96 _08089B66: movs r0, #0xf strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_08004168 b _08089B96 _08089B72: ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA24 b _08089B96 _08089B7C: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 bne _08089B96 ldrb r1, [r4, #0x18] adds r0, r5, #0 ands r0, r1 strb r0, [r4, #0x18] strb r6, [r4, #0xd] b _08089B9E _08089B96: movs r0, #0x92 lsls r0, r0, #1 bl sub_08004488 _08089B9E: pop {r4, r5, r6, pc} thumb_func_start sub_08089BA0 sub_08089BA0: @ 0x08089BA0 push {r4, r5, r6, lr} adds r5, r0, #0 bl sub_08004274 ldrb r0, [r5, #0xa] cmp r0, #4 bhi _08089BD0 lsls r0, r0, #2 ldr r1, _08089BB8 @ =_08089BBC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08089BB8: .4byte _08089BBC _08089BBC: @ jump table .4byte _08089BD0 @ case 0 .4byte _08089BD6 @ case 1 .4byte _08089BD6 @ case 2 .4byte _08089C4C @ case 3 .4byte _08089C72 @ case 4 _08089BD0: ldrb r0, [r5, #0xb] cmp r0, #0 beq _08089CBA _08089BD6: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _08089CBA ldrb r0, [r5, #0xa] cmp r0, #2 bne _08089C42 ldr r0, [r5, #0x54] ldrh r0, [r0, #6] movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _08089C48 @ =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_0807B7D8 adds r0, r5, #0 movs r1, #0 movs r2, #0x10 bl sub_0807AB44 subs r4, #0x4f adds r0, r5, #0 movs r1, #0 adds r2, r4, #0 bl sub_0807AB44 adds r0, r5, #0 movs r1, #0x10 movs r2, #0 bl sub_0807AB44 adds r0, r5, #0 adds r1, r4, #0 movs r2, #0 bl sub_0807AB44 _08089C42: bl sub_0805E780 b _08089CBA .align 2, 0 _08089C48: .4byte gUnk_03000BF0 _08089C4C: ldr r0, [r5, #0x50] ldr r0, [r0, #4] cmp r0, #0 bne _08089C58 bl sub_0805E780 _08089C58: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08089C68 bl sub_0805E780 _08089C68: ldr r0, [r5, #0x50] adds r1, r5, #0 bl sub_0806FA24 b _08089CBA _08089C72: adds r0, r5, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 adds r1, r0, #0 ldrb r0, [r5, #0xd] cmp r0, #0 bne _08089C96 cmp r1, #0 bne _08089CBA movs r0, #1 strb r0, [r5, #0xd] ldrb r1, [r5, #0x18] subs r0, #5 ands r0, r1 strb r0, [r5, #0x18] b _08089CBA _08089C96: cmp r1, #0 beq _08089CBA movs r0, #0 strb r0, [r5, #0xd] ldrb r1, [r5, #0x18] subs r0, #4 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r5, #0x18] adds r0, r5, #0 movs r1, #0 bl sub_08004260 movs r0, #0x92 lsls r0, r0, #1 bl sub_08004488 _08089CBA: pop {r4, r5, r6, pc} thumb_func_start sub_08089CBC sub_08089CBC: @ 0x08089CBC push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xc] cmp r1, #0 bne _08089CDC movs r0, #1 strb r0, [r4, #0xc] str r1, [r4, #0x34] ldrb r0, [r4, #0x19] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x19] adds r0, r4, #0 movs r1, #9 bl sub_08004260 _08089CDC: ldr r1, [r4, #0x50] ldr r0, [r1, #0x34] cmp r0, #0 bne _08089CEA bl sub_0805E780 b _08089D02 _08089CEA: movs r2, #0x36 ldrsh r0, [r1, r2] movs r2, #0x90 lsls r2, r2, #1 subs r2, r2, r0 adds r0, r1, #0 adds r0, #0x7e ldrh r3, [r0] adds r0, r4, #0 adds r1, r2, #0 bl sub_0805EC9C _08089D02: pop {r4, pc} thumb_func_start sub_08089D04 sub_08089D04: @ 0x08089D04 push {lr} ldr r2, _08089D18 @ =gUnk_08120DF4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08089D18: .4byte gUnk_08120DF4 thumb_func_start sub_08089D1C sub_08089D1C: @ 0x08089D1C push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r1, [r5, #0x19] movs r4, #0x3f adds r0, r4, #0 ands r0, r1 movs r6, #0x80 orrs r0, r6 strb r0, [r5, #0x19] ldrb r1, [r5, #0x1b] adds r0, r4, #0 ands r0, r1 movs r1, #0x40 orrs r0, r1 strb r0, [r5, #0x1b] adds r0, r5, #0 movs r1, #4 bl sub_0805E3A0 ldrb r0, [r5, #0xa] cmp r0, #7 bne _08089D90 ldrb r1, [r5, #0x10] movs r0, #1 ands r0, r1 cmp r0, #0 bne _08089D54 b _08089F06 _08089D54: ldrb r0, [r5, #0xb] cmp r0, #0 bne _08089D74 ldrb r0, [r5, #0xe] cmp r0, #0 beq _08089D74 bl sub_0807CBD0 cmp r0, #0 bne _08089D6A b _08089F06 _08089D6A: ldrb r1, [r5, #0x1b] adds r0, r4, #0 ands r0, r1 orrs r0, r6 strb r0, [r5, #0x1b] _08089D74: ldr r4, _08089D8C @ =gUnk_08120E3C ldrb r0, [r5, #0xb] lsls r0, r0, #2 adds r0, r0, r4 ldrb r1, [r0] adds r0, r5, #0 bl sub_08004260 ldrb r0, [r5, #0xb] lsls r0, r0, #2 adds r0, r0, r4 b _08089DCE .align 2, 0 _08089D8C: .4byte gUnk_08120E3C _08089D90: cmp r0, #0 beq _08089DAC ldr r0, _08089DA8 @ =gUnk_08120E14 ldrb r1, [r5, #0xa] lsls r1, r1, #2 adds r1, r1, r0 ldrb r1, [r1] adds r0, r5, #0 bl sub_08004260 b _08089DC6 .align 2, 0 _08089DA8: .4byte gUnk_08120E14 _08089DAC: adds r0, r5, #0 movs r1, #1 movs r2, #2 bl sub_080AE008 ldr r0, _08089E08 @ =gUnk_08120E14 ldrb r1, [r5, #0xa] lsls r1, r1, #2 adds r1, r1, r0 ldrb r1, [r1] adds r0, r5, #0 bl sub_080042AC _08089DC6: ldr r1, _08089E08 @ =gUnk_08120E14 ldrb r0, [r5, #0xa] lsls r0, r0, #2 adds r0, r0, r1 _08089DCE: ldrb r0, [r0, #1] adds r3, r5, #0 adds r3, #0x29 movs r1, #7 ands r1, r0 ldrb r2, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] movs r2, #1 movs r0, #1 strb r0, [r5, #0xc] ldrb r1, [r5, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r5, #0x18] ldrb r0, [r5, #0xa] cmp r0, #1 bge _08089DFC b _08089F00 _08089DFC: cmp r0, #6 ble _08089E0C cmp r0, #7 beq _08089E1C b _08089F00 .align 2, 0 _08089E08: .4byte gUnk_08120E14 _08089E0C: adds r0, r5, #0 adds r0, #0x60 movs r2, #0 movs r1, #0xe0 lsls r1, r1, #1 strh r1, [r0] strb r2, [r5, #0xe] b _08089F00 _08089E1C: ldrb r1, [r5, #0xb] cmp r1, #3 bgt _08089E2C cmp r1, #2 bge _08089EEC cmp r1, #0 beq _08089E32 b _08089F00 _08089E2C: cmp r1, #4 beq _08089EF8 b _08089F00 _08089E32: movs r0, #0x10 str r0, [r5, #0x6c] strb r1, [r5, #0xe] _08089E38: movs r0, #0x2c movs r1, #7 movs r2, #1 bl sub_080A2960 adds r1, r0, #0 str r1, [r5, #0x54] cmp r1, #0 beq _08089EC8 ldrh r0, [r5, #0x2e] strh r0, [r1, #0x2e] ldr r2, [r5, #0x54] ldr r1, [r5, #0x6c] ldrh r0, [r5, #0x32] subs r0, r0, r1 strh r0, [r2, #0x32] movs r0, #3 strb r0, [r5, #0xf] _08089E5C: ldrb r0, [r5, #0xe] lsls r0, r0, #2 ldr r1, _08089EE4 @ =gUnk_08120DFC adds r4, r0, r1 ldrb r2, [r4] subs r2, #2 movs r0, #0x2c movs r1, #7 bl sub_080A2960 adds r1, r0, #0 str r1, [r5, #0x54] cmp r1, #0 beq _08089EAA movs r0, #1 ldrsb r0, [r4, r0] ldrh r2, [r5, #0x2e] adds r0, r0, r2 strh r0, [r1, #0x2e] ldr r2, [r5, #0x54] ldr r1, [r5, #0x6c] ldrh r0, [r5, #0x32] subs r0, r0, r1 movs r1, #2 ldrsb r1, [r4, r1] subs r0, r0, r1 strh r0, [r2, #0x32] ldr r3, [r5, #0x54] ldrb r2, [r4, #3] movs r0, #1 ands r2, r0 lsls r2, r2, #6 ldrb r0, [r3, #0x18] movs r4, #0x41 rsbs r4, r4, #0 adds r1, r4, #0 ands r0, r1 orrs r0, r2 strb r0, [r3, #0x18] _08089EAA: ldrb r0, [r5, #0xe] adds r2, r0, #1 strb r2, [r5, #0xe] ldrb r0, [r5, #0xf] subs r0, #1 strb r0, [r5, #0xf] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _08089E5C lsls r0, r2, #0x18 lsrs r0, r0, #0x18 cmp r0, #5 bls _08089EC8 strb r1, [r5, #0xe] _08089EC8: ldr r0, [r5, #0x6c] adds r0, #0x38 str r0, [r5, #0x6c] ldrh r1, [r5, #0x32] subs r1, r1, r0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 ldr r0, _08089EE8 @ =gUnk_03000BF0 ldrh r0, [r0, #8] cmp r1, r0 bge _08089E38 movs r0, #1 strb r0, [r5, #0xe] b _08089F00 .align 2, 0 _08089EE4: .4byte gUnk_08120DFC _08089EE8: .4byte gUnk_03000BF0 _08089EEC: ldrb r0, [r5, #0x19] movs r1, #0x3f ands r1, r0 movs r0, #0x40 orrs r1, r0 strb r1, [r5, #0x19] _08089EF8: adds r1, r5, #0 adds r1, #0x38 movs r0, #3 strb r0, [r1] _08089F00: adds r0, r5, #0 bl sub_08089F08 _08089F06: pop {r4, r5, r6, pc} thumb_func_start sub_08089F08 sub_08089F08: @ 0x08089F08 push {lr} ldr r2, _08089F1C @ =gUnk_08120E50 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08089F1C: .4byte gUnk_08120E50 thumb_func_start sub_08089F20 sub_08089F20: @ 0x08089F20 push {lr} ldr r2, _08089F34 @ =gUnk_08120E78 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08089F34: .4byte gUnk_08120E78 thumb_func_start sub_08089F38 sub_08089F38: @ 0x08089F38 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 _08089F6C ldrb r0, [r4, #0xe] cmp r0, #1 bhi _08089F5A adds r0, #1 strb r0, [r4, #0xe] b _08089F6C _08089F5A: adds r0, r4, #0 movs r1, #1 bl sub_080042AC movs r0, #0x10 strb r0, [r4, #0xe] ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] _08089F6C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08089F70 sub_08089F70: @ 0x08089F70 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _08089F8E movs r0, #0x10 strb r0, [r4, #0xe] movs r0, #0xcc lsls r0, r0, #1 bl sub_080A3268 _08089F8E: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08089FEC movs r0, #0x2c movs r1, #1 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 beq _08089FBE ldrh r0, [r4, #0x2e] strh r0, [r1, #0x2e] ldr r1, [r4, #0x54] ldrh r0, [r4, #0x32] strh r0, [r1, #0x32] _08089FBE: movs r0, #0x2c movs r1, #2 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 beq _08089FDC ldrh r0, [r4, #0x2e] strh r0, [r1, #0x2e] ldr r1, [r4, #0x54] ldrh r0, [r4, #0x32] subs r0, #0x10 strh r0, [r1, #0x32] _08089FDC: ldrb r0, [r4, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 strb r1, [r4, #0x18] ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] _08089FEC: pop {r4, pc} .align 2, 0 thumb_func_start sub_08089FF0 sub_08089FF0: @ 0x08089FF0 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 bne _0808A00E movs r0, #0x10 strb r0, [r1, #0xe] movs r0, #0xcc lsls r0, r0, #1 bl sub_080A3268 _0808A00E: pop {pc} thumb_func_start sub_0808A010 sub_0808A010: @ 0x0808A010 push {r4, r5, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0808A07E ldrb r0, [r4, #0xe] lsls r0, r0, #2 ldr r1, _0808A0BC @ =gUnk_08120DFC adds r5, r0, r1 ldrb r1, [r5] movs r0, #0x2c movs r2, #0 bl sub_080A2960 adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 beq _0808A06C movs r0, #1 ldrsb r0, [r5, r0] ldrh r2, [r4, #0x2e] adds r0, r0, r2 strh r0, [r1, #0x2e] ldr r2, [r4, #0x54] movs r1, #2 ldrsb r1, [r5, r1] ldrh r0, [r4, #0x32] subs r0, r0, r1 strh r0, [r2, #0x32] ldr r3, [r4, #0x54] ldrb r1, [r5, #3] movs r0, #1 ands r1, r0 lsls r1, r1, #6 ldrb r2, [r3, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3, #0x18] _0808A06C: ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #5 bls _0808A07E movs r0, #0 strb r0, [r4, #0xe] _0808A07E: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808A0BA movs r0, #0x2c movs r1, #3 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 beq _0808A0A8 ldrh r0, [r4, #0x2e] strh r0, [r1, #0x2e] ldr r1, [r4, #0x54] ldrh r0, [r4, #0x32] strh r0, [r1, #0x32] _0808A0A8: ldrh r0, [r4, #0x32] subs r0, #0x38 strh r0, [r4, #0x32] lsls r0, r0, #0x10 cmp r0, #0 bge _0808A0BA adds r0, r4, #0 bl sub_0805E7BC _0808A0BA: pop {r4, r5, pc} .align 2, 0 _0808A0BC: .4byte gUnk_08120DFC thumb_func_start sub_0808A0C0 sub_0808A0C0: @ 0x0808A0C0 push {lr} adds r2, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0808A0D6 adds r0, r2, #0 bl sub_08004274 _0808A0D6: pop {pc} thumb_func_start nullsub_517 nullsub_517: @ 0x0808A0D8 bx lr .align 2, 0 thumb_func_start sub_0808A0DC sub_0808A0DC: @ 0x0808A0DC push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 ldrb r0, [r5, #0xb] cmp r0, #1 bne _0808A0EC b _0808A202 _0808A0EC: cmp r0, #1 bgt _0808A0F6 cmp r0, #0 beq _0808A120 b _0808A202 _0808A0F6: cmp r0, #4 ble _0808A0FC b _0808A202 _0808A0FC: ldr r0, _0808A118 @ =gUnk_03003F80 ldrb r0, [r0, #0x12] cmp r0, #0x1e bne _0808A1DA ldr r1, _0808A11C @ =gUnk_03001160 adds r0, r5, #0 movs r2, #0 movs r3, #8 bl sub_080041A0 cmp r0, #0 beq _0808A1DC b _0808A1B0 .align 2, 0 _0808A118: .4byte gUnk_03003F80 _0808A11C: .4byte gUnk_03001160 _0808A120: ldrb r0, [r5, #0xe] cmp r0, #0 beq _0808A202 ldr r4, _0808A1A8 @ =gUnk_03000BF0 ldrh r0, [r4, #8] str r0, [r5, #0x6c] movs r2, #0x2e ldrsh r1, [r5, r2] ldrh r2, [r4, #6] subs r1, r1, r2 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 ldrh r2, [r4, #8] subs r0, r0, r2 lsrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r0, r5, #0 adds r0, #0x70 strh r1, [r0] adds r6, r4, #0 mov r8, r3 adds r4, r0, #0 ldr r7, _0808A1AC @ =0x00004017 _0808A154: movs r0, #0x2e ldrsh r1, [r5, r0] ldrh r0, [r6, #6] subs r1, r1, r0 asrs r1, r1, #4 mov r2, r8 ands r1, r2 ldrh r2, [r6, #8] ldr r0, [r5, #0x6c] subs r0, r0, r2 lsrs r0, r0, #4 mov r2, r8 ands r0, r2 lsls r0, r0, #6 orrs r1, r0 strh r1, [r4] ldrh r1, [r4] adds r0, r7, #0 movs r2, #2 bl sub_0800015E ldrh r1, [r4] adds r0, r7, #0 movs r2, #1 bl sub_0800015E ldr r0, [r5, #0x6c] adds r2, r0, #0 adds r2, #0x10 str r2, [r5, #0x6c] ldrh r0, [r6, #8] ldrh r1, [r6, #0x20] adds r0, r0, r1 cmp r2, r0 bhs _0808A1A2 movs r1, #0x32 ldrsh r0, [r5, r1] cmp r2, r0 bls _0808A154 _0808A1A2: movs r0, #0 strb r0, [r5, #0xe] b _0808A202 .align 2, 0 _0808A1A8: .4byte gUnk_03000BF0 _0808A1AC: .4byte 0x00004017 _0808A1B0: adds r3, r5, #0 adds r3, #0x58 ldrb r2, [r3] ldrb r1, [r5, #0xb] subs r1, #1 lsls r0, r1, #1 adds r0, r0, r1 adds r0, #1 cmp r2, r0 bne _0808A1DE ldrb r0, [r5, #0xe] cmp r0, #0 bne _0808A1DE movs r0, #1 strb r0, [r5, #0xe] ldrb r1, [r3] adds r1, #1 adds r0, r5, #0 bl sub_08004260 b _0808A1DE _0808A1DA: movs r0, #0 _0808A1DC: strb r0, [r5, #0xe] _0808A1DE: adds r0, r5, #0 bl sub_08004274 adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808A202 ldrb r0, [r5, #0xb] subs r0, #1 lsls r1, r0, #1 adds r1, r1, r0 adds r1, #1 adds r0, r5, #0 bl sub_08004260 _0808A202: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0808A208 sub_0808A208: @ 0x0808A208 push {lr} ldr r2, _0808A21C @ =gUnk_08120E84 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808A21C: .4byte gUnk_08120E84 thumb_func_start sub_0808A220 sub_0808A220: @ 0x0808A220 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r1, [r4, #0x1b] movs r6, #0x3f adds r0, r6, #0 ands r0, r1 movs r5, #0x80 orrs r0, r5 strb r0, [r4, #0x1b] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _0808A2E4 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r7, #0x32 ldrsh r0, [r4, r7] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r2, r4, #0 adds r2, #0x70 strh r1, [r2] ldr r0, _0808A2E8 @ =0x00004017 ldrh r1, [r2] movs r2, #1 bl sub_0800015E movs r7, #1 strb r7, [r4, #0xd] adds r0, r4, #0 movs r1, #0x15 movs r2, #0 movs r3, #0 bl sub_080A2988 adds r3, r0, #0 cmp r3, #0 beq _0808A2D4 ldrh r0, [r4, #0x32] adds r0, #0x38 strh r0, [r3, #0x32] ldrh r0, [r4, #0x12] strh r0, [r3, #0x12] adds r0, r4, #0 adds r0, #0x60 ldrh r1, [r0] adds r0, r3, #0 adds r0, #0x60 strh r1, [r0] ldrb r1, [r4, #0x1a] lsls r1, r1, #0x1c lsrs r1, r1, #0x1c ldrb r2, [r3, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3, #0x1a] adds r1, r3, #0 adds r1, #0x58 movs r0, #2 strb r0, [r1] movs r0, #0x80 strb r0, [r3, #0xe] strb r7, [r3, #0xa] ldrb r1, [r3, #0x19] adds r0, r6, #0 ands r0, r1 orrs r0, r5 strb r0, [r3, #0x19] adds r2, r3, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] ldrb r1, [r3, #0x1b] adds r0, r6, #0 ands r0, r1 orrs r0, r5 strb r0, [r3, #0x1b] _0808A2D4: adds r0, r4, #0 movs r1, #0x2c movs r2, #9 movs r3, #0 bl sub_080A2988 pop {r4, r5, r6, r7, pc} .align 2, 0 _0808A2E4: .4byte gUnk_03000BF0 _0808A2E8: .4byte 0x00004017 thumb_func_start nullsub_518 nullsub_518: @ 0x0808A2EC bx lr .align 2, 0 thumb_func_start sub_0808A2F0 sub_0808A2F0: @ 0x0808A2F0 push {r4, r5, r6, r7, lr} adds r5, r0, #0 ldrb r0, [r5, #0xd] cmp r0, #0 bne _0808A316 movs r0, #1 strb r0, [r5, #0xd] ldrh r0, [r5, #0x32] adds r0, #0x28 strh r0, [r5, #0x32] movs r2, #0x18 rsbs r2, r2, #0 adds r0, r5, #0 movs r1, #0 bl sub_0800029C adds r1, r5, #0 adds r1, #0x72 strh r0, [r1] _0808A316: ldr r3, _0808A38C @ =gUnk_03001160 ldrb r1, [r3, #0x1b] lsrs r1, r1, #6 lsls r1, r1, #6 ldrb r2, [r5, #0x1b] movs r7, #0x3f adds r0, r7, #0 ands r0, r2 orrs r0, r1 strb r0, [r5, #0x1b] ldrb r1, [r3, #0x19] lsrs r1, r1, #6 lsls r1, r1, #6 ldrb r2, [r5, #0x19] adds r0, r7, #0 ands r0, r2 orrs r0, r1 strb r0, [r5, #0x19] ldr r0, _0808A390 @ =gUnk_03003F80 ldrb r0, [r0, #0x12] cmp r0, #0x1e bne _0808A39C adds r2, r5, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] movs r2, #0x18 rsbs r2, r2, #0 adds r0, r5, #0 movs r1, #0 bl sub_0800029C ldr r3, _0808A394 @ =0x00004014 cmp r0, r3 beq _0808A3EC movs r0, #0x2e ldrsh r1, [r5, r0] ldr r2, _0808A398 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 ands r1, r7 movs r4, #0x32 ldrsh r0, [r5, r4] ldrh r2, [r2, #8] adds r2, #0x18 subs r0, r0, r2 asrs r0, r0, #4 ands r0, r7 lsls r0, r0, #6 orrs r1, r0 adds r0, r3, #0 movs r2, #1 bl sub_0800015E b _0808A3EC .align 2, 0 _0808A38C: .4byte gUnk_03001160 _0808A390: .4byte gUnk_03003F80 _0808A394: .4byte 0x00004014 _0808A398: .4byte gUnk_03000BF0 _0808A39C: adds r2, r5, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #5 orrs r0, r1 strb r0, [r2] adds r6, r5, #0 adds r6, #0x72 ldrh r4, [r6] movs r2, #0x18 rsbs r2, r2, #0 adds r0, r5, #0 movs r1, #0 bl sub_0800029C cmp r4, r0 beq _0808A3EC ldrh r0, [r6] movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _0808A3F0 @ =gUnk_03000BF0 ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r7 movs r4, #0x32 ldrsh r2, [r5, r4] ldrh r3, [r3, #8] adds r3, #0x18 subs r2, r2, r3 asrs r2, r2, #4 ands r2, r7 lsls r2, r2, #6 orrs r1, r2 movs r2, #1 bl sub_0800015E _0808A3EC: pop {r4, r5, r6, r7, pc} .align 2, 0 _0808A3F0: .4byte gUnk_03000BF0 thumb_func_start sub_0808A3F4 sub_0808A3F4: @ 0x0808A3F4 push {lr} ldr r2, _0808A408 @ =gUnk_08121060 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808A408: .4byte gUnk_08121060 thumb_func_start sub_0808A40C sub_0808A40C: @ 0x0808A40C push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0808A41E movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x28 strb r0, [r4, #0xe] _0808A41E: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0808A466 bl sub_08000E50 movs r1, #0x1f ands r0, r1 movs r1, #0x40 subs r1, r1, r0 strb r1, [r4, #0xe] movs r0, #0x2d movs r1, #1 movs r2, #0 bl sub_080A2960 adds r5, r0, #0 cmp r5, #0 beq _0808A466 adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA24 bl sub_08000E50 ldr r2, _0808A468 @ =gUnk_08121068 movs r1, #7 ands r1, r0 adds r1, r1, r2 movs r0, #0 ldrsb r0, [r1, r0] ldrh r1, [r5, #0x2e] adds r0, r0, r1 strh r0, [r5, #0x2e] _0808A466: pop {r4, r5, pc} .align 2, 0 _0808A468: .4byte gUnk_08121068 thumb_func_start sub_0808A46C sub_0808A46C: @ 0x0808A46C push {lr} ldr r2, _0808A480 @ =gUnk_08121070 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808A480: .4byte gUnk_08121070 thumb_func_start sub_0808A484 sub_0808A484: @ 0x0808A484 push {r4, lr} movs r3, #1 movs r1, #1 strb r1, [r0, #0xc] ldrb r2, [r0, #0x18] subs r1, #5 ands r1, r2 orrs r1, r3 strb r1, [r0, #0x18] movs r1, #0x40 strh r1, [r0, #0x24] movs r1, #6 strb r1, [r0, #0x15] ldrb r3, [r0, #0x19] movs r2, #0x3f adds r1, r2, #0 ands r1, r3 movs r4, #0x40 orrs r1, r4 strb r1, [r0, #0x19] movs r1, #0x29 adds r1, r1, r0 mov ip, r1 ldrb r3, [r1] movs r1, #8 rsbs r1, r1, #0 ands r1, r3 mov r3, ip strb r1, [r3] ldrb r1, [r0, #0x1b] ands r2, r1 orrs r2, r4 strb r2, [r0, #0x1b] movs r1, #0x28 bl sub_08004260 pop {r4, pc} .align 2, 0 thumb_func_start sub_0808A4D0 sub_0808A4D0: @ 0x0808A4D0 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808A4F2 adds r0, r4, #0 bl sub_0805E7BC _0808A4F2: pop {r4, pc} thumb_func_start sub_0808A4F4 sub_0808A4F4: @ 0x0808A4F4 push {lr} ldr r2, _0808A508 @ =gUnk_08121078 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808A508: .4byte gUnk_08121078 thumb_func_start sub_0808A50C sub_0808A50C: @ 0x0808A50C 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, #0xc] adds r1, #1 strb r1, [r0, #0xc] ldrb r2, [r0, #0x19] movs r1, #0x3f ands r1, r2 movs r2, #0x80 orrs r1, r2 strb r1, [r0, #0x19] adds r3, r0, #0 adds r3, #0x29 ldrb r2, [r3] movs r1, #8 rsbs r1, r1, #0 ands r1, r2 movs r2, #4 orrs r1, r2 movs r2, #0x39 rsbs r2, r2, #0 ands r1, r2 movs r2, #0x18 orrs r1, r2 strb r1, [r3] bl sub_0808A644 pop {pc} thumb_func_start sub_0808A550 sub_0808A550: @ 0x0808A550 push {r4, lr} adds r4, r0, #0 adds r0, #0x74 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080002B0 adds r1, r0, #0 ldr r0, _0808A58C @ =0x0000401F cmp r1, r0 bhi _0808A5CC subs r0, #3 cmp r1, r0 blo _0808A5CC adds r0, r1, #0 subs r0, #0x1c lsls r1, r0, #1 strb r1, [r4, #0x14] lsls r1, r0, #3 strb r1, [r4, #0x15] lsls r0, r0, #0x19 lsrs r0, r0, #0x18 cmp r0, #2 bne _0808A590 ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 b _0808A598 .align 2, 0 _0808A58C: .4byte 0x0000401F _0808A590: ldrb r1, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 _0808A598: strb r0, [r4, #0x18] adds r0, r4, #0 adds r0, #0x70 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x74 ldrh r1, [r1] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x14] lsrs r1, r1, #1 adds r1, #1 adds r0, r4, #0 bl sub_08004260 ldr r0, _0808A5C8 @ =0x0000010F bl sub_08004488 b _0808A5DE .align 2, 0 _0808A5C8: .4byte 0x0000010F _0808A5CC: adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0 beq _0808A5DE adds r0, r4, #0 movs r1, #0 bl sub_08004260 _0808A5DE: pop {r4, pc} thumb_func_start sub_0808A5E0 sub_0808A5E0: @ 0x0808A5E0 push {r4, r5, lr} adds r4, r0, #0 bl sub_0800445C ldr r2, _0808A618 @ =gUnk_08121088 adds r5, r4, #0 adds r5, #0x5a ldrb r1, [r5] movs r0, #0xf ands r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_08004274 ldrb r1, [r5] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808A616 movs r0, #0 strb r0, [r4, #0xc] _0808A616: pop {r4, r5, pc} .align 2, 0 _0808A618: .4byte gUnk_08121088 thumb_func_start sub_0808A61C sub_0808A61C: @ 0x0808A61C push {lr} adds r2, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0808A634 adds r0, r2, #0 bl sub_08004274 b _0808A640 _0808A634: adds r0, r2, #0 adds r0, #0x29 ldrb r1, [r0] movs r2, #7 orrs r1, r2 strb r1, [r0] _0808A640: pop {pc} .align 2, 0 thumb_func_start sub_0808A644 sub_0808A644: @ 0x0808A644 push {r4, r5, r6, lr} adds r4, r0, #0 movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _0808A6D0 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r5, r4, #0 adds r5, #0x74 strh r1, [r5] ldrh r0, [r5] adds r6, r4, #0 adds r6, #0x38 ldrb r1, [r6] bl sub_080001DA adds r1, r4, #0 adds r1, #0x70 strh r0, [r1] ldrh r0, [r5] ldrb r1, [r6] bl sub_080002E0 adds r1, r4, #0 adds r1, #0x72 strb r0, [r1] ldrh r0, [r5] ldrb r1, [r6] bl sub_080002C8 cmp r0, #0x19 beq _0808A69E cmp r0, #0xf0 bne _0808A6E2 _0808A69E: ldr r0, _0808A6D4 @ =0x00004015 ldrh r1, [r5] ldrb r2, [r6] bl sub_0800015E movs r0, #3 strb r0, [r4, #0xc] adds r5, r4, #0 adds r5, #0x86 ldrh r0, [r5] bl sub_0807CBE4 cmp r0, #0 bne _0808A6D8 ldrh r0, [r5] bl sub_0807CCC8 movs r0, #0xcd bl sub_080A3268 adds r0, r4, #0 movs r1, #5 bl sub_08004260 b _0808A6EC .align 2, 0 _0808A6D0: .4byte gUnk_03000BF0 _0808A6D4: .4byte 0x00004015 _0808A6D8: adds r0, r4, #0 movs r1, #6 bl sub_08004260 b _0808A6EC _0808A6E2: ldr r0, _0808A6F0 @ =0x0000401B ldrh r1, [r5] ldrb r2, [r6] bl sub_0800015E _0808A6EC: pop {r4, r5, r6, pc} .align 2, 0 _0808A6F0: .4byte 0x0000401B thumb_func_start sub_0808A6F4 sub_0808A6F4: @ 0x0808A6F4 push {lr} adds r2, r0, #0 adds r0, #0x3d movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #0 bne _0808A706 adds r0, #0x33 strh r1, [r0] _0808A706: ldr r0, _0808A718 @ =gUnk_08121178 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 pop {pc} .align 2, 0 _0808A718: .4byte gUnk_08121178 thumb_func_start sub_0808A71C sub_0808A71C: @ 0x0808A71C push {r4, r5, lr} adds r4, r0, #0 movs r5, #1 strb r5, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] adds r1, #3 movs r0, #0x8f strb r0, [r1] subs r1, #4 movs r0, #0xa strb r0, [r1] ldr r0, _0808A75C @ =gUnk_08121180 str r0, [r4, #0x48] ldrb r0, [r4, #0xa] cmp r0, #0 bne _0808A764 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _0808A760 strb r5, [r4, #0xa] b _0808A76E .align 2, 0 _0808A75C: .4byte gUnk_08121180 _0808A760: strb r0, [r4, #0xa] b _0808A76E _0808A764: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 _0808A76E: adds r0, r4, #0 bl sub_0808A7D8 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0808A778 sub_0808A778: @ 0x0808A778 push {r4, r5, lr} adds r5, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808A7D0 adds r1, r5, #0 adds r1, #0x70 ldrh r0, [r1] cmp r0, #0 bne _0808A7D0 movs r0, #1 strh r0, [r1] ldrb r0, [r5, #0xa] movs r1, #1 eors r0, r1 strb r0, [r5, #0xa] adds r1, r5, #0 adds r1, #0x3d movs r0, #0xe8 strb r0, [r1] adds r0, r5, #0 bl sub_0808A7D8 adds r4, r5, #0 adds r4, #0x86 ldrh r0, [r4] bl sub_0807CBE4 cmp r0, #0 beq _0808A7C2 ldrh r0, [r4] bl sub_0807CD48 b _0808A7C8 _0808A7C2: ldrh r0, [r4] bl sub_0807CCC8 _0808A7C8: ldr r1, _0808A7D4 @ =0x00000117 adds r0, r5, #0 bl sub_0800449C _0808A7D0: pop {r4, r5, pc} .align 2, 0 _0808A7D4: .4byte 0x00000117 thumb_func_start sub_0808A7D8 sub_0808A7D8: @ 0x0808A7D8 push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r0, [r5, #0xa] cmp r0, #0 beq _0808A818 movs r0, #0xde lsls r0, r0, #2 movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _0808A814 @ =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_0807B7D8 b _0808A844 .align 2, 0 _0808A814: .4byte gUnk_03000BF0 _0808A818: ldr r0, _0808A848 @ =0x00000377 movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _0808A84C @ =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_0807B7D8 _0808A844: pop {r4, r5, r6, pc} .align 2, 0 _0808A848: .4byte 0x00000377 _0808A84C: .4byte gUnk_03000BF0 thumb_func_start sub_0808A850 sub_0808A850: @ 0x0808A850 push {r4, lr} adds r4, r0, #0 ldr r1, _0808A86C @ =gUnk_08121188 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_08080CB4 pop {r4, pc} .align 2, 0 _0808A86C: .4byte gUnk_08121188 thumb_func_start sub_0808A870 sub_0808A870: @ 0x0808A870 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xa] cmp r0, #1 beq _0808A8BE cmp r0, #1 bgt _0808A884 cmp r0, #0 beq _0808A896 b _0808A8C4 _0808A884: cmp r0, #3 bgt _0808A8C4 adds r0, r5, #0 bl sub_0808A968 adds r0, r5, #0 bl sub_0808A8E0 b _0808A8C4 _0808A896: adds r0, r5, #0 adds r0, #0x38 ldrb r0, [r0] bl sub_0808094C adds r4, r0, #0 adds r0, r5, #0 bl sub_0806F798 lsls r0, r0, #1 adds r0, #4 adds r4, r4, r0 str r4, [r5, #0x6c] ldrh r1, [r4] adds r0, r5, #0 adds r0, #0x68 strh r1, [r0] movs r0, #1 strb r0, [r5, #0xc] b _0808A8C4 _0808A8BE: adds r0, r5, #0 bl sub_0808A968 _0808A8C4: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0808A8C8 sub_0808A8C8: @ 0x0808A8C8 push {lr} adds r2, r0, #0 adds r0, #0x68 ldr r1, [r2, #0x6c] ldrh r0, [r0] ldrh r1, [r1] cmp r0, r1 beq _0808A8DE adds r0, r2, #0 bl sub_0808A968 _0808A8DE: pop {pc} thumb_func_start sub_0808A8E0 sub_0808A8E0: @ 0x0808A8E0 push {r4, lr} adds r4, r0, #0 ldrb r2, [r4, #0xa] cmp r2, #0 beq _0808A8F0 cmp r2, #1 beq _0808A930 b _0808A954 _0808A8F0: ldr r0, [r4, #0x70] cmp r0, #0 beq _0808A930 ldr r3, [r4, #0x20] cmp r3, #0 bge _0808A926 movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #8 rsbs r0, r0, #0 cmp r1, r0 ble _0808A90C str r2, [r4, #0x70] b _0808A926 _0808A90C: ldr r0, _0808A918 @ =0xFFFFC000 cmp r3, r0 bge _0808A920 ldr r0, _0808A91C @ =0xFFFFFC00 b _0808A924 .align 2, 0 _0808A918: .4byte 0xFFFFC000 _0808A91C: .4byte 0xFFFFFC00 _0808A920: movs r0, #0x80 lsls r0, r0, #3 _0808A924: str r0, [r4, #0x70] _0808A926: ldr r1, [r4, #0x70] adds r0, r4, #0 bl sub_08003FC4 b _0808A962 _0808A930: ldr r2, _0808A964 @ =gUnk_08121194 ldrb r0, [r4, #0xf] adds r1, r0, #1 strb r1, [r4, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x1b movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_08017850 cmp r0, #0 beq _0808A962 _0808A954: ldrb r1, [r4, #0xb] movs r0, #0x5c movs r2, #0 bl sub_080A7C00 bl sub_0805E780 _0808A962: pop {r4, pc} .align 2, 0 _0808A964: .4byte gUnk_08121194 thumb_func_start sub_0808A968 sub_0808A968: @ 0x0808A968 push {r4, lr} adds r4, r0, #0 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #0x22 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #0xa0 lsls r0, r0, #0xa str r0, [r4, #0x20] 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] adds r2, #0x13 ldrb r1, [r2] movs r0, #0x10 orrs r0, r1 strb r0, [r2] ldr r0, _0808A9C0 @ =gUnk_08121C58 str r0, [r4, #0x48] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 movs r0, #0xa0 lsls r0, r0, #6 str r0, [r4, #0x70] pop {r4, pc} .align 2, 0 _0808A9C0: .4byte gUnk_08121C58 thumb_func_start sub_0808A9C4 sub_0808A9C4: @ 0x0808A9C4 push {lr} ldr r2, _0808A9D8 @ =gUnk_0812119C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808A9D8: .4byte gUnk_0812119C thumb_func_start sub_0808A9DC sub_0808A9DC: @ 0x0808A9DC movs r1, #1 strb r1, [r0, #0xc] ldrb r1, [r0, #0xa] strb r1, [r0, #0x1e] ldrb r1, [r0, #0x19] movs r2, #0xc0 orrs r1, r2 strb r1, [r0, #0x19] adds r0, #0x29 ldrb r1, [r0] movs r2, #7 orrs r1, r2 strb r1, [r0] bx lr thumb_func_start nullsub_519 nullsub_519: @ 0x0808A9F8 bx lr .align 2, 0 thumb_func_start sub_0808A9FC sub_0808A9FC: @ 0x0808A9FC push {r4, lr} adds r4, r0, #0 ldr r1, _0808AA18 @ =gUnk_081211A4 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r4, #0x41 movs r0, #0 strb r0, [r4] pop {r4, pc} .align 2, 0 _0808AA18: .4byte gUnk_081211A4 thumb_func_start sub_0808AA1C sub_0808AA1C: @ 0x0808AA1C push {r4, r5, r6, r7, lr} adds r5, r0, #0 movs r4, #0 movs r6, #1 strb r6, [r5, #0xc] bl sub_08052660 cmp r0, #0 bne _0808AA36 adds r0, r5, #0 movs r1, #0 bl sub_0801D2B4 _0808AA36: ldrb r0, [r5, #0xa] cmp r0, #1 beq _0808AACC cmp r0, #1 bgt _0808AA46 cmp r0, #0 beq _0808AA4C b _0808AB5E _0808AA46: cmp r0, #2 beq _0808AB20 b _0808AB5E _0808AA4C: 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] ldr r0, _0808AAC0 @ =gUnk_080FD224 str r0, [r5, #0x48] strb r6, [r5, #0x16] ldr r0, _0808AAC4 @ =0x00004022 movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _0808AAC8 @ =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 adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E adds r0, r5, #0 adds r0, #0x45 strb r6, [r0] adds r1, r5, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] adds r1, #3 movs r0, #0x6e strb r0, [r1] subs r1, #4 movs r0, #0xe strb r0, [r1] strb r6, [r5, #0x1c] ldrb r0, [r5, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r5, #0x10] adds r1, r5, #0 adds r1, #0x63 movs r0, #4 strb r0, [r1] b _0808AB5E .align 2, 0 _0808AAC0: .4byte gUnk_080FD224 _0808AAC4: .4byte 0x00004022 _0808AAC8: .4byte gUnk_03000BF0 _0808AACC: 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] ldrb r0, [r5, #0xb] cmp r0, #0 beq _0808AB10 ldr r0, _0808AB1C @ =gUnk_080FD224 str r0, [r5, #0x48] ldrb r0, [r5, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r5, #0x10] adds r0, r5, #0 adds r0, #0x45 strb r6, [r0] adds r1, r5, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] adds r1, #3 movs r0, #0x6e strb r0, [r1] subs r1, #4 movs r0, #4 strb r0, [r1] strb r6, [r5, #0x1c] movs r0, #3 strb r0, [r5, #0xc] _0808AB10: ldrb r1, [r5, #0x14] adds r1, #9 adds r0, r5, #0 bl sub_08004260 b _0808AB5E .align 2, 0 _0808AB1C: .4byte gUnk_080FD224 _0808AB20: adds r2, r5, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #5 orrs r0, r1 strb r0, [r2] ldrb r0, [r5, #0x19] movs r1, #3 orrs r0, r1 strb r0, [r5, #0x19] ldrb r1, [r5, #0x14] adds r0, r6, #0 ands r0, r1 cmp r0, #0 beq _0808AB52 movs r0, #0x80 lsls r0, r0, #2 str r0, [r5, #0x74] movs r0, #0x80 lsls r0, r0, #1 str r0, [r5, #0x78] b _0808AB5E _0808AB52: movs r0, #0x80 lsls r0, r0, #2 str r0, [r5, #0x78] movs r0, #0x80 lsls r0, r0, #1 str r0, [r5, #0x74] _0808AB5E: adds r0, r5, #0 bl sub_0808AB68 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0808AB68 sub_0808AB68: @ 0x0808AB68 push {lr} ldr r2, _0808AB7C @ =gUnk_081211B4 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808AB7C: .4byte gUnk_081211B4 thumb_func_start sub_0808AB80 sub_0808AB80: @ 0x0808AB80 push {lr} ldr r2, _0808AB94 @ =gUnk_081211C0 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808AB94: .4byte gUnk_081211C0 thumb_func_start sub_0808AB98 sub_0808AB98: @ 0x0808AB98 push {lr} adds r3, r0, #0 ldr r2, [r3, #0x50] ldrh r1, [r2, #0xc] ldr r0, _0808ABB0 @ =0x00000201 cmp r1, r0 bne _0808ABB4 movs r0, #0 str r0, [r2, #0x54] bl sub_0805E780 b _0808ABC2 .align 2, 0 _0808ABB0: .4byte 0x00000201 _0808ABB4: ldrb r0, [r2, #0xc] cmp r0, #2 bne _0808ABC2 adds r0, r3, #0 movs r1, #0 bl sub_0808B168 _0808ABC2: pop {pc} thumb_func_start sub_0808ABC4 sub_0808ABC4: @ 0x0808ABC4 push {r4, r5, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldrh r1, [r0, #0xc] ldr r0, _0808AC38 @ =0x00000201 cmp r1, r0 bne _0808ABD6 bl sub_0805E780 _0808ABD6: ldr r0, [r4, #0x54] ldr r1, [r4, #0x50] bl sub_0808B1F0 adds r2, r0, #0 cmp r2, #7 bhi _0808ABE6 movs r2, #0 _0808ABE6: ldrb r3, [r4, #0x14] lsls r1, r3, #2 ldr r0, _0808AC3C @ =gUnk_081211CC adds r5, r1, r0 cmp r2, #0x1f bhi _0808AC5A cmp r2, #0 beq _0808ABF8 subs r2, #6 _0808ABF8: ldrh r0, [r5] str r0, [r4, #0x70] ldr r1, [r4, #0x50] movs r0, #2 ldrsb r0, [r5, r0] ldrh r3, [r1, #0x2e] adds r0, r0, r3 strh r0, [r4, #0x2e] movs r0, #3 ldrsb r0, [r5, r0] ldrh r1, [r1, #0x32] adds r0, r0, r1 strh r0, [r4, #0x32] ldrb r1, [r4, #0x14] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0808AC40 lsls r1, r2, #4 movs r0, #0x80 lsls r0, r0, #2 subs r0, r0, r1 str r0, [r4, #0x74] lsls r0, r2, #3 movs r1, #0x90 lsls r1, r1, #1 adds r0, r0, r1 str r0, [r4, #0x78] movs r0, #0xf strb r0, [r4, #0x1e] b _0808ACDE .align 2, 0 _0808AC38: .4byte 0x00000201 _0808AC3C: .4byte gUnk_081211CC _0808AC40: lsls r1, r2, #4 movs r0, #0x80 lsls r0, r0, #2 subs r0, r0, r1 str r0, [r4, #0x78] lsls r0, r2, #3 movs r3, #0x90 lsls r3, r3, #1 adds r0, r0, r3 str r0, [r4, #0x74] movs r0, #0x14 strb r0, [r4, #0x1e] b _0808ACDE _0808AC5A: movs r0, #1 ands r3, r0 cmp r3, #0 beq _0808AC9E adds r1, r2, #0 subs r1, #0x20 lsls r1, r1, #2 adds r0, #0xff subs r0, r0, r1 str r0, [r4, #0x74] lsls r0, r2, #3 movs r1, #0xa0 lsls r1, r1, #1 adds r0, r0, r1 str r0, [r4, #0x78] movs r0, #0x10 strb r0, [r4, #0x1e] ldrb r1, [r4, #0x14] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0808AC92 ldr r0, [r4, #0x50] lsrs r1, r2, #1 ldrh r0, [r0, #0x2e] subs r0, r0, r1 strh r0, [r4, #0x2e] b _0808ACDE _0808AC92: ldr r1, [r4, #0x50] lsrs r0, r2, #1 ldrh r1, [r1, #0x2e] adds r0, r0, r1 strh r0, [r4, #0x2e] b _0808ACDE _0808AC9E: adds r1, r2, #0 subs r1, #0x20 lsls r1, r1, #2 movs r0, #0x80 lsls r0, r0, #1 subs r0, r0, r1 str r0, [r4, #0x78] lsls r0, r2, #3 movs r3, #0xa0 lsls r3, r3, #1 adds r0, r0, r3 str r0, [r4, #0x74] movs r0, #0x15 strb r0, [r4, #0x1e] ldrb r1, [r4, #0x14] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0808ACCE ldr r0, [r4, #0x50] lsrs r1, r2, #1 ldrh r0, [r0, #0x32] adds r1, r1, r0 b _0808ACD6 _0808ACCE: ldr r0, [r4, #0x50] lsrs r2, r2, #1 ldrh r1, [r0, #0x32] subs r1, r1, r2 _0808ACD6: movs r0, #3 ldrsb r0, [r5, r0] adds r0, r0, r1 strh r0, [r4, #0x32] _0808ACDE: ldr r1, [r4, #0x74] ldr r2, [r4, #0x78] ldr r3, [r4, #0x70] adds r0, r4, #0 bl sub_0805EC9C pop {r4, r5, pc} thumb_func_start sub_0808ACEC sub_0808ACEC: @ 0x0808ACEC push {r4, lr} adds r4, r0, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0 beq _0808AD00 adds r0, r4, #0 movs r1, #0 bl sub_08004260 _0808AD00: adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 subs r0, #4 cmp r0, #0x12 bhi _0808AD92 lsls r0, r0, #2 ldr r1, _0808AD1C @ =_0808AD20 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0808AD1C: .4byte _0808AD20 _0808AD20: @ jump table .4byte _0808AD6C @ case 0 .4byte _0808AD6C @ case 1 .4byte _0808AD6C @ case 2 .4byte _0808AD92 @ case 3 .4byte _0808AD6C @ case 4 .4byte _0808AD6C @ case 5 .4byte _0808AD6C @ case 6 .4byte _0808AD6C @ case 7 .4byte _0808AD6C @ case 8 .4byte _0808AD6C @ case 9 .4byte _0808AD92 @ case 10 .4byte _0808AD92 @ case 11 .4byte _0808AD6C @ case 12 .4byte _0808AD6C @ case 13 .4byte _0808AD6C @ case 14 .4byte _0808AD88 @ case 15 .4byte _0808AD6C @ case 16 .4byte _0808AD92 @ case 17 .4byte _0808AD6C @ case 18 _0808AD6C: ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] bl sub_0806F5A4 strb r0, [r4, #0x14] movs r0, #2 strb r0, [r4, #0xd] strb r0, [r4, #0xe] b _0808AD9E _0808AD88: movs r1, #0 movs r0, #3 strb r0, [r4, #0xc] strb r1, [r4, #0xd] b _0808AD9E _0808AD92: movs r0, #0 strb r0, [r4, #0xf] strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_08078930 _0808AD9E: pop {r4, pc} thumb_func_start sub_0808ADA0 sub_0808ADA0: @ 0x0808ADA0 push {r4, lr} adds r4, r0, #0 ldr r1, [r4, #0x54] bl sub_0808B1F0 cmp r0, #7 bls _0808ADB4 ldr r1, [r4, #0x54] cmp r1, #0 bne _0808ADE2 _0808ADB4: ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] movs r2, #2 movs r0, #2 strb r0, [r4, #0xe] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldrb r0, [r4, #0x14] eors r0, r2 strb r0, [r4, #0x14] 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] b _0808ADEE _0808ADE2: movs r0, #0x80 lsls r0, r0, #3 strh r0, [r1, #0x24] ldr r0, [r4, #0x54] bl sub_0806F69C _0808ADEE: pop {r4, pc} thumb_func_start sub_0808ADF0 sub_0808ADF0: @ 0x0808ADF0 push {r4, lr} adds r4, r0, #0 ldrb r2, [r4, #0x14] adds r1, r2, #0 adds r1, #0xd adds r0, #0x58 ldrb r0, [r0] cmp r1, r0 bne _0808AE26 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808AE1E movs r0, #0 strb r0, [r4, #0xd] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] b _0808AE80 _0808AE1E: adds r0, r4, #0 bl sub_08004274 b _0808AE80 _0808AE26: adds r1, r2, #1 cmp r1, r0 beq _0808AE54 adds r0, r4, #0 bl sub_08004260 ldrb r0, [r4, #0x14] cmp r0, #3 bne _0808AE42 ldrb r1, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 b _0808AE48 _0808AE42: ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 _0808AE48: strb r0, [r4, #0x18] movs r0, #0x97 lsls r0, r0, #1 bl sub_080A3268 b _0808AE80 _0808AE54: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808AE80 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _0808AE80 ldrb r1, [r4, #0x14] adds r1, #0xd adds r0, r4, #0 bl sub_08004260 _0808AE80: pop {r4, pc} .align 2, 0 thumb_func_start sub_0808AE84 sub_0808AE84: @ 0x0808AE84 push {lr} adds r2, r0, #0 ldr r0, _0808AEA8 @ =gUnk_03003F80 ldrb r0, [r0, #5] cmp r0, #0 bne _0808AE94 movs r0, #6 strb r0, [r2, #0xd] _0808AE94: ldr r0, _0808AEAC @ =gUnk_081211DC ldrb r1, [r2, #0xd] subs r1, #5 lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 pop {pc} .align 2, 0 _0808AEA8: .4byte gUnk_03003F80 _0808AEAC: .4byte gUnk_081211DC thumb_func_start sub_0808AEB0 sub_0808AEB0: @ 0x0808AEB0 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _0808AF68 ldr r1, [r4, #0x54] adds r0, r4, #0 bl sub_0808B1F0 adds r6, r0, #0 ldr r5, _0808AF10 @ =gUnk_03003F80 adds r2, r5, #0 adds r2, #0x90 ldr r1, _0808AF14 @ =gUnk_081211E4 ldrb r0, [r4, #0x14] lsls r0, r0, #1 adds r0, r0, r1 ldrh r1, [r2] ldrh r0, [r0] ands r0, r1 cmp r0, #0 beq _0808AF20 adds r0, r4, #0 bl sub_08004274 cmp r6, #0x3f bhi _0808AF08 ldr r0, _0808AF18 @ =gUnk_03001160 ldrb r2, [r4, #0x15] movs r1, #0x40 bl sub_080044AE ldr r0, [r4, #0x7c] subs r0, #1 str r0, [r4, #0x7c] movs r1, #1 rsbs r1, r1, #0 cmp r0, r1 bne _0808AF08 movs r0, #4 str r0, [r4, #0x7c] ldr r0, _0808AF1C @ =0x0000012F bl sub_080A3268 _0808AF08: movs r0, #1 strb r0, [r4, #0xf] b _0808AFD0 .align 2, 0 _0808AF10: .4byte gUnk_03003F80 _0808AF14: .4byte gUnk_081211E4 _0808AF18: .4byte gUnk_03001160 _0808AF1C: .4byte 0x0000012F _0808AF20: ldrb r0, [r4, #0xf] cmp r0, #0 beq _0808AFD0 ldr r2, _0808AF64 @ =gUnk_03001160 ldrb r0, [r2, #0xc] cmp r0, #1 bne _0808AFD0 adds r0, r5, #0 adds r0, #0x26 ldrb r0, [r0] cmp r0, #0 bne _0808AFD0 movs r0, #0x1b strb r0, [r5, #0xc] adds r0, r5, #0 adds r0, #0x38 strb r6, [r0] ldrb r0, [r4, #0x15] movs r1, #0x10 eors r0, r1 adds r1, r5, #0 adds r1, #0x39 strb r0, [r1] adds r0, r4, #0 adds r1, r2, #0 bl sub_0808B1F0 adds r1, r5, #0 adds r1, #0x3a strb r0, [r1] ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] b _0808AFD0 .align 2, 0 _0808AF64: .4byte gUnk_03001160 _0808AF68: movs r6, #1 strb r6, [r4, #0xe] str r6, [r4, #0x7c] ldr r5, _0808AFC8 @ =gUnk_03001160 ldrb r0, [r5, #0x14] lsrs r0, r0, #1 movs r1, #2 eors r0, r1 strb r0, [r4, #0x14] lsls r0, r0, #3 strb r0, [r4, #0x15] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrb r0, [r5, #0x18] movs r1, #0x40 ands r1, r0 ldrb r2, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] ldrb r1, [r4, #0x14] adds r1, #5 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 movs r1, #0 bl sub_0808B21C cmp r0, #0 beq _0808AFB6 ldr r0, [r4, #0x54] movs r1, #0 bl sub_0808B168 _0808AFB6: ldrb r1, [r4, #0x14] adds r0, r6, #0 ands r0, r1 cmp r0, #0 beq _0808AFCC ldrh r0, [r4, #0x32] strh r0, [r5, #0x32] b _0808AFD0 .align 2, 0 _0808AFC8: .4byte gUnk_03001160 _0808AFCC: ldrh r0, [r4, #0x2e] strh r0, [r5, #0x2e] _0808AFD0: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0808AFD4 sub_0808AFD4: @ 0x0808AFD4 push {lr} movs r1, #1 strb r1, [r0, #0xc] strb r1, [r0, #0xd] ldr r2, [r0, #0x54] ldrb r0, [r0, #0x15] movs r1, #0x10 eors r0, r1 strb r0, [r2, #0x15] movs r0, #0x98 lsls r0, r0, #1 bl sub_080A3268 pop {pc} thumb_func_start sub_0808AFF0 sub_0808AFF0: @ 0x0808AFF0 push {r4, r5, lr} adds r4, r0, #0 ldr r1, _0808B054 @ =gUnk_081211EC ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldr r0, _0808B058 @ =gUnk_03003F80 ldrb r1, [r0, #0x1c] movs r0, #0xf ands r0, r1 cmp r0, #1 bne _0808B01E adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0x13 beq _0808B050 _0808B01E: ldrb r5, [r4, #0xa] cmp r5, #1 bne _0808B050 ldr r0, [r4, #0x50] strb r5, [r0, #0xc] ldr r0, [r4, #0x50] strb r5, [r0, #0xd] ldr r2, [r4, #0x50] ldrb r0, [r2, #0x15] movs r1, #0x10 eors r0, r1 strb r0, [r4, #0x15] ldrb r3, [r2, #0x10] movs r1, #0x7f adds r0, r1, #0 ands r0, r3 strb r0, [r2, #0x10] ldrb r0, [r4, #0x10] ands r1, r0 strb r1, [r4, #0x10] strb r5, [r4, #0xc] movs r0, #0x98 lsls r0, r0, #1 bl sub_080A3268 _0808B050: pop {r4, r5, pc} .align 2, 0 _0808B054: .4byte gUnk_081211EC _0808B058: .4byte gUnk_03003F80 thumb_func_start sub_0808B05C sub_0808B05C: @ 0x0808B05C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 bne _0808B0AE ldr r2, _0808B0B8 @ =gUnk_03001160 ldrb r0, [r2, #0x14] lsrs r0, r0, #1 movs r1, #2 eors r0, r1 strb r0, [r4, #0x14] lsls r0, r0, #3 strb r0, [r4, #0x15] ldrb r0, [r2, #0x18] movs r1, #0x40 ands r1, r0 ldrb r2, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x14] adds r1, #5 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 movs r1, #1 bl sub_0808B21C cmp r0, #0 beq _0808B0AE ldr r0, [r4, #0x54] movs r1, #1 bl sub_0808B168 _0808B0AE: ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] pop {r4, pc} .align 2, 0 _0808B0B8: .4byte gUnk_03001160 thumb_func_start sub_0808B0BC sub_0808B0BC: @ 0x0808B0BC push {r4, r5, r6, r7, lr} sub sp, #0x88 adds r5, r0, #0 ldr r1, [r5, #0x50] bl sub_0808B1F0 adds r7, r0, #0 ldrb r0, [r5, #0xa] cmp r0, #0 beq _0808B0D6 cmp r0, #1 beq _0808B0DE b _0808B162 _0808B0D6: adds r0, r5, #0 bl sub_08004274 b _0808B162 _0808B0DE: ldr r6, _0808B148 @ =gUnk_03001160 ldrb r0, [r6, #0x14] movs r1, #0xe ands r1, r0 ldr r0, _0808B14C @ =gUnk_08126EE4 adds r1, r1, r0 mov r2, sp movs r0, #0 ldrsb r0, [r1, r0] ldrh r3, [r6, #0x2e] adds r0, r0, r3 strh r0, [r2, #0x2e] movs r0, #1 ldrsb r0, [r1, r0] ldrh r1, [r6, #0x32] adds r0, r0, r1 strh r0, [r2, #0x32] mov r0, sp adds r1, r5, #0 movs r2, #7 movs r3, #7 bl sub_0800419C cmp r0, #0 beq _0808B154 ldrb r0, [r6, #0xc] cmp r0, #1 bne _0808B162 ldr r4, _0808B150 @ =gUnk_03003F80 adds r0, r4, #0 adds r0, #0x26 ldrb r0, [r0] cmp r0, #0 bne _0808B162 movs r0, #0x1b strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x38 strb r7, [r0] ldrb r0, [r5, #0x15] movs r1, #0x10 eors r0, r1 adds r1, r4, #0 adds r1, #0x39 strb r0, [r1] ldr r0, [r5, #0x50] adds r1, r6, #0 bl sub_0808B1F0 adds r1, r4, #0 adds r1, #0x3a strb r0, [r1] b _0808B162 .align 2, 0 _0808B148: .4byte gUnk_03001160 _0808B14C: .4byte gUnk_08126EE4 _0808B150: .4byte gUnk_03003F80 _0808B154: movs r0, #0x40 strh r0, [r5, #0x24] cmp r7, #0x3f bhi _0808B162 adds r0, r5, #0 bl sub_0806F69C _0808B162: add sp, #0x88 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0808B168 sub_0808B168: @ 0x0808B168 push {r4, r5, lr} adds r3, r0, #0 cmp r1, #0 beq _0808B188 ldrb r0, [r3, #0x14] movs r1, #2 eors r1, r0 lsls r1, r1, #1 ldr r0, _0808B184 @ =gUnk_081211F4 adds r2, r1, r0 adds r1, r2, #1 ldr r4, [r3, #0x50] adds r5, r4, #0 b _0808B1CE .align 2, 0 _0808B184: .4byte gUnk_081211F4 _0808B188: ldrb r1, [r3, #0x14] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0808B1B8 ldr r5, _0808B1AC @ =gUnk_03001160 ldr r4, [r3, #0x50] ldrb r1, [r3, #0x14] lsls r2, r1, #1 ldr r0, _0808B1B0 @ =gUnk_081211FC adds r2, r2, r0 movs r0, #2 eors r1, r0 lsls r1, r1, #1 ldr r0, _0808B1B4 @ =gUnk_081211F5 adds r1, r1, r0 b _0808B1CE .align 2, 0 _0808B1AC: .4byte gUnk_03001160 _0808B1B0: .4byte gUnk_081211FC _0808B1B4: .4byte gUnk_081211F5 _0808B1B8: ldr r5, [r3, #0x50] ldr r4, _0808B1E4 @ =gUnk_03001160 movs r0, #2 eors r0, r1 lsls r0, r0, #1 ldr r1, _0808B1E8 @ =gUnk_081211F4 adds r2, r0, r1 ldrb r0, [r3, #0x14] lsls r0, r0, #1 ldr r1, _0808B1EC @ =gUnk_081211FD adds r1, r0, r1 _0808B1CE: movs r0, #0 ldrsb r0, [r2, r0] ldrh r5, [r5, #0x2e] adds r0, r0, r5 strh r0, [r3, #0x2e] movs r0, #0 ldrsb r0, [r1, r0] ldrh r4, [r4, #0x32] adds r0, r0, r4 strh r0, [r3, #0x32] pop {r4, r5, pc} .align 2, 0 _0808B1E4: .4byte gUnk_03001160 _0808B1E8: .4byte gUnk_081211F4 _0808B1EC: .4byte gUnk_081211FD thumb_func_start sub_0808B1F0 sub_0808B1F0: @ 0x0808B1F0 push {lr} adds r2, r0, #0 adds r3, r1, #0 ldrb r1, [r2, #0x14] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0808B20A movs r0, #0x2e ldrsh r1, [r2, r0] movs r2, #0x2e ldrsh r0, [r3, r2] b _0808B212 _0808B20A: movs r0, #0x32 ldrsh r1, [r2, r0] movs r2, #0x32 ldrsh r0, [r3, r2] _0808B212: subs r0, r1, r0 cmp r0, #0 bge _0808B21A rsbs r0, r0, #0 _0808B21A: pop {pc} thumb_func_start sub_0808B21C sub_0808B21C: @ 0x0808B21C push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #8 rsbs r1, r1, #0 ands r1, r0 movs r0, #6 orrs r1, r0 strb r1, [r2] adds r0, r4, #0 movs r1, #0x32 movs r2, #1 movs r3, #0 bl sub_080A2988 adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 beq _0808B26E ldrb r0, [r4, #0x14] strb r0, [r1, #0x14] ldr r1, [r4, #0x54] ldrb r0, [r4, #0x15] strb r0, [r1, #0x15] ldr r3, [r4, #0x54] ldrb r0, [r4, #0x18] movs r1, #0x40 ands r1, r0 ldrb r2, [r3, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3, #0x18] ldr r0, [r4, #0x54] str r4, [r0, #0x50] ldr r0, [r4, #0x54] strb r5, [r0, #0xb] _0808B26E: adds r0, r4, #0 movs r1, #0x32 movs r2, #2 movs r3, #0 bl sub_080A2988 adds r1, r0, #0 str r1, [r4, #0x50] cmp r1, #0 bne _0808B286 movs r0, #0 b _0808B292 _0808B286: ldrb r0, [r4, #0x14] strb r0, [r1, #0x14] ldr r1, [r4, #0x50] ldr r0, [r4, #0x54] str r0, [r1, #0x54] movs r0, #1 _0808B292: pop {r4, r5, pc} thumb_func_start sub_0808B294 sub_0808B294: @ 0x0808B294 push {lr} ldr r2, _0808B2A8 @ =gUnk_08121300 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808B2A8: .4byte gUnk_08121300 thumb_func_start sub_0808B2AC sub_0808B2AC: @ 0x0808B2AC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xb] cmp r0, #0 bne _0808B2C4 adds r0, r4, #0 bl sub_0808B41C adds r0, r4, #0 bl sub_0808B3AC b _0808B2CA _0808B2C4: adds r0, r4, #0 bl sub_0808B42C _0808B2CA: pop {r4, pc} thumb_func_start sub_0808B2CC sub_0808B2CC: @ 0x0808B2CC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xb] cmp r0, #0 bne _0808B2E6 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _0808B31C b _0808B2F4 _0808B2E6: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 bne _0808B31C _0808B2F4: movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #3 bl sub_08004260 adds r0, r4, #0 adds r0, #0x72 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x70 ldrh r1, [r1] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E ldr r0, _0808B320 @ =0x000001A5 bl sub_08004488 _0808B31C: pop {r4, pc} .align 2, 0 _0808B320: .4byte 0x000001A5 thumb_func_start sub_0808B324 sub_0808B324: @ 0x0808B324 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808B340 adds r0, r4, #0 bl sub_0808B42C _0808B340: pop {r4, pc} .align 2, 0 thumb_func_start sub_0808B344 sub_0808B344: @ 0x0808B344 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xb] cmp r0, #0 bne _0808B35E adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 bne _0808B384 b _0808B36C _0808B35E: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _0808B384 _0808B36C: movs r0, #4 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_08004260 adds r0, r4, #0 bl sub_0808B3AC ldr r0, _0808B388 @ =0x000001A5 bl sub_08004488 _0808B384: pop {r4, pc} .align 2, 0 _0808B388: .4byte 0x000001A5 thumb_func_start sub_0808B38C sub_0808B38C: @ 0x0808B38C push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808B3A8 adds r0, r4, #0 bl sub_0808B41C _0808B3A8: pop {r4, pc} .align 2, 0 thumb_func_start sub_0808B3AC sub_0808B3AC: @ 0x0808B3AC push {r4, r5, r6, lr} adds r6, r0, #0 adds r2, r6, #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, #0x2e ldrsh r1, [r6, r0] ldr r2, _0808B414 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r4, #0x32 ldrsh r0, [r6, r4] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r4, r6, #0 adds r4, #0x70 strh r1, [r4] ldrh r0, [r4] adds r5, r6, #0 adds r5, #0x38 ldrb r1, [r5] bl sub_080001DA adds r1, r6, #0 adds r1, #0x72 strh r0, [r1] ldrh r0, [r4] ldrb r1, [r5] bl sub_080002E0 adds r1, r6, #0 adds r1, #0x74 strb r0, [r1] ldr r0, _0808B418 @ =0x0000400B ldrh r1, [r4] ldrb r2, [r5] bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 _0808B414: .4byte gUnk_03000BF0 _0808B418: .4byte 0x0000400B thumb_func_start sub_0808B41C sub_0808B41C: @ 0x0808B41C push {lr} movs r1, #1 strb r1, [r0, #0xc] movs r1, #0 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_0808B42C sub_0808B42C: @ 0x0808B42C push {lr} movs r1, #3 strb r1, [r0, #0xc] adds r3, r0, #0 adds r3, #0x29 ldrb r1, [r3] movs r2, #7 orrs r1, r2 strb r1, [r3] movs r1, #1 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_0808B448 sub_0808B448: @ 0x0808B448 push {lr} adds r2, r0, #0 adds r0, #0x70 ldrb r0, [r0] cmp r0, #0 bne _0808B46C ldr r0, _0808B468 @ =gUnk_08121368 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 b _0808B472 .align 2, 0 _0808B468: .4byte gUnk_08121368 _0808B46C: adds r0, r2, #0 bl sub_0808B73C _0808B472: pop {pc} thumb_func_start sub_0808B474 sub_0808B474: @ 0x0808B474 push {r4, lr} adds r4, r0, #0 movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0xf] ldr r1, _0808B4D8 @ =gUnk_08121380 ldrb r0, [r4, #0xa] adds r0, r0, r1 ldrb r1, [r0] movs r0, #0xf ands r1, r0 ldrb r3, [r4, #0x1a] movs r2, #0x10 rsbs r2, r2, #0 adds r0, r2, #0 ands r0, r3 orrs r0, r1 strb r0, [r4, #0x1a] adds r3, r4, #0 adds r3, #0x29 ldrb r1, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r3] ldr r0, _0808B4DC @ =gUnk_080FD168 str r0, [r4, #0x48] ldrb r0, [r4, #0x11] ands r2, r0 movs r0, #3 orrs r2, r0 strb r2, [r4, #0x11] adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _0808B4E0 adds r0, r4, #0 bl sub_0808B830 b _0808B4F8 .align 2, 0 _0808B4D8: .4byte gUnk_08121380 _0808B4DC: .4byte gUnk_080FD168 _0808B4E0: bl sub_08052660 cmp r0, #0 beq _0808B4F8 ldrb r0, [r4, #0xa] bl sub_0807CAEC cmp r0, #0 beq _0808B4F8 adds r0, r4, #0 bl sub_0808B830 _0808B4F8: adds r0, r4, #0 bl sub_0808B7C8 cmp r0, #0 beq _0808B528 movs r2, #4 strb r2, [r4, #0xc] movs r0, #0x60 strb r0, [r4, #0xf] ldr r1, _0808B52C @ =gUnk_03001160 ldrh r0, [r4, #0x2e] strh r0, [r1, #0x2e] ldrh r0, [r4, #0x32] strh r0, [r1, #0x32] strb r2, [r1, #0x14] movs r0, #0x89 lsls r0, r0, #1 bl sub_08004488 ldrb r1, [r4, #0xf] adds r1, #0x10 adds r0, r4, #0 bl sub_0805E4E0 _0808B528: pop {r4, pc} .align 2, 0 _0808B52C: .4byte gUnk_03001160 thumb_func_start sub_0808B530 sub_0808B530: @ 0x0808B530 push {r4, lr} adds r4, r0, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _0808B562 adds r0, r4, #0 bl sub_0808B830 bl sub_08052660 cmp r0, #0 beq _0808B554 ldrb r0, [r4, #0xa] bl sub_0807CAC8 _0808B554: movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xf] adds r0, #0xd6 bl sub_08004488 _0808B562: pop {r4, pc} thumb_func_start sub_0808B564 sub_0808B564: @ 0x0808B564 push {lr} adds r3, r0, #0 ldrb r0, [r3, #0xf] subs r1, r0, #1 strb r1, [r3, #0xf] lsls r0, r1, #0x18 cmp r0, #0 bne _0808B57A movs r0, #3 strb r0, [r3, #0xc] b _0808B58E _0808B57A: lsls r0, r1, #0x18 lsrs r0, r0, #0x19 movs r1, #1 bics r1, r0 ldrb r2, [r3, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3, #0x18] _0808B58E: pop {pc} thumb_func_start sub_0808B590 sub_0808B590: @ 0x0808B590 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0808B7C8 cmp r0, #0 beq _0808B5E4 ldrb r0, [r4, #0xe] cmp r0, #0 bne _0808B5E6 movs r0, #5 strb r0, [r4, #0xc] movs r0, #0x60 strb r0, [r4, #0xf] bl sub_08077B20 ldr r1, _0808B5DC @ =gUnk_03001160 ldrh r0, [r4, #0x2e] strh r0, [r1, #0x2e] ldrh r0, [r4, #0x32] strh r0, [r1, #0x32] movs r0, #4 strb r0, [r1, #0x14] ldrb r2, [r1, #0x10] movs r0, #0x7f ands r0, r2 strb r0, [r1, #0x10] ldrb r1, [r4, #0xf] adds r1, #0x10 adds r0, r4, #0 bl sub_0805E4E0 ldr r0, _0808B5E0 @ =0x00000113 bl sub_080A3268 b _0808B5E6 .align 2, 0 _0808B5DC: .4byte gUnk_03001160 _0808B5E0: .4byte 0x00000113 _0808B5E4: strb r0, [r4, #0xe] _0808B5E6: pop {r4, pc} thumb_func_start sub_0808B5E8 sub_0808B5E8: @ 0x0808B5E8 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] subs r1, r0, #1 strb r1, [r4, #0xf] lsls r0, r1, #0x18 cmp r0, #0 bne _0808B610 movs r0, #3 strb r0, [r4, #0xc] movs r0, #1 strb r0, [r4, #0xe] ldr r1, _0808B60C @ =gUnk_03001160 movs r0, #4 strb r0, [r1, #0x14] movs r0, #0x10 strb r0, [r1, #0x15] b _0808B67E .align 2, 0 _0808B60C: .4byte gUnk_03001160 _0808B610: movs r5, #0 movs r0, #0x60 ands r0, r1 cmp r0, #0x20 beq _0808B644 cmp r0, #0x20 bgt _0808B624 cmp r0, #0 beq _0808B64E b _0808B66E _0808B624: cmp r0, #0x40 bne _0808B66E lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x58 bne _0808B638 movs r0, #0x8a lsls r0, r0, #1 bl sub_080A3268 _0808B638: ldrb r1, [r4, #0xf] movs r0, #1 ands r0, r1 cmp r0, #0 bne _0808B66E b _0808B672 _0808B644: movs r0, #3 ands r1, r0 cmp r1, #0 bne _0808B66E b _0808B672 _0808B64E: movs r0, #7 ands r0, r1 cmp r0, #0 bne _0808B66E ldr r0, _0808B668 @ =gUnk_03001160 ldrb r0, [r0, #0x14] cmp r0, #4 bne _0808B66C lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x18 bls _0808B66E b _0808B672 .align 2, 0 _0808B668: .4byte gUnk_03001160 _0808B66C: movs r5, #1 _0808B66E: cmp r5, #0 beq _0808B67E _0808B672: ldr r0, _0808B680 @ =gUnk_03001160 ldrb r1, [r0, #0x14] adds r1, #2 movs r2, #6 ands r1, r2 strb r1, [r0, #0x14] _0808B67E: pop {r4, r5, pc} .align 2, 0 _0808B680: .4byte gUnk_03001160 thumb_func_start sub_0808B684 sub_0808B684: @ 0x0808B684 push {lr} mov ip, r0 ldrb r0, [r0, #0xf] subs r1, r0, #1 mov r0, ip strb r1, [r0, #0xf] lsls r0, r1, #0x18 lsrs r2, r0, #0x18 cmp r2, #0 bne _0808B6E8 ldr r3, _0808B6E4 @ =gUnk_030010A0 movs r0, #1 strb r0, [r3, #8] strb r2, [r3, #9] mov r0, ip adds r0, #0x7c ldrb r0, [r0] strb r0, [r3, #0xc] mov r0, ip adds r0, #0x7d ldrb r0, [r0] strb r0, [r3, #0xd] mov r0, ip adds r0, #0x84 ldrh r1, [r0] movs r0, #0x3f ands r0, r1 lsls r0, r0, #4 adds r0, #8 movs r2, #0 strh r0, [r3, #0x10] movs r0, #0xfc lsls r0, r0, #4 ands r0, r1 lsrs r0, r0, #2 adds r0, #8 strh r0, [r3, #0x12] strb r2, [r3, #0x14] movs r0, #4 strb r0, [r3, #0xe] strb r2, [r3, #0xf] mov r1, ip ldrb r0, [r1, #0xa] cmp r0, #2 bne _0808B736 strb r0, [r3, #9] b _0808B736 .align 2, 0 _0808B6E4: .4byte gUnk_030010A0 _0808B6E8: movs r0, #0x60 ands r0, r1 cmp r0, #0x20 beq _0808B702 cmp r0, #0x20 bgt _0808B6FA cmp r0, #0 beq _0808B706 b _0808B724 _0808B6FA: cmp r0, #0x40 bne _0808B724 movs r0, #7 b _0808B710 _0808B702: movs r0, #3 b _0808B710 _0808B706: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x10 bls _0808B718 movs r0, #1 _0808B710: ands r1, r0 cmp r1, #0 bne _0808B724 b _0808B72A _0808B718: ldr r2, _0808B738 @ =gUnk_03001160 ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2, #0x18] _0808B724: movs r0, #0 cmp r0, #0 beq _0808B736 _0808B72A: ldr r0, _0808B738 @ =gUnk_03001160 ldrb r1, [r0, #0x14] adds r1, #2 movs r2, #6 ands r1, r2 strb r1, [r0, #0x14] _0808B736: pop {pc} .align 2, 0 _0808B738: .4byte gUnk_03001160 thumb_func_start sub_0808B73C sub_0808B73C: @ 0x0808B73C push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0808B766 movs r0, #1 strb r0, [r4, #0xc] ldr r0, [r4, #0x50] ldrb r1, [r0, #0x1a] lsls r1, r1, #0x1c lsrs r1, r1, #0x1c ldrb r2, [r4, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x1a] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _0808B766: ldr r5, _0808B78C @ =gUnk_03001160 movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #0 movs r3, #0x28 bl sub_0806FCB8 cmp r0, #0 beq _0808B790 ldrb r0, [r4, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 movs r0, #1 orrs r1, r0 strb r1, [r4, #0x18] b _0808B7C0 .align 2, 0 _0808B78C: .4byte gUnk_03001160 _0808B790: movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #0 movs r3, #0x2e bl sub_0806FCB8 cmp r0, #0 beq _0808B7B6 ldrb r2, [r4, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #1 eors r1, r0 subs r0, #5 ands r0, r2 orrs r0, r1 b _0808B7BE _0808B7B6: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 _0808B7BE: strb r0, [r4, #0x18] _0808B7C0: adds r0, r4, #0 bl sub_08004274 pop {r4, r5, pc} thumb_func_start sub_0808B7C8 sub_0808B7C8: @ 0x0808B7C8 push {r4, r5, lr} adds r5, r0, #0 ldr r2, _0808B824 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _0808B82C adds r0, r2, #0 adds r0, #0xa8 ldrb r0, [r0] cmp r0, #0x12 beq _0808B82C ldr r4, _0808B828 @ =gUnk_03001160 adds r0, r4, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 beq _0808B82C bl sub_08079F8C cmp r0, #0 beq _0808B82C adds r0, r5, #0 adds r1, r4, #0 movs r2, #5 movs r3, #5 bl sub_080041A0 cmp r0, #0 beq _0808B82C movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 bne _0808B82C ldrb r0, [r5, #0xe] cmp r0, #0 bne _0808B81E ldrb r0, [r4, #0xc] cmp r0, #0x1b bne _0808B81E bl sub_080791D0 _0808B81E: movs r0, #1 b _0808B82E .align 2, 0 _0808B824: .4byte gUnk_03003F80 _0808B828: .4byte gUnk_03001160 _0808B82C: movs r0, #0 _0808B82E: pop {r4, r5, pc} thumb_func_start sub_0808B830 sub_0808B830: @ 0x0808B830 push {r4, lr} adds r4, r0, #0 movs r1, #0 movs r0, #3 strb r0, [r4, #0xc] strb r1, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #7 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #0x34 movs r1, #0 movs r2, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _0808B86A adds r1, r2, #0 adds r1, #0x70 movs r0, #1 strb r0, [r1] str r4, [r2, #0x50] adds r0, r4, #0 adds r1, r2, #0 bl sub_0806FA24 _0808B86A: pop {r4, pc} thumb_func_start sub_0808B86C sub_0808B86C: @ 0x0808B86C push {lr} ldr r2, _0808B880 @ =gUnk_081213C4 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808B880: .4byte gUnk_081213C4 thumb_func_start sub_0808B884 sub_0808B884: @ 0x0808B884 push {lr} ldr r2, _0808B898 @ =gUnk_081213D0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808B898: .4byte gUnk_081213D0 thumb_func_start sub_0808B89C sub_0808B89C: @ 0x0808B89C push {r4, lr} adds r4, r0, #0 movs r0, #2 strb r0, [r4, #0xc] strb r0, [r4, #0xb] adds r1, r4, #0 adds r1, #0x38 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2] movs r0, #0xb4 strb r0, [r4, #0xe] ldrb r1, [r4, #0xb] adds r0, r4, #0 bl sub_08004260 pop {r4, pc} .align 2, 0 thumb_func_start sub_0808B8D4 sub_0808B8D4: @ 0x0808B8D4 push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0808B904 movs r0, #0xb4 strb r0, [r4, #0xe] ldrb r0, [r4, #0xb] adds r0, #1 strb r0, [r4, #0xb] ldrb r0, [r4, #0xb] movs r1, #3 bl __modsi3 strb r0, [r4, #0xb] ldrb r1, [r4, #0xb] adds r0, r4, #0 bl sub_08004260 _0808B904: pop {r4, pc} .align 2, 0 thumb_func_start sub_0808B908 sub_0808B908: @ 0x0808B908 push {lr} bl sub_08004274 pop {pc} thumb_func_start sub_0808B910 sub_0808B910: @ 0x0808B910 push {lr} ldr r2, _0808B92C @ =gUnk_081213DC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 ldr r2, _0808B930 @ =gUnk_03003F80 ldrb r1, [r2, #0x1a] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x1a] pop {pc} .align 2, 0 _0808B92C: .4byte gUnk_081213DC _0808B930: .4byte gUnk_03003F80 thumb_func_start sub_0808B934 sub_0808B934: @ 0x0808B934 push {r4, r5, r6, r7, lr} adds r4, r0, #0 movs r7, #0 movs r0, #0xc0 lsls r0, r0, #2 strh r0, [r4, #0x24] strb r7, [r4, #0x1e] ldrh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x70 strh r1, [r0] ldrh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x72 strh r0, [r1] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #5 orrs r0, r1 strb r0, [r2] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _0808B9B8 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r5, r4, #0 adds r5, #0x76 strh r1, [r5] ldrh r0, [r5] adds r6, r4, #0 adds r6, #0x38 ldrb r1, [r6] bl sub_080001DA adds r1, r4, #0 adds r1, #0x74 strh r0, [r1] ldrb r0, [r4, #0xe] cmp r0, #0 bne _0808B9C0 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xf] ldr r0, _0808B9BC @ =0x00004022 ldrh r1, [r5] ldrb r2, [r6] bl sub_0800015E b _0808B9D2 .align 2, 0 _0808B9B8: .4byte gUnk_03000BF0 _0808B9BC: .4byte 0x00004022 _0808B9C0: movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #7 ands r0, r1 movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x18] strb r7, [r4, #0xe] _0808B9D2: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0808B9D4 sub_0808B9D4: @ 0x0808B9D4 push {r4, lr} adds r4, r0, #0 movs r0, #0 bl sub_0807CC3C cmp r0, #0 beq _0808BA0A movs r1, #0 movs r0, #2 strb r0, [r4, #0xc] movs r0, #7 strb r0, [r4, #0xe] strb r1, [r4, #0x15] adds r0, r4, #0 adds r0, #0x74 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x76 ldrh r1, [r1] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E ldr r0, _0808BA0C @ =0x0000010B bl sub_08004488 _0808BA0A: pop {r4, pc} .align 2, 0 _0808BA0C: .4byte 0x0000010B thumb_func_start sub_0808BA10 sub_0808BA10: @ 0x0808BA10 push {r4, lr} adds r4, r0, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0808BA44 movs r0, #5 strb r0, [r4, #0xc] movs r0, #8 strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #0xc ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 adds r0, #0x70 ldrh r0, [r0] strh r0, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x72 ldrh r0, [r0] strh r0, [r4, #0x32] _0808BA44: pop {r4, pc} .align 2, 0 thumb_func_start sub_0808BA48 sub_0808BA48: @ 0x0808BA48 push {r4, lr} adds r4, r0, #0 movs r1, #2 bl sub_08083734 cmp r0, #0 beq _0808BA68 movs r0, #4 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x76 ldrh r2, [r0] adds r0, r4, #0 movs r1, #2 bl sub_080836DC _0808BA68: pop {r4, pc} .align 2, 0 thumb_func_start sub_0808BA6C sub_0808BA6C: @ 0x0808BA6C push {r4, lr} adds r4, r0, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0808BAA4 movs r0, #5 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_08083814 ldr r0, _0808BAA8 @ =0x0000010B bl sub_08004488 ldr r0, _0808BAAC @ =0x00004022 adds r1, r4, #0 adds r1, #0x76 ldrh r1, [r1] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E _0808BAA4: pop {r4, pc} .align 2, 0 _0808BAA8: .4byte 0x0000010B _0808BAAC: .4byte 0x00004022 thumb_func_start nullsub_520 nullsub_520: @ 0x0808BAB0 bx lr .align 2, 0 thumb_func_start sub_0808BAB4 sub_0808BAB4: @ 0x0808BAB4 push {lr} ldr r2, _0808BAC8 @ =gUnk_081213F4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808BAC8: .4byte gUnk_081213F4 thumb_func_start sub_0808BACC sub_0808BACC: @ 0x0808BACC push {r4, lr} adds r2, r0, #0 movs r4, #1 strb r4, [r2, #0xc] movs r3, #0x10 strb r3, [r2, #0xe] ldrh r0, [r2, #0x36] subs r0, #0x10 strh r0, [r2, #0x36] ldrb r0, [r2, #0xb] cmp r0, #0 bne _0808BAEA movs r0, #2 strb r0, [r2, #0x1e] b _0808BAFC _0808BAEA: movs r0, #0 strb r0, [r2, #0x1e] ldr r0, [r2, #0x50] ldrh r1, [r0, #0x2e] adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _0808BAFC strb r4, [r2, #0x1e] _0808BAFC: adds r0, r2, #0 bl sub_080A29BC pop {r4, pc} thumb_func_start sub_0808BB04 sub_0808BB04: @ 0x0808BB04 push {lr} ldrb r1, [r0, #0xe] subs r1, #1 strb r1, [r0, #0xe] lsls r1, r1, #0x18 cmp r1, #0 bne _0808BB16 bl sub_0805E780 _0808BB16: pop {pc} thumb_func_start sub_0808BB18 sub_0808BB18: @ 0x0808BB18 push {lr} ldr r2, _0808BB2C @ =gUnk_08121440 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808BB2C: .4byte gUnk_08121440 thumb_func_start sub_0808BB30 sub_0808BB30: @ 0x0808BB30 push {r4, lr} adds r4, r0, #0 movs r0, #0x17 bl sub_0807CC30 adds r1, r0, #0 cmp r1, #0 beq _0808BB4C movs r0, #0x4a bl sub_0801D7EC bl sub_0805E780 b _0808BBD4 _0808BB4C: movs r3, #1 strb r3, [r4, #0xc] ldrb r0, [r4, #0x10] movs r2, #0x80 orrs r0, r2 strb r0, [r4, #0x10] movs r0, #0x78 strb r0, [r4, #0xe] strb r1, [r4, #0xf] ldrb r0, [r4, #0x19] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x19] movs r0, #0x29 adds r0, r0, r4 mov ip, r0 ldrb r1, [r0] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 mov r1, ip strb r0, [r1] ldrb r1, [r4, #0x1b] movs r0, #0x3f ands r0, r1 orrs r0, r2 strb r0, [r4, #0x1b] movs r0, #0xc0 lsls r0, r0, #2 strh r0, [r4, #0x24] adds r0, r4, #0 adds r0, #0x3f strb r3, [r0] adds r1, r4, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] adds r1, #4 movs r0, #0x48 strb r0, [r1] subs r1, #5 movs r0, #4 strb r0, [r1] ldr r0, _0808BBD8 @ =gUnk_080FD150 str r0, [r4, #0x48] movs r0, #2 strb r0, [r4, #0x1e] ldr r0, _0808BBDC @ =gUnk_03001160 adds r0, #0x38 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] adds r0, r4, #0 bl sub_0808BDB0 ldr r0, [r4, #0x50] ldr r1, [r0, #0x20] movs r2, #0xb8 lsls r2, r2, #1 adds r0, r2, #0 subs r0, r0, r1 strh r0, [r4, #0x32] adds r0, r4, #0 bl sub_0808BBE0 _0808BBD4: pop {r4, pc} .align 2, 0 _0808BBD8: .4byte gUnk_080FD150 _0808BBDC: .4byte gUnk_03001160 thumb_func_start sub_0808BBE0 sub_0808BBE0: @ 0x0808BBE0 push {lr} adds r3, r0, #0 movs r1, #0x32 ldrsh r0, [r3, r1] ldr r1, _0808BC20 @ =gUnk_03000BF0 movs r2, #0xc ldrsh r1, [r1, r2] subs r1, r0, r1 cmp r1, #0x9f bhi _0808BC2C adds r0, r1, #0 cmp r1, #0 bge _0808BBFC adds r0, #0xf _0808BBFC: asrs r1, r0, #4 ldr r0, _0808BC24 @ =gUnk_08121474 adds r0, r1, r0 ldrb r0, [r0] adds r2, r3, #0 adds r2, #0x63 strb r0, [r2] lsls r0, r1, #2 ldr r1, _0808BC28 @ =gUnk_0812144C adds r0, r0, r1 ldrh r1, [r0] ldrh r2, [r0, #2] adds r0, r3, #0 movs r3, #0 bl sub_0805EC9C b _0808BC38 .align 2, 0 _0808BC20: .4byte gUnk_03000BF0 _0808BC24: .4byte gUnk_08121474 _0808BC28: .4byte gUnk_0812144C _0808BC2C: adds r2, r3, #0 adds r2, #0x41 ldrb r1, [r2] movs r0, #0x7f ands r0, r1 strb r0, [r2] _0808BC38: pop {pc} .align 2, 0 thumb_func_start sub_0808BC3C sub_0808BC3C: @ 0x0808BC3C push {r4, r5, r6, lr} adds r5, r0, #0 ldr r2, _0808BC98 @ =gUnk_03000BF0 ldrh r0, [r2, #6] adds r0, #0x78 movs r4, #0 strh r0, [r5, #0x2e] ldr r0, [r5, #0x50] ldr r1, [r0, #0x20] ldr r0, _0808BC9C @ =0xFFFFFE90 adds r1, r1, r0 ldrh r0, [r2, #8] subs r0, r0, r1 strh r0, [r5, #0x32] adds r0, r5, #0 bl sub_0808BBE0 adds r0, r5, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x93 bne _0808BCE4 ldrb r0, [r5, #0xe] subs r2, r0, #1 strb r2, [r5, #0xe] ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r5, #0x18] lsls r0, r2, #0x18 cmp r0, #0 bne _0808BCA0 movs r0, #0x17 bl sub_0807CD04 movs r0, #2 strb r0, [r5, #0xc] movs r0, #0x80 strb r0, [r5, #0xf] adds r0, r5, #0 adds r0, #0x63 strb r4, [r0] b _0808BCFE .align 2, 0 _0808BC98: .4byte gUnk_03000BF0 _0808BC9C: .4byte 0xFFFFFE90 _0808BCA0: movs r6, #1 ands r2, r6 cmp r2, #0 beq _0808BCCA bl sub_08000E50 movs r4, #3 ands r0, r4 ldr r1, _0808BCDC @ =0x0000FFFE adds r0, r0, r1 ldrh r1, [r5, #0x2e] adds r0, r0, r1 strh r0, [r5, #0x2e] bl sub_08000E50 ands r0, r4 ldr r1, _0808BCE0 @ =0x0000FFFF adds r0, r0, r1 ldrh r1, [r5, #0x32] adds r0, r0, r1 strh r0, [r5, #0x32] _0808BCCA: ldrb r0, [r5, #0xf] cmp r0, #1 beq _0808BCFE strb r6, [r5, #0xf] movs r0, #0x4a bl sub_0801D7EC b _0808BCFE .align 2, 0 _0808BCDC: .4byte 0x0000FFFE _0808BCE0: .4byte 0x0000FFFF _0808BCE4: movs r0, #0x78 strb r0, [r5, #0xe] ldrb r1, [r5, #0x18] subs r0, #0x7c ands r0, r1 strb r0, [r5, #0x18] ldrb r0, [r5, #0xf] cmp r0, #0 beq _0808BCFE strb r4, [r5, #0xf] movs r0, #0x49 bl sub_0801D7EC _0808BCFE: pop {r4, r5, r6, pc} thumb_func_start sub_0808BD00 sub_0808BD00: @ 0x0808BD00 push {lr} movs r0, #0x17 bl sub_0807CD04 movs r0, #0x72 bl sub_080A3268 bl sub_0805E780 pop {pc} thumb_func_start sub_0808BD14 sub_0808BD14: @ 0x0808BD14 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xf] cmp r0, #0 beq _0808BD34 subs r0, #8 strb r0, [r5, #0xf] ldrb r0, [r5, #0xf] movs r2, #0x80 lsls r2, r2, #2 subs r2, r2, r0 adds r0, r5, #0 adds r1, r2, #0 movs r3, #0 bl sub_0805EC9C _0808BD34: adds r0, r5, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x93 bne _0808BD74 ldr r4, _0808BD70 @ =gUnk_03001160 adds r0, r5, #0 adds r1, r4, #0 bl sub_080045C4 strb r0, [r5, #0x15] adds r0, r5, #0 bl sub_0806F69C movs r0, #0x2e ldrsh r1, [r4, r0] movs r0, #0x32 ldrsh r2, [r4, r0] subs r2, #6 adds r0, r5, #0 movs r3, #0x1c bl sub_0806FCB8 cmp r0, #0 beq _0808BDAE adds r0, r5, #0 bl sub_0808BD00 b _0808BDAE .align 2, 0 _0808BD70: .4byte gUnk_03001160 _0808BD74: ldrb r1, [r5, #0x10] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808BD8A movs r0, #0x7f ands r0, r1 strb r0, [r5, #0x10] movs r0, #0x1e strb r0, [r5, #0xe] b _0808BDAE _0808BD8A: ldrb r2, [r5, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #1 eors r1, r0 subs r0, #5 ands r0, r2 orrs r0, r1 strb r0, [r5, #0x18] ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0808BDAE adds r0, r5, #0 bl sub_0808BD00 _0808BDAE: pop {r4, r5, pc} thumb_func_start sub_0808BDB0 sub_0808BDB0: @ 0x0808BDB0 push {r4, r5, r6, lr} adds r3, r0, #0 ldr r4, _0808BDD4 @ =gUnk_03003DA0 ldr r2, [r4, #4] movs r0, #0 str r0, [r3, #0x50] cmp r2, r4 beq _0808BDE6 ldr r6, _0808BDD8 @ =0x0000FFFF ldr r5, _0808BDDC @ =0x00000C09 _0808BDC4: ldrh r1, [r2, #8] adds r0, r6, #0 ands r0, r1 cmp r0, r5 bne _0808BDE0 str r2, [r3, #0x50] b _0808BDE6 .align 2, 0 _0808BDD4: .4byte gUnk_03003DA0 _0808BDD8: .4byte 0x0000FFFF _0808BDDC: .4byte 0x00000C09 _0808BDE0: ldr r2, [r2, #4] cmp r2, r4 bne _0808BDC4 _0808BDE6: pop {r4, r5, r6, pc} thumb_func_start sub_0808BDE8 sub_0808BDE8: @ 0x0808BDE8 push {lr} ldr r2, _0808BDFC @ =gUnk_08121480 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808BDFC: .4byte gUnk_08121480 thumb_func_start sub_0808BE00 sub_0808BE00: @ 0x0808BE00 push {r4, r5, lr} adds r5, r0, #0 adds r0, #0x38 ldrb r0, [r0] bl sub_0808094C adds r4, r0, #0 adds r0, r5, #0 bl sub_0806F798 lsls r0, r0, #1 adds r0, #4 adds r4, r4, r0 str r4, [r5, #0x78] ldrh r1, [r4] adds r0, r5, #0 adds r0, #0x70 strh r1, [r0] movs r0, #1 strb r0, [r5, #0xc] pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0808BE2C sub_0808BE2C: @ 0x0808BE2C push {r4, lr} adds r2, r0, #0 ldr r0, _0808BE78 @ =gUnk_02002A40 ldr r1, _0808BE7C @ =0x0000024E adds r4, r0, r1 ldrb r0, [r4] cmp r0, #0 beq _0808BE74 adds r0, r2, #0 adds r0, #0x70 ldr r1, [r2, #0x78] ldrh r0, [r0] ldrh r1, [r1] cmp r0, r1 beq _0808BE74 adds r0, r2, #0 movs r1, #0x58 movs r2, #0 bl sub_080A2A20 adds r1, r0, #0 cmp r1, #0 beq _0808BE6C ldr r0, _0808BE80 @ =gUnk_03001160 ldrb r0, [r0, #0x14] lsls r0, r0, #2 strb r0, [r1, #0x15] movs r0, #0x80 strh r0, [r1, #0x24] movs r0, #0x80 lsls r0, r0, #0xa str r0, [r1, #0x20] _0808BE6C: movs r0, #1 strb r0, [r4] bl sub_0805E780 _0808BE74: pop {r4, pc} .align 2, 0 _0808BE78: .4byte gUnk_02002A40 _0808BE7C: .4byte 0x0000024E _0808BE80: .4byte gUnk_03001160 thumb_func_start sub_0808BE84 sub_0808BE84: @ 0x0808BE84 push {lr} ldr r2, _0808BE98 @ =gUnk_08121488 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808BE98: .4byte gUnk_08121488 thumb_func_start sub_0808BE9C sub_0808BE9C: @ 0x0808BE9C push {r4, r5, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #0x80 movs r2, #0 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 adds r0, #0x3f movs r5, #1 strb r5, [r0] adds r1, r4, #0 adds r1, #0x3c movs r0, #0x47 strb r0, [r1] adds r1, #4 movs r0, #0x44 strb r0, [r1] subs r1, #5 movs r0, #0x80 strb r0, [r1] adds r0, r4, #0 adds r0, #0x68 strb r2, [r0] ldrb r0, [r4, #0xa] bl sub_0807CBD0 cmp r0, #0 beq _0808BEEE adds r0, r4, #0 adds r0, #0x7c ldrb r0, [r0] cmp r0, #0 bne _0808BEF8 movs r0, #3 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_080042AC b _0808BF10 _0808BEEE: adds r0, r4, #0 adds r0, #0x7c ldrb r0, [r0] cmp r0, #0 bne _0808BF04 _0808BEF8: strb r5, [r4, #0xc] adds r0, r4, #0 movs r1, #0 bl sub_080042AC b _0808BF10 _0808BF04: movs r0, #3 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_080042AC _0808BF10: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0808BF14 sub_0808BF14: @ 0x0808BF14 push {r4, lr} adds r4, r0, #0 bl sub_0808C128 cmp r0, #0 beq _0808BF4C ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0808C13C adds r0, r4, #0 adds r0, #0x7c ldrb r0, [r0] cmp r0, #0 bne _0808BF3E ldrb r0, [r4, #0xa] bl sub_0807CCB4 b _0808BF44 _0808BF3E: ldrb r0, [r4, #0xa] bl sub_0807CD34 _0808BF44: adds r0, r4, #0 movs r1, #0 bl sub_0808C148 _0808BF4C: adds r0, r4, #0 movs r1, #0 bl sub_0808C01C pop {r4, pc} .align 2, 0 thumb_func_start sub_0808BF58 sub_0808BF58: @ 0x0808BF58 push {r4, lr} adds r4, r0, #0 movs r1, #0x80 lsls r1, r1, #6 bl sub_08003FC4 ldrb r0, [r4, #0xd] cmp r0, #1 beq _0808BF94 cmp r0, #1 bgt _0808BF74 cmp r0, #0 beq _0808BF7A b _0808BFD6 _0808BF74: cmp r0, #2 beq _0808BFB0 b _0808BFD6 _0808BF7A: ldr r1, [r4, #0x20] ldr r0, _0808BF90 @ =0x00017FFF cmp r1, r0 bgt _0808BFD6 movs r0, #1 strb r0, [r4, #0xd] adds r0, r4, #0 movs r1, #2 bl sub_080042AC b _0808BFD6 .align 2, 0 _0808BF90: .4byte 0x00017FFF _0808BF94: adds r0, r4, #0 bl sub_080042B8 movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 bne _0808BFD6 ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] movs r0, #0x80 lsls r0, r0, #8 str r0, [r4, #0x20] b _0808BFD6 _0808BFB0: adds r0, r4, #0 bl sub_080042B8 movs r0, #0x36 ldrsh r1, [r4, r0] cmp r1, #0 bne _0808BFD6 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0xf] adds r0, r4, #0 movs r1, #1 bl sub_080042AC adds r0, r4, #0 movs r1, #1 bl sub_0808C148 _0808BFD6: pop {r4, pc} thumb_func_start sub_0808BFD8 sub_0808BFD8: @ 0x0808BFD8 push {r4, lr} adds r4, r0, #0 bl sub_0808C128 cmp r0, #0 beq _0808C010 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0808C13C adds r0, r4, #0 adds r0, #0x7c ldrb r0, [r0] cmp r0, #0 bne _0808C002 ldrb r0, [r4, #0xa] bl sub_0807CD34 b _0808C008 _0808C002: ldrb r0, [r4, #0xa] bl sub_0807CCB4 _0808C008: adds r0, r4, #0 movs r1, #0 bl sub_0808C148 _0808C010: adds r0, r4, #0 movs r1, #1 bl sub_0808C01C pop {r4, pc} .align 2, 0 thumb_func_start sub_0808C01C sub_0808C01C: @ 0x0808C01C push {r4, r5, r6, lr} adds r4, r0, #0 adds r5, r1, #0 movs r1, #0x2e ldrsh r0, [r4, r1] subs r0, #0x18 movs r2, #0x32 ldrsh r1, [r4, r2] subs r1, #0x18 movs r2, #0x30 movs r3, #0x30 bl sub_0806FBFC cmp r0, #0 beq _0808C0A6 ldr r2, _0808C06C @ =gUnk_02033A90 ldrh r0, [r4, #0x2e] strh r0, [r2, #0x12] ldrh r0, [r4, #0x32] strh r0, [r2, #0x14] movs r6, #2 strb r6, [r2, #0x16] movs r0, #4 cmp r5, #0 beq _0808C050 movs r0, #2 _0808C050: strb r0, [r2, #0x17] cmp r5, #1 bne _0808C0A6 ldr r3, _0808C070 @ =gUnk_03003F80 ldr r0, [r3, #0x30] movs r1, #0x20 ands r0, r1 cmp r0, #0 beq _0808C074 ldrb r0, [r3, #2] cmp r0, #0 bne _0808C074 strb r6, [r2, #0x18] b _0808C082 .align 2, 0 _0808C06C: .4byte gUnk_02033A90 _0808C070: .4byte gUnk_03003F80 _0808C074: bl sub_08057810 cmp r0, #0 beq _0808C082 ldr r1, _0808C0A8 @ =gUnk_02033A90 movs r0, #3 strb r0, [r1, #0x18] _0808C082: movs r1, #0x2e ldrsh r0, [r4, r1] movs r2, #0x32 ldrsh r1, [r4, r2] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_080577AC ldrb r0, [r4, #0xf] cmp r0, #0 bne _0808C0A6 movs r0, #1 strb r0, [r4, #0xf] movs r0, #0xa9 lsls r0, r0, #1 bl sub_080A3268 _0808C0A6: pop {r4, r5, r6, pc} .align 2, 0 _0808C0A8: .4byte gUnk_02033A90 thumb_func_start sub_0808C0AC sub_0808C0AC: @ 0x0808C0AC push {r4, lr} adds r4, r0, #0 movs r1, #0x80 lsls r1, r1, #6 bl sub_08003FC4 ldrb r0, [r4, #0xd] cmp r0, #1 beq _0808C0E8 cmp r0, #1 bgt _0808C0C8 cmp r0, #0 beq _0808C0CE b _0808C126 _0808C0C8: cmp r0, #2 beq _0808C104 b _0808C126 _0808C0CE: ldr r1, [r4, #0x20] ldr r0, _0808C0E4 @ =0x00017FFF cmp r1, r0 bgt _0808C126 movs r0, #1 strb r0, [r4, #0xd] adds r0, r4, #0 movs r1, #3 bl sub_080042AC b _0808C126 .align 2, 0 _0808C0E4: .4byte 0x00017FFF _0808C0E8: adds r0, r4, #0 bl sub_080042B8 movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 bne _0808C126 ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] movs r0, #0x80 lsls r0, r0, #8 str r0, [r4, #0x20] b _0808C126 _0808C104: adds r0, r4, #0 bl sub_080042B8 movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 bne _0808C126 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0 bl sub_080042AC adds r0, r4, #0 movs r1, #1 bl sub_0808C148 _0808C126: pop {r4, pc} thumb_func_start sub_0808C128 sub_0808C128: @ 0x0808C128 push {lr} movs r1, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x9d bne _0808C136 movs r1, #1 _0808C136: adds r0, r1, #0 pop {pc} .align 2, 0 thumb_func_start sub_0808C13C sub_0808C13C: @ 0x0808C13C movs r1, #0 strb r1, [r0, #0xd] movs r1, #0xa0 lsls r1, r1, #0xa str r1, [r0, #0x20] bx lr thumb_func_start sub_0808C148 sub_0808C148: @ 0x0808C148 push {r4, r5, r6, lr} adds r6, r0, #0 movs r2, #0x2e ldrsh r0, [r6, r2] ldr r4, _0808C1A4 @ =gUnk_03000BF0 ldrh r2, [r4, #6] subs r0, r0, r2 asrs r5, r0, #4 movs r3, #0x3f ands r5, r3 movs r2, #0x32 ldrsh r0, [r6, r2] ldrh r2, [r4, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r5, r0 cmp r1, #0 bne _0808C1B8 ldr r0, _0808C1A8 @ =0x00004092 subs r1, r5, #1 adds r4, r6, #0 adds r4, #0x38 ldrb r2, [r4] bl sub_0800015E ldr r0, _0808C1AC @ =0x00004093 ldrb r2, [r4] adds r1, r5, #0 bl sub_0800015E ldr r0, _0808C1B0 @ =0x00004094 adds r1, r5, #0 adds r1, #0x3f ldrb r2, [r4] bl sub_0800015E ldr r0, _0808C1B4 @ =0x00004095 adds r1, r5, #0 adds r1, #0x40 ldrb r2, [r4] bl sub_0800015E b _0808C1E0 .align 2, 0 _0808C1A4: .4byte gUnk_03000BF0 _0808C1A8: .4byte 0x00004092 _0808C1AC: .4byte 0x00004093 _0808C1B0: .4byte 0x00004094 _0808C1B4: .4byte 0x00004095 _0808C1B8: subs r0, r5, #1 adds r4, r6, #0 adds r4, #0x38 ldrb r1, [r4] bl sub_0807BA8C ldrb r1, [r4] adds r0, r5, #0 bl sub_0807BA8C adds r0, r5, #0 adds r0, #0x3f ldrb r1, [r4] bl sub_0807BA8C adds r0, r5, #0 adds r0, #0x40 ldrb r1, [r4] bl sub_0807BA8C _0808C1E0: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0808C1E4 sub_0808C1E4: @ 0x0808C1E4 push {lr} ldr r2, _0808C1F8 @ =gUnk_081214D8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808C1F8: .4byte gUnk_081214D8 thumb_func_start sub_0808C1FC sub_0808C1FC: @ 0x0808C1FC push {r4, r5, r6, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x84 ldrh r1, [r2] ldr r0, _0808C2B0 @ =0x0000FFFF cmp r1, r0 beq _0808C21A adds r0, r1, #0 bl sub_0807CBE4 cmp r0, #0 beq _0808C21A bl sub_0805E780 _0808C21A: adds r1, r4, #0 adds r1, #0x86 ldrh r0, [r1] cmp r0, #0 beq _0808C230 bl sub_0807CBE4 cmp r0, #0 beq _0808C230 bl sub_0805E780 _0808C230: ldrb r0, [r4, #0xa] lsrs r0, r0, #2 strb r0, [r4, #0xb] movs r0, #0xc0 lsls r0, r0, #2 strh r0, [r4, #0x24] ldrh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x70 strh r1, [r0] ldrh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x72 strh r0, [r1] ldr r0, _0808C2B4 @ =gUnk_080FD180 str r0, [r4, #0x48] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #5 orrs r0, r1 strb r0, [r2] ldrb r1, [r4, #0xa] movs r0, #3 ands r0, r1 adds r5, r4, #0 adds r5, #0x76 strh r0, [r5] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _0808C2B8 @ =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, #0x74 strh r1, [r0] ldrb r0, [r4, #0xa] movs r1, #0x1f ands r1, r0 adds r0, r4, #0 bl sub_08004260 ldrb r0, [r4, #0xb] cmp r0, #1 beq _0808C2F8 cmp r0, #1 bgt _0808C2BC cmp r0, #0 beq _0808C2C2 b _0808C31C .align 2, 0 _0808C2B0: .4byte 0x0000FFFF _0808C2B4: .4byte gUnk_080FD180 _0808C2B8: .4byte gUnk_03000BF0 _0808C2BC: cmp r0, #2 beq _0808C306 b _0808C31C _0808C2C2: movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_0808C500 adds r0, r4, #0 bl sub_08078800 ldr r1, _0808C2F4 @ =gUnk_0811F740 ldrh r0, [r5] adds r0, r0, r1 ldrb r2, [r0] adds r0, r4, #0 movs r1, #0 movs r3, #0 bl sub_08078850 b _0808C31C .align 2, 0 _0808C2F4: .4byte gUnk_0811F740 _0808C2F8: movs r0, #4 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #8 ands r0, r1 strb r0, [r4, #0x18] b _0808C31C _0808C306: movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_0808C500 _0808C31C: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0808C320 sub_0808C320: @ 0x0808C320 push {r4, lr} adds r4, r0, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0808C344 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_080788E0 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 _0808C344: pop {r4, pc} .align 2, 0 thumb_func_start sub_0808C348 sub_0808C348: @ 0x0808C348 push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0808C37C ldr r0, _0808C374 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #3 ands r0, r1 cmp r0, #0 bne _0808C36A ldr r0, _0808C378 @ =0x00000185 bl sub_080A3268 _0808C36A: adds r0, r4, #0 bl sub_08004274 b _0808C382 .align 2, 0 _0808C374: .4byte gUnk_030010A0 _0808C378: .4byte 0x00000185 _0808C37C: adds r0, r4, #0 bl sub_0808C4BC _0808C382: pop {r4, pc} thumb_func_start sub_0808C384 sub_0808C384: @ 0x0808C384 push {r4, lr} adds r4, r0, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0808C3B4 ldrb r0, [r4, #0xa] cmp r0, #3 bhi _0808C3B0 movs r0, #0x40 movs r1, #0 movs r2, #1 bl sub_08078AC0 ldr r1, _0808C3B8 @ =gUnk_03001160 ldrb r0, [r4, #0xa] lsls r0, r0, #3 strb r0, [r1, #0x15] _0808C3B0: bl sub_0805E780 _0808C3B4: pop {r4, pc} .align 2, 0 _0808C3B8: .4byte gUnk_03001160 thumb_func_start sub_0808C3BC sub_0808C3BC: @ 0x0808C3BC push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x76 ldrh r1, [r5] bl sub_08083734 cmp r0, #0 beq _0808C40E movs r0, #5 strb r0, [r4, #0xc] movs r0, #0xc strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #0x10 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] ldrb r0, [r5] lsls r0, r0, #3 movs r1, #0x10 eors r0, r1 strb r0, [r4, #0x15] ldrh r1, [r5] lsls r1, r1, #1 ldr r0, _0808C410 @ =gUnk_081214F4 adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] ldrh r2, [r4, #0x2e] adds r0, r0, r2 strh r0, [r4, #0x2e] movs r0, #1 ldrsb r0, [r1, r0] ldrh r1, [r4, #0x32] adds r0, r0, r1 strh r0, [r4, #0x32] adds r0, r4, #0 bl sub_0808C500 _0808C40E: pop {r4, r5, pc} .align 2, 0 _0808C410: .4byte gUnk_081214F4 thumb_func_start sub_0808C414 sub_0808C414: @ 0x0808C414 push {r4, r5, lr} adds r4, r0, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0808C49A movs r0, #6 strb r0, [r4, #0xc] strh r1, [r4, #0x36] adds r0, r4, #0 adds r0, #0x70 ldrh r0, [r0] strh r0, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x72 ldrh r0, [r0] strh r0, [r4, #0x32] adds r0, r4, #0 adds r0, #0x76 ldrh r0, [r0] lsls r0, r0, #2 ldr r1, _0808C49C @ =gUnk_081214FC adds r5, r0, r1 adds r0, r4, #0 movs r1, #0x11 movs r2, #0x40 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _0808C470 movs r0, #0 ldrsb r0, [r5, r0] ldrh r2, [r1, #0x2e] adds r0, r0, r2 strh r0, [r1, #0x2e] movs r0, #1 ldrsb r0, [r5, r0] ldrh r2, [r1, #0x32] adds r0, r0, r2 strh r0, [r1, #0x32] _0808C470: adds r0, r4, #0 movs r1, #0x11 movs r2, #0x40 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _0808C494 movs r0, #2 ldrsb r0, [r5, r0] ldrh r2, [r1, #0x2e] adds r0, r0, r2 strh r0, [r1, #0x2e] movs r0, #3 ldrsb r0, [r5, r0] ldrh r2, [r1, #0x32] adds r0, r0, r2 strh r0, [r1, #0x32] _0808C494: ldr r0, _0808C4A0 @ =0x0000010B bl sub_08004488 _0808C49A: pop {r4, r5, pc} .align 2, 0 _0808C49C: .4byte gUnk_081214FC _0808C4A0: .4byte 0x0000010B thumb_func_start sub_0808C4A4 sub_0808C4A4: @ 0x0808C4A4 push {r4, lr} adds r4, r0, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _0808C4B8 movs r0, #2 strb r0, [r4, #0xc] _0808C4B8: pop {r4, pc} .align 2, 0 thumb_func_start sub_0808C4BC sub_0808C4BC: @ 0x0808C4BC push {lr} movs r1, #3 strb r1, [r0, #0xc] movs r1, #0xc strb r1, [r0, #0xe] adds r2, r0, #0 adds r2, #0x76 ldrh r1, [r2] lsls r1, r1, #3 strb r1, [r0, #0x15] ldrh r2, [r2] lsls r2, r2, #1 ldr r1, _0808C4F8 @ =gUnk_0812150C adds r2, r2, r1 movs r1, #0 ldrsb r1, [r2, r1] ldrh r3, [r0, #0x2e] adds r1, r1, r3 strh r1, [r0, #0x2e] movs r1, #1 ldrsb r1, [r2, r1] ldrh r2, [r0, #0x32] adds r1, r1, r2 strh r1, [r0, #0x32] bl sub_0808C5D0 ldr r0, _0808C4FC @ =0x0000010B bl sub_080A3268 pop {pc} .align 2, 0 _0808C4F8: .4byte gUnk_0812150C _0808C4FC: .4byte 0x0000010B thumb_func_start sub_0808C500 sub_0808C500: @ 0x0808C500 push {r4, r5, r6, lr} adds r4, r0, #0 adds r0, #0x76 ldrh r0, [r0] cmp r0, #0 beq _0808C510 cmp r0, #2 bne _0808C570 _0808C510: adds r6, r4, #0 adds r6, #0x74 ldrh r0, [r6] subs r0, #1 adds r5, r4, #0 adds r5, #0x38 ldrb r1, [r5] bl sub_080001DA adds r1, r4, #0 adds r1, #0x78 strh r0, [r1] ldrh r0, [r6] ldrb r1, [r5] bl sub_080001DA adds r1, r4, #0 adds r1, #0x7a strh r0, [r1] ldrh r0, [r6] adds r0, #1 ldrb r1, [r5] bl sub_080001DA adds r1, r4, #0 adds r1, #0x7c strh r0, [r1] ldr r4, _0808C56C @ =0x00004022 ldrh r1, [r6] subs r1, #1 ldrb r2, [r5] adds r0, r4, #0 bl sub_0800015E ldrh r1, [r6] ldrb r2, [r5] adds r0, r4, #0 bl sub_0800015E ldrh r1, [r6] adds r1, #1 ldrb r2, [r5] adds r0, r4, #0 bl sub_0800015E b _0808C5CA .align 2, 0 _0808C56C: .4byte 0x00004022 _0808C570: adds r6, r4, #0 adds r6, #0x74 ldrh r0, [r6] subs r0, #0x40 adds r5, r4, #0 adds r5, #0x38 ldrb r1, [r5] bl sub_080001DA adds r1, r4, #0 adds r1, #0x78 strh r0, [r1] ldrh r0, [r6] ldrb r1, [r5] bl sub_080001DA adds r1, r4, #0 adds r1, #0x7a strh r0, [r1] ldrh r0, [r6] adds r0, #0x40 ldrb r1, [r5] bl sub_080001DA adds r1, r4, #0 adds r1, #0x7c strh r0, [r1] ldr r4, _0808C5CC @ =0x00004022 ldrh r1, [r6] subs r1, #0x40 ldrb r2, [r5] adds r0, r4, #0 bl sub_0800015E ldrh r1, [r6] ldrb r2, [r5] adds r0, r4, #0 bl sub_0800015E ldrh r1, [r6] adds r1, #0x40 ldrb r2, [r5] adds r0, r4, #0 bl sub_0800015E _0808C5CA: pop {r4, r5, r6, pc} .align 2, 0 _0808C5CC: .4byte 0x00004022 thumb_func_start sub_0808C5D0 sub_0808C5D0: @ 0x0808C5D0 push {r4, r5, r6, lr} adds r6, r0, #0 adds r0, #0x76 ldrh r0, [r0] cmp r0, #0 beq _0808C5E0 cmp r0, #2 bne _0808C618 _0808C5E0: adds r0, r6, #0 adds r0, #0x78 ldrh r0, [r0] adds r5, r6, #0 adds r5, #0x74 ldrh r1, [r5] subs r1, #1 adds r4, r6, #0 adds r4, #0x38 ldrb r2, [r4] bl sub_0800015E adds r0, r6, #0 adds r0, #0x7a ldrh r0, [r0] ldrh r1, [r5] ldrb r2, [r4] bl sub_0800015E adds r0, r6, #0 adds r0, #0x7c ldrh r0, [r0] ldrh r1, [r5] adds r1, #1 ldrb r2, [r4] bl sub_0800015E b _0808C64E _0808C618: adds r0, r6, #0 adds r0, #0x78 ldrh r0, [r0] adds r5, r6, #0 adds r5, #0x74 ldrh r1, [r5] subs r1, #0x40 adds r4, r6, #0 adds r4, #0x38 ldrb r2, [r4] bl sub_0800015E adds r0, r6, #0 adds r0, #0x7a ldrh r0, [r0] ldrh r1, [r5] ldrb r2, [r4] bl sub_0800015E adds r0, r6, #0 adds r0, #0x7c ldrh r0, [r0] ldrh r1, [r5] adds r1, #0x40 ldrb r2, [r4] bl sub_0800015E _0808C64E: pop {r4, r5, r6, pc} thumb_func_start sub_0808C650 sub_0808C650: @ 0x0808C650 push {r4, lr} adds r4, r0, #0 adds r2, r1, #0 movs r0, #0x3a movs r1, #0 bl sub_080A2960 cmp r0, #0 beq _0808C670 str r4, [r0, #0x50] ldr r1, _0808C66C @ =gUnk_02036BB8 movs r0, #0 b _0808C674 .align 2, 0 _0808C66C: .4byte gUnk_02036BB8 _0808C670: ldr r1, _0808C678 @ =gUnk_02036BB8 movs r0, #1 _0808C674: str r0, [r1] pop {r4, pc} .align 2, 0 _0808C678: .4byte gUnk_02036BB8 thumb_func_start sub_0808C67C sub_0808C67C: @ 0x0808C67C ldr r0, _0808C684 @ =gUnk_02036BB8 ldr r0, [r0] bx lr .align 2, 0 _0808C684: .4byte gUnk_02036BB8 thumb_func_start sub_0808C688 sub_0808C688: @ 0x0808C688 push {lr} bl sub_0801E104 ldr r1, _0808C698 @ =gUnk_02036BB8 movs r0, #1 str r0, [r1] pop {pc} .align 2, 0 _0808C698: .4byte gUnk_02036BB8 thumb_func_start sub_0808C69C sub_0808C69C: @ 0x0808C69C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xa] cmp r0, #0 bne _0808C6BC ldr r0, _0808C6B8 @ =gUnk_08121638 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 b _0808C6CC .align 2, 0 _0808C6B8: .4byte gUnk_08121638 _0808C6BC: ldr r0, _0808C6D0 @ =gUnk_08121640 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 _0808C6CC: pop {pc} .align 2, 0 _0808C6D0: .4byte gUnk_08121640 thumb_func_start sub_0808C6D4 sub_0808C6D4: @ 0x0808C6D4 push {r4, r5, lr} adds r5, r0, #0 ldrb r1, [r5, #0xb] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, _0808C744 @ =gUnk_081215E8 adds r4, r0, r1 ldrh r0, [r4, #4] adds r1, r5, #0 adds r1, #0x86 strh r0, [r1] ldrh r0, [r4, #6] subs r1, #1 strb r0, [r1] ldrh r1, [r4, #8] adds r0, r5, #0 adds r0, #0x84 strb r1, [r0] ldrh r0, [r4, #0xa] adds r1, r5, #0 adds r1, #0x83 strb r0, [r1] ldrh r0, [r4, #0xc] subs r1, #1 strb r0, [r1] ldrh r0, [r4, #0xe] subs r1, #1 strb r0, [r1] ldr r0, _0808C748 @ =gUnk_03000F50 adds r0, #0x60 ldrh r1, [r0] movs r0, #0xff lsls r0, r0, #8 ands r0, r1 ldrh r1, [r4, #0x10] orrs r0, r1 ldrh r1, [r4, #0x12] bl sub_0801E1B8 movs r0, #1 strb r0, [r5, #0xc] adds r0, r5, #0 bl sub_0808C74C ldrh r2, [r4] movs r0, #0x3a movs r1, #1 bl sub_080A2960 cmp r0, #0 beq _0808C742 ldrh r1, [r4, #2] adds r0, #0x6a strh r1, [r0] _0808C742: pop {r4, r5, pc} .align 2, 0 _0808C744: .4byte gUnk_081215E8 _0808C748: .4byte gUnk_03000F50 thumb_func_start sub_0808C74C sub_0808C74C: @ 0x0808C74C push {r4, r5, r6, lr} adds r4, r0, #0 ldr r3, [r4, #0x50] cmp r3, #0 beq _0808C76C ldr r2, _0808C768 @ =gUnk_03000BF0 ldrh r0, [r3, #0x2e] ldrh r1, [r2, #0xa] subs r0, r0, r1 strh r0, [r4, #0x2e] ldrh r0, [r3, #0x32] ldrh r1, [r2, #0xc] subs r0, r0, r1 b _0808C772 .align 2, 0 _0808C768: .4byte gUnk_03000BF0 _0808C76C: movs r0, #0x78 strh r0, [r4, #0x2e] movs r0, #0x50 _0808C772: strh r0, [r4, #0x32] adds r5, r4, #0 adds r5, #0x86 movs r1, #0 ldrsh r0, [r5, r1] cmp r0, #0 bge _0808C79C movs r2, #0x2e ldrsh r0, [r4, r2] movs r3, #0x32 ldrsh r1, [r4, r3] movs r2, #0 movs r3, #0 bl sub_0801E49C ldr r1, _0808C83C @ =gUnk_02036BB8 movs r0, #1 str r0, [r1] adds r0, r4, #0 bl sub_0808C840 _0808C79C: movs r6, #0 ldrsh r0, [r5, r6] movs r2, #0xfa lsls r2, r2, #1 cmp r0, r2 ble _0808C7C2 movs r1, #0x2e ldrsh r0, [r4, r1] movs r3, #0x32 ldrsh r1, [r4, r3] movs r3, #0 bl sub_0801E49C ldr r1, _0808C83C @ =gUnk_02036BB8 movs r0, #1 str r0, [r1] adds r0, r4, #0 bl sub_0808C840 _0808C7C2: adds r1, r4, #0 adds r1, #0x85 movs r0, #0 ldrsb r0, [r1, r0] ldrh r6, [r5] adds r0, r0, r6 strh r0, [r5] adds r0, r4, #0 adds r0, #0x84 ldrb r0, [r0] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x10 ble _0808C7E8 movs r0, #0x10 strb r0, [r1] _0808C7E8: movs r0, #0 ldrsb r0, [r1, r0] movs r2, #0x10 rsbs r2, r2, #0 cmp r0, r2 bge _0808C7F6 strb r2, [r1] _0808C7F6: adds r3, r4, #0 adds r3, #0x83 adds r1, r4, #0 adds r1, #0x82 ldrb r0, [r1] ldrb r6, [r3] adds r0, r0, r6 strb r0, [r3] adds r0, r4, #0 adds r0, #0x81 ldrb r0, [r0] ldrb r6, [r1] adds r0, r0, r6 strb r0, [r1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x10 ble _0808C81E movs r0, #0x10 strb r0, [r1] _0808C81E: movs r0, #0 ldrsb r0, [r1, r0] cmp r0, r2 bge _0808C828 strb r2, [r1] _0808C828: movs r1, #0x2e ldrsh r0, [r4, r1] movs r2, #0x32 ldrsh r1, [r4, r2] movs r4, #0 ldrsh r2, [r5, r4] ldrb r3, [r3] bl sub_0801E49C pop {r4, r5, r6, pc} .align 2, 0 _0808C83C: .4byte gUnk_02036BB8 thumb_func_start sub_0808C840 sub_0808C840: @ 0x0808C840 push {lr} ldr r0, _0808C854 @ =gUnk_03000F50 adds r0, #0x66 movs r1, #0 strh r1, [r0] bl sub_0801E104 bl sub_0805E780 pop {pc} .align 2, 0 _0808C854: .4byte gUnk_03000F50 thumb_func_start sub_0808C858 sub_0808C858: @ 0x0808C858 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0xb] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0808C878 ldr r1, _0808C870 @ =gUnk_03000F50 adds r3, r1, #0 adds r3, #0x66 ldr r0, _0808C874 @ =0x00003FBF b _0808C880 .align 2, 0 _0808C870: .4byte gUnk_03000F50 _0808C874: .4byte 0x00003FBF _0808C878: ldr r1, _0808C898 @ =gUnk_03000F50 adds r3, r1, #0 adds r3, #0x66 ldr r0, _0808C89C @ =0x00003FFF _0808C880: strh r0, [r3] adds r3, r1, #0 ldrb r1, [r2, #0xb] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0808C8A0 adds r1, r3, #0 adds r1, #0x6a movs r0, #0 b _0808C8A6 .align 2, 0 _0808C898: .4byte gUnk_03000F50 _0808C89C: .4byte 0x00003FFF _0808C8A0: adds r1, r3, #0 adds r1, #0x6a movs r0, #0x10 _0808C8A6: strh r0, [r1] movs r0, #1 strb r0, [r2, #0xc] adds r1, r2, #0 adds r1, #0x68 adds r0, #0xff strh r0, [r1] pop {pc} .align 2, 0 thumb_func_start sub_0808C8B8 sub_0808C8B8: @ 0x0808C8B8 push {lr} adds r3, r0, #0 adds r2, r3, #0 adds r2, #0x68 adds r1, r3, #0 adds r1, #0x6a ldrh r0, [r2] ldrh r1, [r1] subs r0, r0, r1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 bge _0808C8D6 movs r0, #0 strh r0, [r2] _0808C8D6: ldrb r1, [r3, #0xb] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0808C8F8 ldr r0, _0808C8F4 @ =gUnk_03000F50 ldrh r1, [r2] lsls r1, r1, #0x10 asrs r1, r1, #0x14 movs r2, #0x10 subs r2, r2, r1 adds r0, #0x6a strh r2, [r0] b _0808C904 .align 2, 0 _0808C8F4: .4byte gUnk_03000F50 _0808C8F8: ldr r1, _0808C918 @ =gUnk_03000F50 ldrh r0, [r2] lsls r0, r0, #0x10 asrs r0, r0, #0x14 adds r1, #0x6a strh r0, [r1] _0808C904: adds r0, r3, #0 adds r0, #0x68 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 bne _0808C914 bl sub_0805E780 _0808C914: pop {pc} .align 2, 0 _0808C918: .4byte gUnk_03000F50 thumb_func_start sub_0808C91C sub_0808C91C: @ 0x0808C91C push {lr} ldr r2, _0808C930 @ =gUnk_08121668 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808C930: .4byte gUnk_08121668 thumb_func_start sub_0808C934 sub_0808C934: @ 0x0808C934 push {lr} ldr r2, _0808C948 @ =gUnk_08121670 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808C948: .4byte gUnk_08121670 thumb_func_start sub_0808C94C sub_0808C94C: @ 0x0808C94C push {lr} ldr r2, _0808C960 @ =gUnk_08121678 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808C960: .4byte gUnk_08121678 thumb_func_start sub_0808C964 sub_0808C964: @ 0x0808C964 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xa] strb r1, [r4, #0x1e] ldrb r0, [r4, #9] cmp r0, #0x76 bne _0808C982 ldr r0, _0808CA08 @ =gUnk_02032EC0 adds r0, #0x20 ldrb r0, [r0] cmp r0, #2 beq _0808C982 adds r0, r1, #0 subs r0, #9 strb r0, [r4, #0xa] _0808C982: ldrb r0, [r4, #0xa] cmp r0, #4 bls _0808C996 ldr r0, _0808CA0C @ =gUnk_02033A90 ldrb r0, [r0, #0x16] ldrb r1, [r4, #0xb] cmp r0, r1 beq _0808C996 bl sub_0805E780 _0808C996: movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] 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] ldrb r0, [r4, #0xb] adds r3, r4, #0 adds r3, #0x29 movs r1, #7 ands r1, r0 ldrb r2, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] ldrb r0, [r4, #9] cmp r0, #0x75 beq _0808CA04 ldrb r2, [r4, #0xa] subs r0, r2, #1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #2 bhi _0808CA04 ldrb r0, [r4, #0x19] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x19] lsls r0, r2, #0x18 lsrs r0, r0, #0x18 movs r2, #0x80 lsls r2, r2, #1 cmp r0, #1 bne _0808C9FA movs r2, #0xe0 _0808C9FA: adds r0, r4, #0 adds r1, r2, #0 movs r3, #0 bl sub_0805EC9C _0808CA04: pop {r4, pc} .align 2, 0 _0808CA08: .4byte gUnk_02032EC0 _0808CA0C: .4byte gUnk_02033A90 thumb_func_start sub_0808CA10 sub_0808CA10: @ 0x0808CA10 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #2 beq _0808CA40 cmp r0, #2 bgt _0808CA24 cmp r0, #1 beq _0808CA2A b _0808CA78 _0808CA24: cmp r0, #3 beq _0808CA60 b _0808CA78 _0808CA2A: ldr r2, _0808CA3C @ =gUnk_02018EB0 ldrb r0, [r2, #0x18] cmp r0, #0 beq _0808CA78 movs r0, #0 movs r1, #0x20 strb r1, [r4, #0xe] strb r0, [r2, #0x18] b _0808CA50 .align 2, 0 _0808CA3C: .4byte gUnk_02018EB0 _0808CA40: ldr r2, _0808CA5C @ =gUnk_02018EB0 ldrb r0, [r2, #0x19] cmp r0, #0 beq _0808CA78 movs r0, #0 movs r1, #0x20 strb r1, [r4, #0xe] strb r0, [r2, #0x19] _0808CA50: movs r0, #0x97 lsls r0, r0, #1 bl sub_080A3268 b _0808CA78 .align 2, 0 _0808CA5C: .4byte gUnk_02018EB0 _0808CA60: ldr r2, _0808CABC @ =gUnk_02018EB0 ldrb r0, [r2, #0x1a] cmp r0, #0 beq _0808CA78 movs r0, #0 movs r1, #0x20 strb r1, [r4, #0xe] strb r0, [r2, #0x1a] movs r0, #0x97 lsls r0, r0, #1 bl sub_080A3268 _0808CA78: ldrb r0, [r4, #9] cmp r0, #0x75 beq _0808CAE0 ldrb r1, [r4, #0xa] subs r0, r1, #1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 adds r5, r1, #0 cmp r0, #2 bhi _0808CAE0 ldrb r1, [r4, #0xe] cmp r1, #0 beq _0808CAE0 subs r1, #1 strb r1, [r4, #0xe] ldrb r0, [r4, #0xf] adds r2, r0, #1 strb r2, [r4, #0xf] lsls r1, r1, #0x18 cmp r1, #0 beq _0808CAC4 ldr r0, _0808CAC0 @ =gUnk_08121648 movs r1, #0xe ands r1, r2 lsls r2, r1, #1 adds r2, r2, r0 movs r6, #0 ldrsh r3, [r2, r6] adds r1, #1 lsls r1, r1, #1 adds r1, r1, r0 movs r0, #0 ldrsh r2, [r1, r0] b _0808CACA .align 2, 0 _0808CABC: .4byte gUnk_02018EB0 _0808CAC0: .4byte gUnk_08121648 _0808CAC4: movs r2, #0x80 lsls r2, r2, #1 adds r3, r2, #0 _0808CACA: lsls r0, r5, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bne _0808CAD6 subs r3, #0x20 subs r2, #0x20 _0808CAD6: adds r0, r4, #0 adds r1, r3, #0 movs r3, #0 bl sub_0805EC9C _0808CAE0: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0808CAE4 sub_0808CAE4: @ 0x0808CAE4 push {lr} ldr r2, _0808CAF8 @ =gUnk_08121680 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808CAF8: .4byte gUnk_08121680 thumb_func_start sub_0808CAFC sub_0808CAFC: @ 0x0808CAFC push {r4, lr} adds r4, r0, #0 ldr r1, _0808CB18 @ =gUnk_08121688 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0808CB9C pop {r4, pc} .align 2, 0 _0808CB18: .4byte gUnk_08121688 thumb_func_start sub_0808CB1C sub_0808CB1C: @ 0x0808CB1C push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0808CB70 movs r2, #1 strb r2, [r4, #0xc] ldrb r0, [r4, #0x18] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #0xa7 strh r0, [r4, #0x12] movs r0, #0xd strb r0, [r4, #0x1e] adds r0, r4, #0 adds r0, #0x60 strh r2, [r0] ldrb r1, [r4, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #5 orrs r0, r1 strb r0, [r4, #0x1a] ldrb r2, [r4, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 strb r0, [r4, #0x19] adds r3, r4, #0 adds r3, #0x29 ldrb r2, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 strb r0, [r3] ldrb r0, [r4, #0x1b] ands r1, r0 movs r0, #0x80 orrs r1, r0 strb r1, [r4, #0x1b] _0808CB70: ldr r0, [r4, #0x50] ldr r1, [r0, #0x2c] str r1, [r4, #0x2c] ldr r1, [r0, #0x30] str r1, [r4, #0x30] movs r5, #0 str r5, [r4, #0x34] adds r1, r4, #0 bl sub_0806FAD8 ldrb r0, [r4, #0xd] cmp r0, #0 beq _0808CB98 adds r0, r4, #0 adds r0, #0x60 movs r1, #0 strh r5, [r0] strb r1, [r4, #0xd] movs r0, #4 strb r0, [r4, #0x1e] _0808CB98: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0808CB9C sub_0808CB9C: @ 0x0808CB9C push {r4, r5, lr} adds r3, r0, #0 adds r0, #0x68 ldrh r1, [r0] ldrb r4, [r0] lsrs r5, r1, #8 movs r2, #0 ldrb r0, [r3, #0x14] cmp r0, #4 bls _0808CBB2 movs r2, #1 _0808CBB2: lsls r2, r2, #6 ldrb r1, [r3, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 strb r0, [r3, #0x18] cmp r4, #0xb7 bhi _0808CBCA ldrb r0, [r3, #0x14] lsrs r0, r0, #1 adds r4, r4, r0 _0808CBCA: ldrh r0, [r3, #0x12] cmp r5, r0 bne _0808CBDA adds r0, r3, #0 adds r0, #0x58 ldrb r0, [r0] cmp r4, r0 beq _0808CBE4 _0808CBDA: strh r5, [r3, #0x12] adds r0, r3, #0 adds r1, r4, #0 bl sub_080042AC _0808CBE4: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0808CBE8 sub_0808CBE8: @ 0x0808CBE8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r3, #4 strb r3, [r4, #0x14] ldrb r2, [r4, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 strb r0, [r4, #0x19] movs r0, #0x29 adds r0, r0, r4 mov ip, r0 ldrb r2, [r0] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 mov r2, ip strb r0, [r2] ldrb r0, [r4, #0x1b] ands r1, r0 movs r0, #0x80 orrs r1, r0 strb r1, [r4, #0x1b] adds r1, r4, #0 adds r1, #0x68 movs r0, #0x8a lsls r0, r0, #1 strh r0, [r1] subs r1, #0x10 movs r0, #0xff strb r0, [r1] ldr r0, _0808CC80 @ =0x0000FF50 strh r0, [r4, #0x36] adds r0, r4, #0 adds r0, #0x6a strh r3, [r0] ldrb r0, [r4, #0x19] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x19] adds r0, r4, #0 movs r1, #4 movs r2, #4 movs r3, #0 bl sub_0805EC9C ldr r0, _0808CC84 @ =gUnk_02018EB0 str r4, [r0, #0x14] movs r0, #0 bl sub_0807A094 adds r1, r0, #0 adds r0, r4, #0 bl sub_0801D2B4 movs r0, #0x3c movs r1, #1 movs r2, #0 bl sub_080A2960 cmp r0, #0 beq _0808CC7C str r4, [r0, #0x50] str r0, [r4, #0x54] _0808CC7C: pop {r4, pc} .align 2, 0 _0808CC80: .4byte 0x0000FF50 _0808CC84: .4byte gUnk_02018EB0 thumb_func_start sub_0808CC88 sub_0808CC88: @ 0x0808CC88 push {r4, r5, lr} adds r5, r0, #0 adds r4, r5, #0 adds r4, #0x6a ldrh r1, [r4] ldr r0, _0808CCB8 @ =0x000003FF cmp r1, r0 bhi _0808CCB4 adds r0, r1, #4 strh r0, [r4] ldrh r2, [r4] adds r0, r5, #0 adds r1, r2, #0 movs r3, #0 bl sub_0805EC9C ldrh r1, [r4] adds r0, r5, #0 movs r2, #8 movs r3, #2 bl sub_0806FCF4 _0808CCB4: pop {r4, r5, pc} .align 2, 0 _0808CCB8: .4byte 0x000003FF thumb_func_start sub_0808CCBC sub_0808CCBC: @ 0x0808CCBC push {r4, lr} adds r4, r0, #0 bl sub_0808CC88 movs r1, #0x80 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _0808CCFA ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] movs r0, #0x14 strb r0, [r4, #0x15] adds r0, #0xec strh r0, [r4, #0x24] movs r0, #0xc0 lsls r0, r0, #0xa str r0, [r4, #0x20] ldrb r1, [r4, #0x18] movs r0, #0x31 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] ldr r0, [r4, #0x54] movs r1, #1 strb r1, [r0, #0xd] ldr r0, _0808CCFC @ =gUnk_02018EB0 strb r1, [r0, #0x18] _0808CCFA: pop {r4, pc} .align 2, 0 _0808CCFC: .4byte gUnk_02018EB0 thumb_func_start sub_0808CD00 sub_0808CD00: @ 0x0808CD00 push {r4, lr} adds r4, r0, #0 bl sub_0808CC88 adds r0, r4, #0 bl sub_080042B8 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 beq _0808CD24 adds r0, r4, #0 bl sub_0806F69C b _0808CD3E _0808CD24: ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] movs r0, #0xa strb r0, [r4, #0x15] movs r0, #0xc0 strh r0, [r4, #0x24] movs r0, #0xa0 lsls r0, r0, #0xa str r0, [r4, #0x20] ldr r1, _0808CD40 @ =gUnk_02018EB0 movs r0, #1 strb r0, [r1, #0x19] _0808CD3E: pop {r4, pc} .align 2, 0 _0808CD40: .4byte gUnk_02018EB0 thumb_func_start sub_0808CD44 sub_0808CD44: @ 0x0808CD44 push {r4, lr} adds r4, r0, #0 bl sub_0808CC88 adds r0, r4, #0 bl sub_080042B8 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 beq _0808CD68 adds r0, r4, #0 bl sub_0806F69C b _0808CD82 _0808CD68: ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] movs r0, #0x11 strb r0, [r4, #0x15] adds r0, #0xef strh r0, [r4, #0x24] movs r0, #0x90 lsls r0, r0, #0xa str r0, [r4, #0x20] ldr r1, _0808CD84 @ =gUnk_02018EB0 movs r0, #1 strb r0, [r1, #0x1a] _0808CD82: pop {r4, pc} .align 2, 0 _0808CD84: .4byte gUnk_02018EB0 thumb_func_start sub_0808CD88 sub_0808CD88: @ 0x0808CD88 push {r4, lr} adds r4, r0, #0 bl sub_0808CC88 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 beq _0808CDB8 adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_0806F69C movs r1, #0x2e ldrsh r0, [r4, r1] cmp r0, #0x7f bgt _0808CDD6 movs r0, #0x80 strh r0, [r4, #0x2e] b _0808CDD6 _0808CDB8: ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x68 ldr r0, _0808CDD8 @ =0x00000C04 strh r0, [r1] ldr r0, [r4, #0x54] bl sub_0805E7BC adds r0, r4, #0 bl sub_0805EC60 _0808CDD6: pop {r4, pc} .align 2, 0 _0808CDD8: .4byte 0x00000C04 thumb_func_start sub_0808CDDC sub_0808CDDC: @ 0x0808CDDC 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 _0808CDF6 ldrb r0, [r1, #0xc] adds r0, #1 strb r0, [r1, #0xc] movs r0, #0x10 strb r0, [r1, #0xe] _0808CDF6: pop {pc} thumb_func_start sub_0808CDF8 sub_0808CDF8: @ 0x0808CDF8 push {lr} adds r3, r0, #0 ldrb r0, [r3, #0xe] subs r0, #1 strb r0, [r3, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0808CE2C ldr r0, _0808CE30 @ =gUnk_02033A90 ldrb r1, [r0, #0x16] ldrb r0, [r3, #0xc] adds r0, #1 adds r0, r0, r1 strb r0, [r3, #0xc] ldr r2, _0808CE34 @ =gUnk_081216B4 lsls r1, r1, #1 adds r0, r1, r2 ldrb r0, [r0] strb r0, [r3, #0x14] adds r1, #1 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r3, #0x15] movs r0, #0xa0 lsls r0, r0, #1 strh r0, [r3, #0x24] _0808CE2C: pop {pc} .align 2, 0 _0808CE30: .4byte gUnk_02033A90 _0808CE34: .4byte gUnk_081216B4 thumb_func_start sub_0808CE38 sub_0808CE38: @ 0x0808CE38 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_0806F69C movs r1, #0x32 ldrsh r0, [r4, r1] cmp r0, #0xc7 bgt _0808CE52 movs r0, #0x18 strb r0, [r4, #0x15] _0808CE52: movs r1, #0x2e ldrsh r0, [r4, r1] cmp r0, #0x2f bgt _0808CE60 ldr r1, _0808CE64 @ =gUnk_02018EB0 movs r0, #1 strb r0, [r1, #0x1b] _0808CE60: pop {r4, pc} .align 2, 0 _0808CE64: .4byte gUnk_02018EB0 thumb_func_start sub_0808CE68 sub_0808CE68: @ 0x0808CE68 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_0806F69C movs r1, #0x32 ldrsh r0, [r4, r1] cmp r0, #0xc7 bgt _0808CE82 movs r0, #8 strb r0, [r4, #0x15] _0808CE82: movs r1, #0x2e ldrsh r0, [r4, r1] cmp r0, #0xd0 ble _0808CE90 ldr r1, _0808CE94 @ =gUnk_02018EB0 movs r0, #1 strb r0, [r1, #0x1b] _0808CE90: pop {r4, pc} .align 2, 0 _0808CE94: .4byte gUnk_02018EB0 thumb_func_start sub_0808CE98 sub_0808CE98: @ 0x0808CE98 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_0806F69C movs r0, #0x32 ldrsh r1, [r4, r0] movs r0, #0x90 lsls r0, r0, #1 cmp r1, r0 ble _0808CEB8 ldr r1, _0808CEBC @ =gUnk_02018EB0 movs r0, #1 strb r0, [r1, #0x1b] _0808CEB8: pop {r4, pc} .align 2, 0 _0808CEBC: .4byte gUnk_02018EB0 thumb_func_start sub_0808CEC0 sub_0808CEC0: @ 0x0808CEC0 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_0806F69C movs r1, #0x32 ldrsh r0, [r4, r1] cmp r0, #0xc7 bgt _0808CEDA movs r0, #0x18 strb r0, [r4, #0x15] _0808CEDA: movs r1, #0x2e ldrsh r0, [r4, r1] cmp r0, #0xf bgt _0808CEE8 ldr r1, _0808CEEC @ =gUnk_02018EB0 movs r0, #1 strb r0, [r1, #0x1b] _0808CEE8: pop {r4, pc} .align 2, 0 _0808CEEC: .4byte gUnk_02018EB0 thumb_func_start sub_0808CEF0 sub_0808CEF0: @ 0x0808CEF0 push {lr} ldr r2, _0808CF04 @ =gUnk_081216BC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808CF04: .4byte gUnk_081216BC thumb_func_start sub_0808CF08 sub_0808CF08: @ 0x0808CF08 push {r4, r5, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldr r2, _0808CF50 @ =gUnk_02033A90 ldr r3, _0808CF54 @ =gUnk_03000BF0 ldrh r0, [r2, #0x12] ldrh r1, [r3, #0xa] subs r0, r0, r1 strh r0, [r4, #0x2e] ldrh r0, [r2, #0x14] ldrh r1, [r3, #0xc] subs r0, r0, r1 strh r0, [r4, #0x32] adds r5, r4, #0 adds r5, #0x68 movs r0, #0x80 strh r0, [r5] ldrb r1, [r4, #0x11] subs r0, #0x90 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r4, #0x11] ldr r0, _0808CF58 @ =0x00001F17 movs r1, #0 bl sub_0801E1B8 movs r1, #0x2e ldrsh r0, [r4, r1] movs r2, #0x32 ldrsh r1, [r4, r2] ldrh r2, [r5] bl sub_0801E1EC pop {r4, r5, pc} .align 2, 0 _0808CF50: .4byte gUnk_02033A90 _0808CF54: .4byte gUnk_03000BF0 _0808CF58: .4byte 0x00001F17 thumb_func_start sub_0808CF5C sub_0808CF5C: @ 0x0808CF5C push {r4, r5, r6, lr} adds r5, r0, #0 adds r2, r5, #0 adds r2, #0x68 ldrh r0, [r2] subs r0, #2 strh r0, [r2] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x14 bls _0808CF82 movs r1, #0x2e ldrsh r0, [r5, r1] movs r3, #0x32 ldrsh r1, [r5, r3] ldrh r2, [r2] bl sub_0801E1EC b _0808D01E _0808CF82: ldr r0, _0808D020 @ =gUnk_03000F50 adds r0, #0x62 movs r1, #0x10 strh r1, [r0] bl sub_0808D030 movs r0, #0 bl sub_0801CFA8 bl sub_080ADD30 ldr r0, _0808D024 @ =gUnk_02024490 movs r6, #1 strb r6, [r0] ldrb r0, [r5, #0xa] lsls r4, r0, #1 adds r4, r4, r0 lsls r4, r4, #1 ldr r0, _0808D028 @ =gUnk_081216C8 adds r4, r4, r0 ldrh r1, [r4] adds r0, r5, #0 bl sub_080ADF80 ldrh r1, [r4, #2] adds r0, r5, #0 bl sub_0801D040 ldrh r0, [r4, #4] strh r0, [r5, #0x12] ldrb r0, [r5, #0xa] cmp r0, #2 bne _0808CFC6 strb r0, [r5, #0x1e] _0808CFC6: movs r2, #2 movs r0, #2 strb r0, [r5, #0xc] ldrb r1, [r5, #0x18] subs r0, #6 ands r0, r1 orrs r0, r2 strb r0, [r5, #0x18] ldrb r2, [r5, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 strb r0, [r5, #0x1b] ldrb r0, [r5, #0x19] ands r1, r0 strb r1, [r5, #0x19] adds r2, r5, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] movs r0, #0x1e strb r0, [r5, #0xe] movs r0, #0xff strb r0, [r5, #0xf] ldrb r0, [r5, #0x19] movs r1, #3 orrs r0, r1 strb r0, [r5, #0x19] movs r2, #0x80 lsls r2, r2, #1 adds r0, r5, #0 adds r1, r2, #0 movs r3, #0 bl sub_0805EC9C ldr r0, _0808D02C @ =gUnk_02033A90 strh r6, [r0, #0x10] movs r0, #5 movs r1, #8 bl sub_08050054 _0808D01E: pop {r4, r5, r6, pc} .align 2, 0 _0808D020: .4byte gUnk_03000F50 _0808D024: .4byte gUnk_02024490 _0808D028: .4byte gUnk_081216C8 _0808D02C: .4byte gUnk_02033A90 thumb_func_start sub_0808D030 sub_0808D030: @ 0x0808D030 push {r4, r5, lr} ldr r4, _0808D058 @ =gUnk_03000020 movs r5, #0x80 adds r0, r4, #0 subs r0, #0x20 ldr r1, _0808D05C @ =0x00000B74 bl sub_0801D630 movs r1, #0xa8 lsls r1, r1, #2 adds r0, r1, #0 _0808D046: strh r0, [r4] adds r4, #8 subs r5, #1 cmp r5, #0 bne _0808D046 ldr r1, _0808D060 @ =gUnk_03000000 movs r0, #1 strb r0, [r1] pop {r4, r5, pc} .align 2, 0 _0808D058: .4byte gUnk_03000020 _0808D05C: .4byte 0x00000B74 _0808D060: .4byte gUnk_03000000 thumb_func_start sub_0808D064 sub_0808D064: @ 0x0808D064 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] adds r1, r0, #0 adds r1, #0xff strb r1, [r4, #0xe] lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #0 beq _0808D0B4 adds r0, r4, #0 adds r0, #0x68 ldrh r3, [r0] adds r1, r3, #0 adds r2, r0, #0 cmp r1, #0 beq _0808D08C subs r0, r3, #2 strh r0, [r2] b _0808D08E _0808D08C: strh r1, [r2] _0808D08E: movs r1, #0x2e ldrsh r0, [r4, r1] movs r3, #0x32 ldrsh r1, [r4, r3] ldrh r2, [r2] bl sub_0801E1EC ldrb r0, [r4, #0xf] cmp r0, #0x80 bls _0808D0A6 subs r0, #8 strb r0, [r4, #0xf] _0808D0A6: ldrb r2, [r4, #0xf] adds r0, r4, #0 adds r1, r2, #0 movs r3, #0 bl sub_0805EC9C b _0808D0C2 _0808D0B4: ldr r1, _0808D0C4 @ =gUnk_02033A90 ldrb r0, [r1, #0xe] adds r0, #1 strb r0, [r1, #0xe] strh r2, [r1, #0x10] bl sub_0805E780 _0808D0C2: pop {r4, pc} .align 2, 0 _0808D0C4: .4byte gUnk_02033A90 thumb_func_start sub_0808D0C8 sub_0808D0C8: @ 0x0808D0C8 push {lr} ldr r2, _0808D0DC @ =gUnk_081216DC ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808D0DC: .4byte gUnk_081216DC thumb_func_start sub_0808D0E0 sub_0808D0E0: @ 0x0808D0E0 push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r6, [r5, #0xc] cmp r6, #1 beq _0808D12C cmp r6, #1 bgt _0808D0F4 cmp r6, #0 beq _0808D0FA b _0808D192 _0808D0F4: cmp r6, #2 beq _0808D150 b _0808D192 _0808D0FA: movs r4, #1 strb r4, [r5, #0xc] bl sub_08000E50 movs r1, #0x1f ands r0, r1 movs r1, #0x40 subs r1, r1, r0 strb r1, [r5, #0xe] strb r6, [r5, #0x1e] strb r6, [r5, #0x14] ldrb r0, [r5, #0x19] movs r1, #0xc0 orrs r0, r1 strb r0, [r5, #0x19] adds r2, r5, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x38 strb r4, [r0] b _0808D192 _0808D12C: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0808D192 movs r0, #8 strb r0, [r5, #0xe] movs r0, #4 strb r0, [r5, #0xf] movs r0, #2 strb r0, [r5, #0xc] bl sub_08000E50 movs r1, #3 ands r0, r1 strb r0, [r5, #0x14] b _0808D192 _0808D150: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] movs r1, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _0808D192 ldrb r0, [r5, #0xf] subs r0, #1 strb r0, [r5, #0xf] ands r0, r1 cmp r0, #0 bne _0808D180 strb r0, [r5, #0x1e] movs r0, #1 strb r0, [r5, #0xc] bl sub_08000E50 movs r1, #0x1f ands r0, r1 movs r1, #0x40 subs r1, r1, r0 strb r1, [r5, #0xe] b _0808D192 _0808D180: movs r0, #8 strb r0, [r5, #0xe] ldrb r1, [r5, #0x14] ldrb r0, [r5, #0x1e] movs r2, #0 cmp r0, r1 beq _0808D190 adds r2, r1, #0 _0808D190: strb r2, [r5, #0x1e] _0808D192: pop {r4, r5, r6, pc} thumb_func_start sub_0808D194 sub_0808D194: @ 0x0808D194 push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r1, [r5, #0xc] cmp r1, #1 beq _0808D234 cmp r1, #1 bgt _0808D1A8 cmp r1, #0 beq _0808D1AE b _0808D234 _0808D1A8: cmp r1, #2 beq _0808D1FC b _0808D234 _0808D1AE: movs r0, #1 strb r0, [r5, #0xc] movs r0, #8 strb r0, [r5, #0xe] strb r1, [r5, #0xf] strb r1, [r5, #0x1e] adds r2, r5, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] ldr r0, _0808D1F4 @ =0x00004069 movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _0808D1F8 @ =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 subs r1, #0x40 movs r2, #1 bl sub_0800015E b _0808D234 .align 2, 0 _0808D1F4: .4byte 0x00004069 _0808D1F8: .4byte gUnk_03000BF0 _0808D1FC: ldr r0, _0808D274 @ =gUnk_030010A0 ldr r3, [r0] movs r0, #3 ands r3, r0 cmp r3, #0 bne _0808D234 ldr r4, _0808D278 @ =gUnk_03000F50 ldrb r2, [r5, #0xd] lsls r1, r2, #8 movs r0, #0x10 subs r0, r0, r2 orrs r1, r0 adds r0, r4, #0 adds r0, #0x68 strh r1, [r0] ldrb r0, [r5, #0xd] adds r0, #1 strb r0, [r5, #0xd] lsls r1, r1, #0x10 movs r0, #0x80 lsls r0, r0, #0x15 cmp r1, r0 bne _0808D234 adds r0, r4, #0 adds r0, #0x66 strh r3, [r0] bl sub_0805E780 _0808D234: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0808D272 movs r0, #8 strb r0, [r5, #0xe] ldrb r0, [r5, #0xa] cmp r0, #9 bne _0808D24E movs r0, #2 strb r0, [r5, #0xe] _0808D24E: ldr r4, _0808D27C @ =gUnk_08121704 ldrb r0, [r5, #0xf] adds r1, r0, #1 strb r1, [r5, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x17 adds r0, r0, r4 ldrh r1, [r0] adds r0, r5, #0 bl sub_0801D2B4 ldrb r0, [r5, #0xf] lsls r0, r0, #1 adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0 bne _0808D272 strb r0, [r5, #0xf] _0808D272: pop {r4, r5, r6, pc} .align 2, 0 _0808D274: .4byte gUnk_030010A0 _0808D278: .4byte gUnk_03000F50 _0808D27C: .4byte gUnk_08121704 thumb_func_start sub_0808D280 sub_0808D280: @ 0x0808D280 push {r4, lr} sub sp, #4 movs r4, #0 str r4, [sp] movs r0, #6 movs r1, #0x3e movs r2, #6 movs r3, #9 bl sub_0805EB2C adds r2, r0, #0 cmp r2, #0 beq _0808D2C4 movs r0, #2 strb r0, [r2, #0xc] strb r4, [r2, #0xd] ldrb r1, [r2, #0x19] subs r0, #0xf ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2, #0x19] ldr r1, _0808D2C8 @ =gUnk_03000F50 adds r2, r1, #0 adds r2, #0x66 movs r0, #0xc8 lsls r0, r0, #3 strh r0, [r2] adds r1, #0x68 movs r0, #0x10 strh r0, [r1] movs r0, #0xf6 bl sub_080A3268 _0808D2C4: add sp, #4 pop {r4, pc} .align 2, 0 _0808D2C8: .4byte gUnk_03000F50 thumb_func_start sub_0808D2CC sub_0808D2CC: @ 0x0808D2CC push {lr} sub sp, #4 movs r0, #0 str r0, [sp] movs r0, #6 movs r1, #0x3e movs r2, #6 movs r3, #1 bl sub_0805EB2C adds r1, r0, #0 cmp r1, #0 beq _0808D2F2 movs r0, #9 strb r0, [r1, #0xa] adds r0, r1, #0 movs r1, #2 bl sub_0805E3A0 _0808D2F2: add sp, #4 pop {pc} .align 2, 0 thumb_func_start nullsub_521 nullsub_521: @ 0x0808D2F8 bx lr .align 2, 0 thumb_func_start sub_0808D2FC sub_0808D2FC: @ 0x0808D2FC push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0808D31C strb r0, [r4, #0xc] strb r0, [r4, #0x1e] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 bl sub_0807DD64 _0808D31C: movs r0, #0x2e ldrsh r5, [r4, r0] adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 ldr r0, _0808D354 @ =gUnk_03000BF0 ldrh r0, [r0, #0x16] cmp r0, #0 beq _0808D350 movs r1, #0x2e ldrsh r0, [r4, r1] cmp r5, r0 beq _0808D350 ldr r0, _0808D358 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #8 ands r0, r1 cmp r0, #0 bne _0808D350 ldr r0, _0808D35C @ =0x0000010F bl sub_080A3268 _0808D350: pop {r4, r5, pc} .align 2, 0 _0808D354: .4byte gUnk_03000BF0 _0808D358: .4byte gUnk_030010A0 _0808D35C: .4byte 0x0000010F thumb_func_start sub_0808D360 sub_0808D360: @ 0x0808D360 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0808D382 strb r0, [r4, #0xc] movs r0, #1 strb r0, [r4, #0x1e] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 bl sub_0807DD64 _0808D382: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 pop {r4, pc} .align 2, 0 thumb_func_start sub_0808D394 sub_0808D394: @ 0x0808D394 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xc] cmp r0, #0 bne _0808D3C4 movs r0, #1 strb r0, [r5, #0xc] movs r0, #8 strb r0, [r5, #0xe] adds r2, r5, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] ldr r1, _0808D3FC @ =gUnk_03000F50 adds r2, r1, #0 adds r2, #0x66 movs r0, #0xc8 lsls r0, r0, #3 strh r0, [r2] adds r1, #0x68 ldr r0, _0808D400 @ =0x00001003 strh r0, [r1] _0808D3C4: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0808D3F8 movs r0, #2 strb r0, [r5, #0xe] ldr r4, _0808D404 @ =gUnk_08121720 ldrb r0, [r5, #0xf] adds r1, r0, #1 strb r1, [r5, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x17 adds r0, r0, r4 ldrh r1, [r0] adds r0, r5, #0 bl sub_0801D28C ldrb r0, [r5, #0xf] lsls r0, r0, #1 adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0 bne _0808D3F8 strb r0, [r5, #0xf] _0808D3F8: pop {r4, r5, pc} .align 2, 0 _0808D3FC: .4byte gUnk_03000F50 _0808D400: .4byte 0x00001003 _0808D404: .4byte gUnk_08121720 thumb_func_start sub_0808D408 sub_0808D408: @ 0x0808D408 push {lr} adds r3, r0, #0 ldrb r0, [r3, #0xc] cmp r0, #0 bne _0808D458 movs r1, #1 strb r1, [r3, #0xc] ldrb r0, [r3, #0x19] movs r2, #0xc0 orrs r0, r2 strb r0, [r3, #0x19] movs r0, #0x29 adds r0, r0, r3 mov ip, r0 ldrb r0, [r0] movs r2, #7 orrs r0, r2 mov r2, ip strb r0, [r2] ldrb r2, [r3, #0x19] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 movs r2, #4 orrs r0, r2 strb r0, [r3, #0x19] ldrb r0, [r3, #0xb] strb r0, [r3, #0x1e] ldrb r0, [r3, #0xb] subs r1, r1, r0 lsls r1, r1, #9 movs r0, #0x80 lsls r0, r0, #1 adds r1, r1, r0 movs r2, #0xc0 rsbs r2, r2, #0 adds r0, r3, #0 movs r3, #0 bl sub_0805EC9C _0808D458: pop {pc} .align 2, 0 thumb_func_start sub_0808D45C sub_0808D45C: @ 0x0808D45C push {lr} ldr r2, _0808D470 @ =gUnk_0812172C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808D470: .4byte gUnk_0812172C thumb_func_start sub_0808D474 sub_0808D474: @ 0x0808D474 push {r4, r5, lr} adds r5, r0, #0 adds r2, r5, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] ldrb r0, [r5, #0xb] strb r0, [r5, #0x1e] movs r1, #2 strb r1, [r5, #0xc] lsls r0, r0, #0x18 cmp r0, #0 bne _0808D4D4 movs r0, #0x7c bl sub_0807CBD0 adds r1, r0, #0 cmp r1, #0 bne _0808D4D4 movs r0, #1 strb r0, [r5, #0xc] strb r1, [r5, #0xe] ldrb r1, [r5, #0x19] subs r0, #0xe ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r5, #0x19] ldr r1, _0808D4CC @ =gUnk_03000F50 adds r2, r1, #0 adds r2, #0x66 movs r0, #0xc8 lsls r0, r0, #3 strh r0, [r2] adds r1, #0x68 movs r0, #0x80 lsls r0, r0, #5 strh r0, [r1] ldr r0, _0808D4D0 @ =0x00000179 bl sub_080A3268 b _0808D50E .align 2, 0 _0808D4CC: .4byte gUnk_03000F50 _0808D4D0: .4byte 0x00000179 _0808D4D4: movs r0, #8 strb r0, [r5, #0xe] movs r1, #0x2e ldrsh r0, [r5, r1] ldr r3, _0808D510 @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r0, r0, r1 asrs r4, r0, #4 movs r2, #0x3f ands r4, r2 movs r1, #0x32 ldrsh r0, [r5, r1] ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r4, r0 ldrb r0, [r5, #0xb] cmp r0, #0 beq _0808D500 subs r4, #0x40 _0808D500: ldr r0, _0808D514 @ =0x00004069 adds r1, r5, #0 adds r1, #0x38 ldrb r2, [r1] adds r1, r4, #0 bl sub_0800015E _0808D50E: pop {r4, r5, pc} .align 2, 0 _0808D510: .4byte gUnk_03000BF0 _0808D514: .4byte 0x00004069 thumb_func_start sub_0808D518 sub_0808D518: @ 0x0808D518 push {r4, r5, r6, lr} adds r5, r0, #0 ldr r0, _0808D58C @ =gUnk_030010A0 ldr r2, [r0] movs r0, #3 ands r2, r0 cmp r2, #0 bne _0808D58A ldr r3, _0808D590 @ =gUnk_03000F50 ldrb r0, [r5, #0xe] movs r1, #0x10 subs r1, r1, r0 lsls r1, r1, #8 orrs r1, r0 adds r0, r3, #0 adds r0, #0x68 strh r1, [r0] ldrb r0, [r5, #0xe] adds r0, #1 strb r0, [r5, #0xe] lsls r1, r1, #0x10 lsrs r1, r1, #0x10 cmp r1, #0x10 bne _0808D58A movs r0, #2 strb r0, [r5, #0xc] movs r0, #8 strb r0, [r5, #0xe] ldrb r1, [r5, #0x19] subs r0, #0x15 ands r0, r1 strb r0, [r5, #0x19] adds r0, r3, #0 adds r0, #0x66 strh r2, [r0] ldr r0, _0808D594 @ =0x00004069 movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _0808D598 @ =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 _0808D58A: pop {r4, r5, r6, pc} .align 2, 0 _0808D58C: .4byte gUnk_030010A0 _0808D590: .4byte gUnk_03000F50 _0808D594: .4byte 0x00004069 _0808D598: .4byte gUnk_03000BF0 thumb_func_start sub_0808D59C sub_0808D59C: @ 0x0808D59C push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0808D5D4 movs r0, #8 strb r0, [r5, #0xe] ldr r4, _0808D5D8 @ =gUnk_08121738 ldrb r0, [r5, #0xf] adds r1, r0, #1 strb r1, [r5, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x17 adds r0, r0, r4 ldrh r1, [r0] adds r0, r5, #0 bl sub_0801D2B4 ldrb r0, [r5, #0xf] lsls r0, r0, #1 adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0 bne _0808D5D4 strb r0, [r5, #0xf] _0808D5D4: pop {r4, r5, pc} .align 2, 0 _0808D5D8: .4byte gUnk_08121738 thumb_func_start sub_0808D5DC sub_0808D5DC: @ 0x0808D5DC push {lr} adds r3, r0, #0 ldrb r0, [r3, #0xc] cmp r0, #0 bne _0808D614 movs r2, #1 movs r0, #1 strb r0, [r3, #0xc] ldrb r1, [r3, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r3, #0x18] ldrb r0, [r3, #0x19] movs r1, #0xc0 orrs r0, r1 strb r0, [r3, #0x19] adds r2, r3, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] ldrb r0, [r3, #0xa] strb r0, [r3, #0x1e] adds r0, r3, #0 bl sub_0808D618 _0808D614: pop {pc} .align 2, 0 thumb_func_start sub_0808D618 sub_0808D618: @ 0x0808D618 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] ldr r7, _0808D664 @ =gUnk_08121750 cmp r0, #0 beq _0808D626 ldr r7, _0808D668 @ =gUnk_0812176A _0808D626: movs r1, #0x2e ldrsh r0, [r4, r1] ldr r3, _0808D66C @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r0, r0, r1 asrs r5, r0, #4 movs r2, #0x3f ands r5, r2 movs r1, #0x32 ldrsh r0, [r4, r1] ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r5, r0 movs r6, #0 adds r4, r7, #0 _0808D64A: movs r0, #0 ldrsh r1, [r4, r0] adds r1, r5, r1 ldr r0, _0808D670 @ =0x00004074 movs r2, #1 bl sub_0800015E adds r4, #2 adds r6, #1 cmp r6, #0xc bls _0808D64A pop {r4, r5, r6, r7, pc} .align 2, 0 _0808D664: .4byte gUnk_08121750 _0808D668: .4byte gUnk_0812176A _0808D66C: .4byte gUnk_03000BF0 _0808D670: .4byte 0x00004074 thumb_func_start sub_0808D674 sub_0808D674: @ 0x0808D674 push {r4, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808D750 movs r0, #0x7f ands r0, r1 cmp r0, #0x1f bhi _0808D750 lsls r0, r0, #2 ldr r1, _0808D698 @ =_0808D69C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0808D698: .4byte _0808D69C _0808D69C: @ jump table .4byte _0808D740 @ case 0 .4byte _0808D740 @ case 1 .4byte _0808D750 @ case 2 .4byte _0808D750 @ case 3 .4byte _0808D740 @ case 4 .4byte _0808D740 @ case 5 .4byte _0808D740 @ case 6 .4byte _0808D750 @ case 7 .4byte _0808D740 @ case 8 .4byte _0808D740 @ case 9 .4byte _0808D740 @ case 10 .4byte _0808D740 @ case 11 .4byte _0808D740 @ case 12 .4byte _0808D750 @ case 13 .4byte _0808D750 @ case 14 .4byte _0808D750 @ case 15 .4byte _0808D750 @ case 16 .4byte _0808D750 @ case 17 .4byte _0808D750 @ case 18 .4byte _0808D748 @ case 19 .4byte _0808D71C @ case 20 .4byte _0808D750 @ case 21 .4byte _0808D750 @ case 22 .4byte _0808D750 @ case 23 .4byte _0808D750 @ case 24 .4byte _0808D750 @ case 25 .4byte _0808D750 @ case 26 .4byte _0808D750 @ case 27 .4byte _0808D750 @ case 28 .4byte _0808D750 @ case 29 .4byte _0808D740 @ case 30 .4byte _0808D73C @ case 31 _0808D71C: movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] ldr r0, [r4, #0x4c] str r0, [r4, #0x54] b _0808D750 _0808D73C: bl sub_0805E780 _0808D740: adds r0, r4, #0 bl sub_0808DAD0 b _0808D750 _0808D748: adds r0, r4, #0 bl sub_0808D76C b _0808D766 _0808D750: ldr r0, _0808D768 @ =gUnk_08121784 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_08080CB4 _0808D766: pop {r4, pc} .align 2, 0 _0808D768: .4byte gUnk_08121784 thumb_func_start sub_0808D76C sub_0808D76C: @ 0x0808D76C push {lr} ldr r2, _0808D780 @ =gUnk_08121798 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808D780: .4byte gUnk_08121798 thumb_func_start sub_0808D784 sub_0808D784: @ 0x0808D784 movs r3, #1 movs r1, #1 strb r1, [r0, #0xd] strb r1, [r0, #0x1d] ldrb r2, [r0, #0x18] subs r1, #5 ands r1, r2 orrs r1, r3 strb r1, [r0, #0x18] bx lr thumb_func_start sub_0808D798 sub_0808D798: @ 0x0808D798 push {lr} bl sub_0806F4E8 pop {pc} thumb_func_start sub_0808D7A0 sub_0808D7A0: @ 0x0808D7A0 push {r4, lr} adds r4, r0, #0 bl sub_0806F3E4 cmp r0, #0 beq _0808D7B2 adds r0, r4, #0 bl sub_0808DB2C _0808D7B2: pop {r4, pc} thumb_func_start sub_0808D7B4 sub_0808D7B4: @ 0x0808D7B4 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x38 movs r0, #3 strb r0, [r1] adds r0, r4, #0 adds r0, #0x3c movs r2, #0x17 strb r2, [r0] adds r1, #8 movs r0, #0x49 strb r0, [r1] subs r1, #1 movs r0, #7 strb r0, [r1] adds r0, r4, #0 adds r0, #0x3b strb r2, [r0] adds r1, #6 movs r0, #0xff strb r0, [r1] ldr r0, _0808D818 @ =gUnk_080FD1A8 str r0, [r4, #0x48] movs r0, #1 strb r0, [r4, #0x1c] ldrh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x74 strh r1, [r0] ldrh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x76 strh r0, [r1] adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 movs r0, #0x9b lsls r0, r0, #1 bl sub_08004488 ldrb r0, [r4, #0xb] cmp r0, #2 beq _0808D834 cmp r0, #2 bgt _0808D81C cmp r0, #0 beq _0808D822 b _0808D82E .align 2, 0 _0808D818: .4byte gUnk_080FD1A8 _0808D81C: cmp r0, #3 beq _0808D83C b _0808D82E _0808D822: movs r0, #0xf0 lsls r0, r0, #9 str r0, [r4, #0x20] ldrh r0, [r4, #0x36] adds r0, #8 strh r0, [r4, #0x36] _0808D82E: movs r0, #1 strb r0, [r4, #0xc] b _0808D842 _0808D834: adds r0, r4, #0 bl sub_0808DAD0 b _0808D842 _0808D83C: adds r0, r4, #0 bl sub_0808DB2C _0808D842: pop {r4, pc} thumb_func_start sub_0808D844 sub_0808D844: @ 0x0808D844 push {lr} adds r3, r0, #0 ldr r0, [r3, #0x34] ldr r1, _0808D870 @ =0xFFFF2000 adds r0, r0, r1 str r0, [r3, #0x34] adds r0, r3, #0 adds r0, #0x5a ldrb r0, [r0] cmp r0, #0 beq _0808D88A ldrb r0, [r3, #0xe] cmp r0, #0 beq _0808D874 adds r2, r3, #0 adds r2, #0x78 ldrh r1, [r2] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #1 strh r0, [r2] b _0808D87E .align 2, 0 _0808D870: .4byte 0xFFFF2000 _0808D874: adds r1, r3, #0 adds r1, #0x78 movs r0, #0x96 lsls r0, r0, #2 strh r0, [r1] _0808D87E: movs r0, #2 strb r0, [r3, #0xc] movs r0, #1 strb r0, [r3, #0xf] movs r0, #0x80 strh r0, [r3, #0x24] _0808D88A: pop {pc} thumb_func_start sub_0808D88C sub_0808D88C: @ 0x0808D88C push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0808D910 bl sub_08000E50 adds r5, r0, #0 ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x10] movs r0, #0x20 strb r0, [r4, #0xf] ldr r2, _0808D8D0 @ =gUnk_081217A4 lsrs r0, r5, #8 movs r1, #1 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_0808DAA0 cmp r0, #0 beq _0808D8D4 movs r0, #0x1f ands r5, r0 strb r5, [r4, #0x15] b _0808D8EE .align 2, 0 _0808D8D0: .4byte gUnk_081217A4 _0808D8D4: movs r1, #0x2e ldrsh r0, [r4, r1] movs r2, #0x32 ldrsh r1, [r4, r2] adds r2, r4, #0 adds r2, #0x74 ldrh r2, [r2] adds r3, r4, #0 adds r3, #0x76 ldrh r3, [r3] bl sub_080045D4 strb r0, [r4, #0x15] _0808D8EE: ldrb r1, [r4, #0x15] movs r0, #0xf ands r0, r1 cmp r0, #0 beq _0808D910 movs r0, #0x10 eors r1, r0 lsrs r1, r1, #4 movs r0, #1 ands r1, r0 lsls r1, r1, #6 ldrb r2, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] _0808D910: adds r0, r4, #0 bl sub_080AEFB4 bl sub_0805E40C cmp r0, #0 bne _0808D954 ldrb r0, [r4, #0xb] cmp r0, #0 bne _0808D954 adds r5, r4, #0 adds r5, #0x78 ldrh r0, [r5] subs r0, #1 strh r0, [r5] lsls r0, r0, #0x10 cmp r0, #0 bne _0808D93C adds r0, r4, #0 movs r1, #0 bl sub_08081404 _0808D93C: ldrh r0, [r5] cmp r0, #0x77 bhi _0808D954 ldrb r2, [r4, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #1 eors r1, r0 subs r0, #5 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] _0808D954: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0808D958 sub_0808D958: @ 0x0808D958 push {r4, lr} adds r4, r0, #0 ldr r2, [r4, #0x54] ldrh r1, [r2, #8] movs r0, #0xc2 lsls r0, r0, #2 cmp r1, r0 beq _0808D972 adds r0, r4, #0 movs r1, #0 bl sub_08081404 b _0808D992 _0808D972: adds r0, r2, #0 adds r1, r4, #0 bl sub_0806FA24 ldrh r0, [r4, #0x36] subs r0, #1 strh r0, [r4, #0x36] ldr r1, _0808D994 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080177A0 cmp r0, #0 beq _0808D992 adds r0, r4, #0 bl sub_0808DB2C _0808D992: pop {r4, pc} .align 2, 0 _0808D994: .4byte gUnk_03001160 thumb_func_start sub_0808D998 sub_0808D998: @ 0x0808D998 push {r4, r5, r6, lr} adds r5, r0, #0 ldr r6, [r5, #0x54] ldr r2, _0808DA28 @ =gUnk_080C9160 ldrb r0, [r5, #0xe] lsls r0, r0, #1 adds r0, r0, r2 movs r3, #0 ldrsh r1, [r0, r3] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 cmp r0, #0 bge _0808D9B8 ldr r1, _0808DA2C @ =0x0000FFFF adds r0, r0, r1 _0808D9B8: asrs r0, r0, #0x10 ldrh r3, [r6, #0x2e] adds r0, r0, r3 strh r0, [r5, #0x2e] ldrb r0, [r5, #0xe] adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r2 movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #8 cmp r0, #0 bge _0808D9DA ldr r3, _0808DA2C @ =0x0000FFFF adds r0, r0, r3 _0808D9DA: asrs r1, r0, #0x10 ldrh r0, [r6, #0x32] subs r0, r0, r1 strh r0, [r5, #0x32] ldrb r3, [r5, #0xe] adds r0, r3, #0 adds r0, #8 strb r0, [r5, #0xe] ldrh r0, [r6, #0x36] strh r0, [r5, #0x36] ldrb r2, [r6, #0x1b] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r4, [r5, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r4 orrs r0, r2 strb r0, [r5, #0x1b] ldrb r0, [r6, #0x19] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r5, #0x19] ands r1, r2 orrs r1, r0 strb r1, [r5, #0x19] subs r3, #0x39 lsls r3, r3, #0x18 lsrs r3, r3, #0x18 cmp r3, #0x7e bhi _0808DA30 adds r2, r5, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #8 rsbs r1, r1, #0 ands r1, r0 movs r0, #3 b _0808DA3E .align 2, 0 _0808DA28: .4byte gUnk_080C9160 _0808DA2C: .4byte 0x0000FFFF _0808DA30: adds r2, r5, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #8 rsbs r1, r1, #0 ands r1, r0 movs r0, #5 _0808DA3E: orrs r1, r0 strb r1, [r2] ldrb r0, [r5, #0xf] subs r0, #1 strb r0, [r5, #0xf] lsls r0, r0, #0x18 adds r4, r5, #0 adds r4, #0x63 cmp r0, #0 bne _0808DA70 movs r0, #6 strb r0, [r5, #0xf] ldrb r0, [r4] subs r0, #1 strb r0, [r4] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #0x16 rsbs r1, r1, #0 cmp r0, r1 bge _0808DA70 adds r0, r5, #0 movs r1, #1 bl sub_08081404 _0808DA70: movs r1, #0 ldrsb r1, [r4, r1] movs r0, #0x11 rsbs r0, r0, #0 cmp r1, r0 bge _0808DA8E ldrb r2, [r5, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #1 eors r1, r0 subs r0, #5 ands r0, r2 orrs r0, r1 strb r0, [r5, #0x18] _0808DA8E: adds r1, r5, #0 adds r1, #0x87 ldrb r0, [r1] cmp r0, #0xa bls _0808DA9C movs r0, #0xa strb r0, [r1] _0808DA9C: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0808DAA0 sub_0808DAA0: @ 0x0808DAA0 push {lr} adds r2, r0, #0 movs r1, #0x2e ldrsh r0, [r2, r1] adds r1, r2, #0 adds r1, #0x74 ldrh r1, [r1] subs r0, r0, r1 adds r0, #0x30 cmp r0, #0x60 bhi _0808DACC movs r1, #0x32 ldrsh r0, [r2, r1] adds r1, r2, #0 adds r1, #0x76 ldrh r1, [r1] subs r0, r0, r1 adds r0, #0x30 cmp r0, #0x60 bhi _0808DACC movs r0, #1 b _0808DACE _0808DACC: movs r0, #0 _0808DACE: pop {pc} thumb_func_start sub_0808DAD0 sub_0808DAD0: @ 0x0808DAD0 push {r4, lr} adds r4, r0, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _0808DAE0 bl sub_0805E780 _0808DAE0: movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x80 strb r0, [r4, #0xe] movs r0, #6 strb r0, [r4, #0xf] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 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, #0x10 orrs r0, r1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x63 movs r0, #0xfb strb r0, [r1] ldr r0, _0808DB28 @ =gUnk_03001160 str r0, [r4, #0x54] adds r1, r4, #0 bl sub_0806FA24 pop {r4, pc} .align 2, 0 _0808DB28: .4byte gUnk_03001160 thumb_func_start sub_0808DB2C sub_0808DB2C: @ 0x0808DB2C push {lr} adds r1, r0, #0 movs r2, #0 movs r0, #2 strb r0, [r1, #0xc] strb r2, [r1, #0xd] ldrb r2, [r1, #0x10] movs r0, #0x80 orrs r0, r2 strb r0, [r1, #0x10] adds r2, r1, #0 adds r2, #0x3b movs r0, #1 strb r0, [r2] ldr r0, _0808DB50 @ =gUnk_03001160 bl sub_0806FA24 pop {pc} .align 2, 0 _0808DB50: .4byte gUnk_03001160 thumb_func_start sub_0808DB54 sub_0808DB54: @ 0x0808DB54 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r7, r0, #0 ldrb r0, [r7, #0xc] cmp r0, #1 beq _0808DBE8 cmp r0, #1 bgt _0808DB6C cmp r0, #0 beq _0808DB72 b _0808DC46 _0808DB6C: cmp r0, #2 beq _0808DC2C b _0808DC46 _0808DB72: ldrb r0, [r7, #0xe] movs r1, #3 cmp r0, #0 beq _0808DB7C movs r1, #1 _0808DB7C: strb r1, [r7, #0xc] adds r1, r7, #0 adds r1, #0x63 ldrb r0, [r1] adds r0, #8 strb r0, [r1] adds r0, r7, #0 movs r1, #0xa bl sub_08004260 ldrb r0, [r7, #0xc] cmp r0, #1 bne _0808DB9A ldr r0, _0808DBDC @ =0x0000FF80 strh r0, [r7, #0x36] _0808DB9A: ldrb r0, [r7, #0xb] cmp r0, #0 beq _0808DBA2 b _0808DD72 _0808DBA2: ldrh r1, [r7, #0x32] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 adds r0, #0xc strh r0, [r7, #0x32] ldr r0, _0808DBE0 @ =0x00004023 movs r2, #0x2e ldrsh r1, [r7, r2] ldr r3, _0808DBE4 @ =gUnk_03000BF0 ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 movs r4, #0x3f ands r1, r4 movs r5, #0x32 ldrsh r2, [r7, r5] ldrh r3, [r3, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r4 lsls r2, r2, #6 orrs r1, r2 adds r2, r7, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E b _0808DD72 .align 2, 0 _0808DBDC: .4byte 0x0000FF80 _0808DBE0: .4byte 0x00004023 _0808DBE4: .4byte gUnk_03000BF0 _0808DBE8: movs r1, #0x80 lsls r1, r1, #5 adds r0, r7, #0 bl sub_08003FC4 cmp r0, #0 beq _0808DBF8 b _0808DD72 _0808DBF8: adds r0, r7, #0 movs r1, #0x46 movs r2, #0x40 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _0808DC0E ldrh r0, [r1, #0x32] adds r0, #8 strh r0, [r1, #0x32] _0808DC0E: movs r0, #0x1e movs r1, #0 bl sub_08080964 ldr r0, _0808DC28 @ =0x0000010B bl sub_080A3268 movs r0, #2 strb r0, [r7, #0xc] movs r0, #0x3c strb r0, [r7, #0xe] b _0808DD72 .align 2, 0 _0808DC28: .4byte 0x0000010B _0808DC2C: ldrb r0, [r7, #0xe] subs r0, #1 strb r0, [r7, #0xe] lsls r0, r0, #0x18 cmp r0, #0 beq _0808DC3A b _0808DD72 _0808DC3A: movs r0, #3 strb r0, [r7, #0xc] movs r0, #0x73 bl sub_080A3268 b _0808DD72 _0808DC46: ldrb r0, [r7, #0xb] cmp r0, #0 beq _0808DC4E b _0808DD72 _0808DC4E: ldr r0, _0808DCC8 @ =gUnk_03001160 movs r2, #0x32 ldrsh r1, [r0, r2] movs r3, #0x32 ldrsh r0, [r7, r3] cmp r1, r0 bge _0808DCDC ldr r0, _0808DCCC @ =gUnk_03003F80 ldrb r0, [r0, #0x12] cmp r0, #0x1e bne _0808DC66 b _0808DD72 _0808DC66: adds r0, r7, #0 bl sub_080002A0 ldr r1, _0808DCD0 @ =0x00004017 cmp r0, r1 beq _0808DC74 b _0808DD72 _0808DC74: ldr r0, _0808DCD4 @ =0x00004023 movs r5, #0x2e ldrsh r1, [r7, r5] ldr r4, _0808DCD8 @ =gUnk_03000BF0 ldrh r2, [r4, #6] subs r1, r1, r2 asrs r1, r1, #4 movs r5, #0x3f ands r1, r5 movs r3, #0x32 ldrsh r2, [r7, r3] ldrh r3, [r4, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r5 lsls r2, r2, #6 orrs r1, r2 adds r6, r7, #0 adds r6, #0x38 ldrb r2, [r6] bl sub_0800015E movs r1, #0x2e ldrsh r0, [r7, r1] ldrh r1, [r4, #6] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r5 movs r2, #0x32 ldrsh r1, [r7, r2] ldrh r2, [r4, #8] adds r2, #0x10 subs r1, r1, r2 asrs r1, r1, #4 ands r1, r5 lsls r1, r1, #6 orrs r0, r1 ldrb r1, [r6] bl sub_0807BA8C b _0808DD72 .align 2, 0 _0808DCC8: .4byte gUnk_03001160 _0808DCCC: .4byte gUnk_03003F80 _0808DCD0: .4byte 0x00004017 _0808DCD4: .4byte 0x00004023 _0808DCD8: .4byte gUnk_03000BF0 _0808DCDC: adds r0, r7, #0 bl sub_080002A0 ldr r3, _0808DD44 @ =0x00004017 mov r8, r3 cmp r0, r8 beq _0808DD72 movs r5, #0x2e ldrsh r1, [r7, r5] ldr r5, _0808DD48 @ =gUnk_03000BF0 ldrh r0, [r5, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r6, #0x3f ands r1, r6 movs r2, #0x32 ldrsh r0, [r7, r2] ldrh r2, [r5, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r6 lsls r0, r0, #6 orrs r1, r0 adds r4, r7, #0 adds r4, #0x38 ldrb r2, [r4] mov r0, r8 bl sub_0800015E ldrb r0, [r7, #0xa] cmp r0, #0 bne _0808DD4C movs r3, #0x2e ldrsh r1, [r7, r3] ldrh r0, [r5, #6] subs r1, r1, r0 asrs r1, r1, #4 ands r1, r6 movs r2, #0x32 ldrsh r0, [r7, r2] ldrh r2, [r5, #8] adds r2, #0x10 subs r0, r0, r2 asrs r0, r0, #4 ands r0, r6 lsls r0, r0, #6 orrs r1, r0 ldrb r2, [r4] mov r0, r8 bl sub_0800015E b _0808DD72 .align 2, 0 _0808DD44: .4byte 0x00004017 _0808DD48: .4byte gUnk_03000BF0 _0808DD4C: ldr r0, _0808DD78 @ =0x00004014 movs r3, #0x2e ldrsh r1, [r7, r3] ldrh r2, [r5, #6] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r6 movs r3, #0x32 ldrsh r2, [r7, r3] ldrh r3, [r5, #8] adds r3, #0x10 subs r2, r2, r3 asrs r2, r2, #4 ands r2, r6 lsls r2, r2, #6 orrs r1, r2 ldrb r2, [r4] bl sub_0800015E _0808DD72: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0808DD78: .4byte 0x00004014 thumb_func_start sub_0808DD7C sub_0808DD7C: @ 0x0808DD7C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xa] cmp r0, #0 beq _0808DD9C ldr r0, _0808DD98 @ =gUnk_081217B0 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 b _0808DDAC .align 2, 0 _0808DD98: .4byte gUnk_081217B0 _0808DD9C: ldr r0, _0808DDB0 @ =gUnk_081217A8 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 _0808DDAC: pop {pc} .align 2, 0 _0808DDB0: .4byte gUnk_081217A8 thumb_func_start sub_0808DDB4 sub_0808DDB4: @ 0x0808DDB4 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xa] cmp r0, #0 beq _0808DDDC movs r0, #0x78 strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x6c movs r0, #0xf0 strh r0, [r1] adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_0808DDE8 _0808DDDC: pop {r4, pc} .align 2, 0 thumb_func_start sub_0808DDE0 sub_0808DDE0: @ 0x0808DDE0 push {lr} bl sub_0805E780 pop {pc} thumb_func_start sub_0808DDE8 sub_0808DDE8: @ 0x0808DDE8 push {r4, r5, lr} adds r5, r0, #0 adds r4, r5, #0 adds r4, #0x6c ldrh r0, [r4] subs r0, #1 strh r0, [r4] bl sub_0807953C cmp r0, #0 beq _0808DE04 ldrb r0, [r5, #0xf] adds r0, #1 strb r0, [r5, #0xf] _0808DE04: ldrb r0, [r5, #0xf] cmp r0, #0x1e bhi _0808DE1C ldr r0, _0808DE8C @ =gUnk_03003F80 ldr r0, [r0, #0x30] ldr r1, _0808DE90 @ =0x00001810 ands r0, r1 cmp r0, #0 bne _0808DE1C ldrh r0, [r4] cmp r0, #0 bne _0808DE2A _0808DE1C: ldr r0, _0808DE8C @ =gUnk_03003F80 ldr r1, [r0, #0x30] ldr r2, _0808DE94 @ =0xFFFFFBFF ands r1, r2 str r1, [r0, #0x30] bl sub_0805E780 _0808DE2A: ldr r3, _0808DE98 @ =gUnk_03001160 ldr r1, _0808DE9C @ =gUnk_081217B8 ldrb r0, [r3, #0x14] lsrs r0, r0, #1 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r3, #0x2e] adds r0, r0, r1 strh r0, [r5, #0x2e] ldrh r0, [r3, #0x32] subs r0, #6 strh r0, [r5, #0x32] ldr r0, [r3, #0x34] str r0, [r5, #0x34] adds r0, r3, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r5, #0 adds r0, #0x38 strb r1, [r0] ldrb r2, [r3, #0x19] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r4, [r5, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r4 orrs r0, r2 strb r0, [r5, #0x19] ldrb r0, [r3, #0x1b] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r5, #0x1b] ands r1, r2 orrs r1, r0 strb r1, [r5, #0x1b] ldr r0, _0808DE8C @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 lsls r1, r1, #3 ands r0, r1 cmp r0, #0 beq _0808DEA0 adds r0, r5, #0 bl sub_08004274 b _0808DEA4 .align 2, 0 _0808DE8C: .4byte gUnk_03003F80 _0808DE90: .4byte 0x00001810 _0808DE94: .4byte 0xFFFFFBFF _0808DE98: .4byte gUnk_03001160 _0808DE9C: .4byte gUnk_081217B8 _0808DEA0: bl sub_0805E780 _0808DEA4: ldr r1, _0808DEC0 @ =gUnk_03001160 ldrb r0, [r1, #0x14] lsrs r0, r0, #1 cmp r0, #2 bne _0808DEC4 adds r0, r1, #0 movs r1, #3 adds r2, r5, #0 bl sub_0806FEBC ldrh r0, [r5, #0x32] subs r0, #5 strh r0, [r5, #0x32] b _0808DECE .align 2, 0 _0808DEC0: .4byte gUnk_03001160 _0808DEC4: adds r0, r1, #0 movs r1, #0 adds r2, r5, #0 bl sub_0806FEBC _0808DECE: pop {r4, r5, pc} thumb_func_start sub_0808DED0 sub_0808DED0: @ 0x0808DED0 push {lr} ldr r2, _0808DEE4 @ =gUnk_081217BC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808DEE4: .4byte gUnk_081217BC thumb_func_start sub_0808DEE8 sub_0808DEE8: @ 0x0808DEE8 push {r4, r5, lr} adds r5, r0, #0 movs r4, #0 movs r0, #1 strb r0, [r5, #0xc] ldrb r1, [r5, #0x10] movs r0, #0x20 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 strb r0, [r2] ldr r3, _0808DF74 @ =gUnk_03001160 ldrb r1, [r3, #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 r0, [r3, #0x14] lsrs r0, r0, #1 strb r0, [r5, #0x14] adds r0, #1 movs r1, #3 ands r0, r1 lsls r0, r0, #3 strb r0, [r5, #0x15] movs r3, #6 movs r0, #6 strb r0, [r5, #0xf] movs r0, #0xa0 lsls r0, r0, #1 strh r0, [r5, #0x24] adds r1, r5, #0 adds r1, #0x60 movs r0, #0x3c strh r0, [r1] ldrb r1, [r5, #0x1a] movs r2, #0x10 rsbs r2, r2, #0 adds r0, r2, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r5, #0x1a] adds r0, r5, #0 adds r0, #0x72 strh r4, [r0] subs r0, #6 strh r4, [r0] ldrb r0, [r5, #0x11] ands r2, r0 orrs r2, r3 strb r2, [r5, #0x11] adds r0, r5, #0 movs r1, #7 bl sub_08004260 ldrb r0, [r5, #0xb] cmp r0, #0 beq _0808DF78 movs r0, #0x28 strb r0, [r5, #0xe] b _0808DFAA .align 2, 0 _0808DF74: .4byte gUnk_03001160 _0808DF78: ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r5, #0x18] ldr r0, _0808DF9C @ =gUnk_03003F80 adds r0, #0xac ldrh r1, [r0] movs r0, #0x80 lsls r0, r0, #2 ands r0, r1 cmp r0, #0 beq _0808DFA0 movs r0, #0x28 b _0808DFA2 .align 2, 0 _0808DF9C: .4byte gUnk_03003F80 _0808DFA0: movs r0, #0x50 _0808DFA2: strb r0, [r5, #0xe] adds r0, r5, #0 bl sub_0808DFAC _0808DFAA: pop {r4, r5, pc} thumb_func_start sub_0808DFAC sub_0808DFAC: @ 0x0808DFAC push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r0, [r4, #0xb] cmp r0, #0 beq _0808E00E ldr r1, _0808DFF0 @ =gUnk_03003F80 adds r0, r1, #0 adds r0, #0x21 ldrb r0, [r0] cmp r0, #0 beq _0808DFCC ldrb r1, [r1, #4] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808DFD0 _0808DFCC: bl sub_0805E780 _0808DFD0: ldr r0, _0808DFF0 @ =gUnk_03003F80 adds r2, r0, #0 adds r2, #0x21 ldrb r0, [r2] cmp r0, #0x4f bls _0808DFF8 ldrb r0, [r4, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 movs r0, #1 orrs r1, r0 strb r1, [r4, #0x18] ldrb r6, [r2] ldr r7, _0808DFF4 @ =gUnk_081217D8 b _0808E038 .align 2, 0 _0808DFF0: .4byte gUnk_03003F80 _0808DFF4: .4byte gUnk_081217D8 _0808DFF8: cmp r0, #0 beq _0808E008 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] b _0808E1BA _0808E008: bl sub_0805E780 b _0808E038 _0808E00E: ldr r5, _0808E02C @ =gUnk_03003F80 ldrb r0, [r5, #4] cmp r0, #0 bne _0808E01A bl sub_0805E780 _0808E01A: ldrb r1, [r5, #0x1b] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0808E034 ldrb r6, [r5, #0x1b] ldr r7, _0808E030 @ =gUnk_081217D0 b _0808E038 .align 2, 0 _0808E02C: .4byte gUnk_03003F80 _0808E030: .4byte gUnk_081217D0 _0808E034: bl sub_0805E780 _0808E038: cmp r6, #0 bne _0808E03E b _0808E1B6 _0808E03E: adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0xe] cmp r0, #0 beq _0808E084 subs r0, #1 strb r0, [r4, #0xe] movs r2, #3 ldrb r0, [r4, #0xb] cmp r0, #0 bne _0808E068 ldr r0, _0808E080 @ =gUnk_03003F80 adds r0, #0xac ldrh r1, [r0] movs r0, #0x80 lsls r0, r0, #2 ands r0, r1 cmp r0, #0 bne _0808E068 movs r2, #7 _0808E068: ldrb r0, [r4, #0xe] ands r0, r2 adds r5, r4, #0 adds r5, #0x6c adds r6, r4, #0 adds r6, #0x38 cmp r0, #0 bne _0808E0E4 ldrh r0, [r5] adds r0, #1 strh r0, [r5] b _0808E0E4 .align 2, 0 _0808E080: .4byte gUnk_03003F80 _0808E084: adds r5, r4, #0 adds r5, #0x72 ldrh r0, [r5] cmp r0, #0 beq _0808E0BC ldr r0, _0808E0B8 @ =gUnk_030010A0 ldr r1, [r0] movs r0, #0x1f ands r1, r0 subs r5, #6 adds r6, r4, #0 adds r6, #0x38 cmp r1, #0 bne _0808E0E4 adds r0, r4, #0 movs r1, #7 movs r2, #0 bl sub_080A29AC cmp r0, #0 beq _0808E0E4 ldrb r1, [r6] adds r0, #0x38 strb r1, [r0] b _0808E0E4 .align 2, 0 _0808E0B8: .4byte gUnk_030010A0 _0808E0BC: ldr r0, _0808E140 @ =0x00000115 bl sub_08004488 adds r0, r4, #0 movs r1, #0x12 movs r2, #0 bl sub_080A29AC adds r6, r4, #0 adds r6, #0x38 cmp r0, #0 beq _0808E0DA ldrb r1, [r6] adds r0, #0x38 strb r1, [r0] _0808E0DA: ldrh r0, [r5] adds r0, #1 strh r0, [r5] adds r5, r4, #0 adds r5, #0x6c _0808E0E4: ldr r2, _0808E144 @ =gUnk_03001160 ldrb r1, [r2, #0x19] lsrs r1, r1, #6 lsls r1, r1, #6 ldrb r3, [r4, #0x19] movs r0, #0x3f ands r0, r3 orrs r0, r1 strb r0, [r4, #0x19] ldrb r0, [r4, #0x14] lsls r0, r0, #1 adds r0, r7, r0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r2, #0x2e] adds r0, r0, r1 strh r0, [r4, #0x2e] ldrb r0, [r4, #0x14] lsls r0, r0, #1 adds r0, r0, r7 ldrb r0, [r0, #1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r2, #0x32] adds r0, r0, r1 strh r0, [r4, #0x32] ldrh r0, [r2, #0x36] strh r0, [r4, #0x36] adds r2, #0x38 ldrb r0, [r2] strb r0, [r6] ldrb r0, [r4, #0x14] cmp r0, #1 beq _0808E148 cmp r0, #1 ble _0808E136 cmp r0, #2 beq _0808E150 cmp r0, #3 beq _0808E15A _0808E136: ldrh r0, [r4, #0x32] ldrh r1, [r5] subs r0, r0, r1 strh r0, [r4, #0x32] b _0808E162 .align 2, 0 _0808E140: .4byte 0x00000115 _0808E144: .4byte gUnk_03001160 _0808E148: ldrh r0, [r5] ldrh r1, [r4, #0x2e] adds r0, r0, r1 b _0808E160 _0808E150: ldrh r0, [r5] ldrh r1, [r4, #0x32] adds r0, r0, r1 strh r0, [r4, #0x32] b _0808E162 _0808E15A: ldrh r0, [r4, #0x2e] ldrh r1, [r5] subs r0, r0, r1 _0808E160: strh r0, [r4, #0x2e] _0808E162: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0808E17A movs r0, #6 strb r0, [r4, #0xf] ldrb r0, [r4, #0x15] movs r1, #0x10 eors r0, r1 strb r0, [r4, #0x15] _0808E17A: adds r0, r4, #0 bl sub_0806F69C ldrb r0, [r4, #0xb] cmp r0, #0 bne _0808E1BA ldr r0, _0808E1AC @ =gUnk_03003F80 ldrb r1, [r0, #0x1b] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _0808E1BA ldrb r0, [r4, #0x10] movs r1, #0xdf ands r1, r0 strb r1, [r4, #0x10] movs r0, #6 bl sub_0807CA84 cmp r0, #1 bne _0808E1B0 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] b _0808E1BA .align 2, 0 _0808E1AC: .4byte gUnk_03003F80 _0808E1B0: bl sub_0805E780 b _0808E1BA _0808E1B6: bl sub_0805E780 _0808E1BA: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0808E1BC sub_0808E1BC: @ 0x0808E1BC push {r4, lr} adds r4, r0, #0 bl sub_08079BD8 ldrb r0, [r4, #0xc] adds r0, #1 movs r2, #0 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] ldr r0, _0808E204 @ =gUnk_03001160 ldrb r0, [r0, #0x14] strb r0, [r4, #0x14] adds r0, r4, #0 adds r0, #0x60 strh r2, [r0] ldrb r1, [r4, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r4, #0x1a] movs r0, #0xaf strh r0, [r4, #0x12] ldrb r1, [r4, #0x14] lsrs r1, r1, #1 adds r0, r4, #0 bl sub_08004260 pop {r4, pc} .align 2, 0 _0808E204: .4byte gUnk_03001160 thumb_func_start sub_0808E208 sub_0808E208: @ 0x0808E208 push {r4, lr} adds r4, r0, #0 bl sub_08079BD8 adds r0, r4, #0 bl sub_08004274 ldr r0, _0808E240 @ =gUnk_03003F80 ldrb r0, [r0, #0x1b] cmp r0, #0 beq _0808E248 ldr r0, _0808E244 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #3 ands r0, r1 cmp r0, #0 bne _0808E24C ldrb r2, [r4, #0x1a] lsls r1, r2, #0x1c lsrs r1, r1, #0x1c movs r0, #4 eors r1, r0 subs r0, #0x14 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x1a] b _0808E24C .align 2, 0 _0808E240: .4byte gUnk_03003F80 _0808E244: .4byte gUnk_030010A0 _0808E248: bl sub_0805E780 _0808E24C: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0808E260 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] _0808E260: pop {r4, pc} .align 2, 0 thumb_func_start sub_0808E264 sub_0808E264: @ 0x0808E264 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 _0808E27C bl sub_0805E780 _0808E27C: pop {r4, pc} .align 2, 0 thumb_func_start sub_0808E280 sub_0808E280: @ 0x0808E280 push {lr} ldr r2, _0808E294 @ =gUnk_08121B8C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808E294: .4byte gUnk_08121B8C thumb_func_start sub_0808E298 sub_0808E298: @ 0x0808E298 push {r4, r5, r6, lr} adds r4, r0, #0 adds r0, #0x38 movs r1, #2 strb r1, [r0] movs r0, #1 strb r0, [r4, #0xc] movs r5, #0 movs r6, #0 adds r0, r4, #0 bl sub_080002A0 adds r1, r0, #0 movs r0, #0xd1 lsls r0, r0, #2 cmp r1, r0 beq _0808E2DA cmp r1, r0 bhi _0808E2C6 subs r0, #1 cmp r1, r0 beq _0808E2D8 b _0808E2E2 _0808E2C6: ldr r0, _0808E2D4 @ =0x00000345 cmp r1, r0 beq _0808E2DE adds r0, #1 cmp r1, r0 beq _0808E2E6 b _0808E2E2 .align 2, 0 _0808E2D4: .4byte 0x00000345 _0808E2D8: movs r5, #0x10 _0808E2DA: movs r6, #0x10 b _0808E2E6 _0808E2DE: movs r5, #0x10 b _0808E2E6 _0808E2E2: bl sub_0805E780 _0808E2E6: ldrh r0, [r4, #0x2e] adds r0, r0, r5 movs r2, #0x10 rsbs r2, r2, #0 adds r1, r2, #0 ands r0, r1 strh r0, [r4, #0x2e] ldrh r0, [r4, #0x32] adds r0, r0, r6 ands r0, r1 strh r0, [r4, #0x32] adds r0, r4, #0 movs r1, #0 bl sub_08004260 ldr r1, _0808E314 @ =0x00000347 adds r0, r4, #0 bl sub_0808E354 adds r0, r4, #0 bl sub_0808E318 pop {r4, r5, r6, pc} .align 2, 0 _0808E314: .4byte 0x00000347 thumb_func_start sub_0808E318 sub_0808E318: @ 0x0808E318 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808E340 ldr r1, _0808E33C @ =0x00000343 adds r0, r4, #0 bl sub_0808E354 bl sub_0805E780 b _0808E34E .align 2, 0 _0808E33C: .4byte 0x00000343 _0808E340: movs r0, #1 ands r0, r1 cmp r0, #0 beq _0808E34E ldr r0, _0808E350 @ =0x0000018B bl sub_08004488 _0808E34E: pop {r4, pc} .align 2, 0 _0808E350: .4byte 0x0000018B thumb_func_start sub_0808E354 sub_0808E354: @ 0x0808E354 push {r4, r5, r6, lr} mov r6, r8 push {r6} adds r6, r0, #0 lsls r1, r1, #0x10 mov r8, r1 mov r0, r8 lsrs r0, r0, #0x10 mov r8, r0 movs r2, #0x2e ldrsh r1, [r6, r2] ldr r5, _0808E410 @ =gUnk_03000BF0 ldrh r0, [r5, #6] adds r0, #0x10 subs r1, r1, r0 asrs r1, r1, #4 movs r4, #0x3f ands r1, r4 movs r3, #0x32 ldrsh r0, [r6, r3] ldrh r2, [r5, #8] adds r2, #0x10 subs r0, r0, r2 asrs r0, r0, #4 ands r0, r4 lsls r0, r0, #6 orrs r1, r0 mov r0, r8 movs r2, #2 bl sub_0807B7D8 mov r0, r8 adds r0, #1 movs r2, #0x2e ldrsh r1, [r6, r2] ldrh r2, [r5, #6] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r4 movs r3, #0x32 ldrsh r2, [r6, r3] ldrh r3, [r5, #8] adds r3, #0x10 subs r2, r2, r3 asrs r2, r2, #4 ands r2, r4 lsls r2, r2, #6 orrs r1, r2 movs r2, #2 bl sub_0807B7D8 mov r0, r8 adds r0, #2 movs r2, #0x2e ldrsh r1, [r6, r2] ldrh r2, [r5, #6] adds r2, #0x10 subs r1, r1, r2 asrs r1, r1, #4 ands r1, r4 movs r3, #0x32 ldrsh r2, [r6, r3] ldrh r3, [r5, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r4 lsls r2, r2, #6 orrs r1, r2 movs r2, #2 bl sub_0807B7D8 movs r0, #3 add r8, r0 movs r2, #0x2e ldrsh r1, [r6, r2] ldrh r0, [r5, #6] subs r1, r1, r0 asrs r1, r1, #4 ands r1, r4 movs r3, #0x32 ldrsh r0, [r6, r3] ldrh r2, [r5, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r4 lsls r0, r0, #6 orrs r1, r0 mov r0, r8 movs r2, #2 bl sub_0807B7D8 pop {r3} mov r8, r3 pop {r4, r5, r6, pc} .align 2, 0 _0808E410: .4byte gUnk_03000BF0 thumb_func_start sub_0808E414 sub_0808E414: @ 0x0808E414 push {lr} ldr r2, _0808E428 @ =gUnk_08121BD8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808E428: .4byte gUnk_08121BD8 thumb_func_start sub_0808E42C sub_0808E42C: @ 0x0808E42C push {lr} movs r1, #1 strb r1, [r0, #0xc] ldrb r2, [r0, #0x11] subs r1, #0x11 ands r1, r2 movs r2, #6 orrs r1, r2 strb r1, [r0, #0x11] ldrb r1, [r0, #0xa] bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_0808E448 sub_0808E448: @ 0x0808E448 push {r4, lr} adds r4, r0, #0 movs r0, #0x10 bl sub_0805436C cmp r0, #1 bls _0808E45A bl sub_0805E780 _0808E45A: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] cmp r0, #1 beq _0808E472 cmp r0, #0x80 bne _0808E486 bl sub_0805E780 _0808E472: ldrb r2, [r4, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #1 eors r1, r0 subs r0, #5 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] b _0808E494 _0808E486: ldrb r0, [r4, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 movs r0, #1 orrs r1, r0 strb r1, [r4, #0x18] _0808E494: ldrb r0, [r4, #0xa] cmp r0, #0 bne _0808E4A2 ldr r0, [r4, #0x34] ldr r1, _0808E4A4 @ =0xFFFF8000 adds r0, r0, r1 str r0, [r4, #0x34] _0808E4A2: pop {r4, pc} .align 2, 0 _0808E4A4: .4byte 0xFFFF8000 thumb_func_start sub_0808E4A8 sub_0808E4A8: @ 0x0808E4A8 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r2, [r4, #0xa] lsls r1, r2, #1 ldr r0, _0808E540 @ =gUnk_08121C40 adds r3, r1, r0 ldrb r6, [r4, #0xc] cmp r6, #0 bne _0808E54C movs r5, #1 strb r5, [r4, #0xc] movs r2, #0 ldrb r0, [r4, #0xb] cmp r0, #0 bne _0808E4C8 movs r2, #1 _0808E4C8: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldrb r0, [r4, #0xa] strb r0, [r4, #0x1e] adds r0, r4, #0 adds r0, #0x38 strb r5, [r0] ldrb r1, [r3] lsls r1, r1, #6 ldrb r2, [r4, #0x19] movs r0, #0x3f ands r0, r2 orrs r0, r1 strb r0, [r4, #0x19] ldrb r0, [r3, #1] adds r3, r4, #0 adds r3, #0x29 movs r1, #7 ands r1, r0 ldrb r2, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] adds r0, r4, #0 adds r0, #0x76 strh r6, [r0] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _0808E544 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] 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, #0x74 strh r1, [r0] adds r0, r4, #0 bl sub_0808E55C ldr r1, _0808E548 @ =sub_0808E55C adds r0, r4, #0 movs r2, #0 bl sub_08052D74 b _0808E55A .align 2, 0 _0808E540: .4byte gUnk_08121C40 _0808E544: .4byte gUnk_03000BF0 _0808E548: .4byte sub_0808E55C _0808E54C: movs r0, #1 ands r2, r0 cmp r2, #0 bne _0808E55A adds r0, r4, #0 bl sub_0808E670 _0808E55A: pop {r4, r5, r6, pc} thumb_func_start sub_0808E55C sub_0808E55C: @ 0x0808E55C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} mov r8, r0 ldrb r0, [r0, #0xa] cmp r0, #1 beq _0808E614 cmp r0, #1 bgt _0808E576 cmp r0, #0 beq _0808E57A b _0808E63A _0808E576: cmp r0, #2 bne _0808E63A _0808E57A: mov r0, r8 adds r0, #0x74 ldrh r6, [r0] ldr r0, _0808E5FC @ =0xFFFFFEFF adds r7, r6, r0 ldr r4, _0808E600 @ =0x0000408F mov r5, r8 adds r5, #0x38 ldrb r2, [r5] adds r0, r4, #0 adds r1, r7, #0 bl sub_0800015E ldr r2, _0808E604 @ =0xFFFFFF00 adds r1, r6, r2 ldrb r2, [r5] adds r0, r4, #0 bl sub_0800015E ldr r0, _0808E608 @ =0x0000406C ldr r2, _0808E60C @ =0xFFFFFEFE adds r1, r6, r2 ldrb r2, [r5] bl sub_0800015E ldr r0, _0808E610 @ =0x0000406D adds r1, r6, #0 subs r1, #0xff ldrb r2, [r5] bl sub_0800015E mov r1, r8 ldrb r0, [r1, #0xa] movs r2, #6 mov sb, r2 cmp r0, #0 beq _0808E63A movs r0, #4 mov sb, r0 subs r4, #0x1d adds r1, r6, #0 adds r1, #0x3f ldrb r2, [r5] adds r0, r4, #0 bl sub_0800015E adds r1, r6, #0 adds r1, #0x40 ldrb r2, [r5] adds r0, r4, #0 bl sub_0800015E adds r1, r6, #0 adds r1, #0x7f ldrb r2, [r5] adds r0, r4, #0 bl sub_0800015E adds r1, r6, #0 adds r1, #0x80 ldrb r2, [r5] adds r0, r4, #0 bl sub_0800015E b _0808E63A .align 2, 0 _0808E5FC: .4byte 0xFFFFFEFF _0808E600: .4byte 0x0000408F _0808E604: .4byte 0xFFFFFF00 _0808E608: .4byte 0x0000406C _0808E60C: .4byte 0xFFFFFEFE _0808E610: .4byte 0x0000406D _0808E614: mov r0, r8 adds r0, #0x74 ldrh r6, [r0] subs r7, r6, #1 ldr r5, _0808E66C @ =0x0000408E mov r4, r8 adds r4, #0x38 ldrb r2, [r4] adds r0, r5, #0 adds r1, r7, #0 bl sub_0800015E ldrb r2, [r4] adds r0, r5, #0 adds r1, r6, #0 bl sub_0800015E movs r1, #2 mov sb, r1 _0808E63A: movs r5, #0 cmp r5, sb bhs _0808E662 ldr r6, _0808E66C @ =0x0000408E mov r4, r8 adds r4, #0x38 _0808E646: adds r7, #0x40 ldrb r2, [r4] adds r0, r6, #0 adds r1, r7, #0 bl sub_0800015E adds r1, r7, #1 ldrb r2, [r4] adds r0, r6, #0 bl sub_0800015E adds r5, #1 cmp r5, sb blo _0808E646 _0808E662: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _0808E66C: .4byte 0x0000408E thumb_func_start sub_0808E670 sub_0808E670: @ 0x0808E670 push {lr} adds r0, #0x74 ldrh r0, [r0] ldr r1, _0808E684 @ =0xFFFFFEFF adds r0, r0, r1 movs r1, #1 bl sub_080002B0 pop {pc} .align 2, 0 _0808E684: .4byte 0xFFFFFEFF thumb_func_start sub_0808E688 sub_0808E688: @ 0x0808E688 push {lr} ldr r2, _0808E69C @ =gUnk_08121C48 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808E69C: .4byte gUnk_08121C48 thumb_func_start sub_0808E6A0 sub_0808E6A0: @ 0x0808E6A0 push {r4, lr} adds r4, r0, #0 adds r0, #0x84 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _0808E6B4 bl sub_0805E780 _0808E6B4: movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x62 strb r0, [r4, #0xa] ldrb r1, [r4, #0x18] subs r0, #0x66 ands r0, r1 strb r0, [r4, #0x18] ldr r0, _0808E6E0 @ =gUnk_08121C58 str r0, [r4, #0x48] adds r1, r4, #0 adds r1, #0x38 movs r2, #3 movs r0, #3 strb r0, [r1] ldrb r1, [r4, #0x11] subs r0, #0x13 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x11] pop {r4, pc} .align 2, 0 _0808E6E0: .4byte gUnk_08121C58 thumb_func_start sub_0808E6E4 sub_0808E6E4: @ 0x0808E6E4 push {r4, lr} adds r4, r0, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _0808E712 movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #6 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] ldrb r0, [r4, #0x19] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x19] adds r0, r4, #0 bl sub_0808E714 _0808E712: pop {r4, pc} thumb_func_start sub_0808E714 sub_0808E714: @ 0x0808E714 push {r4, lr} adds r4, r0, #0 ldrb r3, [r4, #0xf] lsls r0, r3, #3 movs r1, #0x80 lsls r1, r1, #3 subs r2, r1, r0 movs r0, #0x80 lsls r0, r0, #1 cmp r2, r0 ble _0808E73A adds r0, r3, #1 strb r0, [r4, #0xf] adds r0, r4, #0 adds r1, r2, #0 movs r3, #0 bl sub_0805EC9C b _0808E756 _0808E73A: movs r0, #3 strb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x3c ldrb r1, [r2] movs r0, #0x10 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 bl sub_0805EC60 ldr r0, _0808E760 @ =0x00000141 bl sub_080A3268 _0808E756: adds r0, r4, #0 bl sub_08080CB4 pop {r4, pc} .align 2, 0 _0808E760: .4byte 0x00000141 thumb_func_start sub_0808E764 sub_0808E764: @ 0x0808E764 push {r4, lr} adds r4, r0, #0 bl sub_08080CB4 ldr r0, _0808E79C @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _0808E79A adds r0, r4, #0 bl sub_08017850 cmp r0, #0 beq _0808E79A adds r0, r4, #0 adds r0, #0x84 ldrh r0, [r0] bl sub_0807CCC8 movs r0, #0x62 movs r1, #0 movs r2, #0 bl sub_080A7C00 bl sub_0805E780 _0808E79A: pop {r4, pc} .align 2, 0 _0808E79C: .4byte gUnk_03003F80 thumb_func_start sub_0808E7A0 sub_0808E7A0: @ 0x0808E7A0 push {r4, lr} adds r4, r0, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _0808E7B2 adds r0, r4, #0 bl sub_0808EFF0 _0808E7B2: ldr r1, _0808E7D4 @ =gUnk_08121C64 ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0x3f bhi _0808E7D2 adds r0, r4, #0 bl sub_080042B8 _0808E7D2: pop {r4, pc} .align 2, 0 _0808E7D4: .4byte gUnk_08121C64 thumb_func_start sub_0808E7D8 sub_0808E7D8: @ 0x0808E7D8 push {lr} ldr r2, _0808E7EC @ =gUnk_08121CCC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808E7EC: .4byte gUnk_08121CCC thumb_func_start sub_0808E7F0 sub_0808E7F0: @ 0x0808E7F0 push {r4, lr} adds r4, r0, #0 movs r1, #1 movs r2, #2 bl sub_080AE008 ldrb r0, [r4, #0x1a] movs r1, #0xf orrs r0, r1 strb r0, [r4, #0x1a] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] movs r0, #0xff strb r0, [r4, #0xb] movs r0, #1 strb r0, [r4, #0xc] pop {r4, pc} thumb_func_start sub_0808E818 sub_0808E818: @ 0x0808E818 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_0808E950 cmp r0, #0 bne _0808E840 movs r1, #1 rsbs r1, r1, #0 strb r1, [r4, #0xb] adds r0, r4, #0 adds r0, #0x68 strh r1, [r0] adds r0, #2 strh r1, [r0] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] b _0808E94E _0808E840: ldr r0, _0808E8C0 @ =gUnk_02019EE0 ldrb r1, [r0, #6] ldrb r0, [r4, #0xb] adds r6, r4, #0 adds r6, #0x68 adds r5, r4, #0 adds r5, #0x70 cmp r0, r1 beq _0808E894 strb r1, [r4, #0xb] movs r0, #0x14 bl sub_0807CC30 movs r2, #0x80 lsls r2, r2, #1 adds r1, r2, #0 cmp r0, #0 bne _0808E86A movs r0, #0x80 lsls r0, r0, #3 adds r1, r0, #0 _0808E86A: strh r1, [r6] movs r0, #4 strb r0, [r5] movs r0, #2 strb r0, [r4, #0x14] movs r0, #1 bl sub_0807A094 ldr r1, _0808E8C4 @ =gUnk_08133368 subs r0, #0x16 lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] ldr r1, _0808E8C8 @ =0x00FFFFFF ands r0, r1 ldr r1, _0808E8CC @ =gUnk_085A2E80 adds r0, r0, r1 movs r1, #0x1f movs r2, #1 bl sub_0801D754 _0808E894: ldr r0, _0808E8D0 @ =gUnk_02032EC0 ldrb r2, [r0, #2] cmp r2, #0 bne _0808E904 ldr r3, _0808E8D4 @ =gUnk_03000FF0 ldrh r1, [r3] movs r0, #0x80 lsls r0, r0, #2 ands r0, r1 cmp r0, #0 beq _0808E904 ldrh r1, [r3, #2] cmp r1, #0x20 beq _0808E8F2 cmp r1, #0x20 bgt _0808E8D8 cmp r1, #2 beq _0808E8F8 cmp r1, #0x10 beq _0808E8E6 b _0808E904 .align 2, 0 _0808E8C0: .4byte gUnk_02019EE0 _0808E8C4: .4byte gUnk_08133368 _0808E8C8: .4byte 0x00FFFFFF _0808E8CC: .4byte gUnk_085A2E80 _0808E8D0: .4byte gUnk_02032EC0 _0808E8D4: .4byte gUnk_03000FF0 _0808E8D8: cmp r1, #0x40 beq _0808E8E2 cmp r1, #0x80 beq _0808E8EC b _0808E904 _0808E8E2: strb r2, [r4, #0x14] b _0808E904 _0808E8E6: movs r0, #1 strb r0, [r4, #0x14] b _0808E904 _0808E8EC: movs r0, #2 strb r0, [r4, #0x14] b _0808E904 _0808E8F2: movs r0, #3 strb r0, [r4, #0x14] b _0808E904 _0808E8F8: ldrb r0, [r5] movs r1, #0 cmp r0, #0 bne _0808E902 movs r1, #4 _0808E902: strb r1, [r5] _0808E904: movs r2, #0 ldrb r0, [r4, #0x14] cmp r0, #3 bne _0808E90E movs r2, #1 _0808E90E: 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] ldrh r0, [r6] ldrb r1, [r5] adds r0, r0, r1 ldrb r2, [r4, #0x14] adds r1, r0, r2 adds r2, r4, #0 adds r2, #0x6a ldrh r0, [r2] cmp r0, r1 beq _0808E940 strh r1, [r2] lsrs r0, r1, #8 strh r0, [r4, #0x12] lsls r1, r1, #0x18 lsrs r1, r1, #0x18 adds r0, r4, #0 bl sub_080042AC _0808E940: ldrb r0, [r4, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 movs r0, #2 orrs r1, r0 strb r1, [r4, #0x18] _0808E94E: pop {r4, r5, r6, pc} thumb_func_start sub_0808E950 sub_0808E950: @ 0x0808E950 push {lr} movs r2, #0 ldr r0, _0808E980 @ =gUnk_02032EC0 ldrb r0, [r0, #2] cmp r0, #0 beq _0808E968 cmp r0, #0 blt _0808E97C cmp r0, #7 bgt _0808E97C cmp r0, #4 blt _0808E97C _0808E968: ldr r0, _0808E984 @ =gUnk_02019EE0 adds r1, r0, #0 adds r1, #8 ldrb r0, [r0, #6] adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #1 bne _0808E97C movs r2, #1 _0808E97C: adds r0, r2, #0 pop {pc} .align 2, 0 _0808E980: .4byte gUnk_02032EC0 _0808E984: .4byte gUnk_02019EE0 thumb_func_start sub_0808E988 sub_0808E988: @ 0x0808E988 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xc] cmp r0, #0 bne _0808E9AA movs r0, #1 strb r0, [r5, #0xc] movs r0, #0xa1 lsls r0, r0, #1 strh r0, [r5, #0x12] movs r0, #0xff strb r0, [r5, #0xb] adds r0, r5, #0 movs r1, #1 movs r2, #3 bl sub_080AE008 _0808E9AA: bl sub_0808E950 cmp r0, #0 beq _0808E9E8 movs r4, #6 b _0808E9BC _0808E9B6: subs r4, #1 cmp r4, #0 beq _0808E9E8 _0808E9BC: adds r0, r4, #0 bl sub_0807CA84 cmp r0, #0 beq _0808E9B6 cmp r4, #0 beq _0808E9E8 ldrb r0, [r5, #0xb] cmp r0, r4 beq _0808E9D8 adds r0, r5, #0 adds r1, r4, #0 bl sub_080042AC _0808E9D8: ldrb r0, [r5, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 movs r0, #2 orrs r1, r0 strb r1, [r5, #0x18] b _0808E9F2 _0808E9E8: ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r5, #0x18] _0808E9F2: pop {r4, r5, pc} thumb_func_start sub_0808E9F4 sub_0808E9F4: @ 0x0808E9F4 push {r4, lr} adds r4, r0, #0 bl sub_0808E950 cmp r0, #0 beq _0808EA1C ldr r0, _0808EA18 @ =gUnk_02002A40 ldrb r0, [r0, #6] cmp r0, #0 beq _0808EA1C ldrb r0, [r4, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 movs r0, #2 orrs r1, r0 strb r1, [r4, #0x18] b _0808EA26 .align 2, 0 _0808EA18: .4byte gUnk_02002A40 _0808EA1C: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] _0808EA26: pop {r4, pc} thumb_func_start sub_0808EA28 sub_0808EA28: @ 0x0808EA28 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #3 bne _0808EA56 movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] cmp r0, #1 bls _0808EA4C ldrb r0, [r4, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 movs r0, #2 orrs r1, r0 strb r1, [r4, #0x18] b _0808EA56 _0808EA4C: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] _0808EA56: ldr r2, _0808EA68 @ =gUnk_02019EE0 ldrb r1, [r4, #0xa] ldrb r0, [r2, #6] cmp r1, r0 bne _0808EA6C movs r3, #0xc movs r2, #1 b _0808EA88 .align 2, 0 _0808EA68: .4byte gUnk_02019EE0 _0808EA6C: ldr r0, _0808EA80 @ =gUnk_02032EC0 ldrb r0, [r0, #2] cmp r0, #5 bne _0808EA84 ldrb r2, [r2, #7] cmp r1, r2 bne _0808EA84 movs r3, #0xd b _0808EA86 .align 2, 0 _0808EA80: .4byte gUnk_02032EC0 _0808EA84: movs r3, #0xe _0808EA86: movs r2, #2 _0808EA88: ldrb r1, [r4, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 orrs r0, r3 strb r0, [r4, #0x1a] lsls r2, r2, #6 ldrb r1, [r4, #0x19] movs r0, #0x3f ands r0, r1 orrs r0, r2 strb r0, [r4, #0x19] adds r0, r4, #0 bl sub_0808EABC adds r0, r4, #0 bl sub_0808EF6C ldr r2, _0808EAB8 @ =gUnk_02019EE0 ldrb r1, [r2] orrs r0, r1 strb r0, [r2] pop {r4, pc} .align 2, 0 _0808EAB8: .4byte gUnk_02019EE0 thumb_func_start sub_0808EABC sub_0808EABC: @ 0x0808EABC push {r4, r5, lr} adds r5, r0, #0 movs r4, #0x48 rsbs r4, r4, #0 ldrb r1, [r5, #0xa] lsls r0, r1, #5 adds r2, r0, #0 adds r2, #0x28 movs r3, #0 ldr r0, _0808EAEC @ =gUnk_02019EE0 ldrb r0, [r0, #6] cmp r0, r1 bne _0808EAD8 movs r3, #1 _0808EAD8: ldr r0, _0808EAF0 @ =gUnk_02032EC0 ldrb r0, [r0, #2] cmp r0, #7 bhi _0808EB60 lsls r0, r0, #2 ldr r1, _0808EAF4 @ =_0808EAF8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0808EAEC: .4byte gUnk_02019EE0 _0808EAF0: .4byte gUnk_02032EC0 _0808EAF4: .4byte _0808EAF8 _0808EAF8: @ jump table .4byte _0808EB18 @ case 0 .4byte _0808EB60 @ case 1 .4byte _0808EB56 @ case 2 .4byte _0808EB1C @ case 3 .4byte _0808EB1C @ case 4 .4byte _0808EB26 @ case 5 .4byte _0808EB1C @ case 6 .4byte _0808EB1C @ case 7 _0808EB18: movs r4, #0x18 b _0808EB68 _0808EB1C: cmp r3, #0 beq _0808EB68 movs r4, #0x2a movs r2, #0x38 b _0808EB68 _0808EB26: ldr r3, _0808EB3C @ =gUnk_02000080 adds r0, r3, #0 adds r0, #0x10 ldrb r1, [r5, #0xa] adds r0, r0, r1 ldrb r1, [r0] cmp r1, #0 bne _0808EB40 movs r4, #0x2a movs r2, #0x28 b _0808EB68 .align 2, 0 _0808EB3C: .4byte gUnk_02000080 _0808EB40: cmp r1, #0 blt _0808EB68 cmp r1, #2 bgt _0808EB68 movs r4, #0x14 movs r2, #0x90 ldrb r0, [r3, #0x16] subs r0, r0, r1 lsls r0, r0, #5 subs r2, r2, r0 b _0808EB68 _0808EB56: cmp r3, #0 beq _0808EB68 movs r4, #0x1a movs r2, #0x2a b _0808EB68 _0808EB60: cmp r3, #0 beq _0808EB68 movs r4, #8 movs r2, #0x23 _0808EB68: adds r0, r5, #0 adds r0, #0x68 strh r4, [r0] adds r0, #2 strh r2, [r0] pop {r4, r5, pc} thumb_func_start sub_0808EB74 sub_0808EB74: @ 0x0808EB74 push {r4, lr} adds r4, r0, #0 ldr r0, _0808EBA8 @ =gUnk_02019EE0 ldrb r0, [r0, #6] bl sub_0808EC80 adds r3, r0, #0 cmp r3, #0 beq _0808EBAC ldr r0, [r3, #0x2c] str r0, [r4, #0x2c] ldr r0, [r3, #0x30] str r0, [r4, #0x30] ldrb r1, [r3, #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, r3, #0 adds r1, r4, #0 bl sub_0806FAD8 b _0808EBB4 .align 2, 0 _0808EBA8: .4byte gUnk_02019EE0 _0808EBAC: movs r0, #0xf0 lsls r0, r0, #8 strh r0, [r4, #0x2e] strh r0, [r4, #0x32] _0808EBB4: pop {r4, pc} .align 2, 0 thumb_func_start sub_0808EBB8 sub_0808EBB8: @ 0x0808EBB8 push {r4, r5, r6, r7, lr} adds r7, r0, #0 ldr r0, _0808EBD0 @ =gUnk_02032EC0 ldrb r0, [r0, #2] subs r0, #2 cmp r0, #5 bhi _0808EC1C lsls r0, r0, #2 ldr r1, _0808EBD4 @ =_0808EBD8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0808EBD0: .4byte gUnk_02032EC0 _0808EBD4: .4byte _0808EBD8 _0808EBD8: @ jump table .4byte _0808EC18 @ case 0 .4byte _0808EC1C @ case 1 .4byte _0808EBF0 @ case 2 .4byte _0808EBFC @ case 3 .4byte _0808EC00 @ case 4 .4byte _0808EC14 @ case 5 _0808EBF0: ldr r0, _0808EBF8 @ =gUnk_02000080 ldrb r0, [r0, #1] adds r1, r0, #4 b _0808EC1E .align 2, 0 _0808EBF8: .4byte gUnk_02000080 _0808EBFC: movs r1, #2 b _0808EC1E _0808EC00: ldr r0, _0808EC10 @ =gUnk_02000080 ldrb r0, [r0, #1] movs r1, #6 cmp r0, #0 bne _0808EC1E movs r1, #7 b _0808EC1E .align 2, 0 _0808EC10: .4byte gUnk_02000080 _0808EC14: movs r1, #4 b _0808EC1E _0808EC18: movs r1, #1 b _0808EC1E _0808EC1C: movs r1, #0 _0808EC1E: movs r5, #0xf0 lsls r5, r5, #8 adds r6, r5, #0 cmp r1, #1 beq _0808EC32 cmp r1, #1 blo _0808EC76 cmp r1, #2 beq _0808EC42 b _0808EC4C _0808EC32: movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] lsls r0, r0, #4 adds r5, r0, #0 adds r5, #0x18 movs r6, #0x70 b _0808EC76 _0808EC42: ldr r0, _0808EC7C @ =gUnk_02019EE0 ldrb r1, [r0, #7] cmp r1, #4 bne _0808EC4C movs r1, #7 _0808EC4C: adds r0, r1, #0 bl sub_0808EC80 adds r4, r0, #0 cmp r4, #0 beq _0808EC76 adds r1, r7, #0 bl sub_0806FAD8 ldrb r0, [r4, #0x19] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r7, #0x19] movs r1, #0x3f ands r1, r2 orrs r1, r0 strb r1, [r7, #0x19] movs r0, #0x2e ldrsh r6, [r4, r0] movs r0, #0x32 ldrsh r5, [r4, r0] _0808EC76: strh r6, [r7, #0x2e] strh r5, [r7, #0x32] pop {r4, r5, r6, r7, pc} .align 2, 0 _0808EC7C: .4byte gUnk_02019EE0 thumb_func_start sub_0808EC80 sub_0808EC80: @ 0x0808EC80 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r3, _0808ECA4 @ =gUnk_03003DA0 ldr r2, [r3, #4] cmp r2, r3 beq _0808ECB6 ldr r6, _0808ECA8 @ =0x0000FFFF ldr r5, _0808ECAC @ =0x00004806 _0808EC90: ldrh r1, [r2, #8] adds r0, r6, #0 ands r0, r1 cmp r0, r5 bne _0808ECB0 ldrb r0, [r2, #0xa] cmp r4, r0 bne _0808ECB0 adds r0, r2, #0 b _0808ECB8 .align 2, 0 _0808ECA4: .4byte gUnk_03003DA0 _0808ECA8: .4byte 0x0000FFFF _0808ECAC: .4byte 0x00004806 _0808ECB0: ldr r2, [r2, #4] cmp r2, r3 bne _0808EC90 _0808ECB6: movs r0, #0 _0808ECB8: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0808ECBC sub_0808ECBC: @ 0x0808ECBC push {r4, lr} adds r3, r0, #0 ldr r0, _0808ECD8 @ =gUnk_02000080 ldrb r4, [r0, #1] ldr r0, _0808ECDC @ =gUnk_02032EC0 ldrb r0, [r0, #2] cmp r0, #5 beq _0808ECEE cmp r0, #5 bgt _0808ECE0 cmp r0, #4 beq _0808ECEA b _0808ED04 .align 2, 0 _0808ECD8: .4byte gUnk_02000080 _0808ECDC: .4byte gUnk_02032EC0 _0808ECE0: cmp r0, #6 beq _0808ECFC cmp r0, #7 beq _0808ED00 b _0808ED04 _0808ECEA: movs r0, #1 b _0808ED06 _0808ECEE: ldr r0, _0808ECF8 @ =gUnk_02019EE0 ldrb r4, [r0, #7] movs r0, #2 b _0808ED06 .align 2, 0 _0808ECF8: .4byte gUnk_02019EE0 _0808ECFC: movs r0, #3 b _0808ED06 _0808ED00: movs r0, #4 b _0808ED06 _0808ED04: movs r0, #0 _0808ED06: ldrb r2, [r3, #0xa] subs r2, #4 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #2 lsls r0, r2, #1 adds r0, r0, r2 ldr r2, _0808ED3C @ =gUnk_08121CD4 adds r0, r0, r2 adds r1, r1, r0 ldrb r2, [r1, #1] adds r0, r3, #0 adds r0, #0x68 strh r2, [r0] ldrb r0, [r1, #2] adds r2, r3, #0 adds r2, #0x6a strh r0, [r2] ldrb r0, [r1] cmp r0, r4 bne _0808ED40 ldrb r0, [r3, #0x1a] movs r1, #0x10 rsbs r1, r1, #0 ands r1, r0 movs r0, #0xd b _0808ED4A .align 2, 0 _0808ED3C: .4byte gUnk_08121CD4 _0808ED40: ldrb r0, [r3, #0x1a] movs r1, #0x10 rsbs r1, r1, #0 ands r1, r0 movs r0, #0xe _0808ED4A: orrs r1, r0 strb r1, [r3, #0x1a] adds r0, r3, #0 bl sub_0808EF6C ldr r2, _0808ED60 @ =gUnk_02019EE0 ldrb r1, [r2] orrs r0, r1 strb r0, [r2] pop {r4, pc} .align 2, 0 _0808ED60: .4byte gUnk_02019EE0 thumb_func_start sub_0808ED64 sub_0808ED64: @ 0x0808ED64 push {lr} adds r2, r0, #0 movs r3, #0xff ldr r0, _0808ED90 @ =gUnk_02032EC0 ldrb r0, [r0, #2] cmp r0, #1 bne _0808ED8A ldr r1, _0808ED94 @ =gUnk_02000080 ldrb r0, [r1, #0x11] cmp r0, #5 beq _0808ED8A ldrb r0, [r1, #0x10] lsls r0, r0, #4 adds r0, #0x1c strh r0, [r2, #0x2e] ldrb r0, [r1, #0x11] lsls r0, r0, #4 adds r3, r0, #0 adds r3, #0x3a _0808ED8A: strh r3, [r2, #0x32] pop {pc} .align 2, 0 _0808ED90: .4byte gUnk_02032EC0 _0808ED94: .4byte gUnk_02000080 thumb_func_start sub_0808ED98 sub_0808ED98: @ 0x0808ED98 push {lr} adds r3, r0, #0 ldr r0, _0808EDB4 @ =gUnk_02032EC0 ldrb r0, [r0, #2] cmp r0, #1 beq _0808EDB8 adds r1, r3, #0 adds r1, #0x68 movs r0, #0x1b strh r0, [r1] movs r1, #0xa rsbs r1, r1, #0 b _0808EDCE .align 2, 0 _0808EDB4: .4byte gUnk_02032EC0 _0808EDB8: ldr r0, _0808EDF8 @ =gUnk_02000080 ldrb r0, [r0, #0x13] cmp r0, #5 bls _0808EDC2 movs r0, #5 _0808EDC2: lsls r0, r0, #3 adds r0, #0x1b adds r1, r3, #0 adds r1, #0x68 strh r0, [r1] movs r1, #0x18 _0808EDCE: strh r1, [r3, #0x32] adds r0, r3, #0 adds r0, #0x6a strh r1, [r0] ldrb r0, [r3, #0xf] adds r0, #1 strb r0, [r3, #0xf] ldr r2, _0808EDFC @ =gUnk_08121D10 ldrb r0, [r3, #0xf] lsrs r0, r0, #2 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] adds r1, r3, #0 adds r1, #0x63 strb r0, [r1] adds r0, r3, #0 bl sub_0808EF6C pop {pc} .align 2, 0 _0808EDF8: .4byte gUnk_02000080 _0808EDFC: .4byte gUnk_08121D10 thumb_func_start sub_0808EE00 sub_0808EE00: @ 0x0808EE00 push {r4, r5, lr} adds r4, r0, #0 movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] rsbs r2, r0, #0 orrs r2, r0 lsrs r2, r2, #0x1f ldrb r0, [r4, #0xa] adds r5, r0, #0 subs r5, #0xa ldr r1, _0808EE48 @ =gUnk_08121D38 lsls r0, r2, #3 adds r0, r5, r0 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r4, #0x1e] ldr r3, _0808EE4C @ =gUnk_08121D18 lsls r0, r5, #1 lsls r1, r2, #4 adds r0, r0, r1 adds r0, r0, r3 ldrh r1, [r0] strh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x68 strh r1, [r0] subs r5, r5, r2 ldr r0, _0808EE50 @ =gUnk_02032EC0 ldrb r0, [r0, #2] cmp r0, #1 beq _0808EE54 movs r5, #0x80 movs r1, #0xb0 b _0808EE56 .align 2, 0 _0808EE48: .4byte gUnk_08121D38 _0808EE4C: .4byte gUnk_08121D18 _0808EE50: .4byte gUnk_02032EC0 _0808EE54: movs r1, #0x8c _0808EE56: adds r0, r4, #0 adds r0, #0x6a strh r1, [r0] ldr r1, _0808EE8C @ =gUnk_02000080 ldrb r0, [r1, #0x11] movs r2, #9 cmp r0, #5 bne _0808EE6E ldrb r1, [r1, #0x12] cmp r5, r1 bne _0808EE6E movs r2, #0xb _0808EE6E: ldrb r1, [r4, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x1a] adds r0, r4, #0 bl sub_0808EF6C ldr r2, _0808EE90 @ =gUnk_02019EE0 ldrb r1, [r2] orrs r0, r1 strb r0, [r2] pop {r4, r5, pc} .align 2, 0 _0808EE8C: .4byte gUnk_02000080 _0808EE90: .4byte gUnk_02019EE0 thumb_func_start nullsub_522 nullsub_522: @ 0x0808EE94 bx lr .align 2, 0 thumb_func_start sub_0808EE98 sub_0808EE98: @ 0x0808EE98 push {lr} adds r3, r0, #0 ldr r0, _0808EEBC @ =gUnk_02032EC0 ldrb r1, [r0, #2] strb r1, [r3, #0xe] ldr r2, _0808EEC0 @ =gUnk_08121D48 ldrb r0, [r3, #0xe] adds r0, r0, r2 ldrb r0, [r0] strb r0, [r3, #0x1e] lsls r1, r1, #0x18 lsrs r1, r1, #0x18 cmp r1, #2 beq _0808EEC4 adds r1, r3, #0 adds r1, #0x68 movs r0, #0x60 b _0808EECA .align 2, 0 _0808EEBC: .4byte gUnk_02032EC0 _0808EEC0: .4byte gUnk_08121D48 _0808EEC4: adds r1, r3, #0 adds r1, #0x68 ldr r0, _0808EED4 @ =0x0000FFA0 _0808EECA: strh r0, [r1] adds r0, r3, #0 bl sub_0808EF6C pop {pc} .align 2, 0 _0808EED4: .4byte 0x0000FFA0 thumb_func_start sub_0808EED8 sub_0808EED8: @ 0x0808EED8 push {lr} adds r2, r0, #0 ldr r0, _0808EEF0 @ =gUnk_02032EC0 ldrb r0, [r0, #2] cmp r0, #3 beq _0808EEF4 ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2, #0x18] b _0808EF1E .align 2, 0 _0808EEF0: .4byte gUnk_02032EC0 _0808EEF4: ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r2, #0x18] ldrb r1, [r2, #0xa] subs r1, #0x13 ldr r0, _0808EF20 @ =gUnk_02000080 ldrb r0, [r0, #1] movs r3, #3 cmp r0, r1 bne _0808EF12 movs r3, #4 _0808EF12: ldrb r1, [r2, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 orrs r0, r3 strb r0, [r2, #0x1a] _0808EF1E: pop {pc} .align 2, 0 _0808EF20: .4byte gUnk_02000080 thumb_func_start sub_0808EF24 sub_0808EF24: @ 0x0808EF24 push {lr} adds r2, r0, #0 ldr r0, _0808EF3C @ =gUnk_02032EC0 ldrb r0, [r0, #2] cmp r0, #3 beq _0808EF40 ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2, #0x18] b _0808EF68 .align 2, 0 _0808EF3C: .4byte gUnk_02032EC0 _0808EF40: ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r2, #0x18] ldrb r0, [r2, #0xa] cmp r0, #0x15 bne _0808EF5C movs r0, #0x80 lsls r0, r0, #0x12 ldrb r1, [r0, #5] b _0808EF62 _0808EF5C: movs r0, #0x80 lsls r0, r0, #0x12 ldrb r1, [r0, #6] _0808EF62: ldrb r0, [r2, #0x1f] adds r0, r0, r1 strb r0, [r2, #0x1e] _0808EF68: pop {pc} .align 2, 0 thumb_func_start sub_0808EF6C sub_0808EF6C: @ 0x0808EF6C push {r4, r5, r6, lr} adds r5, r0, #0 adds r0, #0x68 movs r2, #0 ldrsh r1, [r0, r2] movs r2, #0x2e ldrsh r0, [r5, r2] subs r6, r1, r0 adds r0, r6, #0 cmp r6, #0 bge _0808EF84 rsbs r0, r6, #0 _0808EF84: cmp r0, #1 bhi _0808EF8E lsls r0, r1, #0x10 str r0, [r5, #0x2c] movs r6, #0 _0808EF8E: adds r0, r5, #0 adds r0, #0x6a movs r2, #0 ldrsh r1, [r0, r2] movs r2, #0x32 ldrsh r0, [r5, r2] subs r4, r1, r0 adds r0, r4, #0 cmp r4, #0 bge _0808EFA4 rsbs r0, r4, #0 _0808EFA4: cmp r0, #1 bhi _0808EFAE lsls r0, r1, #0x10 str r0, [r5, #0x30] movs r4, #0 _0808EFAE: adds r0, r6, #0 orrs r0, r4 cmp r0, #0 bne _0808EFBA movs r0, #0 b _0808EFEC _0808EFBA: adds r0, r6, #0 adds r1, r4, #0 bl sub_080041EC adds r1, r0, #0 adds r0, #0x80 lsls r1, r1, #4 adds r1, r0, r1 adds r0, r5, #0 adds r0, #0x6c ldrh r0, [r0] cmp r0, r1 bge _0808EFD6 adds r1, r0, #0 _0808EFD6: strh r1, [r5, #0x24] adds r0, r6, #0 adds r1, r4, #0 bl sub_080045DA lsrs r0, r0, #3 strb r0, [r5, #0x15] adds r0, r5, #0 bl sub_0806F69C movs r0, #1 _0808EFEC: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0808EFF0 sub_0808EFF0: @ 0x0808EFF0 push {r4, r5, lr} mov ip, r0 ldrb r1, [r0, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #2 orrs r0, r1 mov r1, ip strb r0, [r1, #0x18] movs r0, #0x80 lsls r0, r0, #3 strh r0, [r1, #0x24] adds r1, #0x45 movs r0, #1 strb r0, [r1] movs r0, #0xff mov r3, ip strb r0, [r3, #0x1e] adds r1, #0x13 movs r0, #1 rsbs r0, r0, #0 strb r0, [r1] ldrb r4, [r3, #0xa] lsls r4, r4, #3 ldr r0, _0808F094 @ =gUnk_08121D54 adds r4, r4, r0 ldrh r0, [r4, #2] strh r0, [r3, #0x2e] ldrh r1, [r4, #2] mov r0, ip adds r0, #0x68 strh r1, [r0] ldrh r0, [r4, #4] strh r0, [r3, #0x32] ldrh r0, [r4, #4] mov r1, ip adds r1, #0x6a strh r0, [r1] ldrb r1, [r4, #6] lsls r1, r1, #0x1d lsrs r1, r1, #0x17 ldrb r3, [r3, #0x19] movs r2, #0x3f adds r0, r2, #0 ands r0, r3 orrs r0, r1 mov r1, ip strb r0, [r1, #0x19] ldrb r1, [r4, #6] lsls r1, r1, #0x1a mov r5, ip adds r5, #0x29 lsrs r1, r1, #0x1d ldrb r3, [r5] movs r0, #8 rsbs r0, r0, #0 ands r0, r3 orrs r0, r1 strb r0, [r5] ldrb r0, [r4, #6] lsrs r0, r0, #6 lsls r0, r0, #6 mov r3, ip ldrb r1, [r3, #0x1b] ands r2, r1 orrs r2, r0 strb r2, [r3, #0x1b] ldrh r1, [r4] mov r0, ip adds r0, #0x6c strh r1, [r0] ldrb r1, [r4, #7] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808F098 movs r0, #0x7f ands r1, r0 strb r1, [r3, #0x1e] strb r1, [r3, #0x1f] b _0808F09E .align 2, 0 _0808F094: .4byte gUnk_08121D54 _0808F098: mov r0, ip bl sub_080042AC _0808F09E: pop {r4, r5, pc} thumb_func_start sub_0808F0A0 sub_0808F0A0: @ 0x0808F0A0 push {lr} ldr r2, _0808F0B4 @ =gUnk_08121E5C ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808F0B4: .4byte gUnk_08121E5C thumb_func_start sub_0808F0B8 sub_0808F0B8: @ 0x0808F0B8 push {lr} ldr r2, _0808F0CC @ =gUnk_08121E88 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808F0CC: .4byte gUnk_08121E88 thumb_func_start sub_0808F0D0 sub_0808F0D0: @ 0x0808F0D0 push {r4, r5, r6, lr} adds r5, r0, #0 movs r1, #0x49 movs r2, #2 movs r3, #0 bl sub_080A2988 str r0, [r5, #0x54] cmp r0, #0 bne _0808F0E8 bl sub_0805E780 _0808F0E8: movs r6, #1 strb r6, [r5, #0xc] ldr r0, _0808F148 @ =0x0000FF40 strh r0, [r5, #0x36] bl sub_08000E50 adds r4, r0, #0 movs r0, #0x3f ands r4, r0 bl sub_08000E50 ands r0, r6 cmp r0, #0 beq _0808F106 rsbs r4, r4, #0 _0808F106: ldr r0, [r5, #0x50] ldrh r0, [r0, #0x2e] adds r0, r0, r4 strh r0, [r5, #0x2e] bl sub_08000E50 adds r4, r0, #0 movs r0, #0x1f ands r4, r0 bl sub_08000E50 ands r0, r6 cmp r0, #0 beq _0808F124 rsbs r4, r4, #0 _0808F124: ldr r0, [r5, #0x50] ldrh r0, [r0, #0x32] adds r0, r0, r4 strh r0, [r5, #0x32] movs r0, #0x90 lsls r0, r0, #2 str r0, [r5, #0x74] movs r0, #0xa0 lsls r0, r0, #1 str r0, [r5, #0x78] adds r0, r5, #0 movs r1, #3 bl sub_08004260 adds r0, r5, #0 bl sub_0808F14C pop {r4, r5, r6, pc} .align 2, 0 _0808F148: .4byte 0x0000FF40 thumb_func_start sub_0808F14C sub_0808F14C: @ 0x0808F14C push {r4, lr} adds r4, r0, #0 bl sub_0808F2B0 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _0808F16E ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] movs r0, #0x84 bl sub_080A3268 _0808F16E: pop {r4, pc} thumb_func_start sub_0808F170 sub_0808F170: @ 0x0808F170 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x74] subs r0, #0x20 str r0, [r4, #0x74] ldr r1, [r4, #0x78] adds r1, #0x20 str r1, [r4, #0x78] adds r0, r4, #0 movs r2, #8 movs r3, #2 bl sub_0806FCF4 ldr r1, [r4, #0x78] ldr r0, _0808F1A0 @ =0x000001FF cmp r1, r0 bls _0808F198 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] _0808F198: adds r0, r4, #0 bl sub_0808F2B0 pop {r4, pc} .align 2, 0 _0808F1A0: .4byte 0x000001FF thumb_func_start sub_0808F1A4 sub_0808F1A4: @ 0x0808F1A4 push {r4, lr} adds r4, r0, #0 ldr r1, [r4, #0x78] adds r1, #0x10 str r1, [r4, #0x78] ldr r0, [r4, #0x74] adds r0, #0x10 str r0, [r4, #0x74] adds r0, r4, #0 movs r2, #8 movs r3, #2 bl sub_0806FCF4 ldr r1, [r4, #0x78] ldr r0, _0808F1D4 @ =0x000003FF cmp r1, r0 bls _0808F1D8 ldr r1, [r4, #0x54] movs r0, #0xff strb r0, [r1, #0xc] bl sub_0805E780 b _0808F1DE .align 2, 0 _0808F1D4: .4byte 0x000003FF _0808F1D8: adds r0, r4, #0 bl sub_0808F2B0 _0808F1DE: pop {r4, pc} thumb_func_start sub_0808F1E0 sub_0808F1E0: @ 0x0808F1E0 push {lr} ldr r2, _0808F1F4 @ =gUnk_08121E98 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808F1F4: .4byte gUnk_08121E98 thumb_func_start sub_0808F1F8 sub_0808F1F8: @ 0x0808F1F8 push {r4, lr} adds r4, r0, #0 ldrb r2, [r4, #0x19] movs r0, #3 orrs r2, r0 strb r2, [r4, #0x19] ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldr r3, [r4, #0x50] ldrb r1, [r3, #0x19] lsrs r1, r1, #6 lsls r1, r1, #6 movs r0, #0x3f ands r2, r0 orrs r2, r1 strb r2, [r4, #0x19] ldrb r1, [r3, #0x1b] lsrs r1, r1, #6 lsls r1, r1, #6 ldrb r2, [r4, #0x1b] ands r0, r2 orrs r0, r1 strb r0, [r4, #0x1b] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #1 bl sub_08004260 adds r0, r4, #0 bl sub_0808F244 pop {r4, pc} thumb_func_start sub_0808F244 sub_0808F244: @ 0x0808F244 push {r4, lr} adds r4, r0, #0 ldr r3, [r4, #0x50] ldrb r1, [r3, #0x18] lsls r1, r1, #0x1e lsrs r1, r1, #0x1e ldrb r2, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] ldrh r0, [r3, #0x32] adds r0, #3 movs r2, #0 strh r0, [r4, #0x32] ldr r1, [r4, #0x54] adds r0, r1, #0 adds r0, #0x62 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r1, #0x2e] adds r0, r0, r1 strh r0, [r4, #0x2e] str r2, [r4, #0x34] movs r0, #0x36 ldrsh r1, [r3, r0] movs r0, #0x80 subs r0, r0, r1 str r0, [r4, #0x74] movs r0, #0x36 ldrsh r1, [r3, r0] movs r0, #0x80 lsls r0, r0, #1 subs r0, r0, r1 str r0, [r4, #0x78] adds r3, #0x7f ldrb r0, [r3] str r0, [r4, #0x70] adds r0, r4, #0 bl sub_0808F2B0 ldr r0, [r4, #0x50] adds r0, #0x6d ldrb r1, [r0] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0808F2AC bl sub_0805E780 _0808F2AC: pop {r4, pc} .align 2, 0 thumb_func_start sub_0808F2B0 sub_0808F2B0: @ 0x0808F2B0 push {lr} ldr r1, [r0, #0x74] ldr r2, [r0, #0x78] ldr r3, [r0, #0x70] bl sub_0805EC9C pop {pc} .align 2, 0 thumb_func_start sub_0808F2C0 sub_0808F2C0: @ 0x0808F2C0 push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r0, [r5, #0xc] adds r6, r0, #0 cmp r6, #0 bne _0808F322 adds r0, #1 strb r0, [r5, #0xc] ldr r4, [r5, #0x50] ldrb r2, [r4, #0x19] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r3, [r5, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r3 orrs r0, r2 strb r0, [r5, #0x19] ldrb r0, [r4, #0x1b] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r5, #0x1b] ands r1, r2 orrs r1, r0 strb r1, [r5, #0x1b] ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r5, #0x18] adds r2, r5, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] str r6, [r5, #0x34] ldr r1, [r5, #0x50] ldrh r0, [r1, #0x32] adds r0, #3 strh r0, [r5, #0x32] ldrh r0, [r1, #0x2e] strh r0, [r5, #0x2e] adds r0, r5, #0 movs r1, #3 bl sub_08004260 _0808F322: ldr r2, [r5, #0x50] movs r1, #0x36 ldrsh r0, [r2, r1] cmp r0, #0 bne _0808F334 ldr r0, [r2, #0x74] str r0, [r5, #0x74] ldr r0, [r2, #0x78] b _0808F34C _0808F334: movs r0, #0x36 ldrsh r1, [r2, r0] movs r0, #0x80 lsls r0, r0, #2 subs r0, r0, r1 str r0, [r5, #0x74] movs r0, #0x36 ldrsh r1, [r2, r0] lsls r1, r1, #1 movs r0, #0xc0 lsls r0, r0, #2 subs r0, r0, r1 _0808F34C: str r0, [r5, #0x78] movs r0, #0 str r0, [r5, #0x70] adds r0, r5, #0 bl sub_0808F2B0 ldr r1, [r5, #0x78] adds r0, r5, #0 movs r2, #8 movs r3, #2 bl sub_0806FCF4 ldrb r0, [r5, #0xc] cmp r0, #0xff bne _0808F36E bl sub_0805E780 _0808F36E: pop {r4, r5, r6, pc} thumb_func_start sub_0808F370 sub_0808F370: @ 0x0808F370 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xc] cmp r1, #0 bne _0808F388 ldr r0, [r4, #0x50] ldrb r0, [r0, #0xd] cmp r0, #1 bne _0808F3DA strb r0, [r4, #0xc] str r1, [r4, #0x70] b _0808F3CC _0808F388: ldr r0, [r4, #0x50] ldrb r0, [r0, #0xd] subs r0, #1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #4 bhi _0808F3D4 ldr r0, [r4, #0x70] cmp r0, #0 bne _0808F3C4 ldr r0, [r4, #0x74] subs r0, #1 str r0, [r4, #0x74] movs r1, #1 rsbs r1, r1, #0 cmp r0, r1 bne _0808F3DA bl sub_08000E50 ldr r2, _0808F3C0 @ =gUnk_08121EA0 movs r1, #1 ands r1, r0 lsls r1, r1, #1 adds r1, r1, r2 ldrh r0, [r1] str r0, [r4, #0x70] b _0808F3DA .align 2, 0 _0808F3C0: .4byte gUnk_08121EA0 _0808F3C4: subs r0, #1 str r0, [r4, #0x70] cmp r0, #0 bne _0808F3DA _0808F3CC: adds r0, r4, #0 bl sub_0808F5EC b _0808F3DA _0808F3D4: movs r0, #0 strb r0, [r4, #0xc] str r0, [r4, #0x74] _0808F3DA: pop {r4, pc} thumb_func_start sub_0808F3DC sub_0808F3DC: @ 0x0808F3DC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0808F438 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xe] ldrb r1, [r4, #0xa] adds r1, #1 adds r0, r4, #0 bl sub_08004260 ldrb r0, [r4, #0xa] cmp r0, #8 beq _0808F41A cmp r0, #7 bne _0808F42E ldr r0, [r4, #0x54] adds r1, r4, #0 bl sub_0806FAD8 b _0808F494 _0808F41A: ldr r0, [r4, #0x54] adds r0, #0x3f ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x3f strb r0, [r1] ldr r0, [r4, #0x54] adds r0, #0x3f movs r1, #0x7e strb r1, [r0] _0808F42E: ldr r0, [r4, #0x54] adds r1, r4, #0 bl sub_0806FAB0 b _0808F494 _0808F438: ldr r0, [r4, #0x50] ldr r0, [r0, #0x74] cmp r0, #0 bne _0808F456 ldrb r0, [r4, #0xa] cmp r0, #8 bne _0808F452 ldr r0, [r4, #0x54] adds r1, r4, #0 adds r1, #0x3f ldrb r1, [r1] adds r0, #0x3f strb r1, [r0] _0808F452: bl sub_0805E780 _0808F456: ldrb r0, [r4, #0xa] cmp r0, #5 bne _0808F486 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0808F486 ldr r0, [r4, #0x54] movs r1, #0x49 movs r2, #8 movs r3, #0 bl sub_080A2988 adds r1, r0, #0 cmp r1, #0 beq _0808F486 ldr r0, [r4, #0x50] str r0, [r1, #0x50] ldr r0, [r4, #0x50] ldr r0, [r0, #0x50] str r0, [r1, #0x54] _0808F486: adds r0, r4, #0 bl sub_08004274 ldr r0, [r4, #0x54] adds r1, r4, #0 bl sub_0806FA6C _0808F494: pop {r4, pc} .align 2, 0 thumb_func_start sub_0808F498 sub_0808F498: @ 0x0808F498 push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r0, [r5, #0xc] cmp r0, #0 beq _0808F4EC adds r0, r5, #0 bl sub_0806F3E4 cmp r0, #0 beq _0808F4C2 ldr r0, _0808F4E4 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #0xf ands r0, r1 cmp r0, #0 bne _0808F4BE movs r0, #0xef bl sub_080A3268 _0808F4BE: bl sub_0805E780 _0808F4C2: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _0808F4D4 bl sub_0805E780 _0808F4D4: ldr r0, _0808F4E8 @ =gUnk_03003F80 ldrb r0, [r0, #0x1c] cmp r0, #1 beq _0808F550 bl sub_0805E780 b _0808F550 .align 2, 0 _0808F4E4: .4byte gUnk_030010A0 _0808F4E8: .4byte gUnk_03003F80 _0808F4EC: movs r0, #1 strb r0, [r5, #0xc] movs r0, #0x40 strb r0, [r5, #0xe] ldrb r0, [r5, #0xb] movs r6, #0x2b cmp r0, #0 beq _0808F4FE movs r6, #0x2c _0808F4FE: ldr r0, [r5, #0x50] ldr r0, [r0, #0x48] ldrb r1, [r0, #6] ldrh r0, [r5, #0x2e] subs r0, r0, r1 strh r0, [r5, #0x2e] bl sub_08000E50 ldr r4, [r5, #0x50] ldr r1, [r4, #0x48] ldrb r1, [r1, #6] lsls r1, r1, #1 bl __modsi3 ldrh r1, [r5, #0x2e] adds r1, r1, r0 strh r1, [r5, #0x2e] ldr r0, [r4, #0x48] ldrb r1, [r0, #7] ldrh r0, [r5, #0x32] subs r0, r0, r1 strh r0, [r5, #0x32] bl sub_08000E50 ldr r1, [r5, #0x50] ldr r1, [r1, #0x48] ldrb r1, [r1, #7] lsls r1, r1, #1 bl __modsi3 ldrh r1, [r5, #0x32] adds r1, r1, r0 strh r1, [r5, #0x32] adds r0, r5, #0 adds r1, r6, #0 bl sub_0801D2B4 adds r0, r5, #0 movs r1, #4 bl sub_08004260 _0808F550: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0808F554 sub_0808F554: @ 0x0808F554 push {r4, r5, lr} adds r5, r0, #0 ldr r0, [r5, #0x50] adds r1, r5, #0 bl sub_0806FA6C adds r1, r5, #0 adds r1, #0x63 ldrb r0, [r1] subs r0, #0x18 strb r0, [r1] ldr r0, [r5, #0x50] adds r1, r0, #0 adds r1, #0x62 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _0808F588 adds r2, r5, #0 adds r2, #0x62 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 ldrb r1, [r2] adds r0, r0, r1 strb r0, [r2] _0808F588: ldrb r0, [r5, #0xc] cmp r0, #0 beq _0808F5AC adds r1, r5, #0 adds r1, #0x84 ldr r0, [r1] cmp r0, #0 beq _0808F5A4 subs r0, #1 str r0, [r1] cmp r0, #0 bne _0808F5A4 bl sub_0805E780 _0808F5A4: adds r0, r5, #0 bl sub_08004274 b _0808F5E8 _0808F5AC: movs r0, #1 strb r0, [r5, #0xc] ldr r4, [r5, #0x50] ldrb r2, [r4, #0x19] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r3, [r5, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r3 orrs r0, r2 strb r0, [r5, #0x19] ldrb r0, [r4, #0x1b] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r5, #0x1b] ands r1, r2 orrs r1, r0 strb r1, [r5, #0x1b] adds r2, r5, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] adds r0, r5, #0 movs r1, #3 bl sub_08004260 _0808F5E8: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0808F5EC sub_0808F5EC: @ 0x0808F5EC push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x54] movs r1, #0x49 movs r2, #5 movs r3, #0 bl sub_080A2988 adds r1, r0, #0 cmp r1, #0 beq _0808F608 str r4, [r1, #0x50] ldr r0, [r4, #0x54] str r0, [r1, #0x54] _0808F608: ldr r0, [r4, #0x54] movs r1, #0x49 movs r2, #6 movs r3, #0 bl sub_080A2988 adds r1, r0, #0 cmp r1, #0 beq _0808F620 str r4, [r1, #0x50] ldr r0, [r4, #0x54] str r0, [r1, #0x54] _0808F620: ldr r0, [r4, #0x54] movs r1, #0x49 movs r2, #7 movs r3, #0 bl sub_080A2988 adds r1, r0, #0 cmp r1, #0 beq _0808F638 str r4, [r1, #0x50] ldr r0, [r4, #0x54] str r0, [r1, #0x54] _0808F638: movs r0, #0x96 lsls r0, r0, #2 str r0, [r4, #0x74] pop {r4, pc} thumb_func_start sub_0808F640 sub_0808F640: @ 0x0808F640 push {lr} ldr r2, _0808F654 @ =gUnk_08121EA4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808F654: .4byte gUnk_08121EA4 thumb_func_start sub_0808F658 sub_0808F658: @ 0x0808F658 push {r4, r5, lr} adds r5, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r5, #0xc] ldrb r1, [r5, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r5, #0x18] ldrb r0, [r5, #0x1b] movs r1, #0xc0 orrs r0, r1 strb r0, [r5, #0x1b] ldrb r0, [r5, #0x19] orrs r0, r1 strb r0, [r5, #0x19] ldrb r0, [r5, #0xa] adds r3, r5, #0 adds r3, #0x29 movs r1, #7 ands r1, r0 ldrb r2, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] ldrb r0, [r5, #0xa] strb r0, [r5, #0x1e] movs r0, #8 strb r0, [r5, #0x15] ldr r1, _0808F6D8 @ =gUnk_08121EB0 ldrb r0, [r5, #0xa] adds r0, r0, r1 ldrb r0, [r0] movs r4, #0 strh r0, [r5, #0x24] ldr r3, _0808F6DC @ =gUnk_03000BF0 ldrh r1, [r3, #6] adds r2, r1, #0 subs r2, #0x60 adds r0, r5, #0 adds r0, #0x78 strh r2, [r0] ldrh r0, [r3, #0x1e] adds r1, r1, r0 adds r1, #0x60 adds r0, r5, #0 adds r0, #0x7a strh r1, [r0] strb r4, [r5, #0x14] bl sub_08000E50 movs r1, #0xf ands r0, r1 lsls r0, r0, #4 ldrh r1, [r5, #0x2e] adds r0, r0, r1 strh r0, [r5, #0x2e] strb r4, [r5, #0xe] strb r4, [r5, #0xd] pop {r4, r5, pc} .align 2, 0 _0808F6D8: .4byte gUnk_08121EB0 _0808F6DC: .4byte gUnk_03000BF0 thumb_func_start sub_0808F6E0 sub_0808F6E0: @ 0x0808F6E0 push {r4, lr} adds r4, r0, #0 bl sub_0806F69C adds r0, r4, #0 adds r0, #0x78 movs r2, #0x2e ldrsh r1, [r4, r2] movs r2, #0 ldrsh r0, [r0, r2] cmp r1, r0 blt _0808F704 adds r0, r4, #0 adds r0, #0x7a movs r2, #0 ldrsh r0, [r0, r2] cmp r1, r0 ble _0808F708 _0808F704: movs r0, #2 strb r0, [r4, #0xc] _0808F708: pop {r4, pc} .align 2, 0 thumb_func_start sub_0808F70C sub_0808F70C: @ 0x0808F70C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #0 bne _0808F75C movs r0, #1 strb r0, [r4, #0xd] bl sub_08000E50 movs r1, #7 ands r0, r1 lsls r0, r0, #3 adds r0, #0x1f strb r0, [r4, #0xe] ldrb r1, [r4, #0x15] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0808F738 adds r0, r4, #0 adds r0, #0x7a b _0808F73C _0808F738: adds r0, r4, #0 adds r0, #0x78 _0808F73C: ldrh r0, [r0] strh r0, [r4, #0x2e] ldrb r0, [r4, #0xa] cmp r0, #2 bne _0808F75C bl sub_08000E50 ldr r3, _0808F778 @ =gUnk_08121EB3 ldrb r1, [r4, #0xb] lsls r1, r1, #1 movs r2, #1 ands r2, r0 adds r1, r1, r2 adds r1, r1, r3 ldrb r0, [r1] strh r0, [r4, #0x32] _0808F75C: ldrb r1, [r4, #0xd] cmp r1, #1 bne _0808F774 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 bne _0808F774 strb r1, [r4, #0xc] strb r0, [r4, #0xd] _0808F774: pop {r4, pc} .align 2, 0 _0808F778: .4byte gUnk_08121EB3 thumb_func_start sub_0808F77C sub_0808F77C: @ 0x0808F77C push {lr} ldr r2, _0808F790 @ =gUnk_08121EB8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0808F790: .4byte gUnk_08121EB8 thumb_func_start sub_0808F794 sub_0808F794: @ 0x0808F794 push {lr} movs r1, #1 strb r1, [r0, #0xc] movs r1, #0x3c strb r1, [r0, #0xe] movs r1, #0 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_0808F7A8 sub_0808F7A8: @ 0x0808F7A8 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 _0808F7D0 movs r0, #0x78 strb r0, [r2, #0xe] ldrb r0, [r2, #0xc] adds r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] _0808F7D0: pop {pc} .align 2, 0 thumb_func_start sub_0808F7D4 sub_0808F7D4: @ 0x0808F7D4 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808F80A ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] 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] adds r0, r4, #0 movs r1, #2 bl sub_08004260 _0808F80A: pop {r4, pc} thumb_func_start sub_0808F80C sub_0808F80C: @ 0x0808F80C push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0808F850 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0x15] movs r2, #0 movs r0, #0x80 lsls r0, r0, #1 strh r0, [r4, #0x24] movs r0, #0x80 lsls r0, r0, #0xa str r0, [r4, #0x20] ldrb r1, [r4, #0x1b] movs r0, #0x3f ands r0, r1 strb r0, [r4, #0x1b] strb r2, [r4, #0xe] adds r0, r4, #0 movs r1, #3 bl sub_08004260 ldr r0, _0808F854 @ =0x0000012B bl sub_080A3268 _0808F850: pop {r4, pc} .align 2, 0 _0808F854: .4byte 0x0000012B thumb_func_start sub_0808F858 sub_0808F858: @ 0x0808F858 push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0808F884 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 _0808F88A adds r0, r4, #0 bl sub_08004274 b _0808F88A _0808F884: adds r0, r4, #0 bl sub_08004274 _0808F88A: movs r1, #0x32 ldrsh r0, [r4, r1] ldr r1, _0808F8C4 @ =gUnk_03000BF0 ldrh r2, [r1, #8] subs r0, r0, r2 movs r1, #0x8c lsls r1, r1, #2 cmp r0, r1 bgt _0808F8C8 adds r0, r2, r1 strh r0, [r4, #0x32] adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808F8EA ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #2 bl sub_08004260 b _0808F8EA .align 2, 0 _0808F8C4: .4byte gUnk_03000BF0 _0808F8C8: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808F8EA movs r0, #0x80 lsls r0, r0, #0xa str r0, [r4, #0x20] adds r0, r4, #0 movs r1, #3 bl sub_08004260 ldr r0, _0808F8EC @ =0x0000012B bl sub_080A3268 _0808F8EA: pop {r4, pc} .align 2, 0 _0808F8EC: .4byte 0x0000012B thumb_func_start sub_0808F8F0 sub_0808F8F0: @ 0x0808F8F0 push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0808F912 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #5 bl sub_08004260 _0808F912: pop {r4, pc} thumb_func_start sub_0808F914 sub_0808F914: @ 0x0808F914 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808F93C ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _0808F93C: pop {r4, pc} .align 2, 0 thumb_func_start sub_0808F940 sub_0808F940: @ 0x0808F940 push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0808F960 ldr r1, _0808F964 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] bl sub_0805E780 _0808F960: pop {r4, pc} .align 2, 0 _0808F964: .4byte gUnk_02000080 thumb_func_start sub_0808F968 sub_0808F968: @ 0x0808F968 push {r4, lr} adds r4, r0, #0 ldr r1, _0808F98C @ =gUnk_08121ED8 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldrb r0, [r4, #0xc] cmp r0, #0 beq _0808F988 adds r0, r4, #0 bl sub_08090514 _0808F988: pop {r4, pc} .align 2, 0 _0808F98C: .4byte gUnk_08121ED8 thumb_func_start sub_0808F990 sub_0808F990: @ 0x0808F990 push {r4, r5, r6, lr} adds r4, r0, #0 movs r2, #1 strb r2, [r4, #0xc] movs r3, #0 movs r0, #0x80 strh r0, [r4, #0x24] ldrb r0, [r4, #0xe] strb r0, [r4, #0xf] strb r3, [r4, #0xe] ldrb r1, [r4, #0x11] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r4, #0x11] adds r0, r4, #0 adds r0, #0x81 strb r3, [r0] adds r0, #2 strb r3, [r0] ldrb r1, [r4, #0x19] movs r0, #0x3f ands r0, r1 movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x19] ldrb r0, [r4, #0xa] cmp r0, #1 bne _0808F9E8 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 r0, r4, #0 adds r0, #0x80 strb r3, [r0] b _0808FA1C _0808F9E8: adds r0, r4, #0 adds r0, #0x80 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, #5 orrs r0, r1 strb r0, [r2] ldrb r0, [r4, #0xa] cmp r0, #2 beq _0808FA0A cmp r0, #4 bne _0808FA1C _0808FA0A: ldrh r0, [r4, #0x32] adds r0, #2 strh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x63 movs r0, #0xfe strb r0, [r1] strb r3, [r4, #0xd] strb r3, [r4, #0x1e] _0808FA1C: ldrb r0, [r4, #0xf] cmp r0, #0 beq _0808FAC4 movs r6, #0 cmp r0, #0x80 beq _0808FA84 ldrh r1, [r4, #0xa] ldr r0, _0808FA38 @ =0x00000101 cmp r1, r0 bne _0808FA3C movs r0, #0xf ldrsb r0, [r4, r0] ldrh r1, [r4, #0x32] b _0808FA42 .align 2, 0 _0808FA38: .4byte 0x00000101 _0808FA3C: movs r0, #0xf ldrsb r0, [r4, r0] ldrh r1, [r4, #0x2e] _0808FA42: adds r0, r0, r1 adds r1, r4, #0 adds r1, #0x7e strh r0, [r1] adds r5, r1, #0 ldr r3, [r4, #0x50] cmp r3, #0 bne _0808FA5E adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 b _0808FA7C _0808FA5E: adds r2, r4, #0 adds r2, #0x82 ldrb r1, [r2] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808FA76 ldrb r0, [r3, #0xc] cmp r0, #2 bne _0808FAA2 adds r6, #1 b _0808FAA2 _0808FA76: ldrb r0, [r2] bl sub_0807CBD0 _0808FA7C: cmp r0, #0 beq _0808FAA2 adds r6, #1 b _0808FAA2 _0808FA84: movs r6, #1 ldrh r1, [r4, #0xa] ldr r0, _0808FA94 @ =0x00000101 cmp r1, r0 bne _0808FA98 ldrh r1, [r4, #0x32] b _0808FA9A .align 2, 0 _0808FA94: .4byte 0x00000101 _0808FA98: ldrh r1, [r4, #0x2e] _0808FA9A: adds r0, r4, #0 adds r0, #0x7e strh r1, [r0] adds r5, r0, #0 _0808FAA2: cmp r6, #0 beq _0808FAC4 adds r1, r4, #0 adds r1, #0x81 movs r0, #1 strb r0, [r1] ldrh r1, [r4, #0xa] ldr r0, _0808FABC @ =0x00000101 cmp r1, r0 bne _0808FAC0 ldrh r0, [r5] strh r0, [r4, #0x32] b _0808FAC4 .align 2, 0 _0808FABC: .4byte 0x00000101 _0808FAC0: ldrh r0, [r5] strh r0, [r4, #0x2e] _0808FAC4: adds r0, r4, #0 bl sub_0808FF50 pop {r4, r5, r6, pc} thumb_func_start sub_0808FACC sub_0808FACC: @ 0x0808FACC push {r4, lr} adds r4, r0, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #0 bne _0808FAF2 adds r0, r4, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 bne _0808FAEA adds r0, r4, #0 bl sub_0808FBFC b _0808FB0A _0808FAEA: adds r0, r4, #0 bl sub_0808FB68 b _0808FB0A _0808FAF2: ldrb r0, [r4, #0xe] cmp r0, #0 beq _0808FB0A subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0808FB0A movs r0, #0x86 lsls r0, r0, #1 bl sub_08004488 _0808FB0A: ldrb r0, [r4, #0xa] cmp r0, #2 beq _0808FB14 cmp r0, #4 bne _0808FB64 _0808FB14: ldrb r1, [r4, #0xd] cmp r1, #1 beq _0808FB3E cmp r1, #1 bgt _0808FB24 cmp r1, #0 beq _0808FB2A b _0808FB64 _0808FB24: cmp r1, #2 beq _0808FB5E b _0808FB64 _0808FB2A: adds r0, r4, #0 bl sub_0808FECC cmp r0, #0 beq _0808FB64 movs r0, #1 strb r0, [r4, #0xd] movs r0, #0xc strb r0, [r4, #0xe] b _0808FB64 _0808FB3E: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0808FB64 strb r1, [r4, #0x1e] movs r0, #2 strb r0, [r4, #0xd] movs r0, #0x80 bl sub_08004488 adds r0, r4, #0 bl sub_0808FF20 b _0808FB64 _0808FB5E: adds r0, r4, #0 bl nullsub_1 _0808FB64: pop {r4, pc} .align 2, 0 thumb_func_start sub_0808FB68 sub_0808FB68: @ 0x0808FB68 push {r4, lr} adds r4, r0, #0 adds r0, #0x70 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080001DA adds r1, r0, #0 ldr r0, _0808FBAC @ =0x00004031 cmp r1, r0 bhi _0808FBB0 subs r0, #1 cmp r1, r0 blo _0808FBB0 movs r0, #2 strb r0, [r4, #0xc] adds r0, r1, #0 subs r0, #0x30 movs r1, #1 ands r0, r1 lsls r0, r0, #4 movs r1, #8 orrs r0, r1 strb r0, [r4, #0x15] movs r0, #1 bl sub_08078A90 adds r0, r4, #0 movs r1, #0 bl sub_0808FD44 b _0808FBF6 .align 2, 0 _0808FBAC: .4byte 0x00004031 _0808FBB0: adds r0, r4, #0 adds r0, #0x72 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080001DA adds r1, r0, #0 ldr r0, _0808FBF8 @ =0x00004031 cmp r1, r0 bhi _0808FBF0 subs r0, #1 cmp r1, r0 blo _0808FBF0 movs r0, #2 strb r0, [r4, #0xc] adds r0, r1, #0 subs r0, #0x30 movs r1, #1 ands r0, r1 lsls r0, r0, #4 movs r1, #8 orrs r0, r1 strb r0, [r4, #0x15] movs r0, #1 bl sub_08078A90 adds r0, r4, #0 movs r1, #1 bl sub_0808FD44 _0808FBF0: adds r0, r4, #0 bl sub_0808FDE8 _0808FBF6: pop {r4, pc} .align 2, 0 _0808FBF8: .4byte 0x00004031 thumb_func_start sub_0808FBFC sub_0808FBFC: @ 0x0808FBFC push {r4, lr} adds r4, r0, #0 adds r0, #0x7c ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080001DA adds r1, r0, #0 ldr r0, _0808FC38 @ =0x0000404A cmp r1, r0 beq _0808FC34 movs r0, #2 strb r0, [r4, #0xc] adds r0, r1, #0 subs r0, #0x4b movs r1, #3 ands r0, r1 lsls r0, r0, #3 strb r0, [r4, #0x15] movs r0, #1 bl sub_08078A90 adds r0, r4, #0 movs r1, #0 bl sub_0808FD44 _0808FC34: pop {r4, pc} .align 2, 0 _0808FC38: .4byte 0x0000404A thumb_func_start sub_0808FC3C sub_0808FC3C: @ 0x0808FC3C push {r4, lr} adds r4, r0, #0 bl sub_0800445C adds r0, r4, #0 bl sub_0808FC5C cmp r0, #0 beq _0808FC58 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0 bl sub_08078A90 _0808FC58: pop {r4, pc} .align 2, 0 thumb_func_start sub_0808FC5C sub_0808FC5C: @ 0x0808FC5C push {r4, r5, lr} adds r4, r0, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 bne _0808FD40 ldrb r1, [r4, #0xa] cmp r1, #2 beq _0808FC7C cmp r1, #4 bne _0808FC84 _0808FC7C: adds r1, r4, #0 adds r1, #0x63 movs r0, #0xfe b _0808FC88 _0808FC84: adds r1, r4, #0 adds r1, #0x63 _0808FC88: strb r0, [r1] adds r0, r4, #0 bl sub_080002D0 cmp r0, #0 bne _0808FD40 ldrb r0, [r4, #0xf] cmp r0, #0 beq _0808FD30 movs r2, #0 ldrh r1, [r4, #0xa] ldr r0, _0808FCB4 @ =0x00000101 cmp r1, r0 bne _0808FCB8 movs r1, #0x32 ldrsh r0, [r4, r1] adds r1, r4, #0 adds r1, #0x7e ldrh r1, [r1] cmp r0, r1 bne _0808FCC8 b _0808FCCC .align 2, 0 _0808FCB4: .4byte 0x00000101 _0808FCB8: movs r1, #0x2e ldrsh r0, [r4, r1] adds r1, r4, #0 adds r1, #0x7e ldrh r1, [r1] cmp r0, r1 bne _0808FCC8 movs r2, #1 _0808FCC8: cmp r2, #0 beq _0808FD30 _0808FCCC: adds r0, r4, #0 adds r0, #0x81 movs r5, #1 strb r5, [r0] ldr r3, [r4, #0x50] cmp r3, #0 bne _0808FCE4 adds r0, #5 ldrh r0, [r0] bl sub_0807CCC8 b _0808FD0C _0808FCE4: adds r2, r4, #0 adds r2, #0x82 ldrb r1, [r2] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0808FD06 adds r0, r3, #0 adds r0, #0x28 subs r2, #8 adds r1, r5, #0 ldrh r2, [r2] lsls r1, r2 ldrb r2, [r0] orrs r1, r2 strb r1, [r0] b _0808FD0C _0808FD06: ldrb r0, [r2] bl sub_0807CCB4 _0808FD0C: adds r0, r4, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 bne _0808FD1A movs r0, #4 b _0808FD1C _0808FD1A: movs r0, #0x18 _0808FD1C: strb r0, [r4, #0xe] ldr r0, _0808FD3C @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _0808FD30 ldrb r0, [r4, #0xe] adds r0, #0x10 strb r0, [r4, #0xe] _0808FD30: adds r0, r4, #0 bl sub_0808FF50 movs r0, #1 b _0808FD42 .align 2, 0 _0808FD3C: .4byte gUnk_03003F80 _0808FD40: movs r0, #0 _0808FD42: pop {r4, r5, pc} thumb_func_start sub_0808FD44 sub_0808FD44: @ 0x0808FD44 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #1 bne _0808FD8E adds r0, r4, #0 adds r0, #0x83 ldrb r0, [r0] cmp r0, #0 beq _0808FD62 adds r0, r4, #0 bl sub_08090498 _0808FD62: cmp r5, #0 beq _0808FD6C adds r0, r4, #0 adds r0, #0x72 b _0808FD70 _0808FD6C: adds r0, r4, #0 adds r0, #0x70 _0808FD70: ldrh r5, [r0] ldr r0, _0808FD84 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _0808FD88 movs r0, #0x40 strh r0, [r4, #0x24] b _0808FDB2 .align 2, 0 _0808FD84: .4byte gUnk_03003F80 _0808FD88: strh r1, [r4, #0x24] movs r0, #0x10 b _0808FDB4 _0808FD8E: adds r0, r4, #0 adds r0, #0x7c ldrh r5, [r0] ldr r0, _0808FDAC @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _0808FDB0 movs r1, #0x40 movs r0, #0x40 strh r0, [r4, #0x24] strb r1, [r4, #0xe] b _0808FDB6 .align 2, 0 _0808FDAC: .4byte gUnk_03003F80 _0808FDB0: strh r1, [r4, #0x24] _0808FDB2: movs r0, #0x20 _0808FDB4: strb r0, [r4, #0xe] _0808FDB6: ldr r0, _0808FDE0 @ =0x0000010F bl sub_08004488 adds r0, r4, #0 bl sub_08090254 ldr r1, _0808FDE4 @ =gUnk_080B4488 ldrb r0, [r4, #0x15] lsrs r0, r0, #3 lsls r0, r0, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] adds r0, r5, r0 adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080001DA pop {r4, r5, pc} .align 2, 0 _0808FDE0: .4byte 0x0000010F _0808FDE4: .4byte gUnk_080B4488 thumb_func_start sub_0808FDE8 sub_0808FDE8: @ 0x0808FDE8 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r0, #0x70 ldrh r5, [r0] subs r0, r5, #1 movs r1, #1 bl sub_080002E0 adds r4, r0, #0 adds r0, r5, #0 movs r1, #1 bl sub_080001DA ldr r6, _0808FE28 @ =0x0000402E cmp r0, r6 bne _0808FE30 movs r0, #0xf0 ands r0, r4 cmp r0, #0 beq _0808FE14 cmp r0, #0x50 bne _0808FE1C _0808FE14: movs r0, #5 ands r0, r4 cmp r0, #0 bne _0808FE58 _0808FE1C: ldr r0, _0808FE2C @ =0x0000402C adds r1, r5, #0 movs r2, #1 bl sub_0800015E b _0808FE58 .align 2, 0 _0808FE28: .4byte 0x0000402E _0808FE2C: .4byte 0x0000402C _0808FE30: adds r0, r5, #0 movs r1, #1 bl sub_080002E0 cmp r0, #5 bne _0808FE58 movs r1, #0xf0 ands r1, r4 cmp r1, #0 beq _0808FE48 cmp r1, #0x50 bne _0808FE58 _0808FE48: ands r4, r0 cmp r4, #0 beq _0808FE58 adds r0, r6, #0 adds r1, r5, #0 movs r2, #1 bl sub_0800015E _0808FE58: adds r0, r7, #0 adds r0, #0x72 ldrh r5, [r0] adds r0, r5, #1 movs r1, #1 bl sub_080002E0 adds r4, r0, #0 adds r0, r5, #0 movs r1, #1 bl sub_080001DA ldr r6, _0808FE98 @ =0x0000402F cmp r0, r6 bne _0808FEA0 movs r0, #0xf0 ands r0, r4 cmp r0, #0 beq _0808FE82 cmp r0, #0x50 bne _0808FE8A _0808FE82: movs r0, #0xa ands r0, r4 cmp r0, #0 bne _0808FEC8 _0808FE8A: ldr r0, _0808FE9C @ =0x0000402D adds r1, r5, #0 movs r2, #1 bl sub_0800015E b _0808FEC8 .align 2, 0 _0808FE98: .4byte 0x0000402F _0808FE9C: .4byte 0x0000402D _0808FEA0: adds r0, r5, #0 movs r1, #1 bl sub_080002E0 cmp r0, #0xa bne _0808FEC8 movs r1, #0xf0 ands r1, r4 cmp r1, #0 beq _0808FEB8 cmp r1, #0x50 bne _0808FEC8 _0808FEB8: ands r4, r0 cmp r4, #0 beq _0808FEC8 adds r0, r6, #0 adds r1, r5, #0 movs r2, #1 bl sub_0800015E _0808FEC8: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0808FECC sub_0808FECC: @ 0x0808FECC push {r4, r5, lr} adds r2, r0, #0 movs r4, #1 ldr r0, _0808FF18 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _0808FF10 ldr r3, _0808FF1C @ =gUnk_03001160 ldrb r0, [r3, #0xc] cmp r0, #6 bne _0808FF10 ldrb r0, [r3, #0x14] cmp r0, #0 bne _0808FF10 movs r1, #0x32 ldrsh r0, [r3, r1] movs r5, #0x32 ldrsh r1, [r2, r5] subs r0, r0, r1 cmp r0, #0x13 bgt _0808FF10 movs r0, #0x2e ldrsh r2, [r2, r0] adds r0, r2, #0 adds r0, #0xc movs r5, #0x2e ldrsh r1, [r3, r5] cmp r0, r1 ble _0808FF10 subs r0, #0x18 cmp r0, r1 blt _0808FF12 _0808FF10: movs r4, #0 _0808FF12: adds r0, r4, #0 pop {r4, r5, pc} .align 2, 0 _0808FF18: .4byte gUnk_03003F80 _0808FF1C: .4byte gUnk_03001160 thumb_func_start sub_0808FF20 sub_0808FF20: @ 0x0808FF20 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xb] cmp r1, #0 beq _0808FF4A cmp r1, #0 blt _0808FF4A cmp r1, #2 bgt _0808FF4A subs r1, #1 movs r0, #0x63 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _0808FF4A str r4, [r1, #0x50] adds r0, r4, #0 bl sub_0806FA24 _0808FF4A: pop {r4, pc} thumb_func_start nullsub_1 nullsub_1: @ 0x0808FF4C bx lr .align 2, 0 thumb_func_start sub_0808FF50 sub_0808FF50: @ 0x0808FF50 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 movs r0, #0x2e ldrsh r1, [r6, r0] ldr r2, _0808FF98 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r4, #0x32 ldrsh r0, [r6, r4] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r2, r6, #0 adds r2, #0x7c strh r1, [r2] ldrh r0, [r6, #0x2e] movs r1, #0xf ands r1, r0 ldrh r7, [r2] adds r0, r6, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #0 beq _0808FF9C cmp r0, #1 beq _0808FFC0 b _0809008A .align 2, 0 _0808FF98: .4byte gUnk_03000BF0 _0808FF9C: adds r0, r6, #0 adds r0, #0x70 strh r7, [r0] ldrh r0, [r0] movs r1, #1 bl sub_080001DA adds r1, r6, #0 adds r1, #0x74 strh r0, [r1] ldr r0, _0808FFBC @ =0x0000404A adds r1, r7, #0 movs r2, #1 bl sub_0800015E b _0809008A .align 2, 0 _0808FFBC: .4byte 0x0000404A _0808FFC0: movs r0, #8 ands r1, r0 cmp r1, #0 beq _0809002C adds r0, r6, #0 adds r0, #0x70 strh r7, [r0] ldrh r0, [r0] movs r1, #1 bl sub_080001DA adds r1, r6, #0 adds r1, #0x74 strh r0, [r1] ldr r4, _08090028 @ =gUnk_08121EE4 movs r0, #0x81 adds r0, r0, r6 mov r8, r0 ldrb r0, [r0] lsls r0, r0, #1 adds r0, r0, r4 ldrh r0, [r0] adds r1, r7, #0 movs r2, #1 bl sub_0800015E adds r0, r7, #1 adds r5, r6, #0 adds r5, #0x72 strh r0, [r5] ldrh r0, [r5] movs r1, #1 bl sub_080001DA adds r1, r6, #0 adds r1, #0x76 strh r0, [r1] mov r1, r8 ldrb r0, [r1] adds r0, #4 lsls r0, r0, #1 adds r0, r0, r4 ldrh r1, [r0] ldrh r2, [r5] adds r0, r6, #0 bl sub_08090094 adds r0, r6, #0 movs r1, #1 bl sub_0809028C b _0809008A .align 2, 0 _08090028: .4byte gUnk_08121EE4 _0809002C: adds r0, r6, #0 adds r0, #0x72 strh r7, [r0] ldrh r0, [r0] movs r1, #1 bl sub_080001DA adds r1, r6, #0 adds r1, #0x76 strh r0, [r1] ldr r5, _08090090 @ =gUnk_08121EE4 movs r4, #0x81 adds r4, r4, r6 mov r8, r4 ldrb r0, [r4] lsls r0, r0, #1 adds r0, r0, r5 ldrh r0, [r0] adds r1, r7, #0 movs r2, #1 bl sub_0800015E subs r0, r7, #1 adds r4, r6, #0 adds r4, #0x70 strh r0, [r4] ldrh r0, [r4] movs r1, #1 bl sub_080001DA adds r1, r6, #0 adds r1, #0x74 strh r0, [r1] mov r1, r8 ldrb r0, [r1] adds r0, #2 lsls r0, r0, #1 adds r0, r0, r5 ldrh r1, [r0] ldrh r2, [r4] adds r0, r6, #0 bl sub_08090094 adds r0, r6, #0 movs r1, #0 bl sub_0809028C _0809008A: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08090090: .4byte gUnk_08121EE4 thumb_func_start sub_08090094 sub_08090094: @ 0x08090094 push {r4, r5, r6, r7, lr} adds r6, r0, #0 adds r5, r1, #0 adds r7, r2, #0 adds r0, r7, #0 movs r1, #1 bl sub_080002E0 adds r4, r0, #0 adds r0, r7, #0 movs r1, #1 bl sub_080001DA adds r3, r0, #0 movs r0, #0x80 lsls r0, r0, #7 ands r0, r3 cmp r0, #0 bne _0809012C adds r3, r5, #0 ldr r1, _080900D0 @ =0xFFFFBFDC adds r0, r3, r1 cmp r0, #0xb bhi _0809011A lsls r0, r0, #2 ldr r1, _080900D4 @ =_080900D8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080900D0: .4byte 0xFFFFBFDC _080900D4: .4byte _080900D8 _080900D8: @ jump table .4byte _08090114 @ case 0 .4byte _08090108 @ case 1 .4byte _0809011A @ case 2 .4byte _0809011A @ case 3 .4byte _0809011A @ case 4 .4byte _0809011A @ case 5 .4byte _0809011A @ case 6 .4byte _0809011A @ case 7 .4byte _08090114 @ case 8 .4byte _0809010E @ case 9 .4byte _08090114 @ case 10 .4byte _0809010E @ case 11 _08090108: cmp r4, #5 bne _0809011A b _08090118 _0809010E: cmp r4, #5 bne _0809011A b _08090118 _08090114: cmp r4, #0xa bne _0809011A _08090118: ldr r3, _08090128 @ =0x00004022 _0809011A: adds r0, r3, #0 adds r1, r7, #0 movs r2, #1 bl sub_0800015E b _08090242 .align 2, 0 _08090128: .4byte 0x00004022 _0809012C: ldr r1, _08090140 @ =0xFFFFBFDE adds r0, r3, r1 cmp r0, #0xd bls _08090136 b _08090242 _08090136: lsls r0, r0, #2 ldr r1, _08090144 @ =_08090148 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08090140: .4byte 0xFFFFBFDE _08090144: .4byte _08090148 _08090148: @ jump table .4byte _08090242 @ case 0 .4byte _08090242 @ case 1 .4byte _080901EC @ case 2 .4byte _08090180 @ case 3 .4byte _08090242 @ case 4 .4byte _08090242 @ case 5 .4byte _08090242 @ case 6 .4byte _08090242 @ case 7 .4byte _08090242 @ case 8 .4byte _08090242 @ case 9 .4byte _08090210 @ case 10 .4byte _080901B4 @ case 11 .4byte _08090210 @ case 12 .4byte _080901B4 @ case 13 _08090180: ldr r0, _080901A8 @ =0x00004024 cmp r5, r0 bne _08090194 ldr r3, _080901AC @ =0x00004022 adds r2, r6, #0 adds r2, #0x83 ldrb r1, [r2] movs r0, #0x10 orrs r0, r1 strb r0, [r2] _08090194: ldr r0, _080901B0 @ =0x0000402C cmp r5, r0 bne _08090238 ldr r3, _080901AC @ =0x00004022 adds r2, r6, #0 adds r2, #0x83 ldrb r1, [r2] movs r0, #0x10 b _08090234 .align 2, 0 _080901A8: .4byte 0x00004024 _080901AC: .4byte 0x00004022 _080901B0: .4byte 0x0000402C _080901B4: ldr r0, _080901DC @ =0x0000402C cmp r5, r0 bne _080901C8 ldr r3, _080901E0 @ =0x0000402B adds r2, r6, #0 adds r2, #0x83 ldrb r1, [r2] movs r0, #0x10 orrs r0, r1 strb r0, [r2] _080901C8: ldr r0, _080901E4 @ =0x00004024 cmp r5, r0 bne _08090238 ldr r3, _080901E8 @ =0x00004022 adds r2, r6, #0 adds r2, #0x83 ldrb r1, [r2] movs r0, #0x10 b _08090234 .align 2, 0 _080901DC: .4byte 0x0000402C _080901E0: .4byte 0x0000402B _080901E4: .4byte 0x00004024 _080901E8: .4byte 0x00004022 _080901EC: ldr r0, _08090204 @ =0x00004025 cmp r5, r0 bne _08090200 ldr r3, _08090208 @ =0x00004022 adds r2, r6, #0 adds r2, #0x83 ldrb r1, [r2] movs r0, #0x20 orrs r0, r1 strb r0, [r2] _08090200: ldr r0, _0809020C @ =0x0000402D b _08090226 .align 2, 0 _08090204: .4byte 0x00004025 _08090208: .4byte 0x00004022 _0809020C: .4byte 0x0000402D _08090210: ldr r0, _08090244 @ =0x0000402D cmp r5, r0 bne _08090224 ldr r3, _08090248 @ =0x0000402B adds r2, r6, #0 adds r2, #0x83 ldrb r1, [r2] movs r0, #0x20 orrs r0, r1 strb r0, [r2] _08090224: ldr r0, _0809024C @ =0x00004025 _08090226: cmp r5, r0 bne _08090238 ldr r3, _08090250 @ =0x00004022 adds r2, r6, #0 adds r2, #0x83 ldrb r1, [r2] movs r0, #0x20 _08090234: orrs r0, r1 strb r0, [r2] _08090238: adds r0, r3, #0 adds r1, r7, #0 movs r2, #1 bl sub_0800015E _08090242: pop {r4, r5, r6, r7, pc} .align 2, 0 _08090244: .4byte 0x0000402D _08090248: .4byte 0x0000402B _0809024C: .4byte 0x00004025 _08090250: .4byte 0x00004022 thumb_func_start sub_08090254 sub_08090254: @ 0x08090254 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x74 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x70 ldrh r1, [r1] adds r5, r4, #0 adds r5, #0x38 ldrb r2, [r5] bl sub_0807B9B8 adds r0, r4, #0 adds r0, #0x80 ldrb r0, [r0] cmp r0, #1 bne _08090288 adds r0, r4, #0 adds r0, #0x76 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x72 ldrh r1, [r1] ldrb r2, [r5] bl sub_0807B9B8 _08090288: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0809028C sub_0809028C: @ 0x0809028C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r6, r0, #0 adds r4, r6, #0 adds r4, #0x83 ldrb r0, [r4] movs r2, #0x30 ands r2, r0 movs r0, #0 mov sb, r0 strb r2, [r4] adds r0, r6, #0 adds r0, #0x70 ldrh r5, [r0] adds r7, r5, #0 subs r7, #0x80 adds r0, #2 ldrh r3, [r0] movs r0, #0x80 rsbs r0, r0, #0 adds r0, r0, r3 mov r8, r0 cmp r1, #1 bne _0809039A movs r0, #0x20 ands r0, r2 cmp r0, #0 beq _080902D4 adds r1, r3, #0 subs r1, #0x7f movs r0, #0 bl sub_08090480 b _080902FE _080902D4: mov r0, r8 movs r1, #2 bl sub_080002B0 adds r1, r0, #0 ldr r0, _080902EC @ =0x00000301 cmp r1, r0 beq _080902F0 adds r0, #7 cmp r1, r0 beq _080902F6 b _080902FE .align 2, 0 _080902EC: .4byte 0x00000301 _080902F0: ldrb r0, [r4] movs r1, #8 b _080902FA _080902F6: ldrb r0, [r4] movs r1, #2 _080902FA: orrs r0, r1 strb r0, [r4] _080902FE: adds r2, r6, #0 adds r2, #0x83 ldrb r1, [r2] movs r0, #0x2a ands r0, r1 adds r4, r2, #0 cmp r0, #0 beq _0809031E movs r0, #0 adds r1, r7, #0 bl sub_08090480 movs r0, #0 mov r1, r8 bl sub_08090480 _0809031E: ldrb r1, [r4] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0809034E subs r4, r7, #1 adds r0, r4, #0 movs r1, #1 bl sub_080002B0 movs r1, #0xc0 lsls r1, r1, #2 cmp r0, r1 bne _0809033C b _08090478 _0809033C: movs r0, #0 adds r1, r4, #0 bl sub_08090480 subs r1, r7, #2 movs r0, #2 bl sub_08090480 b _08090478 _0809034E: subs r0, r7, #1 movs r1, #2 bl sub_080002B0 adds r1, r0, #0 movs r0, #0xc0 lsls r0, r0, #2 cmp r1, r0 beq _08090368 adds r0, #8 cmp r1, r0 beq _0809036E b _08090376 _08090368: ldrb r1, [r4] movs r0, #4 b _08090372 _0809036E: ldrb r1, [r4] movs r0, #1 _08090372: orrs r0, r1 strb r0, [r4] _08090376: ldrb r1, [r4] movs r0, #0x15 ands r0, r1 cmp r0, #0 beq _08090478 movs r0, #0x2a ands r0, r1 cmp r0, #0 bne _08090478 movs r0, #0 adds r1, r7, #0 bl sub_08090480 movs r0, #1 mov r1, r8 bl sub_08090480 b _08090478 _0809039A: movs r0, #0x10 ands r0, r2 cmp r0, #0 beq _080903AE adds r1, r5, #0 subs r1, #0x81 movs r0, #0 bl sub_08090480 b _080903DA _080903AE: adds r0, r7, #0 movs r1, #2 bl sub_080002B0 adds r1, r0, #0 ldr r0, _080903C8 @ =0x00000302 cmp r1, r0 beq _080903CC adds r0, #4 cmp r1, r0 beq _080903D2 b _080903DA .align 2, 0 _080903C8: .4byte 0x00000302 _080903CC: ldrb r0, [r4] movs r1, #4 b _080903D6 _080903D2: ldrb r0, [r4] movs r1, #1 _080903D6: orrs r0, r1 strb r0, [r4] _080903DA: adds r2, r6, #0 adds r2, #0x83 ldrb r1, [r2] movs r0, #0x15 ands r0, r1 adds r4, r2, #0 cmp r0, #0 beq _080903FA movs r0, #0 adds r1, r7, #0 bl sub_08090480 movs r0, #0 mov r1, r8 bl sub_08090480 _080903FA: ldrb r1, [r4] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _0809042C mov r4, r8 adds r4, #1 adds r0, r4, #0 movs r1, #1 bl sub_080002B0 movs r1, #0xc0 lsls r1, r1, #2 cmp r0, r1 beq _08090478 movs r0, #0 adds r1, r4, #0 bl sub_08090480 mov r1, r8 adds r1, #2 movs r0, #1 bl sub_08090480 b _08090478 _0809042C: mov r0, r8 adds r0, #1 movs r1, #2 bl sub_080002B0 adds r1, r0, #0 movs r0, #0xc0 lsls r0, r0, #2 cmp r1, r0 beq _08090448 adds r0, #6 cmp r1, r0 beq _0809044E b _08090456 _08090448: ldrb r1, [r4] movs r0, #8 b _08090452 _0809044E: ldrb r1, [r4] movs r0, #2 _08090452: orrs r0, r1 strb r0, [r4] _08090456: ldrb r1, [r4] movs r0, #0x2a ands r0, r1 cmp r0, #0 beq _08090478 movs r0, #0x15 ands r0, r1 cmp r0, #0 bne _08090478 movs r0, #2 adds r1, r7, #0 bl sub_08090480 movs r0, #0 mov r1, r8 bl sub_08090480 _08090478: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08090480 sub_08090480: @ 0x08090480 push {lr} ldr r2, _08090494 @ =gUnk_08121EF0 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] movs r2, #1 bl sub_0800015E pop {pc} .align 2, 0 _08090494: .4byte gUnk_08121EF0 thumb_func_start sub_08090498 sub_08090498: @ 0x08090498 push {r4, r5, lr} adds r5, r0, #0 adds r0, #0x70 ldrh r0, [r0] adds r4, r0, #0 subs r4, #0x80 adds r0, r4, #0 movs r1, #1 bl sub_0807BA8C adds r0, r5, #0 adds r0, #0x83 ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080904D2 adds r0, r4, #0 movs r1, #2 bl sub_080002B0 ldr r1, _08090510 @ =0x00000306 cmp r0, r1 bne _080904D2 movs r0, #0x62 adds r1, r4, #0 movs r2, #1 bl sub_08000148 _080904D2: adds r0, r5, #0 adds r0, #0x72 ldrh r0, [r0] adds r4, r0, #0 subs r4, #0x80 adds r0, r4, #0 movs r1, #1 bl sub_0807BA8C adds r0, r5, #0 adds r0, #0x83 ldrb r1, [r0] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0809050C adds r0, r4, #0 movs r1, #2 bl sub_080002B0 movs r1, #0xc2 lsls r1, r1, #2 cmp r0, r1 bne _0809050C movs r0, #0x63 adds r1, r4, #0 movs r2, #1 bl sub_08000148 _0809050C: pop {r4, r5, pc} .align 2, 0 _08090510: .4byte 0x00000306 thumb_func_start sub_08090514 sub_08090514: @ 0x08090514 push {lr} adds r2, r0, #0 ldr r0, [r2, #0x50] cmp r0, #0 beq _0809059E ldrb r0, [r0, #0xd] cmp r0, #1 beq _08090552 cmp r0, #1 bgt _0809052E cmp r0, #0 beq _08090538 b _0809059E _0809052E: cmp r0, #2 beq _08090568 cmp r0, #3 beq _08090582 b _0809059E _08090538: ldrb r1, [r2, #0x19] movs r0, #0x3f ands r0, r1 movs r1, #0x80 orrs r0, r1 strb r0, [r2, #0x19] adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #4 b _0809059A _08090552: ldrb r0, [r2, #0x19] movs r1, #0xc0 orrs r0, r1 strb r0, [r2, #0x19] adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #4 b _0809059A _08090568: ldrb r1, [r2, #0x19] movs r0, #0x3f ands r0, r1 movs r1, #0x80 orrs r0, r1 strb r0, [r2, #0x19] adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #5 b _0809059A _08090582: ldrb r1, [r2, #0x19] movs r0, #0x3f ands r0, r1 movs r1, #0x80 orrs r0, r1 strb r0, [r2, #0x19] adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 _0809059A: orrs r0, r1 strb r0, [r2] _0809059E: pop {pc} thumb_func_start sub_080905A0 sub_080905A0: @ 0x080905A0 push {lr} ldr r2, _080905B4 @ =gUnk_08122218 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080905B4: .4byte gUnk_08122218 thumb_func_start sub_080905B8 sub_080905B8: @ 0x080905B8 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r7, r0, #0 movs r0, #1 mov sb, r0 mov r1, sb strb r1, [r7, #0xc] movs r5, #0x2e ldrsh r2, [r7, r5] ldr r6, _08090618 @ =gUnk_03000BF0 ldrh r0, [r6, #6] subs r2, r2, r0 asrs r2, r2, #4 movs r4, #0x3f ands r2, r4 movs r1, #0x32 ldrsh r0, [r7, r1] ldrh r1, [r6, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r4 lsls r0, r0, #6 orrs r2, r0 adds r5, r7, #0 adds r5, #0x78 movs r0, #0 mov r8, r0 strh r2, [r5] adds r0, r7, #0 bl sub_08090DC4 adds r0, r7, #0 adds r0, #0x82 ldrh r0, [r0] ldr r1, _0809061C @ =0x00007FFF ands r1, r0 cmp r1, #0x80 beq _08090680 cmp r1, #0x80 bgt _08090620 cmp r1, #0x20 beq _080906E6 cmp r1, #0x40 beq _08090650 b _080906E0 .align 2, 0 _08090618: .4byte gUnk_03000BF0 _0809061C: .4byte 0x00007FFF _08090620: movs r0, #0x80 lsls r0, r0, #2 cmp r1, r0 beq _080906E6 cmp r1, r0 bgt _08090636 movs r0, #0x80 lsls r0, r0, #1 cmp r1, r0 beq _08090640 b _080906E0 _08090636: movs r0, #0x80 lsls r0, r0, #3 cmp r1, r0 beq _080906C4 b _080906E0 _08090640: adds r1, r7, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r7, #0 bl sub_08016A04 b _080906E6 _08090650: ldrh r1, [r7, #0x32] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strh r0, [r7, #0x32] ldr r4, _0809067C @ =0x00004017 ldrh r1, [r5] subs r1, #0x80 adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldrh r1, [r5] subs r1, #0x40 adds r0, r4, #0 movs r2, #1 bl sub_0800015E b _080906E6 .align 2, 0 _0809067C: .4byte 0x00004017 _08090680: mov r1, r8 strb r1, [r7, #0x1e] ldrh r1, [r7, #0x32] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strh r0, [r7, #0x32] movs r2, #0x2e ldrsh r1, [r7, r2] ldrh r0, [r6, #6] subs r1, r1, r0 asrs r1, r1, #4 ands r1, r4 movs r2, #0x32 ldrsh r0, [r7, r2] ldrh r2, [r6, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r4 lsls r0, r0, #6 orrs r1, r0 strh r1, [r5] ldr r0, _080906C0 @ =0x00004026 ldrh r1, [r5] adds r2, r7, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E b _080906E6 .align 2, 0 _080906C0: .4byte 0x00004026 _080906C4: adds r0, r7, #0 bl sub_08090E64 ldrb r0, [r7, #0xb] cmp r0, #0 beq _080906E0 adds r0, r7, #0 adds r0, #0x62 mov r5, sb strb r5, [r0] adds r1, r7, #0 adds r1, #0x80 movs r0, #0x30 strb r0, [r1] _080906E0: adds r0, r7, #0 bl sub_08090B6C _080906E6: adds r0, r7, #0 adds r0, #0x81 ldrb r1, [r0] cmp r1, #0x10 beq _0809075C movs r0, #0x70 ands r0, r1 adds r4, r7, #0 adds r4, #0x78 cmp r0, #0x20 beq _0809072E cmp r0, #0x30 bne _0809073A ldrh r0, [r4] subs r0, #0x40 strh r0, [r4] adds r0, r7, #0 bl sub_08090B6C movs r0, #0x2e ldrsh r1, [r7, r0] ldr r2, _08090778 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r7, r5] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 strh r1, [r4] _0809072E: ldrh r0, [r4] adds r0, #0x40 strh r0, [r4] adds r0, r7, #0 bl sub_08090B6C _0809073A: movs r0, #0x2e ldrsh r1, [r7, r0] ldr r2, _08090778 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r7, r5] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 strh r1, [r4] _0809075C: adds r0, r7, #0 adds r0, #0x82 ldrh r0, [r0] ldr r1, _0809077C @ =0x00007FFF ands r1, r0 cmp r1, #2 beq _08090780 cmp r1, #4 bne _080907C8 adds r0, r7, #0 movs r1, #0x7e bl sub_0801D2B4 b _080907C8 .align 2, 0 _08090778: .4byte gUnk_03000BF0 _0809077C: .4byte 0x00007FFF _08090780: adds r0, r7, #0 adds r0, #0x78 ldrh r0, [r0] adds r4, r0, #0 subs r4, #0x81 ldrb r0, [r7, #0xa] movs r1, #2 mov r8, r1 cmp r0, #0x1a beq _08090798 movs r2, #3 mov r8, r2 _08090798: movs r5, #0 cmp r5, r8 bhs _080907C8 ldr r6, _080907DC @ =0x00004026 _080907A0: adds r0, r6, #0 adds r1, r4, #0 movs r2, #2 bl sub_0800015E adds r0, r6, #0 adds r1, r4, #0 movs r2, #1 bl sub_0800015E adds r1, r4, #0 adds r1, #0x40 movs r0, #0 movs r2, #1 bl sub_080001D0 adds r5, #1 adds r4, #1 cmp r5, r8 blo _080907A0 _080907C8: ldrb r0, [r7, #0xa] subs r0, #1 cmp r0, #0x3b bls _080907D2 b _080909DC _080907D2: lsls r0, r0, #2 ldr r1, _080907E0 @ =_080907E4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080907DC: .4byte 0x00004026 _080907E0: .4byte _080907E4 _080907E4: @ jump table .4byte _080908D4 @ case 0 .4byte _080909DC @ case 1 .4byte _080909DC @ case 2 .4byte _080909DC @ case 3 .4byte _080909DC @ case 4 .4byte _080909DC @ case 5 .4byte _080909DC @ case 6 .4byte _080909DC @ case 7 .4byte _080908F0 @ case 8 .4byte _080909DC @ case 9 .4byte _080909DC @ case 10 .4byte _080909DC @ case 11 .4byte _080909DC @ case 12 .4byte _080909DC @ case 13 .4byte _080909DC @ case 14 .4byte _080909DC @ case 15 .4byte _080909DC @ case 16 .4byte _080909DC @ case 17 .4byte _080909DC @ case 18 .4byte _080909DC @ case 19 .4byte _080909DC @ case 20 .4byte _080909DC @ case 21 .4byte _080909DC @ case 22 .4byte _080909DC @ case 23 .4byte _080909DC @ case 24 .4byte _080909DC @ case 25 .4byte _080909DC @ case 26 .4byte _080909DC @ case 27 .4byte _080909DC @ case 28 .4byte _08090920 @ case 29 .4byte _08090938 @ case 30 .4byte _080909DC @ case 31 .4byte _080909DC @ case 32 .4byte _080909DC @ case 33 .4byte _080909DC @ case 34 .4byte _080909DC @ case 35 .4byte _080909DC @ case 36 .4byte _080909DC @ case 37 .4byte _080909DC @ case 38 .4byte _08090984 @ case 39 .4byte _080909DC @ case 40 .4byte _080909DC @ case 41 .4byte _080909DC @ case 42 .4byte _080909DC @ case 43 .4byte _080909DC @ case 44 .4byte _080909DC @ case 45 .4byte _080909DC @ case 46 .4byte _080909DC @ case 47 .4byte _080909DC @ case 48 .4byte _080909DC @ case 49 .4byte _080909DC @ case 50 .4byte _080909DC @ case 51 .4byte _080909DC @ case 52 .4byte _080909DC @ case 53 .4byte _080909DC @ case 54 .4byte _080909DC @ case 55 .4byte _080909DC @ case 56 .4byte _080909DC @ case 57 .4byte _08090994 @ case 58 .4byte _080909C8 @ case 59 _080908D4: ldrb r0, [r7, #0xb] cmp r0, #0 bne _080908DC b _080909DC _080908DC: adds r2, r7, #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] b _080909DC _080908F0: movs r0, #0x4d movs r1, #0x3e movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _080909DC movs r3, #0x80 lsls r3, r3, #0xd adds r0, r7, #0 adds r1, r4, #0 adds r2, r3, #0 bl sub_0806FA48 movs r0, #1 strb r0, [r4, #0x1e] ldrb r1, [r4, #0x11] subs r0, #0x11 ands r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r4, #0x11] b _080909DC _08090920: ldr r0, _08090934 @ =0x00000306 adds r1, r7, #0 adds r1, #0x78 ldrh r1, [r1] adds r1, #0x41 movs r2, #2 bl sub_0807B7D8 b _080909DC .align 2, 0 _08090934: .4byte 0x00000306 _08090938: adds r5, r7, #0 adds r5, #0x38 movs r0, #1 strb r0, [r5] ldrb r1, [r7, #0x1b] movs r0, #0x3f ands r0, r1 movs r1, #0x80 orrs r0, r1 strb r0, [r7, #0x1b] ldr r0, _0809097C @ =0x00004074 adds r4, r7, #0 adds r4, #0x78 ldrh r1, [r4] subs r1, #0x40 ldrb r2, [r5] bl sub_0800015E ldrh r1, [r4] subs r1, #0x40 ldrb r2, [r5] movs r0, #0x3f bl sub_080001D0 ldr r6, _08090980 @ =0x00004017 ldrh r1, [r4] ldrb r2, [r5] adds r0, r6, #0 bl sub_0800015E ldrh r1, [r4] adds r1, #0x40 ldrb r2, [r5] b _080909BC .align 2, 0 _0809097C: .4byte 0x00004074 _08090980: .4byte 0x00004017 _08090984: ldrb r0, [r7, #0xb] cmp r0, #0 beq _080909DC adds r1, r7, #0 adds r1, #0x62 movs r0, #0xfc strb r0, [r1] b _080909DC _08090994: ldr r6, _080909C4 @ =0x00004023 adds r5, r7, #0 adds r5, #0x78 ldrh r1, [r5] subs r1, #0x41 adds r4, r7, #0 adds r4, #0x38 ldrb r2, [r4] adds r0, r6, #0 bl sub_0800015E ldrh r1, [r5] subs r1, #0x40 ldrb r2, [r4] adds r0, r6, #0 bl sub_0800015E ldrh r1, [r5] subs r1, #0x3f ldrb r2, [r4] _080909BC: adds r0, r6, #0 bl sub_0800015E b _080909DC .align 2, 0 _080909C4: .4byte 0x00004023 _080909C8: ldr r0, _080909E4 @ =0x00004022 adds r1, r7, #0 adds r1, #0x78 ldrh r1, [r1] adds r1, #0x41 adds r2, r7, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E _080909DC: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _080909E4: .4byte 0x00004022 thumb_func_start sub_080909E8 sub_080909E8: @ 0x080909E8 push {r4, r5, r6, lr} adds r5, r0, #0 adds r0, #0x82 ldrh r0, [r0] ldr r1, _08090A04 @ =0x00007FFF ands r1, r0 cmp r1, #8 beq _08090A42 cmp r1, #8 bgt _08090A08 cmp r1, #1 beq _08090A12 b _08090B60 .align 2, 0 _08090A04: .4byte 0x00007FFF _08090A08: cmp r1, #0x10 beq _08090A68 cmp r1, #0x80 beq _08090AB0 b _08090B60 _08090A12: ldr r2, _08090A34 @ =gUnk_03001160 movs r0, #0x32 ldrsh r1, [r2, r0] movs r3, #0x32 ldrsh r0, [r5, r3] cmp r1, r0 blt _08090A26 adds r0, #0x18 cmp r1, r0 ble _08090A38 _08090A26: ldrb r0, [r5, #0x19] movs r1, #0x3f ands r1, r0 movs r0, #0x80 orrs r1, r0 strb r1, [r5, #0x19] b _08090B60 .align 2, 0 _08090A34: .4byte gUnk_03001160 _08090A38: ldrb r0, [r5, #0x19] movs r1, #0xc0 orrs r0, r1 strb r0, [r5, #0x19] b _08090B60 _08090A42: ldrb r0, [r5, #0xe] adds r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x10 beq _08090A52 b _08090B60 _08090A52: movs r0, #0 strb r0, [r5, #0xe] ldrb r0, [r5, #0xf] adds r0, #1 movs r1, #3 ands r0, r1 strb r0, [r5, #0xf] adds r0, r5, #0 bl sub_08090E4C b _08090B60 _08090A68: ldrb r0, [r5, #0xa] cmp r0, #0x3e beq _08090A8C ldrb r0, [r5, #0xe] adds r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x14 bne _08090B60 ldrb r0, [r5, #0x1e] adds r0, #1 movs r1, #3 ands r0, r1 strb r0, [r5, #0x1e] movs r0, #0 strb r0, [r5, #0xe] b _08090B60 _08090A8C: ldrb r0, [r5, #0xe] adds r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xe bne _08090B60 movs r0, #0 strb r0, [r5, #0xe] ldrb r0, [r5, #0xf] adds r0, #1 movs r1, #3 bl __modsi3 strb r0, [r5, #0xf] adds r0, #1 strb r0, [r5, #0x1e] b _08090B60 _08090AB0: ldr r2, _08090B00 @ =gUnk_03001160 movs r3, #0x32 ldrsh r1, [r2, r3] movs r3, #0x32 ldrsh r0, [r5, r3] adds r0, #8 cmp r1, r0 bge _08090B14 ldr r0, _08090B04 @ =gUnk_03003F80 ldrb r0, [r0, #0x12] cmp r0, #0x1e beq _08090B60 adds r0, r5, #0 bl sub_080002A0 ldr r1, _08090B08 @ =0x00004017 cmp r0, r1 bne _08090B60 ldr r0, _08090B0C @ =0x00004026 adds r4, r5, #0 adds r4, #0x78 ldrh r1, [r4] adds r5, #0x38 ldrb r2, [r5] bl sub_0800015E ldr r6, _08090B10 @ =0x0000403D ldrh r1, [r4] subs r1, #0x40 ldrb r2, [r5] adds r0, r6, #0 bl sub_0800015E ldrh r1, [r4] subs r1, #0x80 ldrb r2, [r5] adds r0, r6, #0 bl sub_0800015E b _08090B60 .align 2, 0 _08090B00: .4byte gUnk_03001160 _08090B04: .4byte gUnk_03003F80 _08090B08: .4byte 0x00004017 _08090B0C: .4byte 0x00004026 _08090B10: .4byte 0x0000403D _08090B14: adds r3, r2, #0 adds r3, #0x38 ldrb r1, [r3] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08090B2C movs r0, #1 strb r0, [r3] adds r0, r2, #0 bl sub_08016A04 _08090B2C: adds r0, r5, #0 bl sub_080002A0 ldr r6, _08090B64 @ =0x00004017 cmp r0, r6 beq _08090B60 adds r4, r5, #0 adds r4, #0x78 ldrh r1, [r4] adds r5, #0x38 ldrb r2, [r5] adds r0, r6, #0 bl sub_0800015E ldrh r1, [r4] subs r1, #0x40 ldrb r2, [r5] adds r0, r6, #0 bl sub_0800015E ldr r0, _08090B68 @ =0x00004014 ldrh r1, [r4] subs r1, #0x80 ldrb r2, [r5] bl sub_0800015E _08090B60: pop {r4, r5, r6, pc} .align 2, 0 _08090B64: .4byte 0x00004017 _08090B68: .4byte 0x00004014 thumb_func_start sub_08090B6C sub_08090B6C: @ 0x08090B6C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r1, r0, #0 adds r0, #0x80 ldrb r0, [r0] lsls r0, r0, #0x18 cmp r0, #0 bne _08090B80 b _08090CD2 _08090B80: lsrs r0, r0, #0x1b lsls r2, r0, #0x18 lsrs r3, r2, #0x18 ldrh r0, [r1, #0x2e] movs r4, #0xf mov r8, r4 ands r4, r0 mov r8, r4 adds r0, r1, #0 adds r0, #0x78 ldrh r6, [r0] subs r0, #0x40 ldrb r7, [r0] movs r0, #3 ands r0, r3 cmp r0, #1 beq _08090BF8 cmp r0, #1 blo _08090BB0 cmp r0, #2 beq _08090C48 cmp r0, #3 beq _08090C90 b _08090CD2 _08090BB0: lsrs r5, r2, #0x1b cmp r3, #0xc bne _08090BB8 movs r5, #2 _08090BB8: rsbs r4, r5, #0 cmp r4, r5 bgt _08090BCE _08090BBE: adds r1, r6, r4 ldr r0, _08090BE4 @ =0x00004022 adds r2, r7, #0 bl sub_0800015E adds r4, #1 cmp r4, r5 ble _08090BBE _08090BCE: movs r0, #8 mov r1, r8 ands r1, r0 cmp r1, #0 beq _08090BEC ldr r0, _08090BE8 @ =0x00004024 subs r1, r6, r4 adds r2, r7, #0 bl sub_08090CDC b _08090CB2 .align 2, 0 _08090BE4: .4byte 0x00004022 _08090BE8: .4byte 0x00004024 _08090BEC: ldr r0, _08090BF4 @ =0x00004022 subs r1, r6, r4 b _08090C6E .align 2, 0 _08090BF4: .4byte 0x00004022 _08090BF8: lsrs r5, r2, #0x1b rsbs r4, r5, #0 cmp r4, r5 bgt _08090C10 _08090C00: adds r1, r6, r4 ldr r0, _08090C2C @ =0x00004022 adds r2, r7, #0 bl sub_0800015E adds r4, #1 cmp r4, r5 ble _08090C00 _08090C10: movs r0, #8 mov r1, r8 ands r1, r0 cmp r1, #0 beq _08090C34 ldr r0, _08090C30 @ =0x00004024 subs r1, r6, r4 adds r2, r7, #0 bl sub_08090CDC cmp r4, #0 beq _08090CD2 b _08090C6A .align 2, 0 _08090C2C: .4byte 0x00004022 _08090C30: .4byte 0x00004024 _08090C34: cmp r4, #0 beq _08090CB2 ldr r0, _08090C44 @ =0x00004022 subs r1, r6, r4 adds r2, r7, #0 bl sub_0800015E b _08090CB2 .align 2, 0 _08090C44: .4byte 0x00004022 _08090C48: lsrs r5, r2, #0x1a rsbs r4, r5, #0 cmp r4, r5 bge _08090C60 _08090C50: adds r1, r6, r4 ldr r0, _08090C78 @ =0x00004022 adds r2, r7, #0 bl sub_0800015E adds r4, #1 cmp r4, r5 blt _08090C50 _08090C60: movs r0, #8 mov r1, r8 ands r1, r0 cmp r1, #0 beq _08090C7C _08090C6A: ldr r0, _08090C78 @ =0x00004022 adds r1, r6, r4 _08090C6E: adds r2, r7, #0 bl sub_0800015E b _08090CD2 .align 2, 0 _08090C78: .4byte 0x00004022 _08090C7C: ldr r0, _08090C8C @ =0x00004024 subs r1, r6, r4 subs r1, #1 adds r2, r7, #0 bl sub_08090CDC b _08090CB2 .align 2, 0 _08090C8C: .4byte 0x00004024 _08090C90: lsrs r5, r2, #0x1a rsbs r4, r5, #0 cmp r4, r5 bgt _08090CA8 _08090C98: adds r1, r6, r4 ldr r0, _08090CC0 @ =0x00004022 adds r2, r7, #0 bl sub_0800015E adds r4, #1 cmp r4, r5 ble _08090C98 _08090CA8: movs r0, #8 mov r1, r8 ands r1, r0 cmp r1, #0 beq _08090CC8 _08090CB2: ldr r0, _08090CC4 @ =0x00004025 adds r1, r6, r4 adds r2, r7, #0 bl sub_08090CDC b _08090CD2 .align 2, 0 _08090CC0: .4byte 0x00004022 _08090CC4: .4byte 0x00004025 _08090CC8: ldr r0, _08090CD8 @ =0x00004024 subs r1, r6, r4 adds r2, r7, #0 bl sub_08090CDC _08090CD2: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08090CD8: .4byte 0x00004024 thumb_func_start sub_08090CDC sub_08090CDC: @ 0x08090CDC push {r4, r5, r6, lr} adds r4, r0, #0 adds r5, r1, #0 adds r6, r2, #0 adds r0, r5, #0 adds r1, r6, #0 bl sub_080001DA lsls r0, r0, #0x10 lsrs r2, r0, #0x10 movs r0, #0x80 lsls r0, r0, #7 ands r0, r2 cmp r0, #0 bne _08090D06 adds r0, r4, #0 adds r1, r5, #0 adds r2, r6, #0 bl sub_0800015E b _08090DB2 _08090D06: ldr r1, _08090D18 @ =0xFFFFBFDE adds r0, r2, r1 cmp r0, #0xb bhi _08090DB2 lsls r0, r0, #2 ldr r1, _08090D1C @ =_08090D20 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08090D18: .4byte 0xFFFFBFDE _08090D1C: .4byte _08090D20 _08090D20: @ jump table .4byte _08090DB2 @ case 0 .4byte _08090DB2 @ case 1 .4byte _08090D80 @ case 2 .4byte _08090D50 @ case 3 .4byte _08090DB2 @ case 4 .4byte _08090DB2 @ case 5 .4byte _08090DB2 @ case 6 .4byte _08090DB2 @ case 7 .4byte _08090DB2 @ case 8 .4byte _08090DB2 @ case 9 .4byte _08090D98 @ case 10 .4byte _08090D68 @ case 11 _08090D50: ldr r0, _08090D5C @ =0x00004024 cmp r4, r0 bne _08090D58 ldr r2, _08090D60 @ =0x00004022 _08090D58: ldr r0, _08090D64 @ =0x0000402C b _08090DA2 .align 2, 0 _08090D5C: .4byte 0x00004024 _08090D60: .4byte 0x00004022 _08090D64: .4byte 0x0000402C _08090D68: ldr r0, _08090D74 @ =0x0000402C cmp r4, r0 bne _08090D70 ldr r2, _08090D78 @ =0x0000402B _08090D70: ldr r0, _08090D7C @ =0x00004024 b _08090DA2 .align 2, 0 _08090D74: .4byte 0x0000402C _08090D78: .4byte 0x0000402B _08090D7C: .4byte 0x00004024 _08090D80: ldr r0, _08090D8C @ =0x00004025 cmp r4, r0 bne _08090D88 ldr r2, _08090D90 @ =0x00004022 _08090D88: ldr r0, _08090D94 @ =0x0000402D b _08090DA2 .align 2, 0 _08090D8C: .4byte 0x00004025 _08090D90: .4byte 0x00004022 _08090D94: .4byte 0x0000402D _08090D98: ldr r0, _08090DB4 @ =0x0000402D cmp r4, r0 bne _08090DA0 ldr r2, _08090DB8 @ =0x0000402B _08090DA0: ldr r0, _08090DBC @ =0x00004025 _08090DA2: cmp r4, r0 bne _08090DA8 ldr r2, _08090DC0 @ =0x00004022 _08090DA8: adds r0, r2, #0 adds r1, r5, #0 adds r2, r6, #0 bl sub_0800015E _08090DB2: pop {r4, r5, r6, pc} .align 2, 0 _08090DB4: .4byte 0x0000402D _08090DB8: .4byte 0x0000402B _08090DBC: .4byte 0x00004025 _08090DC0: .4byte 0x00004022 thumb_func_start sub_08090DC4 sub_08090DC4: @ 0x08090DC4 push {r4, lr} mov ip, r0 ldrb r0, [r0, #0xa] lsls r0, r0, #3 ldr r1, _08090E44 @ =gUnk_08121EF8 adds r3, r0, r1 ldrh r1, [r3, #6] movs r0, #0x80 lsls r0, r0, #8 ands r0, r1 cmp r0, #0 beq _08090DF4 ldr r1, _08090E48 @ =gUnk_08122220 movs r0, #3 ldrsb r0, [r3, r0] lsls r0, r0, #2 adds r0, r0, r1 ldr r3, [r0] mov r0, ip ldrb r1, [r0, #0xb] lsls r0, r1, #3 adds r3, r3, r0 mov r0, ip strb r1, [r0, #0x1e] _08090DF4: ldrb r1, [r3] mov r0, ip adds r0, #0x80 strb r1, [r0] ldrb r0, [r3, #1] mov r1, ip adds r1, #0x81 strb r0, [r1] ldrb r0, [r3, #2] subs r1, #0x1f strb r0, [r1] ldrb r0, [r3, #3] adds r1, #1 strb r0, [r1] ldrb r1, [r3, #4] lsls r1, r1, #6 mov r0, ip ldrb r2, [r0, #0x19] movs r0, #0x3f ands r0, r2 orrs r0, r1 mov r1, ip strb r0, [r1, #0x19] ldrb r0, [r3, #5] mov r4, ip adds r4, #0x29 movs r1, #7 ands r1, r0 ldrb r2, [r4] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4] ldrh r1, [r3, #6] mov r0, ip adds r0, #0x82 strh r1, [r0] pop {r4, pc} .align 2, 0 _08090E44: .4byte gUnk_08121EF8 _08090E48: .4byte gUnk_08122220 thumb_func_start sub_08090E4C sub_08090E4C: @ 0x08090E4C push {lr} ldr r2, _08090E60 @ =gUnk_08122244 ldrb r1, [r0, #0xf] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl sub_0801D2B4 pop {pc} .align 2, 0 _08090E60: .4byte gUnk_08122244 thumb_func_start sub_08090E64 sub_08090E64: @ 0x08090E64 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x2a movs r1, #0 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08090EA0 ldr r0, _08090EA4 @ =0x0000FFFE adds r2, r0, #0 ldrb r0, [r5, #0xb] adds r2, r2, r0 lsls r2, r2, #0x10 adds r0, r5, #0 adds r1, r4, #0 movs r3, #0 bl sub_0806FA48 ldrh r0, [r4, #0x36] subs r0, #0x10 strh r0, [r4, #0x36] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 _08090EA0: pop {r4, r5, pc} .align 2, 0 _08090EA4: .4byte 0x0000FFFE thumb_func_start sub_08090EA8 sub_08090EA8: @ 0x08090EA8 push {lr} ldr r2, _08090EBC @ =gUnk_08122254 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08090EBC: .4byte gUnk_08122254 thumb_func_start sub_08090EC0 sub_08090EC0: @ 0x08090EC0 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0x19] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x19] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] ldrb r0, [r4, #0xb] strb r0, [r4, #0x1e] bl sub_08052660 cmp r0, #0 beq _08090EFE ldrb r0, [r4, #0x1e] adds r0, #4 strb r0, [r4, #0x1e] adds r0, r4, #0 bl sub_080AE068 movs r1, #0xc2 lsls r1, r1, #1 adds r0, r4, #0 bl sub_080ADF80 _08090EFE: pop {r4, pc} thumb_func_start sub_08090F00 sub_08090F00: @ 0x08090F00 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r1, [r4, #0xa] cmp r1, #1 bne _08090F1C ldr r0, [r4, #0x50] ldrb r2, [r4, #0xf] lsls r1, r2 ldr r0, [r0, #0x20] ands r0, r1 cmp r0, #0 bne _08090F1C bl sub_0805E780 _08090F1C: ldr r6, _08090F64 @ =gUnk_03003F80 ldr r0, [r6, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _08090F62 ldr r5, _08090F68 @ =gUnk_03001160 adds r0, r4, #0 adds r1, r5, #0 movs r2, #4 movs r3, #4 bl sub_080041A0 cmp r0, #0 beq _08090F62 movs r1, #0x36 ldrsh r0, [r5, r1] cmp r0, #0 bne _08090F62 adds r2, r6, #0 adds r2, #0x90 ldr r1, _08090F6C @ =gUnk_0812225C ldrb r0, [r4, #0xb] lsls r0, r0, #1 adds r0, r0, r1 ldrh r1, [r2] ldrh r0, [r0] ands r0, r1 cmp r0, #0 beq _08090F62 ldrb r0, [r4, #0xe] bl sub_0804B128 bl sub_08080840 _08090F62: pop {r4, r5, r6, pc} .align 2, 0 _08090F64: .4byte gUnk_03003F80 _08090F68: .4byte gUnk_03001160 _08090F6C: .4byte gUnk_0812225C thumb_func_start sub_08090F70 sub_08090F70: @ 0x08090F70 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08090FB4 movs r5, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r5 strb r0, [r4, #0x18] ldrb r0, [r4, #0xb] strb r0, [r4, #0x1e] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 bl sub_08052660 cmp r0, #0 beq _08090FB4 adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 orrs r0, r5 strb r0, [r2] _08090FB4: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08090FB8 sub_08090FB8: @ 0x08090FB8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08090FF6 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] ldrb r1, [r4, #0xa] adds r0, r4, #0 bl sub_08004260 _08090FF6: pop {r4, pc} thumb_func_start sub_08090FF8 sub_08090FF8: @ 0x08090FF8 push {lr} ldr r2, _0809100C @ =gUnk_08122278 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809100C: .4byte gUnk_08122278 thumb_func_start sub_08091010 sub_08091010: @ 0x08091010 push {r4, r5, r6, r7, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _08091094 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r3, r4, #0 adds r3, #0x74 strh r1, [r3] adds r0, r4, #0 adds r0, #0x38 ldrb r5, [r0] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] ldrh r0, [r3] subs r0, #0x80 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 ldr r6, _08091098 @ =0x00004022 movs r7, #4 _0809105C: subs r1, r4, #2 adds r0, r6, #0 adds r2, r5, #0 bl sub_0800015E subs r1, r4, #1 adds r0, r6, #0 adds r2, r5, #0 bl sub_0800015E adds r0, r6, #0 adds r1, r4, #0 adds r2, r5, #0 bl sub_0800015E adds r1, r4, #1 adds r0, r6, #0 adds r2, r5, #0 bl sub_0800015E adds r0, r4, #0 adds r0, #0x40 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 subs r7, #1 cmp r7, #0 bge _0809105C pop {r4, r5, r6, r7, pc} .align 2, 0 _08091094: .4byte gUnk_03000BF0 _08091098: .4byte 0x00004022 thumb_func_start nullsub_523 nullsub_523: @ 0x0809109C bx lr .align 2, 0 thumb_func_start sub_080910A0 sub_080910A0: @ 0x080910A0 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080910C8 ldrb r0, [r4, #0xa] bl sub_0807CBD0 cmp r0, #0 beq _080910B8 bl sub_0805E780 _080910B8: movs r1, #1 strb r1, [r4, #0xc] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] adds r0, r4, #0 bl sub_08078828 _080910C8: adds r0, r4, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08091100 movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _08091104 @ =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 movs r1, #2 bl sub_080A7C8C bl sub_0805E780 _08091100: pop {r4, r5, pc} .align 2, 0 _08091104: .4byte gUnk_03000BF0 thumb_func_start sub_08091108 sub_08091108: @ 0x08091108 push {lr} ldr r2, _0809111C @ =gUnk_08122280 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809111C: .4byte gUnk_08122280 thumb_func_start sub_08091120 sub_08091120: @ 0x08091120 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldr r3, _08091194 @ =gUnk_08122288 ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r3 ldrb r1, [r0, #2] adds r0, r4, #0 adds r0, #0x60 strh r1, [r0] ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r3 ldrb r1, [r0, #1] movs r0, #0xf ands r1, r0 ldrb r2, [r4, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x1a] ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r3 ldrb r0, [r0, #3] strh r0, [r4, #0x12] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] ldrb r1, [r4, #0x19] movs r0, #0x3f ands r0, r1 movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x19] movs r0, #0xa8 lsls r0, r0, #0xa str r0, [r4, #0x20] ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r3 ldrb r1, [r0] adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08004168 pop {r4, pc} .align 2, 0 _08091194: .4byte gUnk_08122288 thumb_func_start sub_08091198 sub_08091198: @ 0x08091198 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x20] cmp r0, #0 bge _080911AA ldrb r0, [r4, #0x18] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x18] _080911AA: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _080911E8 ldrb r1, [r4, #0xb] cmp r1, #0xf beq _080911CE cmp r1, #0xf bgt _080911C8 cmp r1, #0 beq _080911E4 b _080911DA _080911C8: cmp r1, #0xff bne _080911DA b _080911E4 _080911CE: ldrb r1, [r4, #0xe] adds r0, r4, #0 movs r2, #0x80 bl sub_080A29AC b _080911E4 _080911DA: ldrb r2, [r4, #0xe] adds r0, r4, #0 movs r3, #0 bl sub_080A2988 _080911E4: bl sub_0805E780 _080911E8: pop {r4, pc} .align 2, 0 thumb_func_start sub_080911EC sub_080911EC: @ 0x080911EC push {r4, lr} adds r4, r0, #0 adds r0, #0x72 ldrh r0, [r0] cmp r0, #1 beq _0809123C cmp r0, #1 bgt _08091202 cmp r0, #0 beq _08091208 b _08091260 _08091202: cmp r0, #2 beq _08091254 b _08091260 _08091208: ldr r1, _08091234 @ =gUnk_08122294 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0800445C ldr r1, _08091238 @ =gUnk_02021F00 adds r0, r4, #0 adds r0, #0x74 ldrb r0, [r0] lsls r0, r0, #1 adds r0, r0, r1 adds r1, r4, #0 adds r1, #0x70 ldrh r1, [r1] strh r1, [r0] b _08091260 .align 2, 0 _08091234: .4byte gUnk_08122294 _08091238: .4byte gUnk_02021F00 _0809123C: ldr r0, _08091250 @ =gUnk_081222A0 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 b _08091260 .align 2, 0 _08091250: .4byte gUnk_081222A0 _08091254: ldrb r0, [r4, #0xc] cmp r0, #0 bne _08091260 adds r0, r4, #0 bl sub_08091504 _08091260: pop {r4, pc} .align 2, 0 thumb_func_start sub_08091264 sub_08091264: @ 0x08091264 push {r4, r5, r6, r7, lr} adds r6, r0, #0 ldr r0, _080912C4 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x45 bhi _0809132C ldrb r1, [r6, #0xa] ldrb r2, [r6, #0xb] movs r0, #0x54 bl sub_080A2960 adds r7, r0, #0 ldrb r1, [r6, #0xa] ldrb r2, [r6, #0xb] movs r0, #0x54 bl sub_080A2960 adds r1, r0, #0 str r6, [r7, #0x50] str r6, [r1, #0x50] adds r0, r7, #0 adds r0, #0x72 movs r5, #1 movs r4, #1 strh r4, [r0] adds r2, r1, #0 adds r2, #0x72 movs r0, #2 strh r0, [r2] adds r0, r6, #0 bl sub_0806FA24 movs r2, #1 strb r5, [r6, #0xc] ldrb r1, [r6, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 strb r0, [r6, #0x18] movs r0, #0x60 strh r0, [r6, #0x24] ldrb r0, [r6, #0xb] ands r4, r0 cmp r4, #0 beq _080912CC ldr r0, _080912C8 @ =gUnk_080FD278 b _080912CE .align 2, 0 _080912C4: .4byte gUnk_03003DBC _080912C8: .4byte gUnk_080FD278 _080912CC: ldr r0, _08091330 @ =gUnk_080FD270 _080912CE: str r0, [r6, #0x48] movs r0, #1 strb r0, [r6, #0x16] ldr r2, _08091334 @ =gUnk_081222A8 ldrb r0, [r6, #0xb] lsls r0, r0, #1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r6, #0x2e] adds r0, r0, r1 strh r0, [r6, #0x2e] adds r1, r6, #0 adds r1, #0x80 strh r0, [r1] ldrb r0, [r6, #0xb] lsls r0, r0, #1 adds r0, #1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r6, #0x32] adds r0, r0, r1 strh r0, [r6, #0x32] adds r1, r6, #0 adds r1, #0x82 strh r0, [r1] adds r0, r6, #0 adds r1, r7, #0 bl sub_0806FA24 adds r0, r6, #0 adds r0, #0x7e ldrb r0, [r0] adds r1, r6, #0 adds r1, #0x76 strh r0, [r1] ldrb r1, [r6, #0xe] adds r0, r6, #0 adds r0, #0x74 strb r1, [r0] ldrb r1, [r6, #0xb] adds r0, r6, #0 bl sub_08004260 _0809132C: pop {r4, r5, r6, r7, pc} .align 2, 0 _08091330: .4byte gUnk_080FD270 _08091334: .4byte gUnk_081222A8 thumb_func_start sub_08091338 sub_08091338: @ 0x08091338 push {r4, lr} adds r4, r0, #0 bl sub_08078930 adds r0, r4, #0 adds r0, #0x70 ldrh r0, [r0] cmp r0, #0 beq _0809135C ldrb r0, [r4, #0xb] lsls r0, r0, #3 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_08091660 _0809135C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08091360 sub_08091360: @ 0x08091360 push {r4, lr} adds r4, r0, #0 bl sub_0806FBB4 ldr r1, _0809137C @ =gUnk_081222B0 ldrb r0, [r4, #0xd] subs r0, #5 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 _0809137C: .4byte gUnk_081222B0 thumb_func_start sub_08091380 sub_08091380: @ 0x08091380 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldr r7, _0809142C @ =gUnk_03001160 adds r0, #0x75 ldrb r0, [r0] cmp r0, #0 bne _080913E0 ldrb r0, [r4, #0xb] lsls r2, r0, #1 ldrb r0, [r7, #0x14] cmp r2, r0 bne _080913D4 ldr r1, _08091430 @ =gUnk_081222B8 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r3, [r4, #0x2e] adds r0, r0, r3 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 adds r0, r2, #1 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r4, #0x32] adds r0, r0, r1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 adds r0, r7, #0 adds r0, #0x38 ldrb r2, [r0] adds r0, r6, #0 adds r1, r5, #0 bl sub_080002D4 subs r0, #0xf cmp r0, #0x10 bls _080913D4 strh r6, [r7, #0x2e] strh r5, [r7, #0x32] _080913D4: adds r1, r4, #0 adds r1, #0x75 movs r0, #1 strb r0, [r1] movs r0, #2 strb r0, [r4, #0xf] _080913E0: ldrb r0, [r7, #0x14] lsrs r0, r0, #1 ldrb r3, [r4, #0xb] cmp r0, r3 bne _0809142A ldr r1, _08091434 @ =gUnk_03003F80 adds r0, r1, #0 adds r0, #0xa8 ldrb r0, [r0] cmp r0, #0x1a bne _0809142A ldrb r1, [r1, #5] movs r5, #2 adds r0, r5, #0 ands r0, r1 cmp r0, #0 beq _0809142A ldr r0, _0809142C @ =gUnk_03001160 adds r0, #0x5a ldrb r1, [r0] adds r0, r5, #0 ands r0, r1 cmp r0, #0 beq _0809142A adds r0, r4, #0 bl sub_0809153C adds r1, r4, #0 adds r1, #0x75 ldrb r0, [r1] cmp r0, #1 bne _0809142A strb r5, [r1] movs r0, #0xcf lsls r0, r0, #1 bl sub_08004488 _0809142A: pop {r4, r5, r6, r7, pc} .align 2, 0 _0809142C: .4byte gUnk_03001160 _08091430: .4byte gUnk_081222B8 _08091434: .4byte gUnk_03003F80 thumb_func_start sub_08091438 sub_08091438: @ 0x08091438 movs r2, #0 movs r1, #1 strb r1, [r0, #0xc] adds r0, #0x75 strb r2, [r0] bx lr thumb_func_start sub_08091444 sub_08091444: @ 0x08091444 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #9 ands r0, r1 movs r1, #5 orrs r0, r1 strb r0, [r2] ldr r0, [r4, #0x50] ldrb r1, [r0, #0xb] adds r1, #8 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08016A04 pop {r4, pc} thumb_func_start sub_08091470 sub_08091470: @ 0x08091470 push {r4, lr} adds r2, r0, #0 ldr r4, [r2, #0x50] adds r3, r4, #0 adds r3, #0x70 ldrh r0, [r3] cmp r0, #7 bhi _0809148C ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2, #0x18] b _08091502 _0809148C: ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] ldrh r0, [r3] adds r1, r0, #0 subs r1, #8 movs r0, #7 ands r1, r0 ldrb r3, [r2, #0xb] cmp r3, #1 beq _080914C8 cmp r3, #1 bgt _080914B4 cmp r3, #0 beq _080914BE b _080914E2 _080914B4: cmp r3, #2 beq _080914D0 cmp r3, #3 beq _080914DA b _080914E2 _080914BE: ldrh r0, [r4, #0x32] subs r0, r0, r1 subs r0, #0x11 strh r0, [r2, #0x32] b _080914E2 _080914C8: ldrh r0, [r4, #0x2e] adds r0, r1, r0 adds r0, #0x11 b _080914E0 _080914D0: ldrh r0, [r4, #0x32] adds r0, r1, r0 adds r0, #0x11 strh r0, [r2, #0x32] b _080914E2 _080914DA: ldrh r0, [r4, #0x2e] subs r0, r0, r1 subs r0, #0x11 _080914E0: strh r0, [r2, #0x2e] _080914E2: adds r0, r4, #0 adds r0, #0x70 ldrh r0, [r0] subs r0, #8 lsls r0, r0, #0xc lsrs r1, r0, #0x10 ldrb r0, [r2, #0x14] cmp r1, r0 beq _08091502 strb r1, [r2, #0x14] lsls r1, r1, #2 adds r1, r1, r3 adds r1, #8 adds r0, r2, #0 bl sub_08004260 _08091502: pop {r4, pc} thumb_func_start sub_08091504 sub_08091504: @ 0x08091504 push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] ldrb r1, [r4, #0xb] adds r1, #4 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08016A04 pop {r4, pc} thumb_func_start sub_0809153C sub_0809153C: @ 0x0809153C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #4 adds r5, r0, #0 ldr r6, _080915A8 @ =gUnk_03001160 ldr r1, _080915AC @ =gUnk_081222C0 ldrb r0, [r5, #0xb] adds r0, r0, r1 ldrb r0, [r0] mov r8, r0 adds r0, r5, #0 adds r0, #0x76 adds r1, r5, #0 adds r1, #0x70 ldrh r0, [r0] ldrh r1, [r1] cmp r0, r1 bls _08091656 ldrh r4, [r6, #0x2e] ldrh r0, [r6, #0x32] mov sb, r0 movs r2, #0x24 ldrsh r1, [r5, r2] adds r0, r6, #0 mov r2, r8 str r3, [sp] bl sub_080044AE lsls r4, r4, #0x10 asrs r4, r4, #0x10 ldrh r2, [r6, #0x2e] movs r7, #0x2e ldrsh r0, [r6, r7] ldr r3, [sp] cmp r4, r0 bne _08091596 mov r1, sb lsls r0, r1, #0x10 asrs r0, r0, #0x10 movs r7, #0x32 ldrsh r1, [r6, r7] cmp r0, r1 beq _08091656 _08091596: ldrb r0, [r5, #0xb] cmp r0, #1 beq _080915CA cmp r0, #1 bgt _080915B0 cmp r0, #0 beq _080915BA b _080915E0 .align 2, 0 _080915A8: .4byte gUnk_03001160 _080915AC: .4byte gUnk_081222C0 _080915B0: cmp r0, #2 beq _080915CE cmp r0, #3 beq _080915DA b _080915E0 _080915BA: ldrh r1, [r6, #0x32] mov r2, sb lsls r0, r2, #0x10 asrs r0, r0, #0x10 subs r1, r1, r0 lsls r1, r1, #0x10 lsrs r3, r1, #0x10 b _080915E0 _080915CA: subs r0, r4, r2 b _080915DC _080915CE: ldrh r1, [r6, #0x32] mov r7, sb lsls r0, r7, #0x10 asrs r0, r0, #0x10 subs r0, r0, r1 b _080915DC _080915DA: subs r0, r2, r4 _080915DC: lsls r0, r0, #0x10 lsrs r3, r0, #0x10 _080915E0: lsls r2, r3, #0x18 ldr r3, _0809163C @ =gUnk_080C9160 mov r1, r8 lsls r0, r1, #4 adds r0, r0, r3 movs r7, #0 ldrsh r0, [r0, r7] asrs r2, r2, #0x10 adds r1, r0, #0 muls r1, r2, r1 ldr r0, [r5, #0x2c] adds r0, r0, r1 str r0, [r5, #0x2c] mov r1, r8 lsls r0, r1, #4 adds r0, #0x80 adds r0, r0, r3 movs r7, #0 ldrsh r0, [r0, r7] adds r1, r0, #0 muls r1, r2, r1 ldr r0, [r5, #0x30] subs r0, r0, r1 str r0, [r5, #0x30] adds r0, r5, #0 bl sub_08091660 adds r0, r5, #0 adds r0, #0x76 adds r1, r5, #0 adds r1, #0x70 ldrh r0, [r0] ldrh r1, [r1] cmp r0, r1 bhi _08091640 movs r0, #0x86 lsls r0, r0, #1 bl sub_08004488 adds r0, r5, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 b _08091656 .align 2, 0 _0809163C: .4byte gUnk_080C9160 _08091640: ldrb r0, [r5, #0xf] subs r0, #1 strb r0, [r5, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08091656 movs r0, #0x10 strb r0, [r5, #0xf] adds r0, #0xff bl sub_08004488 _08091656: add sp, #4 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08091660 sub_08091660: @ 0x08091660 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xb] cmp r0, #1 beq _08091686 cmp r0, #1 bgt _08091674 cmp r0, #0 beq _0809167E b _080916AA _08091674: cmp r0, #2 beq _08091690 cmp r0, #3 beq _0809169A b _080916AA _0809167E: adds r1, r4, #0 adds r1, #0x82 ldrh r0, [r4, #0x32] b _080916A0 _08091686: adds r0, r4, #0 adds r0, #0x80 ldrh r0, [r0] ldrh r1, [r4, #0x2e] b _080916A2 _08091690: adds r0, r4, #0 adds r0, #0x82 ldrh r0, [r0] ldrh r1, [r4, #0x32] b _080916A2 _0809169A: adds r1, r4, #0 adds r1, #0x80 ldrh r0, [r4, #0x2e] _080916A0: ldrh r1, [r1] _080916A2: subs r0, r0, r1 adds r1, r4, #0 adds r1, #0x70 strh r0, [r1] _080916AA: adds r5, r4, #0 adds r5, #0x86 ldrh r0, [r5] bl sub_0807CBE4 cmp r0, #0 beq _080916C8 adds r0, r4, #0 adds r0, #0x70 ldrh r0, [r0] cmp r0, #0 bne _080916C8 ldrh r0, [r5] bl sub_0807CD48 _080916C8: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080916CC sub_080916CC: @ 0x080916CC push {r4, lr} adds r4, r0, #0 ldr r1, _080916E8 @ =gUnk_081223A8 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r4, #0x41 movs r0, #0 strb r0, [r4] pop {r4, pc} .align 2, 0 _080916E8: .4byte gUnk_081223A8 thumb_func_start sub_080916EC sub_080916EC: @ 0x080916EC push {r4, r5, r6, r7, lr} adds r6, r0, #0 ldrb r0, [r6, #0xe] lsls r0, r0, #3 ldr r1, _080917C8 @ =gUnk_030010EC adds r7, r0, r1 adds r0, r6, #0 adds r0, #0x84 str r7, [r0] ldr r0, _080917CC @ =gUnk_03000BF0 ldrb r0, [r0, #5] ldrb r1, [r7, #4] cmp r0, r1 bne _08091716 ldr r0, _080917D0 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 lsls r1, r1, #5 ands r0, r1 cmp r0, #0 beq _0809171A _08091716: bl sub_0805E780 _0809171A: ldr r4, _080917CC @ =gUnk_03000BF0 ldrh r1, [r7] movs r5, #0x3f adds r0, r5, #0 ands r0, r1 lsls r0, r0, #4 ldrh r2, [r4, #6] adds r0, r0, r2 adds r0, #8 strh r0, [r6, #0x2e] ldrh r1, [r7] movs r0, #0xfc lsls r0, r0, #4 ands r0, r1 lsrs r0, r0, #2 ldrh r3, [r4, #8] adds r0, r0, r3 adds r0, #8 strh r0, [r6, #0x32] ldrb r0, [r7, #5] strb r0, [r6, #0x14] ldrb r0, [r7, #6] strb r0, [r6, #0xb] movs r2, #1 strb r2, [r6, #0xc] ldr r0, _080917D4 @ =gUnk_080FD310 str r0, [r6, #0x48] ldrb r1, [r6, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r6, #0x10] adds r0, r6, #0 adds r0, #0x3f strb r2, [r0] adds r1, r6, #0 adds r1, #0x3c movs r0, #0x47 strb r0, [r1] adds r1, #4 movs r0, #0x44 strb r0, [r1] subs r1, #5 movs r0, #0x80 strb r0, [r1] ldrb r0, [r6, #0x14] lsls r0, r0, #3 strb r0, [r6, #0x15] movs r0, #0xe0 lsls r0, r0, #3 strh r0, [r6, #0x24] adds r2, r6, #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, [r6, #0x14] adds r1, #4 ldrb r0, [r6, #0xb] adds r1, r1, r0 adds r0, r6, #0 bl sub_080042AC ldr r0, _080917D8 @ =0x00004022 movs r2, #0x2e ldrsh r1, [r6, r2] ldrh r2, [r4, #6] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r5 movs r3, #0x32 ldrsh r2, [r6, r3] ldrh r3, [r4, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r5 lsls r2, r2, #6 orrs r1, r2 adds r2, r6, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E pop {r4, r5, r6, r7, pc} .align 2, 0 _080917C8: .4byte gUnk_030010EC _080917CC: .4byte gUnk_03000BF0 _080917D0: .4byte gUnk_03003F80 _080917D4: .4byte gUnk_080FD310 _080917D8: .4byte 0x00004022 thumb_func_start sub_080917DC sub_080917DC: @ 0x080917DC push {r4, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0x1d bne _08091810 movs r0, #0xa8 lsls r0, r0, #0xa str r0, [r4, #0x20] movs r0, #7 strb r0, [r4, #0xc] ldrb r1, [r4, #0x14] adds r1, #4 ldrb r0, [r4, #0xb] adds r1, r1, r0 adds r0, r4, #0 bl sub_080042AC ldr r0, _0809180C @ =0x0000013B bl sub_080A3268 b _080918A0 .align 2, 0 _0809180C: .4byte 0x0000013B _08091810: adds r0, r4, #0 bl sub_0800445C cmp r0, #0 beq _0809184A ldr r2, _08091840 @ =gUnk_03003F80 ldr r0, [r2, #0x30] ldr r1, _08091844 @ =0x00040080 ands r0, r1 cmp r0, #0 bne _08091848 ldrb r0, [r2, #0x1c] cmp r0, #0 bne _08091848 ldrb r0, [r2, #5] cmp r0, #0 bne _08091848 ldrb r0, [r2, #2] cmp r0, #0 bne _08091848 ldrb r0, [r4, #0xe] adds r0, #1 b _0809184A .align 2, 0 _08091840: .4byte gUnk_03003F80 _08091844: .4byte 0x00040080 _08091848: movs r0, #0 _0809184A: strb r0, [r4, #0xe] ldrb r0, [r4, #0xb] cmp r0, #0 bne _0809189C ldrb r0, [r4, #0xe] cmp r0, #8 bls _080918A0 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldr r2, _08091894 @ =gUnk_03003F80 movs r0, #0x81 strb r0, [r2, #2] ldr r0, [r2, #0x30] movs r1, #0x80 lsls r1, r1, #0x13 orrs r0, r1 str r0, [r2, #0x30] ldr r1, _08091898 @ =gUnk_03001160 movs r0, #0x80 lsls r0, r0, #0xa str r0, [r1, #0x20] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r1, #0x24] ldrb r2, [r1, #0x10] movs r0, #0x7f ands r0, r2 strb r0, [r1, #0x10] bl sub_08077B2C bl sub_0807A108 movs r0, #0x7c bl sub_080A3268 b _080918A0 .align 2, 0 _08091894: .4byte gUnk_03003F80 _08091898: .4byte gUnk_03001160 _0809189C: movs r0, #0 strb r0, [r4, #0xe] _080918A0: pop {r4, pc} .align 2, 0 thumb_func_start sub_080918A4 sub_080918A4: @ 0x080918A4 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _08091964 @ =gUnk_03001160 adds r1, r5, #0 movs r2, #2 movs r3, #2 bl sub_080041A0 cmp r0, #0 beq _08091974 ldrh r0, [r4, #0x2e] strh r0, [r5, #0x2e] ldrh r0, [r4, #0x32] strh r0, [r5, #0x32] movs r0, #0x36 ldrsh r1, [r5, r0] movs r0, #0x10 rsbs r0, r0, #0 cmp r1, r0 ble _0809197E ldr r0, [r5, #0x20] cmp r0, #0 bge _080919A4 ldrb r0, [r4, #0x14] lsls r0, r0, #1 strb r0, [r5, #0x14] ldr r2, _08091968 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x80 lsls r1, r1, #0x13 eors r0, r1 movs r1, #0x80 lsls r1, r1, #5 orrs r0, r1 str r0, [r2, #0x30] ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] movs r0, #1 strb r0, [r4, #0xf] ldrb r0, [r4, #0x10] movs r2, #0x20 orrs r0, r2 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x97 strb r0, [r1] adds r0, r5, #0 adds r0, #0x3c ldrb r0, [r0] adds r0, #1 subs r1, #3 orrs r0, r2 strb r0, [r1] adds r0, r5, #0 adds r0, #0x3b ldrb r0, [r0] adds r2, r4, #0 adds r2, #0x3b strb r0, [r2] adds r1, #4 movs r0, #0x18 strb r0, [r1] adds r1, #4 movs r0, #8 strb r0, [r1] adds r0, r4, #0 bl sub_0801766C movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _0809196C @ =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 ldr r0, _08091970 @ =0x00000137 bl sub_080A3268 b _0809197E .align 2, 0 _08091964: .4byte gUnk_03001160 _08091968: .4byte gUnk_03003F80 _0809196C: .4byte gUnk_03000BF0 _08091970: .4byte 0x00000137 _08091974: adds r0, r5, #0 adds r1, r4, #0 bl sub_080045C4 strb r0, [r5, #0x15] _0809197E: ldr r3, _080919A8 @ =gUnk_03001160 ldr r0, [r3, #0x20] cmp r0, #0 bge _080919A4 adds r0, r4, #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] _080919A4: pop {r4, r5, pc} .align 2, 0 _080919A8: .4byte gUnk_03001160 thumb_func_start sub_080919AC sub_080919AC: @ 0x080919AC push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 ldr r1, _080919D4 @ =gUnk_03000BF0 movs r0, #0 mov r8, r0 movs r0, #7 strb r0, [r1, #0xe] ldr r0, _080919D8 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 lsls r1, r1, #5 ands r0, r1 cmp r0, #0 bne _080919DC movs r0, #1 strb r0, [r5, #0xc] b _08091C04 .align 2, 0 _080919D4: .4byte gUnk_03000BF0 _080919D8: .4byte gUnk_03003F80 _080919DC: ldr r4, _08091A14 @ =gUnk_03001160 adds r6, r4, #0 adds r6, #0x5a ldrb r1, [r6] movs r7, #0xf adds r0, r7, #0 ands r0, r1 cmp r0, #0 bne _08091A22 ldrb r1, [r5, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r5, #0x10] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 ldrb r1, [r6] movs r0, #0xf0 ands r0, r1 cmp r0, #0x10 bne _08091A18 adds r1, r5, #0 adds r1, #0x63 movs r0, #1 strb r0, [r1] b _08091C04 .align 2, 0 _08091A14: .4byte gUnk_03001160 _08091A18: adds r0, r5, #0 adds r0, #0x63 mov r1, r8 strb r1, [r0] b _08091C04 _08091A22: ldrb r0, [r5, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r5, #0x10] mov r0, r8 strh r0, [r4, #0x24] adds r0, r5, #0 bl sub_0806F69C adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 adds r0, r5, #0 adds r0, #0x29 ldrb r1, [r0] lsls r1, r1, #0x1d lsrs r1, r1, #0x1d subs r1, #1 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] adds r0, r5, #0 bl sub_08091DDC cmp r0, #0 beq _08091A68 b _08091C04 _08091A68: ldr r0, _08091AD8 @ =gUnk_030010A0 ldr r0, [r0] ands r0, r7 cmp r0, #0 bne _08091A7A movs r0, #0x9c lsls r0, r0, #1 bl sub_080A3268 _08091A7A: ldrb r0, [r5, #0xf] subs r0, #1 strb r0, [r5, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _08091A92 movs r0, #0x7b bl sub_080A3268 movs r0, #0x3c strb r0, [r5, #0xf] _08091A92: ldr r2, _08091ADC @ =gUnk_081223C8 ldrb r0, [r5, #0x14] lsls r0, r0, #1 adds r1, r0, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r0, #1 adds r0, r0, r2 movs r2, #0 ldrsb r2, [r0, r2] adds r0, r5, #0 bl sub_080002B4 adds r4, r0, #0 ldr r1, _08091AE0 @ =gUnk_081223D8 ldrb r0, [r5, #0x14] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl sub_08007DD6 cmp r0, #0 bne _08091AE4 ldrb r0, [r5, #0x15] movs r1, #0x10 eors r0, r1 strb r0, [r5, #0x15] ldrb r0, [r5, #0x14] movs r1, #2 eors r0, r1 strb r0, [r5, #0x14] b _08091BD8 .align 2, 0 _08091AD8: .4byte gUnk_030010A0 _08091ADC: .4byte gUnk_081223C8 _08091AE0: .4byte gUnk_081223D8 _08091AE4: adds r0, r4, #0 subs r0, #0x64 cmp r0, #0xb bhi _08091BD8 lsls r0, r0, #2 ldr r1, _08091AF8 @ =_08091AFC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08091AF8: .4byte _08091AFC _08091AFC: @ jump table .4byte _08091B2C @ case 0 .4byte _08091BD8 @ case 1 .4byte _08091BD8 @ case 2 .4byte _08091BB8 @ case 3 .4byte _08091BB8 @ case 4 .4byte _08091BB8 @ case 5 .4byte _08091BB8 @ case 6 .4byte _08091BD8 @ case 7 .4byte _08091BB8 @ case 8 .4byte _08091BB8 @ case 9 .4byte _08091BB8 @ case 10 .4byte _08091BB8 @ case 11 _08091B2C: ldrb r1, [r5, #0x10] movs r0, #0xdf ands r0, r1 strb r0, [r5, #0x10] adds r1, r5, #0 adds r1, #0x3f movs r0, #1 strb r0, [r1] subs r1, #3 movs r0, #0x47 strb r0, [r1] adds r1, #4 movs r0, #0x44 strb r0, [r1] subs r1, #5 movs r4, #0x80 movs r0, #0x80 strb r0, [r1] movs r0, #6 strb r0, [r5, #0xc] adds r0, r5, #0 bl sub_08017744 ldr r2, _08091BAC @ =gUnk_03003F80 movs r0, #0x41 strb r0, [r2, #2] ldr r0, [r2, #0x30] movs r1, #0x80 lsls r1, r1, #5 eors r0, r1 movs r1, #0x80 lsls r1, r1, #0x13 orrs r0, r1 str r0, [r2, #0x30] ldr r1, _08091BB0 @ =gUnk_03001160 movs r0, #0x80 lsls r0, r0, #0xa str r0, [r1, #0x20] movs r0, #0x80 lsls r0, r0, #2 strh r0, [r1, #0x24] ldrb r0, [r5, #0x14] lsls r0, r0, #1 strb r0, [r1, #0x14] ldrb r0, [r5, #0x15] strb r0, [r1, #0x15] ldrb r0, [r1, #0x10] orrs r4, r0 strb r4, [r1, #0x10] adds r0, r5, #0 bl sub_08004168 ldrb r1, [r5, #0x14] adds r1, #0xc adds r0, r5, #0 bl sub_080042AC movs r0, #0x78 bl sub_080A3268 ldr r0, _08091BB4 @ =0x00000139 bl sub_080A3268 b _08091C04 .align 2, 0 _08091BAC: .4byte gUnk_03003F80 _08091BB0: .4byte gUnk_03001160 _08091BB4: .4byte 0x00000139 _08091BB8: adds r0, r5, #0 bl sub_080002B8 cmp r4, r0 bne _08091BD8 adds r0, r5, #0 bl sub_08091C0C ldr r1, _08091BD4 @ =gUnk_03001160 ldrb r0, [r5, #0x14] lsls r0, r0, #1 strb r0, [r1, #0x14] b _08091C04 .align 2, 0 _08091BD4: .4byte gUnk_03001160 _08091BD8: ldr r2, _08091BF8 @ =gUnk_03001160 ldrb r0, [r5, #0x14] lsls r1, r0, #1 strb r1, [r2, #0x14] adds r1, r5, #0 adds r1, #0x58 ldrb r1, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r1, r0 bne _08091BFC adds r0, r5, #0 bl sub_080042B8 b _08091C04 .align 2, 0 _08091BF8: .4byte gUnk_03001160 _08091BFC: ldrb r1, [r5, #0x14] adds r0, r5, #0 bl sub_080042AC _08091C04: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08091C0C sub_08091C0C: @ 0x08091C0C push {r4, lr} adds r4, r0, #0 bl sub_08004168 ldr r1, _08091C30 @ =gUnk_03001160 adds r0, r4, #0 bl sub_0806FA24 adds r0, r4, #0 bl sub_080002B8 cmp r0, #0x68 beq _08091C46 cmp r0, #0x68 bhi _08091C34 cmp r0, #0x67 beq _08091C3E b _08091C80 .align 2, 0 _08091C30: .4byte gUnk_03001160 _08091C34: cmp r0, #0x69 beq _08091C4E cmp r0, #0x6a beq _08091C66 b _08091C80 _08091C3E: ldrb r0, [r4, #0x15] cmp r0, #0x18 beq _08091C54 b _08091C76 _08091C46: ldrb r0, [r4, #0x15] cmp r0, #8 beq _08091C6C b _08091C5C _08091C4E: ldrb r0, [r4, #0x15] cmp r0, #8 bne _08091C5C _08091C54: movs r0, #0 strb r0, [r4, #0x15] strb r0, [r4, #0x14] b _08091C86 _08091C5C: movs r0, #0x18 strb r0, [r4, #0x15] movs r0, #3 strb r0, [r4, #0x14] b _08091C86 _08091C66: ldrb r0, [r4, #0x15] cmp r0, #0x18 bne _08091C76 _08091C6C: movs r0, #0x10 strb r0, [r4, #0x15] movs r0, #2 strb r0, [r4, #0x14] b _08091C86 _08091C76: movs r0, #8 strb r0, [r4, #0x15] movs r0, #1 strb r0, [r4, #0x14] b _08091C86 _08091C80: movs r0, #3 strb r0, [r4, #0xc] b _08091C92 _08091C86: movs r0, #3 strb r0, [r4, #0xc] ldr r1, _08091C94 @ =gUnk_03001160 ldrb r0, [r4, #0x14] lsls r0, r0, #1 strb r0, [r1, #0x14] _08091C92: pop {r4, pc} .align 2, 0 _08091C94: .4byte gUnk_03001160 thumb_func_start sub_08091C98 sub_08091C98: @ 0x08091C98 push {r4, r5, lr} adds r4, r0, #0 bl sub_0806F69C ldr r5, _08091CC0 @ =gUnk_03001160 adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA24 ldr r1, _08091CC4 @ =gUnk_03000BF0 ldrh r0, [r1] cmp r0, #0 bne _08091CBE movs r0, #3 strb r0, [r4, #0xc] movs r0, #0xe0 lsls r0, r0, #3 strh r0, [r4, #0x24] str r5, [r1, #0x30] _08091CBE: pop {r4, r5, pc} .align 2, 0 _08091CC0: .4byte gUnk_03001160 _08091CC4: .4byte gUnk_03000BF0 thumb_func_start sub_08091CC8 sub_08091CC8: @ 0x08091CC8 push {r4, r5, r6, lr} adds r6, r0, #0 ldr r2, _08091D58 @ =gUnk_03003F80 ldrb r0, [r2, #2] cmp r0, #0 bne _08091D64 movs r0, #1 strb r0, [r6, #0xc] ldrb r0, [r6, #0x15] movs r1, #0x10 eors r0, r1 strb r0, [r6, #0x15] ldrb r0, [r6, #0x14] movs r1, #2 eors r0, r1 strb r0, [r6, #0x14] ldr r0, [r2, #0x30] movs r1, #0x80 lsls r1, r1, #0x13 eors r0, r1 str r0, [r2, #0x30] adds r0, r6, #0 adds r0, #0x84 ldr r4, [r0] movs r0, #0x2e ldrsh r1, [r6, r0] ldr r5, _08091D5C @ =gUnk_03000BF0 ldrh r0, [r5, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r2, #0x32 ldrsh r0, [r6, r2] ldrh r2, [r5, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 strh r1, [r4] ldrb r0, [r5, #5] strb r0, [r4, #4] ldrb r0, [r6, #0x14] strb r0, [r4, #5] ldrb r1, [r6, #0x14] adds r1, #0x10 adds r0, r6, #0 bl sub_080042AC ldr r0, _08091D60 @ =0x00004022 movs r3, #0x2e ldrsh r1, [r6, r3] ldrh r2, [r5, #6] subs r1, r1, r2 asrs r1, r1, #4 movs r4, #0x3f ands r1, r4 movs r3, #0x32 ldrsh r2, [r6, r3] ldrh r3, [r5, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r4 lsls r2, r2, #6 orrs r1, r2 adds r2, r6, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E b _08091D8A .align 2, 0 _08091D58: .4byte gUnk_03003F80 _08091D5C: .4byte gUnk_03000BF0 _08091D60: .4byte 0x00004022 _08091D64: adds r0, r6, #0 bl sub_080042B8 ldr r3, _08091D8C @ =gUnk_03001160 adds r0, r6, #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] _08091D8A: pop {r4, r5, r6, pc} .align 2, 0 _08091D8C: .4byte gUnk_03001160 thumb_func_start sub_08091D90 sub_08091D90: @ 0x08091D90 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x20] cmp r0, #0 bge _08091DA0 adds r0, r4, #0 bl sub_080042B8 _08091DA0: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08091DD8 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08091DD8 ldrb r1, [r4, #0xb] movs r0, #4 eors r1, r0 strb r1, [r4, #0xb] movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] strb r1, [r0, #6] movs r0, #0x9e lsls r0, r0, #1 bl sub_080A3268 _08091DD8: pop {r4, pc} .align 2, 0 thumb_func_start sub_08091DDC sub_08091DDC: @ 0x08091DDC push {r4, lr} adds r4, r0, #0 ldr r2, _08091E30 @ =gUnk_081223D0 ldrb r0, [r4, #0x14] lsls r0, r0, #1 adds r1, r0, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r0, #1 adds r0, r0, r2 movs r2, #0 ldrsb r2, [r0, r2] adds r0, r4, #0 bl sub_080002CC cmp r0, #0xff bne _08091E5C ldr r0, _08091E34 @ =gUnk_03001160 ldrb r1, [r4, #0x14] bl sub_0807BD14 cmp r0, #0 beq _08091E5C ldrb r1, [r4, #0x11] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r4, #0x11] movs r0, #5 strb r0, [r4, #0xc] ldrb r0, [r4, #0x15] cmp r0, #8 beq _08091E40 cmp r0, #8 bgt _08091E38 cmp r0, #0 beq _08091E40 b _08091E44 .align 2, 0 _08091E30: .4byte gUnk_081223D0 _08091E34: .4byte gUnk_03001160 _08091E38: cmp r0, #0x10 beq _08091E40 cmp r0, #0x18 bne _08091E44 _08091E40: movs r0, #0xa0 strh r0, [r4, #0x24] _08091E44: ldr r0, _08091E54 @ =gUnk_03001160 ldrb r1, [r4, #0x15] strb r1, [r0, #0x15] ldr r0, _08091E58 @ =gUnk_03000BF0 str r4, [r0, #0x30] movs r0, #1 b _08091E5E .align 2, 0 _08091E54: .4byte gUnk_03001160 _08091E58: .4byte gUnk_03000BF0 _08091E5C: movs r0, #0 _08091E5E: pop {r4, pc} thumb_func_start sub_08091E60 sub_08091E60: @ 0x08091E60 push {lr} ldr r2, _08091E74 @ =gUnk_08122598 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08091E74: .4byte gUnk_08122598 thumb_func_start sub_08091E78 sub_08091E78: @ 0x08091E78 push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldrb r0, [r4, #0xe] cmp r0, #0 bne _08091E96 movs r0, #0x2d strb r0, [r4, #0xe] _08091E96: ldrb r1, [r4, #0x1b] movs r0, #0x3f ands r0, r1 movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x1b] ldrb r1, [r4, #0xb] adds r0, r4, #0 bl sub_08004260 ldr r1, _08091EBC @ =gUnk_08122590 ldrb r0, [r4, #0xb] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] bl sub_080A3268 pop {r4, pc} .align 2, 0 _08091EBC: .4byte gUnk_08122590 thumb_func_start sub_08091EC0 sub_08091EC0: @ 0x08091EC0 push {r4, lr} adds r4, r0, #0 ldr r1, [r4, #0x50] cmp r1, #0 beq _08091ED6 ldrh r0, [r1, #0x2e] strh r0, [r4, #0x2e] ldrh r0, [r1, #0x32] strh r0, [r4, #0x32] ldrh r0, [r1, #0x36] strh r0, [r4, #0x36] _08091ED6: ldrb r0, [r4, #0xb] cmp r0, #2 beq _08091EEC ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08091EEC bl sub_0805E780 _08091EEC: adds r0, r4, #0 bl sub_08004274 pop {r4, pc} thumb_func_start sub_08091EF4 sub_08091EF4: @ 0x08091EF4 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #1 bhi _08091F0E ldr r0, _08091F10 @ =gUnk_08122604 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 _08091F0E: pop {pc} .align 2, 0 _08091F10: .4byte gUnk_08122604 thumb_func_start sub_08091F14 sub_08091F14: @ 0x08091F14 push {r4, r5, lr} adds r4, r0, #0 movs r2, #0 movs r0, #1 strb r0, [r4, #0xc] adds r3, r4, #0 adds r3, #0x29 ldrb r0, [r3] movs r1, #7 orrs r0, r1 strb r0, [r3] adds r0, r4, #0 adds r0, #0x58 strb r2, [r0] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _08091FEC @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r5, r4, #0 adds r5, #0x70 strh r1, [r5] adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _08091FEA movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #6 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #0xd1 lsls r0, r0, #1 ldrh r1, [r5] subs r1, #0x41 adds r4, #0x38 ldrb r2, [r4] bl sub_0807B314 ldr r0, _08091FF0 @ =0x000001A3 ldrh r1, [r5] subs r1, #0x40 ldrb r2, [r4] bl sub_0807B314 movs r0, #0xd2 lsls r0, r0, #1 ldrh r1, [r5] subs r1, #0x3f ldrb r2, [r4] bl sub_0807B314 ldr r0, _08091FF4 @ =0x000001A5 ldrh r1, [r5] subs r1, #1 ldrb r2, [r4] bl sub_0807B314 movs r0, #0xd3 lsls r0, r0, #1 ldrh r1, [r5] ldrb r2, [r4] bl sub_0807B314 ldr r0, _08091FF8 @ =0x000001A7 ldrh r1, [r5] adds r1, #1 ldrb r2, [r4] bl sub_0807B314 movs r0, #0xd4 lsls r0, r0, #1 ldrh r1, [r5] adds r1, #0x3f ldrb r2, [r4] bl sub_0807B314 ldr r0, _08091FFC @ =0x000001A9 ldrh r1, [r5] adds r1, #0x40 ldrb r2, [r4] bl sub_0807B314 movs r0, #0xd5 lsls r0, r0, #1 ldrh r1, [r5] adds r1, #0x41 ldrb r2, [r4] bl sub_0807B314 _08091FEA: pop {r4, r5, pc} .align 2, 0 _08091FEC: .4byte gUnk_03000BF0 _08091FF0: .4byte 0x000001A3 _08091FF4: .4byte 0x000001A5 _08091FF8: .4byte 0x000001A7 _08091FFC: .4byte 0x000001A9 thumb_func_start sub_08092000 sub_08092000: @ 0x08092000 push {r4, lr} adds r4, r0, #0 adds r0, #0x70 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080002B0 movs r1, #0xd3 lsls r1, r1, #1 cmp r0, r1 bne _08092034 movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #6 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 _08092034: pop {r4, pc} .align 2, 0 thumb_func_start sub_08092038 sub_08092038: @ 0x08092038 push {lr} ldr r2, _0809204C @ =gUnk_0812260C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809204C: .4byte gUnk_0812260C thumb_func_start sub_08092050 sub_08092050: @ 0x08092050 push {r4, r5, r6, r7, lr} adds r6, r0, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _0809207A movs r0, #3 strb r0, [r6, #0xc] ldrh r0, [r6, #0x2e] adds r0, #2 strh r0, [r6, #0x2e] adds r0, r6, #0 bl sub_0809223C adds r0, r6, #0 movs r1, #1 bl sub_080042AC b _08092148 _0809207A: ldrb r0, [r6, #0xd] cmp r0, #0 bne _08092138 movs r1, #1 strb r1, [r6, #0xd] adds r0, r6, #0 adds r0, #0x38 strb r1, [r0] adds r2, r6, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] ldrh r0, [r6, #0x2e] adds r0, #2 strh r0, [r6, #0x2e] adds r0, r6, #0 bl sub_08016A04 movs r0, #0x2e ldrsh r2, [r6, r0] ldr r3, _08092130 @ =gUnk_03000BF0 ldrh r0, [r3, #6] subs r2, r2, r0 asrs r2, r2, #4 movs r4, #0x3f ands r2, r4 movs r1, #0x32 ldrsh r0, [r6, r1] ldrh r1, [r3, #8] adds r1, #8 subs r0, r0, r1 asrs r0, r0, #4 ands r0, r4 lsls r0, r0, #6 orrs r2, r0 adds r5, r6, #0 adds r5, #0x70 strh r2, [r5] movs r0, #0x2e ldrsh r2, [r6, r0] ldrh r0, [r3, #6] subs r2, r2, r0 asrs r2, r2, #4 ands r2, r4 movs r1, #0x32 ldrsh r0, [r6, r1] ldrh r1, [r3, #8] subs r1, #8 subs r0, r0, r1 asrs r0, r0, #4 ands r0, r4 lsls r0, r0, #6 orrs r2, r0 adds r7, r6, #0 adds r7, #0x72 strh r2, [r7] ldrh r0, [r5] movs r1, #1 bl sub_080001DA adds r1, r6, #0 adds r1, #0x74 strh r0, [r1] ldrh r0, [r7] movs r1, #1 bl sub_080001DA adds r1, r6, #0 adds r1, #0x76 strh r0, [r1] ldr r4, _08092134 @ =0x00004022 ldrh r1, [r5] adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldrh r1, [r7] adds r0, r4, #0 movs r2, #1 bl sub_0800015E adds r0, r6, #0 movs r1, #0 bl sub_080042AC b _08092148 .align 2, 0 _08092130: .4byte gUnk_03000BF0 _08092134: .4byte 0x00004022 _08092138: movs r0, #1 strb r0, [r6, #0xc] adds r0, r6, #0 bl sub_080921BC adds r0, r6, #0 bl sub_080921F0 _08092148: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0809214C sub_0809214C: @ 0x0809214C push {r4, lr} adds r4, r0, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _08092160 movs r0, #2 strb r0, [r4, #0xc] _08092160: pop {r4, pc} .align 2, 0 thumb_func_start sub_08092164 sub_08092164: @ 0x08092164 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 _080921B6 movs r0, #3 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x74 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x70 ldrh r1, [r1] movs r2, #1 bl sub_0800015E adds r0, r4, #0 adds r0, #0x76 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x72 ldrh r1, [r1] movs r2, #1 bl sub_0800015E adds r0, r4, #0 bl sub_08092214 adds r0, r4, #0 bl sub_0809223C adds r0, r4, #0 movs r1, #1 bl sub_080042AC _080921B6: pop {r4, pc} thumb_func_start nullsub_118 nullsub_118: @ 0x080921B8 bx lr .align 2, 0 thumb_func_start sub_080921BC sub_080921BC: @ 0x080921BC push {lr} adds r2, r0, #0 ldr r1, _080921DC @ =gUnk_030011E8 ldr r0, _080921E0 @ =0x000029F8 adds r3, r1, r0 _080921C6: ldrb r0, [r1, #8] cmp r0, #6 bne _080921E4 ldrb r0, [r1, #9] cmp r0, #0x6f bne _080921E4 ldrb r0, [r1, #0xa] cmp r0, #2 bne _080921E4 str r1, [r2, #0x54] b _080921EE .align 2, 0 _080921DC: .4byte gUnk_030011E8 _080921E0: .4byte 0x000029F8 _080921E4: adds r1, #0x88 cmp r1, r3 blo _080921C6 movs r0, #0 str r0, [r2, #0x54] _080921EE: pop {pc} thumb_func_start sub_080921F0 sub_080921F0: @ 0x080921F0 push {lr} ldr r2, [r0, #0x54] cmp r2, #0 beq _08092212 adds r1, r2, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] adds r3, r2, #0 adds r3, #0x29 ldrb r0, [r3] movs r1, #7 orrs r0, r1 strb r0, [r3] adds r0, r2, #0 bl sub_08016A04 _08092212: pop {pc} thumb_func_start sub_08092214 sub_08092214: @ 0x08092214 push {lr} ldr r2, [r0, #0x54] cmp r2, #0 beq _0809223A adds r1, r2, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r3, r2, #0 adds r3, #0x29 ldrb r1, [r3] subs r0, #0xa ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r3] adds r0, r2, #0 bl sub_08016A04 _0809223A: pop {pc} thumb_func_start sub_0809223C sub_0809223C: @ 0x0809223C push {lr} adds r2, r0, #0 adds r2, #0x38 movs r1, #2 strb r1, [r2] adds r3, r0, #0 adds r3, #0x29 ldrb r2, [r3] subs r1, #0xa ands r1, r2 movs r2, #3 orrs r1, r2 strb r1, [r3] bl sub_08016A04 pop {pc} thumb_func_start sub_0809225C sub_0809225C: @ 0x0809225C push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xa] cmp r0, #0 bne _0809226E adds r0, r1, #0 bl sub_08092278 b _08092274 _0809226E: adds r0, r1, #0 bl sub_08092344 _08092274: pop {pc} .align 2, 0 thumb_func_start sub_08092278 sub_08092278: @ 0x08092278 push {lr} ldr r2, _0809228C @ =gUnk_08122644 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809228C: .4byte gUnk_08122644 thumb_func_start sub_08092290 sub_08092290: @ 0x08092290 push {lr} movs r1, #1 strb r1, [r0, #0xc] bl sub_080925A4 pop {pc} thumb_func_start sub_0809229C sub_0809229C: @ 0x0809229C push {r4, lr} adds r4, r0, #0 adds r0, #0x70 ldrb r0, [r0] cmp r0, #0 beq _080922E0 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0xb0 lsls r0, r0, #0xa str r0, [r4, #0x20] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_08016A04 ldr r0, [r4, #0x54] ldrb r1, [r0, #0x14] adds r0, r4, #0 bl sub_080042AC movs r0, #0xbf lsls r0, r0, #1 bl sub_08004488 ldr r0, [r4, #0x54] movs r1, #3 bl sub_08004260 _080922E0: pop {r4, pc} .align 2, 0 thumb_func_start sub_080922E4 sub_080922E4: @ 0x080922E4 push {r4, lr} adds r4, r0, #0 movs r1, #0x90 lsls r1, r1, #6 bl sub_08003FC4 adds r2, r0, #0 cmp r2, #0 bne _08092322 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 adds r0, #0x70 strb r2, [r0] ldr r0, [r4, #0x54] adds r0, #0x63 strb r2, [r0] ldr r0, [r4, #0x54] ldrb r1, [r0, #0x14] bl sub_08004260 adds r0, r4, #0 movs r1, #0x36 movs r2, #0 bl sub_080A29AC b _0809233E _08092322: ldr r1, [r4, #0x20] ldr r0, _08092340 @ =0x00017FFF cmp r1, r0 bgt _0809233E adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0809233E adds r0, r4, #0 bl sub_080042B8 _0809233E: pop {r4, pc} .align 2, 0 _08092340: .4byte 0x00017FFF thumb_func_start sub_08092344 sub_08092344: @ 0x08092344 push {r4, lr} adds r4, r0, #0 movs r0, #0 strb r0, [r4, #0xf] ldr r1, _08092364 @ =gUnk_08122650 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_080926E4 pop {r4, pc} .align 2, 0 _08092364: .4byte gUnk_08122650 thumb_func_start sub_08092368 sub_08092368: @ 0x08092368 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xb] strb r0, [r2, #0x14] adds r3, r2, #0 adds r3, #0x29 ldrb r0, [r3] movs r1, #7 orrs r0, r1 strb r0, [r3] adds r1, r2, #0 adds r1, #0x40 movs r0, #0x48 strb r0, [r1] subs r1, #4 movs r0, #7 strb r0, [r1] subs r1, #1 movs r0, #0x81 strb r0, [r1] ldr r0, _0809239C @ =gUnk_080FD280 str r0, [r2, #0x48] adds r0, r2, #0 bl sub_0809264C pop {pc} .align 2, 0 _0809239C: .4byte gUnk_080FD280 thumb_func_start sub_080923A0 sub_080923A0: @ 0x080923A0 push {r4, lr} adds r4, r0, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #3 beq _080923E2 ldrb r0, [r4, #0xd] cmp r0, #0 bne _080923C6 movs r1, #1 movs r0, #1 strb r0, [r4, #0xd] ldrb r0, [r4, #0x14] eors r0, r1 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 _080923C6: adds r1, r4, #0 adds r1, #0x63 ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #3 rsbs r1, r1, #0 cmp r0, r1 bne _080923E2 adds r0, r4, #0 bl sub_0809264C _080923E2: pop {r4, pc} thumb_func_start sub_080923E4 sub_080923E4: @ 0x080923E4 push {r4, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x9d bne _080923F8 adds r0, r4, #0 bl sub_08092620 b _0809241A _080923F8: adds r0, r4, #0 bl sub_0809269C cmp r0, #0 beq _0809241A movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r0, #0x14 strb r0, [r4, #0xe] ldr r0, _0809241C @ =gUnk_03003F80 adds r0, #0x3f movs r1, #0xfd strb r1, [r0] _0809241A: pop {r4, pc} .align 2, 0 _0809241C: .4byte gUnk_03003F80 thumb_func_start sub_08092420 sub_08092420: @ 0x08092420 push {r4, lr} adds r4, r0, #0 bl sub_0809269C cmp r0, #0 beq _08092434 ldr r0, _08092464 @ =gUnk_03003F80 adds r0, #0x3f movs r1, #0xfd strb r1, [r0] _08092434: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08092462 movs r0, #4 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x72 ldrh r1, [r0] subs r0, #2 movs r2, #0 strh r1, [r0] subs r0, #0xd strb r2, [r0] adds r0, r4, #0 movs r1, #2 bl sub_08004260 ldr r0, _08092468 @ =0x0000017B bl sub_08004488 _08092462: pop {r4, pc} .align 2, 0 _08092464: .4byte gUnk_03003F80 _08092468: .4byte 0x0000017B thumb_func_start sub_0809246C sub_0809246C: @ 0x0809246C push {r4, r5, lr} adds r4, r0, #0 bl sub_0809269C adds r5, r4, #0 adds r5, #0x70 ldrh r0, [r5] cmp r0, #0 beq _08092482 subs r0, #1 strh r0, [r5] _08092482: ldrh r0, [r5] cmp r0, #0x8c bhi _080924DC adds r0, r4, #0 bl sub_08004274 adds r3, r4, #0 adds r3, #0x5a ldrb r1, [r3] movs r0, #0x80 ands r0, r1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 beq _080924B8 movs r0, #5 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x74 ldrh r0, [r0] strh r0, [r5] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] b _080924DC _080924B8: movs r2, #1 ands r2, r1 cmp r2, #0 beq _080924CC strb r0, [r3] movs r0, #0xbe lsls r0, r0, #1 bl sub_08004488 b _080924DC _080924CC: movs r0, #2 ands r0, r1 cmp r0, #0 beq _080924DC strb r2, [r3] ldr r0, _080924E0 @ =0x0000017D bl sub_08004488 _080924DC: pop {r4, r5, pc} .align 2, 0 _080924E0: .4byte 0x0000017D thumb_func_start sub_080924E4 sub_080924E4: @ 0x080924E4 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x70 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0809252C movs r0, #6 strb r0, [r4, #0xc] ldrb r0, [r4, #0xb] strb r0, [r4, #0x14] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r1, r4, #0 adds r1, #0x63 movs r0, #0 strb r0, [r1] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_08004260 ldrb r0, [r4, #0x14] cmp r0, #0 bne _0809252C adds r0, r4, #0 bl sub_0809269C _0809252C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08092530 sub_08092530: @ 0x08092530 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0x14] cmp r0, #0 bne _08092544 adds r0, r4, #0 bl sub_0809269C adds r5, r0, #0 b _08092546 _08092544: movs r5, #0 _08092546: adds r0, r4, #0 bl sub_08004274 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08092570 movs r0, #0 strb r0, [r2] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x3f movs r0, #0xac strb r0, [r1] b _0809258A _08092570: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0809258A adds r0, r4, #0 bl sub_0809264C cmp r5, #0 beq _0809258A ldr r0, _0809258C @ =gUnk_03003F80 adds r0, #0x3f movs r1, #0xfd strb r1, [r0] _0809258A: pop {r4, r5, pc} .align 2, 0 _0809258C: .4byte gUnk_03003F80 thumb_func_start sub_08092590 sub_08092590: @ 0x08092590 push {lr} adds r1, r0, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x9d bne _080925A2 adds r0, r1, #0 bl sub_08092620 _080925A2: pop {pc} thumb_func_start sub_080925A4 sub_080925A4: @ 0x080925A4 push {r4, r5, r6, r7, lr} adds r6, r0, #0 ldrb r0, [r6, #0xb] bl sub_0804B128 adds r5, r0, #0 ldrb r0, [r5, #9] cmp r0, #0xff beq _0809261A ldr r7, _0809261C @ =gUnk_03000BF0 _080925B8: ldrb r2, [r5, #9] movs r0, #0x59 movs r1, #1 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08092612 movs r0, #0xff strb r0, [r4, #0x15] movs r0, #0 strh r0, [r4, #0x24] str r6, [r4, #0x50] ldrh r0, [r7, #6] ldrh r1, [r5, #4] adds r0, r0, r1 strh r0, [r4, #0x2e] ldrh r0, [r7, #8] ldrh r1, [r5, #6] adds r0, r0, r1 strh r0, [r4, #0x32] ldrb r1, [r5, #8] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] ldrh r0, [r5, #0xa] adds r1, r4, #0 adds r1, #0x72 strh r0, [r1] ldrh r1, [r5, #0xc] adds r0, r4, #0 adds r0, #0x74 strh r1, [r0] ldr r0, [r5] str r0, [r4, #0x78] adds r0, r4, #0 bl sub_08016A04 adds r1, r4, #0 adds r1, #0x78 adds r2, r4, #0 adds r2, #0x76 adds r0, r4, #0 bl sub_080A2CC0 _08092612: adds r5, #0x10 ldrb r0, [r5, #9] cmp r0, #0xff bne _080925B8 _0809261A: pop {r4, r5, r6, r7, pc} .align 2, 0 _0809261C: .4byte gUnk_03000BF0 thumb_func_start sub_08092620 sub_08092620: @ 0x08092620 push {r4, r5, r6, lr} adds r5, r0, #0 ldr r1, [r5, #0x50] adds r0, r1, #0 adds r0, #0x70 ldrb r6, [r0] cmp r6, #0 bne _08092648 movs r4, #1 strb r4, [r0] str r5, [r1, #0x54] adds r0, r5, #0 bl sub_0806FA24 strb r4, [r5, #0xc] strb r6, [r5, #0xd] adds r1, r5, #0 adds r1, #0x3f movs r0, #0xac strb r0, [r1] _08092648: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0809264C sub_0809264C: @ 0x0809264C push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x14] movs r3, #1 adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _0809266A movs r0, #7 strb r0, [r2, #0xc] adds r1, r2, #0 adds r1, #0x3f movs r0, #0xac strb r0, [r1] b _08092674 _0809266A: movs r0, #2 strb r0, [r2, #0xc] adds r0, r2, #0 adds r0, #0x3f strb r3, [r0] _08092674: ldrb r1, [r2, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x10] ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r1, r2, #0 adds r1, #0x63 movs r0, #0xfd strb r0, [r1] ldrb r1, [r2, #0x14] adds r0, r2, #0 bl sub_08004260 pop {pc} thumb_func_start sub_0809269C sub_0809269C: @ 0x0809269C push {r4, r5, r6, lr} adds r4, r0, #0 ldr r6, _080926D8 @ =gUnk_03003F80 ldr r0, [r6, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _080926E0 ldr r5, _080926DC @ =gUnk_03001160 adds r0, r4, #0 adds r1, r5, #0 movs r2, #0x10 movs r3, #0x10 bl sub_080041A0 cmp r0, #0 beq _080926E0 bl sub_08079F8C cmp r0, #0 beq _080926E0 movs r1, #1 strb r1, [r6, #0x14] movs r2, #0x36 ldrsh r0, [r5, r2] cmp r0, #0 bne _080926E0 strb r1, [r4, #0xf] movs r0, #1 b _080926E2 .align 2, 0 _080926D8: .4byte gUnk_03003F80 _080926DC: .4byte gUnk_03001160 _080926E0: movs r0, #0 _080926E2: pop {r4, r5, r6, pc} thumb_func_start sub_080926E4 sub_080926E4: @ 0x080926E4 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xf] bl sub_080A2BE4 ldrb r0, [r4, #0xc] cmp r0, #1 bne _08092700 ldr r1, [r4, #0x50] ldrh r0, [r4, #0x2e] strh r0, [r1, #0x2e] ldr r1, [r4, #0x50] ldrh r0, [r4, #0x32] strh r0, [r1, #0x32] _08092700: adds r2, r4, #0 adds r2, #0x76 ldrh r0, [r2] subs r0, #1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 bne _0809271A adds r1, r4, #0 adds r1, #0x78 adds r0, r4, #0 bl sub_080A2CC0 _0809271A: pop {r4, pc} thumb_func_start sub_0809271C sub_0809271C: @ 0x0809271C push {lr} ldr r2, _08092730 @ =gUnk_08122780 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08092730: .4byte gUnk_08122780 thumb_func_start sub_08092734 sub_08092734: @ 0x08092734 push {lr} ldr r2, _08092748 @ =gUnk_08122788 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08092748: .4byte gUnk_08122788 thumb_func_start sub_0809274C sub_0809274C: @ 0x0809274C push {r4, r5, r6, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x19] movs r5, #0x3f adds r0, r5, #0 ands r0, r1 movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x19] ldrh r0, [r4, #0x36] subs r0, #8 strh r0, [r4, #0x36] ldrb r0, [r4, #0xb] cmp r0, #1 beq _0809277C cmp r0, #2 bne _080927A2 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] _0809277C: ldr r0, _080927A4 @ =0x00004051 movs r2, #0x2e ldrsh r1, [r4, r2] ldr r3, _080927A8 @ =gUnk_03000BF0 ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r5 movs r6, #0x32 ldrsh r2, [r4, r6] ldrh r3, [r3, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r5 lsls r2, r2, #6 orrs r1, r2 movs r2, #1 bl sub_0800015E _080927A2: pop {r4, r5, r6, pc} .align 2, 0 _080927A4: .4byte 0x00004051 _080927A8: .4byte gUnk_03000BF0 thumb_func_start sub_080927AC sub_080927AC: @ 0x080927AC push {lr} adds r1, r0, #0 movs r0, #1 strb r0, [r1, #0xc] ldrb r0, [r1, #0xb] strb r0, [r1, #0x1e] ldrb r0, [r1, #0xb] cmp r0, #0 beq _080927C4 cmp r0, #2 beq _080927CA b _080927D0 _080927C4: adds r1, #0x63 movs r0, #2 b _080927CE _080927CA: adds r1, #0x63 movs r0, #0xfe _080927CE: strb r0, [r1] _080927D0: pop {pc} .align 2, 0 thumb_func_start sub_080927D4 sub_080927D4: @ 0x080927D4 push {r4, r5, r6, lr} mov r6, r8 push {r6} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldrh r0, [r4, #0x32] adds r0, #1 strh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x63 movs r0, #0xff strb r0, [r1] ldr r0, _08092848 @ =0x00004051 mov r8, r0 movs r2, #0x2e ldrsh r1, [r4, r2] ldr r6, _0809284C @ =gUnk_03000BF0 ldrh r0, [r6, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r5, #0x3f ands r1, r5 movs r2, #0x32 ldrsh r0, [r4, r2] ldrh r2, [r6, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r5 lsls r0, r0, #6 orrs r1, r0 subs r1, #1 mov r0, r8 movs r2, #1 bl sub_0800015E movs r0, #0x2e ldrsh r1, [r4, r0] ldrh r0, [r6, #6] subs r1, r1, r0 asrs r1, r1, #4 ands r1, r5 movs r2, #0x32 ldrsh r0, [r4, r2] ldrh r2, [r6, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r5 lsls r0, r0, #6 orrs r1, r0 mov r0, r8 movs r2, #1 bl sub_0800015E pop {r3} mov r8, r3 pop {r4, r5, r6, pc} .align 2, 0 _08092848: .4byte 0x00004051 _0809284C: .4byte gUnk_03000BF0 thumb_func_start sub_08092850 sub_08092850: @ 0x08092850 push {r4, lr} adds r2, r0, #0 ldrb r0, [r2, #0xa] cmp r0, #0 bne _08092888 ldr r3, _08092878 @ =gUnk_03001160 movs r0, #0x32 ldrsh r1, [r3, r0] movs r4, #0x32 ldrsh r0, [r2, r4] cmp r1, r0 blt _0809286E adds r0, #0x18 cmp r1, r0 ble _0809287C _0809286E: ldrb r0, [r2, #0x19] movs r1, #0x3f ands r1, r0 movs r0, #0x40 b _08092884 .align 2, 0 _08092878: .4byte gUnk_03001160 _0809287C: ldrb r0, [r2, #0x19] movs r1, #0x3f ands r1, r0 movs r0, #0x80 _08092884: orrs r1, r0 strb r1, [r2, #0x19] _08092888: pop {r4, pc} .align 2, 0 thumb_func_start sub_0809288C sub_0809288C: @ 0x0809288C push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _080928B0 ldr r0, _080928AC @ =gUnk_0812279C ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 b _080928C0 .align 2, 0 _080928AC: .4byte gUnk_0812279C _080928B0: ldr r0, _080928C4 @ =gUnk_08122794 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 _080928C0: pop {pc} .align 2, 0 _080928C4: .4byte gUnk_08122794 thumb_func_start sub_080928C8 sub_080928C8: @ 0x080928C8 push {lr} adds r3, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r3, #0xc] ldrb r1, [r3, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r3, #0x18] ldrb r0, [r3, #0xa] strb r0, [r3, #0x1e] ldrb r0, [r3, #0x19] movs r1, #0xc0 orrs r0, r1 strb r0, [r3, #0x19] adds r2, r3, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] ldrb r1, [r3, #0x1b] movs r0, #0x3f ands r0, r1 movs r1, #0x80 orrs r0, r1 strb r0, [r3, #0x1b] ldrb r0, [r3, #0xa] cmp r0, #2 beq _08092912 cmp r0, #4 beq _08092920 b _08092928 _08092912: adds r0, r3, #0 movs r1, #0x5b movs r2, #4 movs r3, #0 bl sub_080A2988 b _08092928 _08092920: ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] _08092928: pop {pc} .align 2, 0 thumb_func_start nullsub_119 nullsub_119: @ 0x0809292C bx lr .align 2, 0 thumb_func_start sub_08092930 sub_08092930: @ 0x08092930 push {r4, lr} adds r4, r0, #0 bl sub_080928C8 adds r4, #0x82 movs r0, #0 strh r0, [r4] pop {r4, pc} thumb_func_start sub_08092940 sub_08092940: @ 0x08092940 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_08092958 pop {r4, r5, pc} thumb_func_start sub_08092958 sub_08092958: @ 0x08092958 push {r4, lr} adds r3, r0, #0 adds r2, r1, #0 ldr r0, [r2, #8] cmp r0, #0 beq _0809298A movs r4, #0 _08092966: ldr r1, [r2, #8] mvns r0, r1 adds r0, #1 ands r0, r1 eors r1, r0 str r1, [r2, #8] cmp r0, #1 beq _0809297C cmp r0, #2 beq _08092980 b _08092984 _0809297C: strb r4, [r3, #0x1e] b _08092984 _08092980: ldr r0, [r2, #4] strb r0, [r3, #0x1e] _08092984: ldr r0, [r2, #8] cmp r0, #0 bne _08092966 _0809298A: pop {r4, pc} thumb_func_start sub_0809298C sub_0809298C: @ 0x0809298C push {lr} ldr r2, _080929A0 @ =gUnk_081227A4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080929A0: .4byte gUnk_081227A4 thumb_func_start sub_080929A4 sub_080929A4: @ 0x080929A4 push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r1, [r5, #0xb] movs r6, #0xc0 adds r0, r6, #0 ands r0, r1 cmp r0, #0 beq _08092A08 adds r4, r5, #0 adds r4, #0x86 ldrh r0, [r4] bl sub_0807CBE4 cmp r0, #0 beq _08092A08 ldrb r0, [r5, #0xb] adds r1, r6, #0 ands r1, r0 cmp r1, #0x40 beq _080929D2 cmp r1, #0x80 beq _08092A04 b _08092A08 _080929D2: ldr r0, _080929F4 @ =gUnk_030010A0 ldrh r1, [r0, #0xa] movs r0, #0xc1 lsls r0, r0, #1 cmp r1, r0 beq _080929EE cmp r1, r0 blt _080929FC ldr r0, _080929F8 @ =0x0000044F cmp r1, r0 bgt _080929FC subs r0, #2 cmp r1, r0 blt _080929FC _080929EE: bl sub_0805E780 b _08092A08 .align 2, 0 _080929F4: .4byte gUnk_030010A0 _080929F8: .4byte 0x0000044F _080929FC: ldrh r0, [r4] bl sub_0807CD48 b _08092A08 _08092A04: bl sub_0805E780 _08092A08: movs r0, #1 strb r0, [r5, #0xc] movs r0, #0xc0 lsls r0, r0, #9 str r0, [r5, #0x20] bl sub_08000E50 movs r1, #7 ands r0, r1 lsls r0, r0, #0xa movs r2, #0x80 lsls r2, r2, #6 adds r1, r2, #0 adds r2, r5, #0 adds r2, #0x78 movs r3, #0 orrs r0, r1 strh r0, [r2] ldrb r0, [r5, #0xe] lsrs r0, r0, #1 strb r0, [r5, #0xf] strb r3, [r5, #0xe] ldrb r1, [r5, #0xb] movs r0, #0x3f ands r0, r1 strb r0, [r5, #0x1e] movs r4, #0x2e ldrsh r1, [r5, r4] ldr r2, _08092A8C @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r4, #0x32 ldrsh r0, [r5, r4] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r4, r5, #0 adds r4, #0x7e strh r1, [r4] ldrh r0, [r4] movs r1, #1 bl sub_080001DA adds r1, r5, #0 adds r1, #0x7c strh r0, [r1] ldrh r0, [r4] movs r1, #1 bl sub_080002E0 adds r1, r5, #0 adds r1, #0x7a strh r0, [r1] ldr r0, _08092A90 @ =0x00004022 ldrh r1, [r4] movs r2, #1 bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 _08092A8C: .4byte gUnk_03000BF0 _08092A90: .4byte 0x00004022 thumb_func_start sub_08092A94 sub_08092A94: @ 0x08092A94 push {r4, r5, lr} adds r4, r0, #0 ldr r2, _08092B08 @ =gUnk_03001160 ldrb r0, [r2, #0xc] cmp r0, #6 bne _08092B04 ldrb r0, [r2, #0x14] cmp r0, #0 bne _08092B04 movs r1, #0x32 ldrsh r0, [r4, r1] adds r0, #0x28 movs r3, #0x32 ldrsh r1, [r2, r3] cmp r0, r1 blt _08092B04 movs r0, #0x2e ldrsh r1, [r4, r0] movs r3, #0x2e ldrsh r0, [r2, r3] subs r1, r1, r0 ldrb r0, [r4, #0xf] cmp r1, r0 bge _08092B04 cmn r1, r0 ble _08092B04 adds r0, r4, #0 adds r0, #0x7c ldrh r0, [r0] adds r5, r4, #0 adds r5, #0x7e ldrh r1, [r5] movs r2, #1 bl sub_0800015E adds r0, r4, #0 adds r0, #0x7a ldrh r0, [r0] ldrh r1, [r5] movs r2, #1 bl sub_08000148 movs r0, #2 strb r0, [r4, #0xc] ldrh r0, [r4, #0x36] subs r0, #0x20 strh r0, [r4, #0x36] ldrh r0, [r4, #0x32] adds r0, #0x20 strh r0, [r4, #0x32] ldrb r1, [r4, #0x19] movs r0, #0x3f ands r0, r1 movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x19] _08092B04: pop {r4, r5, pc} .align 2, 0 _08092B08: .4byte gUnk_03001160 thumb_func_start sub_08092B0C sub_08092B0C: @ 0x08092B0C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #1 bne _08092B50 movs r0, #0 movs r1, #3 strb r1, [r4, #0xc] strb r0, [r4, #0xe] ldrb r0, [r4, #0xb] movs r1, #0xc0 ands r1, r0 cmp r1, #0x40 beq _08092B32 cmp r1, #0x80 bne _08092B3C movs r0, #0x72 bl sub_08004488 _08092B32: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 _08092B3C: adds r0, r4, #0 movs r1, #5 movs r2, #0 bl sub_080A29AC adds r0, r4, #0 movs r1, #3 bl sub_0805457C b _08092B6A _08092B50: adds r0, r4, #0 adds r0, #0x78 ldrh r1, [r0] adds r0, r4, #0 bl sub_080044EC movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 bne _08092B6A ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] _08092B6A: pop {r4, pc} thumb_func_start sub_08092B6C sub_08092B6C: @ 0x08092B6C push {lr} bl sub_0805E780 pop {pc} thumb_func_start sub_08092B74 sub_08092B74: @ 0x08092B74 push {lr} ldr r2, _08092B88 @ =gUnk_081227C0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08092B88: .4byte gUnk_081227C0 thumb_func_start sub_08092B8C sub_08092B8C: @ 0x08092B8C push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x86 ldrh r0, [r1] cmp r0, #0 beq _08092BA6 bl sub_0807CBE4 cmp r0, #0 beq _08092BA6 bl sub_0805E780 _08092BA6: movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldrb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x7d strb r0, [r1] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] ldr r0, _08092BE8 @ =gUnk_081227EC str r0, [r4, #0x48] movs r0, #8 strb r0, [r4, #0xe] ldrb r0, [r4, #0xa] lsls r0, r0, #1 ldr r1, _08092BEC @ =gUnk_081227B4 adds r2, r0, r1 ldrb r1, [r2] adds r0, r1, #0 cmp r0, #0xff bne _08092BF0 ldrb r0, [r4, #0xb] strb r0, [r4, #0x1e] b _08092BF6 .align 2, 0 _08092BE8: .4byte gUnk_081227EC _08092BEC: .4byte gUnk_081227B4 _08092BF0: strb r1, [r4, #0x1e] ldrb r0, [r2, #1] strb r0, [r4, #0xb] _08092BF6: pop {r4, pc} thumb_func_start sub_08092BF8 sub_08092BF8: @ 0x08092BF8 push {r4, r5, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x86 ldrh r0, [r1] cmp r0, #0 beq _08092C20 bl sub_0807CBE4 cmp r0, #0 beq _08092C20 movs r0, #2 strb r0, [r4, #0xc] ldr r0, _08092C1C @ =0x00000111 bl sub_080A3268 b _08092C92 .align 2, 0 _08092C1C: .4byte 0x00000111 _08092C20: adds r0, r4, #0 bl sub_0800445C cmp r0, #0 beq _08092C74 adds r0, r4, #0 adds r0, #0x7d ldrb r0, [r0] cmp r0, #0 bne _08092C74 ldrb r0, [r4, #0xb] lsls r0, r0, #3 ldr r1, _08092C68 @ =gUnk_081227CC adds r5, r0, r1 ldrh r1, [r5, #4] ldrh r2, [r5, #6] adds r0, r4, #0 bl sub_0806ED9C cmp r0, #0 blt _08092C78 ldr r1, _08092C6C @ =gUnk_03001160 ldrh r0, [r5] ldrb r1, [r1, #0x14] cmp r0, r1 bne _08092C78 ldr r0, _08092C70 @ =gUnk_03003F80 adds r0, #0x90 ldrh r1, [r0] ldrh r0, [r5, #2] ands r0, r1 cmp r0, #0 beq _08092C78 ldrb r0, [r4, #0xe] subs r0, #1 b _08092C76 .align 2, 0 _08092C68: .4byte gUnk_081227CC _08092C6C: .4byte gUnk_03001160 _08092C70: .4byte gUnk_03003F80 _08092C74: movs r0, #8 _08092C76: strb r0, [r4, #0xe] _08092C78: ldrb r0, [r4, #0xe] cmp r0, #0 bne _08092C92 movs r0, #2 strb r0, [r4, #0xc] movs r0, #8 movs r1, #0 movs r2, #0 bl sub_08078AC0 ldr r0, _08092C94 @ =0x00000111 bl sub_080A3268 _08092C92: pop {r4, r5, pc} .align 2, 0 _08092C94: .4byte 0x00000111 thumb_func_start sub_08092C98 sub_08092C98: @ 0x08092C98 push {lr} bl sub_0805E780 pop {pc} thumb_func_start sub_08092CA0 sub_08092CA0: @ 0x08092CA0 push {r4, lr} adds r4, r0, #0 adds r0, #0x45 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 beq _08092CC0 ldr r0, _08092CD4 @ =gUnk_020342F8 subs r1, #1 bl sub_0801D5A8 cmp r0, #0 bne _08092CC0 bl sub_0805E780 _08092CC0: ldr r0, _08092CD8 @ =gUnk_081227F4 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _08092CD4: .4byte gUnk_020342F8 _08092CD8: .4byte gUnk_081227F4 thumb_func_start sub_08092CDC sub_08092CDC: @ 0x08092CDC push {r4, lr} adds r4, r0, #0 movs r2, #1 strb r2, [r4, #0xc] ldr r0, _08092D48 @ =gUnk_080FD320 str r0, [r4, #0x48] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 adds r0, #0x3f strb r2, [r0] adds r1, r4, #0 adds r1, #0x3c movs r0, #0x47 strb r0, [r1] adds r1, #4 movs r0, #0x44 strb r0, [r1] subs r1, #5 movs r0, #0x80 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] ldrb r0, [r4, #0xa] strb r0, [r4, #0x14] lsls r0, r0, #3 strb r0, [r4, #0x15] movs r0, #0xe0 lsls r0, r0, #3 strh r0, [r4, #0x24] ldrb r0, [r4, #0xb] cmp r0, #1 bne _08092D50 ldr r1, _08092D4C @ =0x00000161 adds r0, r4, #0 bl sub_0801D2B4 adds r0, r4, #0 movs r1, #1 bl sub_08004260 b _08092D5C .align 2, 0 _08092D48: .4byte gUnk_080FD320 _08092D4C: .4byte 0x00000161 _08092D50: ldr r0, _08092D78 @ =0x0000FFE8 strh r0, [r4, #0x36] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _08092D5C: ldrb r1, [r4, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08092D74 adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC _08092D74: pop {r4, pc} .align 2, 0 _08092D78: .4byte 0x0000FFE8 thumb_func_start sub_08092D7C sub_08092D7C: @ 0x08092D7C push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r1, [r5, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08092D92 adds r0, r5, #0 movs r1, #0 bl sub_0807DDAC _08092D92: ldrb r0, [r5, #0x18] lsls r0, r0, #0x1e cmp r0, #0 beq _08092E84 adds r0, r5, #0 bl sub_08004274 ldr r6, _08092E04 @ =gUnk_03003F80 ldr r0, [r6, #0x30] movs r3, #0x80 ands r0, r3 cmp r0, #0 bne _08092E84 adds r0, r6, #0 adds r0, #0x3c ldrb r0, [r0] cmp r0, #0 bne _08092E84 ldr r4, _08092E08 @ =gUnk_03001160 ldrb r2, [r4, #0xc] cmp r2, #4 beq _08092DC8 ldrb r1, [r4, #0x10] adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _08092E84 _08092DC8: cmp r2, #6 beq _08092E84 adds r0, r5, #0 adds r1, r4, #0 movs r2, #0xc movs r3, #0xc bl sub_0800419C cmp r0, #0 beq _08092E84 ldr r0, [r6, #0x30] movs r1, #0x80 lsls r1, r1, #0x11 ands r0, r1 cmp r0, #0 bne _08092E0C ldrb r0, [r4, #0xc] cmp r0, #4 beq _08092E0C ldrb r0, [r5, #0xb] cmp r0, #1 beq _08092E16 movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #0x10 rsbs r0, r0, #0 cmp r1, r0 bgt _08092E84 b _08092E16 .align 2, 0 _08092E04: .4byte gUnk_03003F80 _08092E08: .4byte gUnk_03001160 _08092E0C: ldr r0, _08092E88 @ =gUnk_03001160 movs r1, #0x36 ldrsh r0, [r0, r1] cmp r0, #0 beq _08092E84 _08092E16: ldr r4, _08092E88 @ =gUnk_03001160 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 adds r0, r5, #0 bl sub_08004542 adds r0, r4, #0 bl sub_08004542 adds r1, r4, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldr r1, _08092E8C @ =gUnk_03003F80 movs r0, #0x1f strb r0, [r1, #0xc] ldrb r2, [r5, #0xb] adds r0, r1, #0 adds r0, #0x38 strb r2, [r0] adds r1, #0x39 movs r0, #0xff strb r0, [r1] adds r4, #0x29 ldrb r1, [r4] lsls r1, r1, #0x1d lsrs r1, r1, #0x1d subs r1, #1 adds r3, r5, #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] ldrb r0, [r5, #0xc] adds r0, #1 strb r0, [r5, #0xc] bl sub_08077B20 ldr r0, _08092E90 @ =0x00000153 bl sub_080A3268 movs r0, #0x79 bl sub_080A3268 _08092E84: pop {r4, r5, r6, pc} .align 2, 0 _08092E88: .4byte gUnk_03001160 _08092E8C: .4byte gUnk_03003F80 _08092E90: .4byte 0x00000153 thumb_func_start sub_08092E94 sub_08092E94: @ 0x08092E94 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 ldr r1, _08092ED0 @ =gUnk_03001160 adds r0, r4, #0 movs r2, #0xc movs r3, #0xc bl sub_0800419C cmp r0, #0 bne _08092ECE adds r0, r4, #0 bl sub_0800455E 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] ldrb r0, [r4, #0xc] subs r0, #1 strb r0, [r4, #0xc] _08092ECE: pop {r4, pc} .align 2, 0 _08092ED0: .4byte gUnk_03001160 thumb_func_start sub_08092ED4 sub_08092ED4: @ 0x08092ED4 push {lr} ldr r2, _08092EE8 @ =gUnk_0812283C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08092EE8: .4byte gUnk_0812283C thumb_func_start sub_08092EEC sub_08092EEC: @ 0x08092EEC push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] bl sub_080932D8 cmp r0, #1 beq _08092F2C cmp r0, #2 beq _08092F3A movs r0, #1 strb r0, [r4, #0xc] movs r1, #0 movs r2, #0x80 strh r2, [r4, #0x24] strb r0, [r4, #0x16] strb r1, [r4, #0xe] strb r1, [r4, #0xf] adds r1, r4, #0 adds r1, #0x7a movs r0, #0x20 strb r0, [r1] adds r0, r4, #0 adds r0, #0x7b strb r2, [r0] ldrb r0, [r4, #0xa] cmp r0, #0 bne _08092F48 ldr r0, _08092F28 @ =gUnk_080FD288 str r0, [r4, #0x48] b _08092F48 .align 2, 0 _08092F28: .4byte gUnk_080FD288 _08092F2C: movs r0, #4 strb r0, [r4, #0xc] ldrh r0, [r4, #0x2e] subs r0, #0x20 strh r0, [r4, #0x2e] movs r5, #2 b _08092F5E _08092F3A: movs r0, #4 strb r0, [r4, #0xc] ldrh r0, [r4, #0x2e] adds r0, #0x20 strh r0, [r4, #0x2e] movs r5, #3 b _08092F5E _08092F48: movs r5, #0 adds r1, r4, #0 adds r1, #0x86 ldrh r0, [r1] cmp r0, #0 beq _08092F5E bl sub_0807CBE4 cmp r0, #0 bne _08092F5E movs r5, #1 _08092F5E: adds r0, r4, #0 adds r1, r5, #0 bl sub_080931A4 pop {r4, r5, pc} thumb_func_start sub_08092F68 sub_08092F68: @ 0x08092F68 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 ldr r0, _08092FA4 @ =gUnk_03001160 movs r2, #0x2e ldrsh r1, [r0, r2] movs r2, #0x2e ldrsh r0, [r6, r2] subs r1, r1, r0 mov r8, r1 adds r1, r6, #0 adds r1, #0x86 ldrh r0, [r1] cmp r0, #0 beq _08092FA8 bl sub_0807CBE4 cmp r0, #0 bne _08092F92 b _080930E6 _08092F92: adds r0, r6, #0 adds r0, #0x7a ldrb r0, [r0] cmp r0, #0 beq _08092FA8 adds r0, r6, #0 bl sub_080932A8 b _080930E6 .align 2, 0 _08092FA4: .4byte gUnk_03001160 _08092FA8: adds r1, r6, #0 adds r1, #0x7b ldrb r2, [r1] movs r0, #0x3f ands r0, r2 adds r7, r1, #0 cmp r0, #0 bne _08092FD6 movs r0, #0xf movs r4, #0 orrs r0, r2 strb r0, [r7] adds r0, r6, #0 movs r1, #0 bl sub_080931A4 mov r0, r8 cmp r0, #0 bge _08092FD6 ldrb r0, [r7] movs r1, #0x40 orrs r0, r1 strb r0, [r7] _08092FD6: ldrb r1, [r7] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _08092FEA adds r5, r6, #0 adds r5, #0x78 ldrh r0, [r5] subs r0, #1 b _08092FF2 _08092FEA: adds r5, r6, #0 adds r5, #0x78 ldrh r0, [r5] adds r0, #1 _08092FF2: adds r4, r6, #0 adds r4, #0x38 ldrb r1, [r4] bl sub_080002B0 adds r1, r0, #0 ldr r0, _08093034 @ =0x00004031 cmp r1, r0 bhi _08093040 subs r0, #1 cmp r1, r0 blo _08093040 movs r0, #3 strb r0, [r6, #0xc] ldr r0, _08093038 @ =gUnk_03001160 ldrb r0, [r0, #0x14] lsls r0, r0, #2 strb r0, [r6, #0x15] movs r0, #0x80 strh r0, [r6, #0x24] movs r0, #0x40 strb r0, [r6, #0xe] adds r0, r6, #0 movs r1, #0x50 bl sub_0805E4E0 ldr r0, _0809303C @ =0x0000010F bl sub_08004488 adds r0, r6, #0 bl sub_08093248 b _080930E6 .align 2, 0 _08093034: .4byte 0x00004031 _08093038: .4byte gUnk_03001160 _0809303C: .4byte 0x0000010F _08093040: ldr r0, _0809307C @ =gUnk_03001160 ldrb r1, [r0, #0x14] movs r0, #2 ands r0, r1 cmp r0, #0 beq _080930E6 adds r0, r6, #0 bl sub_08078930 adds r3, r7, #0 ldrb r2, [r3] movs r0, #0x80 ands r0, r2 cmp r0, #0 beq _08093088 movs r1, #0x7f ands r1, r2 strb r1, [r3] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _0809309C ldr r0, _08093080 @ =0x0000402C ldrh r1, [r5] subs r1, #1 ldrb r2, [r4] bl sub_0800015E ldr r0, _08093084 @ =0x0000403D b _080930AA .align 2, 0 _0809307C: .4byte gUnk_03001160 _08093080: .4byte 0x0000402C _08093084: .4byte 0x0000403D _08093088: movs r0, #0x40 ands r0, r2 cmp r0, #0 beq _080930C0 mov r1, r8 cmp r1, #4 ble _080930E6 movs r0, #0x3f ands r0, r2 strb r0, [r3] _0809309C: ldr r0, _080930B8 @ =0x0000403D ldrh r1, [r5] subs r1, #1 ldrb r2, [r4] bl sub_0800015E ldr r0, _080930BC @ =0x0000402D _080930AA: ldrh r1, [r5] adds r1, #1 ldrb r2, [r4] bl sub_0800015E b _080930E6 .align 2, 0 _080930B8: .4byte 0x0000403D _080930BC: .4byte 0x0000402D _080930C0: mov r1, r8 rsbs r0, r1, #0 cmp r0, #4 ble _080930E6 movs r0, #0x40 orrs r0, r2 strb r0, [r7] ldr r0, _080930EC @ =0x0000402C ldrh r1, [r5] subs r1, #1 ldrb r2, [r4] bl sub_0800015E ldr r0, _080930F0 @ =0x0000403D ldrh r1, [r5] adds r1, #1 ldrb r2, [r4] bl sub_0800015E _080930E6: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _080930EC: .4byte 0x0000402C _080930F0: .4byte 0x0000403D thumb_func_start sub_080930F4 sub_080930F4: @ 0x080930F4 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r3, [r4, #0xe] cmp r3, #0 beq _08093104 bl sub_08093280 b _08093174 _08093104: ldr r5, _0809315C @ =gUnk_03003F80 ldrb r0, [r5, #5] cmp r0, #0x12 bne _08093168 ldr r6, _08093160 @ =gUnk_03001160 adds r0, r6, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08093174 ldrb r0, [r4, #0xf] adds r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #8 bls _08093174 movs r0, #0x10 strb r0, [r5, #0xc] adds r0, r5, #0 adds r0, #0x38 movs r2, #0x40 strb r2, [r0] ldr r0, [r5, #0x30] movs r1, #1 orrs r0, r1 str r0, [r5, #0x30] strh r3, [r6, #0x2c] strh r3, [r6, #0x30] ldrb r0, [r6, #0x14] movs r1, #4 eors r0, r1 lsls r0, r0, #2 strb r0, [r4, #0x15] strb r2, [r4, #0xe] ldr r0, _08093164 @ =0x0000010F bl sub_08004488 adds r0, r4, #0 bl sub_08093248 b _08093174 .align 2, 0 _0809315C: .4byte gUnk_03003F80 _08093160: .4byte gUnk_03001160 _08093164: .4byte 0x0000010F _08093168: ldrb r0, [r4, #0xd] cmp r0, #6 bne _08093174 movs r0, #1 strb r0, [r4, #0xc] strb r3, [r4, #0xf] _08093174: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08093178 sub_08093178: @ 0x08093178 push {r4, lr} adds r4, r0, #0 bl sub_0800445C adds r0, r4, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08093198 adds r0, r4, #0 bl sub_08093334 _08093198: adds r0, r4, #0 bl sub_08093364 pop {r4, pc} thumb_func_start nullsub_120 nullsub_120: @ 0x080931A0 bx lr .align 2, 0 thumb_func_start sub_080931A4 sub_080931A4: @ 0x080931A4 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r1, #0 movs r1, #0x2e ldrsh r2, [r0, r1] ldr r3, _080931F0 @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r2, r2, r1 asrs r2, r2, #4 movs r4, #0x3f ands r2, r4 movs r6, #0x32 ldrsh r1, [r0, r6] ldrh r3, [r3, #8] subs r1, r1, r3 asrs r1, r1, #4 ands r1, r4 lsls r1, r1, #6 orrs r2, r1 adds r1, r0, #0 adds r1, #0x78 strh r2, [r1] ldrh r1, [r1] subs r1, #0x40 mov r8, r1 adds r0, #0x38 ldrb r7, [r0] cmp r5, #1 beq _080931F4 cmp r5, #1 blo _0809320C cmp r5, #2 beq _080931FC cmp r5, #3 beq _08093204 b _0809320C .align 2, 0 _080931F0: .4byte gUnk_03000BF0 _080931F4: ldr r0, _080931F8 @ =gUnk_08122862 b _0809320E .align 2, 0 _080931F8: .4byte gUnk_08122862 _080931FC: ldr r0, _08093200 @ =gUnk_08122874 b _0809320E .align 2, 0 _08093200: .4byte gUnk_08122874 _08093204: ldr r0, _08093208 @ =gUnk_08122886 b _0809320E .align 2, 0 _08093208: .4byte gUnk_08122886 _0809320C: ldr r0, _08093230 @ =gUnk_08122850 _0809320E: movs r4, #0 movs r6, #0 adds r5, r0, #0 _08093214: mov r0, r8 adds r1, r0, r6 adds r1, r1, r4 subs r1, #1 ldrh r0, [r5] adds r2, r7, #0 bl sub_0800015E cmp r4, #2 beq _08093234 cmp r4, #5 beq _08093238 b _0809323A .align 2, 0 _08093230: .4byte gUnk_08122850 _08093234: movs r6, #0x3d b _0809323A _08093238: movs r6, #0x7a _0809323A: adds r5, #2 adds r4, #1 cmp r4, #8 bls _08093214 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08093248 sub_08093248: @ 0x08093248 push {r4, r5, r6, r7, lr} adds r1, r0, #0 adds r1, #0x78 ldrh r1, [r1] adds r7, r1, #0 subs r7, #0x40 adds r0, #0x38 ldrb r6, [r0] movs r4, #0 movs r5, #0 _0809325C: adds r0, r7, r5 adds r0, r0, r4 subs r0, #1 adds r1, r6, #0 bl sub_0807BA8C cmp r4, #2 beq _08093272 cmp r4, #5 beq _08093276 b _08093278 _08093272: movs r5, #0x3d b _08093278 _08093276: movs r5, #0x7a _08093278: adds r4, #1 cmp r4, #8 bls _0809325C pop {r4, r5, r6, r7, pc} thumb_func_start sub_08093280 sub_08093280: @ 0x08093280 push {r4, lr} adds r4, r0, #0 bl sub_0800445C adds r0, r4, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080932A0 adds r0, r4, #0 bl sub_08093334 _080932A0: adds r0, r4, #0 bl sub_08093364 pop {r4, pc} thumb_func_start sub_080932A8 sub_080932A8: @ 0x080932A8 push {lr} adds r1, r0, #0 adds r2, r1, #0 adds r2, #0x7a ldrb r0, [r2] subs r0, #1 strb r0, [r2] movs r2, #3 ands r2, r0 cmp r2, #1 beq _080932C8 cmp r2, #3 beq _080932D0 adds r1, #0x62 movs r0, #0 b _080932D4 _080932C8: adds r0, r1, #0 adds r0, #0x62 strb r2, [r0] b _080932D6 _080932D0: adds r1, #0x62 movs r0, #0xff _080932D4: strb r0, [r1] _080932D6: pop {pc} thumb_func_start sub_080932D8 sub_080932D8: @ 0x080932D8 push {r4, lr} lsls r0, r0, #3 ldr r1, _080932F0 @ =gUnk_08122898 adds r4, r0, r1 ldr r0, [r4] ldrh r1, [r4, #4] bl sub_0807CB10 cmp r0, #0 beq _080932F4 movs r0, #1 b _08093306 .align 2, 0 _080932F0: .4byte gUnk_08122898 _080932F4: ldr r0, [r4] ldrh r1, [r4, #6] bl sub_0807CB10 cmp r0, #0 bne _08093304 movs r0, #0 b _08093306 _08093304: movs r0, #2 _08093306: pop {r4, pc} thumb_func_start sub_08093308 sub_08093308: @ 0x08093308 push {lr} adds r2, r1, #0 lsls r0, r0, #3 ldr r1, _08093320 @ =gUnk_08122898 adds r1, r0, r1 cmp r2, #1 bne _08093324 ldr r0, [r1] ldrh r1, [r1, #4] bl sub_0807CC9C b _08093330 .align 2, 0 _08093320: .4byte gUnk_08122898 _08093324: cmp r2, #2 bne _08093330 ldr r0, [r1] ldrh r1, [r1, #6] bl sub_0807CC9C _08093330: pop {pc} .align 2, 0 thumb_func_start sub_08093334 sub_08093334: @ 0x08093334 push {r4, r5, lr} adds r4, r0, #0 movs r0, #4 strb r0, [r4, #0xc] ldrb r1, [r4, #0x15] movs r0, #0x10 ands r0, r1 movs r5, #2 cmp r0, #0 beq _0809334A movs r5, #1 _0809334A: adds r1, r5, #1 adds r0, r4, #0 bl sub_080931A4 ldrb r0, [r4, #0xa] adds r1, r5, #0 bl sub_08093308 movs r0, #0x72 bl sub_08004488 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08093364 sub_08093364: @ 0x08093364 push {r4, r5, lr} adds r5, r0, #0 ldrb r1, [r5, #0xe] movs r0, #3 ands r0, r1 cmp r0, #0 bne _080933BC movs r0, #0xf movs r1, #0x11 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _080933BC str r5, [r4, #0x50] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 ldrb r1, [r5, #0x15] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0809339C ldrh r0, [r4, #0x2e] adds r0, #0x12 b _080933A0 _0809339C: ldrh r0, [r4, #0x2e] subs r0, #0x12 _080933A0: strh r0, [r4, #0x2e] movs r0, #0x32 ldrsh r2, [r4, r0] ldrb r1, [r5, #0xe] movs r0, #8 ands r0, r1 cmp r0, #0 beq _080933B6 adds r0, r2, #0 adds r0, #8 b _080933BA _080933B6: adds r0, r2, #0 subs r0, #8 _080933BA: strh r0, [r4, #0x32] _080933BC: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080933C0 sub_080933C0: @ 0x080933C0 push {lr} ldr r2, _080933D4 @ =gUnk_081228B0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080933D4: .4byte gUnk_081228B0 thumb_func_start sub_080933D8 sub_080933D8: @ 0x080933D8 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xa] strb r0, [r4, #0x1e] adds r0, r4, #0 bl sub_08016A04 ldr r0, _080933F8 @ =gUnk_081228A8 str r0, [r4, #0x48] adds r0, r4, #0 bl sub_080787B4 pop {r4, pc} .align 2, 0 _080933F8: .4byte gUnk_081228A8 thumb_func_start sub_080933FC sub_080933FC: @ 0x080933FC push {lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08093420 movs r0, #0 strb r0, [r1] ldr r1, _08093424 @ =gUnk_081228B8 ldrb r0, [r2, #0xa] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] adds r1, r2, #0 bl sub_08056398 _08093420: pop {pc} .align 2, 0 _08093424: .4byte gUnk_081228B8 thumb_func_start sub_08093428 sub_08093428: @ 0x08093428 push {r4, lr} adds r4, r0, #0 ldr r0, _0809345C @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 lsls r1, r1, #0x11 ands r0, r1 cmp r0, #0 bne _0809344A ldrb r0, [r4, #0xa] cmp r0, #0 bne _08093446 ldr r1, _08093460 @ =gUnk_03000BF0 ldr r0, _08093464 @ =gUnk_03001160 str r0, [r1, #0x30] _08093446: bl sub_0805E780 _0809344A: ldr r0, _08093468 @ =gUnk_081228C8 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _0809345C: .4byte gUnk_03003F80 _08093460: .4byte gUnk_03000BF0 _08093464: .4byte gUnk_03001160 _08093468: .4byte gUnk_081228C8 thumb_func_start sub_0809346C sub_0809346C: @ 0x0809346C push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0xff strb r0, [r4, #0x1f] ldr r0, _080934C0 @ =gUnk_03001160 ldrb r1, [r0, #0x1a] lsls r1, r1, #0x1c lsrs r1, r1, #0x1c ldrb r2, [r4, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x1a] ldrb r0, [r4, #0xa] cmp r0, #0 bne _080934B8 ldr r0, _080934C4 @ =gUnk_03000BF0 str r4, [r0, #0x30] ldrb r0, [r4, #0x19] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x19] adds r1, r4, #0 adds r1, #0x6e movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r1] adds r1, #4 strh r0, [r1] adds r0, r4, #0 movs r1, #0x61 movs r2, #1 movs r3, #0 bl sub_080A2988 _080934B8: adds r0, r4, #0 bl sub_080934C8 pop {r4, pc} .align 2, 0 _080934C0: .4byte gUnk_03001160 _080934C4: .4byte gUnk_03000BF0 thumb_func_start sub_080934C8 sub_080934C8: @ 0x080934C8 push {lr} ldr r2, _080934DC @ =gUnk_081228D0 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080934DC: .4byte gUnk_081228D0 thumb_func_start sub_080934E0 sub_080934E0: @ 0x080934E0 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r4, r5, #0 adds r4, #0x6e ldrh r1, [r4] movs r2, #0 ldrsh r0, [r4, r2] cmp r0, #0 bge _080934F6 rsbs r0, r1, #0 strh r0, [r4] _080934F6: ldr r0, _08093518 @ =gUnk_03001160 ldrb r0, [r0, #0xd] cmp r0, #2 beq _0809351C cmp r0, #2 bgt _080935B0 cmp r0, #1 bne _080935B0 adds r1, r5, #0 adds r1, #0x72 ldrh r0, [r1] subs r0, #4 strh r0, [r1] adds r6, r4, #0 adds r7, r1, #0 b _080935BE .align 2, 0 _08093518: .4byte gUnk_03001160 _0809351C: ldrb r2, [r5, #0xf] adds r0, r2, #0 cmp r0, #0 bne _08093560 adds r0, r5, #0 adds r0, #0x72 ldrh r1, [r0] adds r7, r0, #0 cmp r1, #0x80 bls _08093538 adds r0, r1, #0 subs r0, #0x20 strh r0, [r7] b _08093544 _08093538: adds r0, r2, #1 strb r0, [r5, #0xf] movs r0, #0x92 lsls r0, r0, #1 bl sub_080A3268 _08093544: adds r0, r5, #0 adds r0, #0x6e ldrh r2, [r0] ldr r1, _0809355C @ =0x0000011F adds r6, r0, #0 cmp r2, r1 bhi _080935BE adds r0, r2, #0 adds r0, #0x40 strh r0, [r6] b _080935BE .align 2, 0 _0809355C: .4byte 0x0000011F _08093560: cmp r0, #0xff beq _080935A6 adds r0, r5, #0 adds r0, #0x72 ldrh r1, [r0] adds r7, r0, #0 cmp r1, #0xff bhi _08093576 adds r0, r1, #0 adds r0, #0x20 b _0809357A _08093576: movs r0, #0x80 lsls r0, r0, #1 _0809357A: strh r0, [r7] adds r0, r5, #0 adds r0, #0x6e ldrh r1, [r0] movs r2, #0x80 lsls r2, r2, #1 adds r6, r0, #0 cmp r1, r2 bls _08093594 adds r0, r1, #0 subs r0, #0x20 strh r0, [r6] b _08093596 _08093594: strh r2, [r6] _08093596: ldrh r1, [r6] movs r0, #0x80 lsls r0, r0, #1 cmp r1, r0 bne _080935BE movs r0, #0xff strb r0, [r5, #0xf] b _080935BE _080935A6: adds r0, r5, #0 bl sub_080936C8 adds r6, r4, #0 b _080935BA _080935B0: adds r0, r5, #0 bl sub_080936C8 adds r6, r5, #0 adds r6, #0x6e _080935BA: adds r7, r5, #0 adds r7, #0x72 _080935BE: ldr r0, _080935E4 @ =gUnk_03001160 ldrb r1, [r0, #0x14] movs r0, #2 ands r0, r1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 beq _080935E8 movs r0, #1 strb r0, [r5, #0x1e] lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #2 bne _080935EA ldrh r0, [r6] rsbs r0, r0, #0 strh r0, [r6] b _080935EA .align 2, 0 _080935E4: .4byte gUnk_03001160 _080935E8: strb r0, [r5, #0x1e] _080935EA: ldrb r0, [r5, #0x1e] ldrb r1, [r5, #0x1f] cmp r0, r1 beq _080935FE strb r0, [r5, #0x1f] ldrb r1, [r5, #0x1e] ldrh r2, [r5, #0x12] adds r0, r5, #0 bl sub_080042D0 _080935FE: ldr r4, _0809364C @ =gUnk_03001160 adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA24 ldrb r2, [r4, #0x1b] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r3, [r5, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r3 orrs r0, r2 strb r0, [r5, #0x1b] ldrb r0, [r4, #0x19] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r5, #0x19] ands r1, r2 orrs r1, r0 strb r1, [r5, #0x19] ldrh r1, [r7] adds r0, r5, #0 movs r2, #0xa movs r3, #2 bl sub_0806FCF4 ldrh r1, [r6] ldrh r2, [r7] adds r0, r5, #0 movs r3, #0 bl sub_0805EC9C adds r0, r4, #0 movs r1, #1 adds r2, r5, #0 bl sub_0806FEBC pop {r4, r5, r6, r7, pc} .align 2, 0 _0809364C: .4byte gUnk_03001160 thumb_func_start sub_08093650 sub_08093650: @ 0x08093650 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _080936C4 @ =gUnk_03001160 ldrb r0, [r5, #0x15] lsrs r1, r0, #1 adds r0, r0, r1 asrs r0, r0, #2 adds r0, #2 strb r0, [r4, #0x1e] ldrb r1, [r4, #0x1f] cmp r0, r1 beq _08093674 strb r0, [r4, #0x1f] ldrb r1, [r4, #0x1e] ldrh r2, [r4, #0x12] adds r0, r4, #0 bl sub_080042D0 _08093674: adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 ldrb r2, [r5, #0x1b] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r3, [r4, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r3 orrs r0, r2 strb r0, [r4, #0x1b] ldrb r0, [r5, #0x19] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r4, #0x19] ands r1, r2 orrs r1, r0 strb r1, [r4, #0x19] ldr r0, [r4, #0x50] adds r0, #0x72 ldrh r1, [r0] adds r0, r4, #0 movs r2, #0x18 movs r3, #0 bl sub_0806FCF4 adds r1, r4, #0 adds r1, #0x63 ldrb r0, [r1] rsbs r0, r0, #0 strb r0, [r1] adds r0, r5, #0 movs r1, #0 adds r2, r4, #0 bl sub_0806FEBC pop {r4, r5, pc} .align 2, 0 _080936C4: .4byte gUnk_03001160 thumb_func_start sub_080936C8 sub_080936C8: @ 0x080936C8 push {r4, r5, lr} adds r4, r0, #0 ldr r0, _08093714 @ =gUnk_03001160 ldr r0, [r0, #0x7c] lsrs r2, r0, #2 movs r3, #0x9c lsls r3, r3, #1 adds r1, r3, #0 subs r1, r1, r2 adds r5, r4, #0 adds r5, #0x76 strh r1, [r5] movs r1, #0x3c bl __divsi3 movs r1, #8 subs r1, r1, r0 adds r0, r4, #0 adds r0, #0x74 strh r1, [r0] ldrb r3, [r4, #0xe] cmp r3, #0 bne _0809372C adds r1, r4, #0 adds r1, #0x6e ldrh r2, [r1] ldrh r0, [r5] cmp r0, r2 bhs _08093718 adds r0, r2, #0 subs r0, #8 strh r0, [r1] adds r1, #4 ldrh r0, [r1] adds r0, #8 strh r0, [r1] b _0809375C .align 2, 0 _08093714: .4byte gUnk_03001160 _08093718: adds r0, r3, #1 strb r0, [r4, #0xe] ldrh r0, [r5] strh r0, [r1] ldrh r0, [r5] adds r0, #0x30 adds r1, r4, #0 adds r1, #0x72 strh r0, [r1] b _0809375C _0809372C: ldrh r0, [r5] adds r0, #0x30 adds r1, r4, #0 adds r1, #0x6e ldrh r2, [r1] cmp r0, r2 ble _0809374A adds r0, r2, #0 adds r0, #8 strh r0, [r1] adds r1, #4 ldrh r0, [r1] subs r0, #8 strh r0, [r1] b _0809375C _0809374A: movs r0, #0 strb r0, [r4, #0xe] ldrh r0, [r5] adds r0, #0x30 strh r0, [r1] ldrh r1, [r5] adds r0, r4, #0 adds r0, #0x72 strh r1, [r0] _0809375C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08093760 sub_08093760: @ 0x08093760 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xa] cmp r0, #2 beq _08093794 cmp r0, #2 bgt _08093778 cmp r0, #0 beq _08093784 cmp r0, #1 beq _0809378C b _080937BC _08093778: cmp r0, #3 beq _080937AC cmp r0, #0x41 bgt _080937BC cmp r0, #0x40 blt _080937BC _08093784: ldr r0, _08093788 @ =gUnk_081228D8 b _08093796 .align 2, 0 _08093788: .4byte gUnk_081228D8 _0809378C: ldr r0, _08093790 @ =gUnk_081228E0 b _08093796 .align 2, 0 _08093790: .4byte gUnk_081228E0 _08093794: ldr r0, _080937A8 @ =gUnk_081228E8 _08093796: ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 b _080937BC .align 2, 0 _080937A8: .4byte gUnk_081228E8 _080937AC: ldr r0, _080937C0 @ =gUnk_081228F0 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 _080937BC: pop {pc} .align 2, 0 _080937C0: .4byte gUnk_081228F0 thumb_func_start sub_080937C4 sub_080937C4: @ 0x080937C4 push {r4, r5, r6, lr} adds r4, r0, #0 movs r5, #1 strb r5, [r4, #0xc] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _08093808 @ =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, #0x76 strh r1, [r0] ldrb r0, [r4, #0xa] cmp r0, #0x41 beq _0809386A cmp r0, #0x41 bgt _0809387A cmp r0, #0 beq _0809380C cmp r0, #0x40 beq _08093840 b _0809387A .align 2, 0 _08093808: .4byte gUnk_03000BF0 _0809380C: strb r5, [r4, #0x1e] ldrb r1, [r4, #0x19] movs r0, #0x3f ands r0, r1 movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x19] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #5 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 adds r0, #0x78 strh r5, [r0] adds r1, r4, #0 adds r1, #0x7a movs r0, #0x3c strh r0, [r1] movs r0, #0x62 movs r1, #0x40 b _08093854 _08093840: movs r0, #2 strb r0, [r4, #0x1e] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] movs r0, #0x62 movs r1, #0x41 _08093854: movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _0809387A str r4, [r1, #0x50] adds r0, r4, #0 bl sub_0806FA24 b _0809387A _0809386A: movs r0, #0 strb r0, [r4, #0x1e] ldrb r1, [r4, #0x1b] movs r0, #0x3f ands r0, r1 movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x1b] _0809387A: adds r0, r4, #0 bl sub_08093A1C pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08093884 sub_08093884: @ 0x08093884 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xa] cmp r0, #0 bne _080938B8 ldr r0, _080938A8 @ =gUnk_03001160 movs r3, #0x32 ldrsh r1, [r0, r3] movs r3, #0x32 ldrsh r0, [r2, r3] adds r0, #0x20 cmp r1, r0 bge _080938AC ldrb r0, [r2, #0x19] movs r1, #0x3f ands r1, r0 movs r0, #0x40 b _080938B4 .align 2, 0 _080938A8: .4byte gUnk_03001160 _080938AC: ldrb r0, [r2, #0x19] movs r1, #0x3f ands r1, r0 movs r0, #0x80 _080938B4: orrs r1, r0 strb r1, [r2, #0x19] _080938B8: adds r0, r2, #0 bl sub_08093C70 pop {pc} thumb_func_start sub_080938C0 sub_080938C0: @ 0x080938C0 push {r4, r5, lr} movs r1, #1 strb r1, [r0, #0xc] ldrb r2, [r0, #0xb] ands r1, r2 adds r1, #3 strb r1, [r0, #0x1e] adds r3, r0, #0 adds r3, #0x29 ldrb r1, [r3] movs r2, #7 orrs r1, r2 strb r1, [r3] movs r1, #0x2e ldrsh r2, [r0, r1] ldr r3, _08093908 @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r2, r2, r1 asrs r2, r2, #4 movs r4, #0x3f ands r2, r4 movs r5, #0x32 ldrsh r1, [r0, r5] ldrh r3, [r3, #8] subs r1, r1, r3 asrs r1, r1, #4 ands r1, r4 lsls r1, r1, #6 orrs r2, r1 adds r1, r0, #0 adds r1, #0x76 strh r2, [r1] bl sub_08093A1C pop {r4, r5, pc} .align 2, 0 _08093908: .4byte gUnk_03000BF0 thumb_func_start nullsub_524 nullsub_524: @ 0x0809390C bx lr .align 2, 0 thumb_func_start sub_08093910 sub_08093910: @ 0x08093910 push {r4, r5, r6, lr} adds r5, r0, #0 movs r3, #1 strb r3, [r5, #0xc] ldrb r1, [r5, #0xb] adds r0, r3, #0 ands r0, r1 adds r0, #5 strb r0, [r5, #0x1e] ldrb r0, [r5, #0x19] movs r1, #0xc0 orrs r0, r1 strb r0, [r5, #0x19] adds r2, r5, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] movs r0, #0x2e ldrsh r1, [r5, r0] ldr r2, _0809397C @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r4, #0x3f ands r1, r4 movs r6, #0x32 ldrsh r0, [r5, r6] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r4 lsls r0, r0, #6 orrs r1, r0 adds r0, r5, #0 adds r0, #0x76 strh r1, [r0] ldrb r0, [r5, #0xb] ands r3, r0 cmp r3, #0 beq _0809396C adds r1, r5, #0 adds r1, #0x62 movs r0, #8 strb r0, [r1] _0809396C: adds r0, r5, #0 bl sub_08093984 adds r0, r5, #0 movs r1, #0x7b bl sub_0801D2B4 pop {r4, r5, r6, pc} .align 2, 0 _0809397C: .4byte gUnk_03000BF0 thumb_func_start nullsub_525 nullsub_525: @ 0x08093980 bx lr .align 2, 0 thumb_func_start sub_08093984 sub_08093984: @ 0x08093984 push {r4, r5, r6, lr} adds r1, r0, #0 ldrb r0, [r1, #0xb] ldr r2, _080939B4 @ =gUnk_0812291E cmp r0, #0 beq _08093992 ldr r2, _080939B8 @ =gUnk_081228F8 _08093992: movs r5, #0 adds r6, r1, #0 adds r6, #0x76 adds r4, r2, #0 _0809399A: movs r0, #0 ldrsh r1, [r4, r0] ldrh r0, [r6] adds r1, r1, r0 ldr r0, _080939BC @ =0x00004074 movs r2, #1 bl sub_0800015E adds r4, #2 adds r5, #1 cmp r5, #0x12 bls _0809399A pop {r4, r5, r6, pc} .align 2, 0 _080939B4: .4byte gUnk_0812291E _080939B8: .4byte gUnk_081228F8 _080939BC: .4byte 0x00004074 thumb_func_start sub_080939C0 sub_080939C0: @ 0x080939C0 push {r4, r5, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0xb] movs r0, #3 ands r0, r1 adds r0, #7 strb r0, [r4, #0x1e] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _08093A14 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] 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, #0x76 strh r1, [r0] adds r0, r4, #0 bl sub_08093A1C adds r0, r4, #0 movs r1, #0x7a bl sub_0801D2B4 pop {r4, r5, pc} .align 2, 0 _08093A14: .4byte gUnk_03000BF0 thumb_func_start nullsub_526 nullsub_526: @ 0x08093A18 bx lr .align 2, 0 thumb_func_start sub_08093A1C sub_08093A1C: @ 0x08093A1C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r2, r0, #0 ldrb r1, [r2, #0xa] cmp r1, #1 beq _08093B0C cmp r1, #1 bgt _08093A34 cmp r1, #0 beq _08093A3C b _08093C64 _08093A34: cmp r1, #3 bne _08093A3A b _08093C54 _08093A3A: b _08093C64 _08093A3C: ldr r0, _08093AF0 @ =0x00004024 adds r7, r2, #0 adds r7, #0x76 ldrh r1, [r7] adds r1, #0x3c adds r4, r2, #0 adds r4, #0x38 ldrb r2, [r4] bl sub_0800015E ldr r5, _08093AF4 @ =0x00004022 ldrh r1, [r7] adds r1, #0x3d ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldrh r1, [r7] adds r1, #0x3e ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldr r0, _08093AF8 @ =0x00004029 mov r8, r0 ldrh r1, [r7] adds r1, #0x7c ldrb r2, [r4] bl sub_0800015E ldr r6, _08093AFC @ =0x00004026 ldrh r1, [r7] adds r1, #0x7d ldrb r2, [r4] adds r0, r6, #0 bl sub_0800015E ldrh r1, [r7] adds r1, #0x7e ldrb r2, [r4] adds r0, r6, #0 bl sub_0800015E adds r5, #0x1b ldrh r1, [r7] adds r1, #0x40 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldrh r1, [r7] adds r1, #0x80 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldr r0, _08093B00 @ =0x00004027 ldrh r1, [r7] adds r1, #0x41 ldrb r2, [r4] bl sub_0800015E ldr r0, _08093B04 @ =0x00004023 ldrh r1, [r7] adds r1, #0x42 ldrb r2, [r4] bl sub_0800015E ldr r0, _08093B08 @ =0x0000406D ldrh r1, [r7] adds r1, #0x43 ldrb r2, [r4] bl sub_0800015E ldrh r1, [r7] adds r1, #0x81 ldrb r2, [r4] mov r0, r8 bl sub_0800015E ldrh r1, [r7] adds r1, #0x82 ldrb r2, [r4] adds r0, r6, #0 bl sub_0800015E ldrh r1, [r7] adds r1, #0x83 b _08093B94 .align 2, 0 _08093AF0: .4byte 0x00004024 _08093AF4: .4byte 0x00004022 _08093AF8: .4byte 0x00004029 _08093AFC: .4byte 0x00004026 _08093B00: .4byte 0x00004027 _08093B04: .4byte 0x00004023 _08093B08: .4byte 0x0000406D _08093B0C: ldrb r0, [r2, #0xb] ands r1, r0 cmp r1, #0 beq _08093BB4 ldr r6, _08093BA0 @ =0x0000406D movs r0, #0x76 adds r0, r0, r2 mov r8, r0 ldrh r1, [r0] subs r1, #0x81 adds r4, r2, #0 adds r4, #0x38 ldrb r2, [r4] adds r0, r6, #0 bl sub_0800015E ldr r5, _08093BA4 @ =0x00004022 mov r2, r8 ldrh r1, [r2] subs r1, #0x41 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldr r0, _08093BA8 @ =0x00004029 mov r2, r8 ldrh r1, [r2] subs r1, #2 ldrb r2, [r4] bl sub_0800015E ldr r0, _08093BAC @ =0x00004026 mov r2, r8 ldrh r1, [r2] subs r1, #1 ldrb r2, [r4] bl sub_0800015E mov r0, r8 ldrh r1, [r0] ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E mov r2, r8 ldrh r1, [r2] adds r1, #1 ldrb r2, [r4] adds r0, r6, #0 bl sub_0800015E ldr r0, _08093BB0 @ =0x0000406E mov r2, r8 ldrh r1, [r2] adds r1, #0x40 ldrb r2, [r4] bl sub_0800015E mov r0, r8 ldrh r1, [r0] adds r1, #0x41 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E mov r2, r8 ldrh r1, [r2] adds r1, #0x42 _08093B94: ldrb r2, [r4] adds r0, r6, #0 bl sub_0800015E b _08093C64 .align 2, 0 _08093BA0: .4byte 0x0000406D _08093BA4: .4byte 0x00004022 _08093BA8: .4byte 0x00004029 _08093BAC: .4byte 0x00004026 _08093BB0: .4byte 0x0000406E _08093BB4: ldr r6, _08093C40 @ =0x0000406C movs r0, #0x76 adds r0, r0, r2 mov r8, r0 ldrh r1, [r0] subs r1, #0x7f adds r4, r2, #0 adds r4, #0x38 ldrb r2, [r4] adds r0, r6, #0 bl sub_0800015E ldr r5, _08093C44 @ =0x00004022 mov r2, r8 ldrh r1, [r2] subs r1, #0x3f ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E mov r0, r8 ldrh r1, [r0] subs r1, #1 ldrb r2, [r4] adds r0, r6, #0 bl sub_0800015E mov r2, r8 ldrh r1, [r2] ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldr r0, _08093C48 @ =0x00004026 mov r2, r8 ldrh r1, [r2] adds r1, #1 ldrb r2, [r4] bl sub_0800015E ldr r0, _08093C4C @ =0x0000402A mov r2, r8 ldrh r1, [r2] adds r1, #2 ldrb r2, [r4] bl sub_0800015E mov r0, r8 ldrh r1, [r0] adds r1, #0x3e ldrb r2, [r4] adds r0, r6, #0 bl sub_0800015E mov r2, r8 ldrh r1, [r2] adds r1, #0x3f ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldr r0, _08093C50 @ =0x0000406F mov r2, r8 ldrh r1, [r2] adds r1, #0x40 ldrb r2, [r4] bl sub_0800015E b _08093C64 .align 2, 0 _08093C40: .4byte 0x0000406C _08093C44: .4byte 0x00004022 _08093C48: .4byte 0x00004026 _08093C4C: .4byte 0x0000402A _08093C50: .4byte 0x0000406F _08093C54: ldr r0, _08093C6C @ =0x00004022 adds r1, r2, #0 adds r1, #0x76 ldrh r1, [r1] adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E _08093C64: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08093C6C: .4byte 0x00004022 thumb_func_start sub_08093C70 sub_08093C70: @ 0x08093C70 push {r4, r5, r6, lr} adds r2, r0, #0 adds r3, r2, #0 adds r3, #0x78 ldrh r0, [r3] cmp r0, #0 beq _08093CE8 ldr r0, _08093CE0 @ =gUnk_03003F80 ldrb r0, [r0, #5] cmp r0, #0 beq _08093D5C movs r0, #0 strh r0, [r3] ldr r4, _08093CE4 @ =0x00004022 adds r6, r2, #0 adds r6, #0x76 ldrh r1, [r6] adds r1, #0x3f adds r5, r2, #0 adds r5, #0x38 ldrb r2, [r5] adds r0, r4, #0 bl sub_0800015E ldrh r1, [r6] adds r1, #0x40 ldrb r2, [r5] adds r0, r4, #0 bl sub_0800015E ldrh r1, [r6] adds r1, #0x41 ldrb r2, [r5] adds r0, r4, #0 bl sub_0800015E adds r4, #4 ldrh r1, [r6] adds r1, #0x7f ldrb r2, [r5] adds r0, r4, #0 bl sub_0800015E ldrh r1, [r6] adds r1, #0x80 ldrb r2, [r5] adds r0, r4, #0 bl sub_0800015E ldrh r1, [r6] adds r1, #0x81 ldrb r2, [r5] adds r0, r4, #0 bl sub_0800015E b _08093D5C .align 2, 0 _08093CE0: .4byte gUnk_03003F80 _08093CE4: .4byte 0x00004022 _08093CE8: ldr r0, _08093D60 @ =gUnk_03003F80 ldrb r0, [r0, #5] cmp r0, #0 bne _08093D5C adds r1, r2, #0 adds r1, #0x7a ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08093D5C ldrh r0, [r3] adds r0, #1 strh r0, [r3] movs r0, #0x3c strh r0, [r1] ldr r5, _08093D64 @ =0x0000403D adds r6, r2, #0 adds r6, #0x76 ldrh r1, [r6] adds r1, #0x3f adds r4, r2, #0 adds r4, #0x38 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldrh r1, [r6] adds r1, #0x40 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldr r0, _08093D68 @ =0x00004027 ldrh r1, [r6] adds r1, #0x41 ldrb r2, [r4] bl sub_0800015E ldrh r1, [r6] adds r1, #0x7f ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldrh r1, [r6] adds r1, #0x80 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldr r0, _08093D6C @ =0x00004029 ldrh r1, [r6] adds r1, #0x81 ldrb r2, [r4] bl sub_0800015E _08093D5C: pop {r4, r5, r6, pc} .align 2, 0 _08093D60: .4byte gUnk_03003F80 _08093D64: .4byte 0x0000403D _08093D68: .4byte 0x00004027 _08093D6C: .4byte 0x00004029 thumb_func_start sub_08093D70 sub_08093D70: @ 0x08093D70 push {lr} ldr r2, _08093D84 @ =gUnk_08122944 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08093D84: .4byte gUnk_08122944 thumb_func_start sub_08093D88 sub_08093D88: @ 0x08093D88 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldrh r0, [r4, #0x36] subs r0, #8 strh r0, [r4, #0x36] movs r0, #0xa8 lsls r0, r0, #0xa str r0, [r4, #0x20] movs r0, #0x20 strb r0, [r4, #0xe] ldrb r0, [r4, #0xa] cmp r0, #0 beq _08093DAC cmp r0, #1 beq _08093DC4 b _08093DDE _08093DAC: adds r0, r4, #0 movs r1, #4 bl sub_0805457C cmp r0, #0 bne _08093DBC movs r0, #2 strb r0, [r4, #0xc] _08093DBC: ldr r1, [r4, #0x54] ldr r0, [r4, #0x20] str r0, [r1, #0x20] b _08093DDE _08093DC4: movs r0, #0 movs r1, #0x5f movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _08093DDE movs r0, #5 strb r0, [r1, #0xe] adds r0, r4, #0 bl sub_08093E10 _08093DDE: pop {r4, pc} thumb_func_start sub_08093DE0 sub_08093DE0: @ 0x08093DE0 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 _08093DF4 movs r0, #2 strb r0, [r2, #0xc] _08093DF4: ldrb r1, [r2, #0xe] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08093E06 ldr r1, [r2, #0x54] ldrh r0, [r1, #0x32] adds r0, #1 strh r0, [r1, #0x32] _08093E06: pop {pc} thumb_func_start sub_08093E08 sub_08093E08: @ 0x08093E08 push {lr} bl sub_0805E7BC pop {pc} thumb_func_start sub_08093E10 sub_08093E10: @ 0x08093E10 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 bl sub_0806FA24 str r4, [r5, #0x50] str r5, [r4, #0x54] ldr r0, [r4, #0x20] str r0, [r5, #0x20] pop {r4, r5, pc} thumb_func_start sub_08093E24 sub_08093E24: @ 0x08093E24 push {lr} ldr r2, _08093E38 @ =gUnk_0812295C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08093E38: .4byte gUnk_0812295C thumb_func_start sub_08093E3C sub_08093E3C: @ 0x08093E3C push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #0 bne _08093E6A adds r0, r4, #0 bl sub_08016A30 _08093E6A: ldrb r1, [r4, #0xa] adds r0, r4, #0 bl sub_08004260 ldrb r0, [r4, #0xa] lsls r0, r0, #2 ldr r1, _08093EA8 @ =gUnk_08122950 adds r2, r0, r1 ldrh r0, [r2] cmp r0, #0 beq _08093E90 ldrb r1, [r4, #0xb] movs r0, #0x40 ands r0, r1 cmp r0, #0 bne _08093E90 ldrh r0, [r2] bl sub_08004488 _08093E90: ldrb r1, [r4, #0xb] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _08093EA6 ldrb r0, [r4, #0x19] movs r1, #0x3f ands r1, r0 movs r0, #0x40 orrs r1, r0 strb r1, [r4, #0x19] _08093EA6: pop {r4, pc} .align 2, 0 _08093EA8: .4byte gUnk_08122950 thumb_func_start sub_08093EAC sub_08093EAC: @ 0x08093EAC push {lr} ldr r3, _08093EC8 @ =gUnk_08122964 ldr r2, _08093ECC @ =gUnk_08122950 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldrb r1, [r1, #2] lsrs r1, r1, #4 lsls r1, r1, #2 adds r1, r1, r3 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08093EC8: .4byte gUnk_08122964 _08093ECC: .4byte gUnk_08122950 thumb_func_start sub_08093ED0 sub_08093ED0: @ 0x08093ED0 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08093EEC adds r0, r4, #0 bl sub_0805E7BC _08093EEC: pop {r4, pc} .align 2, 0 thumb_func_start sub_08093EF0 sub_08093EF0: @ 0x08093EF0 push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r4, [r5, #0xa] cmp r4, #1 beq _08093F40 cmp r4, #1 bgt _08093F04 cmp r4, #0 beq _08093F0A b _08093FB0 _08093F04: cmp r4, #2 beq _08093F98 b _08093FB0 _08093F0A: ldrb r0, [r5, #0xd] cmp r0, #0 bne _08093FB0 adds r0, r5, #0 bl sub_08004274 adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08093FB0 movs r0, #0x64 movs r1, #1 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _08093F8E ldr r0, [r5, #0x50] str r0, [r1, #0x50] adds r0, r5, #0 bl sub_0806FA24 b _08093F8E _08093F40: adds r0, r5, #0 bl sub_08004274 adds r1, r5, #0 adds r1, #0x5a ldrb r0, [r1] ands r4, r0 adds r6, r1, #0 cmp r4, #0 beq _08093F72 movs r0, #0 strb r0, [r6] movs r0, #0x64 movs r1, #2 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _08093F72 ldr r0, [r5, #0x50] str r0, [r1, #0x50] adds r0, r5, #0 bl sub_0806FA24 _08093F72: ldrb r1, [r6] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08093FB0 ldr r1, [r5, #0x50] ldr r0, _08093F94 @ =gUnk_03001160 cmp r1, r0 bne _08093F8E movs r0, #0x7a bl sub_080A3268 bl sub_08079D84 _08093F8E: bl sub_0805E780 b _08093FB0 .align 2, 0 _08093F94: .4byte gUnk_03001160 _08093F98: adds r0, r5, #0 bl sub_08004274 adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08093FB0 bl sub_0805E780 _08093FB0: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08093FB4 sub_08093FB4: @ 0x08093FB4 push {lr} ldr r2, _08093FC8 @ =gUnk_081229B4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08093FC8: .4byte gUnk_081229B4 thumb_func_start sub_08093FCC sub_08093FCC: @ 0x08093FCC push {lr} movs r1, #1 strb r1, [r0, #0xc] adds r2, r0, #0 adds r2, #0x38 movs r1, #2 strb r1, [r2] bl sub_08016A04 pop {pc} thumb_func_start sub_08093FE0 sub_08093FE0: @ 0x08093FE0 push {r4, lr} adds r4, r0, #0 bl sub_08094064 cmp r0, #0 beq _08094062 adds r3, r4, #0 adds r3, #0x38 ldrb r0, [r3] cmp r0, #2 bne _08094024 ldr r0, _08094020 @ =gUnk_03001160 ldrb r0, [r0, #0xc] cmp r0, #0x1e bgt _08094002 cmp r0, #0x1d bge _08094062 _08094002: movs r0, #1 strb r0, [r3] adds r0, r4, #0 bl sub_08016A04 adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #5 orrs r0, r1 b _08094060 .align 2, 0 _08094020: .4byte gUnk_03001160 _08094024: ldr r0, _0809404C @ =gUnk_03001160 ldrb r2, [r0, #0xc] cmp r2, #0x1e bgt _08094050 cmp r2, #0x1d blt _08094050 movs r0, #2 strb r0, [r3] adds r0, r4, #0 bl sub_08016A04 adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 b _08094060 .align 2, 0 _0809404C: .4byte gUnk_03001160 _08094050: adds r2, r0, #0 adds r2, #0x38 ldrb r1, [r2] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08094062 movs r0, #1 _08094060: strb r0, [r2] _08094062: pop {r4, pc} thumb_func_start sub_08094064 sub_08094064: @ 0x08094064 push {lr} movs r2, #1 ldr r1, _08094080 @ =gUnk_03001160 movs r3, #0x2e ldrsh r1, [r1, r3] movs r3, #0x2e ldrsh r0, [r0, r3] subs r1, r1, r0 adds r1, #0x1c cmp r1, #0x38 bls _0809407C movs r2, #0 _0809407C: adds r0, r2, #0 pop {pc} .align 2, 0 _08094080: .4byte gUnk_03001160 thumb_func_start sub_08094084 sub_08094084: @ 0x08094084 push {r4, r5, lr} adds r4, r0, #0 ldr r5, [r4, #0x50] movs r1, #0x36 ldrsh r0, [r5, r1] cmp r0, #0 beq _0809412A ldrb r0, [r4, #0xc] cmp r0, #0 bne _080940CA movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x63 movs r0, #5 strb r0, [r1] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _080940CA: ldrh r0, [r5, #0x2e] strh r0, [r4, #0x2e] ldrh r0, [r5, #0x32] strh r0, [r4, #0x32] ldrb r2, [r5, #0x1b] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r3, [r4, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r3 orrs r0, r2 strb r0, [r4, #0x1b] ldrb r0, [r5, #0x19] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r4, #0x19] ands r1, r2 orrs r1, r0 strb r1, [r4, #0x19] movs r0, #0x36 ldrsh r1, [r5, r0] movs r0, #0x40 rsbs r0, r0, #0 cmp r1, r0 ble _08094108 movs r3, #0x80 lsls r3, r3, #1 movs r2, #0x80 lsls r2, r2, #2 b _0809411E _08094108: movs r1, #0x36 ldrsh r0, [r5, r1] adds r0, #0x40 lsls r2, r0, #1 movs r1, #0x80 lsls r1, r1, #1 subs r3, r1, r2 lsls r0, r0, #2 movs r1, #0x80 lsls r1, r1, #2 subs r2, r1, r0 _0809411E: adds r0, r4, #0 adds r1, r3, #0 movs r3, #0 bl sub_0805EC9C b _0809412E _0809412A: bl sub_0805E780 _0809412E: pop {r4, r5, pc} thumb_func_start sub_08094130 sub_08094130: @ 0x08094130 push {lr} ldr r2, _08094144 @ =gUnk_081229BC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08094144: .4byte gUnk_081229BC thumb_func_start sub_08094148 sub_08094148: @ 0x08094148 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #1 bne _08094154 b _08094254 _08094154: cmp r0, #1 bgt _0809415E cmp r0, #0 beq _080941A8 b _0809438A _0809415E: cmp r0, #2 beq _08094164 b _0809438A _08094164: ldrb r0, [r4, #0xd] cmp r0, #0 bne _08094180 movs r0, #1 strb r0, [r4, #0xd] movs r0, #0xb4 lsls r0, r0, #1 str r0, [r4, #0x78] ldr r0, _0809417C @ =gUnk_03000BF0 str r4, [r0, #0x30] b _08094198 .align 2, 0 _0809417C: .4byte gUnk_03000BF0 _08094180: ldr r0, [r4, #0x78] subs r0, #1 str r0, [r4, #0x78] movs r1, #1 rsbs r1, r1, #0 cmp r0, r1 bne _08094198 ldr r1, _080941A0 @ =gUnk_03000BF0 ldr r0, _080941A4 @ =gUnk_03001160 str r0, [r1, #0x30] bl sub_0805E780 _08094198: bl sub_08078B48 b _08094394 .align 2, 0 _080941A0: .4byte gUnk_03000BF0 _080941A4: .4byte gUnk_03001160 _080941A8: ldr r1, _08094228 @ =gUnk_081229D0 ldrb r0, [r4, #0xb] lsls r0, r0, #2 adds r0, r0, r1 ldrb r0, [r0, #1] strb r0, [r4, #0x15] ldrb r0, [r4, #0xb] lsls r0, r0, #2 adds r0, r0, r1 ldrb r0, [r0, #2] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r2, [r4, #0x2e] adds r0, r0, r2 strh r0, [r4, #0x2e] ldrb r0, [r4, #0xb] lsls r0, r0, #2 adds r0, r0, r1 ldrb r0, [r0, #3] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r2, [r4, #0x32] adds r0, r0, r2 strh r0, [r4, #0x32] ldrb r0, [r4, #0xb] lsls r0, r0, #2 adds r0, r0, r1 ldrb r2, [r0] movs r0, #0x40 ands r0, r2 cmp r0, #0 beq _080941F0 ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x18] _080941F0: movs r0, #0x80 ands r0, r2 cmp r0, #0 beq _08094200 ldrb r0, [r4, #0x18] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x18] _08094200: ldrb r0, [r4, #0xb] cmp r0, #3 bhi _08094230 bl sub_08000E50 ldr r1, _0809422C @ =0x0001FFFF ands r1, r0 movs r0, #0xa0 lsls r0, r0, #0xa orrs r0, r1 str r0, [r4, #0x20] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #0x56 bl sub_08004260 b _0809438A .align 2, 0 _08094228: .4byte gUnk_081229D0 _0809422C: .4byte 0x0001FFFF _08094230: movs r0, #0xa0 lsls r0, r0, #0xa str r0, [r4, #0x20] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r4, #0x24] bl sub_08000E50 movs r1, #3 ands r0, r1 ldrb r1, [r4, #0x15] orrs r0, r1 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #0x57 bl sub_08004260 b _0809438A _08094254: ldrb r0, [r4, #0xb] cmp r0, #0 bne _08094272 adds r0, r4, #0 movs r1, #0x67 movs r2, #1 movs r3, #0x80 bl sub_080A2988 adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 beq _08094272 ldr r0, [r4, #0x50] str r0, [r1, #0x54] _08094272: ldrb r0, [r4, #0xb] cmp r0, #0x80 bne _0809427A b _08094380 _0809427A: movs r2, #0 movs r0, #0x4b strb r0, [r4, #0x1e] ldrb r1, [r4, #0x19] subs r0, #0x58 ands r0, r1 movs r1, #4 orrs r0, r1 movs r1, #0xe0 lsls r1, r1, #7 strh r1, [r4, #0x24] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x19] adds r3, r4, #0 adds r3, #0x29 ldrb r0, [r3] movs r1, #7 orrs r0, r1 strb r0, [r3] ldrb r0, [r4, #0x19] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x19] ldrb r0, [r4, #0xb] lsls r0, r0, #3 ldr r1, _080942E8 @ =gUnk_081229F0 adds r3, r0, r1 movs r0, #0 ldrsb r0, [r3, r0] ldrh r1, [r4, #0x2e] adds r0, r0, r1 strh r0, [r4, #0x2e] movs r0, #1 ldrsb r0, [r3, r0] ldrh r1, [r4, #0x32] adds r0, r0, r1 strh r0, [r4, #0x32] ldrb r0, [r3, #2] strb r0, [r4, #0xe] ldrb r0, [r3, #3] strb r0, [r4, #0xf] movs r0, #0xce str r0, [r4, #0x7c] str r2, [r4, #0x74] ldrb r1, [r3, #4] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _080942EC adds r1, r4, #0 adds r1, #0x82 movs r0, #0xff lsls r0, r0, #8 b _080942F4 .align 2, 0 _080942E8: .4byte gUnk_081229F0 _080942EC: adds r1, r4, #0 adds r1, #0x82 movs r0, #0x80 lsls r0, r0, #1 _080942F4: strh r0, [r1] ldrb r1, [r3, #4] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0809430A adds r1, r4, #0 adds r1, #0x86 movs r0, #0xff lsls r0, r0, #8 b _08094312 _0809430A: adds r1, r4, #0 adds r1, #0x86 movs r0, #0x80 lsls r0, r0, #1 _08094312: strh r0, [r1] adds r0, r4, #0 bl sub_0806FBD8 cmp r0, #0 beq _0809438A ldr r2, [r4, #0x48] ldr r1, _0809437C @ =gUnk_080FD2E8 ldrb r0, [r1] strb r0, [r2] ldr r2, [r4, #0x48] ldrb r0, [r1, #1] strb r0, [r2, #1] ldr r2, [r4, #0x48] ldrb r0, [r1, #2] strb r0, [r2, #2] ldr r2, [r4, #0x48] ldrb r0, [r1, #3] strb r0, [r2, #3] ldr r2, [r4, #0x48] ldrb r0, [r1, #4] strb r0, [r2, #4] ldr r2, [r4, #0x48] ldrb r0, [r1, #5] strb r0, [r2, #5] ldr r2, [r4, #0x48] ldrb r0, [r1, #6] strb r0, [r2, #6] ldr r2, [r4, #0x48] ldrb r0, [r1, #7] strb r0, [r2, #7] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r1, #4 movs r0, #7 strb r0, [r1] adds r1, #4 movs r0, #0x48 strb r0, [r1] subs r1, #1 movs r0, #0x7a strb r0, [r1] subs r1, #4 movs r0, #1 strb r0, [r1] b _0809438A .align 2, 0 _0809437C: .4byte gUnk_080FD2E8 _08094380: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] _0809438A: movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_08094398 _08094394: pop {r4, pc} .align 2, 0 thumb_func_start sub_08094398 sub_08094398: @ 0x08094398 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 beq _080943A8 cmp r0, #1 beq _080943D8 b _08094420 _080943A8: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0806F69C movs r1, #0x80 lsls r1, r1, #7 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08094420 ldrb r0, [r4, #0xb] cmp r0, #3 bhi _080943D2 adds r0, r4, #0 movs r1, #0xc movs r2, #0 bl sub_080A29AC _080943D2: bl sub_0805E780 b _08094420 _080943D8: ldrb r1, [r4, #0xb] cmp r1, #0x80 beq _0809440A ldr r0, [r4, #0x7c] subs r0, #1 str r0, [r4, #0x7c] movs r1, #1 rsbs r1, r1, #0 cmp r0, r1 bne _080943F6 movs r0, #0x96 lsls r0, r0, #2 str r0, [r4, #0x7c] movs r0, #2 strb r0, [r4, #0xc] _080943F6: adds r0, r4, #0 adds r0, #0x82 ldrh r1, [r0] adds r0, #4 ldrh r2, [r0] adds r0, r4, #0 movs r3, #0 bl sub_0805EC9C b _08094420 _0809440A: ldr r0, [r4, #0x54] adds r0, #0x79 ldrb r0, [r0] ands r1, r0 cmp r1, #0 bne _0809441A bl sub_0805E780 _0809441A: adds r0, r4, #0 bl sub_08094660 _08094420: pop {r4, pc} .align 2, 0 thumb_func_start sub_08094424 sub_08094424: @ 0x08094424 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 adds r3, r6, #0 adds r3, #0x82 movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0 bge _08094452 adds r1, r6, #0 adds r1, #0x80 movs r0, #0x24 ldrsh r2, [r6, r0] ldr r0, [r1] adds r0, r0, r2 str r0, [r1] movs r2, #0 ldrsh r0, [r3, r2] rsbs r0, r0, #0 mov r8, r0 adds r5, r1, #0 b _08094466 _08094452: adds r0, r6, #0 adds r0, #0x80 movs r1, #0x24 ldrsh r2, [r6, r1] ldr r1, [r0] subs r1, r1, r2 str r1, [r0] ldrh r3, [r3] mov r8, r3 adds r5, r0, #0 _08094466: adds r0, r6, #0 adds r0, #0x86 movs r2, #0 ldrsh r1, [r0, r2] adds r4, r0, #0 cmp r1, #0 bge _0809448C adds r1, r6, #0 adds r1, #0x84 movs r0, #0x24 ldrsh r2, [r6, r0] ldr r0, [r1] adds r0, r0, r2 str r0, [r1] movs r2, #0 ldrsh r0, [r4, r2] rsbs r7, r0, #0 adds r3, r1, #0 b _0809449E _0809448C: adds r0, r6, #0 adds r0, #0x84 movs r1, #0x24 ldrsh r2, [r6, r1] ldr r1, [r0] subs r1, r1, r2 str r1, [r0] ldrh r7, [r4] adds r3, r0, #0 _0809449E: ldrh r2, [r6, #0x24] movs r0, #0x24 ldrsh r1, [r6, r0] movs r0, #0x80 lsls r0, r0, #6 cmp r1, r0 ble _080944B2 ldr r1, _080944D0 @ =0xFFFFFF00 adds r0, r2, r1 strh r0, [r6, #0x24] _080944B2: ldr r0, [r6, #0x7c] subs r0, #1 str r0, [r6, #0x7c] movs r1, #1 rsbs r1, r1, #0 cmp r0, r1 bne _080944D4 movs r0, #0 strh r0, [r5] strh r0, [r3] movs r0, #3 strb r0, [r6, #0xc] movs r0, #0x78 str r0, [r6, #0x7c] b _08094500 .align 2, 0 _080944D0: .4byte 0xFFFFFF00 _080944D4: adds r5, r6, #0 adds r5, #0x82 movs r2, #0 ldrsh r1, [r5, r2] ldrb r3, [r6, #0xe] adds r0, r6, #0 movs r2, #0x20 bl sub_0806FCF4 movs r0, #0 ldrsh r1, [r4, r0] ldrb r3, [r6, #0xf] adds r0, r6, #0 movs r2, #0x20 bl sub_0806FCF4 ldrh r1, [r5] ldrh r2, [r4] adds r0, r6, #0 movs r3, #0 bl sub_0805EC9C _08094500: ldr r5, [r6, #0x48] cmp r5, #0 beq _08094538 movs r4, #0x80 lsls r4, r4, #9 adds r0, r4, #0 mov r1, r8 bl __divsi3 lsrs r0, r0, #3 strb r0, [r5, #6] ldr r5, [r6, #0x48] adds r0, r4, #0 adds r1, r7, #0 bl __divsi3 lsrs r0, r0, #3 strb r0, [r5, #7] ldr r1, [r6, #0x48] adds r0, r6, #0 adds r0, #0x62 ldrb r0, [r0] strb r0, [r1] ldr r1, [r6, #0x48] adds r0, r6, #0 adds r0, #0x63 ldrb r0, [r0] strb r0, [r1, #1] _08094538: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08094540 sub_08094540: @ 0x08094540 push {lr} adds r3, r0, #0 ldr r0, [r3, #0x7c] subs r0, #1 str r0, [r3, #0x7c] movs r1, #1 rsbs r1, r1, #0 cmp r0, r1 bne _0809455A movs r0, #4 strb r0, [r3, #0xc] movs r0, #2 str r0, [r3, #0x7c] _0809455A: adds r0, r3, #0 adds r0, #0x82 ldrh r1, [r0] adds r0, #4 ldrh r2, [r0] adds r0, r3, #0 movs r3, #0 bl sub_0805EC9C pop {pc} .align 2, 0 thumb_func_start sub_08094570 sub_08094570: @ 0x08094570 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 adds r2, r6, #0 adds r2, #0x82 ldrh r1, [r2] lsls r3, r1, #0x10 movs r0, #0x80 lsls r0, r0, #1 cmp r1, r0 beq _08094590 asrs r3, r3, #0x10 ldr r0, _080945B0 @ =0xFFFFFF00 cmp r3, r0 bne _080945BA _08094590: ldr r1, [r6, #0x7c] cmp r1, #0 bne _080945B4 ldr r0, [r6, #0x50] adds r0, #0x7c strh r1, [r0] ldr r0, [r6, #0x50] adds r0, #0x79 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _08094622 bl sub_0805E780 b _08094622 .align 2, 0 _080945B0: .4byte 0xFFFFFF00 _080945B4: subs r0, r1, #1 str r0, [r6, #0x7c] b _08094622 _080945BA: cmp r3, #0 bge _080945CC subs r0, r1, #1 strh r0, [r2] movs r1, #0 ldrsh r0, [r2, r1] rsbs r0, r0, #0 mov r8, r0 b _080945D4 _080945CC: adds r0, r1, #1 strh r0, [r2] ldrh r2, [r2] mov r8, r2 _080945D4: adds r0, r6, #0 adds r0, #0x86 ldrh r2, [r0] movs r3, #0 ldrsh r1, [r0, r3] adds r4, r0, #0 cmp r1, #0 bge _080945F0 subs r0, r2, #1 strh r0, [r4] movs r1, #0 ldrsh r0, [r4, r1] rsbs r7, r0, #0 b _080945F6 _080945F0: adds r0, r2, #1 strh r0, [r4] ldrh r7, [r4] _080945F6: adds r5, r6, #0 adds r5, #0x82 movs r3, #0 ldrsh r1, [r5, r3] ldrb r3, [r6, #0xe] adds r0, r6, #0 movs r2, #0x20 bl sub_0806FCF4 movs r0, #0 ldrsh r1, [r4, r0] ldrb r3, [r6, #0xf] adds r0, r6, #0 movs r2, #0x20 bl sub_0806FCF4 ldrh r1, [r5] ldrh r2, [r4] adds r0, r6, #0 movs r3, #0 bl sub_0805EC9C _08094622: ldr r5, [r6, #0x48] cmp r5, #0 beq _0809465A movs r4, #0x80 lsls r4, r4, #9 adds r0, r4, #0 mov r1, r8 bl __divsi3 lsrs r0, r0, #3 strb r0, [r5, #6] ldr r5, [r6, #0x48] adds r0, r4, #0 adds r1, r7, #0 bl __divsi3 lsrs r0, r0, #3 strb r0, [r5, #7] ldr r1, [r6, #0x48] adds r0, r6, #0 adds r0, #0x62 ldrb r0, [r0] strb r0, [r1] ldr r1, [r6, #0x48] adds r0, r6, #0 adds r0, #0x63 ldrb r0, [r0] strb r0, [r1, #1] _0809465A: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08094660 sub_08094660: @ 0x08094660 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r6, r0, #0 ldr r0, [r6, #0x50] adds r0, #0x62 movs r7, #0 ldrsb r7, [r0, r7] cmp r7, #0 bge _08094678 rsbs r7, r7, #0 _08094678: lsls r7, r7, #1 adds r0, r7, #0 cmp r7, #0 bge _08094682 adds r0, #0xf _08094682: asrs r1, r0, #4 ldr r0, [r6, #0x74] cmp r0, r1 bhs _08094700 str r1, [r6, #0x74] movs r1, #0x2e ldrsh r0, [r6, r1] subs r0, r0, r7 adds r4, r0, #0 subs r4, #0x40 movs r1, #0x32 ldrsh r0, [r6, r1] subs r0, r0, r7 adds r5, r0, #0 subs r5, #0x40 movs r0, #0x10 mov sb, r0 str r0, [r6, #0x78] movs r1, #0 mov r8, r1 str r1, [r6, #0x7c] adds r0, r6, #0 adds r1, r4, #0 adds r2, r5, #0 bl sub_08094708 mov r0, r8 str r0, [r6, #0x78] mov r1, sb str r1, [r6, #0x7c] adds r0, r6, #0 adds r1, r4, #0 adds r2, r5, #0 bl sub_08094708 movs r1, #0x2e ldrsh r0, [r6, r1] adds r0, r0, r7 adds r4, r0, #0 adds r4, #0x30 movs r1, #0x32 ldrsh r0, [r6, r1] adds r0, r0, r7 adds r5, r0, #0 adds r5, #0x30 movs r7, #0x10 rsbs r7, r7, #0 str r7, [r6, #0x78] mov r0, r8 str r0, [r6, #0x7c] adds r0, r6, #0 adds r1, r4, #0 adds r2, r5, #0 bl sub_08094708 mov r1, r8 str r1, [r6, #0x78] str r7, [r6, #0x7c] adds r0, r6, #0 adds r1, r4, #0 adds r2, r5, #0 bl sub_08094708 _08094700: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08094708 sub_08094708: @ 0x08094708 push {r4, r5, r6, r7, lr} sub sp, #8 adds r7, r0, #0 adds r6, r1, #0 adds r5, r2, #0 ldr r0, [r7, #0x74] lsls r0, r0, #1 adds r4, r0, #0 adds r4, #8 cmp r4, #0 beq _08094752 ldr r3, _08094758 @ =gUnk_03000BF0 movs r2, #0x3f _08094722: ldrh r0, [r3, #6] subs r0, r6, r0 lsrs r0, r0, #4 ands r0, r2 ldrh r1, [r3, #8] subs r1, r5, r1 lsrs r1, r1, #4 ands r1, r2 lsls r1, r1, #6 orrs r0, r1 movs r1, #2 str r2, [sp] str r3, [sp, #4] bl sub_0807BA8C ldr r0, [r7, #0x78] adds r6, r6, r0 ldr r0, [r7, #0x7c] adds r5, r5, r0 subs r4, #1 ldr r2, [sp] ldr r3, [sp, #4] cmp r4, #0 bne _08094722 _08094752: add sp, #8 pop {r4, r5, r6, r7, pc} .align 2, 0 _08094758: .4byte gUnk_03000BF0 thumb_func_start sub_0809475C sub_0809475C: @ 0x0809475C push {lr} ldr r2, _08094770 @ =gUnk_08122A10 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08094770: .4byte gUnk_08122A10 thumb_func_start sub_08094774 sub_08094774: @ 0x08094774 push {r4, r5, r6, lr} adds r5, r0, #0 movs r0, #1 strb r0, [r5, #0xc] ldrb r0, [r5, #0xa] cmp r0, #8 bls _08094784 b _080948C6 _08094784: lsls r0, r0, #2 ldr r1, _08094790 @ =_08094794 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08094790: .4byte _08094794 _08094794: @ jump table .4byte _080947B8 @ case 0 .4byte _08094824 @ case 1 .4byte _080948B0 @ case 2 .4byte _080948C6 @ case 3 .4byte _080948C6 @ case 4 .4byte _080948C6 @ case 5 .4byte _080948C6 @ case 6 .4byte _080948C6 @ case 7 .4byte _080948C6 @ case 8 _080947B8: adds r0, r5, #0 movs r1, #0xb movs r2, #0 bl sub_080A29AC adds r6, r0, #0 str r6, [r5, #0x54] cmp r6, #0 beq _080947EE ldr r0, _0809480C @ =gUnk_03001160 ldr r4, _08094810 @ =gUnk_08122A18 ldrb r3, [r0, #0x14] movs r1, #6 ands r1, r3 adds r1, r1, r4 movs r2, #0 ldrsb r2, [r1, r2] lsls r2, r2, #0x10 movs r1, #1 orrs r1, r3 adds r1, r1, r4 movs r3, #0 ldrsb r3, [r1, r3] lsls r3, r3, #0x10 adds r1, r6, #0 bl sub_0806FA48 _080947EE: ldr r0, [r5, #0x54] adds r1, r5, #0 bl sub_0806FA24 ldr r1, _08094814 @ =0x00004032 ldr r2, _08094818 @ =0x00004033 adds r0, r5, #0 bl sub_08094980 ldr r1, _0809481C @ =0x00004061 ldr r2, _08094820 @ =0x00004022 adds r0, r5, #0 bl sub_08094980 b _080948C6 .align 2, 0 _0809480C: .4byte gUnk_03001160 _08094810: .4byte gUnk_08122A18 _08094814: .4byte 0x00004032 _08094818: .4byte 0x00004033 _0809481C: .4byte 0x00004061 _08094820: .4byte 0x00004022 _08094824: adds r0, r5, #0 movs r1, #0x2b movs r2, #0 bl sub_080A29AC adds r6, r0, #0 str r6, [r5, #0x54] cmp r6, #0 beq _0809485A ldr r0, _08094898 @ =gUnk_03001160 ldr r4, _0809489C @ =gUnk_08122A18 ldrb r3, [r0, #0x14] movs r1, #6 ands r1, r3 adds r1, r1, r4 movs r2, #0 ldrsb r2, [r1, r2] lsls r2, r2, #0x10 movs r1, #1 orrs r1, r3 adds r1, r1, r4 movs r3, #0 ldrsb r3, [r1, r3] lsls r3, r3, #0x10 adds r1, r6, #0 bl sub_0806FA48 _0809485A: ldrb r4, [r5, #0xb] cmp r4, #0 bne _080948C6 ldr r0, [r5, #0x54] adds r1, r5, #0 bl sub_0806FA24 strb r4, [r5, #0xe] adds r2, r5, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] ldrb r1, [r5, #0x19] movs r0, #0x3f ands r0, r1 strb r0, [r5, #0x19] ldr r1, _080948A0 @ =0x0000403B ldr r2, _080948A4 @ =0x0000403C adds r0, r5, #0 bl sub_08094980 ldr r1, _080948A8 @ =0x00004061 ldr r2, _080948AC @ =0x00004022 adds r0, r5, #0 bl sub_08094980 b _080948CA .align 2, 0 _08094898: .4byte gUnk_03001160 _0809489C: .4byte gUnk_08122A18 _080948A0: .4byte 0x0000403B _080948A4: .4byte 0x0000403C _080948A8: .4byte 0x00004061 _080948AC: .4byte 0x00004022 _080948B0: ldr r0, _080948CC @ =gUnk_03001160 movs r1, #0x60 movs r2, #0 bl sub_080A2A20 adds r1, r0, #0 str r1, [r5, #0x54] cmp r1, #0 beq _080948C6 movs r0, #1 strb r0, [r1, #0xe] _080948C6: bl sub_0805E780 _080948CA: pop {r4, r5, r6, pc} .align 2, 0 _080948CC: .4byte gUnk_03001160 thumb_func_start sub_080948D0 sub_080948D0: @ 0x080948D0 push {lr} ldr r2, _080948E4 @ =gUnk_08122A20 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080948E4: .4byte gUnk_08122A20 thumb_func_start sub_080948E8 sub_080948E8: @ 0x080948E8 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xe] cmp r1, #0x3b bhi _08094978 ldr r0, [r4, #0x34] ldr r2, _0809495C @ =0xFFFFC000 adds r0, r0, r2 str r0, [r4, #0x34] movs r0, #3 ands r0, r1 cmp r0, #0 bne _08094970 adds r0, r4, #0 movs r1, #0x11 movs r2, #0x40 bl sub_080A29AC adds r3, r0, #0 str r3, [r4, #0x54] cmp r3, #0 beq _08094970 ldrb r1, [r4, #0x19] lsrs r1, r1, #6 lsls r1, r1, #6 ldrb r2, [r3, #0x19] movs r0, #0x3f ands r0, r2 orrs r0, r1 strb r0, [r3, #0x19] ldr r2, [r4, #0x54] adds r0, r4, #0 adds r0, #0x29 ldrb r1, [r0] lsls r1, r1, #0x1d adds r2, #0x29 lsrs r1, r1, #0x1d ldrb r3, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r3 orrs r0, r1 strb r0, [r2] bl sub_08000E50 movs r1, #1 ands r1, r0 cmp r1, #0 beq _08094960 bl sub_08000E50 ldr r2, [r4, #0x54] movs r1, #0xf ands r0, r1 ldrh r1, [r2, #0x2e] adds r0, r0, r1 strh r0, [r2, #0x2e] b _08094970 .align 2, 0 _0809495C: .4byte 0xFFFFC000 _08094960: bl sub_08000E50 ldr r2, [r4, #0x54] movs r1, #0xf ands r0, r1 ldrh r1, [r2, #0x2e] subs r1, r1, r0 strh r1, [r2, #0x2e] _08094970: ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] b _0809497C _08094978: bl sub_0805E780 _0809497C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08094980 sub_08094980: @ 0x08094980 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 adds r6, r0, #0 str r1, [sp] str r2, [sp, #4] movs r0, #0 mov r8, r0 ldr r1, _08094A04 @ =gUnk_03000BF0 mov sl, r1 movs r2, #0x3f mov sb, r2 ldr r7, _08094A08 @ =gUnk_08122A28 _080949A0: movs r4, #0 ldrsb r4, [r7, r4] movs r5, #1 ldrsb r5, [r7, r5] adds r0, r6, #0 adds r1, r4, #0 adds r2, r5, #0 bl sub_0800029C ldr r3, [sp] cmp r3, r0 bne _080949EC movs r0, #0x2e ldrsh r1, [r6, r0] adds r1, r1, r4 mov r2, sl ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 mov r3, sb ands r1, r3 movs r2, #0x32 ldrsh r0, [r6, r2] adds r0, r0, r5 mov r3, sl ldrh r2, [r3, #8] subs r0, r0, r2 asrs r0, r0, #4 mov r2, sb ands r0, r2 lsls r0, r0, #6 orrs r1, r0 adds r0, r6, #0 adds r0, #0x38 ldrb r2, [r0] ldr r0, [sp, #4] bl sub_0800015E _080949EC: adds r7, #2 movs r3, #2 add r8, r3 mov r0, r8 cmp r0, #9 bls _080949A0 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 _08094A04: .4byte gUnk_03000BF0 _08094A08: .4byte gUnk_08122A28 thumb_func_start sub_08094A0C sub_08094A0C: @ 0x08094A0C push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08094A3E ldrb r0, [r2, #0xc] cmp r0, #0 bne _08094A34 movs r0, #1 strb r0, [r2, #0xc] ldr r0, _08094A30 @ =gUnk_080FD170 str r0, [r2, #0x48] adds r0, r2, #0 bl sub_0807DD50 b _08094A42 .align 2, 0 _08094A30: .4byte gUnk_080FD170 _08094A34: adds r0, r2, #0 movs r1, #0 bl sub_0807DD94 b _08094A42 _08094A3E: movs r0, #1 strb r0, [r2, #0xc] _08094A42: pop {pc} thumb_func_start sub_08094A44 sub_08094A44: @ 0x08094A44 push {lr} ldr r2, _08094A58 @ =gUnk_08122A34 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08094A58: .4byte gUnk_08122A34 thumb_func_start sub_08094A5C sub_08094A5C: @ 0x08094A5C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08094A78 adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 movs r1, #4 bl sub_08004260 _08094A78: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 thumb_func_start sub_08094A90 sub_08094A90: @ 0x08094A90 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08094ACE adds r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 ldr r1, _08094AE4 @ =gUnk_08114F30 ldrb r2, [r4, #0x19] lsrs r0, r2, #6 adds r0, r0, r1 ldrb r1, [r0] lsls r1, r1, #6 movs r0, #0x3f ands r0, r2 orrs r0, r1 strb r0, [r4, #0x19] adds r0, r4, #0 movs r1, #0 bl sub_080042AC adds r0, r4, #0 bl sub_0807DD64 _08094ACE: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 _08094AE4: .4byte gUnk_08114F30 thumb_func_start sub_08094AE8 sub_08094AE8: @ 0x08094AE8 push {r4, r5, lr} adds r5, r1, #0 movs r0, #0x6a movs r1, #1 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08094B08 ldr r1, [r5, #4] bl sub_0807DAD0 adds r1, r4, #0 adds r1, #0x84 str r0, [r1] _08094B08: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08094B0C sub_08094B0C: @ 0x08094B0C push {lr} adds r2, r0, #0 ldrh r0, [r2, #0x36] subs r0, #1 movs r3, #0 strh r0, [r2, #0x36] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x20 rsbs r1, r1, #0 cmp r0, r1 bgt _08094B30 ldr r0, _08094B2C @ =0x0000FFE0 strh r0, [r2, #0x36] b _08094B34 .align 2, 0 _08094B2C: .4byte 0x0000FFE0 _08094B30: ldr r0, _08094B38 @ =gUnk_02033280 strb r3, [r0, #6] _08094B34: pop {pc} .align 2, 0 _08094B38: .4byte gUnk_02033280 thumb_func_start sub_08094B3C sub_08094B3C: @ 0x08094B3C push {lr} adds r2, r0, #0 ldr r0, [r2, #0x34] movs r1, #0x80 lsls r1, r1, #8 adds r0, r0, r1 str r0, [r2, #0x34] movs r0, #0x36 ldrsh r1, [r2, r0] movs r0, #0xd rsbs r0, r0, #0 cmp r1, r0 blt _08094B60 ldr r0, _08094B5C @ =0x0000FFF3 strh r0, [r2, #0x36] b _08094B66 .align 2, 0 _08094B5C: .4byte 0x0000FFF3 _08094B60: ldr r1, _08094B68 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _08094B66: pop {pc} .align 2, 0 _08094B68: .4byte gUnk_02033280 thumb_func_start sub_08094B6C sub_08094B6C: @ 0x08094B6C adds r0, #0x29 ldrb r2, [r0] movs r1, #0x39 rsbs r1, r1, #0 ands r1, r2 movs r2, #0x18 orrs r1, r2 strb r1, [r0] bx lr .align 2, 0 thumb_func_start sub_08094B80 sub_08094B80: @ 0x08094B80 adds r0, #0x29 ldrb r2, [r0] movs r1, #0x39 rsbs r1, r1, #0 ands r1, r2 movs r2, #0x10 orrs r1, r2 strb r1, [r0] bx lr .align 2, 0 thumb_func_start sub_08094B94 sub_08094B94: @ 0x08094B94 push {r4, lr} movs r0, #0x6a movs r1, #0x22 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08094BD2 ldr r0, _08094BD4 @ =gUnk_03001160 adds r1, r4, #0 bl sub_0806FA24 ldr r0, _08094BD8 @ =0x0000FFD0 strh r0, [r4, #0x36] ldr r1, _08094BDC @ =gUnk_0800AEDC adds r0, r4, #0 bl sub_0807DAD0 adds r1, r4, #0 adds r1, #0x84 str r0, [r1] adds r0, r4, #0 bl sub_080A29BC ldrh r0, [r4, #0x36] adds r0, #0x10 strh r0, [r4, #0x36] ldrh r0, [r4, #0x32] adds r0, #1 strh r0, [r4, #0x32] _08094BD2: pop {r4, pc} .align 2, 0 _08094BD4: .4byte gUnk_03001160 _08094BD8: .4byte 0x0000FFD0 _08094BDC: .4byte gUnk_0800AEDC thumb_func_start sub_08094BE0 sub_08094BE0: @ 0x08094BE0 push {r4, lr} sub sp, #4 movs r0, #0 str r0, [sp] movs r0, #6 movs r1, #0x6a movs r2, #6 movs r3, #0x22 bl sub_0805EB2C adds r4, r0, #0 cmp r4, #0 beq _08094C22 ldr r0, _08094C28 @ =gUnk_03001160 adds r1, r4, #0 bl sub_0806FA24 ldr r0, _08094C2C @ =0x0000FFF4 strh r0, [r4, #0x36] ldrh r0, [r4, #0x32] adds r0, #1 strh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 movs r1, #1 bl sub_080042AC _08094C22: add sp, #4 pop {r4, pc} .align 2, 0 _08094C28: .4byte gUnk_03001160 _08094C2C: .4byte 0x0000FFF4 thumb_func_start sub_08094C30 sub_08094C30: @ 0x08094C30 push {r4, r5, lr} adds r4, r0, #0 ldr r5, [r4, #0x50] cmp r5, #0 beq _08094C40 ldr r0, [r5, #4] cmp r0, #0 bne _08094C44 _08094C40: bl sub_0805E780 _08094C44: ldrb r0, [r4, #0xc] cmp r0, #0 bne _08094C74 adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 ldr r1, _08094C84 @ =gUnk_08114F30 ldrb r0, [r5, #0x19] lsrs r0, r0, #6 adds r0, r0, r1 ldrb r1, [r0] 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 movs r1, #1 bl sub_080042AC _08094C74: adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 adds r0, r4, #0 bl sub_080042B8 pop {r4, r5, pc} .align 2, 0 _08094C84: .4byte gUnk_08114F30 thumb_func_start sub_08094C88 sub_08094C88: @ 0x08094C88 push {r4, r5, lr} adds r5, r0, #0 ldrb r1, [r5, #0xc] cmp r1, #0 beq _08094CA0 movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08094CCC bl sub_0805E780 b _08094CDA _08094CA0: adds r0, r1, #1 strb r0, [r5, #0xc] ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r5, #0x18] adds r0, r5, #0 movs r1, #3 bl sub_0805E3A0 ldrb r0, [r5, #0xb] cmp r0, #0x43 bgt _08094CCC cmp r0, #0x40 blt _08094CCC adds r0, r5, #0 adds r1, r5, #0 bl sub_0806FAD8 _08094CCC: ldrb r4, [r5, #0xa] ldrb r0, [r5, #0xb] strb r0, [r5, #0xa] adds r0, r5, #0 bl sub_08080CB4 strb r4, [r5, #0xa] _08094CDA: pop {r4, r5, pc} thumb_func_start sub_08094CDC sub_08094CDC: @ 0x08094CDC push {lr} movs r0, #0x6a movs r1, #3 movs r2, #0x62 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _08094D0A ldr r1, _08094D0C @ =gUnk_03000BF0 ldrh r0, [r1, #6] adds r0, #0xe0 strh r0, [r2, #0x2e] movs r3, #0x96 lsls r3, r3, #2 adds r0, r3, #0 ldrh r1, [r1, #8] adds r0, r0, r1 strh r0, [r2, #0x32] movs r0, #0xa2 lsls r0, r0, #1 bl sub_080A3268 _08094D0A: pop {pc} .align 2, 0 _08094D0C: .4byte gUnk_03000BF0 thumb_func_start sub_08094D10 sub_08094D10: @ 0x08094D10 push {lr} sub sp, #4 movs r0, #0x62 str r0, [sp] movs r0, #6 movs r1, #0x6a movs r2, #6 movs r3, #3 bl sub_0805EB2C adds r1, r0, #0 cmp r1, #0 beq _08094D2E movs r0, #0xff strb r0, [r1, #0xc] _08094D2E: add sp, #4 pop {pc} .align 2, 0 thumb_func_start sub_08094D34 sub_08094D34: @ 0x08094D34 push {lr} movs r0, #0x6a movs r1, #0x15 movs r2, #0xd bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _08094D68 ldr r1, _08094D6C @ =gUnk_03000BF0 movs r3, #0x80 lsls r3, r3, #1 adds r0, r3, #0 ldrh r3, [r1, #6] adds r0, r0, r3 strh r0, [r2, #0x2e] movs r3, #0x96 lsls r3, r3, #2 adds r0, r3, #0 ldrh r1, [r1, #8] adds r0, r0, r1 strh r0, [r2, #0x32] movs r0, #0xa2 lsls r0, r0, #1 bl sub_080A3268 _08094D68: pop {pc} .align 2, 0 _08094D6C: .4byte gUnk_03000BF0 thumb_func_start sub_08094D70 sub_08094D70: @ 0x08094D70 push {lr} sub sp, #4 movs r0, #0xd str r0, [sp] movs r0, #6 movs r1, #0x6a movs r2, #6 movs r3, #0x15 bl sub_0805EB2C adds r1, r0, #0 cmp r1, #0 beq _08094D8E movs r0, #0xff strb r0, [r1, #0xc] _08094D8E: add sp, #4 pop {pc} .align 2, 0 thumb_func_start sub_08094D94 sub_08094D94: @ 0x08094D94 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xc] cmp r1, #0 beq _08094DAC movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08094DCE bl sub_0805E780 b _08094DD4 _08094DAC: adds r0, r1, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #3 bl sub_0805E3A0 adds r0, r4, #0 movs r1, #0 bl sub_080042AC _08094DCE: adds r0, r4, #0 bl sub_080042B8 _08094DD4: pop {r4, pc} .align 2, 0 thumb_func_start sub_08094DD8 sub_08094DD8: @ 0x08094DD8 push {lr} movs r0, #0x6a movs r1, #4 movs r2, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _08094E06 ldr r1, _08094E08 @ =gUnk_03000BF0 ldrh r0, [r1, #6] adds r0, #0xf0 strh r0, [r2, #0x2e] movs r3, #0x96 lsls r3, r3, #2 adds r0, r3, #0 ldrh r1, [r1, #8] adds r0, r0, r1 strh r0, [r2, #0x32] movs r0, #0xa2 lsls r0, r0, #1 bl sub_080A3268 _08094E06: pop {pc} .align 2, 0 _08094E08: .4byte gUnk_03000BF0 thumb_func_start sub_08094E0C sub_08094E0C: @ 0x08094E0C push {lr} sub sp, #4 movs r0, #0 str r0, [sp] movs r0, #6 movs r1, #0x6a movs r2, #6 movs r3, #4 bl sub_0805EB2C adds r1, r0, #0 cmp r1, #0 beq _08094E2A movs r0, #0xff strb r0, [r1, #0xc] _08094E2A: add sp, #4 pop {pc} .align 2, 0 thumb_func_start sub_08094E30 sub_08094E30: @ 0x08094E30 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xb] cmp r0, #0 bne _08094E88 ldr r0, _08094E80 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #0x1f ands r0, r1 cmp r0, #0 beq _08094E48 b _08094F94 _08094E48: movs r0, #0x6a movs r1, #5 movs r2, #1 bl sub_080A2960 adds r5, r0, #0 cmp r5, #0 bne _08094E5A b _08094F94 _08094E5A: bl sub_08000E50 ldr r4, _08094E84 @ =gUnk_03000BF0 movs r1, #0xf0 bl __modsi3 ldrh r1, [r4, #0xa] adds r1, r1, r0 strh r1, [r5, #0x2e] bl sub_08000E50 movs r1, #0xa0 bl __modsi3 ldrh r1, [r4, #0xc] adds r1, r1, r0 strh r1, [r5, #0x32] b _08094F94 .align 2, 0 _08094E80: .4byte gUnk_030010A0 _08094E84: .4byte gUnk_03000BF0 _08094E88: cmp r0, #1 bne _08094F44 ldrb r1, [r4, #0xc] cmp r1, #1 beq _08094ED4 cmp r1, #1 bgt _08094E9C cmp r1, #0 beq _08094EA6 b _08094F94 _08094E9C: cmp r1, #2 beq _08094F08 cmp r1, #3 beq _08094F22 b _08094F94 _08094EA6: strb r0, [r4, #0xc] ldr r0, _08094ED0 @ =0xFF600000 str r0, [r4, #0x34] str r1, [r4, #0x20] adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_080002B8 cmp r0, #0xd bne _08094F94 movs r0, #3 strb r0, [r4, #0xc] b _08094F94 .align 2, 0 _08094ED0: .4byte 0xFF600000 _08094ED4: ldr r1, [r4, #0x34] ldr r0, [r4, #0x20] subs r1, r1, r0 str r1, [r4, #0x34] ldr r2, _08094F04 @ =0xFFFFE000 adds r0, r0, r2 str r0, [r4, #0x20] cmp r1, #0 ble _08094F94 ldrb r0, [r4, #0xc] adds r0, #1 movs r1, #0 strb r0, [r4, #0xc] str r1, [r4, #0x34] str r1, [r4, #0x20] adds r0, r4, #0 movs r1, #1 bl sub_08004260 movs r0, #0xbf lsls r0, r0, #1 bl sub_08004488 b _08094F94 .align 2, 0 _08094F04: .4byte 0xFFFFE000 _08094F08: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08094F94 bl sub_0805E780 b _08094F94 _08094F22: ldr r0, [r4, #0x34] ldr r1, [r4, #0x20] subs r0, r0, r1 str r0, [r4, #0x34] ldr r0, _08094F40 @ =0xFFFFE000 adds r1, r1, r0 str r1, [r4, #0x20] adds r0, r4, #0 bl sub_080040A8 cmp r0, #0 bne _08094F94 bl sub_0805E780 b _08094F94 .align 2, 0 _08094F40: .4byte 0xFFFFE000 _08094F44: ldrb r0, [r4, #0xc] cmp r0, #0 bne _08094F94 adds r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xe] cmp r0, #1 beq _08094F68 cmp r0, #1 bgt _08094F5E cmp r0, #0 beq _08094F7A b _08094F94 _08094F5E: cmp r0, #2 beq _08094F72 cmp r0, #3 beq _08094F84 b _08094F94 _08094F68: adds r0, r4, #0 movs r1, #2 bl sub_08004260 b _08094F94 _08094F72: ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x18] _08094F7A: adds r0, r4, #0 movs r1, #0 bl sub_08004260 b _08094F94 _08094F84: ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 bl sub_08004260 _08094F94: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08094F98 sub_08094F98: @ 0x08094F98 push {lr} movs r0, #0x6a movs r1, #5 movs r2, #0 bl sub_080A2960 pop {pc} .align 2, 0 thumb_func_start sub_08094FA8 sub_08094FA8: @ 0x08094FA8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #4 bhi _08095086 lsls r0, r0, #2 ldr r1, _08094FBC @ =_08094FC0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08094FBC: .4byte _08094FC0 _08094FC0: @ jump table .4byte _08094FD4 @ case 0 .4byte _08094FF0 @ case 1 .4byte _08095024 @ case 2 .4byte _08095040 @ case 3 .4byte _08095070 @ case 4 _08094FD4: movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0x1e] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 bl sub_080787B4 b _08095086 _08094FF0: adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08095086 movs r0, #0 strb r0, [r1] movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_080788E0 ldr r0, _08095020 @ =gUnk_03003F80 movs r1, #0xc strb r1, [r0, #0xc] adds r0, #0x38 movs r1, #0x36 strb r1, [r0] movs r0, #2 bl sub_08078A90 b _08095086 .align 2, 0 _08095020: .4byte gUnk_03003F80 _08095024: movs r0, #0x36 bl sub_0807CA84 cmp r0, #2 bne _08095086 movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #7 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] b _08095086 _08095040: ldr r0, _0809506C @ =gUnk_03001160 ldrb r0, [r0, #0xc] cmp r0, #0xc beq _08095086 movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x5b bl sub_0807CC30 cmp r0, #0 bne _08095086 movs r0, #0x1c movs r1, #0 movs r2, #0 bl sub_080A7C00 movs r0, #0x5b bl sub_0807CD04 movs r0, #0x3c strb r0, [r4, #0xe] b _08095086 .align 2, 0 _0809506C: .4byte gUnk_03001160 _08095070: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08095086 movs r0, #5 strb r0, [r4, #0xc] movs r0, #1 bl sub_08078A90 _08095086: pop {r4, pc} thumb_func_start sub_08095088 sub_08095088: @ 0x08095088 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xc] cmp r0, #1 beq _080950C8 cmp r0, #1 bgt _0809509C cmp r0, #0 beq _080950A2 b _0809510A _0809509C: cmp r0, #2 beq _080950F0 b _0809510A _080950A2: movs r0, #0x5b bl sub_0807CA84 cmp r0, #0 beq _080950B0 bl sub_0805E780 _080950B0: movs r0, #1 strb r0, [r5, #0xc] adds r2, r5, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 bl sub_080787B4 b _0809510A _080950C8: adds r1, r5, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _0809510A movs r0, #0 strb r0, [r1] movs r0, #2 strb r0, [r5, #0xc] adds r0, r5, #0 bl sub_080788E0 ldr r0, _080950EC @ =0x00001F1F movs r1, #0 bl sub_08078AA8 b _0809510A .align 2, 0 _080950EC: .4byte 0x00001F1F _080950F0: ldr r0, _0809511C @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _0809510A movs r0, #0x5b movs r1, #0 movs r2, #0 bl sub_080A7C00 bl sub_0805E780 _0809510A: ldrb r4, [r5, #0xa] movs r0, #0x5b strb r0, [r5, #0xa] adds r0, r5, #0 bl sub_08080CB4 strb r4, [r5, #0xa] pop {r4, r5, pc} .align 2, 0 _0809511C: .4byte gUnk_02000050 thumb_func_start sub_08095120 sub_08095120: @ 0x08095120 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0809514C movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #3 bl sub_0805E3A0 adds r0, r4, #0 adds r1, r4, #0 bl sub_0806FAD8 adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 movs r1, #2 bl sub_080042AC _0809514C: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 thumb_func_start sub_08095164 sub_08095164: @ 0x08095164 push {lr} sub sp, #4 movs r0, #0 str r0, [sp] movs r0, #6 movs r1, #0x6a movs r2, #6 movs r3, #8 bl sub_0805EB2C cmp r0, #0 beq _08095182 movs r1, #3 bl sub_080042AC _08095182: add sp, #4 pop {pc} .align 2, 0 thumb_func_start sub_08095188 sub_08095188: @ 0x08095188 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080951B4 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #3 bl sub_0805E3A0 adds r0, r4, #0 adds r1, r4, #0 bl sub_0806FAD8 adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 movs r1, #0 bl sub_080042AC _080951B4: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 pop {r4, pc} thumb_func_start sub_080951C4 sub_080951C4: @ 0x080951C4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080951E8 adds r0, #1 strb r0, [r4, #0xc] movs r1, #0 ldr r0, _08095240 @ =0x0000FFF0 strh r0, [r4, #0x36] strb r1, [r4, #0xe] adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 movs r1, #3 bl sub_08004260 _080951E8: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_08004274 movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 bne _08095218 str r0, [r4, #0x34] str r0, [r4, #0x50] ldrb r0, [r4, #0xe] cmp r0, #0 bne _08095218 adds r0, #1 strb r0, [r4, #0xe] movs r0, #0xe6 bl sub_080A3268 _08095218: ldr r3, [r4, #0x50] cmp r3, #0 beq _0809523C ldrb r1, [r3, #0x18] lsls r1, r1, #0x1e lsrs r1, r1, #0x1e ldrb r2, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] ldrh r0, [r3, #0x2e] adds r0, #0x10 strh r0, [r4, #0x2e] ldrh r0, [r3, #0x32] subs r0, #0x10 strh r0, [r4, #0x32] _0809523C: pop {r4, pc} .align 2, 0 _08095240: .4byte 0x0000FFF0 thumb_func_start sub_08095244 sub_08095244: @ 0x08095244 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xa] cmp r0, #0 bne _0809527C movs r0, #0x6a movs r1, #0xa movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _0809527C str r5, [r4, #0x50] movs r2, #0x80 lsls r2, r2, #0xd ldr r3, _08095280 @ =0xFFF00000 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA48 ldr r1, _08095284 @ =gUnk_0801183C adds r0, r4, #0 bl sub_0807DAD0 adds r1, r4, #0 adds r1, #0x84 str r0, [r1] _0809527C: pop {r4, r5, pc} .align 2, 0 _08095280: .4byte 0xFFF00000 _08095284: .4byte gUnk_0801183C thumb_func_start sub_08095288 sub_08095288: @ 0x08095288 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r1, r0, #0 cmp r1, #0 bne _080952AA adds r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0xd] adds r0, r4, #0 movs r1, #3 bl sub_0805E3A0 adds r0, r4, #0 movs r1, #0 bl sub_080042AC _080952AA: ldrb r0, [r4, #0xd] cmp r0, #0 beq _080952F0 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_080044EC cmp r0, #1 bhi _080952D4 movs r0, #0 strb r0, [r4, #0xd] movs r2, #0x80 lsls r2, r2, #1 movs r3, #0xc0 lsls r3, r3, #8 adds r0, r4, #0 adds r1, r2, #0 bl sub_0805EC9C b _080952F0 _080952D4: movs r2, #0x80 lsls r2, r2, #1 ldrb r3, [r4, #0xe] lsls r3, r3, #8 adds r0, r4, #0 adds r1, r2, #0 bl sub_0805EC9C ldrb r0, [r4, #0xe] adds r0, #0xa strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_0806F69C _080952F0: ldr r3, [r4, #0x54] cmp r3, #0 beq _080952FE adds r0, r3, #0 adds r1, r4, #0 bl sub_0806FA24 _080952FE: adds r0, r4, #0 bl sub_080042B8 ldr r3, [r4, #0x50] cmp r3, #0 beq _08095328 ldrb r1, [r3, #0x18] lsls r1, r1, #0x1e lsrs r1, r1, #0x1e ldrb r2, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] ldr r0, [r3, #4] cmp r0, #0 bne _0809532C bl sub_0805E780 b _0809532C _08095328: bl sub_0805E780 _0809532C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08095330 sub_08095330: @ 0x08095330 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x6a movs r1, #0xb movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _0809535E str r4, [r5, #0x54] str r5, [r4, #0x54] str r5, [r4, #0x50] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 ldr r0, _08095360 @ =0x0000FFF0 strh r0, [r4, #0x36] adds r0, r4, #0 adds r1, r4, #0 bl sub_0806FAB0 _0809535E: pop {r4, r5, pc} .align 2, 0 _08095360: .4byte 0x0000FFF0 thumb_func_start sub_08095364 sub_08095364: @ 0x08095364 push {r4, r5, r6, lr} ldr r6, [r0, #0x54] cmp r6, #0 beq _0809539E movs r5, #0 movs r0, #2 strb r0, [r6, #0x1e] adds r0, r6, #0 adds r0, #0x38 movs r4, #1 strb r4, [r0] adds r0, r6, #0 bl sub_08016A04 str r5, [r6, #0x54] strb r4, [r6, #0xd] ldr r0, _080953A0 @ =0x0000FFF0 strh r0, [r6, #0x36] movs r0, #7 strb r0, [r6, #0x15] movs r0, #0xc0 lsls r0, r0, #0xa str r0, [r6, #0x20] movs r0, #0x80 strh r0, [r6, #0x24] adds r0, r6, #0 movs r1, #1 bl sub_080042AC _0809539E: pop {r4, r5, r6, pc} .align 2, 0 _080953A0: .4byte 0x0000FFF0 thumb_func_start sub_080953A4 sub_080953A4: @ 0x080953A4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080953E0 adds r0, #1 strb r0, [r4, #0xc] ldr r0, _08095414 @ =0x0000FFF0 strh r0, [r4, #0x36] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 ldr r1, _08095418 @ =gUnk_08114F30 ldrb r2, [r4, #0x19] lsrs r0, r2, #6 adds r0, r0, r1 ldrb r1, [r0] lsls r1, r1, #6 movs r0, #0x3f ands r0, r2 orrs r0, r1 strb r0, [r4, #0x19] adds r0, r4, #0 adds r1, r4, #0 bl sub_0806FAB0 adds r0, r4, #0 bl sub_0807DD64 _080953E0: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0xa] cmp r0, #0xd bne _08095412 adds r0, r4, #0 adds r0, #0x5b ldrb r1, [r0] movs r0, #1 ands r0, r1 ldr r1, _0809541C @ =0x00000139 cmp r0, #0 beq _0809540C movs r1, #0 _0809540C: adds r0, r4, #0 bl sub_0801D2B4 _08095412: pop {r4, pc} .align 2, 0 _08095414: .4byte 0x0000FFF0 _08095418: .4byte gUnk_08114F30 _0809541C: .4byte 0x00000139 thumb_func_start sub_08095420 sub_08095420: @ 0x08095420 push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 movs r0, #0x6a movs r1, #0xc movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08095450 ldr r3, _08095454 @ =0xFFF00000 adds r0, r5, #0 adds r1, r4, #0 movs r2, #0 bl sub_0806FA48 ldr r1, [r6, #4] adds r0, r4, #0 bl sub_0807DAD0 adds r1, r4, #0 adds r1, #0x84 str r0, [r1] _08095450: pop {r4, r5, r6, pc} .align 2, 0 _08095454: .4byte 0xFFF00000 thumb_func_start nullsub_527 nullsub_527: @ 0x08095458 bx lr .align 2, 0 thumb_func_start sub_0809545C sub_0809545C: @ 0x0809545C push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r1, #0 movs r0, #0x6a movs r1, #0xd movs r2, #0 bl sub_080A2960 adds r5, r0, #0 cmp r5, #0 beq _080954A6 ldr r3, _080954A8 @ =0xFFF00000 adds r0, r4, #0 adds r1, r5, #0 movs r2, #0 bl sub_0806FA48 ldr r1, [r6, #4] adds r0, r5, #0 bl sub_0807DAD0 adds r1, r5, #0 adds r1, #0x84 str r0, [r1] movs r0, #0x6a movs r1, #2 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _080954A6 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 str r5, [r4, #0x50] _080954A6: pop {r4, r5, r6, pc} .align 2, 0 _080954A8: .4byte 0xFFF00000 thumb_func_start sub_080954AC sub_080954AC: @ 0x080954AC push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x6a movs r1, #0x1a movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _080954D6 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 ldr r1, _080954D8 @ =gUnk_08015B14 adds r0, r4, #0 bl sub_0807DAD0 adds r1, r4, #0 adds r1, #0x84 str r0, [r1] _080954D6: pop {r4, r5, pc} .align 2, 0 _080954D8: .4byte gUnk_08015B14 thumb_func_start sub_080954DC sub_080954DC: @ 0x080954DC push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _08095598 cmp r0, #1 bgt _080954F0 cmp r0, #0 beq _080954FC b _0809562C _080954F0: cmp r0, #2 beq _080955B8 cmp r0, #3 bne _080954FA b _08095620 _080954FA: b _0809562C _080954FC: ldrb r0, [r4, #0xe] adds r5, r0, #0 cmp r5, #0 beq _0809550A subs r0, #1 strb r0, [r4, #0xe] b _0809562C _0809550A: movs r0, #1 movs r2, #1 strb r0, [r4, #0xc] strb r5, [r4, #0xd] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] strh r5, [r4, #0x36] adds r3, r4, #0 adds r3, #0x29 ldrb r1, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 strb r0, [r3] ldrh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x68 strh r1, [r0] ldrh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x6a strh r0, [r1] adds r0, r4, #0 adds r0, #0x6c strh r5, [r0] ldr r1, _08095590 @ =gUnk_08122AE0 ldrb r0, [r4, #0xb] adds r0, r0, r1 ldrb r0, [r0] adds r5, r4, #0 adds r5, #0x6e strb r0, [r5] ldr r1, _08095594 @ =gUnk_08122AE8 ldrb r0, [r4, #0xb] lsls r0, r0, #1 adds r0, r0, r1 ldrh r1, [r0] adds r0, r4, #0 bl sub_0801D2B4 adds r0, r4, #0 bl sub_0807DD64 ldrb r1, [r4, #0xb] adds r1, #2 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08095754 bl sub_08000E50 movs r1, #6 bl __modsi3 movs r1, #0xde lsls r1, r1, #1 adds r0, r0, r1 bl sub_080A3268 adds r1, r5, #0 b _08095630 .align 2, 0 _08095590: .4byte gUnk_08122AE0 _08095594: .4byte gUnk_08122AE8 _08095598: ldrh r0, [r4, #0x36] subs r0, #1 strh r0, [r4, #0x36] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r2, #0x10 rsbs r2, r2, #0 adds r1, r4, #0 adds r1, #0x6e cmp r0, r2 bgt _08095630 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] strh r2, [r4, #0x36] b _08095630 _080955B8: adds r5, r4, #0 adds r5, #0x6c ldrh r0, [r5] adds r0, #1 strh r0, [r5] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x40 bls _080955CE movs r0, #0x40 strh r0, [r5] _080955CE: ldr r3, _0809561C @ =gUnk_080C9160 movs r2, #0x6e adds r2, r2, r4 mov ip, r2 ldrb r0, [r2] adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r3 movs r2, #0 ldrsh r1, [r0, r2] ldrh r0, [r5] lsls r0, r0, #8 adds r2, r1, #0 muls r2, r0, r2 asrs r2, r2, #0x10 strh r2, [r4, #0x2e] mov r1, ip ldrb r0, [r1] lsls r0, r0, #1 adds r0, r0, r3 movs r3, #0 ldrsh r1, [r0, r3] ldrh r0, [r5] lsls r0, r0, #7 muls r1, r0, r1 asrs r1, r1, #0x10 strh r1, [r4, #0x32] adds r0, r4, #0 adds r0, #0x68 ldrh r0, [r0] adds r2, r2, r0 strh r2, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x6a ldrh r0, [r0] adds r1, r1, r0 strh r1, [r4, #0x32] mov r1, ip b _08095630 .align 2, 0 _0809561C: .4byte gUnk_080C9160 _08095620: movs r0, #0x24 ldrsh r1, [r4, r0] ldrb r2, [r4, #0x15] adds r0, r4, #0 bl sub_0806F62C _0809562C: adds r1, r4, #0 adds r1, #0x6e _08095630: ldrb r0, [r1] adds r0, #4 strb r0, [r1] ldrb r0, [r4, #0xd] cmp r0, #0 beq _0809564A adds r0, r4, #0 bl sub_080040A8 cmp r0, #0 bne _0809564A bl sub_0805E780 _0809564A: ldrb r1, [r4, #0x15] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0809565E ldrb r1, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 b _08095664 _0809565E: ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 _08095664: strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_08004274 pop {r4, r5, pc} thumb_func_start sub_0809567C sub_0809567C: @ 0x0809567C push {r4, lr} adds r4, r0, #0 movs r0, #3 strb r0, [r4, #0xc] movs r0, #1 strb r0, [r4, #0xd] movs r0, #0x80 lsls r0, r0, #3 strh r0, [r4, #0x24] adds r0, r4, #0 adds r0, #0x68 movs r2, #0 ldrsh r1, [r0, r2] lsls r1, r1, #0x10 ldr r0, [r4, #0x2c] subs r0, r0, r1 adds r1, r4, #0 adds r1, #0x6a movs r3, #0 ldrsh r2, [r1, r3] lsls r2, r2, #0x10 ldr r1, [r4, #0x30] subs r1, r1, r2 bl sub_080045DA strb r0, [r4, #0x15] pop {r4, pc} .align 2, 0 thumb_func_start sub_080956B4 sub_080956B4: @ 0x080956B4 push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r0, [r5, #0xc] cmp r0, #0 bne _080956E2 adds r0, #1 strb r0, [r5, #0xc] adds r0, r5, #0 movs r1, #0 bl sub_08004260 adds r4, r5, #0 adds r4, #0x68 ldrh r2, [r5, #0x2e] ldrh r1, [r5, #0x32] movs r0, #7 _080956D4: strh r2, [r4] adds r4, #2 strh r1, [r4] adds r4, #2 subs r0, #1 cmp r0, #0 bge _080956D4 _080956E2: adds r0, r5, #0 bl sub_08004274 ldrb r0, [r5, #0xb] ldr r1, _08095724 @ =gUnk_030010A0 ldr r1, [r1] adds r0, r0, r1 movs r1, #0xf ands r0, r1 cmp r0, #0 bne _080956FE adds r0, r5, #0 bl sub_080957B4 _080956FE: ldr r6, [r5, #0x50] cmp r6, #0 beq _08095728 ldrb r1, [r6, #0x18] lsls r1, r1, #0x1e lsrs r1, r1, #0x1e ldrb r2, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r5, #0x18] ldr r0, [r6, #4] cmp r0, #0 bne _0809572C bl sub_0805E780 b _0809572C .align 2, 0 _08095724: .4byte gUnk_030010A0 _08095728: bl sub_0805E780 _0809572C: adds r4, r5, #0 adds r4, #0x68 adds r0, r5, #0 adds r0, #0x6c adds r1, r4, #0 movs r2, #0x1c bl sub_0801D66C ldrh r0, [r4, #0x14] strh r0, [r5, #0x2e] ldrh r0, [r4, #0x16] strh r0, [r5, #0x32] ldrh r0, [r6, #0x36] strh r0, [r5, #0x36] ldrh r0, [r6, #0x2e] strh r0, [r4, #0x1c] ldrh r0, [r6, #0x32] strh r0, [r4, #0x1e] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08095754 sub_08095754: @ 0x08095754 push {r4, r5, lr} adds r5, r0, #0 ldrb r2, [r5, #0xb] movs r0, #0x6a movs r1, #0xf bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _0809577A str r5, [r4, #0x50] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FAD8 _0809577A: pop {r4, r5, pc} thumb_func_start sub_0809577C sub_0809577C: @ 0x0809577C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08095796 adds r0, #1 strb r0, [r4, #0xc] ldr r0, _080957B0 @ =0x0000FFF0 strh r0, [r4, #0x36] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _08095796: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080957AE bl sub_0805E780 _080957AE: pop {r4, pc} .align 2, 0 _080957B0: .4byte 0x0000FFF0 thumb_func_start sub_080957B4 sub_080957B4: @ 0x080957B4 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x6a movs r1, #0x10 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _080957DA str r5, [r4, #0x50] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FAD8 _080957DA: pop {r4, r5, pc} thumb_func_start sub_080957DC sub_080957DC: @ 0x080957DC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080957F8 adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 movs r1, #0 bl sub_080042AC _080957F8: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 thumb_func_start sub_08095810 sub_08095810: @ 0x08095810 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x6a movs r1, #0x11 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08095844 str r5, [r4, #0x50] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FAB0 ldr r1, _08095848 @ =gUnk_08011940 adds r0, r4, #0 bl sub_0807DAD0 adds r1, r4, #0 adds r1, #0x84 str r0, [r1] _08095844: pop {r4, r5, pc} .align 2, 0 _08095848: .4byte gUnk_08011940 thumb_func_start sub_0809584C sub_0809584C: @ 0x0809584C push {r4, r5, lr} adds r5, r0, #0 adds r0, #0x45 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 beq _0809586C ldr r0, _080958D0 @ =gUnk_020342F8 subs r1, #1 bl sub_0801D5A8 cmp r0, #0 bne _0809586C bl sub_0805E780 _0809586C: ldrb r0, [r5, #0xe] cmp r0, #0 beq _08095880 ldrb r0, [r5, #0xb] bl sub_0801E7F4 cmp r0, #0 beq _08095880 bl sub_0805E780 _08095880: ldrb r0, [r5, #0xc] cmp r0, #0 bne _080958B2 adds r0, #1 strb r0, [r5, #0xc] adds r1, r5, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r5, #0 bl sub_08016A04 ldr r1, _080958D4 @ =gUnk_08114F30 ldrb r2, [r5, #0x19] lsrs r0, r2, #6 adds r0, r0, r1 ldrb r1, [r0] lsls r1, r1, #6 movs r0, #0x3f ands r0, r2 orrs r0, r1 strb r0, [r5, #0x19] adds r0, r5, #0 bl sub_0807DD64 _080958B2: adds r0, r5, #0 movs r1, #0 bl sub_0807DDAC adds r0, r5, #0 bl sub_0807DDE4 ldrb r4, [r5, #0xa] movs r0, #0x5c strb r0, [r5, #0xa] adds r0, r5, #0 bl sub_08080CB4 strb r4, [r5, #0xa] pop {r4, r5, pc} .align 2, 0 _080958D0: .4byte gUnk_020342F8 _080958D4: .4byte gUnk_08114F30 thumb_func_start sub_080958D8 sub_080958D8: @ 0x080958D8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080958EC adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0807DD64 _080958EC: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08095914 adds r0, r4, #0 bl sub_08095954 _08095914: pop {r4, pc} .align 2, 0 thumb_func_start sub_08095918 sub_08095918: @ 0x08095918 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0809593C adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 movs r1, #0 bl sub_08004260 _0809593C: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 thumb_func_start sub_08095954 sub_08095954: @ 0x08095954 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x6a movs r1, #0x14 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _080959B8 str r5, [r4, #0x50] ldrb r0, [r5, #0x14] ldr r1, _080959AC @ =gUnk_08122AF8 adds r0, r0, r1 movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #0x10 movs r3, #1 ldrsb r3, [r0, r3] lsls r3, r3, #0x10 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA48 ldr r0, _080959B0 @ =0x0000FFFD strh r0, [r4, #0x36] ldr r1, _080959B4 @ =gUnk_08012C48 adds r0, r4, #0 bl sub_0807DAD0 adds r1, r4, #0 adds r1, #0x84 str r0, [r1] movs r0, #0x92 lsls r0, r0, #1 bl sub_08004488 adds r2, r5, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0xfe ands r0, r1 strb r0, [r2] b _080959C4 .align 2, 0 _080959AC: .4byte gUnk_08122AF8 _080959B0: .4byte 0x0000FFFD _080959B4: .4byte gUnk_08012C48 _080959B8: ldr r0, _080959C8 @ =gUnk_02033280 ldr r1, [r0] movs r2, #0x80 lsls r2, r2, #1 orrs r1, r2 str r1, [r0] _080959C4: pop {r4, r5, pc} .align 2, 0 _080959C8: .4byte gUnk_02033280 thumb_func_start sub_080959CC sub_080959CC: @ 0x080959CC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080959F2 adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #3 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD64 _080959F2: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x81 rsbs r0, r0, #0 ands r1, r0 adds r0, r4, #0 bl sub_08095D30 pop {r4, pc} .align 2, 0 thumb_func_start sub_08095A1C sub_08095A1C: @ 0x08095A1C push {r4, r5, lr} adds r5, r1, #0 movs r0, #0x6a movs r1, #0x16 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08095A5E ldr r1, _08095A60 @ =gUnk_03000BF0 ldrh r0, [r1, #6] adds r0, #0xe8 strh r0, [r4, #0x2e] movs r2, #0x9c lsls r2, r2, #1 adds r0, r2, #0 ldrh r1, [r1, #8] adds r0, r0, r1 strh r0, [r4, #0x32] ldr r0, _08095A64 @ =0x0000FFFC strh r0, [r4, #0x36] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] ldr r1, [r5, #4] adds r0, r4, #0 bl sub_0807DAD0 adds r1, r4, #0 adds r1, #0x84 str r0, [r1] _08095A5E: pop {r4, r5, pc} .align 2, 0 _08095A60: .4byte gUnk_03000BF0 _08095A64: .4byte 0x0000FFFC thumb_func_start sub_08095A68 sub_08095A68: @ 0x08095A68 push {lr} sub sp, #4 movs r0, #0 str r0, [sp] movs r0, #6 movs r1, #0x6a movs r2, #6 movs r3, #0x16 bl sub_0805EB2C adds r1, r0, #0 cmp r1, #0 beq _08095A86 movs r0, #0xff strb r0, [r1, #0xc] _08095A86: add sp, #4 pop {pc} .align 2, 0 thumb_func_start sub_08095A8C sub_08095A8C: @ 0x08095A8C push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #5 bhi _08095B44 lsls r0, r0, #2 ldr r1, _08095AA0 @ =_08095AA4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08095AA0: .4byte _08095AA4 _08095AA4: @ jump table .4byte _08095ABC @ case 0 .4byte _08095ACC @ case 1 .4byte _08095ADC @ case 2 .4byte _08095AE6 @ case 3 .4byte _08095B12 @ case 4 .4byte _08095B1C @ case 5 _08095ABC: ldrb r0, [r4, #0xc] adds r0, #1 movs r1, #0 strb r0, [r4, #0xc] strb r1, [r4, #0x1e] adds r0, r4, #0 bl sub_0807DD64 _08095ACC: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 b _08095B44 _08095ADC: ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xe] _08095AE6: ldrb r1, [r4, #0x18] lsls r0, r1, #0x1e lsrs r0, r0, #0x1e movs r5, #1 eors r0, r5 movs r3, #4 rsbs r3, r3, #0 adds r2, r3, #0 ands r2, r1 orrs r2, r0 strb r2, [r4, #0x18] ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08095B44 movs r0, #1 strb r5, [r4, #0xc] ands r2, r3 orrs r2, r0 b _08095B42 _08095B12: ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xe] _08095B1C: ldrb r1, [r4, #0x18] lsls r0, r1, #0x1e lsrs r0, r0, #0x1e movs r5, #1 eors r0, r5 movs r3, #4 rsbs r3, r3, #0 adds r2, r3, #0 ands r2, r1 orrs r2, r0 strb r2, [r4, #0x18] ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08095B44 strb r5, [r4, #0xc] ands r2, r3 _08095B42: strb r2, [r4, #0x18] _08095B44: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08095B48 sub_08095B48: @ 0x08095B48 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xc] cmp r0, #0 bne _08095B78 adds r0, #1 strb r0, [r5, #0xc] adds r1, r5, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r5, #0 bl sub_08016A04 ldr r1, _08095BA8 @ =gUnk_08114F30 ldrb r2, [r5, #0x19] lsrs r0, r2, #6 adds r0, r0, r1 ldrb r1, [r0] lsls r1, r1, #6 movs r0, #0x3f ands r0, r2 orrs r0, r1 strb r0, [r5, #0x19] _08095B78: ldrb r0, [r5, #0x18] movs r4, #4 rsbs r4, r4, #0 adds r1, r4, #0 ands r1, r0 strb r1, [r5, #0x18] ldr r2, [r5, #0x50] cmp r2, #0 beq _08095BCE adds r0, r2, #0 adds r0, #0x5a ldrb r3, [r0] movs r0, #0x40 ands r0, r3 cmp r0, #0 bne _08095BAC movs r0, #0x80 ands r0, r3 cmp r0, #0 beq _08095BCE bl sub_0805E780 b _08095BDC .align 2, 0 _08095BA8: .4byte gUnk_08114F30 _08095BAC: adds r0, r1, #0 ands r0, r4 movs r1, #1 orrs r0, r1 strb r0, [r5, #0x18] ldrh r0, [r2, #0x12] ldrb r1, [r2, #0x1e] bl sub_080700C8 ldrb r1, [r0] adds r2, r5, #0 adds r2, #0x62 strb r1, [r2] ldrb r0, [r0, #1] adds r1, r5, #0 adds r1, #0x63 strb r0, [r1] _08095BCE: ldrb r4, [r5, #0xa] ldrb r0, [r5, #0xb] strb r0, [r5, #0xa] adds r0, r5, #0 bl sub_08080CB4 strb r4, [r5, #0xa] _08095BDC: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08095BE0 sub_08095BE0: @ 0x08095BE0 push {r4, lr} adds r4, r0, #0 adds r2, r1, #0 movs r0, #0x6a movs r1, #0x18 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _08095BFC str r4, [r1, #0x50] adds r0, r4, #0 bl sub_0806FA24 _08095BFC: pop {r4, pc} .align 2, 0 thumb_func_start sub_08095C00 sub_08095C00: @ 0x08095C00 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0xc] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08095C14 bl sub_0805E780 b _08095C46 _08095C14: ldr r3, [r2, #0x50] cmp r3, #0 beq _08095C46 adds r1, r2, #0 adds r1, #0x60 movs r0, #0xe8 strh r0, [r1] ldrb r0, [r3, #0x18] lsls r0, r0, #0x1e lsrs r0, r0, #0x1e cmp r0, #1 bne _08095C38 ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2, #0x18] b _08095C46 _08095C38: ldrb r0, [r2, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 movs r0, #1 orrs r1, r0 strb r1, [r2, #0x18] _08095C46: pop {pc} thumb_func_start sub_08095C48 sub_08095C48: @ 0x08095C48 push {r4, lr} adds r4, r0, #0 movs r0, #0x6a movs r1, #0x19 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _08095C66 str r1, [r4, #0x54] str r4, [r1, #0x50] adds r0, r4, #0 bl sub_0806FA24 _08095C66: pop {r4, pc} thumb_func_start sub_08095C68 sub_08095C68: @ 0x08095C68 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08095C80 adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x1e] ldrh r2, [r4, #0x12] adds r0, r4, #0 bl sub_080042D0 _08095C80: ldrb r0, [r4, #0xe] cmp r0, #0 beq _08095CAA subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #7 bhi _08095CA4 ldrb r2, [r4, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #1 eors r1, r0 subs r0, #5 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] _08095CA4: ldrb r0, [r4, #0xe] cmp r0, #0 bne _08095CAE _08095CAA: bl sub_0805E780 _08095CAE: pop {r4, pc} thumb_func_start sub_08095CB0 sub_08095CB0: @ 0x08095CB0 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x6a movs r1, #0x1b movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08095CDC str r4, [r5, #0x54] str r5, [r4, #0x50] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 movs r0, #0x10 strb r0, [r4, #0xe] ldrb r0, [r5, #0x1e] strb r0, [r4, #0x1e] ldrb r0, [r5, #0x1e] strb r0, [r4, #0x1f] _08095CDC: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08095CE0 sub_08095CE0: @ 0x08095CE0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08095D06 adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD64 _08095D06: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x81 rsbs r0, r0, #0 ands r1, r0 adds r0, r4, #0 bl sub_08095D30 pop {r4, pc} .align 2, 0 thumb_func_start sub_08095D30 sub_08095D30: @ 0x08095D30 push {lr} adds r2, r0, #0 adds r0, r1, #0 cmp r0, #0 beq _08095D4E ldr r1, _08095D50 @ =gUnk_08122B00 lsls r0, r0, #1 adds r0, r0, r1 ldrh r1, [r0] movs r0, #0x81 rsbs r0, r0, #0 ands r1, r0 adds r0, r2, #0 bl sub_0801D2B4 _08095D4E: pop {pc} .align 2, 0 _08095D50: .4byte gUnk_08122B00 thumb_func_start sub_08095D54 sub_08095D54: @ 0x08095D54 push {r4, r5, lr} adds r5, r1, #0 movs r0, #0x6a movs r1, #0x1c movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08095D86 ldr r0, _08095D88 @ =gUnk_03001160 adds r1, r4, #0 bl sub_0806FA24 adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] ldr r1, [r5, #4] adds r0, r4, #0 bl sub_0807DAD0 adds r1, r4, #0 adds r1, #0x84 str r0, [r1] _08095D86: pop {r4, r5, pc} .align 2, 0 _08095D88: .4byte gUnk_03001160 thumb_func_start sub_08095D8C sub_08095D8C: @ 0x08095D8C push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 movs r0, #0x6a movs r1, #0x1d movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08095DB8 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 ldr r1, [r6, #4] adds r0, r4, #0 bl sub_0807DAD0 adds r1, r4, #0 adds r1, #0x84 str r0, [r1] _08095DB8: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08095DBC sub_08095DBC: @ 0x08095DBC push {r4, r5, lr} adds r4, r0, #0 ldr r5, _08095DF0 @ =gUnk_02033280 ldr r0, [r5] movs r1, #0x10 ands r0, r1 cmp r0, #0 beq _08095DD0 bl sub_0805E780 _08095DD0: ldrb r0, [r4, #0xb] cmp r0, #0 bne _08095DF4 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08095DE6 adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0807DD64 _08095DE6: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC b _08095E74 .align 2, 0 _08095DF0: .4byte gUnk_02033280 _08095DF4: ldrb r0, [r4, #0xc] cmp r0, #0 bne _08095E30 adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0x4b bl sub_08004260 ldr r1, _08095E78 @ =gUnk_08114F30 ldrb r2, [r4, #0x19] lsrs r0, r2, #6 adds r0, r0, r1 ldrb r1, [r0] lsls r1, r1, #6 movs r0, #0x3f ands r0, r2 orrs r0, r1 strb r0, [r4, #0x19] adds r0, r4, #0 adds r1, r4, #0 bl sub_0806FAB0 _08095E30: ldrb r2, [r4, #0xb] movs r0, #0x80 ands r0, r2 cmp r0, #0 bne _08095E56 ldr r0, [r5] movs r1, #0x80 lsls r1, r1, #0xa ands r0, r1 cmp r0, #0 beq _08095E56 movs r0, #0xff strb r0, [r4, #0xb] movs r0, #0x80 lsls r0, r0, #0xb str r0, [r4, #0x20] movs r0, #0xc0 lsls r0, r0, #8 strh r0, [r4, #0x24] _08095E56: movs r0, #0x24 ldrsh r1, [r4, r0] adds r0, r4, #0 bl sub_08003FC4 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080040A8 cmp r0, #0 bne _08095E74 bl sub_0805E780 _08095E74: pop {r4, r5, pc} .align 2, 0 _08095E78: .4byte gUnk_08114F30 thumb_func_start sub_08095E7C sub_08095E7C: @ 0x08095E7C push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 movs r0, #0x6a movs r1, #0x1e movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08095EA8 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 ldr r1, [r6, #4] adds r0, r4, #0 bl sub_0807DAD0 adds r1, r4, #0 adds r1, #0x84 str r0, [r1] _08095EA8: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08095EAC sub_08095EAC: @ 0x08095EAC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} mov sb, r0 adds r4, r1, #0 movs r0, #0x6a movs r1, #0x1e movs r2, #1 bl sub_080A2960 adds r5, r0, #0 cmp r5, #0 beq _08095F2A ldr r0, [r4, #4] cmp r0, #0 bne _08095EE0 movs r7, #0x10 movs r6, #0x1f movs r0, #0x80 lsls r0, r0, #7 mov sl, r0 movs r2, #0 mov r8, r2 b _08095F02 _08095EE0: movs r7, #8 movs r6, #0xf movs r0, #0x80 lsls r0, r0, #0xb mov sl, r0 ldr r4, _08095F34 @ =gUnk_08122B0E bl sub_08000E50 movs r1, #7 ands r1, r0 lsls r1, r1, #1 adds r1, r1, r4 movs r0, #0 ldrsh r2, [r1, r0] mov r8, r2 movs r0, #0xff strb r0, [r5, #0xb] _08095F02: bl sub_08000E50 adds r4, r0, #0 ands r4, r6 subs r4, r7, r4 bl sub_08000E50 ands r6, r0 subs r3, r7, r6 lsls r4, r4, #0x10 lsls r3, r3, #0x10 mov r0, sb adds r1, r5, #0 adds r2, r4, #0 bl sub_0806FA48 mov r2, sl str r2, [r5, #0x20] mov r0, r8 strh r0, [r5, #0x24] _08095F2A: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _08095F34: .4byte gUnk_08122B0E thumb_func_start sub_08095F38 sub_08095F38: @ 0x08095F38 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08095FC2 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0xff strb r0, [r4, #0x1e] ldrb r0, [r4, #0xb] cmp r0, #4 beq _08095F64 cmp r0, #4 bgt _08095F5A cmp r0, #3 beq _08095F60 b _08095F6A _08095F5A: cmp r0, #6 beq _08095F68 b _08095F6A _08095F60: movs r1, #0 b _08095F6A _08095F64: movs r1, #1 b _08095F6A _08095F68: movs r1, #4 _08095F6A: adds r0, r4, #0 bl sub_0801D2B4 ldr r0, _08095F90 @ =gUnk_03001160 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 bne _08095F98 adds r1, r4, #0 adds r1, #0x84 ldr r0, _08095F94 @ =0x000008BF str r0, [r1] movs r0, #0x34 strb r0, [r4, #0xe] movs r0, #0xb5 b _08095FA6 .align 2, 0 _08095F90: .4byte gUnk_03001160 _08095F94: .4byte 0x000008BF _08095F98: adds r1, r4, #0 adds r1, #0x84 ldr r0, _08096020 @ =0x000008E3 str r0, [r1] movs r0, #0x55 strb r0, [r4, #0xe] movs r0, #0xd6 _08095FA6: strb r0, [r4, #0xf] ldr r0, _08096024 @ =gUnk_03001160 adds r1, r4, #0 bl sub_0806FA24 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] _08095FC2: ldr r5, _08096024 @ =gUnk_03001160 adds r2, r5, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08095FE0 movs r0, #0xef ands r0, r1 strb r0, [r2] movs r0, #0xea lsls r0, r0, #1 bl sub_080A3268 _08095FE0: ldrh r0, [r5, #0x12] adds r1, r4, #0 adds r1, #0x84 ldr r2, [r1] lsrs r1, r2, #8 cmp r0, r1 bne _08095FFC adds r0, r5, #0 adds r0, #0x58 ldrb r1, [r0] lsls r0, r2, #0x18 lsrs r0, r0, #0x18 cmp r1, r0 beq _08096000 _08095FFC: bl sub_0805E780 _08096000: ldr r0, _08096024 @ =gUnk_03001160 ldrb r0, [r0, #0x1e] ldrb r1, [r4, #0xe] subs r0, r0, r1 ldrb r1, [r4, #0xf] adds r0, r0, r1 ldrb r1, [r4, #0x1e] cmp r0, r1 beq _0809601E strb r0, [r4, #0x1e] ldrb r1, [r4, #0x1e] ldrh r2, [r4, #0x12] adds r0, r4, #0 bl sub_080042D0 _0809601E: pop {r4, r5, pc} .align 2, 0 _08096020: .4byte 0x000008E3 _08096024: .4byte gUnk_03001160 thumb_func_start sub_08096028 sub_08096028: @ 0x08096028 push {r4, r5, lr} movs r4, #6 movs r5, #0xc0 lsls r5, r5, #2 adds r0, r5, #0 movs r1, #0x7b bl sub_0807CB10 cmp r0, #0 bne _0809603E movs r4, #4 _0809603E: adds r0, r5, #0 movs r1, #0x7a bl sub_0807CB10 cmp r0, #0 bne _0809604C movs r4, #3 _0809604C: movs r0, #0x6a movs r1, #0x1f adds r2, r4, #0 bl sub_080A2960 pop {r4, r5, pc} thumb_func_start sub_08096058 sub_08096058: @ 0x08096058 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0809606C adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0807DD64 _0809606C: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 thumb_func_start sub_08096084 sub_08096084: @ 0x08096084 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080960A0 adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0807DD64 ldrb r1, [r4, #0xb] adds r0, r4, #0 bl sub_08004260 _080960A0: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_08004274 ldr r0, [r4, #0x50] cmp r0, #0 beq _080960C0 adds r1, r4, #0 bl sub_0806FA24 _080960C0: pop {r4, pc} .align 2, 0 thumb_func_start sub_080960C4 sub_080960C4: @ 0x080960C4 push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 movs r0, #0x6a movs r1, #0x23 movs r2, #0x49 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08096110 str r5, [r4, #0x50] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 ldr r1, _08096160 @ =gUnk_08114F34 ldrb r0, [r5, #0x19] lsrs r0, r0, #6 adds r0, r0, r1 ldrb r1, [r0] lsls r1, r1, #6 ldrb r2, [r4, #0x19] movs r0, #0x3f ands r0, r2 orrs r0, r1 strb r0, [r4, #0x19] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FAD8 ldr r1, [r6, #4] adds r0, r4, #0 bl sub_0807DAD0 adds r1, r4, #0 adds r1, #0x84 str r0, [r1] _08096110: movs r0, #0x6a movs r1, #0x24 movs r2, #0x4a bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _0809615E str r5, [r4, #0x50] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 ldr r1, _08096164 @ =gUnk_08114F30 ldrb r0, [r5, #0x19] lsrs r0, r0, #6 adds r0, r0, r1 ldrb r1, [r0] lsls r1, r1, #6 ldrb r2, [r4, #0x19] movs r0, #0x3f ands r0, r2 orrs r0, r1 strb r0, [r4, #0x19] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FAB0 adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] ldr r1, [r6, #4] adds r0, r4, #0 bl sub_0807DAD0 adds r1, r4, #0 adds r1, #0x84 str r0, [r1] _0809615E: pop {r4, r5, r6, pc} .align 2, 0 _08096160: .4byte gUnk_08114F34 _08096164: .4byte gUnk_08114F30 thumb_func_start sub_08096168 sub_08096168: @ 0x08096168 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0809618C adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0x4b bl sub_08004260 _0809618C: adds r0, r4, #0 bl sub_08004274 movs r0, #0x24 ldrsh r1, [r4, r0] ldrb r2, [r4, #0x15] adds r0, r4, #0 bl sub_0806F62C adds r0, r4, #0 bl sub_080040A8 cmp r0, #0 bne _080961AC bl sub_0805E780 _080961AC: pop {r4, pc} .align 2, 0 thumb_func_start sub_080961B0 sub_080961B0: @ 0x080961B0 push {r4, r5, r6, r7, lr} adds r7, r0, #0 movs r5, #0 ldr r6, _080961F0 @ =gUnk_08122B1E _080961B8: movs r0, #0x6a movs r1, #0x25 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _080961E6 adds r0, r7, #0 adds r1, r4, #0 bl sub_0806FA24 lsls r0, r5, #5 strb r0, [r4, #0x15] bl sub_08000E50 movs r2, #0xf8 lsls r2, r2, #1 adds r1, r2, #0 ands r0, r1 ldrh r1, [r6] adds r0, r0, r1 strh r0, [r4, #0x24] _080961E6: adds r6, #2 adds r5, #1 cmp r5, #7 ble _080961B8 pop {r4, r5, r6, r7, pc} .align 2, 0 _080961F0: .4byte gUnk_08122B1E thumb_func_start sub_080961F4 sub_080961F4: @ 0x080961F4 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 r1, #0 strb r1, [r0, #0x1e] bx lr thumb_func_start sub_08096208 sub_08096208: @ 0x08096208 push {r4, r5, lr} adds r5, r0, #0 lsls r1, r1, #1 ldr r0, _08096238 @ =gUnk_08122B2E adds r4, r1, r0 movs r0, #0x6a movs r1, #0x26 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _08096234 movs r2, #0 ldrsb r2, [r4, r2] lsls r2, r2, #0x10 movs r3, #1 ldrsb r3, [r4, r3] lsls r3, r3, #0x10 adds r0, r5, #0 bl sub_0806FA48 _08096234: pop {r4, r5, pc} .align 2, 0 _08096238: .4byte gUnk_08122B2E thumb_func_start sub_0809623C sub_0809623C: @ 0x0809623C push {r4, lr} adds r4, r0, #0 movs r0, #0x6a movs r1, #0x27 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _0809625A ldr r3, _0809625C @ =0xFFF00000 adds r0, r4, #0 movs r2, #0 bl sub_0806FA48 _0809625A: pop {r4, pc} .align 2, 0 _0809625C: .4byte 0xFFF00000 thumb_func_start sub_08096260 sub_08096260: @ 0x08096260 push {r4, lr} adds r4, r0, #0 movs r0, #0x6a movs r1, #0x28 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _0809627E ldr r3, _08096280 @ =0xFFF00000 adds r0, r4, #0 movs r2, #0 bl sub_0806FA48 _0809627E: pop {r4, pc} .align 2, 0 _08096280: .4byte 0xFFF00000 thumb_func_start sub_08096284 sub_08096284: @ 0x08096284 push {lr} movs r1, #0xd bl sub_0809629C pop {pc} .align 2, 0 thumb_func_start sub_08096290 sub_08096290: @ 0x08096290 push {lr} movs r1, #0xe bl sub_0809629C pop {pc} .align 2, 0 thumb_func_start sub_0809629C sub_0809629C: @ 0x0809629C push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 ldrb r0, [r5, #0xc] cmp r0, #0 bne _080962B2 movs r0, #1 strb r0, [r5, #0xc] adds r0, r5, #0 bl sub_0807DD64 _080962B2: adds r0, r5, #0 movs r1, #0 bl sub_0807DDAC adds r0, r5, #0 bl sub_0807DDE4 movs r1, #0x80 lsls r1, r1, #5 adds r0, r5, #0 bl sub_08003FC4 ldrb r4, [r5, #0xa] strb r6, [r5, #0xa] adds r0, r5, #0 bl sub_08080CB4 strb r4, [r5, #0xa] pop {r4, r5, r6, pc} thumb_func_start sub_080962D8 sub_080962D8: @ 0x080962D8 push {lr} movs r1, #0x80 lsls r1, r1, #1 movs r0, #6 bl sub_08050054 pop {pc} .align 2, 0 thumb_func_start sub_080962E8 sub_080962E8: @ 0x080962E8 push {lr} movs r1, #0x80 lsls r1, r1, #1 movs r0, #7 bl sub_08050054 pop {pc} .align 2, 0 thumb_func_start sub_080962F8 sub_080962F8: @ 0x080962F8 push {r4, r5, lr} adds r5, r0, #0 ldr r4, [r1, #4] lsls r4, r4, #4 ldr r0, _08096318 @ =gUnk_08122B3C adds r4, r4, r0 ldrb r2, [r4, #0xc] adds r3, r4, #0 adds r3, #8 adds r0, r5, #0 movs r1, #1 bl sub_08078850 str r4, [r5, #0x48] pop {r4, r5, pc} .align 2, 0 _08096318: .4byte gUnk_08122B3C thumb_func_start sub_0809631C sub_0809631C: @ 0x0809631C push {lr} ldr r2, _08096330 @ =gUnk_08123168 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08096330: .4byte gUnk_08123168 thumb_func_start sub_08096334 sub_08096334: @ 0x08096334 push {r4, r5, r6, lr} adds r5, r0, #0 movs r0, #1 strb r0, [r5, #0xc] movs r4, #0 movs r6, #0x80 strh r6, [r5, #0x24] ldr r0, _08096358 @ =gUnk_080FD2A8 str r0, [r5, #0x48] ldrb r0, [r5, #0xa] cmp r0, #1 bne _0809634E b _08096494 _0809634E: cmp r0, #1 bgt _0809635C cmp r0, #0 beq _08096368 b _0809650A .align 2, 0 _08096358: .4byte gUnk_080FD2A8 _0809635C: cmp r0, #2 bne _08096362 b _080964A6 _08096362: cmp r0, #3 beq _080963FC b _0809650A _08096368: movs r0, #0x1a bl sub_0807CC30 cmp r0, #0 beq _080963DA movs r0, #0x1b bl sub_0807CC30 cmp r0, #0 bne _080963A4 ldr r0, _0809639C @ =gUnk_03001160 movs r3, #0x80 lsls r3, r3, #9 adds r1, r5, #0 movs r2, #0 bl sub_0806FA48 ldr r0, _080963A0 @ =0x00004022 adds r1, r5, #0 adds r1, #0x38 ldrb r2, [r1] movs r1, #0xdc bl sub_0800015E b _0809650A .align 2, 0 _0809639C: .4byte gUnk_03001160 _080963A0: .4byte 0x00004022 _080963A4: ldrb r0, [r5, #0xb] bl sub_0807CBD0 cmp r0, #0 bne _080963C8 adds r0, r5, #0 movs r1, #0xa bl sub_08004260 ldrh r0, [r5, #0x32] adds r0, #4 strh r0, [r5, #0x32] movs r0, #4 strb r0, [r5, #0xc] ldr r0, _080963C4 @ =0x0000403B b _080964C4 .align 2, 0 _080963C4: .4byte 0x0000403B _080963C8: strb r4, [r5, #0xb] movs r0, #2 strb r0, [r5, #0xf] adds r0, r5, #0 bl sub_080969A4 bl sub_0805E780 b _0809650A _080963DA: ldr r1, _080963F8 @ =gUnk_03000BF0 ldrh r0, [r1, #6] adds r0, #0xd0 strh r0, [r5, #0x2e] ldrh r0, [r1, #8] adds r0, #0x44 strh r0, [r5, #0x32] movs r0, #4 strb r0, [r5, #0xc] ldrb r1, [r5, #0xa] adds r1, #3 adds r0, r5, #0 bl sub_08004260 b _0809651A .align 2, 0 _080963F8: .4byte gUnk_03000BF0 _080963FC: movs r0, #0x1a bl sub_0807CC30 cmp r0, #0 beq _08096450 movs r0, #0x1b bl sub_0807CC30 cmp r0, #0 bne _0809644C ldr r0, _08096444 @ =gUnk_03001160 adds r1, r0, #0 adds r1, #0x29 ldrb r2, [r1] lsls r2, r2, #0x1d lsrs r2, r2, #0x1d subs r2, #1 adds r4, r5, #0 adds r4, #0x29 movs r1, #7 ands r2, r1 ldrb r3, [r4] movs r1, #8 rsbs r1, r1, #0 ands r1, r3 orrs r1, r2 strb r1, [r4] adds r1, r0, #0 adds r1, #0x79 strb r6, [r1] ldr r3, _08096448 @ =0xFFE80000 adds r1, r5, #0 movs r2, #0 bl sub_0806FA48 b _08096450 .align 2, 0 _08096444: .4byte gUnk_03001160 _08096448: .4byte 0xFFE80000 _0809644C: bl sub_0805E780 _08096450: adds r0, r5, #0 movs r1, #0x6b movs r2, #1 movs r3, #0 bl sub_080A2988 adds r1, r0, #0 str r1, [r5, #0x54] cmp r1, #0 beq _0809646E ldr r2, _0809648C @ =0xFFE40000 ldr r3, _08096490 @ =0xFFD80000 adds r0, r5, #0 bl sub_0806FA48 _0809646E: movs r0, #0x10 strb r0, [r5, #0x16] ldrb r0, [r5, #0x19] movs r1, #3 orrs r0, r1 strb r0, [r5, #0x19] adds r0, r5, #0 movs r1, #0xc bl sub_08004260 adds r0, r5, #0 bl sub_0809651C b _0809651A .align 2, 0 _0809648C: .4byte 0xFFE40000 _08096490: .4byte 0xFFD80000 _08096494: ldrb r0, [r5, #0x19] movs r1, #3 orrs r0, r1 strb r0, [r5, #0x19] adds r0, r5, #0 movs r1, #6 bl sub_0805E3A0 b _0809650A _080964A6: ldrb r0, [r5, #0xb] bl sub_0807CBD0 cmp r0, #0 bne _080964F8 adds r0, r5, #0 movs r1, #0xb bl sub_08004260 ldrh r0, [r5, #0x32] adds r0, #4 strh r0, [r5, #0x32] movs r0, #4 strb r0, [r5, #0xc] ldr r0, _080964F0 @ =0x00004032 _080964C4: movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _080964F4 @ =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 b _0809651A .align 2, 0 _080964F0: .4byte 0x00004032 _080964F4: .4byte gUnk_03000BF0 _080964F8: strb r4, [r5, #0xb] movs r0, #3 strb r0, [r5, #0xf] adds r0, r5, #0 bl sub_080969A4 bl sub_0805E780 b _0809651A _0809650A: ldrb r1, [r5, #0xa] adds r1, #3 adds r0, r5, #0 bl sub_08004260 adds r0, r5, #0 bl sub_0809651C _0809651A: pop {r4, r5, r6, pc} thumb_func_start sub_0809651C sub_0809651C: @ 0x0809651C push {r4, r5, r6, r7, lr} adds r6, r0, #0 ldrb r3, [r6, #0xa] movs r0, #1 ands r0, r3 cmp r0, #0 beq _080965D6 cmp r3, #3 bne _0809653C adds r0, r6, #0 bl sub_08078930 adds r0, r6, #0 bl sub_0800445C b _080965C8 _0809653C: ldr r0, [r6, #0x50] ldr r2, _0809655C @ =0xFFE40000 ldr r3, _08096560 @ =0xFFD80000 adds r1, r6, #0 bl sub_0806FA48 ldr r1, [r6, #0x50] ldrb r0, [r1, #0xc] cmp r0, #2 bne _08096586 ldrb r0, [r1, #0xd] cmp r0, #1 beq _08096564 cmp r0, #2 beq _08096580 b _08096570 .align 2, 0 _0809655C: .4byte 0xFFE40000 _08096560: .4byte 0xFFD80000 _08096564: ldr r0, _0809657C @ =gUnk_03003F80 ldrb r1, [r0, #0xd] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08096580 _08096570: adds r0, r6, #0 movs r1, #4 bl sub_08004260 b _08096586 .align 2, 0 _0809657C: .4byte gUnk_03003F80 _08096580: adds r0, r6, #0 bl sub_08004274 _08096586: ldr r0, [r6, #0x50] adds r0, #0x29 ldrb r1, [r0] lsls r1, r1, #0x1d lsrs r1, r1, #0x1d subs r1, #1 adds r3, r6, #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] ldr r4, [r6, #0x50] ldrb r2, [r4, #0x19] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r3, [r6, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r3 orrs r0, r2 strb r0, [r6, #0x19] ldrb r0, [r4, #0x1b] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r6, #0x1b] ands r1, r2 orrs r1, r0 strb r1, [r6, #0x1b] _080965C8: adds r0, r6, #0 movs r1, #0xcc movs r2, #0xcc movs r3, #0 bl sub_0805EC9C b _080966F6 _080965D6: ldr r1, _080965FC @ =gUnk_03003F80 ldrb r2, [r1, #0x1a] movs r0, #0x80 orrs r0, r2 strb r0, [r1, #0x1a] movs r0, #5 strb r0, [r1, #5] ldrb r1, [r1, #0xd] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08096600 lsls r1, r3, #0x18 lsrs r1, r1, #0x19 adds r1, #3 adds r0, r6, #0 bl sub_08004260 b _08096606 .align 2, 0 _080965FC: .4byte gUnk_03003F80 _08096600: adds r0, r6, #0 bl sub_08004274 _08096606: ldr r0, _08096664 @ =gUnk_03001160 ldrb r0, [r0, #0x14] movs r1, #6 ands r1, r0 ldr r4, _08096668 @ =gUnk_08123184 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r2, [r6, #0x2e] adds r0, r0, r2 movs r2, #0x10 rsbs r2, r2, #0 adds r3, r2, #0 ands r0, r3 movs r2, #8 adds r5, r6, #0 adds r5, #0x70 movs r7, #0 orrs r0, r2 strh r0, [r5] adds r1, #1 adds r1, r1, r4 movs r0, #0 ldrsb r0, [r1, r0] ldrh r1, [r6, #0x32] adds r0, r0, r1 ands r0, r3 orrs r0, r2 adds r1, r6, #0 adds r1, #0x72 strh r0, [r1] ldrh r0, [r5] ldrh r1, [r1] adds r4, r6, #0 adds r4, #0x38 ldrb r2, [r4] bl sub_080002BC cmp r0, #0x19 bne _08096670 ldr r0, _0809666C @ =gUnk_0200AF00 adds r0, #0x2f movs r1, #3 strb r1, [r0] b _08096676 .align 2, 0 _08096664: .4byte gUnk_03001160 _08096668: .4byte gUnk_08123184 _0809666C: .4byte gUnk_0200AF00 _08096670: ldr r0, _080966F8 @ =gUnk_0200AF00 adds r0, #0x2f strb r7, [r0] _08096676: ldr r0, _080966FC @ =gUnk_03001160 movs r3, #0x80 lsls r3, r3, #9 adds r1, r6, #0 movs r2, #0 bl sub_0806FA48 adds r0, r6, #0 bl sub_080002B8 cmp r0, #0x19 bne _0809669C ldrb r1, [r4] movs r0, #0xdc bl sub_0807BA8C adds r0, r6, #0 bl sub_08096A78 _0809669C: ldr r2, _08096700 @ =gUnk_03003F80 adds r0, r2, #0 adds r0, #0x92 ldrh r1, [r0] movs r0, #0xc0 ands r0, r1 cmp r0, #0 beq _080966F6 ldr r0, _080966F8 @ =gUnk_0200AF00 adds r0, #0x2f ldrb r0, [r0] cmp r0, #3 bne _080966F6 movs r0, #0 strb r0, [r2, #5] movs r0, #5 strb r0, [r6, #0xc] adds r0, #0xfb strh r0, [r6, #0x24] movs r0, #0x80 lsls r0, r0, #0xa str r0, [r6, #0x20] adds r2, r6, #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] ldrb r1, [r6, #0x18] movs r0, #0x31 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x10 orrs r0, r1 strb r0, [r6, #0x18] ldrb r1, [r4] movs r0, #0xdc bl sub_0807BA8C movs r0, #0x79 bl sub_080A3268 _080966F6: pop {r4, r5, r6, r7, pc} .align 2, 0 _080966F8: .4byte gUnk_0200AF00 _080966FC: .4byte gUnk_03001160 _08096700: .4byte gUnk_03003F80 thumb_func_start sub_08096704 sub_08096704: @ 0x08096704 push {lr} ldr r2, _08096718 @ =gUnk_0812318C ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08096718: .4byte gUnk_0812318C thumb_func_start sub_0809671C sub_0809671C: @ 0x0809671C push {r4, lr} adds r4, r0, #0 movs r0, #0x1a bl sub_0807CD04 ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] pop {r4, pc} .align 2, 0 thumb_func_start nullsub_121 nullsub_121: @ 0x08096730 bx lr .align 2, 0 thumb_func_start sub_08096734 sub_08096734: @ 0x08096734 push {lr} movs r0, #0x1a bl sub_0807CD80 pop {pc} .align 2, 0 thumb_func_start sub_08096740 sub_08096740: @ 0x08096740 push {r4, lr} adds r4, r0, #0 movs r0, #0x10 movs r1, #0 bl sub_08080964 movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0xd] pop {r4, pc} .align 2, 0 thumb_func_start sub_08096758 sub_08096758: @ 0x08096758 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 _0809677C ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0xa bl sub_08004260 _0809677C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08096780 sub_08096780: @ 0x08096780 push {r4, r5, lr} adds r5, r0, #0 ldr r1, _080967D4 @ =gUnk_0812319C ldrb r0, [r5, #0xa] lsrs r0, r0, #1 lsls r0, r0, #1 adds r0, r0, r1 ldrh r4, [r0] adds r0, r5, #0 bl sub_080002A0 cmp r4, r0 bne _080967DC adds r0, r5, #0 bl sub_08004274 ldr r2, _080967D8 @ =gUnk_03003F80 ldrb r0, [r2, #0xb] movs r1, #0x80 orrs r0, r1 strb r0, [r2, #0xb] ldrb r0, [r2, #0xa] orrs r0, r1 strb r0, [r2, #0xa] ldrb r0, [r2, #7] orrs r1, r0 strb r1, [r2, #7] ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _080967E0 movs r0, #6 strb r0, [r5, #0xc] strb r1, [r5, #0xd] adds r0, r5, #0 bl sub_080A29BC b _080967E0 .align 2, 0 _080967D4: .4byte gUnk_0812319C _080967D8: .4byte gUnk_03003F80 _080967DC: movs r0, #0xc0 strb r0, [r5, #0xe] _080967E0: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080967E4 sub_080967E4: @ 0x080967E4 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x70 ldrh r5, [r0] movs r0, #0x2e ldrsh r2, [r4, r0] cmp r5, r2 bne _08096802 adds r0, r4, #0 adds r0, #0x72 ldrh r1, [r0] movs r3, #0x32 ldrsh r0, [r4, r3] cmp r1, r0 beq _0809681C _08096802: movs r0, #0x32 ldrsh r1, [r4, r0] adds r0, r4, #0 adds r0, #0x72 ldrh r3, [r0] adds r0, r2, #0 adds r2, r5, #0 bl sub_080045D4 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_0806F69C _0809681C: movs r1, #0x80 lsls r1, r1, #7 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08096830 adds r0, r4, #0 bl sub_08096A78 _08096830: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08096834 sub_08096834: @ 0x08096834 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #2 beq _08096842 bl sub_08078B48 _08096842: ldr r0, _08096854 @ =gUnk_081231A0 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _08096854: .4byte gUnk_081231A0 thumb_func_start sub_08096858 sub_08096858: @ 0x08096858 push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r0, [r5, #0xb] bl sub_0807CCB4 movs r3, #0 movs r0, #0xf strb r0, [r5, #0xe] ldr r1, _080968BC @ =gUnk_081231AC ldrb r2, [r5, #0xa] lsls r2, r2, #0x18 lsrs r0, r2, #0x19 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r5, #0xf] strb r3, [r5, #0xb] ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r5, #0x18] ldrb r0, [r5, #0xd] adds r0, #1 strb r0, [r5, #0xd] cmp r2, #0 bne _080968C4 movs r0, #0xe7 lsls r0, r0, #1 movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _080968C0 @ =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_0807B7D8 b _080968F0 .align 2, 0 _080968BC: .4byte gUnk_081231AC _080968C0: .4byte gUnk_03000BF0 _080968C4: ldr r0, _080968F8 @ =0x000001CD movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _080968FC @ =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_0807B7D8 _080968F0: ldr r0, _08096900 @ =0x000001DB bl sub_080A3268 pop {r4, r5, r6, pc} .align 2, 0 _080968F8: .4byte 0x000001CD _080968FC: .4byte gUnk_03000BF0 _08096900: .4byte 0x000001DB thumb_func_start sub_08096904 sub_08096904: @ 0x08096904 push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08096984 ldrh r0, [r5, #0x32] subs r0, #0x10 strh r0, [r5, #0x32] ldr r1, _08096974 @ =gUnk_081231AE ldrb r0, [r5, #0xb] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _08096978 @ =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_0807B7D8 ldrb r0, [r5, #0xb] adds r0, #1 strb r0, [r5, #0xb] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 ldrb r1, [r5, #0xf] cmp r0, r1 bne _08096980 ldr r2, _0809697C @ =gUnk_03003F80 ldrb r1, [r2, #0xb] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0xb] ldrb r0, [r5, #0xd] adds r0, #1 strb r0, [r5, #0xd] movs r0, #0x3c b _08096982 .align 2, 0 _08096974: .4byte gUnk_081231AE _08096978: .4byte gUnk_03000BF0 _0809697C: .4byte gUnk_03003F80 _08096980: movs r0, #0xf _08096982: strb r0, [r5, #0xe] _08096984: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08096988 sub_08096988: @ 0x08096988 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xe] cmp r0, #0 beq _080969A2 subs r0, #1 strb r0, [r1, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080969A2 movs r0, #0x72 bl sub_080A3268 _080969A2: pop {pc} thumb_func_start sub_080969A4 sub_080969A4: @ 0x080969A4 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 ldrb r0, [r5, #0xa] cmp r0, #0 bne _080969E8 movs r0, #0xe7 lsls r0, r0, #1 movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _080969E4 @ =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 r4, r5, #0 adds r4, #0x38 ldrb r2, [r4] bl sub_0807B7D8 b _08096A14 .align 2, 0 _080969E4: .4byte gUnk_03000BF0 _080969E8: ldr r0, _08096A6C @ =0x000001CD movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _08096A70 @ =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 r4, r5, #0 adds r4, #0x38 ldrb r2, [r4] bl sub_0807B7D8 _08096A14: ldrb r0, [r5, #0xb] ldrb r1, [r5, #0xf] cmp r0, r1 beq _08096A64 ldr r2, _08096A74 @ =gUnk_081231B4 mov r8, r2 ldr r7, _08096A70 @ =gUnk_03000BF0 movs r6, #0x3f _08096A24: ldrh r0, [r5, #0x32] subs r0, #0x10 strh r0, [r5, #0x32] ldrb r0, [r5, #0xb] lsls r0, r0, #1 add r0, r8 ldrh r0, [r0] 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_0807B7D8 ldrb r0, [r5, #0xb] adds r0, #1 strb r0, [r5, #0xb] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 ldrb r1, [r5, #0xf] cmp r0, r1 bne _08096A24 _08096A64: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08096A6C: .4byte 0x000001CD _08096A70: .4byte gUnk_03000BF0 _08096A74: .4byte gUnk_081231B4 thumb_func_start sub_08096A78 sub_08096A78: @ 0x08096A78 push {r4, r5, r6, lr} adds r4, r0, #0 movs r0, #0x1b bl sub_0807CD04 ldrb r1, [r4, #0xa] lsrs r1, r1, #1 adds r1, #8 adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 bl sub_08004168 ldrh r0, [r4, #0x32] adds r0, #4 strh r0, [r4, #0x32] movs r0, #3 strb r0, [r4, #0xc] ldr r0, _08096ACC @ =0x0000403B movs r2, #0x2e ldrsh r1, [r4, r2] ldr r3, _08096AD0 @ =gUnk_03000BF0 ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 movs r5, #0x3f ands r1, r5 movs r6, #0x32 ldrsh r2, [r4, r6] ldrh r3, [r3, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r5 lsls r2, r2, #6 orrs r1, r2 adds r4, #0x38 ldrb r2, [r4] bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 _08096ACC: .4byte 0x0000403B _08096AD0: .4byte gUnk_03000BF0 thumb_func_start sub_08096AD4 sub_08096AD4: @ 0x08096AD4 push {lr} ldr r2, _08096AE8 @ =gUnk_0812323C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08096AE8: .4byte gUnk_0812323C thumb_func_start sub_08096AEC sub_08096AEC: @ 0x08096AEC push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_080837B0 cmp r0, #0 beq _08096BB6 ldrb r1, [r4, #0xa] movs r0, #4 ands r0, r1 cmp r0, #0 beq _08096B12 adds r1, r4, #0 adds r1, #0x7e movs r0, #1 strb r0, [r1] ldrb r1, [r4, #0xa] movs r0, #3 ands r0, r1 strb r0, [r4, #0xa] _08096B12: movs r0, #0xc0 lsls r0, r0, #2 strh r0, [r4, #0x24] ldrh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x70 strh r1, [r0] ldrh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x72 strh r0, [r1] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #5 orrs r0, r1 strb r0, [r2] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _08096B90 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r5, r4, #0 adds r5, #0x76 strh r1, [r5] ldrh r0, [r5] adds r6, r4, #0 adds r6, #0x38 ldrb r1, [r6] bl sub_080001DA adds r1, r4, #0 adds r1, #0x74 strh r0, [r1] ldrb r0, [r4, #0xa] strb r0, [r4, #0x1e] adds r0, r4, #0 bl sub_08096CEC cmp r0, #0 beq _08096B9C adds r0, r4, #0 adds r0, #0x7e ldrb r0, [r0] cmp r0, #0 beq _08096B94 bl sub_0805E780 b _08096BB6 .align 2, 0 _08096B90: .4byte gUnk_03000BF0 _08096B94: adds r0, r4, #0 bl sub_08096E04 b _08096BB6 _08096B9C: movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldr r0, _08096BB8 @ =0x00004022 ldrh r1, [r5] ldrb r2, [r6] bl sub_0800015E _08096BB6: pop {r4, r5, r6, pc} .align 2, 0 _08096BB8: .4byte 0x00004022 thumb_func_start sub_08096BBC sub_08096BBC: @ 0x08096BBC push {r4, lr} adds r4, r0, #0 bl sub_08096CEC cmp r0, #0 beq _08096BF2 movs r0, #2 strb r0, [r4, #0xc] movs r0, #7 strb r0, [r4, #0xe] ldrb r0, [r4, #0xa] lsls r0, r0, #3 strb r0, [r4, #0x15] adds r0, r4, #0 adds r0, #0x74 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x76 ldrh r1, [r1] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E ldr r0, _08096BF4 @ =0x0000010B bl sub_08004488 _08096BF2: pop {r4, pc} .align 2, 0 _08096BF4: .4byte 0x0000010B thumb_func_start sub_08096BF8 sub_08096BF8: @ 0x08096BF8 push {r4, lr} adds r4, r0, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08096C3A adds r0, r4, #0 bl sub_08096E04 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 adds r0, #0x70 ldrh r0, [r0] strh r0, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x72 ldrh r0, [r0] strh r0, [r4, #0x32] adds r0, r4, #0 adds r0, #0x7e ldrb r0, [r0] cmp r0, #0 beq _08096C3A bl sub_0805E780 _08096C3A: pop {r4, pc} thumb_func_start sub_08096C3C sub_08096C3C: @ 0x08096C3C push {r4, lr} adds r4, r0, #0 adds r0, #0x7e ldrb r0, [r0] cmp r0, #0 beq _08096C56 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 bne _08096CAE _08096C56: ldr r0, _08096C80 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 lsls r1, r1, #5 ands r0, r1 cmp r0, #0 beq _08096C92 ldrb r2, [r4, #0xa] lsls r1, r2, #1 ldr r0, _08096C84 @ =gUnk_03001160 ldrb r0, [r0, #0x14] cmp r1, r0 bne _08096C88 adds r0, r4, #0 adds r1, r2, #0 bl sub_08083734 cmp r0, #0 beq _08096CAE b _08096C9C .align 2, 0 _08096C80: .4byte gUnk_03003F80 _08096C84: .4byte gUnk_03001160 _08096C88: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 b _08096C98 _08096C92: adds r0, r4, #0 bl sub_08096D84 _08096C98: cmp r0, #0 bne _08096CAE _08096C9C: movs r0, #4 strb r0, [r4, #0xc] ldrb r1, [r4, #0xa] adds r0, r4, #0 adds r0, #0x76 ldrh r2, [r0] adds r0, r4, #0 bl sub_080836DC _08096CAE: pop {r4, pc} thumb_func_start sub_08096CB0 sub_08096CB0: @ 0x08096CB0 push {r4, lr} adds r4, r0, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08096CE6 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x70 ldrh r0, [r0] strh r0, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x72 ldrh r0, [r0] strh r0, [r4, #0x32] ldrb r1, [r4, #0xa] adds r0, r4, #0 bl sub_08083814 ldr r0, _08096CE8 @ =0x0000010B bl sub_08004488 _08096CE6: pop {r4, pc} .align 2, 0 _08096CE8: .4byte 0x0000010B thumb_func_start sub_08096CEC sub_08096CEC: @ 0x08096CEC push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x7e ldrb r0, [r0] cmp r0, #0 beq _08096D06 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 bne _08096D60 _08096D06: ldr r0, _08096D40 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 lsls r1, r1, #5 ands r0, r1 cmp r0, #0 beq _08096D64 ldr r3, _08096D44 @ =gUnk_03001160 ldrb r2, [r4, #0xa] lsls r0, r2, #1 ldrb r1, [r3, #0x14] eors r0, r1 movs r1, #2 ands r0, r1 cmp r0, #0 bne _08096D64 movs r0, #1 ands r2, r0 cmp r2, #0 beq _08096D48 movs r1, #0x32 ldrsh r0, [r3, r1] movs r2, #0x32 ldrsh r1, [r4, r2] movs r5, #0x2e ldrsh r2, [r3, r5] movs r5, #0x2e ldrsh r3, [r4, r5] b _08096D58 .align 2, 0 _08096D40: .4byte gUnk_03003F80 _08096D44: .4byte gUnk_03001160 _08096D48: movs r1, #0x2e ldrsh r0, [r3, r1] movs r2, #0x2e ldrsh r1, [r4, r2] movs r5, #0x32 ldrsh r2, [r3, r5] movs r5, #0x32 ldrsh r3, [r4, r5] _08096D58: bl sub_08096D68 cmp r0, #0 beq _08096D64 _08096D60: movs r0, #1 b _08096D66 _08096D64: movs r0, #0 _08096D66: pop {r4, r5, pc} thumb_func_start sub_08096D68 sub_08096D68: @ 0x08096D68 push {lr} subs r0, r0, r1 adds r0, #8 cmp r0, #0x10 bhi _08096D7E subs r0, r2, r3 adds r0, #0x30 cmp r0, #0x60 bhi _08096D7E movs r0, #1 b _08096D80 _08096D7E: movs r0, #0 _08096D80: pop {pc} .align 2, 0 thumb_func_start sub_08096D84 sub_08096D84: @ 0x08096D84 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xa] cmp r0, #1 beq _08096DB4 cmp r0, #1 bgt _08096D98 cmp r0, #0 beq _08096DA2 b _08096E00 _08096D98: cmp r0, #2 beq _08096DC8 cmp r0, #3 beq _08096DE4 b _08096E00 _08096DA2: movs r0, #0x32 ldrsh r1, [r1, r0] ldr r0, _08096DB0 @ =gUnk_03001160 movs r2, #0x32 ldrsh r0, [r0, r2] b _08096DEE .align 2, 0 _08096DB0: .4byte gUnk_03001160 _08096DB4: ldr r0, _08096DC4 @ =gUnk_03001160 movs r2, #0x2e ldrsh r0, [r0, r2] adds r0, #0xa movs r2, #0x2e ldrsh r1, [r1, r2] b _08096DD4 .align 2, 0 _08096DC4: .4byte gUnk_03001160 _08096DC8: ldr r0, _08096DE0 @ =gUnk_03001160 movs r2, #0x32 ldrsh r0, [r0, r2] adds r0, #0xa movs r2, #0x32 ldrsh r1, [r1, r2] _08096DD4: subs r0, r0, r1 cmp r0, #0x64 bhi _08096E00 movs r0, #1 b _08096E02 .align 2, 0 _08096DE0: .4byte gUnk_03001160 _08096DE4: movs r0, #0x2e ldrsh r1, [r1, r0] ldr r0, _08096DFC @ =gUnk_03001160 movs r2, #0x2e ldrsh r0, [r0, r2] _08096DEE: subs r0, #0xa subs r1, r1, r0 cmp r1, #0x64 bhi _08096E00 movs r0, #1 b _08096E02 .align 2, 0 _08096DFC: .4byte gUnk_03001160 _08096E00: movs r0, #0 _08096E02: pop {pc} thumb_func_start sub_08096E04 sub_08096E04: @ 0x08096E04 movs r1, #3 strb r1, [r0, #0xc] movs r1, #8 strb r1, [r0, #0xe] bx lr .align 2, 0 thumb_func_start sub_08096E10 sub_08096E10: @ 0x08096E10 push {lr} ldr r2, _08096E24 @ =gUnk_08123250 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08096E24: .4byte gUnk_08123250 thumb_func_start sub_08096E28 sub_08096E28: @ 0x08096E28 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 adds r5, r0, #0 cmp r5, #0 bne _08096EBC movs r2, #1 movs r3, #1 strb r3, [r4, #0xc] movs r0, #0x80 strh r0, [r4, #0x24] ldrb r1, [r4, #0x11] subs r0, #0x90 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r4, #0x11] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 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, #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] adds r1, r4, #0 adds r1, #0x63 movs r0, #4 strb r0, [r1] ldr r0, _08096EB4 @ =gUnk_080FD1F4 str r0, [r4, #0x48] strb r3, [r4, #0x16] adds r0, r4, #0 adds r0, #0x72 strh r5, [r0] adds r0, #0xb ldrb r0, [r0] lsrs r0, r0, #4 subs r1, #0x2b strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 bl sub_080970F4 ldr r1, _08096EB8 @ =gUnk_08123264 ldrb r0, [r4, #0xa] adds r0, r0, r1 ldrb r0, [r0] strb r0, [r4, #0x1e] b _08096F04 .align 2, 0 _08096EB4: .4byte gUnk_080FD1F4 _08096EB8: .4byte gUnk_08123264 _08096EBC: adds r0, r4, #0 adds r0, #0x7c ldrb r2, [r0] adds r0, #1 ldrb r3, [r0] movs r1, #0xf adds r0, r1, #0 ands r0, r3 lsls r0, r0, #8 ldr r3, _08096F08 @ =gUnk_03000BF0 orrs r2, r0 ldrh r0, [r3, #6] adds r2, r2, r0 strh r2, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x7e ldrb r0, [r0] movs r2, #0x7f adds r2, r2, r4 mov ip, r2 ldrb r2, [r2] ands r1, r2 lsls r1, r1, #8 orrs r0, r1 ldrh r3, [r3, #8] adds r0, r0, r3 strh r0, [r4, #0x32] mov r5, ip ldrb r0, [r5] lsrs r0, r0, #4 adds r1, r4, #0 adds r1, #0x38 strb r0, [r1] adds r0, r4, #0 bl sub_080971E0 _08096F04: pop {r4, r5, pc} .align 2, 0 _08096F08: .4byte gUnk_03000BF0 thumb_func_start sub_08096F0C sub_08096F0C: @ 0x08096F0C push {r4, lr} adds r4, r0, #0 bl sub_08097194 cmp r0, #0 bne _08096F2E adds r0, r4, #0 bl sub_08097008 cmp r0, #0 beq _08096F28 movs r0, #3 strb r0, [r4, #0xc] b _08096F2E _08096F28: adds r0, r4, #0 bl sub_08078930 _08096F2E: pop {r4, pc} thumb_func_start sub_08096F30 sub_08096F30: @ 0x08096F30 push {lr} adds r2, r0, #0 adds r0, #0x76 ldrh r0, [r0] cmp r0, #0 beq _08096F44 adds r0, r2, #0 bl sub_08097144 b _08096F62 _08096F44: ldr r0, _08096F64 @ =gUnk_03003F80 ldrb r0, [r0, #5] cmp r0, #0 bne _08096F50 movs r0, #6 strb r0, [r2, #0xd] _08096F50: ldr r0, _08096F68 @ =gUnk_0812326C ldrb r1, [r2, #0xd] subs r1, #5 lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 _08096F62: pop {pc} .align 2, 0 _08096F64: .4byte gUnk_03003F80 _08096F68: .4byte gUnk_0812326C thumb_func_start sub_08096F6C sub_08096F6C: @ 0x08096F6C push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x72 ldrh r0, [r1] cmp r0, #0 bne _08096F98 movs r0, #1 strh r0, [r1] ldr r1, _08096FD8 @ =gUnk_03001160 ldrb r0, [r1, #0x14] ldr r2, _08096FDC @ =gUnk_08123274 adds r0, r0, r2 movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #0x10 movs r3, #1 ldrsb r3, [r0, r3] lsls r3, r3, #0x10 adds r0, r4, #0 bl sub_0806FA48 _08096F98: adds r0, r4, #0 bl sub_08097008 bl sub_080896B0 cmp r0, #0 beq _08096FD4 ldr r2, _08096FE0 @ =gUnk_03003F80 movs r3, #0 movs r0, #0x10 strb r0, [r2, #0xc] adds r1, r2, #0 adds r1, #0x38 movs r0, #0x20 strb r0, [r1] ldr r0, [r2, #0x30] movs r1, #1 orrs r0, r1 str r0, [r2, #0x30] ldr r0, _08096FD8 @ =gUnk_03001160 strh r3, [r0, #0x2c] strh r3, [r0, #0x30] ldrb r0, [r0, #0x14] movs r1, #4 eors r0, r1 lsls r0, r0, #2 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_08097098 _08096FD4: pop {r4, pc} .align 2, 0 _08096FD8: .4byte gUnk_03001160 _08096FDC: .4byte gUnk_08123274 _08096FE0: .4byte gUnk_03003F80 thumb_func_start sub_08096FE4 sub_08096FE4: @ 0x08096FE4 movs r2, #0 movs r1, #1 strb r1, [r0, #0xc] adds r0, #0x72 strh r2, [r0] bx lr thumb_func_start sub_08096FF0 sub_08096FF0: @ 0x08096FF0 push {r4, lr} adds r4, r0, #0 bl sub_08097144 cmp r0, #0 beq _08097000 movs r0, #1 strb r0, [r4, #0xc] _08097000: pop {r4, pc} .align 2, 0 thumb_func_start nullsub_122 nullsub_122: @ 0x08097004 bx lr .align 2, 0 thumb_func_start sub_08097008 sub_08097008: @ 0x08097008 push {r4, r5, lr} adds r5, r0, #0 adds r0, #0x74 ldrh r0, [r0] adds r1, r5, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080002B0 adds r4, r0, #0 ldr r0, _08097048 @ =0x00004036 cmp r4, r0 beq _08097070 adds r0, r4, #0 bl sub_08097074 cmp r0, #1 beq _0809704C cmp r0, #2 beq _08097062 movs r0, #0xf movs r1, #4 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _0809706A adds r0, r5, #0 bl sub_0806FA24 b _0809706A .align 2, 0 _08097048: .4byte 0x00004036 _0809704C: adds r0, r4, #0 subs r0, #0x37 movs r1, #3 ands r0, r1 lsls r0, r0, #3 strb r0, [r5, #0x15] adds r0, r5, #0 bl sub_08097098 movs r0, #1 b _08097072 _08097062: adds r0, r5, #0 adds r0, #0x70 strh r4, [r0] b _08097070 _0809706A: adds r0, r5, #0 bl sub_0805E7BC _08097070: movs r0, #0 _08097072: pop {r4, r5, pc} thumb_func_start sub_08097074 sub_08097074: @ 0x08097074 push {lr} adds r2, r0, #0 ldr r1, _0809707C @ =gUnk_0812327C b _0809708C .align 2, 0 _0809707C: .4byte gUnk_0812327C _08097080: ldrh r0, [r1] cmp r0, r2 bne _0809708A ldrh r0, [r1, #2] b _08097094 _0809708A: adds r1, #4 _0809708C: ldrh r0, [r1] cmp r0, #0 bne _08097080 movs r0, #0 _08097094: pop {pc} .align 2, 0 thumb_func_start sub_08097098 sub_08097098: @ 0x08097098 push {r4, r5, r6, lr} adds r6, r0, #0 adds r1, r6, #0 adds r1, #0x76 movs r0, #0x20 strh r0, [r1] adds r0, #0xef bl sub_08004488 adds r0, r6, #0 adds r0, #0x70 ldrh r0, [r0] adds r5, r6, #0 adds r5, #0x74 ldrh r1, [r5] adds r4, r6, #0 adds r4, #0x38 ldrb r2, [r4] bl sub_0800015E ldr r1, _080970F0 @ =gUnk_080B4488 ldrb r0, [r6, #0x15] lsrs r0, r0, #3 lsls r0, r0, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] ldrh r5, [r5] adds r0, r0, r5 ldrb r1, [r4] bl sub_080002B0 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x79 beq _080970E4 cmp r0, #0x77 bne _080970EC _080970E4: adds r1, r6, #0 adds r1, #0x63 movs r0, #2 strb r0, [r1] _080970EC: pop {r4, r5, r6, pc} .align 2, 0 _080970F0: .4byte gUnk_080B4488 thumb_func_start sub_080970F4 sub_080970F4: @ 0x080970F4 push {r4, r5, r6, lr} adds r6, r0, #0 movs r0, #0x2e ldrsh r1, [r6, r0] ldr r2, _0809713C @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r4, #0x32 ldrsh r0, [r6, r4] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r4, r6, #0 adds r4, #0x74 strh r1, [r4] ldrh r0, [r4] adds r5, r6, #0 adds r5, #0x38 ldrb r1, [r5] bl sub_080001DA adds r1, r6, #0 adds r1, #0x70 strh r0, [r1] ldr r0, _08097140 @ =0x00004036 ldrh r1, [r4] ldrb r2, [r5] bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 _0809713C: .4byte gUnk_03000BF0 _08097140: .4byte 0x00004036 thumb_func_start sub_08097144 sub_08097144: @ 0x08097144 push {r4, lr} adds r4, r0, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_0800445C adds r0, r4, #0 bl sub_080002B8 cmp r0, #0x19 bne _08097164 adds r1, r4, #0 adds r1, #0x63 movs r0, #2 strb r0, [r1] _08097164: adds r1, r4, #0 adds r1, #0x76 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08097190 adds r0, r4, #0 bl sub_08097194 cmp r0, #0 bne _08097190 adds r1, r4, #0 adds r1, #0x63 movs r0, #4 strb r0, [r1] adds r0, r4, #0 bl sub_080970F4 movs r0, #1 b _08097192 _08097190: movs r0, #0 _08097192: pop {r4, pc} thumb_func_start sub_08097194 sub_08097194: @ 0x08097194 push {r4, lr} adds r4, r0, #0 bl sub_0800442E cmp r0, #0 beq _080971A4 movs r0, #1 b _080971DE _080971A4: adds r0, r4, #0 bl sub_080002A0 adds r1, r0, #0 subs r0, #0x71 cmp r0, #1 bls _080971B8 ldr r0, _080971D4 @ =0x00004020 cmp r1, r0 bne _080971DC _080971B8: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 ldr r0, _080971D8 @ =0x0000010B bl sub_08004488 adds r0, r4, #0 bl sub_080971E0 movs r0, #1 b _080971DE .align 2, 0 _080971D4: .4byte 0x00004020 _080971D8: .4byte 0x0000010B _080971DC: movs r0, #0 _080971DE: pop {r4, pc} thumb_func_start sub_080971E0 sub_080971E0: @ 0x080971E0 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0xf movs r1, #0x11 movs r2, #0x40 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08097202 ldr r2, _0809727C @ =0xFFF80000 movs r3, #0x80 lsls r3, r3, #0xa adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA48 _08097202: movs r0, #0xf movs r1, #0x11 movs r2, #0x40 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08097222 movs r2, #0x80 lsls r2, r2, #0xc movs r3, #0x80 lsls r3, r3, #0xa adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA48 _08097222: ldrb r0, [r5, #0xa] cmp r0, #1 beq _08097284 cmp r0, #1 ble _08097234 cmp r0, #2 beq _080972C4 cmp r0, #3 beq _08097304 _08097234: movs r0, #4 strb r0, [r5, #0xc] movs r0, #1 strb r0, [r5, #0x1e] adds r2, r5, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] movs r0, #0x2e ldrsh r1, [r5, r0] ldr r2, _08097280 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r4, #0x32 ldrsh r0, [r5, r4] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r0, r5, #0 adds r0, #0x38 ldrb r2, [r0] movs r0, #0 bl sub_0800015E _08097274: bl sub_0805E780 b _08097346 .align 2, 0 _0809727C: .4byte 0xFFF80000 _08097280: .4byte gUnk_03000BF0 _08097284: movs r1, #0x2e ldrsh r0, [r5, r1] ldr r3, _080972C0 @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r0, r0, r1 asrs r4, r0, #4 movs r2, #0x3f ands r4, r2 movs r1, #0x32 ldrsh r0, [r5, r1] ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r4, r0 adds r0, r4, #0 bl sub_08097348 cmp r0, #0 bne _08097274 adds r0, r5, #0 adds r0, #0x38 ldrb r2, [r0] movs r0, #0x73 adds r1, r4, #0 bl sub_0807B314 b _08097274 .align 2, 0 _080972C0: .4byte gUnk_03000BF0 _080972C4: movs r0, #0x2f movs r1, #0 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08097274 ldrh r2, [r5, #0x2e] movs r1, #0x10 rsbs r1, r1, #0 adds r0, r1, #0 ands r0, r2 adds r0, #8 strh r0, [r4, #0x2e] ldrh r0, [r5, #0x32] ands r1, r0 adds r1, #8 strh r1, [r4, #0x32] adds r0, r5, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] adds r0, r5, #0 adds r0, #0x84 ldrh r1, [r0] adds r0, r4, #0 adds r0, #0x86 strh r1, [r0] b _08097274 _08097304: movs r0, #0x2f movs r1, #1 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08097342 ldrh r2, [r5, #0x2e] movs r1, #0x10 rsbs r1, r1, #0 adds r0, r1, #0 ands r0, r2 adds r0, #8 strh r0, [r4, #0x2e] ldrh r0, [r5, #0x32] ands r1, r0 adds r1, #8 strh r1, [r4, #0x32] adds r0, r5, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] adds r0, r5, #0 adds r0, #0x84 ldrh r1, [r0] adds r0, r4, #0 adds r0, #0x86 strh r1, [r0] _08097342: bl sub_0805E780 _08097346: pop {r4, r5, pc} thumb_func_start sub_08097348 sub_08097348: @ 0x08097348 push {lr} adds r3, r0, #0 ldr r1, _08097360 @ =gUnk_02017660 movs r2, #0 _08097350: ldrh r0, [r1, #4] cmp r0, r3 bne _08097364 ldrb r0, [r1, #1] bl sub_0807CBD0 b _0809736E .align 2, 0 _08097360: .4byte gUnk_02017660 _08097364: adds r2, #1 adds r1, #8 cmp r2, #7 bls _08097350 movs r0, #0 _0809736E: pop {pc} thumb_func_start sub_08097370 sub_08097370: @ 0x08097370 push {lr} ldr r2, _08097384 @ =gUnk_08123298 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08097384: .4byte gUnk_08123298 thumb_func_start sub_08097388 sub_08097388: @ 0x08097388 push {r4, lr} adds r4, r0, #0 bl sub_0806FBD8 cmp r0, #0 beq _080973D4 ldrb r0, [r4, #0xa] lsls r0, r0, #2 ldr r1, _080973D8 @ =gUnk_081232A0 adds r0, r0, r1 ldrb r1, [r0] strb r1, [r4, #0xb] ldrb r2, [r0, #3] adds r1, r4, #0 adds r1, #0x40 strb r2, [r1] ldr r2, [r4, #0x48] ldrb r1, [r0, #1] strb r1, [r2, #6] ldr r1, [r4, #0x48] ldrb r0, [r0, #2] strb r0, [r1, #7] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] adds r1, #3 movs r0, #0x91 strb r0, [r1] subs r1, #4 movs r0, #2 strb r0, [r1] movs r0, #1 strb r0, [r4, #0xc] _080973D4: pop {r4, pc} .align 2, 0 _080973D8: .4byte gUnk_081232A0 thumb_func_start sub_080973DC sub_080973DC: @ 0x080973DC adds r0, #0x41 movs r1, #0 strb r1, [r0] bx lr thumb_func_start sub_080973E4 sub_080973E4: @ 0x080973E4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0809741E movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xa] strb r0, [r4, #0x1e] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 bl sub_08052660 cmp r0, #0 beq _0809741E adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2] _0809741E: pop {r4, pc} thumb_func_start sub_08097420 sub_08097420: @ 0x08097420 push {lr} ldr r2, _08097434 @ =gUnk_081232A4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08097434: .4byte gUnk_081232A4 thumb_func_start sub_08097438 sub_08097438: @ 0x08097438 push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldrb r0, [r4, #0xa] adds r1, r0, #0 adds r1, #0xb strb r1, [r4, #0x1e] lsls r0, r0, #0x18 cmp r0, #0 beq _080974A2 adds r0, r4, #0 bl sub_08004168 ldr r1, _08097494 @ =gUnk_03001160 ldrb r0, [r1, #0x1b] movs r2, #0xc0 orrs r0, r2 strb r0, [r1, #0x1b] adds r1, #0x29 ldrb r1, [r1] movs r2, #7 movs r0, #7 ands r0, r1 cmp r0, #7 beq _08097498 lsls r1, r1, #0x1d lsrs r1, r1, #0x1d adds r1, #1 adds r3, r4, #0 adds r3, #0x29 ands r1, r2 ldrb r2, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] b _080974A2 .align 2, 0 _08097494: .4byte gUnk_03001160 _08097498: adds r1, r4, #0 adds r1, #0x29 ldrb r0, [r1] orrs r0, r2 strb r0, [r1] _080974A2: pop {r4, pc} thumb_func_start sub_080974A4 sub_080974A4: @ 0x080974A4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 bne _08097554 ldr r3, _08097540 @ =gUnk_03001160 ldr r0, [r3, #0x34] cmp r0, #0 bne _080974E8 ldr r2, _08097544 @ =gUnk_03003F80 ldrb r1, [r2, #0x1e] movs r0, #0x40 ands r0, r1 cmp r0, #0 bne _080974D6 ldrb r0, [r2, #0x12] cmp r0, #0x11 bne _080974D6 ldrb r0, [r3, #0xc] cmp r0, #1 beq _080974FA cmp r0, #0x18 beq _080974FA cmp r0, #4 beq _080974FA _080974D6: ldr r1, _08097540 @ =gUnk_03001160 ldr r0, [r1, #0x34] cmp r0, #0 bne _080974E8 adds r0, r1, #0 movs r1, #0x52 movs r2, #0 bl sub_080A29AC _080974E8: ldr r2, _08097540 @ =gUnk_03001160 ldrb r1, [r2, #0x1b] movs r0, #0x3f ands r0, r1 movs r1, #0x80 orrs r0, r1 strb r0, [r2, #0x1b] bl sub_0805E780 _080974FA: ldr r2, _08097540 @ =gUnk_03001160 ldr r0, [r2, #0x2c] str r0, [r4, #0x2c] ldr r0, [r2, #0x30] str r0, [r4, #0x30] ldr r0, _08097544 @ =gUnk_03003F80 ldrb r0, [r0, #2] cmp r0, #0 bne _08097584 ldrb r0, [r2, #0x1b] movs r1, #0xc0 orrs r0, r1 strb r0, [r2, #0x1b] adds r0, r2, #0 adds r0, #0x29 ldrb r1, [r0] movs r2, #7 movs r0, #7 ands r0, r1 cmp r0, #7 beq _08097548 lsls r1, r1, #0x1d lsrs r1, r1, #0x1d adds r1, #1 adds r3, r4, #0 adds r3, #0x29 ands r1, r2 ldrb r2, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] b _08097584 .align 2, 0 _08097540: .4byte gUnk_03001160 _08097544: .4byte gUnk_03003F80 _08097548: adds r1, r4, #0 adds r1, #0x29 ldrb r0, [r1] orrs r0, r2 strb r0, [r1] b _08097584 _08097554: ldr r2, _08097570 @ =gUnk_03001160 ldrb r0, [r2, #0xc] cmp r0, #0x1e beq _08097584 adds r0, r4, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #1 bne _08097574 ldrb r0, [r2, #0x1b] movs r1, #0x3f ands r1, r0 movs r0, #0x80 b _0809757C .align 2, 0 _08097570: .4byte gUnk_03001160 _08097574: ldrb r0, [r2, #0x1b] movs r1, #0x3f ands r1, r0 movs r0, #0x40 _0809757C: orrs r1, r0 strb r1, [r2, #0x1b] bl sub_0805E780 _08097584: pop {r4, pc} .align 2, 0 thumb_func_start sub_08097588 sub_08097588: @ 0x08097588 push {lr} ldr r2, _0809759C @ =gUnk_081232AC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809759C: .4byte gUnk_081232AC thumb_func_start sub_080975A0 sub_080975A0: @ 0x080975A0 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] ldrb r0, [r4, #0xa] strb r0, [r4, #0x1e] ldrb r1, [r4, #0x11] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r4, #0x11] movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _08097690 @ =gUnk_03000BF0 mov r8, r2 ldrh r1, [r2, #6] subs r0, r0, r1 asrs r5, r0, #4 movs r6, #0x3f ands r5, r6 movs r1, #0x32 ldrsh r0, [r4, r1] ldrh r1, [r2, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r6 lsls r0, r0, #6 orrs r5, r0 adds r0, r5, #0 subs r0, #0x41 adds r7, r4, #0 adds r7, #0x38 ldrb r1, [r7] bl sub_080001DA adds r1, r4, #0 adds r1, #0x6a strh r0, [r1] adds r0, r5, #0 subs r0, #0x40 ldrb r1, [r7] bl sub_080001DA adds r1, r4, #0 adds r1, #0x6c strh r0, [r1] adds r0, r5, #0 subs r0, #0x3f ldrb r1, [r7] bl sub_080001DA adds r1, r4, #0 adds r1, #0x6e strh r0, [r1] subs r0, r5, #1 ldrb r1, [r7] bl sub_080001DA adds r1, r4, #0 adds r1, #0x70 strh r0, [r1] ldrb r1, [r7] adds r0, r5, #0 bl sub_080001DA adds r1, r4, #0 adds r1, #0x72 strh r0, [r1] adds r0, r5, #1 ldrb r1, [r7] bl sub_080001DA adds r1, r4, #0 adds r1, #0x74 strh r0, [r1] adds r0, r5, #0 adds r0, #0x3f ldrb r1, [r7] bl sub_080001DA adds r1, r4, #0 adds r1, #0x76 strh r0, [r1] adds r0, r5, #0 adds r0, #0x40 ldrb r1, [r7] bl sub_080001DA adds r1, r4, #0 adds r1, #0x78 strh r0, [r1] adds r0, r5, #0 adds r0, #0x41 ldrb r1, [r7] bl sub_080001DA adds r1, r4, #0 adds r1, #0x7a strh r0, [r1] adds r0, r4, #0 bl sub_0809798C cmp r0, #0 beq _080976A2 ldrb r0, [r4, #0xa] cmp r0, #0 bne _08097694 ldrh r0, [r4, #0x32] subs r0, #0x16 b _08097698 .align 2, 0 _08097690: .4byte gUnk_03000BF0 _08097694: ldrh r0, [r4, #0x32] subs r0, #0x10 _08097698: strh r0, [r4, #0x32] adds r0, r4, #0 bl sub_080977F4 b _08097722 _080976A2: movs r0, #1 strb r0, [r4, #0xc] movs r2, #0x2e ldrsh r0, [r4, r2] mov r2, r8 ldrh r1, [r2, #6] subs r0, r0, r1 asrs r5, r0, #4 ands r5, r6 movs r1, #0x32 ldrsh r0, [r4, r1] ldrh r1, [r2, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r6 lsls r0, r0, #6 orrs r5, r0 adds r0, r4, #0 adds r0, #0x68 strh r5, [r0] ldr r1, _080976FC @ =gUnk_081232DE ldrb r0, [r4, #0xb] lsls r0, r0, #1 adds r0, r0, r1 ldrh r6, [r0] ldrb r0, [r4, #0xa] cmp r0, #0 bne _08097704 ldr r0, _08097700 @ =gUnk_080FD578 str r0, [r4, #0x48] subs r1, r5, #1 ldrb r2, [r7] adds r0, r6, #0 bl sub_0800015E ldrb r2, [r7] adds r0, r6, #0 adds r1, r5, #0 bl sub_0800015E ldrh r0, [r4, #0x32] adds r0, #2 strh r0, [r4, #0x32] b _08097722 .align 2, 0 _080976FC: .4byte gUnk_081232DE _08097700: .4byte gUnk_080FD578 _08097704: ldr r0, _08097728 @ =gUnk_080FD570 str r0, [r4, #0x48] ldrb r2, [r7] adds r0, r6, #0 adds r1, r5, #0 bl sub_0800015E ldrb r0, [r4, #0xb] cmp r0, #2 bne _08097722 ldr r0, _0809772C @ =gUnk_081232C0 ldrb r2, [r7] adds r1, r5, #0 bl sub_0801AF18 _08097722: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08097728: .4byte gUnk_080FD570 _0809772C: .4byte gUnk_081232C0 thumb_func_start sub_08097730 sub_08097730: @ 0x08097730 push {r4, lr} adds r4, r0, #0 bl sub_0809785C cmp r0, #0 beq _08097744 ldrb r1, [r4, #0xe] adds r0, r4, #0 bl sub_0805E4E0 _08097744: pop {r4, pc} .align 2, 0 thumb_func_start sub_08097748 sub_08097748: @ 0x08097748 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xd] cmp r0, #0 bne _08097774 ldrb r0, [r2, #0xf] subs r0, #1 strb r0, [r2, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0809779A movs r0, #1 strb r0, [r2, #0xd] movs r0, #0x78 strb r0, [r2, #0xf] ldr r1, _08097770 @ =gUnk_03000BF0 str r2, [r1, #0x30] movs r0, #2 strb r0, [r1, #0xe] b _0809779A .align 2, 0 _08097770: .4byte gUnk_03000BF0 _08097774: ldrb r0, [r2, #0xf] subs r0, #1 strb r0, [r2, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0809779A movs r0, #3 strb r0, [r2, #0xc] movs r0, #0x60 strb r0, [r2, #0xe] movs r0, #0x14 strb r0, [r2, #0xf] adds r0, r2, #0 movs r1, #0x60 bl sub_0805E4E0 ldr r0, _0809779C @ =0x0000010F bl sub_080A3268 _0809779A: pop {pc} .align 2, 0 _0809779C: .4byte 0x0000010F thumb_func_start sub_080977A0 sub_080977A0: @ 0x080977A0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _080977BC subs r0, #1 strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_0800445C b _080977E4 _080977BC: ldrb r0, [r4, #0xf] cmp r0, #0 beq _080977C8 subs r0, #1 strb r0, [r4, #0xf] b _080977E4 _080977C8: movs r0, #0x72 bl sub_08004488 adds r0, r4, #0 bl sub_080977F4 ldrb r0, [r4, #0xa] cmp r0, #0 bne _080977E4 ldr r0, _080977E8 @ =gUnk_03000BF0 ldr r1, _080977EC @ =gUnk_03001160 str r1, [r0, #0x30] movs r1, #4 strb r1, [r0, #0xe] _080977E4: pop {r4, pc} .align 2, 0 _080977E8: .4byte gUnk_03000BF0 _080977EC: .4byte gUnk_03001160 thumb_func_start nullsub_528 nullsub_528: @ 0x080977F0 bx lr .align 2, 0 thumb_func_start sub_080977F4 sub_080977F4: @ 0x080977F4 push {r4, r5, r6, r7, lr} adds r5, r0, #0 movs r1, #0 movs r0, #4 strb r0, [r5, #0xc] adds r0, r5, #0 adds r0, #0x63 strb r1, [r0] movs r1, #0x2e ldrsh r0, [r5, r1] ldr r3, _08097854 @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r0, r0, r1 asrs r4, r0, #4 movs r2, #0x3f ands r4, r2 movs r1, #0x32 ldrsh r0, [r5, r1] ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r4, r0 ldr r7, _08097858 @ =0x00004022 adds r6, r5, #0 adds r6, #0x38 ldrb r2, [r6] adds r0, r7, #0 adds r1, r4, #0 bl sub_0800015E ldrb r0, [r5, #0xa] cmp r0, #0 bne _08097844 subs r1, r4, #1 ldrb r2, [r6] adds r0, r7, #0 bl sub_0800015E _08097844: adds r1, r5, #0 adds r1, #0x86 ldrh r0, [r1] cmp r0, #0 beq _08097852 bl sub_0807CCC8 _08097852: pop {r4, r5, r6, r7, pc} .align 2, 0 _08097854: .4byte gUnk_03000BF0 _08097858: .4byte 0x00004022 thumb_func_start sub_0809785C sub_0809785C: @ 0x0809785C push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r4, [r5, #0xa] cmp r4, #0 beq _08097948 ldrb r0, [r5, #0xb] cmp r0, #0 bne _0809786E b _08097986 _0809786E: adds r0, r5, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 adds r4, r5, #0 adds r4, #0x68 adds r6, r5, #0 adds r6, #0x38 cmp r0, #0 bne _08097892 ldrh r0, [r4] ldrb r1, [r6] bl sub_080002B0 ldr r1, _08097940 @ =0x0000403F cmp r0, r1 bne _08097986 _08097892: movs r1, #0 movs r0, #3 strb r0, [r5, #0xc] movs r0, #0x40 strb r0, [r5, #0xe] strb r1, [r5, #0xf] strb r1, [r5, #0x15] strh r0, [r5, #0x24] ldrh r4, [r4] adds r0, r5, #0 adds r0, #0x72 ldrh r0, [r0] ldrb r2, [r6] adds r1, r4, #0 bl sub_0807B9B8 ldrb r0, [r5, #0xb] cmp r0, #2 bne _08097934 adds r0, r5, #0 adds r0, #0x6a ldrh r0, [r0] adds r1, r4, #0 subs r1, #0x41 ldrb r2, [r6] bl sub_0807B9B8 adds r0, r5, #0 adds r0, #0x6c ldrh r0, [r0] adds r1, r4, #0 subs r1, #0x40 ldrb r2, [r6] bl sub_0807B9B8 adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] adds r1, r4, #0 subs r1, #0x3f ldrb r2, [r6] bl sub_0807B9B8 adds r0, r5, #0 adds r0, #0x70 ldrh r0, [r0] subs r1, r4, #1 ldrb r2, [r6] bl sub_0807B9B8 adds r0, r5, #0 adds r0, #0x74 ldrh r0, [r0] adds r1, r4, #1 ldrb r2, [r6] bl sub_0807B9B8 adds r0, r5, #0 adds r0, #0x76 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x3f ldrb r2, [r6] bl sub_0807B9B8 adds r0, r5, #0 adds r0, #0x78 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x40 ldrb r2, [r6] bl sub_0807B9B8 adds r0, r5, #0 adds r0, #0x7a ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x41 ldrb r2, [r6] bl sub_0807B9B8 _08097934: ldr r0, _08097944 @ =0x0000010F bl sub_080A3268 movs r0, #1 b _08097988 .align 2, 0 _08097940: .4byte 0x0000403F _08097944: .4byte 0x0000010F _08097948: adds r0, r5, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _08097986 movs r0, #2 strb r0, [r5, #0xc] strb r4, [r5, #0xd] movs r0, #0xf0 strb r0, [r5, #0xe] movs r0, #0x3c strb r0, [r5, #0xf] strb r4, [r5, #0x15] movs r0, #0x40 strh r0, [r5, #0x24] adds r4, r5, #0 adds r4, #0x68 ldrh r0, [r4] adds r5, #0x38 ldrb r1, [r5] bl sub_0807BA8C ldrh r0, [r4] subs r0, #1 ldrb r1, [r5] bl sub_0807BA8C movs r0, #1 b _08097988 _08097986: movs r0, #0 _08097988: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0809798C sub_0809798C: @ 0x0809798C push {r4, lr} adds r1, r0, #0 movs r4, #0 ldrb r0, [r1, #0xa] cmp r0, #0 beq _0809799E ldrb r0, [r1, #0xb] cmp r0, #0 beq _080979AE _0809799E: adds r0, r1, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _080979AE movs r4, #1 _080979AE: adds r0, r4, #0 pop {r4, pc} .align 2, 0 thumb_func_start sub_080979B4 sub_080979B4: @ 0x080979B4 push {lr} ldr r2, _080979C8 @ =gUnk_081232E4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080979C8: .4byte gUnk_081232E4 thumb_func_start sub_080979CC sub_080979CC: @ 0x080979CC push {r4, r5, r6, lr} adds r5, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r5, #0xc] ldrb r1, [r5, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r5, #0x18] ldrb r0, [r5, #0xa] cmp r0, #3 bne _08097A20 movs r0, #0 strb r0, [r5, #0x1e] ldr r0, _08097A18 @ =gUnk_081232FE movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _08097A1C @ =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_0801AF18 b _08097A4E .align 2, 0 _08097A18: .4byte gUnk_081232FE _08097A1C: .4byte gUnk_03000BF0 _08097A20: strb r0, [r5, #0x1e] ldr r0, _08097A50 @ =gUnk_081232EC movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _08097A54 @ =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_0801AF18 _08097A4E: pop {r4, r5, r6, pc} .align 2, 0 _08097A50: .4byte gUnk_081232EC _08097A54: .4byte gUnk_03000BF0 thumb_func_start nullsub_529 nullsub_529: @ 0x08097A58 bx lr .align 2, 0 thumb_func_start sub_08097A5C sub_08097A5C: @ 0x08097A5C push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xc] cmp r0, #0 bne _08097AAC movs r4, #1 movs r0, #1 strb r0, [r5, #0xc] movs r0, #0x5a strb r0, [r5, #0xe] bl sub_08000E50 strb r0, [r5, #0xf] lsrs r0, r0, #0x10 movs r1, #3 ands r0, r1 strb r0, [r5, #0x1e] ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 orrs r0, r4 strb r0, [r5, #0x18] adds r2, r5, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] ldrb r0, [r5, #0xb] bl sub_0804B128 str r0, [r5, #0x54] adds r1, r5, #0 adds r1, #0x54 adds r2, r5, #0 adds r2, #0x70 adds r0, r5, #0 bl sub_080A2CC0 _08097AAC: adds r0, r5, #0 bl sub_08097ADC adds r1, r0, #0 adds r0, r5, #0 bl sub_080A2BE4 adds r0, r5, #0 bl sub_08097B24 adds r2, r5, #0 adds r2, #0x70 ldrh r0, [r2] subs r0, #1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 bne _08097ADA adds r1, r5, #0 adds r1, #0x54 adds r0, r5, #0 bl sub_080A2CC0 _08097ADA: pop {r4, r5, pc} thumb_func_start sub_08097ADC sub_08097ADC: @ 0x08097ADC push {r4, r5, lr} adds r2, r0, #0 ldr r5, _08097B18 @ =gUnk_03003F80 ldr r0, [r5, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _08097B20 ldr r4, _08097B1C @ =gUnk_03001160 adds r0, r2, #0 adds r1, r4, #0 movs r2, #8 movs r3, #8 bl sub_080041A0 cmp r0, #0 beq _08097B20 bl sub_08079F8C cmp r0, #0 beq _08097B20 movs r0, #1 strb r0, [r5, #0x14] movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 bne _08097B20 movs r0, #1 b _08097B22 .align 2, 0 _08097B18: .4byte gUnk_03003F80 _08097B1C: .4byte gUnk_03001160 _08097B20: movs r0, #0 _08097B22: pop {r4, r5, pc} thumb_func_start sub_08097B24 sub_08097B24: @ 0x08097B24 push {r4, lr} adds r3, r0, #0 ldrb r0, [r3, #0xe] subs r0, #1 strb r0, [r3, #0xe] movs r4, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _08097B44 movs r0, #0x5a strb r0, [r3, #0xe] ldrb r0, [r3, #0x1e] adds r0, #1 movs r1, #3 ands r0, r1 strb r0, [r3, #0x1e] _08097B44: ldr r2, _08097B68 @ =gUnk_08123318 ldrb r0, [r3, #0xf] adds r0, #1 strb r0, [r3, #0xf] ands r0, r4 lsrs r0, r0, #5 movs r1, #7 ands r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r2, [r0] adds r0, r3, #0 adds r1, r2, #0 movs r3, #0 bl sub_0805EC9C pop {r4, pc} .align 2, 0 _08097B68: .4byte gUnk_08123318 thumb_func_start sub_08097B6C sub_08097B6C: @ 0x08097B6C push {lr} ldr r2, _08097B80 @ =gUnk_08123330 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08097B80: .4byte gUnk_08123330 thumb_func_start sub_08097B84 sub_08097B84: @ 0x08097B84 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] ldr r0, _08097BCC @ =gUnk_08123328 str r0, [r4, #0x48] adds r2, #0x5d ldrh r1, [r2] ldr r0, _08097BD0 @ =0x0000FFFF cmp r1, r0 beq _08097BB0 adds r0, r1, #0 bl sub_0807CBE4 cmp r0, #0 beq _08097BD4 _08097BB0: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #4 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_08097CFC b _08097BD8 .align 2, 0 _08097BCC: .4byte gUnk_08123328 _08097BD0: .4byte 0x0000FFFF _08097BD4: bl sub_0805BC4C _08097BD8: pop {r4, pc} .align 2, 0 thumb_func_start sub_08097BDC sub_08097BDC: @ 0x08097BDC push {r4, lr} adds r4, r0, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _08097C10 movs r0, #1 bl sub_08078A90 ldr r0, _08097C14 @ =gUnk_02034490 movs r1, #1 strb r1, [r0] adds r0, r4, #0 movs r1, #0x1e bl sub_0805E4E0 adds r0, r4, #0 bl sub_08097CB0 cmp r0, #0 bne _08097C10 adds r0, r4, #0 bl sub_08097CB4 _08097C10: pop {r4, pc} .align 2, 0 _08097C14: .4byte gUnk_02034490 thumb_func_start sub_08097C18 sub_08097C18: @ 0x08097C18 bx lr .align 2, 0 thumb_func_start sub_08097C1C sub_08097C1C: @ 0x08097C1C bx lr .align 2, 0 thumb_func_start sub_08097C20 sub_08097C20: @ 0x08097C20 push {r4, r5, r6, lr} adds r4, r0, #0 movs r0, #0x1e bl sub_0805E510 adds r0, r4, #0 bl sub_0800445C movs r1, #0x2e ldrsh r0, [r4, r1] movs r2, #0x32 ldrsh r1, [r4, r2] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_080577AC ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r1, #0xff lsls r0, r0, #0x18 lsrs r5, r0, #0x18 cmp r5, #0 bne _08097CA6 movs r0, #8 strb r0, [r4, #0xe] ldrb r0, [r4, #0xf] adds r0, #1 strb r0, [r4, #0xf] ands r1, r0 ldr r6, _08097CA8 @ =gUnk_03000F50 movs r0, #0x10 subs r0, r0, r1 lsls r0, r0, #8 orrs r0, r1 adds r1, r6, #0 adds r1, #0x68 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x10 bne _08097CA6 movs r0, #0 bl sub_08078A90 ldr r1, _08097CAC @ =gUnk_02034490 movs r0, #0 strb r0, [r1] adds r0, r6, #0 adds r0, #0x66 strh r5, [r0] adds r0, r4, #0 bl sub_08097CFC movs r0, #4 strb r0, [r4, #0xc] ldrb r1, [r4, #0x19] subs r0, #0x11 ands r0, r1 strb r0, [r4, #0x19] movs r0, #0x72 bl sub_080A3268 movs r0, #0x63 bl sub_0807CD04 _08097CA6: pop {r4, r5, r6, pc} .align 2, 0 _08097CA8: .4byte gUnk_03000F50 _08097CAC: .4byte gUnk_02034490 thumb_func_start sub_08097CB0 sub_08097CB0: @ 0x08097CB0 movs r0, #0 bx lr thumb_func_start sub_08097CB4 sub_08097CB4: @ 0x08097CB4 push {lr} movs r3, #0 movs r1, #3 strb r1, [r0, #0xc] ldrb r2, [r0, #0x18] subs r1, #7 ands r1, r2 movs r2, #1 orrs r1, r2 strb r1, [r0, #0x18] ldrb r2, [r0, #0x19] movs r1, #0xd rsbs r1, r1, #0 ands r1, r2 movs r2, #4 orrs r1, r2 strb r1, [r0, #0x19] movs r1, #0x1e strb r1, [r0, #0xe] strb r3, [r0, #0xf] ldr r1, _08097CF8 @ =gUnk_03000F50 adds r2, r1, #0 adds r2, #0x66 movs r0, #0xf4 lsls r0, r0, #4 strh r0, [r2] adds r1, #0x68 adds r0, #0xc0 strh r0, [r1] movs r0, #0xa5 lsls r0, r0, #1 bl sub_080A3268 pop {pc} .align 2, 0 _08097CF8: .4byte gUnk_03000F50 thumb_func_start sub_08097CFC sub_08097CFC: @ 0x08097CFC push {r4, r5, r6, lr} adds r5, r0, #0 ldrh r1, [r5, #0x2e] movs r0, #0xf ands r0, r1 cmp r0, #0 bne _08097D40 ldr r0, _08097D38 @ =gUnk_0812336A movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _08097D3C @ =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_0801AF18 b _08097D6C .align 2, 0 _08097D38: .4byte gUnk_0812336A _08097D3C: .4byte gUnk_03000BF0 _08097D40: ldr r0, _08097D70 @ =gUnk_08123344 movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _08097D74 @ =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_0801AF18 _08097D6C: pop {r4, r5, r6, pc} .align 2, 0 _08097D70: .4byte gUnk_08123344 _08097D74: .4byte gUnk_03000BF0 thumb_func_start sub_08097D78 sub_08097D78: @ 0x08097D78 push {lr} ldr r2, _08097D8C @ =gUnk_08123384 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08097D8C: .4byte gUnk_08123384 thumb_func_start sub_08097D90 sub_08097D90: @ 0x08097D90 push {r4, lr} adds r4, r0, #0 movs r3, #1 movs r2, #1 strb r2, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 orrs r0, r3 strb r0, [r4, #0x18] adds r0, r4, #0 adds r0, #0x38 strb r2, [r0] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 movs r1, #0 bl sub_080042AC pop {r4, pc} .align 2, 0 thumb_func_start sub_08097DCC sub_08097DCC: @ 0x08097DCC push {lr} bl sub_080042B8 pop {pc} thumb_func_start sub_08097DD4 sub_08097DD4: @ 0x08097DD4 push {lr} ldr r2, _08097DE8 @ =gUnk_081233B8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08097DE8: .4byte gUnk_081233B8 thumb_func_start sub_08097DEC sub_08097DEC: @ 0x08097DEC push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_08016A04 ldrb r0, [r4, #0xa] cmp r0, #1 beq _08097E46 cmp r0, #1 bgt _08097E0A cmp r0, #0 beq _08097E1C b _08097EA2 _08097E0A: cmp r0, #3 bgt _08097EA2 ldrb r0, [r4, #0xb] strb r0, [r4, #0x1e] ldrb r0, [r4, #0x18] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x18] b _08097E9C _08097E1C: ldrh r2, [r4, #0x2e] movs r1, #0x10 rsbs r1, r1, #0 adds r0, r1, #0 ands r0, r2 strh r0, [r4, #0x2e] ldrh r0, [r4, #0x32] ands r1, r0 strh r1, [r4, #0x32] adds r0, r4, #0 bl sub_08097EB8 ldrb r0, [r4, #0xb] cmp r0, #0 beq _08097EA2 adds r1, r0, #0 adds r1, #0xb adds r0, r4, #0 bl sub_0801D2B4 b _08097EA2 _08097E46: ldrb r0, [r4, #0xb] strb r0, [r4, #0x1e] lsls r0, r0, #0x18 lsrs r0, r0, #0x19 cmp r0, #1 beq _08097E76 cmp r0, #1 bgt _08097E5C cmp r0, #0 beq _08097E68 b _08097E9C _08097E5C: cmp r0, #2 bne _08097E9C adds r0, r4, #0 movs r1, #0xd bl sub_0801D2B4 _08097E68: ldrb r0, [r4, #0x1b] movs r1, #0x3f ands r1, r0 movs r0, #0x40 orrs r1, r0 strb r1, [r4, #0x1b] b _08097E9C _08097E76: ldrb r1, [r4, #0x1b] movs r0, #0x3f ands r0, r1 movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x1b] 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] adds r0, r4, #0 movs r1, #0xb bl sub_0801D2B4 _08097E9C: adds r0, r4, #0 bl sub_08097F34 _08097EA2: pop {r4, pc} thumb_func_start sub_08097EA4 sub_08097EA4: @ 0x08097EA4 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xa] cmp r0, #0 beq _08097EB4 adds r0, r1, #0 bl sub_08097F10 _08097EB4: pop {pc} .align 2, 0 thumb_func_start sub_08097EB8 sub_08097EB8: @ 0x08097EB8 push {r4, r5, r6, lr} movs r2, #0x2e ldrsh r1, [r0, r2] ldr r3, _08097F04 @ =gUnk_03000BF0 ldrh r2, [r3, #6] subs r1, r1, r2 asrs r5, r1, #4 movs r2, #0x3f ands r5, r2 movs r1, #0x32 ldrsh r0, [r0, r1] ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r5, r0 ldr r4, _08097F08 @ =gUnk_081233C0 movs r2, #0 ldrsh r0, [r4, r2] ldr r1, _08097F0C @ =0x00007FFF cmp r0, r1 beq _08097F00 adds r6, r1, #0 _08097EE8: ldrh r0, [r4, #2] movs r2, #0 ldrsh r1, [r4, r2] adds r1, r5, r1 movs r2, #1 bl sub_0800015E adds r4, #4 movs r1, #0 ldrsh r0, [r4, r1] cmp r0, r6 bne _08097EE8 _08097F00: pop {r4, r5, r6, pc} .align 2, 0 _08097F04: .4byte gUnk_03000BF0 _08097F08: .4byte gUnk_081233C0 _08097F0C: .4byte 0x00007FFF thumb_func_start sub_08097F10 sub_08097F10: @ 0x08097F10 push {r4, lr} adds r4, r0, #0 ldr r0, _08097F30 @ =gUnk_03000BF0 movs r2, #0xc ldrsh r1, [r0, r2] ldrh r0, [r0, #8] subs r1, r1, r0 adds r0, r4, #0 bl sub_08097F60 adds r1, r4, #0 adds r1, #0x70 ldrh r1, [r1] subs r1, r1, r0 strh r1, [r4, #0x32] pop {r4, pc} .align 2, 0 _08097F30: .4byte gUnk_03000BF0 thumb_func_start sub_08097F34 sub_08097F34: @ 0x08097F34 push {r4, lr} adds r4, r0, #0 movs r0, #0x32 ldrsh r1, [r4, r0] ldr r0, _08097F5C @ =gUnk_03000BF0 ldrh r0, [r0, #8] subs r1, r1, r0 adds r0, r4, #0 bl sub_08097F60 ldrh r1, [r4, #0x32] adds r1, r1, r0 adds r0, r4, #0 adds r0, #0x70 strh r1, [r0] adds r0, r4, #0 bl sub_08097F10 pop {r4, pc} .align 2, 0 _08097F5C: .4byte gUnk_03000BF0 thumb_func_start sub_08097F60 sub_08097F60: @ 0x08097F60 push {lr} ldrb r2, [r0, #0xa] cmp r2, #1 bne _08097F74 ldrb r0, [r0, #0x1e] lsrs r0, r0, #1 cmp r0, #1 bne _08097F7C asrs r1, r1, #3 b _08097F7E _08097F74: cmp r2, #1 blt _08097F7E cmp r2, #3 bgt _08097F7E _08097F7C: asrs r1, r1, #1 _08097F7E: adds r0, r1, #0 pop {pc} .align 2, 0 thumb_func_start sub_08097F84 sub_08097F84: @ 0x08097F84 push {r4, lr} adds r4, r0, #0 ldr r0, _08097FAC @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _08097F98 bl sub_0805E780 _08097F98: ldr r0, _08097FB0 @ =gUnk_08123410 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _08097FAC: .4byte gUnk_03003F80 _08097FB0: .4byte gUnk_08123410 thumb_func_start sub_08097FB4 sub_08097FB4: @ 0x08097FB4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r0, #1 movs r1, #0 strb r0, [r4, #0xc] movs r2, #0 strh r1, [r4, #0x24] str r1, [r4, #0x6c] adds r1, r4, #0 adds r1, #0x7a movs r0, #0x90 lsls r0, r0, #5 strh r0, [r1] strb r2, [r4, #0xe] movs r0, #0x1e strb r0, [r4, #0xf] ldr r1, _08098014 @ =gUnk_0812341C ldrb r0, [r4, #0xa] adds r0, r0, r1 ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x72 strh r0, [r1] movs r0, #0x80 lsls r0, r0, #6 str r0, [r4, #0x74] adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 ldrb r0, [r4, #0xa] cmp r0, #0 bne _08098018 adds r1, r4, #0 adds r1, #0x7e movs r0, #0x40 strh r0, [r1] adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_080AE008 ldrb r1, [r4, #0xa] adds r0, r4, #0 bl sub_080042AC b _08098032 .align 2, 0 _08098014: .4byte gUnk_0812341C _08098018: ldr r0, [r4, #0x50] adds r0, #0x60 ldrh r1, [r0] adds r0, r4, #0 adds r0, #0x60 strh r1, [r0] ldr r2, [r4, #0x50] ldrb r1, [r4, #0xa] movs r0, #0xd muls r0, r1, r0 ldrb r2, [r2, #0x1e] adds r0, r0, r2 strb r0, [r4, #0x1e] _08098032: adds r0, r4, #0 bl sub_08098130 pop {r4, pc} .align 2, 0 thumb_func_start sub_0809803C sub_0809803C: @ 0x0809803C push {r4, r5, lr} adds r4, r0, #0 ldrb r5, [r4, #0xa] cmp r5, #0 bne _08098070 bl sub_080042B8 ldrb r0, [r4, #0xb] cmp r0, #0 beq _08098082 ldr r0, _0809806C @ =gUnk_03001160 strb r5, [r0, #0xf] ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_080042AC movs r0, #0xbc lsls r0, r0, #1 bl sub_080A3268 b _08098082 .align 2, 0 _0809806C: .4byte gUnk_03001160 _08098070: ldr r2, [r4, #0x50] ldrb r1, [r4, #0xa] movs r0, #0xd muls r0, r1, r0 ldrb r1, [r2, #0x1e] adds r0, r0, r1 strb r0, [r4, #0x1e] ldrb r0, [r2, #0xc] strb r0, [r4, #0xc] _08098082: pop {r4, r5, pc} thumb_func_start sub_08098084 sub_08098084: @ 0x08098084 push {r4, lr} adds r4, r0, #0 ldr r1, [r4, #0x6c] movs r0, #0xa0 lsls r0, r0, #0xd cmp r1, r0 bls _080980A8 ldr r0, _080980A4 @ =gUnk_03003F80 ldr r1, [r0, #0x30] movs r2, #0x80 orrs r1, r2 str r1, [r0, #0x30] bl sub_0805E780 b _0809812E .align 2, 0 _080980A4: .4byte gUnk_03003F80 _080980A8: ldrb r0, [r4, #0xa] cmp r0, #0 bne _080980D8 adds r0, r4, #0 bl sub_080042B8 adds r2, r4, #0 adds r2, #0x7e ldrh r0, [r2] subs r0, #1 strh r0, [r2] lsls r0, r0, #0x10 ldr r1, _080980D4 @ =0xFFFF0000 cmp r0, r1 bne _080980E6 movs r0, #0x40 strh r0, [r2] movs r0, #0xbc lsls r0, r0, #1 bl sub_080A3268 b _080980E6 .align 2, 0 _080980D4: .4byte 0xFFFF0000 _080980D8: ldr r2, [r4, #0x50] ldrb r1, [r4, #0xa] movs r0, #0xd muls r0, r1, r0 ldrb r2, [r2, #0x1e] adds r0, r0, r2 strb r0, [r4, #0x1e] _080980E6: ldr r0, [r4, #0x6c] movs r1, #0xa0 lsls r1, r1, #5 adds r0, r0, r1 str r0, [r4, #0x6c] ldr r0, [r4, #0x70] ldr r1, [r4, #0x74] adds r0, r0, r1 str r0, [r4, #0x70] adds r2, r4, #0 adds r2, #0x72 ldrh r1, [r2] movs r0, #0x1f ands r0, r1 strh r0, [r2] ldr r0, [r4, #0x74] movs r1, #0xa0 lsls r1, r1, #1 adds r0, r0, r1 str r0, [r4, #0x74] ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _08098128 movs r0, #0x1e strb r0, [r4, #0xf] ldrb r0, [r4, #0xe] movs r1, #1 eors r0, r1 strb r0, [r4, #0xe] _08098128: adds r0, r4, #0 bl sub_08098130 _0809812E: pop {r4, pc} thumb_func_start sub_08098130 sub_08098130: @ 0x08098130 push {r4, lr} adds r4, r0, #0 ldr r0, _08098160 @ =gUnk_03001160 adds r1, r4, #0 bl sub_0806FA24 adds r0, r4, #0 adds r0, #0x72 ldrh r0, [r0] strb r0, [r4, #0x15] adds r0, r4, #0 adds r0, #0x7a ldrh r0, [r0] strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_0806F69C ldr r0, [r4, #0x30] ldr r1, _08098164 @ =0xFFEC0000 adds r0, r0, r1 ldr r1, [r4, #0x6c] adds r0, r0, r1 str r0, [r4, #0x30] pop {r4, pc} .align 2, 0 _08098160: .4byte gUnk_03001160 _08098164: .4byte 0xFFEC0000 thumb_func_start sub_08098168 sub_08098168: @ 0x08098168 push {r4, r5, lr} adds r4, r0, #0 ldrb r5, [r4, #0xc] cmp r5, #0 bne _080981DA movs r2, #1 movs r3, #1 strb r3, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldrb r1, [r4, #0x19] movs r0, #0xd rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r4, #0x19] strb r3, [r4, #0xe] bl sub_08000E50 movs r1, #0xf ands r0, r1 strb r0, [r4, #0xf] adds r0, r4, #0 adds r0, #0x68 strb r5, [r0] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r4, #0 bl sub_08016A30 ldr r1, _080981CC @ =gUnk_03000F50 adds r2, r1, #0 adds r2, #0x66 movs r3, #0 movs r0, #0xbd lsls r0, r0, #6 strh r0, [r2] ldrb r0, [r4, #0xa] cmp r0, #0 bne _080981D4 adds r1, #0x68 ldr r0, _080981D0 @ =0x0000060A b _080981D8 .align 2, 0 _080981CC: .4byte gUnk_03000F50 _080981D0: .4byte 0x0000060A _080981D4: adds r1, #0x68 ldr r0, _08098208 @ =0x00000808 _080981D8: strh r0, [r1] _080981DA: ldrb r0, [r4, #0xa] adds r3, r4, #0 adds r3, #0x68 cmp r0, #0 beq _08098222 ldr r0, _0809820C @ =gUnk_03001160 movs r2, #0x2e ldrsh r1, [r0, r2] ldr r0, _08098210 @ =gUnk_03000BF0 ldrh r0, [r0, #6] subs r1, r1, r0 movs r0, #0xf8 lsls r0, r0, #1 cmp r1, r0 ble _08098214 ldrb r1, [r3] movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0x3f bgt _08098222 adds r0, r1, #1 b _08098220 .align 2, 0 _08098208: .4byte 0x00000808 _0809820C: .4byte gUnk_03001160 _08098210: .4byte gUnk_03000BF0 _08098214: ldrb r1, [r3] movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 ble _08098222 subs r0, r1, #1 _08098220: strb r0, [r3] _08098222: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0809823C movs r0, #8 strb r0, [r4, #0xe] ldrb r0, [r4, #0xf] adds r0, #1 movs r1, #0xf ands r0, r1 strb r0, [r4, #0xf] _0809823C: ldr r1, _0809825C @ =gUnk_08123484 ldrb r0, [r4, #0xf] adds r0, r0, r1 ldrb r0, [r0] adds r2, r4, #0 adds r2, #0x62 strb r0, [r2] ldrb r0, [r4, #0xf] adds r0, r0, r1 ldrb r1, [r3] ldrb r0, [r0] adds r1, r1, r0 adds r0, r4, #0 adds r0, #0x63 strb r1, [r0] pop {r4, r5, pc} .align 2, 0 _0809825C: .4byte gUnk_08123484 thumb_func_start sub_08098260 sub_08098260: @ 0x08098260 push {lr} ldr r2, _08098274 @ =gUnk_08123494 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08098274: .4byte gUnk_08123494 thumb_func_start sub_08098278 sub_08098278: @ 0x08098278 push {lr} adds r3, r0, #0 adds r3, #0x29 ldrb r2, [r3] movs r1, #8 rsbs r1, r1, #0 ands r1, r2 movs r2, #5 orrs r1, r2 strb r1, [r3] bl sub_08098340 pop {pc} .align 2, 0 thumb_func_start sub_08098294 sub_08098294: @ 0x08098294 push {r4, r5, lr} adds r4, r0, #0 bl sub_08098418 cmp r0, #0 beq _080982FA movs r5, #0 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x62 strb r5, [r0] adds r0, #1 strb r5, [r0] adds r0, #0xf ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x70 ldrh r1, [r1] adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E movs r0, #0xb5 lsls r0, r0, #1 bl sub_08004488 adds r0, r4, #0 movs r1, #0x1e bl sub_0805E4E0 bl sub_08079F8C cmp r0, #0 beq _080982FA ldr r2, _080982FC @ =gUnk_03003F80 movs r0, #0x90 strb r0, [r2, #6] movs r0, #5 strb r0, [r2, #0xc] ldr r0, [r2, #0x30] movs r1, #1 orrs r0, r1 str r0, [r2, #0x30] ldr r1, _08098300 @ =gUnk_03001160 strh r5, [r1, #0x2c] strh r5, [r1, #0x30] ldrb r0, [r1, #0x14] lsls r0, r0, #2 strb r0, [r1, #0x15] _080982FA: pop {r4, r5, pc} .align 2, 0 _080982FC: .4byte gUnk_03003F80 _08098300: .4byte gUnk_03001160 thumb_func_start sub_08098304 sub_08098304: @ 0x08098304 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0809833C ldrb r0, [r4, #0xb] cmp r0, #0 bne _0809832C adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 b _08098336 _0809832C: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CD48 _08098336: adds r0, r4, #0 bl sub_08098340 _0809833C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08098340 sub_08098340: @ 0x08098340 push {lr} movs r1, #1 strb r1, [r0, #0xc] adds r2, r0, #0 adds r2, #0x74 movs r1, #0x3c strh r1, [r2] bl sub_08098354 pop {pc} thumb_func_start sub_08098354 sub_08098354: @ 0x08098354 push {r4, r5, r6, lr} adds r6, r0, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 bne _080983BC strb r0, [r6, #0xb] movs r0, #0x2e ldrsh r2, [r6, r0] ldr r1, _080983B4 @ =gUnk_03000BF0 ldrh r0, [r1, #6] subs r2, r2, r0 asrs r2, r2, #4 movs r3, #0x3f ands r2, r3 movs r4, #0x32 ldrsh r0, [r6, r4] ldrh r1, [r1, #8] adds r1, #0x10 subs r0, r0, r1 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r2, r0 adds r4, r6, #0 adds r4, #0x70 strh r2, [r4] ldrh r0, [r4] adds r5, r6, #0 adds r5, #0x38 ldrb r1, [r5] bl sub_080001DA adds r1, r6, #0 adds r1, #0x72 strh r0, [r1] ldr r0, _080983B8 @ =0x00004053 ldrh r1, [r4] ldrb r2, [r5] bl sub_0800015E adds r0, r6, #0 movs r1, #1 bl sub_08004260 b _0809840C .align 2, 0 _080983B4: .4byte gUnk_03000BF0 _080983B8: .4byte 0x00004053 _080983BC: movs r0, #1 strb r0, [r6, #0xb] movs r0, #0x2e ldrsh r2, [r6, r0] ldr r1, _08098410 @ =gUnk_03000BF0 ldrh r0, [r1, #6] adds r0, #0x10 subs r2, r2, r0 asrs r2, r2, #4 movs r3, #0x3f ands r2, r3 movs r4, #0x32 ldrsh r0, [r6, r4] ldrh r1, [r1, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r2, r0 adds r4, r6, #0 adds r4, #0x70 strh r2, [r4] ldrh r0, [r4] adds r5, r6, #0 adds r5, #0x38 ldrb r1, [r5] bl sub_080001DA adds r1, r6, #0 adds r1, #0x72 strh r0, [r1] ldr r0, _08098414 @ =0x00004052 ldrh r1, [r4] ldrb r2, [r5] bl sub_0800015E adds r0, r6, #0 movs r1, #0 bl sub_08004260 _0809840C: pop {r4, r5, r6, pc} .align 2, 0 _08098410: .4byte gUnk_03000BF0 _08098414: .4byte 0x00004052 thumb_func_start sub_08098418 sub_08098418: @ 0x08098418 push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r4, #0 adds r6, #0x70 ldrh r0, [r6] adds r5, r4, #0 adds r5, #0x38 ldrb r1, [r5] bl sub_080001DA ldr r1, _08098448 @ =0x00004054 cmp r0, r1 bne _0809846C adds r1, r4, #0 adds r1, #0x74 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0809844C movs r0, #1 b _08098482 .align 2, 0 _08098448: .4byte 0x00004054 _0809844C: adds r0, r4, #0 bl sub_08098484 ldr r1, _08098468 @ =gUnk_081234A0 ldrb r0, [r4, #0xb] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] ldrh r1, [r6] ldrb r2, [r5] bl sub_0800015E b _08098480 .align 2, 0 _08098468: .4byte gUnk_081234A0 _0809846C: adds r1, r4, #0 adds r1, #0x74 movs r2, #0 movs r0, #0x3c strh r0, [r1] adds r0, r4, #0 adds r0, #0x62 strb r2, [r0] adds r0, #1 strb r2, [r0] _08098480: movs r0, #0 _08098482: pop {r4, r5, r6, pc} thumb_func_start sub_08098484 sub_08098484: @ 0x08098484 push {r4, lr} adds r3, r0, #0 ldrb r0, [r3, #0xb] ldr r4, _080984C4 @ =gUnk_081234AC cmp r0, #0 bne _08098492 ldr r4, _080984C8 @ =gUnk_081234A4 _08098492: adds r2, r3, #0 adds r2, #0x74 ldrh r0, [r2] lsrs r0, r0, #2 movs r1, #6 ands r0, r1 adds r4, r4, r0 ldrb r0, [r4] adds r1, r3, #0 adds r1, #0x62 strb r0, [r1] ldrb r1, [r4, #1] adds r0, r3, #0 adds r0, #0x63 strb r1, [r0] ldrh r1, [r2] movs r0, #3 ands r0, r1 cmp r0, #0 bne _080984C2 movs r0, #0x82 lsls r0, r0, #1 bl sub_08004488 _080984C2: pop {r4, pc} .align 2, 0 _080984C4: .4byte gUnk_081234AC _080984C8: .4byte gUnk_081234A4 thumb_func_start sub_080984CC sub_080984CC: @ 0x080984CC push {r4, lr} adds r4, r0, #0 ldr r1, _080984E8 @ =gUnk_08123504 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0800445C pop {r4, pc} .align 2, 0 _080984E8: .4byte gUnk_08123504 thumb_func_start sub_080984EC sub_080984EC: @ 0x080984EC push {lr} movs r1, #1 strb r1, [r0, #0xc] ldr r2, _08098528 @ =gUnk_081234EC ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] str r1, [r0, #0x48] ldrb r0, [r0, #0xb] cmp r0, #1 bne _08098524 ldr r0, _0809852C @ =0x00004024 movs r1, #0x82 lsls r1, r1, #3 movs r2, #1 bl sub_0800015E ldr r0, _08098530 @ =0x00004026 ldr r1, _08098534 @ =0x00000411 movs r2, #1 bl sub_0800015E ldr r0, _08098538 @ =0x00004025 ldr r1, _0809853C @ =0x00000412 movs r2, #1 bl sub_0800015E _08098524: pop {pc} .align 2, 0 _08098528: .4byte gUnk_081234EC _0809852C: .4byte 0x00004024 _08098530: .4byte 0x00004026 _08098534: .4byte 0x00000411 _08098538: .4byte 0x00004025 _0809853C: .4byte 0x00000412 thumb_func_start nullsub_532 nullsub_532: @ 0x08098540 bx lr .align 2, 0 thumb_func_start sub_08098544 sub_08098544: @ 0x08098544 push {lr} ldr r2, _08098558 @ =gUnk_0812350C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08098558: .4byte gUnk_0812350C thumb_func_start sub_0809855C sub_0809855C: @ 0x0809855C push {r4, r5, lr} adds r4, r0, #0 movs r3, #0 movs r5, #1 strb r5, [r4, #0xc] ldrb r0, [r4, #0x10] movs r2, #0x80 orrs r0, r2 strb r0, [r4, #0x10] movs r0, #0x29 adds r0, r0, r4 mov ip, r0 ldrb r1, [r0] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 mov r1, ip strb r0, [r1] ldrb r1, [r4, #0x19] movs r0, #0x3f ands r0, r1 orrs r0, r2 strb r0, [r4, #0x19] strb r3, [r4, #0xf] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x6e strb r0, [r1] subs r1, #4 movs r0, #0x86 strb r0, [r1] strb r3, [r4, #0x16] ldrb r0, [r4, #0xa] cmp r0, #0 beq _080985AC movs r0, #2 strb r0, [r4, #0x1c] b _080985AE _080985AC: strb r5, [r4, #0x1c] _080985AE: ldr r1, [r4, #0x50] adds r0, r4, #0 bl sub_0806FAD8 adds r0, r4, #0 bl sub_08098918 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080985C0 sub_080985C0: @ 0x080985C0 push {r4, lr} adds r4, r0, #0 bl sub_080989E4 cmp r0, #0 bne _080985CE b _080986FC _080985CE: ldrb r0, [r0, #0xc] cmp r0, #4 bls _080985D6 b _080986E6 _080985D6: adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080985E6 b _080986EE _080985E6: movs r0, #0x3f ands r0, r1 subs r0, #4 cmp r0, #0x1c bls _080985F2 b _08098702 _080985F2: lsls r0, r0, #2 ldr r1, _080985FC @ =_08098600 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080985FC: .4byte _08098600 _08098600: @ jump table .4byte _080986C4 @ case 0 .4byte _080986C4 @ case 1 .4byte _080986C4 @ case 2 .4byte _08098702 @ case 3 .4byte _080986C4 @ case 4 .4byte _080986C4 @ case 5 .4byte _080986C4 @ case 6 .4byte _080986C4 @ case 7 .4byte _080986C4 @ case 8 .4byte _080986C4 @ case 9 .4byte _08098702 @ case 10 .4byte _0809867E @ case 11 .4byte _080986C4 @ case 12 .4byte _080986C4 @ case 13 .4byte _080986C4 @ case 14 .4byte _08098674 @ case 15 .4byte _080986E0 @ case 16 .4byte _08098702 @ case 17 .4byte _080986E0 @ case 18 .4byte _08098702 @ case 19 .4byte _080986C4 @ case 20 .4byte _080986C4 @ case 21 .4byte _080986C4 @ case 22 .4byte _08098702 @ case 23 .4byte _08098702 @ case 24 .4byte _0809867E @ case 25 .4byte _08098702 @ case 26 .4byte _08098702 @ case 27 .4byte _080986E0 @ case 28 _08098674: movs r1, #0 movs r0, #3 strb r0, [r4, #0xc] strb r1, [r4, #0xd] b _08098702 _0809867E: movs r2, #0 movs r0, #4 strb r0, [r4, #0xc] movs r0, #0xa8 lsls r0, r0, #0xa str r0, [r4, #0x20] adds r0, r4, #0 adds r0, #0x63 strb r2, [r0] ldrb r1, [r4, #0x18] movs r0, #0x31 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x10 orrs r0, r1 strb r0, [r4, #0x18] adds r3, r4, #0 adds r3, #0x29 ldrb r1, [r3] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x18 orrs r0, r1 strb r0, [r3] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldr r0, [r4, #0x50] str r2, [r0, #0x54] adds r0, r4, #0 bl sub_080988E8 b _08098702 _080986C4: ldrb r0, [r4, #0xa] cmp r0, #0 beq _080986E6 ldr r0, _080986DC @ =gUnk_03003F80 adds r0, #0xac ldrh r1, [r0] movs r0, #8 ands r0, r1 cmp r0, #0 beq _08098702 b _080986E6 .align 2, 0 _080986DC: .4byte gUnk_03003F80 _080986E0: ldrb r0, [r4, #0xa] cmp r0, #0 bne _08098702 _080986E6: adds r0, r4, #0 bl sub_080989C0 b _08098702 _080986EE: adds r0, r4, #0 bl sub_08098918 adds r0, r4, #0 bl sub_08078930 b _08098702 _080986FC: adds r0, r4, #0 bl sub_080989C0 _08098702: pop {r4, pc} thumb_func_start sub_08098704 sub_08098704: @ 0x08098704 push {lr} ldr r2, _08098718 @ =gUnk_08123524 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08098718: .4byte gUnk_08123524 thumb_func_start sub_0809871C sub_0809871C: @ 0x0809871C adds r3, r0, #0 ldrb r1, [r3, #0x10] movs r0, #0x80 movs r2, #0 orrs r0, r1 strb r0, [r3, #0x10] adds r1, r3, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] adds r1, #3 movs r0, #1 strb r0, [r1] ldr r0, _08098754 @ =gUnk_03001160 adds r0, #0x3b ldrb r0, [r0] subs r1, #4 strb r0, [r1] adds r0, r3, #0 adds r0, #0x63 strb r2, [r0] ldr r0, [r3, #0x50] str r2, [r0, #0x54] ldrb r0, [r3, #0xd] adds r0, #1 strb r0, [r3, #0xd] bx lr .align 2, 0 _08098754: .4byte gUnk_03001160 thumb_func_start nullsub_533 nullsub_533: @ 0x08098758 bx lr .align 2, 0 thumb_func_start sub_0809875C sub_0809875C: @ 0x0809875C adds r0, #0x29 ldrb r2, [r0] movs r1, #0x39 rsbs r1, r1, #0 ands r1, r2 movs r2, #0x18 orrs r1, r2 strb r1, [r0] bx lr .align 2, 0 thumb_func_start sub_08098770 sub_08098770: @ 0x08098770 push {r4, lr} adds r4, r0, #0 bl sub_080043E8 cmp r0, #2 beq _0809878C cmp r0, #2 bhi _08098786 cmp r0, #1 beq _08098792 b _080987A4 _08098786: cmp r0, #3 beq _08098798 b _080987A4 _0809878C: adds r0, r4, #0 movs r1, #0xb b _0809879C _08098792: adds r0, r4, #0 movs r1, #0 b _0809879C _08098798: adds r0, r4, #0 movs r1, #0xc _0809879C: movs r2, #0 bl sub_080A29AC b _080987AC _080987A4: adds r0, r4, #0 bl sub_080989C0 b _080987B0 _080987AC: bl sub_0805E780 _080987B0: pop {r4, pc} .align 2, 0 thumb_func_start sub_080987B4 sub_080987B4: @ 0x080987B4 push {lr} bl sub_0805E780 pop {pc} thumb_func_start sub_080987BC sub_080987BC: @ 0x080987BC push {lr} adds r1, r0, #0 ldr r0, _080987D0 @ =gUnk_03003F80 ldrb r0, [r0, #5] cmp r0, #0 bne _080987CE adds r0, r1, #0 bl sub_080987D4 _080987CE: pop {pc} .align 2, 0 _080987D0: .4byte gUnk_03003F80 thumb_func_start sub_080987D4 sub_080987D4: @ 0x080987D4 movs r2, #0 movs r1, #1 strb r1, [r0, #0xc] strb r2, [r0, #0xd] bx lr .align 2, 0 thumb_func_start sub_080987E0 sub_080987E0: @ 0x080987E0 push {r4, lr} adds r4, r0, #0 ldr r1, _0809880C @ =gUnk_08123540 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, #1 bhi _0809880A adds r0, r4, #0 bl sub_080989E4 cmp r0, #0 bne _0809880A adds r0, r4, #0 bl sub_080989C0 _0809880A: pop {r4, pc} .align 2, 0 _0809880C: .4byte gUnk_08123540 thumb_func_start sub_08098810 sub_08098810: @ 0x08098810 movs r2, #0 movs r1, #1 strb r1, [r0, #0xd] movs r1, #0x30 strb r1, [r0, #0x1d] strb r2, [r0, #0xe] bx lr .align 2, 0 thumb_func_start sub_08098820 sub_08098820: @ 0x08098820 push {lr} adds r2, r0, #0 ldr r0, _0809884C @ =gUnk_03003F80 ldrb r1, [r0, #0x1c] movs r0, #0xf ands r0, r1 cmp r0, #1 bne _0809883E adds r0, r2, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0x13 beq _08098850 _0809883E: adds r1, r2, #0 adds r1, #0x62 movs r0, #0 strb r0, [r1] movs r0, #1 strb r0, [r2, #0xc] b _08098856 .align 2, 0 _0809884C: .4byte gUnk_03003F80 _08098850: adds r0, r2, #0 bl sub_0806F4E8 _08098856: pop {pc} thumb_func_start sub_08098858 sub_08098858: @ 0x08098858 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xe] cmp r1, #0 bne _08098878 movs r0, #1 strb r0, [r4, #0xe] adds r0, r4, #0 adds r0, #0x62 strb r1, [r0] adds r2, r4, #0 adds r2, #0x63 movs r0, #0xfe strb r0, [r2] ldr r0, [r4, #0x50] str r1, [r0, #0x54] _08098878: ldr r0, _0809889C @ =gUnk_03003F80 ldrb r1, [r0, #0x1c] movs r0, #0xf ands r0, r1 cmp r0, #1 bne _08098892 adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0x13 beq _080988A0 _08098892: adds r0, r4, #0 bl sub_080989C0 b _080988B4 .align 2, 0 _0809889C: .4byte gUnk_03003F80 _080988A0: adds r0, r4, #0 bl sub_0806F3E4 cmp r0, #0 beq _080988B4 ldrb r0, [r4, #0xa] cmp r0, #0 bne _080988B4 bl sub_0805E780 _080988B4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080988B8 sub_080988B8: @ 0x080988B8 push {lr} adds r2, r0, #0 ldr r0, _080988CC @ =gUnk_03003F80 ldrb r0, [r0, #0x1c] cmp r0, #0 bne _080988D0 adds r0, r2, #0 bl sub_080989C0 b _080988D8 .align 2, 0 _080988CC: .4byte gUnk_03003F80 _080988D0: ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0x10] _080988D8: pop {pc} .align 2, 0 thumb_func_start nullsub_123 nullsub_123: @ 0x080988DC bx lr .align 2, 0 thumb_func_start sub_080988E0 sub_080988E0: @ 0x080988E0 push {lr} bl sub_080989C0 pop {pc} thumb_func_start sub_080988E8 sub_080988E8: @ 0x080988E8 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x20] cmp r0, #0 bge _080988FA ldrb r0, [r4, #0x18] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x18] _080988FA: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _0809890E adds r0, r4, #0 bl sub_080989C0 _0809890E: pop {r4, pc} thumb_func_start sub_08098910 sub_08098910: @ 0x08098910 push {lr} bl sub_080989C0 pop {pc} thumb_func_start sub_08098918 sub_08098918: @ 0x08098918 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_080989E4 adds r6, r0, #0 cmp r6, #0 bne _0809892E adds r0, r4, #0 bl sub_080989C0 b _080989BC _0809892E: adds r0, r6, #0 adds r1, r4, #0 bl sub_0806FA24 ldrb r1, [r6, #0x10] movs r0, #0x80 ands r0, r1 lsls r0, r0, #0x18 lsrs r5, r0, #0x18 cmp r5, #0 beq _08098990 ldrb r0, [r4, #0xf] cmp r0, #0 bne _08098968 adds r0, #1 strb r0, [r4, #0xf] 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] ldr r1, [r4, #0x50] adds r0, r4, #0 bl sub_0806FAD8 _08098968: ldr r2, _0809898C @ =gUnk_08123558 adds r0, r6, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0xf ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #8 movs r1, #0 strh r0, [r4, #0x36] adds r0, r4, #0 adds r0, #0x63 strb r1, [r0] b _080989BC .align 2, 0 _0809898C: .4byte gUnk_08123558 _08098990: ldrb r0, [r4, #0xf] cmp r0, #0 beq _080989B2 strb r5, [r4, #0xf] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] ldr r1, [r4, #0x50] adds r0, r4, #0 bl sub_0806FAD8 _080989B2: strh r5, [r4, #0x36] adds r1, r4, #0 adds r1, #0x63 movs r0, #3 strb r0, [r1] _080989BC: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080989C0 sub_080989C0: @ 0x080989C0 push {r4, lr} adds r4, r0, #0 bl sub_080989E4 cmp r0, #0 beq _080989D2 ldr r1, [r4, #0x50] movs r0, #0 str r0, [r1, #0x54] _080989D2: ldrb r1, [r4, #0xa] adds r1, #3 adds r0, r4, #0 movs r2, #0 bl sub_080A29AC bl sub_0805E780 pop {r4, pc} thumb_func_start sub_080989E4 sub_080989E4: @ 0x080989E4 push {lr} ldr r1, [r0, #0x50] cmp r1, #0 beq _080989F4 ldr r0, [r1, #4] cmp r0, #0 bne _080989F4 movs r1, #0 _080989F4: adds r0, r1, #0 pop {pc} thumb_func_start sub_080989F8 sub_080989F8: @ 0x080989F8 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldr r0, [r0, #4] cmp r0, #0 bne _08098A08 bl sub_0805E780 _08098A08: ldrb r0, [r4, #0xc] cmp r0, #0 bne _08098A44 movs r0, #1 strb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] movs r0, #0x28 strb r0, [r4, #0x1e] ldrb r0, [r4, #0xa] cmp r0, #0 bne _08098A38 ldrb r0, [r4, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 movs r0, #1 orrs r1, r0 strb r1, [r4, #0x18] b _08098A44 _08098A38: cmp r0, #2 bne _08098A44 ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x18] _08098A44: ldr r0, [r4, #0x50] movs r3, #0x80 lsls r3, r3, #0xc adds r1, r4, #0 movs r2, #0 bl sub_0806FA48 movs r0, #0 strh r0, [r4, #0x36] ldrb r0, [r4, #0xa] cmp r0, #0 beq _08098A76 ldr r3, [r4, #0x54] ldrb r1, [r3, #0x18] lsls r1, r1, #0x1e lsrs r1, r1, #0x1e ldrb r2, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] ldrb r0, [r3, #0x1e] adds r0, #0x1f strb r0, [r4, #0x1e] _08098A76: pop {r4, pc} thumb_func_start sub_08098A78 sub_08098A78: @ 0x08098A78 push {lr} ldr r2, _08098A8C @ =gUnk_08123568 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08098A8C: .4byte gUnk_08123568 thumb_func_start sub_08098A90 sub_08098A90: @ 0x08098A90 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xb] cmp r0, #1 beq _08098A9C movs r0, #2 _08098A9C: strb r0, [r4, #0xc] bl sub_08000E50 movs r1, #0x7f ands r0, r1 adds r0, #0x7f strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 ldr r1, _08098ACC @ =gUnk_08123574 ldrb r0, [r4, #0xa] adds r0, r0, r1 ldrb r1, [r0] ldrb r0, [r4, #0xb] adds r1, r1, r0 adds r0, r4, #0 bl sub_08004260 pop {r4, pc} .align 2, 0 _08098ACC: .4byte gUnk_08123574 thumb_func_start sub_08098AD0 sub_08098AD0: @ 0x08098AD0 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 _08098AE6 ldrb r0, [r1, #0xc] adds r0, #1 strb r0, [r1, #0xc] _08098AE6: pop {pc} thumb_func_start sub_08098AE8 sub_08098AE8: @ 0x08098AE8 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r4, #0x5a ldrb r1, [r4] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08098B08 movs r0, #0xfe ands r0, r1 strb r0, [r4] ldr r0, _08098B0C @ =0x0000021B bl sub_08004488 _08098B08: pop {r4, pc} .align 2, 0 _08098B0C: .4byte 0x0000021B thumb_func_start sub_08098B10 sub_08098B10: @ 0x08098B10 push {lr} ldr r2, _08098B24 @ =gUnk_08123664 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08098B24: .4byte gUnk_08123664 thumb_func_start sub_08098B28 sub_08098B28: @ 0x08098B28 push {r4, r5, r6, r7, lr} adds r5, r0, #0 ldrb r2, [r5, #0xa] lsls r2, r2, #1 ldr r0, _08098BD4 @ =gUnk_0812366C adds r2, r2, r0 movs r3, #1 movs r4, #1 strb r4, [r5, #0xc] ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 orrs r0, r3 strb r0, [r5, #0x18] ldrb r0, [r5, #0xa] strb r0, [r5, #0x1e] ldrb r0, [r2] adds r1, r5, #0 adds r1, #0x82 strb r0, [r1] ldrb r0, [r2, #1] adds r2, r5, #0 adds r2, #0x83 strb r0, [r2] ldrb r0, [r1] lsrs r0, r0, #1 ldrh r1, [r5, #0x2e] subs r1, r1, r0 adds r0, r5, #0 adds r0, #0x78 strh r1, [r0] ldrb r0, [r2] lsrs r0, r0, #1 ldrh r1, [r5, #0x32] subs r1, r1, r0 subs r2, #9 strh r1, [r2] movs r0, #0x2e ldrsh r1, [r5, r0] ldr r2, _08098BD8 @ =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, [r5, r6] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r6, r5, #0 adds r6, #0x80 strh r1, [r6] adds r7, r5, #0 adds r7, #0x38 strb r4, [r7] adds r0, r5, #0 bl sub_08016A04 adds r2, r5, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] ldrb r0, [r5, #0xa] cmp r0, #0 bne _08098BCA ldr r0, _08098BDC @ =0x00004074 ldrh r1, [r6] subs r1, #0x40 ldrb r2, [r7] bl sub_0800015E _08098BCA: adds r0, r5, #0 bl sub_08098BE8 pop {r4, r5, r6, r7, pc} .align 2, 0 _08098BD4: .4byte gUnk_0812366C _08098BD8: .4byte gUnk_03000BF0 _08098BDC: .4byte 0x00004074 thumb_func_start sub_08098BE0 sub_08098BE0: @ 0x08098BE0 push {lr} bl sub_08098BE8 pop {pc} thumb_func_start sub_08098BE8 sub_08098BE8: @ 0x08098BE8 push {r4, r5, r6, lr} adds r5, r0, #0 ldr r6, _08098C28 @ =gUnk_03003F80 ldr r0, [r6, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _08098C26 ldr r4, _08098C2C @ =gUnk_03001160 adds r0, r5, #0 adds r1, r4, #0 bl sub_08098C30 cmp r0, #0 beq _08098C26 bl sub_08079F8C cmp r0, #0 beq _08098C26 movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 bne _08098C26 movs r0, #1 strb r0, [r6, #0x14] adds r0, r5, #0 adds r0, #0x80 ldrh r1, [r0] adds r0, r4, #0 bl sub_0807AAF8 _08098C26: pop {r4, r5, r6, pc} .align 2, 0 _08098C28: .4byte gUnk_03003F80 _08098C2C: .4byte gUnk_03001160 thumb_func_start sub_08098C30 sub_08098C30: @ 0x08098C30 push {r4, lr} adds r3, r0, #0 movs r4, #0 movs r0, #0x2e ldrsh r2, [r1, r0] adds r0, r3, #0 adds r0, #0x78 ldrh r0, [r0] subs r2, r2, r0 movs r0, #0x32 ldrsh r1, [r1, r0] adds r0, r3, #0 adds r0, #0x7a ldrh r0, [r0] subs r1, r1, r0 adds r0, r3, #0 adds r0, #0x82 ldrb r0, [r0] cmp r2, r0 bhi _08098C64 adds r0, r3, #0 adds r0, #0x83 ldrb r0, [r0] cmp r1, r0 bhi _08098C64 movs r4, #1 _08098C64: adds r0, r4, #0 pop {r4, pc} thumb_func_start sub_08098C68 sub_08098C68: @ 0x08098C68 push {lr} ldr r2, _08098C7C @ =gUnk_08123674 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08098C7C: .4byte gUnk_08123674 thumb_func_start sub_08098C80 sub_08098C80: @ 0x08098C80 push {r4, r5, r6, lr} adds r4, r0, #0 movs r0, #0 movs r5, #1 strb r5, [r4, #0xc] strb r0, [r4, #0xe] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _08098CC8 @ =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, #0x80 strh r1, [r0] ldr r0, _08098CCC @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _08098CD0 adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] b _08098CD6 .align 2, 0 _08098CC8: .4byte gUnk_03000BF0 _08098CCC: .4byte gUnk_03003F80 _08098CD0: adds r0, r4, #0 adds r0, #0x38 strb r5, [r0] _08098CD6: adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 adds r0, #0x80 ldrh r1, [r0] subs r1, #0x40 movs r0, #0x47 movs r2, #1 bl sub_08000148 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start nullsub_124 nullsub_124: @ 0x08098CF0 bx lr .align 2, 0 thumb_func_start sub_08098CF4 sub_08098CF4: @ 0x08098CF4 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xa] cmp r0, #0 bne _08098D14 ldr r0, _08098D10 @ =gUnk_0812367C ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 b _08098D1A .align 2, 0 _08098D10: .4byte gUnk_0812367C _08098D14: adds r0, r2, #0 bl sub_08098E3C _08098D1A: pop {pc} thumb_func_start sub_08098D1C sub_08098D1C: @ 0x08098D1C push {r4, r5, lr} adds r4, r0, #0 movs r5, #1 strb r5, [r4, #0xc] ldr r0, _08098D40 @ =0x0000FFF0 strh r0, [r4, #0x36] adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] cmp r0, #0 beq _08098D44 bl sub_0807CBE4 cmp r0, #0 bne _08098D44 strb r5, [r4, #0xc] b _08098D5A .align 2, 0 _08098D40: .4byte 0x0000FFF0 _08098D44: movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #7 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_08098E88 _08098D5A: adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 adds r0, r4, #0 movs r1, #0 bl sub_080042AC pop {r4, r5, pc} thumb_func_start sub_08098D6C sub_08098D6C: @ 0x08098D6C push {r4, lr} adds r4, r0, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _08098D9A movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x2d strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0x43 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _08098D9A ldrh r0, [r1, #0x32] adds r0, #8 strh r0, [r1, #0x32] _08098D9A: pop {r4, pc} thumb_func_start sub_08098D9C sub_08098D9C: @ 0x08098D9C 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 _08098DC2 movs r0, #3 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] subs r0, #7 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 bl sub_08098E88 _08098DC2: pop {pc} thumb_func_start sub_08098DC4 sub_08098DC4: @ 0x08098DC4 push {r4, r5, r6, lr} adds r5, r0, #0 ldr r6, _08098E2C @ =gUnk_03001160 adds r1, r6, #0 movs r2, #8 movs r3, #8 bl sub_0800419C cmp r0, #0 beq _08098E24 adds r0, r5, #0 adds r1, r6, #0 bl sub_0806FA24 adds r0, r5, #0 bl sub_08004542 adds r0, r6, #0 bl sub_08004542 adds r0, r6, #0 adds r0, #0x38 movs r4, #1 strb r4, [r0] adds r0, r5, #0 adds r1, r6, #0 bl sub_0806FAB0 ldr r1, _08098E30 @ =gUnk_03003F80 movs r0, #0x1f strb r0, [r1, #0xc] adds r0, r1, #0 adds r0, #0x38 strb r4, [r0] ldrb r0, [r5, #0xb] adds r1, #0x39 strb r0, [r1] movs r1, #4 strb r1, [r5, #0xc] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bne _08098E20 movs r0, #0x23 bl sub_0807CD04 _08098E20: bl sub_08077B20 _08098E24: adds r0, r5, #0 bl sub_080042B8 pop {r4, r5, r6, pc} .align 2, 0 _08098E2C: .4byte gUnk_03001160 _08098E30: .4byte gUnk_03003F80 thumb_func_start sub_08098E34 sub_08098E34: @ 0x08098E34 push {lr} bl sub_080042B8 pop {pc} thumb_func_start sub_08098E3C sub_08098E3C: @ 0x08098E3C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08098E5E movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] ldrb r1, [r4, #0xa] adds r0, r4, #0 bl sub_080042AC _08098E5E: ldrb r1, [r4, #0xa] movs r0, #2 ands r0, r1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 lsls r0, r0, #1 ldr r1, _08098E84 @ =gUnk_08123690 adds r0, r0, r1 ldrh r1, [r0] ldrh r2, [r0, #2] adds r0, r4, #0 movs r3, #0 bl sub_0805EC9C adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 _08098E84: .4byte gUnk_08123690 thumb_func_start sub_08098E88 sub_08098E88: @ 0x08098E88 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x82 movs r1, #1 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08098EB0 ldr r3, _08098ED8 @ =0xFFFF0000 adds r0, r5, #0 adds r1, r4, #0 movs r2, #0 bl sub_0806FA48 adds r1, r4, #0 adds r1, #0x63 movs r0, #8 strb r0, [r1] _08098EB0: movs r0, #0x82 movs r1, #2 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _08098ED4 ldr r3, _08098EDC @ =0xFFFE0000 adds r0, r5, #0 adds r1, r4, #0 movs r2, #0 bl sub_0806FA48 adds r1, r4, #0 adds r1, #0x63 movs r0, #0x10 strb r0, [r1] _08098ED4: pop {r4, r5, pc} .align 2, 0 _08098ED8: .4byte 0xFFFF0000 _08098EDC: .4byte 0xFFFE0000 thumb_func_start sub_08098EE0 sub_08098EE0: @ 0x08098EE0 push {lr} ldr r2, _08098EF4 @ =gUnk_081236DC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08098EF4: .4byte gUnk_081236DC thumb_func_start sub_08098EF8 sub_08098EF8: @ 0x08098EF8 push {lr} adds r3, r0, #0 adds r3, #0x29 ldrb r2, [r3] movs r1, #8 rsbs r1, r1, #0 ands r1, r2 movs r2, #5 orrs r1, r2 strb r1, [r3] bl sub_08098FCC pop {pc} .align 2, 0 thumb_func_start sub_08098F14 sub_08098F14: @ 0x08098F14 push {r4, r5, r6, lr} adds r5, r0, #0 bl sub_080990EC cmp r0, #0 beq _08098F84 movs r6, #0 movs r0, #2 strb r0, [r5, #0xc] adds r0, r5, #0 adds r0, #0x74 ldrh r0, [r0] adds r1, r5, #0 adds r1, #0x70 ldrh r1, [r1] adds r4, r5, #0 adds r4, #0x38 ldrb r2, [r4] bl sub_0800015E adds r0, r5, #0 adds r0, #0x76 ldrh r0, [r0] adds r1, r5, #0 adds r1, #0x72 ldrh r1, [r1] ldrb r2, [r4] bl sub_0800015E movs r0, #0x99 lsls r0, r0, #1 bl sub_08004488 adds r0, r5, #0 movs r1, #0x1e bl sub_0805E4E0 bl sub_08079F8C cmp r0, #0 beq _08098F84 ldr r2, _08098F88 @ =gUnk_03003F80 movs r0, #0x98 strb r0, [r2, #6] movs r0, #5 strb r0, [r2, #0xc] ldr r0, [r2, #0x30] movs r1, #1 orrs r0, r1 str r0, [r2, #0x30] ldr r1, _08098F8C @ =gUnk_03001160 strh r6, [r1, #0x2c] strh r6, [r1, #0x30] ldrb r0, [r1, #0x14] lsls r0, r0, #2 strb r0, [r1, #0x15] _08098F84: pop {r4, r5, r6, pc} .align 2, 0 _08098F88: .4byte gUnk_03003F80 _08098F8C: .4byte gUnk_03001160 thumb_func_start sub_08098F90 sub_08098F90: @ 0x08098F90 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08098FC8 ldrb r0, [r4, #0xb] cmp r0, #0 bne _08098FB8 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 b _08098FC2 _08098FB8: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CD48 _08098FC2: adds r0, r4, #0 bl sub_08098FCC _08098FC8: pop {r4, pc} .align 2, 0 thumb_func_start sub_08098FCC sub_08098FCC: @ 0x08098FCC push {lr} movs r1, #1 strb r1, [r0, #0xc] adds r2, r0, #0 adds r2, #0x84 movs r1, #0x3c strh r1, [r2] bl sub_08098FE0 pop {pc} thumb_func_start sub_08098FE0 sub_08098FE0: @ 0x08098FE0 push {r4, r5, r6, r7, lr} adds r6, r0, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 bne _0809906C strb r0, [r6, #0xb] movs r0, #0x2e ldrsh r2, [r6, r0] ldr r1, _08099060 @ =gUnk_03000BF0 ldrh r0, [r1, #6] subs r2, r2, r0 asrs r2, r2, #4 movs r3, #0x3f ands r2, r3 movs r4, #0x32 ldrsh r0, [r6, r4] ldrh r1, [r1, #8] adds r1, #0x10 subs r0, r0, r1 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r2, r0 adds r5, r6, #0 adds r5, #0x70 strh r2, [r5] subs r2, #0x40 adds r7, r6, #0 adds r7, #0x72 strh r2, [r7] ldrh r0, [r5] adds r4, r6, #0 adds r4, #0x38 ldrb r1, [r4] bl sub_080001DA adds r1, r6, #0 adds r1, #0x74 strh r0, [r1] ldrh r0, [r7] ldrb r1, [r4] bl sub_080001DA adds r1, r6, #0 adds r1, #0x76 strh r0, [r1] ldr r0, _08099064 @ =0x00004057 ldrh r1, [r5] ldrb r2, [r4] bl sub_0800015E ldr r0, _08099068 @ =0x00004058 ldrh r1, [r7] ldrb r2, [r4] bl sub_0800015E adds r0, r6, #0 movs r1, #1 bl sub_08004260 b _080990DC .align 2, 0 _08099060: .4byte gUnk_03000BF0 _08099064: .4byte 0x00004057 _08099068: .4byte 0x00004058 _0809906C: movs r0, #1 strb r0, [r6, #0xb] movs r0, #0x2e ldrsh r1, [r6, r0] ldr r2, _080990E0 @ =gUnk_03000BF0 ldrh r0, [r2, #6] adds r0, #0x10 subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r4, #0x32 ldrsh r0, [r6, r4] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r5, r6, #0 adds r5, #0x70 strh r1, [r5] subs r1, #1 adds r7, r6, #0 adds r7, #0x72 strh r1, [r7] ldrh r0, [r5] adds r4, r6, #0 adds r4, #0x38 ldrb r1, [r4] bl sub_080001DA adds r1, r6, #0 adds r1, #0x74 strh r0, [r1] ldrh r0, [r7] ldrb r1, [r4] bl sub_080001DA adds r1, r6, #0 adds r1, #0x76 strh r0, [r1] ldr r0, _080990E4 @ =0x00004055 ldrh r1, [r5] ldrb r2, [r4] bl sub_0800015E ldr r0, _080990E8 @ =0x00004056 ldrh r1, [r7] ldrb r2, [r4] bl sub_0800015E adds r0, r6, #0 movs r1, #0 bl sub_08004260 _080990DC: pop {r4, r5, r6, r7, pc} .align 2, 0 _080990E0: .4byte gUnk_03000BF0 _080990E4: .4byte 0x00004055 _080990E8: .4byte 0x00004056 thumb_func_start sub_080990EC sub_080990EC: @ 0x080990EC push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r4, #0 adds r6, #0x72 ldrh r0, [r6] adds r5, r4, #0 adds r5, #0x38 ldrb r1, [r5] bl sub_080001DA ldr r1, _0809911C @ =0x00004059 cmp r0, r1 bne _08099140 adds r1, r4, #0 adds r1, #0x84 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08099120 movs r0, #1 b _08099156 .align 2, 0 _0809911C: .4byte 0x00004059 _08099120: adds r0, r4, #0 bl sub_08099158 ldr r1, _0809913C @ =gUnk_081236E8 ldrb r0, [r4, #0xb] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] ldrh r1, [r6] ldrb r2, [r5] bl sub_0800015E b _08099154 .align 2, 0 _0809913C: .4byte gUnk_081236E8 _08099140: adds r1, r4, #0 adds r1, #0x84 movs r2, #0 movs r0, #0x3c strh r0, [r1] adds r0, r4, #0 adds r0, #0x62 strb r2, [r0] adds r0, #1 strb r2, [r0] _08099154: movs r0, #0 _08099156: pop {r4, r5, r6, pc} thumb_func_start sub_08099158 sub_08099158: @ 0x08099158 push {r4, lr} adds r3, r0, #0 ldrb r0, [r3, #0xb] ldr r4, _08099198 @ =gUnk_081236F4 cmp r0, #0 bne _08099166 ldr r4, _0809919C @ =gUnk_081236EC _08099166: adds r2, r3, #0 adds r2, #0x84 ldrh r0, [r2] lsrs r0, r0, #2 movs r1, #6 ands r0, r1 adds r4, r4, r0 ldrb r0, [r4] adds r1, r3, #0 adds r1, #0x62 strb r0, [r1] ldrb r1, [r4, #1] adds r0, r3, #0 adds r0, #0x63 strb r1, [r0] ldrh r1, [r2] movs r0, #3 ands r0, r1 cmp r0, #0 bne _08099194 ldr r0, _080991A0 @ =0x00000131 bl sub_08004488 _08099194: pop {r4, pc} .align 2, 0 _08099198: .4byte gUnk_081236F4 _0809919C: .4byte gUnk_081236EC _080991A0: .4byte 0x00000131 thumb_func_start sub_080991A4 sub_080991A4: @ 0x080991A4 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xa] cmp r0, #2 bhi _080991C4 ldr r0, _080991C0 @ =gUnk_08123734 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 b _080991CA .align 2, 0 _080991C0: .4byte gUnk_08123734 _080991C4: adds r0, r2, #0 bl sub_080996AC _080991CA: pop {pc} thumb_func_start sub_080991CC sub_080991CC: @ 0x080991CC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #2 bgt _080991EC cmp r0, #0 blt _080991EC adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _080991EC bl sub_0805E780 _080991EC: movs r2, #1 strb r2, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x11] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r4, #0x11] adds r1, r4, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] adds r1, #4 movs r0, #0x48 strb r0, [r1] adds r0, r4, #0 adds r0, #0x3f strb r2, [r0] subs r1, #5 movs r0, #0x80 strb r0, [r1] ldr r0, _08099244 @ =gUnk_080FD408 str r0, [r4, #0x48] adds r0, r4, #0 bl sub_08099468 ldrb r1, [r4, #0xa] adds r0, r4, #0 bl sub_08004260 movs r0, #0x84 movs r1, #3 movs r2, #0 bl sub_080A2960 cmp r0, #0 beq _08099242 str r4, [r0, #0x50] _08099242: pop {r4, pc} .align 2, 0 _08099244: .4byte gUnk_080FD408 thumb_func_start sub_08099248 sub_08099248: @ 0x08099248 push {r4, r5, r6, r7, lr} adds r4, r0, #0 bl sub_0809963C cmp r0, #0 beq _08099280 movs r1, #0 movs r0, #3 strb r0, [r4, #0xc] strb r1, [r4, #0xe] ldr r0, _0809927C @ =0x000001B3 bl sub_08004488 adds r0, r4, #0 bl sub_08099330 ldrb r0, [r4, #0xa] cmp r0, #0 bne _0809930E adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 b _0809930E .align 2, 0 _0809927C: .4byte 0x000001B3 _08099280: adds r0, r4, #0 bl sub_0800442E cmp r0, #0 bne _0809930E adds r7, r4, #0 adds r7, #0x70 ldrh r0, [r7] adds r6, r4, #0 adds r6, #0x38 ldrb r1, [r6] bl sub_080002B0 adds r5, r0, #0 ldr r0, _080992B8 @ =0x0000405A cmp r5, r0 beq _0809930E adds r0, r5, #0 bl sub_08099618 cmp r0, #1 beq _080992BC cmp r0, #1 blo _080992DC cmp r0, #2 beq _08099308 b _0809930E .align 2, 0 _080992B8: .4byte 0x0000405A _080992BC: movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x16 strb r0, [r4, #0xe] adds r0, r5, #0 subs r0, #0x5b movs r1, #3 ands r0, r1 lsls r0, r0, #3 strb r0, [r4, #0x15] movs r0, #0x20 strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_080994B8 b _0809930E _080992DC: movs r0, #0xf movs r1, #0xd movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _080992F2 adds r0, r4, #0 bl sub_0806FA24 _080992F2: adds r0, r4, #0 adds r0, #0x6c ldrh r0, [r0] ldrh r1, [r7] ldrb r2, [r6] bl sub_0800015E adds r0, r4, #0 bl sub_0805E7BC b _0809930E _08099308: adds r0, r4, #0 adds r0, #0x6c strh r5, [r0] _0809930E: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08099310 sub_08099310: @ 0x08099310 push {r4, lr} adds r4, r0, #0 bl sub_0809953C cmp r0, #0 beq _0809932E movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_08099468 movs r0, #0xd9 lsls r0, r0, #1 bl sub_08004488 _0809932E: pop {r4, pc} thumb_func_start sub_08099330 sub_08099330: @ 0x08099330 push {r4, lr} adds r4, r0, #0 bl sub_0809963C adds r1, r0, #0 cmp r1, #0 bne _0809935E ldrb r0, [r4, #0xe] cmp r0, #1 bls _0809934A subs r0, #2 strb r0, [r4, #0xe] b _0809934C _0809934A: strb r1, [r4, #0xe] _0809934C: ldrb r0, [r4, #0xe] cmp r0, #0 bne _08099364 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0805EC60 b _080993CA _0809935E: ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] _08099364: movs r1, #0x80 lsls r1, r1, #1 ldr r2, _0809939C @ =gUnk_08123748 ldrb r0, [r4, #0xe] lsrs r0, r0, #5 lsls r0, r0, #1 adds r0, r0, r2 ldrh r2, [r0] adds r0, r4, #0 movs r3, #0 bl sub_0805EC9C ldrb r0, [r4, #0xa] cmp r0, #1 bne _080993A0 adds r0, r4, #0 adds r0, #0x86 ldrh r3, [r0] adds r0, r4, #0 movs r1, #0x53 movs r2, #0 bl sub_080A2A3C movs r0, #0x72 bl sub_080A3268 b _080993BA .align 2, 0 _0809939C: .4byte gUnk_08123748 _080993A0: cmp r0, #2 bne _080993BA adds r0, r4, #0 adds r0, #0x86 ldrh r3, [r0] adds r0, r4, #0 movs r1, #0x52 movs r2, #0 bl sub_080A2A3C movs r0, #0x72 bl sub_080A3268 _080993BA: movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] _080993CA: pop {r4, pc} thumb_func_start sub_080993CC sub_080993CC: @ 0x080993CC push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r0, [r5, #0xe] subs r1, r0, #1 strb r1, [r5, #0xe] lsls r0, r1, #0x18 cmp r0, #0 bne _080993E2 bl sub_0805E780 b _08099466 _080993E2: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x30 bne _08099400 adds r0, r5, #0 adds r0, #0x6c ldrh r0, [r0] adds r1, r5, #0 adds r1, #0x70 ldrh r1, [r1] adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E _08099400: movs r1, #0x80 lsls r1, r1, #1 ldrb r0, [r5, #0xe] movs r2, #0x3c subs r2, r2, r0 lsls r2, r2, #5 adds r2, r2, r1 adds r0, r5, #0 movs r3, #0 bl sub_0805EC9C ldrb r1, [r5, #0xe] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08099466 movs r0, #0xf movs r1, #0x11 movs r2, #0x40 bl sub_080A2960 adds r6, r0, #0 cmp r6, #0 beq _08099466 bl sub_08000E50 adds r4, r0, #0 asrs r0, r4, #0x10 movs r1, #9 bl __modsi3 adds r2, r0, #0 subs r2, #4 movs r3, #0xf ands r3, r4 adds r4, r6, #0 adds r4, #0x29 ldrb r1, [r4] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r4] lsls r2, r2, #0x10 rsbs r3, r3, #0 lsls r3, r3, #0x10 adds r0, r5, #0 adds r1, r6, #0 bl sub_0806FA48 _08099466: pop {r4, r5, r6, pc} thumb_func_start sub_08099468 sub_08099468: @ 0x08099468 push {r4, r5, r6, lr} adds r6, r0, #0 movs r0, #0x2e ldrsh r1, [r6, r0] ldr r2, _080994B0 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r4, #0x32 ldrsh r0, [r6, r4] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r4, r6, #0 adds r4, #0x70 strh r1, [r4] ldrh r0, [r4] adds r5, r6, #0 adds r5, #0x38 ldrb r1, [r5] bl sub_080001DA adds r1, r6, #0 adds r1, #0x6c strh r0, [r1] ldr r0, _080994B4 @ =0x0000405A ldrh r1, [r4] ldrb r2, [r5] bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 _080994B0: .4byte gUnk_03000BF0 _080994B4: .4byte 0x0000405A thumb_func_start sub_080994B8 sub_080994B8: @ 0x080994B8 push {r4, r5, r6, lr} adds r5, r0, #0 ldr r0, _08099530 @ =0x000001B1 bl sub_08004488 adds r0, r5, #0 adds r0, #0x6c ldrh r0, [r0] adds r6, r5, #0 adds r6, #0x70 ldrh r1, [r6] adds r4, r5, #0 adds r4, #0x38 ldrb r2, [r4] bl sub_0800015E ldrb r0, [r4] cmp r0, #2 bne _080994F8 ldrh r0, [r6] movs r1, #1 bl sub_080002B0 ldr r1, _08099534 @ =0x0000405A cmp r0, r1 bne _080994F8 movs r0, #0xc4 lsls r0, r0, #2 ldrh r1, [r6] movs r2, #1 bl sub_08000152 _080994F8: adds r2, r5, #0 adds r2, #0x70 ldr r1, _08099538 @ =gUnk_080B4488 ldrb r0, [r5, #0x15] lsrs r0, r0, #3 lsls r0, r0, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] ldrh r2, [r2] adds r0, r0, r2 adds r1, r5, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080002B0 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x79 beq _08099524 cmp r0, #0x77 bne _0809952C _08099524: adds r1, r5, #0 adds r1, #0x63 movs r0, #0xfe strb r0, [r1] _0809952C: pop {r4, r5, r6, pc} .align 2, 0 _08099530: .4byte 0x000001B1 _08099534: .4byte 0x0000405A _08099538: .4byte gUnk_080B4488 thumb_func_start sub_0809953C sub_0809953C: @ 0x0809953C push {r4, lr} adds r4, r0, #0 bl sub_0800442E cmp r0, #0 bne _08099612 adds r0, r4, #0 bl sub_080AEFE0 adds r0, r4, #0 bl sub_0800445C ldrb r1, [r4, #0xe] cmp r1, #0 beq _08099570 ldrh r0, [r4, #0x24] adds r0, #0x10 strh r0, [r4, #0x24] subs r0, r1, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08099570 movs r0, #0x80 lsls r0, r0, #2 strh r0, [r4, #0x24] _08099570: ldrb r0, [r4, #0x15] lsrs r0, r0, #3 cmp r0, #1 beq _080995A0 cmp r0, #1 bgt _08099582 cmp r0, #0 beq _08099588 b _080995E6 _08099582: cmp r0, #2 beq _080995BA b _080995E6 _08099588: ldrh r1, [r4, #0x2a] movs r0, #0xe ands r0, r1 cmp r0, #0 beq _08099612 ldrh r1, [r4, #0x32] movs r0, #0xf ands r0, r1 subs r0, #7 cmp r0, #2 bls _080995D0 b _080995DE _080995A0: ldrh r1, [r4, #0x2a] movs r0, #0xe0 lsls r0, r0, #8 ands r0, r1 cmp r0, #0 beq _08099612 ldrh r1, [r4, #0x2e] movs r0, #0xf ands r0, r1 subs r0, #7 cmp r0, #2 bls _080995FE b _080995DE _080995BA: ldrh r1, [r4, #0x2a] movs r0, #0xe0 ands r0, r1 cmp r0, #0 beq _08099612 ldrh r1, [r4, #0x32] movs r0, #0xf ands r0, r1 subs r0, #7 cmp r0, #2 bhi _080995DE _080995D0: movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 adds r0, #8 strh r0, [r4, #0x32] movs r0, #1 b _08099614 _080995DE: adds r0, r4, #0 bl sub_0809969C b _08099612 _080995E6: ldrh r1, [r4, #0x2a] movs r0, #0xe0 lsls r0, r0, #4 ands r0, r1 cmp r0, #0 beq _08099612 ldrh r1, [r4, #0x2e] movs r0, #0xf ands r0, r1 subs r0, #7 cmp r0, #2 bhi _0809960C _080995FE: movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 adds r0, #8 strh r0, [r4, #0x2e] movs r0, #1 b _08099614 _0809960C: adds r0, r4, #0 bl sub_0809969C _08099612: movs r0, #0 _08099614: pop {r4, pc} .align 2, 0 thumb_func_start sub_08099618 sub_08099618: @ 0x08099618 push {lr} adds r2, r0, #0 ldr r1, _08099620 @ =gUnk_08123750 b _08099630 .align 2, 0 _08099620: .4byte gUnk_08123750 _08099624: ldrh r0, [r1] cmp r0, r2 bne _0809962E ldrh r0, [r1, #2] b _08099638 _0809962E: adds r1, #4 _08099630: ldrh r0, [r1] cmp r0, #0 bne _08099624 movs r0, #0 _08099638: pop {pc} .align 2, 0 thumb_func_start sub_0809963C sub_0809963C: @ 0x0809963C push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r0, [r5, #0xb] cmp r0, #0 beq _08099684 bl sub_0804B128 adds r4, r0, #0 ldrh r0, [r4] bl sub_0807CBE4 cmp r0, #0 beq _08099684 ldr r0, _08099694 @ =gUnk_03000BF0 ldrh r1, [r0, #6] ldrh r2, [r4, #2] adds r1, r1, r2 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 ldrh r0, [r0, #8] ldrh r6, [r4, #4] adds r0, r0, r6 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 ldrh r2, [r4, #6] movs r6, #0x2e ldrsh r0, [r5, r6] subs r0, r0, r1 cmp r2, r0 blo _08099684 ldrh r1, [r4, #8] movs r2, #0x32 ldrsh r0, [r5, r2] subs r0, r0, r3 cmp r1, r0 bhs _08099698 _08099684: adds r0, r5, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x87 beq _08099698 movs r0, #0 b _0809969A .align 2, 0 _08099694: .4byte gUnk_03000BF0 _08099698: movs r0, #1 _0809969A: pop {r4, r5, r6, pc} thumb_func_start sub_0809969C sub_0809969C: @ 0x0809969C push {lr} movs r1, #0xd movs r2, #0 bl sub_080A29AC bl sub_0805E780 pop {pc} thumb_func_start sub_080996AC sub_080996AC: @ 0x080996AC push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldr r0, [r0, #4] cmp r0, #0 bne _080996BC bl sub_0805E780 _080996BC: ldrb r0, [r4, #0xc] cmp r0, #0 bne _080996CE movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #3 bl sub_08004260 _080996CE: ldr r0, [r4, #0x50] ldrb r0, [r0, #0xc] cmp r0, #2 bhi _08099726 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08099706 movs r0, #0 strb r0, [r2] bl sub_08000E50 movs r1, #0x78 ands r0, r1 adds r0, #0x78 adds r1, r4, #0 adds r1, #0x59 strb r0, [r1] _08099706: adds r0, r4, #0 bl sub_08004274 ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA6C ldrh r0, [r4, #0x32] adds r0, #1 strh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x63 ldrb r0, [r1] subs r0, #0x11 strb r0, [r1] b _08099730 _08099726: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] _08099730: pop {r4, pc} .align 2, 0 thumb_func_start sub_08099734 sub_08099734: @ 0x08099734 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xa] cmp r0, #3 bhi _08099754 ldr r0, _08099750 @ =gUnk_081237A0 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 b _0809975A .align 2, 0 _08099750: .4byte gUnk_081237A0 _08099754: adds r0, r2, #0 bl sub_08099D30 _0809975A: pop {pc} thumb_func_start sub_0809975C sub_0809975C: @ 0x0809975C push {r4, lr} adds r4, r0, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _08099770 bl sub_0805E780 _08099770: movs r2, #1 strb r2, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x11] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r4, #0x11] adds r1, r4, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] adds r1, #4 movs r0, #0x48 strb r0, [r1] adds r0, r4, #0 adds r0, #0x3f strb r2, [r0] subs r1, #5 movs r0, #0x80 strb r0, [r1] ldr r0, _080997C8 @ =gUnk_080FD190 str r0, [r4, #0x48] adds r0, r4, #0 bl sub_08099910 ldrb r1, [r4, #0xa] adds r0, r4, #0 bl sub_08004260 movs r0, #0x85 movs r1, #4 movs r2, #0 bl sub_080A2960 cmp r0, #0 beq _080997C6 str r4, [r0, #0x50] _080997C6: pop {r4, pc} .align 2, 0 _080997C8: .4byte gUnk_080FD190 thumb_func_start sub_080997CC sub_080997CC: @ 0x080997CC push {r4, lr} adds r4, r0, #0 bl sub_0809963C cmp r0, #0 beq _080997EC movs r0, #0 movs r1, #2 strb r1, [r4, #0xc] strb r0, [r4, #0xe] ldr r0, _080997F0 @ =0x000001B3 bl sub_08004488 adds r0, r4, #0 bl sub_080997F4 _080997EC: pop {r4, pc} .align 2, 0 _080997F0: .4byte 0x000001B3 thumb_func_start sub_080997F4 sub_080997F4: @ 0x080997F4 push {r4, lr} adds r4, r0, #0 bl sub_0809963C adds r1, r0, #0 cmp r1, #0 bne _08099822 ldrb r0, [r4, #0xe] cmp r0, #1 bls _0809980E subs r0, #2 strb r0, [r4, #0xe] b _08099810 _0809980E: strb r1, [r4, #0xe] _08099810: ldrb r0, [r4, #0xe] cmp r0, #0 bne _08099828 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0805EC60 b _0809987C _08099822: ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] _08099828: ldr r1, _08099858 @ =gUnk_081237B0 ldrb r0, [r4, #0xe] lsrs r0, r0, #5 lsls r0, r0, #1 adds r0, r0, r1 ldrh r2, [r0] movs r1, #0x80 lsls r1, r1, #1 adds r0, r4, #0 movs r3, #0 bl sub_0805EC9C ldrb r0, [r4, #0xa] cmp r0, #1 beq _0809986C cmp r0, #2 beq _0809985C adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 b _0809986C .align 2, 0 _08099858: .4byte gUnk_081237B0 _0809985C: adds r0, r4, #0 adds r0, #0x86 ldrh r3, [r0] adds r0, r4, #0 movs r1, #0x53 movs r2, #0 bl sub_080A2A3C _0809986C: movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] _0809987C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08099880 sub_08099880: @ 0x08099880 push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r0, [r5, #0xe] subs r1, r0, #1 strb r1, [r5, #0xe] lsls r0, r1, #0x18 cmp r0, #0 bne _08099896 bl sub_0805E780 b _0809990E _08099896: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x30 bne _080998A4 adds r0, r5, #0 bl sub_08099C18 _080998A4: ldrb r0, [r5, #0xe] movs r4, #0x3c subs r4, r4, r0 lsls r4, r4, #5 movs r1, #0x80 lsls r1, r1, #1 adds r4, r4, r1 adds r0, r5, #0 adds r2, r4, #0 movs r3, #0 bl sub_0805EC9C adds r0, r5, #0 adds r1, r4, #0 movs r2, #2 movs r3, #0 bl sub_0806FCF4 movs r0, #0xf movs r1, #0x11 movs r2, #0x40 bl sub_080A2960 adds r6, r0, #0 cmp r6, #0 beq _0809990E bl sub_08000E50 adds r4, r0, #0 asrs r0, r4, #0x10 movs r1, #0x21 bl __modsi3 adds r2, r0, #0 subs r2, #0x10 movs r0, #0xf ands r0, r4 subs r4, r0, #4 adds r3, r6, #0 adds r3, #0x29 ldrb r1, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r3] lsls r2, r2, #0x10 lsls r3, r4, #0x10 adds r0, r5, #0 adds r1, r6, #0 bl sub_0806FA48 _0809990E: pop {r4, r5, r6, pc} thumb_func_start sub_08099910 sub_08099910: @ 0x08099910 push {r4, r5, r6, r7, lr} adds r4, r0, #0 movs r1, #0x2e ldrsh r0, [r4, r1] ldr r3, _08099968 @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r0, r0, r1 asrs r6, r0, #4 movs r2, #0x3f ands r6, r2 movs r1, #0x32 ldrsh r0, [r4, r1] ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r6, r0 adds r0, r4, #0 adds r0, #0x6e strh r6, [r0] ldrh r2, [r4, #0x2e] movs r0, #8 adds r1, r0, #0 ands r1, r2 lsls r1, r1, #0x10 lsrs r1, r1, #0x13 ldrh r2, [r4, #0x32] ands r0, r2 lsls r0, r0, #0x10 asrs r0, r0, #0x12 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r1, r0 adds r0, r4, #0 adds r0, #0x6c strh r1, [r0] cmp r1, #2 beq _08099A4C cmp r1, #2 bhi _0809996C cmp r1, #1 beq _080999A8 b _08099972 .align 2, 0 _08099968: .4byte gUnk_03000BF0 _0809996C: cmp r1, #3 bne _08099972 b _08099AF0 _08099972: ldr r5, _080999A4 @ =0x00004022 adds r1, r6, #0 subs r1, #0x41 adds r4, #0x38 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E adds r1, r6, #0 subs r1, #0x40 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E subs r1, r6, #1 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldrb r2, [r4] adds r0, r5, #0 adds r1, r6, #0 bl sub_0800015E b _08099BF0 .align 2, 0 _080999A4: .4byte 0x00004022 _080999A8: adds r5, r6, #0 subs r5, #0x41 lsls r0, r5, #0x10 lsrs r0, r0, #0x10 adds r4, #0x38 ldrb r1, [r4] bl sub_080002C8 ldr r1, _08099A40 @ =0x00004024 cmp r0, #0x12 bne _080999C0 adds r1, #0x55 _080999C0: ldrb r2, [r4] adds r0, r1, #0 adds r1, r5, #0 bl sub_0800015E ldr r7, _08099A44 @ =0x00004022 adds r1, r6, #0 subs r1, #0x40 ldrb r2, [r4] adds r0, r7, #0 bl sub_0800015E adds r5, r6, #0 subs r5, #0x3f lsls r0, r5, #0x10 lsrs r0, r0, #0x10 ldrb r1, [r4] bl sub_080002C8 ldr r1, _08099A48 @ =0x00004025 cmp r0, #0x12 bne _080999EE adds r1, #0x56 _080999EE: ldrb r2, [r4] adds r0, r1, #0 adds r1, r5, #0 bl sub_0800015E subs r5, r6, #1 lsls r0, r5, #0x10 lsrs r0, r0, #0x10 ldrb r1, [r4] bl sub_080002C8 ldr r1, _08099A40 @ =0x00004024 cmp r0, #0x12 bne _08099A0C adds r1, #0x55 _08099A0C: ldrb r2, [r4] adds r0, r1, #0 adds r1, r5, #0 bl sub_0800015E ldrb r2, [r4] adds r0, r7, #0 adds r1, r6, #0 bl sub_0800015E adds r5, r6, #1 adds r0, r5, #0 ldrb r1, [r4] bl sub_080002C8 ldr r1, _08099A48 @ =0x00004025 cmp r0, #0x12 bne _08099A32 adds r1, #0x56 _08099A32: ldrb r2, [r4] adds r0, r1, #0 adds r1, r5, #0 bl sub_0800015E b _08099BF0 .align 2, 0 _08099A40: .4byte 0x00004024 _08099A44: .4byte 0x00004022 _08099A48: .4byte 0x00004025 _08099A4C: adds r7, r6, #0 subs r7, #0x41 lsls r0, r7, #0x10 lsrs r0, r0, #0x10 adds r5, r4, #0 adds r5, #0x38 ldrb r1, [r5] bl sub_080002C8 ldr r1, _08099AE4 @ =0x00004023 cmp r0, #0x12 bne _08099A66 adds r1, #0x54 _08099A66: ldrb r2, [r5] adds r0, r1, #0 adds r1, r7, #0 bl sub_0800015E adds r4, r6, #0 subs r4, #0x40 lsls r0, r4, #0x10 lsrs r0, r0, #0x10 ldrb r1, [r5] bl sub_080002C8 ldr r1, _08099AE4 @ =0x00004023 cmp r0, #0x12 bne _08099A86 adds r1, #0x54 _08099A86: ldrb r2, [r5] adds r0, r1, #0 adds r1, r4, #0 bl sub_0800015E ldr r4, _08099AE8 @ =0x00004022 subs r1, r6, #1 ldrb r2, [r5] adds r0, r4, #0 bl sub_0800015E ldrb r2, [r5] adds r0, r4, #0 adds r1, r6, #0 bl sub_0800015E adds r4, r6, #0 adds r4, #0x3f adds r0, r4, #0 ldrb r1, [r5] bl sub_080002C8 ldr r1, _08099AEC @ =0x00004026 cmp r0, #0x12 bne _08099ABA adds r1, #0x56 _08099ABA: ldrb r2, [r5] adds r0, r1, #0 adds r1, r4, #0 bl sub_0800015E adds r4, r6, #0 adds r4, #0x40 adds r0, r4, #0 ldrb r1, [r5] bl sub_080002C8 ldr r1, _08099AEC @ =0x00004026 cmp r0, #0x12 bne _08099AD8 adds r1, #0x56 _08099AD8: ldrb r2, [r5] adds r0, r1, #0 adds r1, r4, #0 bl sub_0800015E b _08099BF0 .align 2, 0 _08099AE4: .4byte 0x00004023 _08099AE8: .4byte 0x00004022 _08099AEC: .4byte 0x00004026 _08099AF0: adds r5, r6, #0 subs r5, #0x41 lsls r0, r5, #0x10 lsrs r0, r0, #0x10 adds r4, #0x38 ldrb r1, [r4] bl sub_080002C8 ldr r1, _08099BF4 @ =0x00004027 cmp r0, #0x12 bne _08099B08 adds r1, #0x4e _08099B08: ldrb r2, [r4] adds r0, r1, #0 adds r1, r5, #0 bl sub_0800015E adds r5, r6, #0 subs r5, #0x40 lsls r0, r5, #0x10 lsrs r0, r0, #0x10 ldrb r1, [r4] bl sub_080002C8 ldr r1, _08099BF8 @ =0x00004023 cmp r0, #0x12 bne _08099B28 adds r1, #0x54 _08099B28: ldrb r2, [r4] adds r0, r1, #0 adds r1, r5, #0 bl sub_0800015E adds r5, r6, #0 subs r5, #0x3f lsls r0, r5, #0x10 lsrs r0, r0, #0x10 ldrb r1, [r4] bl sub_080002C8 ldr r1, _08099BFC @ =0x00004028 cmp r0, #0x12 bne _08099B48 adds r1, #0x4e _08099B48: ldrb r2, [r4] adds r0, r1, #0 adds r1, r5, #0 bl sub_0800015E subs r5, r6, #1 lsls r0, r5, #0x10 lsrs r0, r0, #0x10 ldrb r1, [r4] bl sub_080002C8 ldr r1, _08099C00 @ =0x00004024 cmp r0, #0x12 bne _08099B66 adds r1, #0x55 _08099B66: ldrb r2, [r4] adds r0, r1, #0 adds r1, r5, #0 bl sub_0800015E ldr r0, _08099C04 @ =0x00004022 ldrb r2, [r4] adds r1, r6, #0 bl sub_0800015E adds r5, r6, #1 adds r0, r5, #0 ldrb r1, [r4] bl sub_080002C8 ldr r1, _08099C08 @ =0x00004025 cmp r0, #0x12 bne _08099B8C adds r1, #0x56 _08099B8C: ldrb r2, [r4] adds r0, r1, #0 adds r1, r5, #0 bl sub_0800015E adds r5, r6, #0 adds r5, #0x3f adds r0, r5, #0 ldrb r1, [r4] bl sub_080002C8 ldr r1, _08099C0C @ =0x00004029 cmp r0, #0x12 bne _08099BAA adds r1, #0x4f _08099BAA: ldrb r2, [r4] adds r0, r1, #0 adds r1, r5, #0 bl sub_0800015E adds r5, r6, #0 adds r5, #0x40 adds r0, r5, #0 ldrb r1, [r4] bl sub_080002C8 ldr r1, _08099C10 @ =0x00004026 cmp r0, #0x12 bne _08099BC8 adds r1, #0x56 _08099BC8: ldrb r2, [r4] adds r0, r1, #0 adds r1, r5, #0 bl sub_0800015E adds r5, r6, #0 adds r5, #0x41 adds r0, r5, #0 ldrb r1, [r4] bl sub_080002C8 ldr r1, _08099C14 @ =0x0000402A cmp r0, #0x12 bne _08099BE6 adds r1, #0x50 _08099BE6: ldrb r2, [r4] adds r0, r1, #0 adds r1, r5, #0 bl sub_0800015E _08099BF0: pop {r4, r5, r6, r7, pc} .align 2, 0 _08099BF4: .4byte 0x00004027 _08099BF8: .4byte 0x00004023 _08099BFC: .4byte 0x00004028 _08099C00: .4byte 0x00004024 _08099C04: .4byte 0x00004022 _08099C08: .4byte 0x00004025 _08099C0C: .4byte 0x00004029 _08099C10: .4byte 0x00004026 _08099C14: .4byte 0x0000402A thumb_func_start sub_08099C18 sub_08099C18: @ 0x08099C18 push {r4, r5, lr} adds r1, r0, #0 adds r0, #0x6e ldrh r5, [r0] subs r0, #2 ldrh r0, [r0] cmp r0, #2 beq _08099C96 cmp r0, #2 bgt _08099C32 cmp r0, #1 beq _08099C60 b _08099C36 _08099C32: cmp r0, #3 beq _08099CD4 _08099C36: adds r0, r5, #0 subs r0, #0x41 adds r4, r1, #0 adds r4, #0x38 ldrb r1, [r4] bl sub_0807BA8C adds r0, r5, #0 subs r0, #0x40 ldrb r1, [r4] bl sub_0807BA8C subs r0, r5, #1 ldrb r1, [r4] bl sub_0807BA8C ldrb r1, [r4] adds r0, r5, #0 bl sub_0807BA8C b _08099D2C _08099C60: adds r0, r5, #0 subs r0, #0x41 adds r4, r1, #0 adds r4, #0x38 ldrb r1, [r4] bl sub_0807BA8C adds r0, r5, #0 subs r0, #0x40 ldrb r1, [r4] bl sub_0807BA8C adds r0, r5, #0 subs r0, #0x3f ldrb r1, [r4] bl sub_0807BA8C subs r0, r5, #1 ldrb r1, [r4] bl sub_0807BA8C ldrb r1, [r4] adds r0, r5, #0 bl sub_0807BA8C adds r0, r5, #1 b _08099CCC _08099C96: adds r0, r5, #0 subs r0, #0x41 adds r4, r1, #0 adds r4, #0x38 ldrb r1, [r4] bl sub_0807BA8C adds r0, r5, #0 subs r0, #0x40 ldrb r1, [r4] bl sub_0807BA8C subs r0, r5, #1 ldrb r1, [r4] bl sub_0807BA8C ldrb r1, [r4] adds r0, r5, #0 bl sub_0807BA8C adds r0, r5, #0 adds r0, #0x3f ldrb r1, [r4] bl sub_0807BA8C adds r0, r5, #0 adds r0, #0x40 _08099CCC: ldrb r1, [r4] bl sub_0807BA8C b _08099D2C _08099CD4: adds r0, r5, #0 subs r0, #0x41 adds r4, r1, #0 adds r4, #0x38 ldrb r1, [r4] bl sub_0807BA8C adds r0, r5, #0 subs r0, #0x40 ldrb r1, [r4] bl sub_0807BA8C adds r0, r5, #0 subs r0, #0x3f ldrb r1, [r4] bl sub_0807BA8C subs r0, r5, #1 ldrb r1, [r4] bl sub_0807BA8C ldrb r1, [r4] adds r0, r5, #0 bl sub_0807BA8C adds r0, r5, #1 ldrb r1, [r4] bl sub_0807BA8C adds r0, r5, #0 adds r0, #0x3f ldrb r1, [r4] bl sub_0807BA8C adds r0, r5, #0 adds r0, #0x40 ldrb r1, [r4] bl sub_0807BA8C adds r0, r5, #0 adds r0, #0x41 ldrb r1, [r4] bl sub_0807BA8C _08099D2C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08099D30 sub_08099D30: @ 0x08099D30 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldr r0, [r0, #4] cmp r0, #0 bne _08099D40 bl sub_0805E780 _08099D40: ldrb r0, [r4, #0xc] cmp r0, #0 bne _08099D6A movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #4 bl sub_08004260 ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA6C ldrh r0, [r4, #0x32] adds r0, #1 strh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x63 ldrb r0, [r1] subs r0, #1 strb r0, [r1] _08099D6A: ldr r0, [r4, #0x50] ldrb r0, [r0, #0xc] cmp r0, #1 bhi _08099DAA ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08099DA2 movs r0, #0 strb r0, [r2] bl sub_08000E50 movs r1, #0x78 ands r0, r1 adds r0, #0x78 adds r1, r4, #0 adds r1, #0x59 strb r0, [r1] _08099DA2: adds r0, r4, #0 bl sub_08004274 b _08099DB4 _08099DAA: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] _08099DB4: pop {r4, pc} .align 2, 0 thumb_func_start sub_08099DB8 sub_08099DB8: @ 0x08099DB8 push {lr} ldr r2, _08099DCC @ =gUnk_081237F8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08099DCC: .4byte gUnk_081237F8 thumb_func_start sub_08099DD0 sub_08099DD0: @ 0x08099DD0 push {r4, r5, r6, lr} adds r4, r0, #0 adds r0, #0x38 movs r6, #0 movs r5, #1 strb r5, [r0] ldrb r0, [r4, #0x19] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x19] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] strb r6, [r4, #0xd] movs r0, #0x46 bl sub_0807CA84 cmp r0, #0 beq _08099E04 movs r0, #4 strb r0, [r4, #0xc] strb r6, [r4, #0x1e] b _08099E0E _08099E04: strb r5, [r4, #0xc] adds r0, r4, #0 movs r1, #0 bl sub_08004260 _08099E0E: pop {r4, r5, r6, pc} thumb_func_start sub_08099E10 sub_08099E10: @ 0x08099E10 push {r4, r5, lr} adds r4, r0, #0 movs r0, #0x74 bl sub_0807CBD0 cmp r0, #0 beq _08099E54 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] adds r5, r0, #0 cmp r1, #1 bne _08099E3E ldrb r0, [r4, #0xd] cmp r0, #0 bne _08099E3E strb r0, [r5] adds r0, r4, #0 bl sub_08099ECC _08099E3E: ldrb r1, [r5] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08099E54 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _08099E54: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08099E58 sub_08099E58: @ 0x08099E58 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08099E88 movs r0, #0x7f ands r0, r1 strb r0, [r2] ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #3 bne _08099E88 strb r0, [r4, #0xc] movs r0, #4 strb r0, [r4, #0x1e] _08099E88: pop {r4, pc} .align 2, 0 thumb_func_start sub_08099E8C sub_08099E8C: @ 0x08099E8C push {r4, lr} adds r4, r0, #0 ldr r1, _08099EC4 @ =gUnk_03001160 movs r2, #0xc movs r3, #0xc bl sub_080041A0 cmp r0, #0 beq _08099EC2 ldrb r0, [r4, #0xd] cmp r0, #0 bne _08099EB2 adds r0, r4, #0 bl sub_08099ECC adds r0, r4, #0 movs r1, #0x1e bl sub_0805E4E0 _08099EB2: movs r0, #0x75 bl sub_0807CBD0 cmp r0, #0 beq _08099EC2 movs r0, #7 bl sub_0805B390 _08099EC2: pop {r4, pc} .align 2, 0 _08099EC4: .4byte gUnk_03001160 thumb_func_start nullsub_534 nullsub_534: @ 0x08099EC8 bx lr .align 2, 0 thumb_func_start sub_08099ECC sub_08099ECC: @ 0x08099ECC push {r4, lr} movs r4, #0 movs r1, #1 strb r1, [r0, #0xd] ldr r1, _08099EF4 @ =gUnk_03001160 bl sub_0806FA24 ldr r2, _08099EF8 @ =gUnk_03003F80 movs r0, #3 strb r0, [r2, #0xc] adds r0, r2, #0 adds r0, #0x38 strb r4, [r0] ldr r0, [r2, #0x30] movs r1, #0x80 lsls r1, r1, #8 orrs r0, r1 str r0, [r2, #0x30] pop {r4, pc} .align 2, 0 _08099EF4: .4byte gUnk_03001160 _08099EF8: .4byte gUnk_03003F80 thumb_func_start sub_08099EFC sub_08099EFC: @ 0x08099EFC push {lr} ldr r2, _08099F10 @ =gUnk_08123840 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08099F10: .4byte gUnk_08123840 thumb_func_start sub_08099F14 sub_08099F14: @ 0x08099F14 push {r4, r5, r6, r7, lr} adds r5, r0, #0 movs r0, #1 strb r0, [r5, #0xc] movs r0, #0x80 lsls r0, r0, #2 strh r0, [r5, #0x24] ldrb r0, [r5, #0xa] cmp r0, #9 bls _08099F2A b _0809A1B6 _08099F2A: lsls r0, r0, #2 ldr r1, _08099F34 @ =_08099F38 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08099F34: .4byte _08099F38 _08099F38: @ jump table .4byte _08099F60 @ case 0 .4byte _08099F70 @ case 1 .4byte _08099F82 @ case 2 .4byte _0809A00C @ case 3 .4byte _0809A0AA @ case 4 .4byte _0809A0B0 @ case 5 .4byte _0809A058 @ case 6 .4byte _0809A11C @ case 7 .4byte _0809A132 @ case 8 .4byte _0809A1B0 @ case 9 _08099F60: adds r2, r5, #0 adds r2, #0x79 movs r0, #0 movs r1, #0x96 strb r1, [r2] strb r0, [r5, #0xe] movs r0, #0x1e strb r0, [r5, #0xf] _08099F70: adds r0, r5, #0 movs r1, #0 bl sub_08004260 movs r0, #0x92 lsls r0, r0, #1 bl sub_08004488 b _0809A1B6 _08099F82: ldr r0, [r5, #0x50] adds r0, #0x7b ldrb r0, [r0] adds r0, #0x80 rsbs r0, r0, #0 strb r0, [r5, #0x15] bl sub_08000E50 movs r1, #1 ands r1, r0 cmp r1, #0 beq _08099FCE bl sub_08000E50 adds r1, r0, #0 movs r0, #3 ands r1, r0 cmp r1, #1 beq _08099FBC cmp r1, #1 blo _08099FB6 cmp r1, #2 beq _08099FC2 cmp r1, #3 beq _08099FC8 b _08099FCE _08099FB6: ldrb r0, [r5, #0x15] subs r0, #0x10 b _08099FCC _08099FBC: ldrb r0, [r5, #0x15] adds r0, #0x10 b _08099FCC _08099FC2: ldrb r0, [r5, #0x15] subs r0, #8 b _08099FCC _08099FC8: ldrb r0, [r5, #0x15] adds r0, #8 _08099FCC: strb r0, [r5, #0x15] _08099FCE: bl sub_08000E50 movs r1, #0x3f ands r0, r1 movs r1, #0xf0 subs r1, r1, r0 strh r1, [r5, #0x24] lsls r1, r1, #0x10 asrs r1, r1, #0x11 lsls r1, r1, #8 ldrb r2, [r5, #0x15] adds r0, r5, #0 bl sub_0806F62C ldrh r1, [r5, #0x24] lsls r1, r1, #0x10 asrs r1, r1, #0x11 lsls r1, r1, #8 ldrb r2, [r5, #0x15] adds r0, r5, #0 bl sub_0806F62C adds r0, r5, #0 movs r1, #5 bl sub_08004260 movs r0, #0xa6 lsls r0, r0, #1 bl sub_080A3268 b _0809A1B6 _0809A00C: ldr r0, [r5, #0x50] adds r0, #0x7b ldrb r0, [r0] adds r0, #0x80 rsbs r0, r0, #0 strb r0, [r5, #0x15] movs r1, #0x90 lsls r1, r1, #7 ldrb r2, [r5, #0x15] adds r0, r5, #0 bl sub_0806F62C bl sub_08000E50 movs r1, #1 ands r1, r0 cmp r1, #0 beq _0809A040 bl sub_08000E50 movs r1, #0x3f ands r0, r1 ldrb r1, [r5, #0x15] adds r0, r0, r1 strb r0, [r5, #0x15] b _0809A04E _0809A040: bl sub_08000E50 movs r1, #0x3f ands r0, r1 ldrb r1, [r5, #0x15] subs r1, r1, r0 strb r1, [r5, #0x15] _0809A04E: adds r0, r5, #0 movs r1, #6 bl sub_08004260 b _0809A1B6 _0809A058: bl sub_08000E50 movs r1, #0x2f ands r1, r0 movs r4, #0x30 subs r4, r4, r1 lsls r4, r4, #8 bl sub_08000E50 movs r2, #0xff ands r2, r0 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806F62C bl sub_08000E50 movs r1, #1 ands r1, r0 cmp r1, #0 beq _0809A092 bl sub_08000E50 movs r1, #0x3f ands r0, r1 ldrb r1, [r5, #0x15] adds r0, r0, r1 strb r0, [r5, #0x15] b _0809A0A0 _0809A092: bl sub_08000E50 movs r1, #0x3f ands r0, r1 ldrb r1, [r5, #0x15] subs r1, r1, r0 strb r1, [r5, #0x15] _0809A0A0: adds r0, r5, #0 movs r1, #5 bl sub_08004260 b _0809A1B6 _0809A0AA: movs r0, #0xc3 lsls r0, r0, #2 b _0809A1B4 _0809A0B0: adds r2, r5, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] movs r0, #0x18 str r0, [r5, #0x78] adds r7, r5, #0 adds r7, #0x76 movs r1, #0 movs r0, #0x80 lsls r0, r0, #3 strh r0, [r7] adds r4, r5, #0 adds r4, #0x74 strh r0, [r4] adds r6, r5, #0 adds r6, #0x7a strh r1, [r6] ldr r0, [r5, #0x50] adds r0, #0x7b ldrb r1, [r0] rsbs r1, r1, #0 lsls r1, r1, #0x18 ldr r3, _0809A118 @ =gUnk_0812388C ldrb r2, [r5, #0xb] lsls r0, r2, #1 adds r0, #1 lsls r0, r0, #1 adds r0, r0, r3 lsrs r1, r1, #0x18 ldrh r0, [r0] adds r1, r1, r0 lsls r2, r2, #2 adds r2, r2, r3 ldrh r2, [r2] adds r0, r5, #0 bl sub_0806F62C ldrh r1, [r7] ldrh r2, [r4] ldrh r3, [r6] adds r0, r5, #0 bl sub_0805EC9C adds r0, r5, #0 movs r1, #7 bl sub_08004260 b _0809A1B6 .align 2, 0 _0809A118: .4byte gUnk_0812388C _0809A11C: movs r0, #0 strb r0, [r5, #0xe] adds r0, r5, #0 movs r1, #8 bl sub_08004260 ldr r0, [r5, #0x50] adds r1, r5, #0 bl sub_0806FA24 b _0809A1B6 _0809A132: ldr r0, [r5, #0x50] adds r0, #0x7c ldrb r0, [r0] movs r1, #0 strb r0, [r5, #0xb] movs r0, #4 strb r0, [r5, #0xe] strb r1, [r5, #0xf] ldr r3, _0809A1A0 @ =gUnk_03000BF0 ldrh r0, [r5, #0x2e] ldrh r1, [r3, #6] subs r0, r0, r1 movs r1, #0xf8 lsls r1, r1, #1 adds r2, r1, #0 ands r0, r2 movs r1, #0x82 adds r1, r1, r5 mov ip, r1 strh r0, [r1] ldrh r1, [r5, #0x32] ldrh r0, [r3, #8] subs r1, r1, r0 ands r1, r2 adds r3, r5, #0 adds r3, #0x80 strh r1, [r3] adds r4, r5, #0 adds r4, #0x84 mov r0, ip ldrh r2, [r0] subs r2, #0x10 asrs r2, r2, #4 lsrs r1, r1, #4 lsls r0, r1, #5 subs r0, r0, r1 adds r2, r2, r0 str r2, [r4] mov r1, ip ldrh r0, [r1] ldrh r1, [r3] ldrb r3, [r5, #0xb] bl sub_0809A6F8 ldr r0, [r5, #0x50] adds r0, #0x7c ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0809A1A8 ldr r0, _0809A1A4 @ =0x000001A3 bl sub_080A3268 b _0809A1B6 .align 2, 0 _0809A1A0: .4byte gUnk_03000BF0 _0809A1A4: .4byte 0x000001A3 _0809A1A8: movs r0, #0xe8 bl sub_080A3268 b _0809A1B6 _0809A1B0: movs r0, #0xf0 lsls r0, r0, #1 _0809A1B4: str r0, [r5, #0x78] _0809A1B6: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0809A1B8 sub_0809A1B8: @ 0x0809A1B8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x38 adds r7, r0, #0 bl sub_08004274 ldrb r0, [r7, #0xa] cmp r0, #9 bls _0809A1D2 b _0809A632 _0809A1D2: lsls r0, r0, #2 ldr r1, _0809A1DC @ =_0809A1E0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809A1DC: .4byte _0809A1E0 _0809A1E0: @ jump table .4byte _0809A208 @ case 0 .4byte _0809A25C @ case 1 .4byte _0809A33E @ case 2 .4byte _0809A378 @ case 3 .4byte _0809A394 @ case 4 .4byte _0809A3E0 @ case 5 .4byte _0809A378 @ case 6 .4byte _0809A46C @ case 7 .4byte _0809A47C @ case 8 .4byte _0809A616 @ case 9 _0809A208: adds r1, r7, #0 adds r1, #0x79 ldrb r0, [r1] cmp r0, #0 beq _0809A25C subs r0, #1 strb r0, [r1] ldrb r0, [r7, #0xf] subs r0, #1 strb r0, [r7, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 adds r1, #0xb str r1, [sp, #0x20] cmp r0, #0xff bne _0809A254 movs r0, #5 strb r0, [r7, #0xf] ldrb r3, [r7, #0xb] adds r0, r7, #0 movs r1, #0x87 movs r2, #1 bl sub_080A2988 adds r1, r0, #0 str r1, [r7, #0x54] cmp r1, #0 beq _0809A24E ldr r0, [r7, #0x50] str r0, [r1, #0x50] ldr r0, [r7, #0x54] adds r0, #0x84 ldr r2, [sp, #0x20] ldr r1, [r2] str r1, [r0] _0809A24E: ldrb r0, [r7, #0xb] adds r0, #1 strb r0, [r7, #0xb] _0809A254: ldr r1, [sp, #0x20] ldr r0, [r1] ldr r0, [r0, #0xc] b _0809A474 _0809A25C: adds r4, r7, #0 adds r4, #0x84 ldr r1, [r4] ldrb r0, [r7, #0xe] lsls r0, r0, #2 adds r1, #0xc adds r1, r1, r0 ldr r2, [r1] ldr r0, [r2, #0x2c] ldr r1, [r7, #0x2c] subs r0, r0, r1 ldr r1, [r2, #0x30] ldr r2, [r7, #0x30] subs r1, r1, r2 bl sub_080045DA strb r0, [r7, #0x15] movs r2, #0x24 ldrsh r1, [r7, r2] ldrb r2, [r7, #0x15] adds r0, r7, #0 bl sub_0806F62C ldr r1, [r4] ldrb r0, [r7, #0xe] lsls r0, r0, #2 adds r1, #0xc adds r1, r1, r0 ldr r1, [r1] adds r0, r7, #0 movs r2, #2 movs r3, #2 bl sub_080041A0 cmp r0, #0 bne _0809A2A6 b _0809A632 _0809A2A6: ldrb r0, [r7, #0xa] cmp r0, #0 bne _0809A2CC ldr r1, [r4] ldrb r0, [r7, #0xe] lsls r0, r0, #2 adds r1, #0xc adds r1, r1, r0 ldr r3, [r1] ldrb r2, [r3, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #2 rsbs r0, r0, #0 ands r1, r0 subs r0, #2 ands r0, r2 orrs r0, r1 strb r0, [r3, #0x18] _0809A2CC: ldrb r1, [r7, #0xe] ldr r0, [r4] ldrb r0, [r0, #1] subs r0, #1 cmp r1, r0 bne _0809A338 movs r0, #2 strb r0, [r7, #0xc] movs r0, #0xf0 strb r0, [r7, #0xe] bl sub_08000E50 ldr r6, _0809A330 @ =gUnk_0812384C ldrb r2, [r7, #0xb] movs r3, #0xf movs r4, #0xf adds r1, r4, #0 ands r1, r2 lsls r1, r1, #2 adds r1, r1, r6 ands r0, r3 ldrb r1, [r1] adds r0, r0, r1 strb r0, [r7, #0x15] bl sub_08000E50 ldrb r1, [r7, #0xb] ands r4, r1 lsls r4, r4, #1 adds r4, #1 lsls r4, r4, #1 adds r4, r4, r6 ldr r2, _0809A334 @ =0x000001FF adds r1, r2, #0 ands r0, r1 ldrh r4, [r4] adds r0, r0, r4 strh r0, [r7, #0x24] ldrb r0, [r7, #0xa] cmp r0, #0 beq _0809A320 b _0809A632 _0809A320: ldr r1, [r7, #0x50] movs r0, #4 strb r0, [r1, #0xc] ldr r1, [r7, #0x50] movs r0, #0 strb r0, [r1, #0xd] b _0809A632 .align 2, 0 _0809A330: .4byte gUnk_0812384C _0809A334: .4byte 0x000001FF _0809A338: adds r0, r1, #1 strb r0, [r7, #0xe] b _0809A632 _0809A33E: ldr r1, [r7, #0x50] ldrb r0, [r1, #0xb] cmp r0, #3 bne _0809A38E adds r0, r1, #0 adds r0, #0x84 ldr r0, [r0] ldr r2, [r0, #8] ldr r0, [r2, #0x2c] ldr r1, [r7, #0x2c] subs r0, r0, r1 ldr r1, [r2, #0x30] ldr r2, [r7, #0x30] subs r1, r1, r2 bl sub_080045DA strb r0, [r7, #0x15] movs r1, #0xa0 lsls r1, r1, #2 ldrb r2, [r7, #0x15] adds r0, r7, #0 bl sub_0806F62C ldr r1, [r7, #0x50] adds r0, r7, #0 movs r2, #0x48 bl sub_0806FC80 b _0809A388 _0809A378: ldrb r2, [r7, #0x15] adds r0, r7, #0 movs r1, #0x80 bl sub_0806F62C adds r0, r7, #0 adds r0, #0x5a ldrb r0, [r0] _0809A388: cmp r0, #0 bne _0809A38E b _0809A632 _0809A38E: bl sub_0805E780 b _0809A632 _0809A394: ldr r3, [r7, #0x78] cmp r3, #0 bne _0809A3B4 ldr r0, _0809A3B0 @ =gUnk_02034350 movs r2, #0xc ldrsh r1, [r0, r2] movs r0, #0x80 lsls r0, r0, #1 cmp r1, r0 beq _0809A38E movs r0, #8 bl sub_0805308C b _0809A632 .align 2, 0 _0809A3B0: .4byte gUnk_02034350 _0809A3B4: ldr r2, [r7, #0x50] adds r0, r2, #0 adds r0, #0x45 ldrb r1, [r0] cmp r1, #0 bne _0809A3C8 movs r0, #1 strb r0, [r7, #0xd] str r1, [r7, #0x78] b _0809A632 _0809A3C8: ldrb r0, [r7, #0xd] cmp r0, #0 bne _0809A3D6 ldrb r0, [r2, #0xb] cmp r0, #0 beq _0809A3D6 b _0809A632 _0809A3D6: movs r0, #1 strb r0, [r7, #0xd] subs r0, r3, #1 str r0, [r7, #0x78] b _0809A632 _0809A3E0: ldr r0, [r7, #0x78] cmp r0, #0 bne _0809A432 adds r0, r7, #0 adds r0, #0x76 ldrh r2, [r0] movs r1, #0x80 lsls r1, r1, #1 adds r5, r0, #0 cmp r2, r1 bne _0809A40E ldr r0, [r7, #0x50] adds r0, #0x7c ldrb r1, [r0] movs r0, #1 ands r0, r1 adds r4, r7, #0 adds r4, #0x74 cmp r0, #0 beq _0809A420 bl sub_0805E780 b _0809A420 _0809A40E: adds r0, r2, #0 subs r0, #0x20 strh r0, [r5] adds r1, r7, #0 adds r1, #0x74 ldrh r0, [r1] subs r0, #0x20 strh r0, [r1] adds r4, r1, #0 _0809A420: ldrh r1, [r5] ldrh r2, [r4] adds r0, r7, #0 adds r0, #0x7a ldrh r3, [r0] adds r0, r7, #0 bl sub_0805EC9C b _0809A436 _0809A432: subs r0, #1 str r0, [r7, #0x78] _0809A436: ldr r0, [r7, #0x50] adds r1, r7, #0 bl sub_0806FA24 ldr r4, _0809A468 @ =gUnk_0812388C ldrb r3, [r7, #0xb] lsls r0, r3, #1 adds r0, #1 lsls r0, r0, #1 adds r0, r0, r4 ldrh r1, [r0] ldr r0, [r7, #0x50] adds r0, #0x7b ldrb r2, [r0] rsbs r2, r2, #0 lsls r2, r2, #0x18 lsls r3, r3, #2 adds r3, r3, r4 lsrs r2, r2, #0x18 ldrh r3, [r3] adds r2, r2, r3 adds r0, r7, #0 bl sub_0806F62C b _0809A632 .align 2, 0 _0809A468: .4byte gUnk_0812388C _0809A46C: ldrb r0, [r7, #0xe] cmp r0, #0 bne _0809A38E ldr r0, [r7, #0x50] _0809A474: adds r1, r7, #0 bl sub_0806FA24 b _0809A632 _0809A47C: ldrb r0, [r7, #0xe] subs r0, #1 strb r0, [r7, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff beq _0809A48C b _0809A632 _0809A48C: movs r0, #4 strb r0, [r7, #0xe] ldrb r0, [r7, #0xf] adds r0, #1 strb r0, [r7, #0xf] adds r0, r7, #0 adds r0, #0x84 str r0, [sp, #4] ldrb r1, [r7, #0xf] lsls r0, r1, #5 subs r0, r0, r1 ldr r2, [sp, #4] ldr r1, [r2] subs r1, r1, r0 mov sl, r1 mov r0, sl str r0, [sp] adds r1, r7, #0 adds r1, #0x82 str r1, [sp, #8] ldrh r0, [r1] adds r2, r7, #0 adds r2, #0x7e str r2, [sp, #0xc] strh r0, [r2] ldrh r0, [r1] subs r1, #8 str r1, [sp, #0x10] strh r0, [r1] movs r2, #0x80 adds r2, r2, r7 mov sb, r2 ldrb r0, [r7, #0xf] lsls r0, r0, #4 ldrh r1, [r2] subs r1, r1, r0 movs r0, #0x7c adds r0, r0, r7 mov r8, r0 strh r1, [r0] adds r4, r7, #0 adds r4, #0x78 strh r1, [r4] ldr r1, [sp, #0x10] ldrh r0, [r1] ldrh r1, [r4] ldrb r3, [r7, #0xb] mov r2, sl bl sub_0809A6F8 adds r5, r0, #0 ldrb r6, [r7, #0xf] ldr r2, [sp, #4] str r2, [sp, #0x20] ldr r0, [sp, #0x10] str r0, [sp, #0x28] ldr r1, [sp, #8] str r1, [sp, #0x1c] ldr r2, [sp, #0xc] str r2, [sp, #0x30] mov r0, sb str r0, [sp, #0x34] mov r1, r8 str r1, [sp, #0x2c] str r4, [sp, #0x24] cmp r6, #0 beq _0809A568 ldr r2, [sp, #0x28] str r2, [sp, #0x14] mov sb, r4 ldr r0, [sp, #0x30] mov r8, r0 adds r4, r1, #0 _0809A51E: ldr r1, [sp, #0x14] ldrh r0, [r1] subs r0, #0x10 strh r0, [r1] mov r2, sb ldrh r0, [r2] adds r0, #0x10 strh r0, [r2] ldr r0, [sp] adds r0, #0x1e str r0, [sp] ldrh r0, [r1] ldrh r1, [r2] ldrb r3, [r7, #0xb] ldr r2, [sp] bl sub_0809A6F8 adds r5, r5, r0 mov r1, r8 ldrh r0, [r1] adds r0, #0x10 strh r0, [r1] ldrh r0, [r4] adds r0, #0x10 strh r0, [r4] movs r2, #0x20 add sl, r2 ldrh r0, [r1] ldrh r1, [r4] ldrb r3, [r7, #0xb] mov r2, sl bl sub_0809A6F8 adds r5, r5, r0 subs r6, #1 cmp r6, #0 bne _0809A51E _0809A568: ldrb r1, [r7, #0xf] lsls r0, r1, #5 subs r0, r0, r1 ldr r2, [sp, #0x20] ldr r1, [r2] adds r1, r1, r0 mov sl, r1 mov r0, sl str r0, [sp] ldr r1, [sp, #0x1c] ldrh r0, [r1] ldr r2, [sp, #0x30] strh r0, [r2] ldrh r0, [r1] ldr r1, [sp, #0x28] strh r0, [r1] ldrb r0, [r7, #0xf] lsls r0, r0, #4 ldr r2, [sp, #0x34] ldrh r2, [r2] adds r0, r0, r2 ldr r1, [sp, #0x2c] strh r0, [r1] ldr r2, [sp, #0x24] strh r0, [r2] ldr r1, [sp, #0x28] ldrh r0, [r1] ldrh r1, [r2] ldrb r3, [r7, #0xb] mov r2, sl bl sub_0809A6F8 adds r5, r5, r0 ldrb r0, [r7, #0xf] subs r6, r0, #1 cmp r6, #0 beq _0809A610 ldr r2, [sp, #0x28] str r2, [sp, #0x18] ldr r0, [sp, #0x24] mov sb, r0 ldr r1, [sp, #0x30] mov r8, r1 ldr r4, [sp, #0x2c] _0809A5C0: ldr r2, [sp, #0x18] ldrh r0, [r2] subs r0, #0x10 strh r0, [r2] mov r1, sb ldrh r0, [r1] subs r0, #0x10 strh r0, [r1] ldr r2, [sp] subs r2, #0x20 str r2, [sp] ldr r1, [sp, #0x18] ldrh r0, [r1] mov r2, sb ldrh r1, [r2] ldrb r3, [r7, #0xb] ldr r2, [sp] bl sub_0809A6F8 adds r5, r5, r0 mov r1, r8 ldrh r0, [r1] adds r0, #0x10 strh r0, [r1] ldrh r0, [r4] subs r0, #0x10 strh r0, [r4] movs r2, #0x1e rsbs r2, r2, #0 add sl, r2 ldrh r0, [r1] ldrh r1, [r4] ldrb r3, [r7, #0xb] mov r2, sl bl sub_0809A6F8 adds r5, r5, r0 subs r6, #1 cmp r6, #0 bne _0809A5C0 _0809A610: cmp r5, #0 bne _0809A632 b _0809A38E _0809A616: bl sub_08078B48 ldr r0, [r7, #0x78] subs r0, #1 str r0, [r7, #0x78] movs r1, #1 rsbs r1, r1, #0 cmp r0, r1 bne _0809A632 ldr r1, _0809A640 @ =gUnk_03000BF0 ldr r0, _0809A644 @ =gUnk_03001160 str r0, [r1, #0x30] bl sub_0805E780 _0809A632: add sp, #0x38 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _0809A640: .4byte gUnk_03000BF0 _0809A644: .4byte gUnk_03001160 thumb_func_start sub_0809A648 sub_0809A648: @ 0x0809A648 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r7, r0, #0 bl sub_08004274 ldrb r0, [r7, #0xe] subs r0, #1 strb r0, [r7, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff beq _0809A6EC ldr r4, [r7, #0x50] adds r0, r4, #0 adds r0, #0x74 ldrh r1, [r0] movs r0, #0x80 lsls r0, r0, #9 bl __divsi3 movs r2, #0x24 ldrsh r1, [r7, r2] adds r5, r1, #0 muls r5, r0, r5 adds r4, #0x7b ldrb r1, [r4] ldrb r0, [r7, #0x15] subs r0, r0, r1 movs r1, #0x7b adds r1, r1, r7 mov r8, r1 strb r0, [r1] ldr r6, _0809A6E8 @ =gUnk_080C9160 ldrb r0, [r1] lsls r0, r0, #1 adds r0, r0, r6 movs r2, #0 ldrsh r0, [r0, r2] lsls r5, r5, #8 asrs r5, r5, #0x10 adds r1, r5, #0 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r4, #0x80 lsls r4, r4, #1 adds r1, r4, #0 bl sub_0806FA04 ldr r1, [r7, #0x50] lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r1, #0x2c] adds r1, r1, r0 str r1, [r7, #0x2c] mov r1, r8 ldrb r0, [r1] adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r6 movs r2, #0 ldrsh r0, [r0, r2] adds r1, r5, #0 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r4, #0 bl sub_0806FA04 ldr r1, [r7, #0x50] lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r1, #0x30] subs r1, r1, r0 str r1, [r7, #0x30] b _0809A6F0 .align 2, 0 _0809A6E8: .4byte gUnk_080C9160 _0809A6EC: bl sub_0805E780 _0809A6F0: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0809A6F8 sub_0809A6F8: @ 0x0809A6F8 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r5, r1, #0 adds r6, r2, #0 adds r7, r3, #0 bl sub_0809A758 cmp r0, #0 beq _0809A754 ldr r0, _0809A738 @ =gUnk_081238A0 lsls r1, r6, #1 adds r1, r1, r0 ldrh r0, [r1] cmp r0, #0 beq _0809A750 movs r0, #1 ands r0, r7 cmp r0, #0 beq _0809A73C ldrh r0, [r1] lsrs r1, r4, #4 movs r3, #0x3f ands r1, r3 lsrs r2, r5, #4 ands r2, r3 lsls r2, r2, #6 orrs r1, r2 movs r2, #1 bl sub_0807B9B8 b _0809A750 .align 2, 0 _0809A738: .4byte gUnk_081238A0 _0809A73C: lsrs r0, r4, #4 movs r2, #0x3f ands r0, r2 lsrs r1, r5, #4 ands r1, r2 lsls r1, r1, #6 orrs r0, r1 movs r1, #1 bl sub_0807BA8C _0809A750: movs r0, #1 b _0809A756 _0809A754: movs r0, #0 _0809A756: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0809A758 sub_0809A758: @ 0x0809A758 push {lr} adds r2, r0, #0 cmp r2, #0xf bls _0809A770 movs r0, #0xf8 lsls r0, r0, #1 cmp r2, r0 bhi _0809A770 cmp r1, #0xf0 bhi _0809A770 movs r0, #1 b _0809A772 _0809A770: movs r0, #0 _0809A772: pop {pc} thumb_func_start sub_0809A774 sub_0809A774: @ 0x0809A774 push {lr} ldr r2, _0809A788 @ =gUnk_08123C80 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809A788: .4byte gUnk_08123C80 thumb_func_start sub_0809A78C sub_0809A78C: @ 0x0809A78C push {r4, r5, lr} adds r4, r0, #0 movs r3, #0 movs r0, #1 strb r0, [r4, #0xc] movs r2, #0x80 strb r2, [r4, #0xe] strb r3, [r4, #0xf] ldrb r0, [r4, #0x19] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x19] adds r5, r4, #0 adds r5, #0x80 strh r2, [r5] adds r0, r4, #0 adds r0, #0x78 strh r3, [r0] ldrh r0, [r4, #0x2e] subs r0, #4 strh r0, [r4, #0x2e] adds r1, r4, #0 adds r1, #0x63 movs r0, #0xfc strb r0, [r1] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] ldrb r0, [r4, #0x19] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x19] ldrh r2, [r5] adds r0, r4, #0 adds r1, r2, #0 bl sub_0805EC9C adds r0, r4, #0 bl sub_08016A04 ldrb r1, [r4, #0xf] adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 bl sub_0809A958 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0809A7F4 sub_0809A7F4: @ 0x0809A7F4 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_0809AA00 ldrb r0, [r4, #0xe] adds r2, r0, #0 cmp r2, #0 beq _0809A810 subs r0, #1 strb r0, [r4, #0xe] b _0809A840 _0809A810: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0809A840 ldrb r0, [r4, #0xf] cmp r0, #3 bne _0809A838 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x5a strb r0, [r4, #0xe] strb r2, [r4, #0xf] adds r0, r4, #0 movs r1, #2 bl sub_080042AC b _0809A840 _0809A838: ldrb r1, [r4, #0xf] adds r0, r4, #0 bl sub_080042AC _0809A840: pop {r4, pc} .align 2, 0 thumb_func_start sub_0809A844 sub_0809A844: @ 0x0809A844 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_0809AA00 ldrb r0, [r4, #0xf] cmp r0, #1 bhi _0809A85C movs r1, #0 b _0809A870 _0809A85C: ldrb r0, [r4, #0xe] adds r2, r0, #0 cmp r2, #0 beq _0809A87C subs r0, #1 strb r0, [r4, #0xe] ldr r0, _0809A878 @ =gUnk_03004040 ldr r1, [r0] cmp r1, #0 bne _0809A8A0 _0809A870: movs r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0xe] b _0809A8A0 .align 2, 0 _0809A878: .4byte gUnk_03004040 _0809A87C: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0809A8A0 movs r0, #3 strb r0, [r4, #0xc] strb r2, [r4, #0xe] adds r0, r4, #0 movs r1, #3 bl sub_080042AC adds r0, r4, #0 movs r1, #0x78 bl sub_0805E4E0 _0809A8A0: pop {r4, pc} .align 2, 0 thumb_func_start sub_0809A8A4 sub_0809A8A4: @ 0x0809A8A4 push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0xe0 ands r0, r1 cmp r0, #0x40 beq _0809A8D4 cmp r0, #0x40 bgt _0809A8C0 cmp r0, #0x20 beq _0809A8E2 b _0809A8FC _0809A8C0: cmp r0, #0x80 bne _0809A8FC adds r0, r4, #0 adds r0, #0x59 ldrb r0, [r0] cmp r0, #0 bne _0809A902 bl sub_0805E780 b _0809A902 _0809A8D4: movs r0, #0xbf ands r0, r1 strb r0, [r2] adds r0, r4, #0 bl sub_0809A9D4 b _0809A902 _0809A8E2: ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] ldrb r1, [r2] movs r0, #0xdf ands r0, r1 strb r0, [r2] movs r0, #0xff bl sub_08078A90 movs r0, #0x2a bl sub_0807CD04 _0809A8FC: adds r0, r4, #0 bl sub_080042B8 _0809A902: ldrb r0, [r4, #0xe] cmp r0, #0 beq _0809A92A adds r1, r4, #0 adds r1, #0x80 ldrh r0, [r1] adds r0, #8 strh r0, [r1] ldr r0, [r4, #0x2c] movs r2, #0x80 lsls r2, r2, #3 adds r0, r0, r2 str r0, [r4, #0x2c] ldrh r2, [r1] adds r0, r4, #0 adds r1, r2, #0 movs r3, #0 bl sub_0805EC9C b _0809A94E _0809A92A: ldr r1, [r4, #0x54] adds r0, r4, #0 movs r2, #0 bl sub_0809AA9C ldr r1, _0809A950 @ =gUnk_03001160 adds r0, r4, #0 movs r2, #1 bl sub_0809AA9C ldr r0, _0809A954 @ =gUnk_03004040 ldr r1, [r0] cmp r1, #0 beq _0809A94E adds r0, r4, #0 movs r2, #1 bl sub_0809AA9C _0809A94E: pop {r4, pc} .align 2, 0 _0809A950: .4byte gUnk_03001160 _0809A954: .4byte gUnk_03004040 thumb_func_start sub_0809A958 sub_0809A958: @ 0x0809A958 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} movs r1, #0x2e ldrsh r3, [r0, r1] ldr r2, _0809A9CC @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r1, #4 subs r3, r3, r1 asrs r3, r3, #4 movs r4, #0x3f ands r3, r4 movs r5, #0x32 ldrsh r1, [r0, r5] ldrh r2, [r2, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r4 lsls r1, r1, #6 orrs r3, r1 adds r0, #0x82 strh r3, [r0] ldrh r0, [r0] adds r5, r0, #0 subs r5, #0x82 ldr r6, _0809A9D0 @ =gUnk_08123C90 movs r0, #0 movs r1, #0x80 lsls r1, r1, #7 mov sb, r1 _0809A996: movs r4, #0 adds r0, #1 mov r8, r0 adds r7, r5, #0 adds r7, #0x40 _0809A9A0: ldrh r0, [r6] mov r1, sb ands r0, r1 cmp r0, #0 beq _0809A9B4 ldrh r0, [r6] adds r1, r5, r4 movs r2, #1 bl sub_0800015E _0809A9B4: adds r4, #1 adds r6, #2 cmp r4, #3 ble _0809A9A0 mov r0, r8 adds r5, r7, #0 cmp r0, #4 ble _0809A996 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _0809A9CC: .4byte gUnk_03000BF0 _0809A9D0: .4byte gUnk_08123C90 thumb_func_start sub_0809A9D4 sub_0809A9D4: @ 0x0809A9D4 push {r4, r5, r6, r7, lr} adds r0, #0x82 ldrh r0, [r0] adds r5, r0, #0 subs r5, #0x82 movs r0, #0 _0809A9E0: movs r4, #0 adds r7, r0, #1 adds r6, r5, #0 adds r6, #0x40 _0809A9E8: adds r0, r5, r4 movs r1, #1 bl sub_0807BA8C adds r4, #1 cmp r4, #3 ble _0809A9E8 adds r0, r7, #0 adds r5, r6, #0 cmp r0, #4 ble _0809A9E0 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0809AA00 sub_0809AA00: @ 0x0809AA00 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 movs r0, #0 strb r0, [r5, #0xf] ldr r1, [r5, #0x54] cmp r1, #0 bne _0809AA50 movs r0, #7 movs r1, #0x38 movs r2, #7 bl sub_0805EB00 adds r4, r0, #0 adds r7, r5, #0 adds r7, #0x78 cmp r4, #0 beq _0809AA5C movs r0, #0x80 lsls r0, r0, #4 mov r8, r0 ldr r0, _0809AA4C @ =0x0000FFFF adds r6, r0, #0 _0809AA30: ldrh r0, [r4, #0xa] ands r0, r6 cmp r0, r8 bne _0809AA3A str r4, [r5, #0x54] _0809AA3A: adds r0, r4, #0 movs r1, #7 bl sub_0805EB64 adds r4, r0, #0 cmp r4, #0 bne _0809AA30 b _0809AA5C .align 2, 0 _0809AA4C: .4byte 0x0000FFFF _0809AA50: adds r0, r5, #0 movs r2, #0 bl sub_0809AA9C adds r7, r5, #0 adds r7, #0x78 _0809AA5C: ldr r4, _0809AA94 @ =gUnk_03001160 adds r0, r5, #0 adds r1, r4, #0 movs r2, #0x20 movs r3, #0x22 bl sub_080041A0 strh r0, [r7] lsls r0, r0, #0x10 cmp r0, #0 beq _0809AA8E adds r0, r5, #0 adds r1, r4, #0 movs r2, #1 bl sub_0809AA9C ldr r0, _0809AA98 @ =gUnk_03004040 ldr r4, [r0] cmp r4, #0 beq _0809AA8E adds r0, r5, #0 adds r1, r4, #0 movs r2, #1 bl sub_0809AA9C _0809AA8E: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0809AA94: .4byte gUnk_03001160 _0809AA98: .4byte gUnk_03004040 thumb_func_start sub_0809AA9C sub_0809AA9C: @ 0x0809AA9C push {r4, lr} adds r4, r0, #0 adds r3, r1, #0 adds r0, #0x5a ldrb r0, [r0] movs r1, #3 ands r1, r0 cmp r1, #1 beq _0809AAB2 cmp r1, #2 bne _0809AABC _0809AAB2: adds r0, r3, #0 adds r0, #0x63 strb r1, [r0] adds r2, r0, #0 b _0809AAC6 _0809AABC: adds r1, r3, #0 adds r1, #0x63 movs r0, #0 strb r0, [r1] adds r2, r1, #0 _0809AAC6: movs r0, #0x2e ldrsh r1, [r3, r0] ldr r0, _0809AAE8 @ =gUnk_03000BF0 ldrh r0, [r0, #6] movs r3, #0xad lsls r3, r3, #1 adds r0, r0, r3 cmp r1, r0 bgt _0809AAE4 ldrb r0, [r4, #0xf] adds r0, #1 strb r0, [r4, #0xf] ldrb r0, [r2] adds r0, #1 strb r0, [r2] _0809AAE4: pop {r4, pc} .align 2, 0 _0809AAE8: .4byte gUnk_03000BF0 thumb_func_start sub_0809AAEC sub_0809AAEC: @ 0x0809AAEC push {lr} ldr r2, _0809AB00 @ =gUnk_08123D28 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809AB00: .4byte gUnk_08123D28 thumb_func_start sub_0809AB04 sub_0809AB04: @ 0x0809AB04 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x31 bl sub_0807CBE4 cmp r0, #0 beq _0809AB22 adds r0, r5, #0 bl sub_0809AD68 adds r0, r5, #0 bl sub_0809AD8C bl sub_0805E780 _0809AB22: movs r0, #0x36 movs r1, #0 bl sub_0804AA60 adds r4, r0, #0 cmp r4, #0 beq _0809AB9C adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 str r4, [r5, #0x54] ldr r2, _0809AB68 @ =gUnk_030010A0 adds r0, r2, #0 adds r0, #0x38 ldrb r1, [r0] cmp r1, #0 beq _0809AB70 adds r0, #1 ldrb r0, [r0] cmp r0, #0 beq _0809AB52 bl sub_0805E780 _0809AB52: movs r0, #7 strb r0, [r5, #0xc] ldrb r1, [r5, #0x18] subs r0, #0xb ands r0, r1 strb r0, [r5, #0x18] ldr r0, _0809AB6C @ =gUnk_03000BF0 str r5, [r0, #0x30] bl sub_080809D4 b _0809AB9C .align 2, 0 _0809AB68: .4byte gUnk_030010A0 _0809AB6C: .4byte gUnk_03000BF0 _0809AB70: movs r0, #1 strb r0, [r5, #0xc] movs r0, #0x1e strb r0, [r5, #0xe] strb r1, [r5, #0x1e] adds r2, r5, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] adds r1, r5, #0 adds r1, #0x63 movs r0, #0x20 strb r0, [r1] ldr r1, _0809ABA0 @ =gUnk_08012DD8 adds r0, r5, #0 bl sub_0807DAD0 adds r1, r5, #0 adds r1, #0x84 str r0, [r1] _0809AB9C: pop {r4, r5, pc} .align 2, 0 _0809ABA0: .4byte gUnk_08012DD8 thumb_func_start sub_0809ABA4 sub_0809ABA4: @ 0x0809ABA4 push {lr} movs r1, #0 bl sub_0807DDAC pop {pc} .align 2, 0 thumb_func_start sub_0809ABB0 sub_0809ABB0: @ 0x0809ABB0 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 _0809ABCE movs r0, #3 strb r0, [r2, #0xc] movs r0, #0x78 strb r0, [r2, #0xe] ldr r1, _0809ABD0 @ =gUnk_03000BF0 ldr r0, [r2, #0x54] str r0, [r1, #0x30] _0809ABCE: pop {pc} .align 2, 0 _0809ABD0: .4byte gUnk_03000BF0 thumb_func_start sub_0809ABD4 sub_0809ABD4: @ 0x0809ABD4 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 _0809ABF2 movs r0, #4 strb r0, [r1, #0xc] movs r0, #0x5a strb r0, [r1, #0xe] ldr r1, [r1, #0x54] movs r0, #1 strb r0, [r1, #0xd] _0809ABF2: pop {pc} thumb_func_start sub_0809ABF4 sub_0809ABF4: @ 0x0809ABF4 push {lr} adds r2, r0, #0 ldr r0, [r2, #0x54] ldrb r0, [r0, #0xd] cmp r0, #2 bls _0809AC36 ldrb r0, [r2, #0xe] subs r0, #1 strb r0, [r2, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0809AC36 movs r0, #5 strb r0, [r2, #0xc] movs r0, #8 strb r0, [r2, #0xe] strb r1, [r2, #0xf] ldrb r1, [r2, #0x19] subs r0, #0x15 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2, #0x19] ldr r1, _0809AC38 @ =gUnk_03000F50 adds r2, r1, #0 adds r2, #0x66 movs r0, #0xf4 lsls r0, r0, #4 strh r0, [r2] adds r1, #0x68 movs r0, #0x10 strh r0, [r1] _0809AC36: pop {pc} .align 2, 0 _0809AC38: .4byte gUnk_03000F50 thumb_func_start sub_0809AC3C sub_0809AC3C: @ 0x0809AC3C push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r3, #0xff lsls r0, r0, #0x18 lsrs r5, r0, #0x18 cmp r5, #0 bne _0809AC9A movs r0, #8 strb r0, [r4, #0xe] ldrb r2, [r4, #0xf] adds r2, #1 strb r2, [r4, #0xf] adds r1, r2, #0 ands r1, r3 ldr r6, _0809AC9C @ =gUnk_03000F50 lsls r3, r1, #8 movs r0, #0x10 subs r0, r0, r1 movs r1, #0xff ands r0, r1 orrs r3, r0 adds r0, r6, #0 adds r0, #0x68 strh r3, [r0] lsls r2, r2, #0x18 lsrs r2, r2, #0x18 cmp r2, #0xf bls _0809AC9A ldrb r1, [r4, #0x19] movs r0, #0xd rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x19] adds r0, r6, #0 adds r0, #0x66 strh r5, [r0] movs r0, #6 strb r0, [r4, #0xc] movs r0, #0xf strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #0x13 ands r0, r1 strb r0, [r4, #0x18] _0809AC9A: pop {r4, r5, r6, pc} .align 2, 0 _0809AC9C: .4byte gUnk_03000F50 thumb_func_start sub_0809ACA0 sub_0809ACA0: @ 0x0809ACA0 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 _0809ACC4 ldr r1, [r2, #0x54] movs r0, #6 strb r0, [r1, #0xd] ldr r0, _0809ACC8 @ =gUnk_030010A0 adds r0, #0x38 movs r1, #0xf1 strb r1, [r0] adds r0, r2, #0 bl sub_0805E7BC _0809ACC4: pop {pc} .align 2, 0 _0809ACC8: .4byte gUnk_030010A0 thumb_func_start sub_0809ACCC sub_0809ACCC: @ 0x0809ACCC push {lr} adds r2, r0, #0 ldr r0, [r2, #0x54] ldrb r0, [r0, #0xe] cmp r0, #1 bne _0809ACE4 movs r0, #0 movs r1, #8 strb r1, [r2, #0xc] strb r0, [r2, #0xd] movs r0, #0xb4 strb r0, [r2, #0xe] _0809ACE4: pop {pc} .align 2, 0 thumb_func_start sub_0809ACE8 sub_0809ACE8: @ 0x0809ACE8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #1 beq _0809AD1E cmp r0, #2 beq _0809AD3A ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0809AD58 movs r0, #0x5a strb r0, [r4, #0xe] movs r0, #1 strb r0, [r4, #0xd] movs r0, #0x73 bl sub_080A3268 movs r0, #0x31 bl sub_0807CCC8 adds r0, r4, #0 bl sub_0809AD8C b _0809AD58 _0809AD1E: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0809AD58 movs r0, #0x78 strb r0, [r4, #0xe] movs r0, #2 strb r0, [r4, #0xd] adds r0, r4, #0 bl sub_0809AD68 b _0809AD58 _0809AD3A: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0809AD58 ldr r1, _0809AD5C @ =gUnk_03000BF0 ldr r0, _0809AD60 @ =gUnk_03001160 str r0, [r1, #0x30] ldr r0, _0809AD64 @ =gUnk_03003F80 adds r0, #0x8b movs r1, #1 strb r1, [r0] bl sub_0805E780 _0809AD58: pop {r4, pc} .align 2, 0 _0809AD5C: .4byte gUnk_03000BF0 _0809AD60: .4byte gUnk_03001160 _0809AD64: .4byte gUnk_03003F80 thumb_func_start sub_0809AD68 sub_0809AD68: @ 0x0809AD68 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] bl sub_0804B128 bl sub_0804ADDC movs r0, #0x17 bl sub_0807CA84 cmp r0, #0 beq _0809AD8A ldrb r0, [r4, #0xb] bl sub_0804B128 bl sub_0804ADDC _0809AD8A: pop {r4, pc} thumb_func_start sub_0809AD8C sub_0809AD8C: @ 0x0809AD8C push {lr} movs r0, #0x4f movs r1, #0x22 movs r2, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _0809ADAC ldr r0, _0809ADB0 @ =gUnk_03000BF0 ldrh r1, [r0, #6] adds r1, #0xb8 strh r1, [r2, #0x2e] ldrh r0, [r0, #8] adds r0, #8 strh r0, [r2, #0x32] _0809ADAC: pop {pc} .align 2, 0 _0809ADB0: .4byte gUnk_03000BF0 thumb_func_start sub_0809ADB4 sub_0809ADB4: @ 0x0809ADB4 push {lr} ldr r2, _0809ADC8 @ =gUnk_08123D4C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809ADC8: .4byte gUnk_08123D4C thumb_func_start sub_0809ADCC sub_0809ADCC: @ 0x0809ADCC push {r4, r5, r6, r7, lr} adds r4, r0, #0 movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _0809AE14 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r5, r4, #0 adds r5, #0x80 strh r1, [r5] adds r0, r4, #0 adds r0, #0x38 ldrb r7, [r0] adds r0, r4, #0 bl sub_08016A04 ldrb r0, [r4, #0xa] cmp r0, #1 beq _0809AEBC cmp r0, #1 bgt _0809AE18 cmp r0, #0 beq _0809AE1E b _0809AF46 .align 2, 0 _0809AE14: .4byte gUnk_03000BF0 _0809AE18: cmp r0, #2 beq _0809AF10 b _0809AF46 _0809AE1E: movs r0, #2 strb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #0xa ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] ldrh r5, [r5] subs r6, r5, #1 ldr r4, _0809AEB8 @ =0x00004022 adds r0, r4, #0 adds r1, r6, #0 adds r2, r7, #0 bl sub_0800015E adds r0, r4, #0 adds r1, r5, #0 adds r2, r7, #0 bl sub_0800015E adds r1, r5, #1 adds r0, r4, #0 adds r2, r7, #0 bl sub_0800015E adds r1, r5, #0 adds r1, #0x3f adds r0, r4, #0 adds r2, r7, #0 bl sub_0800015E adds r1, r5, #0 adds r1, #0x40 adds r0, r4, #0 adds r2, r7, #0 bl sub_0800015E adds r1, r5, #0 adds r1, #0x41 adds r0, r4, #0 adds r2, r7, #0 bl sub_0800015E adds r4, #0x1b adds r1, r5, #0 subs r1, #0x41 adds r0, r4, #0 adds r2, r7, #0 bl sub_0800015E adds r1, r5, #0 subs r1, #0x40 adds r0, r4, #0 adds r2, r7, #0 bl sub_0800015E subs r4, #0x17 adds r1, r5, #0 subs r1, #0x3f adds r0, r4, #0 adds r2, r7, #0 bl sub_0800015E adds r1, r5, #0 subs r1, #0x81 adds r0, r4, #0 adds r2, r7, #0 bl sub_0800015E adds r1, r5, #0 subs r1, #0x80 adds r0, r4, #0 b _0809AF04 .align 2, 0 _0809AEB8: .4byte 0x00004022 _0809AEBC: strb r0, [r4, #0xc] ldrh r6, [r5] ldr r4, _0809AEF4 @ =0x00004022 adds r0, r4, #0 adds r1, r6, #0 adds r2, r7, #0 bl sub_0800015E adds r1, r6, #0 adds r1, #0x40 adds r0, r4, #0 adds r2, r7, #0 bl sub_0800015E ldr r0, _0809AEF8 @ =0x00004025 adds r1, r6, #0 adds r1, #0x41 adds r2, r7, #0 bl sub_0800015E movs r0, #0x4f bl sub_0807CBD0 cmp r0, #0 bne _0809AF00 ldr r0, _0809AEFC @ =0x0000402F b _0809AF02 .align 2, 0 _0809AEF4: .4byte 0x00004022 _0809AEF8: .4byte 0x00004025 _0809AEFC: .4byte 0x0000402F _0809AF00: ldr r0, _0809AF0C @ =0x0000402D _0809AF02: adds r1, r6, #1 _0809AF04: adds r2, r7, #0 bl sub_0800015E b _0809AF46 .align 2, 0 _0809AF0C: .4byte 0x0000402D _0809AF10: movs r0, #1 strb r0, [r4, #0xc] ldrh r5, [r5] adds r6, r5, #0 subs r6, #0x41 ldr r4, _0809AF48 @ =0x00004022 adds r0, r4, #0 adds r1, r6, #0 adds r2, r7, #0 bl sub_0800015E adds r1, r5, #0 subs r1, #0x40 adds r0, r4, #0 adds r2, r7, #0 bl sub_0800015E subs r1, r5, #1 adds r0, r4, #0 adds r2, r7, #0 bl sub_0800015E adds r0, r4, #0 adds r1, r5, #0 adds r2, r7, #0 bl sub_0800015E _0809AF46: pop {r4, r5, r6, r7, pc} .align 2, 0 _0809AF48: .4byte 0x00004022 thumb_func_start nullsub_535 nullsub_535: @ 0x0809AF4C bx lr .align 2, 0 thumb_func_start sub_0809AF50 sub_0809AF50: @ 0x0809AF50 push {lr} bl nullsub_2 pop {pc} thumb_func_start nullsub_2 nullsub_2: @ 0x0809AF58 bx lr .align 2, 0 thumb_func_start sub_0809AF5C sub_0809AF5C: @ 0x0809AF5C push {lr} ldr r2, _0809AF70 @ =gUnk_08123D58 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809AF70: .4byte gUnk_08123D58 thumb_func_start sub_0809AF74 sub_0809AF74: @ 0x0809AF74 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] strb r0, [r4, #0x1e] movs r0, #0x2e ldrsh r2, [r4, r0] ldr r1, _0809AFBC @ =gUnk_03000BF0 ldrh r0, [r1, #6] subs r2, r2, r0 asrs r2, r2, #4 movs r3, #0x3f ands r2, r3 movs r5, #0x32 ldrsh r0, [r4, r5] ldrh r1, [r1, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r2, r0 adds r0, r4, #0 adds r0, #0x80 movs r6, #0 strh r2, [r0] ldrb r0, [r4, #0xa] cmp r0, #0 beq _0809AFC4 movs r1, #1 strb r1, [r4, #0xc] adds r0, r4, #0 adds r0, #0x84 ldrb r0, [r0] cmp r0, #0 bne _0809AFC0 strb r6, [r4, #0xd] b _0809B02C .align 2, 0 _0809AFBC: .4byte gUnk_03000BF0 _0809AFC0: strb r1, [r4, #0xd] b _0809B02C _0809AFC4: movs r0, #3 strb r0, [r4, #0xc] movs r0, #4 strb r0, [r4, #0xd] adds r0, r4, #0 adds r0, #0x84 strb r6, [r0] adds r0, r4, #0 bl sub_08016A04 movs r0, #0x8b movs r1, #1 movs r2, #0 bl sub_080A2960 adds r5, r0, #0 cmp r5, #0 beq _0809B026 str r4, [r5, #0x50] str r5, [r4, #0x54] adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 bne _0809B010 movs r3, #0x80 lsls r3, r3, #0xd adds r0, r4, #0 adds r1, r5, #0 adds r2, r3, #0 bl sub_0806FA48 adds r0, r5, #0 adds r0, #0x84 strb r6, [r0] b _0809B026 _0809B010: movs r3, #0x80 lsls r3, r3, #0xd adds r0, r4, #0 adds r1, r5, #0 movs r2, #0 bl sub_0806FA48 adds r1, r5, #0 adds r1, #0x84 movs r0, #1 strb r0, [r1] _0809B026: adds r0, r4, #0 bl sub_0809B334 _0809B02C: adds r0, r4, #0 bl sub_0809B0B0 pop {r4, r5, r6, pc} thumb_func_start sub_0809B034 sub_0809B034: @ 0x0809B034 push {r4, lr} adds r4, r0, #0 adds r0, #0x82 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080002B0 adds r0, r4, #0 bl sub_0809B234 pop {r4, pc} .align 2, 0 thumb_func_start sub_0809B050 sub_0809B050: @ 0x0809B050 push {r4, r5, lr} adds r4, r0, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0809B0A2 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _0809B0A4 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] 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, #0x80 strh r1, [r0] movs r0, #0 bl sub_08078A90 adds r0, r4, #0 bl sub_0809B0B0 movs r0, #0x86 lsls r0, r0, #1 bl sub_08004488 _0809B0A2: pop {r4, r5, pc} .align 2, 0 _0809B0A4: .4byte gUnk_03000BF0 thumb_func_start sub_0809B0A8 sub_0809B0A8: @ 0x0809B0A8 push {lr} bl sub_0809B234 pop {pc} thumb_func_start sub_0809B0B0 sub_0809B0B0: @ 0x0809B0B0 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} mov r8, r0 adds r0, #0x80 ldrh r0, [r0] subs r6, r0, #1 mov r0, r8 adds r0, #0x38 ldrb r7, [r0] mov r1, r8 ldrb r0, [r1, #0xd] cmp r0, #4 bls _0809B0CE b _0809B228 _0809B0CE: lsls r0, r0, #2 ldr r1, _0809B0D8 @ =_0809B0DC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809B0D8: .4byte _0809B0DC _0809B0DC: @ jump table .4byte _0809B0F0 @ case 0 .4byte _0809B130 @ case 1 .4byte _0809B178 @ case 2 .4byte _0809B1C0 @ case 3 .4byte _0809B208 @ case 4 _0809B0F0: mov r1, r8 adds r1, #0x84 movs r0, #0 strb r0, [r1] adds r5, r6, #2 mov r0, r8 adds r0, #0x82 strh r5, [r0] ldr r0, _0809B128 @ =0x00004082 subs r1, r6, #1 adds r2, r7, #0 bl sub_0800015E ldr r4, _0809B12C @ =0x00004022 adds r0, r4, #0 adds r1, r6, #0 adds r2, r7, #0 bl sub_0800015E adds r1, r6, #1 adds r0, r4, #0 adds r2, r7, #0 bl sub_0800015E adds r0, r4, #0 adds r1, r5, #0 b _0809B162 .align 2, 0 _0809B128: .4byte 0x00004082 _0809B12C: .4byte 0x00004022 _0809B130: mov r1, r8 adds r1, #0x84 movs r0, #1 strb r0, [r1] mov r0, r8 adds r0, #0x82 strh r6, [r0] ldr r0, _0809B16C @ =0x0000405F adds r1, r6, #0 adds r2, r7, #0 bl sub_0800015E ldr r4, _0809B170 @ =0x00004022 adds r1, r6, #1 adds r0, r4, #0 adds r2, r7, #0 bl sub_0800015E adds r1, r6, #2 adds r0, r4, #0 adds r2, r7, #0 bl sub_0800015E ldr r0, _0809B174 @ =0x00004082 adds r1, r6, #3 _0809B162: adds r2, r7, #0 bl sub_0800015E b _0809B228 .align 2, 0 _0809B16C: .4byte 0x0000405F _0809B170: .4byte 0x00004022 _0809B174: .4byte 0x00004082 _0809B178: mov r1, r8 adds r1, #0x84 movs r0, #1 strb r0, [r1] mov r0, r8 adds r0, #0x82 strh r6, [r0] ldr r0, _0809B1B4 @ =0x00004082 adds r1, r6, #3 adds r2, r7, #0 bl sub_0800015E ldr r0, _0809B1B8 @ =0x00004022 adds r1, r6, #2 adds r2, r7, #0 bl sub_0800015E ldr r0, _0809B1BC @ =0x0000405F adds r1, r6, #0 adds r2, r7, #0 bl sub_0800015E mov r1, r8 ldr r0, [r1, #0x50] adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 b _0809B228 .align 2, 0 _0809B1B4: .4byte 0x00004082 _0809B1B8: .4byte 0x00004022 _0809B1BC: .4byte 0x0000405F _0809B1C0: mov r1, r8 adds r1, #0x84 movs r0, #0 strb r0, [r1] adds r4, r6, #2 mov r0, r8 adds r0, #0x82 strh r4, [r0] ldr r0, _0809B1FC @ =0x00004082 subs r1, r6, #1 adds r2, r7, #0 bl sub_0800015E ldr r0, _0809B200 @ =0x00004022 adds r1, r6, #0 adds r2, r7, #0 bl sub_0800015E ldr r0, _0809B204 @ =0x0000405F adds r1, r4, #0 adds r2, r7, #0 bl sub_0800015E mov r1, r8 ldr r0, [r1, #0x50] adds r0, #0x86 ldrh r0, [r0] bl sub_0807CD48 b _0809B228 .align 2, 0 _0809B1FC: .4byte 0x00004082 _0809B200: .4byte 0x00004022 _0809B204: .4byte 0x0000405F _0809B208: ldr r4, _0809B230 @ =0x00004022 adds r0, r4, #0 adds r1, r6, #0 adds r2, r7, #0 bl sub_0800015E adds r1, r6, #1 adds r0, r4, #0 adds r2, r7, #0 bl sub_0800015E adds r1, r6, #2 adds r0, r4, #0 adds r2, r7, #0 bl sub_0800015E _0809B228: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0809B230: .4byte 0x00004022 thumb_func_start sub_0809B234 sub_0809B234: @ 0x0809B234 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 beq _0809B26A ldr r2, [r4, #0x50] ldrb r1, [r2, #0x19] lsrs r1, r1, #6 lsls r1, r1, #6 ldrb r3, [r4, #0x19] movs r0, #0x3f ands r0, r3 orrs r0, r1 strb r0, [r4, #0x19] adds r2, #0x29 ldrb r1, [r2] lsls r1, r1, #0x1d adds r3, r4, #0 adds r3, #0x29 lsrs r1, r1, #0x1d ldrb r2, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] b _0809B270 _0809B26A: adds r0, r4, #0 bl sub_0809B274 _0809B270: pop {r4, pc} .align 2, 0 thumb_func_start sub_0809B274 sub_0809B274: @ 0x0809B274 push {r4, r5, lr} adds r4, r0, #0 ldr r3, _0809B290 @ =gUnk_03001160 adds r2, r4, #0 adds r2, #0x84 ldrb r0, [r2] cmp r0, #1 beq _0809B2BA cmp r0, #1 bgt _0809B294 cmp r0, #0 beq _0809B29A b _0809B332 .align 2, 0 _0809B290: .4byte gUnk_03001160 _0809B294: cmp r0, #2 beq _0809B30C b _0809B332 _0809B29A: movs r1, #0x32 ldrsh r0, [r3, r1] adds r0, #0x14 movs r3, #0x32 ldrsh r1, [r4, r3] cmp r0, r1 bge _0809B332 movs r0, #1 strb r0, [r2] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #9 ands r0, r1 movs r1, #5 b _0809B306 _0809B2BA: movs r5, #0x2e ldrsh r0, [r3, r5] adds r0, #0x1c movs r5, #0x2e ldrsh r1, [r4, r5] cmp r0, r1 ble _0809B2E8 movs r0, #2 strb r0, [r2] ldr r0, _0809B2E4 @ =0x00004022 adds r1, r4, #0 adds r1, #0x80 ldrh r1, [r1] adds r1, #2 movs r2, #1 bl sub_0800015E ldr r0, [r4, #0x54] bl sub_0809B358 b _0809B332 .align 2, 0 _0809B2E4: .4byte 0x00004022 _0809B2E8: movs r1, #0x32 ldrsh r0, [r3, r1] adds r0, #0x10 movs r3, #0x32 ldrsh r1, [r4, r3] cmp r0, r1 ble _0809B332 movs r0, #0 strb r0, [r2] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #8 ands r0, r1 movs r1, #4 _0809B306: orrs r0, r1 strb r0, [r2] b _0809B332 _0809B30C: movs r5, #0x2e ldrsh r0, [r3, r5] adds r0, #0x20 movs r3, #0x2e ldrsh r1, [r4, r3] cmp r0, r1 bge _0809B332 movs r0, #1 strb r0, [r2] adds r0, r4, #0 adds r0, #0x80 ldrh r0, [r0] adds r0, #2 movs r1, #1 bl sub_0807BA8C ldr r0, [r4, #0x54] bl sub_0809B38C _0809B332: pop {r4, r5, pc} thumb_func_start sub_0809B334 sub_0809B334: @ 0x0809B334 push {r4, r5, lr} adds r0, #0x80 ldrh r0, [r0] adds r4, r0, #0 subs r4, #0x81 movs r5, #2 _0809B340: ldr r0, _0809B354 @ =0x00004026 adds r1, r4, #0 movs r2, #1 bl sub_0800015E subs r5, #1 adds r4, #1 cmp r5, #0 bge _0809B340 pop {r4, r5, pc} .align 2, 0 _0809B354: .4byte 0x00004026 thumb_func_start sub_0809B358 sub_0809B358: @ 0x0809B358 push {r4, r5, r6, lr} adds r1, r0, #0 adds r1, #0x84 ldrb r1, [r1] lsls r1, r1, #1 ldr r2, _0809B388 @ =gUnk_08123D68 adds r5, r1, r2 adds r0, #0x80 ldrh r0, [r0] adds r4, r0, #0 subs r4, #0x82 movs r6, #4 _0809B370: ldrh r0, [r5] adds r1, r4, #0 movs r2, #1 bl sub_0800015E subs r6, #1 adds r4, #1 adds r5, #4 cmp r6, #0 bge _0809B370 pop {r4, r5, r6, pc} .align 2, 0 _0809B388: .4byte gUnk_08123D68 thumb_func_start sub_0809B38C sub_0809B38C: @ 0x0809B38C push {r4, r5, lr} adds r0, #0x80 ldrh r0, [r0] adds r4, r0, #0 subs r4, #0x82 movs r5, #4 _0809B398: adds r0, r4, #0 movs r1, #1 bl sub_0807BA8C subs r5, #1 adds r4, #1 cmp r5, #0 bge _0809B398 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0809B3AC sub_0809B3AC: @ 0x0809B3AC push {lr} ldr r2, _0809B3C0 @ =gUnk_08123D7C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809B3C0: .4byte gUnk_08123D7C thumb_func_start sub_0809B3C4 sub_0809B3C4: @ 0x0809B3C4 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] adds r0, #0x39 bl sub_0807CA84 adds r5, r0, #0 ldrb r0, [r4, #0xb] cmp r0, #3 beq _0809B3E2 cmp r5, #0 beq _0809B3FE bl sub_0805E780 b _0809B3FE _0809B3E2: movs r0, #0x73 bl sub_0807CBD0 cmp r0, #0 beq _0809B3F0 bl sub_0805E780 _0809B3F0: cmp r5, #2 beq _0809B3FE ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] _0809B3FE: adds r1, r4, #0 adds r1, #0x63 movs r0, #3 strb r0, [r1] adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _0809B424 ldrb r0, [r4, #0xb] cmp r0, #0 bne _0809B420 ldrh r0, [r4, #0x32] adds r0, #0x30 strh r0, [r4, #0x32] _0809B420: movs r0, #2 strb r0, [r4, #0xb] _0809B424: adds r0, r4, #0 bl sub_08016A04 ldrb r1, [r4, #0xa] adds r1, #0x39 adds r0, r4, #0 bl sub_080042AC ldrb r1, [r4, #0xb] cmp r1, #1 beq _0809B46C cmp r1, #1 bgt _0809B444 cmp r1, #0 beq _0809B44E b _0809B4A6 _0809B444: cmp r1, #2 beq _0809B488 cmp r1, #3 beq _0809B48E b _0809B4A6 _0809B44E: movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x16 strb r0, [r4, #0xe] movs r0, #2 strb r0, [r4, #0xf] adds r0, r4, #0 adds r0, #0x80 strb r1, [r0] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 b _0809B49E _0809B46C: movs r0, #3 strb r0, [r4, #0xc] ldr r0, _0809B484 @ =gUnk_03000BF0 ldrh r0, [r0, #0xc] subs r0, #0x10 ldrh r1, [r4, #0x32] subs r1, r1, r0 ldrh r0, [r4, #0x36] subs r0, r0, r1 strh r0, [r4, #0x36] b _0809B4A6 .align 2, 0 _0809B484: .4byte gUnk_03000BF0 _0809B488: movs r0, #4 strb r0, [r4, #0xc] b _0809B4A6 _0809B48E: movs r1, #0 movs r0, #5 strb r0, [r4, #0xc] strb r1, [r4, #0xd] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #0xd _0809B49E: ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r2] _0809B4A6: pop {r4, r5, pc} thumb_func_start sub_0809B4A8 sub_0809B4A8: @ 0x0809B4A8 push {r4, lr} adds r4, r0, #0 bl sub_0800445C adds r1, r4, #0 adds r1, #0x80 ldrb r0, [r1] cmp r0, #0 beq _0809B4C0 subs r0, #1 strb r0, [r1] b _0809B520 _0809B4C0: adds r0, r4, #0 bl sub_0809B688 cmp r0, #0 beq _0809B51C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r3, r0, #0x18 cmp r3, #0 bne _0809B520 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] movs r0, #0x40 strh r0, [r4, #0x24] movs r0, #0x10 strb r0, [r4, #0x15] ldr r2, _0809B510 @ =gUnk_03003F80 movs r0, #0x9e strb r0, [r2, #6] movs r0, #5 strb r0, [r2, #0xc] ldr r0, [r2, #0x30] movs r1, #1 orrs r0, r1 str r0, [r2, #0x30] ldr r1, _0809B514 @ =gUnk_03001160 strh r3, [r1, #0x2c] strh r3, [r1, #0x30] ldrb r0, [r1, #0x14] lsls r0, r0, #2 strb r0, [r1, #0x15] ldr r0, _0809B518 @ =0x0000010F bl sub_08004488 b _0809B520 .align 2, 0 _0809B510: .4byte gUnk_03003F80 _0809B514: .4byte gUnk_03001160 _0809B518: .4byte 0x0000010F _0809B51C: movs r0, #0x16 strb r0, [r4, #0xe] _0809B520: pop {r4, pc} .align 2, 0 thumb_func_start sub_0809B524 sub_0809B524: @ 0x0809B524 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xe] subs r0, #1 strb r0, [r2, #0xe] movs r1, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _0809B564 ldrb r0, [r2, #0xf] subs r0, #1 strb r0, [r2, #0xf] ands r0, r1 cmp r0, #0 bne _0809B554 movs r0, #3 strb r0, [r2, #0xc] ldrh r0, [r2, #0x32] adds r0, #0x20 strh r0, [r2, #0x32] ldrh r0, [r2, #0x36] subs r0, #0x20 strh r0, [r2, #0x36] b _0809B564 _0809B554: movs r0, #1 strb r0, [r2, #0xc] movs r0, #0x16 strb r0, [r2, #0xe] adds r1, r2, #0 adds r1, #0x80 movs r0, #0x18 strb r0, [r1] _0809B564: adds r0, r2, #0 bl sub_0806F69C pop {pc} thumb_func_start sub_0809B56C sub_0809B56C: @ 0x0809B56C push {r4, lr} adds r4, r0, #0 movs r1, #0xa0 lsls r1, r1, #6 bl sub_080044EC cmp r0, #1 bne _0809B5B0 movs r2, #4 movs r0, #4 strb r0, [r4, #0xc] adds r3, r4, #0 adds r3, #0x29 ldrb r1, [r3] subs r0, #0xc ands r0, r1 orrs r0, r2 strb r0, [r3] adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _0809B5B0 adds r0, r4, #0 bl sub_0806FAB0 _0809B5B0: pop {r4, pc} .align 2, 0 thumb_func_start sub_0809B5B4 sub_0809B5B4: @ 0x0809B5B4 push {r4, lr} adds r4, r0, #0 ldr r0, _0809B5CC @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _0809B5D0 adds r0, r4, #0 bl sub_0800445C b _0809B5EA .align 2, 0 _0809B5CC: .4byte gUnk_03003F80 _0809B5D0: adds r0, r4, #0 bl sub_08017850 cmp r0, #0 beq _0809B5EA ldrb r0, [r4, #0xa] adds r0, #0x39 movs r1, #0 movs r2, #0 bl sub_080A7C00 bl sub_0805E780 _0809B5EA: pop {r4, pc} thumb_func_start sub_0809B5EC sub_0809B5EC: @ 0x0809B5EC push {r4, r5, lr} adds r4, r0, #0 ldrb r1, [r4, #0x18] lsls r0, r1, #0x1e lsrs r5, r0, #0x1e cmp r5, #1 bne _0809B646 ldrb r0, [r4, #0xd] cmp r0, #0 beq _0809B606 cmp r0, #1 beq _0809B630 b _0809B682 _0809B606: movs r0, #7 movs r1, #0x1a movs r2, #7 bl sub_0805EB00 adds r2, r0, #0 cmp r2, #0 beq _0809B682 movs r0, #0x2e ldrsh r1, [r2, r0] movs r3, #0x2e ldrsh r0, [r4, r3] cmp r1, r0 blt _0809B682 ldrb r0, [r2, #0x14] cmp r0, #4 bne _0809B682 str r2, [r4, #0x50] strb r5, [r4, #0xd] adds r0, r2, #0 b _0809B63E _0809B630: ldr r1, [r4, #0x50] cmp r1, #0 beq _0809B650 ldr r0, [r1, #4] cmp r0, #0 beq _0809B650 adds r0, r1, #0 _0809B63E: adds r1, r4, #0 bl sub_0809B6B0 b _0809B682 _0809B646: ldrb r0, [r4, #0xd] cmp r0, #0 beq _0809B656 cmp r0, #1 beq _0809B668 _0809B650: bl sub_0805E780 b _0809B682 _0809B656: ldrb r0, [r4, #0xa] adds r0, #0x39 bl sub_0807CA84 cmp r0, #2 bne _0809B682 movs r0, #1 strb r0, [r4, #0xd] b _0809B682 _0809B668: ldr r0, _0809B684 @ =gUnk_02000050 ldrb r0, [r0] movs r2, #0x7f ands r2, r0 cmp r2, #0 bne _0809B682 movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] strb r2, [r4, #0xd] _0809B682: pop {r4, r5, pc} .align 2, 0 _0809B684: .4byte gUnk_02000050 thumb_func_start sub_0809B688 sub_0809B688: @ 0x0809B688 push {lr} ldr r1, _0809B6A8 @ =gUnk_03001160 movs r2, #6 movs r3, #0xc bl sub_080041A0 adds r1, r0, #0 cmp r1, #1 bne _0809B6A4 ldr r0, _0809B6AC @ =gUnk_03003F80 ldrb r0, [r0, #0xd] cmp r0, #0x10 beq _0809B6A4 movs r1, #0 _0809B6A4: adds r0, r1, #0 pop {pc} .align 2, 0 _0809B6A8: .4byte gUnk_03001160 _0809B6AC: .4byte gUnk_03003F80 thumb_func_start sub_0809B6B0 sub_0809B6B0: @ 0x0809B6B0 push {r4, lr} adds r4, r1, #0 ldr r2, _0809B6EC @ =gUnk_08123D94 ldrb r1, [r0, #0x14] lsrs r1, r1, #1 adds r1, r1, r2 movs r3, #0 ldrsb r3, [r1, r3] lsls r3, r3, #0x10 adds r1, r4, #0 movs r2, #0 bl sub_0806FA48 ldrb r0, [r4, #0xa] lsls r0, r0, #2 rsbs r0, r0, #0 strh r0, [r4, #0x36] ldrb r0, [r4, #0xa] movs r1, #3 subs r1, r1, r0 adds r4, #0x29 movs r0, #7 ands r1, r0 ldrb r2, [r4] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4] pop {r4, pc} .align 2, 0 _0809B6EC: .4byte gUnk_08123D94 thumb_func_start sub_0809B6F0 sub_0809B6F0: @ 0x0809B6F0 push {lr} ldr r2, _0809B704 @ =gUnk_08123D98 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809B704: .4byte gUnk_08123D98 thumb_func_start sub_0809B708 sub_0809B708: @ 0x0809B708 push {r4, r5, r6, lr} adds r6, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r6, #0xc] ldrb r1, [r6, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r6, #0x18] movs r0, #0x80 strh r0, [r6, #0x24] adds r0, r6, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _0809B73A adds r0, r6, #0 bl sub_0809B7DC bl sub_0805E780 b _0809B78A _0809B73A: ldr r0, _0809B794 @ =0x0000030B movs r2, #0x2e ldrsh r1, [r6, r2] ldr r5, _0809B798 @ =gUnk_03000BF0 ldrh r2, [r5, #6] subs r1, r1, r2 asrs r1, r1, #4 movs r4, #0x3f ands r1, r4 movs r3, #0x32 ldrsh r2, [r6, r3] ldrh r3, [r5, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r4 lsls r2, r2, #6 orrs r1, r2 movs r2, #2 bl sub_0807B7D8 ldr r0, _0809B79C @ =0x00004061 movs r2, #0x2e ldrsh r1, [r6, r2] ldrh r2, [r5, #6] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r4 movs r3, #0x32 ldrsh r2, [r6, r3] ldrh r3, [r5, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r4 lsls r2, r2, #6 orrs r1, r2 adds r2, r6, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E _0809B78A: adds r0, r6, #0 bl sub_0809B7A0 pop {r4, r5, r6, pc} .align 2, 0 _0809B794: .4byte 0x0000030B _0809B798: .4byte gUnk_03000BF0 _0809B79C: .4byte 0x00004061 thumb_func_start sub_0809B7A0 sub_0809B7A0: @ 0x0809B7A0 push {r4, lr} adds r4, r0, #0 bl sub_0809B7C0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _0809B7BC adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 bl sub_0805E780 _0809B7BC: pop {r4, pc} .align 2, 0 thumb_func_start sub_0809B7C0 sub_0809B7C0: @ 0x0809B7C0 push {r4, lr} adds r4, r0, #0 bl sub_080002A0 ldr r1, _0809B7D8 @ =0xFFFFBF9F adds r0, r0, r1 cmp r0, #1 bls _0809B7D6 adds r0, r4, #0 bl sub_0809B7DC _0809B7D6: pop {r4, pc} .align 2, 0 _0809B7D8: .4byte 0xFFFFBF9F thumb_func_start sub_0809B7DC sub_0809B7DC: @ 0x0809B7DC push {r4, r5, r6, lr} adds r6, r0, #0 movs r0, #0xc3 lsls r0, r0, #2 movs r2, #0x2e ldrsh r1, [r6, r2] ldr r5, _0809B838 @ =gUnk_03000BF0 ldrh r2, [r5, #6] subs r1, r1, r2 asrs r1, r1, #4 movs r4, #0x3f ands r1, r4 movs r3, #0x32 ldrsh r2, [r6, r3] ldrh r3, [r5, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r4 lsls r2, r2, #6 orrs r1, r2 movs r2, #2 bl sub_0807B7D8 ldr r0, _0809B83C @ =0x00004062 movs r2, #0x2e ldrsh r1, [r6, r2] ldrh r2, [r5, #6] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r4 movs r3, #0x32 ldrsh r2, [r6, r3] ldrh r3, [r5, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r4 lsls r2, r2, #6 orrs r1, r2 adds r2, r6, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E movs r0, #1 strb r0, [r6, #0xe] pop {r4, r5, r6, pc} .align 2, 0 _0809B838: .4byte gUnk_03000BF0 _0809B83C: .4byte 0x00004062 thumb_func_start sub_0809B840 sub_0809B840: @ 0x0809B840 push {lr} ldr r2, _0809B854 @ =gUnk_08123DA0 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809B854: .4byte gUnk_08123DA0 thumb_func_start sub_0809B858 sub_0809B858: @ 0x0809B858 push {r4, r5, lr} adds r4, r0, #0 movs r1, #0x1e bl sub_0805E4E0 ldrb r3, [r4, #0xc] cmp r3, #1 beq _0809B8CC cmp r3, #1 bgt _0809B872 cmp r3, #0 beq _0809B878 b _0809B972 _0809B872: cmp r3, #2 beq _0809B948 b _0809B972 _0809B878: movs r1, #1 strb r1, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] strb r3, [r4, #0xf] ldr r0, _0809B8BC @ =gUnk_03000BF0 str r4, [r0, #0x30] strb r1, [r0, #0xe] ldr r5, _0809B8C0 @ =gUnk_03001160 movs r0, #0x2e ldrsh r1, [r4, r0] movs r2, #0x2e ldrsh r0, [r5, r2] movs r2, #6 cmp r1, r0 ble _0809B89A movs r2, #2 _0809B89A: strb r2, [r5, #0x14] ldr r2, _0809B8C4 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0809B8C8 @ =0x0000BFFF ands r0, r1 movs r4, #0xa0 lsls r4, r4, #6 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] adds r0, r2, #0 adds r0, #0x58 strh r3, [r0] adds r2, #0x5c movs r0, #0xa0 strh r0, [r2] b _0809B972 .align 2, 0 _0809B8BC: .4byte gUnk_03000BF0 _0809B8C0: .4byte gUnk_03001160 _0809B8C4: .4byte gUnk_03000F50 _0809B8C8: .4byte 0x0000BFFF _0809B8CC: ldrb r0, [r4, #0xe] cmp r0, #0 beq _0809B8D8 subs r0, #1 strb r0, [r4, #0xe] b _0809B972 _0809B8D8: ldrb r0, [r4, #0xf] cmp r0, #0x1f bhi _0809B914 ldr r5, _0809B90C @ =gUnk_030010A0 ldr r0, [r5] movs r1, #0x1f ands r0, r1 cmp r0, #0 bne _0809B8F0 ldr r0, _0809B910 @ =0x00000133 bl sub_080A3268 _0809B8F0: ldr r0, [r5] movs r1, #3 ands r0, r1 cmp r0, #0 bne _0809B972 ldrb r1, [r4, #0xf] adds r1, #1 strb r1, [r4, #0xf] lsls r1, r1, #0x18 lsrs r1, r1, #0x18 adds r0, r4, #0 bl sub_0809B97C b _0809B972 .align 2, 0 _0809B90C: .4byte gUnk_030010A0 _0809B910: .4byte 0x00000133 _0809B914: movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] ldr r2, _0809B938 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0809B93C @ =0x0000DFFF ands r0, r1 strh r0, [r2] ldr r1, _0809B940 @ =gUnk_03000BF0 ldr r0, _0809B944 @ =gUnk_03001160 str r0, [r1, #0x30] movs r0, #0x9a lsls r0, r0, #1 bl sub_080A3268 b _0809B972 .align 2, 0 _0809B938: .4byte gUnk_03000F50 _0809B93C: .4byte 0x0000DFFF _0809B940: .4byte gUnk_03000BF0 _0809B944: .4byte gUnk_03001160 _0809B948: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0809B972 ldr r2, _0809B974 @ =gUnk_03000F50 ldrh r1, [r2] movs r3, #0x90 lsls r3, r3, #7 adds r0, r3, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0809B978 @ =gUnk_03000BF0 movs r0, #4 strb r0, [r1, #0xe] ldr r1, [r4, #0x50] movs r0, #1 strb r0, [r1, #0xd] bl sub_0805E780 _0809B972: pop {r4, r5, pc} .align 2, 0 _0809B974: .4byte gUnk_03000F50 _0809B978: .4byte gUnk_03000BF0 thumb_func_start sub_0809B97C sub_0809B97C: @ 0x0809B97C push {lr} movs r3, #0x2e ldrsh r2, [r0, r3] ldr r0, _0809B9B4 @ =gUnk_03000BF0 movs r3, #0xa ldrsh r0, [r0, r3] subs r2, r2, r0 subs r0, r2, r1 adds r2, r2, r1 cmp r0, #0 bge _0809B994 movs r0, #0 _0809B994: cmp r0, #0xf0 ble _0809B99A movs r0, #0xf0 _0809B99A: cmp r2, #0 bge _0809B9A0 movs r2, #0 _0809B9A0: cmp r2, #0xf0 ble _0809B9A6 movs r2, #0xf0 _0809B9A6: ldr r1, _0809B9B8 @ =gUnk_03000F50 lsls r0, r0, #8 orrs r0, r2 adds r1, #0x58 strh r0, [r1] pop {pc} .align 2, 0 _0809B9B4: .4byte gUnk_03000BF0 _0809B9B8: .4byte gUnk_03000F50 thumb_func_start sub_0809B9BC sub_0809B9BC: @ 0x0809B9BC push {r4, r5, lr} adds r4, r0, #0 movs r1, #0x1e bl sub_0805E4E0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _0809BA34 cmp r0, #1 bgt _0809B9D6 cmp r0, #0 beq _0809B9DC b _0809BAC2 _0809B9D6: cmp r0, #2 beq _0809BA9C b _0809BAC2 _0809B9DC: movs r1, #1 strb r1, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] movs r0, #0x20 strb r0, [r4, #0xf] ldr r0, _0809BA24 @ =gUnk_03000BF0 str r4, [r0, #0x30] strb r1, [r0, #0xe] ldr r3, _0809BA28 @ =gUnk_03001160 movs r0, #0x2e ldrsh r1, [r4, r0] movs r2, #0x2e ldrsh r0, [r3, r2] movs r2, #6 cmp r1, r0 ble _0809BA00 movs r2, #2 _0809BA00: strb r2, [r3, #0x14] ldr r2, _0809BA2C @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0809BA30 @ =0x0000BFFF ands r0, r1 movs r3, #0x80 lsls r3, r3, #6 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] adds r1, r2, #0 adds r1, #0x58 movs r0, #0xf0 strh r0, [r1] adds r2, #0x5c movs r0, #0xa0 strh r0, [r2] b _0809BAC2 .align 2, 0 _0809BA24: .4byte gUnk_03000BF0 _0809BA28: .4byte gUnk_03001160 _0809BA2C: .4byte gUnk_03000F50 _0809BA30: .4byte 0x0000BFFF _0809BA34: ldrb r0, [r4, #0xe] cmp r0, #0 beq _0809BA40 subs r0, #1 strb r0, [r4, #0xe] b _0809BAC2 _0809BA40: ldrb r0, [r4, #0xf] cmp r0, #0 beq _0809BA7C ldr r5, _0809BA74 @ =gUnk_030010A0 ldr r0, [r5] movs r1, #0x1f ands r0, r1 cmp r0, #0 bne _0809BA58 ldr r0, _0809BA78 @ =0x00000133 bl sub_080A3268 _0809BA58: ldr r0, [r5] movs r1, #3 ands r0, r1 cmp r0, #0 bne _0809BAC2 ldrb r1, [r4, #0xf] subs r1, #1 strb r1, [r4, #0xf] lsls r1, r1, #0x18 lsrs r1, r1, #0x18 adds r0, r4, #0 bl sub_0809B97C b _0809BAC2 .align 2, 0 _0809BA74: .4byte gUnk_030010A0 _0809BA78: .4byte 0x00000133 _0809BA7C: movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] ldr r1, _0809BA94 @ =gUnk_03000BF0 ldr r0, _0809BA98 @ =gUnk_03001160 str r0, [r1, #0x30] movs r0, #0x9a lsls r0, r0, #1 bl sub_080A3268 b _0809BAC2 .align 2, 0 _0809BA94: .4byte gUnk_03000BF0 _0809BA98: .4byte gUnk_03001160 _0809BA9C: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0809BAC2 ldr r1, _0809BAC4 @ =gUnk_03000BF0 movs r0, #4 strb r0, [r1, #0xe] ldr r2, _0809BAC8 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0809BACC @ =0x0000D7FF ands r0, r1 strh r0, [r2] ldr r1, [r4, #0x50] movs r0, #1 strb r0, [r1, #0xd] bl sub_0805E780 _0809BAC2: pop {r4, r5, pc} .align 2, 0 _0809BAC4: .4byte gUnk_03000BF0 _0809BAC8: .4byte gUnk_03000F50 _0809BACC: .4byte 0x0000D7FF thumb_func_start sub_0809BAD0 sub_0809BAD0: @ 0x0809BAD0 push {r4, r5, lr} adds r4, r0, #0 movs r1, #0xa bl sub_0805E4E0 ldrb r0, [r4, #0xc] cmp r0, #4 bls _0809BAE2 b _0809BC68 _0809BAE2: lsls r0, r0, #2 ldr r1, _0809BAEC @ =_0809BAF0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809BAEC: .4byte _0809BAF0 _0809BAF0: @ jump table .4byte _0809BB04 @ case 0 .4byte _0809BB4C @ case 1 .4byte _0809BBF8 @ case 2 .4byte _0809BC24 @ case 3 .4byte _0809BC48 @ case 4 _0809BB04: ldrb r0, [r4, #0xc] adds r0, #1 movs r1, #0 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] strb r1, [r4, #0xf] ldr r1, _0809BB40 @ =gUnk_03000BF0 str r4, [r1, #0x30] movs r0, #1 strb r0, [r1, #0xe] ldr r3, _0809BB44 @ =gUnk_03001160 movs r0, #0x2e ldrsh r1, [r4, r0] movs r2, #0x2e ldrsh r0, [r3, r2] movs r2, #6 cmp r1, r0 ble _0809BB2C movs r2, #2 _0809BB2C: strb r2, [r3, #0x14] ldr r1, _0809BB48 @ =gUnk_03000F50 adds r2, r1, #0 adds r2, #0x58 movs r0, #0x60 strh r0, [r2] adds r1, #0x5c movs r0, #0xa0 strh r0, [r1] b _0809BC68 .align 2, 0 _0809BB40: .4byte gUnk_03000BF0 _0809BB44: .4byte gUnk_03001160 _0809BB48: .4byte gUnk_03000F50 _0809BB4C: adds r0, r4, #0 bl sub_0809BE78 cmp r0, #0 bne _0809BB58 b _0809BC68 _0809BB58: ldrb r0, [r4, #0xe] cmp r0, #0 beq _0809BB88 subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 beq _0809BB6A b _0809BC68 _0809BB6A: ldr r2, _0809BB80 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0809BB84 @ =0x0000BFFF ands r0, r1 movs r3, #0xa0 lsls r3, r3, #6 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] b _0809BC68 .align 2, 0 _0809BB80: .4byte gUnk_03000F50 _0809BB84: .4byte 0x0000BFFF _0809BB88: ldr r2, _0809BBB8 @ =gUnk_03000F50 adds r5, r2, #0 adds r5, #0x58 ldrh r0, [r5] cmp r0, #0xdf bhi _0809BBC4 ldr r4, _0809BBBC @ =gUnk_030010A0 ldr r0, [r4] movs r1, #0x1f ands r0, r1 cmp r0, #0 bne _0809BBA6 ldr r0, _0809BBC0 @ =0x00000133 bl sub_080A3268 _0809BBA6: ldr r0, [r4] movs r1, #1 ands r0, r1 cmp r0, #0 bne _0809BC68 ldrh r0, [r5] adds r0, #1 strh r0, [r5] b _0809BC68 .align 2, 0 _0809BBB8: .4byte gUnk_03000F50 _0809BBBC: .4byte gUnk_030010A0 _0809BBC0: .4byte 0x00000133 _0809BBC4: movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] ldrh r1, [r2] ldr r0, _0809BBF4 @ =0x0000DFFF ands r0, r1 movs r3, #0x90 lsls r3, r3, #7 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldrh r0, [r4, #0x2e] adds r0, #0x68 strh r0, [r4, #0x2e] ldrh r0, [r4, #0x32] adds r0, #0x28 strh r0, [r4, #0x32] movs r0, #0x9a lsls r0, r0, #1 bl sub_080A3268 b _0809BC68 .align 2, 0 _0809BBF4: .4byte 0x0000DFFF _0809BBF8: adds r0, r4, #0 bl sub_0809BE78 cmp r0, #0 beq _0809BC68 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0809BC68 movs r0, #0x78 strb r0, [r4, #0xe] movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x35 bl sub_0807CCB4 movs r0, #0x72 bl sub_080A3268 b _0809BC68 _0809BC24: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0809BC68 movs r0, #4 strb r0, [r4, #0xc] ldr r1, _0809BC40 @ =gUnk_03000BF0 ldr r0, _0809BC44 @ =gUnk_03001160 str r0, [r1, #0x30] movs r0, #2 strb r0, [r1, #0xe] b _0809BC68 .align 2, 0 _0809BC40: .4byte gUnk_03000BF0 _0809BC44: .4byte gUnk_03001160 _0809BC48: adds r0, r4, #0 bl sub_0809BE78 cmp r0, #0 beq _0809BC68 ldr r1, _0809BC6C @ =gUnk_03000BF0 movs r0, #4 strb r0, [r1, #0xe] ldr r1, [r4, #0x50] movs r0, #1 strb r0, [r1, #0xd] movs r0, #0x64 bl sub_0807CD10 bl sub_0805E780 _0809BC68: pop {r4, r5, pc} .align 2, 0 _0809BC6C: .4byte gUnk_03000BF0 thumb_func_start sub_0809BC70 sub_0809BC70: @ 0x0809BC70 push {r4, r5, r6, lr} adds r4, r0, #0 movs r1, #0x1e bl sub_0805E4E0 ldrb r5, [r4, #0xc] cmp r5, #1 beq _0809BCDC cmp r5, #1 bgt _0809BC8A cmp r5, #0 beq _0809BC92 b _0809BDAE _0809BC8A: cmp r5, #2 bne _0809BC90 b _0809BD98 _0809BC90: b _0809BDAE _0809BC92: movs r1, #1 strb r1, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] strb r5, [r4, #0xf] ldr r0, _0809BCCC @ =gUnk_03000BF0 str r4, [r0, #0x30] strb r1, [r0, #0xe] ldr r3, _0809BCD0 @ =gUnk_03001160 movs r0, #0x2e ldrsh r1, [r4, r0] movs r2, #0x2e ldrsh r0, [r3, r2] movs r2, #6 cmp r1, r0 ble _0809BCB4 movs r2, #2 _0809BCB4: strb r2, [r3, #0x14] ldr r1, _0809BCD4 @ =gUnk_03000F50 adds r2, r1, #0 adds r2, #0x58 ldr r0, _0809BCD8 @ =0x000080F0 strh r0, [r2] adds r1, #0x5c movs r0, #0xa0 strh r0, [r1] movs r0, #0x80 strb r0, [r4, #0xd] b _0809BDAE .align 2, 0 _0809BCCC: .4byte gUnk_03000BF0 _0809BCD0: .4byte gUnk_03001160 _0809BCD4: .4byte gUnk_03000F50 _0809BCD8: .4byte 0x000080F0 _0809BCDC: adds r0, r4, #0 bl sub_0809BE78 cmp r0, #0 beq _0809BDAE ldrb r0, [r4, #0xe] cmp r0, #0 beq _0809BD20 subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0809BDAE movs r0, #6 movs r1, #8 bl sub_08050054 movs r0, #3 bl sub_0805AAF0 ldr r2, _0809BD18 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0809BD1C @ =0x0000BFFF ands r0, r1 movs r3, #0xa0 lsls r3, r3, #6 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] b _0809BDAE .align 2, 0 _0809BD18: .4byte gUnk_03000F50 _0809BD1C: .4byte 0x0000BFFF _0809BD20: ldrb r0, [r4, #0xd] cmp r0, #0 beq _0809BD64 ldr r6, _0809BD58 @ =gUnk_030010A0 ldr r0, [r6] movs r1, #0x1f ands r0, r1 cmp r0, #0 bne _0809BD38 ldr r0, _0809BD5C @ =0x00000133 bl sub_080A3268 _0809BD38: ldr r0, [r6] ands r0, r5 cmp r0, #0 bne _0809BDAE ldrb r0, [r4, #0xd] subs r0, #1 strb r0, [r4, #0xd] ldr r1, _0809BD60 @ =gUnk_03000F50 ldrb r0, [r4, #0xd] lsls r0, r0, #8 movs r2, #0xf0 adds r1, #0x58 orrs r0, r2 strh r0, [r1] b _0809BDAE .align 2, 0 _0809BD58: .4byte gUnk_030010A0 _0809BD5C: .4byte 0x00000133 _0809BD60: .4byte gUnk_03000F50 _0809BD64: movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xe] ldr r2, _0809BD90 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0809BD94 @ =0x0000DFFF ands r0, r1 movs r3, #0x90 lsls r3, r3, #7 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] movs r0, #0x37 bl sub_0807CCB4 movs r0, #0x9a lsls r0, r0, #1 bl sub_080A3268 b _0809BDAE .align 2, 0 _0809BD90: .4byte gUnk_03000F50 _0809BD94: .4byte 0x0000DFFF _0809BD98: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0809BDAE ldr r1, [r4, #0x50] movs r0, #1 strb r0, [r1, #0xd] bl sub_0805E780 _0809BDAE: pop {r4, r5, r6, pc} thumb_func_start sub_0809BDB0 sub_0809BDB0: @ 0x0809BDB0 push {r4, lr} adds r4, r0, #0 movs r1, #0x1e bl sub_0805E4E0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _0809BE00 cmp r0, #1 bgt _0809BDCA cmp r0, #0 beq _0809BDD0 b _0809BE70 _0809BDCA: cmp r0, #2 beq _0809BE54 b _0809BE70 _0809BDD0: movs r1, #1 strb r1, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] movs r0, #0x80 strb r0, [r4, #0xf] ldr r0, _0809BDF8 @ =gUnk_03000BF0 str r4, [r0, #0x30] strb r1, [r0, #0xe] ldr r3, _0809BDFC @ =gUnk_03001160 movs r0, #0x2e ldrsh r1, [r4, r0] movs r2, #0x2e ldrsh r0, [r3, r2] movs r2, #6 cmp r1, r0 ble _0809BDF4 movs r2, #2 _0809BDF4: strb r2, [r3, #0x14] b _0809BE70 .align 2, 0 _0809BDF8: .4byte gUnk_03000BF0 _0809BDFC: .4byte gUnk_03001160 _0809BE00: ldrb r0, [r4, #0xe] cmp r0, #0 beq _0809BE0C subs r0, #1 strb r0, [r4, #0xe] b _0809BE70 _0809BE0C: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 beq _0809BE34 ldr r0, _0809BE2C @ =gUnk_030010A0 ldr r0, [r0] movs r1, #0x1f ands r0, r1 cmp r0, #0 bne _0809BE70 ldr r0, _0809BE30 @ =0x00000133 bl sub_080A3268 b _0809BE70 .align 2, 0 _0809BE2C: .4byte gUnk_030010A0 _0809BE30: .4byte 0x00000133 _0809BE34: movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] ldr r1, _0809BE4C @ =gUnk_03000BF0 ldr r0, _0809BE50 @ =gUnk_03001160 str r0, [r1, #0x30] movs r0, #0x9a lsls r0, r0, #1 bl sub_080A3268 b _0809BE70 .align 2, 0 _0809BE4C: .4byte gUnk_03000BF0 _0809BE50: .4byte gUnk_03001160 _0809BE54: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0809BE70 ldr r1, _0809BE74 @ =gUnk_03000BF0 movs r0, #4 strb r0, [r1, #0xe] ldr r1, [r4, #0x50] movs r0, #1 strb r0, [r1, #0xd] bl sub_0805E780 _0809BE70: pop {r4, pc} .align 2, 0 _0809BE74: .4byte gUnk_03000BF0 thumb_func_start sub_0809BE78 sub_0809BE78: @ 0x0809BE78 push {r4, r5, lr} adds r3, r0, #0 movs r5, #0 adds r0, #0x68 ldrh r2, [r0] ldr r0, _0809BEB0 @ =gUnk_03000BF0 movs r4, #0xa ldrsh r1, [r0, r4] adds r4, r0, #0 cmp r2, r1 bne _0809BE9E adds r0, r3, #0 adds r0, #0x6a ldrh r1, [r0] movs r2, #0xc ldrsh r0, [r4, r2] cmp r1, r0 bne _0809BE9E movs r5, #1 _0809BE9E: ldrh r1, [r4, #0xa] adds r0, r3, #0 adds r0, #0x68 strh r1, [r0] ldrh r1, [r4, #0xc] adds r0, #2 strh r1, [r0] adds r0, r5, #0 pop {r4, r5, pc} .align 2, 0 _0809BEB0: .4byte gUnk_03000BF0 thumb_func_start sub_0809BEB4 sub_0809BEB4: @ 0x0809BEB4 push {lr} ldr r2, _0809BEC8 @ =gUnk_08123DB4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809BEC8: .4byte gUnk_08123DB4 thumb_func_start sub_0809BECC sub_0809BECC: @ 0x0809BECC push {r4, lr} adds r4, r0, #0 movs r0, #0x9b bl sub_0807CBE4 cmp r0, #0 beq _0809BEDE bl sub_0805E780 _0809BEDE: movs r0, #0x91 movs r1, #0 movs r2, #0 bl sub_080A2960 str r0, [r4, #0x54] cmp r0, #0 beq _0809BF1A movs r2, #0 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x11] subs r0, #0x11 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r4, #0x11] strb r2, [r4, #0x1e] ldrb r0, [r4, #0x19] orrs r0, r1 strb r0, [r4, #0x19] adds r0, r4, #0 bl sub_0809C0A8 adds r0, r4, #0 movs r1, #0xcc movs r2, #0xcc movs r3, #0 bl sub_0805EC9C _0809BF1A: pop {r4, pc} thumb_func_start sub_0809BF1C sub_0809BF1C: @ 0x0809BF1C push {r4, lr} adds r4, r0, #0 movs r1, #0xcc movs r2, #0xcc movs r3, #0 bl sub_0805EC9C movs r0, #0x37 bl sub_0807CBE4 cmp r0, #0 beq _0809BF6C movs r0, #0x90 movs r1, #0 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _0809BF6C ldr r0, _0809BF70 @ =gUnk_03000BF0 str r1, [r0, #0x30] ldr r0, [r4, #0x54] str r1, [r0, #0x54] movs r3, #0x80 lsls r3, r3, #0xb adds r0, r4, #0 movs r2, #0 bl sub_0806FA48 movs r0, #2 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x74 movs r0, #0xa0 lsls r0, r0, #1 strh r0, [r1] adds r0, #0x73 bl sub_08004488 _0809BF6C: pop {r4, pc} .align 2, 0 _0809BF70: .4byte gUnk_03000BF0 thumb_func_start sub_0809BF74 sub_0809BF74: @ 0x0809BF74 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r5, r7, #0 adds r5, #0x74 ldrh r0, [r5] subs r1, r0, #1 strh r1, [r5] lsls r0, r1, #0x10 cmp r0, #0 bne _0809BFA0 ldr r1, [r7, #0x54] movs r0, #1 strb r0, [r1, #0xf] adds r0, r7, #0 bl sub_0809C23C movs r0, #0x9b bl sub_0807CBE4 bl sub_0805E780 b _0809C09A _0809BFA0: movs r0, #0x1f ands r1, r0 cmp r1, #0 bne _0809BFAE ldr r0, _0809C09C @ =0x000001B3 bl sub_08004488 _0809BFAE: ldrh r0, [r5] cmp r0, #0x77 bhi _0809BFE0 movs r1, #0x78 subs r1, r1, r0 lsls r4, r1, #5 adds r4, #0xcc lsls r1, r1, #4 adds r1, #0xcc adds r0, r7, #0 adds r2, r4, #0 movs r3, #0 bl sub_0805EC9C adds r0, r7, #0 adds r1, r4, #0 movs r2, #8 movs r3, #0 bl sub_0806FCF4 adds r1, r7, #0 adds r1, #0x63 ldrb r0, [r1] adds r0, #8 strb r0, [r1] _0809BFE0: ldr r1, _0809C0A0 @ =gUnk_08123DC0 ldrh r0, [r5] lsrs r0, r0, #5 adds r0, r0, r1 ldrb r6, [r0] movs r0, #0xf movs r1, #0x11 movs r2, #0x40 bl sub_080A2960 adds r5, r0, #0 cmp r5, #0 beq _0809C044 bl sub_08000E50 adds r4, r0, #0 asrs r0, r4, #0x10 ands r0, r6 adds r2, r6, #1 lsrs r1, r2, #1 subs r0, r0, r1 mov ip, r0 lsrs r0, r6, #1 ands r0, r4 lsrs r2, r2, #2 subs r4, r0, r2 adds r2, r5, #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] adds r1, r7, #0 adds r1, #0x80 ldr r2, _0809C0A4 @ =gUnk_03000BF0 ldrh r0, [r2, #6] ldrh r1, [r1] adds r0, r0, r1 add r0, ip strh r0, [r5, #0x2e] adds r1, r7, #0 adds r1, #0x82 ldrh r0, [r2, #8] ldrh r1, [r1] adds r0, r0, r1 adds r0, r0, r4 strh r0, [r5, #0x32] _0809C044: movs r0, #0xf movs r1, #2 movs r2, #0x40 bl sub_080A2960 adds r5, r0, #0 cmp r5, #0 beq _0809C09A bl sub_08000E50 adds r4, r0, #0 asrs r1, r4, #0x10 ands r1, r6 adds r0, r6, #1 lsrs r0, r0, #1 subs r1, r1, r0 mov ip, r1 lsrs r3, r6, #1 ands r3, r4 adds r2, r5, #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] adds r1, r7, #0 adds r1, #0x80 ldr r2, _0809C0A4 @ =gUnk_03000BF0 ldrh r0, [r2, #6] ldrh r1, [r1] adds r0, r0, r1 add r0, ip strh r0, [r5, #0x2e] adds r1, r7, #0 adds r1, #0x82 ldrh r0, [r2, #8] ldrh r1, [r1] adds r0, r0, r1 adds r0, r0, r3 strh r0, [r5, #0x32] _0809C09A: pop {r4, r5, r6, r7, pc} .align 2, 0 _0809C09C: .4byte 0x000001B3 _0809C0A0: .4byte gUnk_08123DC0 _0809C0A4: .4byte gUnk_03000BF0 thumb_func_start sub_0809C0A8 sub_0809C0A8: @ 0x0809C0A8 push {r4, r5, r6, lr} adds r4, r0, #0 movs r1, #0x2e ldrsh r0, [r4, r1] ldr r3, _0809C214 @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r0, r0, r1 asrs r6, r0, #4 movs r2, #0x3f ands r6, r2 movs r1, #0x32 ldrsh r0, [r4, r1] ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r6, r0 ldr r5, _0809C218 @ =0x00004022 adds r1, r6, #0 subs r1, #0x41 adds r4, #0x38 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E adds r1, r6, #0 subs r1, #0x40 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E adds r1, r6, #0 subs r1, #0x3f ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E subs r1, r6, #2 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E subs r1, r6, #1 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldrb r2, [r4] adds r0, r5, #0 adds r1, r6, #0 bl sub_0800015E adds r1, r6, #1 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E adds r1, r6, #2 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E adds r1, r6, #0 adds r1, #0x3e ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E adds r1, r6, #0 adds r1, #0x3f ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E adds r1, r6, #0 adds r1, #0x40 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E adds r1, r6, #0 adds r1, #0x41 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E adds r1, r6, #0 adds r1, #0x42 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E adds r1, r6, #0 adds r1, #0x7f ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E adds r1, r6, #0 adds r1, #0x80 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E adds r1, r6, #0 adds r1, #0x81 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldr r0, _0809C21C @ =0x0000013F adds r1, r6, r0 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E movs r0, #0xa0 lsls r0, r0, #1 adds r1, r6, r0 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldr r0, _0809C220 @ =0x00000141 adds r1, r6, r0 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldr r0, _0809C224 @ =0x0000017F adds r1, r6, r0 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldr r0, _0809C228 @ =0x00000181 adds r1, r6, r0 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldr r0, _0809C22C @ =0x000001BD adds r1, r6, r0 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E movs r0, #0xdf lsls r0, r0, #1 adds r1, r6, r0 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldr r0, _0809C230 @ =0x000001BF adds r1, r6, r0 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldr r0, _0809C234 @ =0x000001C1 adds r1, r6, r0 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E movs r0, #0xe1 lsls r0, r0, #1 adds r1, r6, r0 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldr r0, _0809C238 @ =0x000001C3 adds r1, r6, r0 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 _0809C214: .4byte gUnk_03000BF0 _0809C218: .4byte 0x00004022 _0809C21C: .4byte 0x0000013F _0809C220: .4byte 0x00000141 _0809C224: .4byte 0x0000017F _0809C228: .4byte 0x00000181 _0809C22C: .4byte 0x000001BD _0809C230: .4byte 0x000001BF _0809C234: .4byte 0x000001C1 _0809C238: .4byte 0x000001C3 thumb_func_start sub_0809C23C sub_0809C23C: @ 0x0809C23C push {r4, r5, lr} adds r4, r0, #0 movs r1, #0x2e ldrsh r0, [r4, r1] ldr r3, _0809C370 @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r0, r0, r1 asrs r5, r0, #4 movs r2, #0x3f ands r5, r2 movs r1, #0x32 ldrsh r0, [r4, r1] ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r5, r0 adds r0, r5, #0 subs r0, #0x41 adds r4, #0x38 ldrb r1, [r4] bl sub_0807BA8C adds r0, r5, #0 subs r0, #0x40 ldrb r1, [r4] bl sub_0807BA8C adds r0, r5, #0 subs r0, #0x3f ldrb r1, [r4] bl sub_0807BA8C subs r0, r5, #2 ldrb r1, [r4] bl sub_0807BA8C subs r0, r5, #1 ldrb r1, [r4] bl sub_0807BA8C ldrb r1, [r4] adds r0, r5, #0 bl sub_0807BA8C adds r0, r5, #1 ldrb r1, [r4] bl sub_0807BA8C adds r0, r5, #2 ldrb r1, [r4] bl sub_0807BA8C adds r0, r5, #0 adds r0, #0x3e ldrb r1, [r4] bl sub_0807BA8C adds r0, r5, #0 adds r0, #0x3f ldrb r1, [r4] bl sub_0807BA8C adds r0, r5, #0 adds r0, #0x40 ldrb r1, [r4] bl sub_0807BA8C adds r0, r5, #0 adds r0, #0x41 ldrb r1, [r4] bl sub_0807BA8C adds r0, r5, #0 adds r0, #0x42 ldrb r1, [r4] bl sub_0807BA8C adds r0, r5, #0 adds r0, #0x7f ldrb r1, [r4] bl sub_0807BA8C adds r0, r5, #0 adds r0, #0x80 ldrb r1, [r4] bl sub_0807BA8C adds r0, r5, #0 adds r0, #0x81 ldrb r1, [r4] bl sub_0807BA8C ldr r1, _0809C374 @ =0x0000013F adds r0, r5, r1 ldrb r1, [r4] bl sub_0807BA8C movs r1, #0xa0 lsls r1, r1, #1 adds r0, r5, r1 ldrb r1, [r4] bl sub_0807BA8C ldr r1, _0809C378 @ =0x00000141 adds r0, r5, r1 ldrb r1, [r4] bl sub_0807BA8C ldr r1, _0809C37C @ =0x0000017F adds r0, r5, r1 ldrb r1, [r4] bl sub_0807BA8C ldr r1, _0809C380 @ =0x00000181 adds r0, r5, r1 ldrb r1, [r4] bl sub_0807BA8C ldr r1, _0809C384 @ =0x000001BD adds r0, r5, r1 ldrb r1, [r4] bl sub_0807BA8C movs r1, #0xdf lsls r1, r1, #1 adds r0, r5, r1 ldrb r1, [r4] bl sub_0807BA8C ldr r1, _0809C388 @ =0x000001BF adds r0, r5, r1 ldrb r1, [r4] bl sub_0807BA8C ldr r1, _0809C38C @ =0x000001C1 adds r0, r5, r1 ldrb r1, [r4] bl sub_0807BA8C movs r1, #0xe1 lsls r1, r1, #1 adds r0, r5, r1 ldrb r1, [r4] bl sub_0807BA8C ldr r1, _0809C390 @ =0x000001C3 adds r0, r5, r1 ldrb r1, [r4] bl sub_0807BA8C pop {r4, r5, pc} .align 2, 0 _0809C370: .4byte gUnk_03000BF0 _0809C374: .4byte 0x0000013F _0809C378: .4byte 0x00000141 _0809C37C: .4byte 0x0000017F _0809C380: .4byte 0x00000181 _0809C384: .4byte 0x000001BD _0809C388: .4byte 0x000001BF _0809C38C: .4byte 0x000001C1 _0809C390: .4byte 0x000001C3 thumb_func_start sub_0809C394 sub_0809C394: @ 0x0809C394 push {lr} ldr r2, _0809C3A8 @ =gUnk_08123DCC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809C3A8: .4byte gUnk_08123DCC thumb_func_start sub_0809C3AC sub_0809C3AC: @ 0x0809C3AC movs r2, #0 movs r1, #1 strb r1, [r0, #0xc] strb r2, [r0, #0x1e] adds r0, #0x29 ldrb r2, [r0] subs r1, #9 ands r1, r2 movs r2, #5 orrs r1, r2 strb r1, [r0] bx lr thumb_func_start nullsub_536 nullsub_536: @ 0x0809C3C4 bx lr .align 2, 0 thumb_func_start sub_0809C3C8 sub_0809C3C8: @ 0x0809C3C8 push {r4, lr} adds r4, r0, #0 ldr r1, _0809C3E8 @ =gUnk_08123DD4 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldrb r0, [r4, #0x19] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x19] pop {r4, pc} .align 2, 0 _0809C3E8: .4byte gUnk_08123DD4 thumb_func_start sub_0809C3EC sub_0809C3EC: @ 0x0809C3EC push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xa] cmp r0, #7 bls _0809C400 b _0809C5A4 _0809C400: lsls r0, r0, #2 ldr r1, _0809C40C @ =_0809C410 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809C40C: .4byte _0809C410 _0809C410: @ jump table .4byte _0809C430 @ case 0 .4byte _0809C53E @ case 1 .4byte _0809C53E @ case 2 .4byte _0809C53E @ case 3 .4byte _0809C53E @ case 4 .4byte _0809C586 @ case 5 .4byte _0809C440 @ case 6 .4byte _0809C5BA @ case 7 _0809C430: adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 adds r1, r4, #0 adds r1, #0x7e movs r0, #0 strh r0, [r1] _0809C440: movs r0, #1 strb r0, [r4, #0xe] movs r0, #0x10 strb r0, [r4, #0x15] adds r1, r4, #0 adds r1, #0x79 movs r0, #0xf0 strb r0, [r1] ldr r1, _0809C4B4 @ =gUnk_03000BF0 movs r2, #0x84 lsls r2, r2, #1 adds r0, r2, #0 ldrh r2, [r1, #6] adds r0, r0, r2 strh r0, [r4, #0x2e] movs r2, #0xb4 lsls r2, r2, #1 adds r0, r2, #0 ldrh r1, [r1, #8] adds r0, r0, r1 strh r0, [r4, #0x32] ldrb r0, [r4, #0x19] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x19] adds r0, r4, #0 adds r0, #0x76 movs r1, #0xa0 strh r1, [r0] subs r0, #2 strh r1, [r0] adds r1, r4, #0 adds r1, #0x7b movs r0, #0x80 strb r0, [r1] ldrb r0, [r4, #0xa] cmp r0, #0 bne _0809C52E subs r1, #0x19 movs r0, #0x29 strb r0, [r1] adds r1, #1 movs r0, #0xe0 strb r0, [r1] movs r0, #0x30 bl sub_0801D8E0 adds r2, r0, #0 adds r0, r4, #0 adds r0, #0x84 str r2, [r0] mov r8, r0 cmp r2, #0 bne _0809C4B8 bl sub_0805E780 b _0809C5BA .align 2, 0 _0809C4B4: .4byte gUnk_03000BF0 _0809C4B8: str r2, [r4, #0x64] mov r0, r8 ldr r1, [r0] movs r0, #5 strb r0, [r1, #1] movs r5, #0 mov r7, r8 _0809C4C6: adds r6, r5, #1 adds r0, r4, #0 movs r1, #0x91 adds r2, r6, #0 movs r3, #0 bl sub_080A2988 str r0, [r4, #0x54] cmp r0, #0 beq _0809C4EE adds r1, r0, #0 adds r1, #0x84 ldr r0, [r7] str r0, [r1] ldr r1, [r7] lsls r0, r5, #2 adds r1, #0x20 adds r1, r1, r0 ldr r0, [r4, #0x54] str r0, [r1] _0809C4EE: adds r5, r6, #0 cmp r5, #3 bls _0809C4C6 adds r0, r4, #0 movs r1, #0x91 movs r2, #5 movs r3, #0 bl sub_080A2988 str r0, [r4, #0x54] cmp r0, #0 beq _0809C510 adds r1, r0, #0 adds r1, #0x84 mov r2, r8 ldr r0, [r2] str r0, [r1] _0809C510: adds r0, r4, #0 movs r1, #0x91 movs r2, #6 movs r3, #0 bl sub_080A2988 str r0, [r4, #0x50] cmp r0, #0 beq _0809C5A4 adds r1, r0, #0 adds r1, #0x84 mov r2, r8 ldr r0, [r2] str r0, [r1] b _0809C5A4 _0809C52E: adds r1, r4, #0 adds r1, #0x62 movs r0, #0xd7 strb r0, [r1] adds r1, #1 movs r0, #0xe0 strb r0, [r1] b _0809C5A4 _0809C53E: movs r1, #0 movs r0, #0x10 strb r0, [r4, #0xe] adds r0, r4, #0 adds r0, #0x79 strb r1, [r0] ldrb r1, [r4, #0xa] movs r2, #2 adds r0, r2, #0 ands r0, r1 cmp r0, #0 bne _0809C55A strb r2, [r4, #0xf] b _0809C55E _0809C55A: movs r0, #0xfe strb r0, [r4, #0xf] _0809C55E: adds r0, r4, #0 adds r0, #0x74 movs r2, #0x80 lsls r2, r2, #1 strh r2, [r0] ldrb r1, [r4, #0xa] movs r0, #1 ands r0, r1 cmp r0, #0 bne _0809C57E adds r1, r4, #0 adds r1, #0x76 movs r0, #0xff lsls r0, r0, #8 strh r0, [r1] b _0809C5A4 _0809C57E: adds r0, r4, #0 adds r0, #0x76 strh r2, [r0] b _0809C5A4 _0809C586: adds r0, r4, #0 adds r0, #0x76 movs r1, #0x80 lsls r1, r1, #1 strh r1, [r0] subs r0, #2 strh r1, [r0] adds r1, r4, #0 adds r1, #0x79 movs r0, #0x1c strb r0, [r1] adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] str r4, [r0, #8] _0809C5A4: ldr r0, _0809C5C0 @ =gUnk_08123DDC ldrb r1, [r4, #0xa] lsls r1, r1, #2 adds r1, r1, r0 ldrb r1, [r1] adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_0809C5C4 _0809C5BA: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0809C5C0: .4byte gUnk_08123DDC thumb_func_start sub_0809C5C4 sub_0809C5C4: @ 0x0809C5C4 push {r4, r5, r6, r7, lr} adds r5, r0, #0 ldrb r0, [r5, #0xa] cmp r0, #7 bls _0809C5D0 b _0809C7DE _0809C5D0: lsls r0, r0, #2 ldr r1, _0809C5DC @ =_0809C5E0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809C5DC: .4byte _0809C5E0 _0809C5E0: @ jump table .4byte _0809C738 @ case 0 .4byte _0809C600 @ case 1 .4byte _0809C600 @ case 2 .4byte _0809C600 @ case 3 .4byte _0809C600 @ case 4 .4byte _0809C6B8 @ case 5 .4byte _0809C7B4 @ case 6 .4byte _0809C7D2 @ case 7 _0809C600: ldr r0, [r5, #0x50] adds r1, r5, #0 bl sub_0806FAD8 ldr r0, [r5, #0x50] ldrb r0, [r0, #0xd] adds r6, r5, #0 adds r6, #0x84 cmp r0, #6 bne _0809C630 movs r0, #0xf ldrsb r0, [r5, r0] cmp r0, #0 bge _0809C624 ldr r0, [r6] ldrb r0, [r0] rsbs r0, r0, #0 b _0809C628 _0809C624: ldr r0, [r6] ldrb r0, [r0] _0809C628: strb r0, [r5, #0xf] adds r0, r5, #0 bl sub_0809CBE4 _0809C630: ldr r4, [r5, #0x50] adds r0, r4, #0 adds r0, #0x76 ldrh r1, [r0] movs r0, #0x80 lsls r0, r0, #9 bl __divsi3 adds r3, r0, #0 lsls r0, r3, #0xd lsrs r3, r0, #8 ldr r0, _0809C660 @ =0xFFFFE000 adds r3, r3, r0 ldr r0, [r6] ldr r0, [r0, #8] adds r0, #0x45 ldrb r0, [r0] cmp r0, #1 bne _0809C664 movs r1, #0x88 lsls r1, r1, #6 adds r3, r3, r1 b _0809C66C .align 2, 0 _0809C660: .4byte 0xFFFFE000 _0809C664: lsrs r0, r3, #1 movs r1, #0x88 lsls r1, r1, #6 adds r3, r0, r1 _0809C66C: adds r2, r4, #0 adds r2, #0x7b ldr r1, _0809C6B0 @ =gUnk_08123E18 ldrb r0, [r5, #0xa] subs r0, #1 adds r0, r0, r1 ldrb r0, [r0] ldrb r2, [r2] adds r0, r0, r2 rsbs r0, r0, #0 lsls r0, r0, #0x18 lsrs r1, r0, #0x18 adds r0, r5, #0 adds r2, r3, #0 bl sub_0809CB70 ldr r2, [r5, #0x50] adds r2, #0x7b ldr r1, _0809C6B4 @ =gUnk_08123E1C ldrb r0, [r5, #0xa] subs r0, #1 adds r0, r0, r1 ldrb r1, [r0] ldrb r2, [r2] adds r1, r1, r2 adds r0, r5, #0 adds r0, #0x79 ldrb r0, [r0] adds r0, r0, r1 adds r1, r5, #0 adds r1, #0x7b strb r0, [r1] b _0809C7BC .align 2, 0 _0809C6B0: .4byte gUnk_08123E18 _0809C6B4: .4byte gUnk_08123E1C _0809C6B8: ldr r0, [r5, #0x50] adds r1, r5, #0 bl sub_0806FAD8 ldr r0, [r5, #0x50] ldrb r0, [r0, #0xd] adds r6, r5, #0 adds r6, #0x79 adds r7, r5, #0 adds r7, #0x76 cmp r0, #4 beq _0809C6F6 adds r0, r5, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #1 beq _0809C6F6 ldrb r0, [r6] cmp r0, #0x1c bls _0809C6E4 subs r0, #1 strb r0, [r6] _0809C6E4: ldrh r0, [r7] movs r1, #0x80 lsls r1, r1, #1 cmp r0, r1 bls _0809C6F4 subs r0, #1 strh r0, [r7] b _0809C6F6 _0809C6F4: strh r1, [r7] _0809C6F6: ldr r4, [r5, #0x50] adds r0, r4, #0 adds r0, #0x74 ldrh r1, [r0] movs r0, #0x80 lsls r0, r0, #9 bl __divsi3 adds r3, r0, #0 ldrb r0, [r6] lsls r0, r0, #8 muls r0, r3, r0 lsrs r3, r0, #8 adds r4, #0x7b ldrb r0, [r4] adds r0, #0x80 rsbs r0, r0, #0 lsls r0, r0, #0x18 lsrs r1, r0, #0x18 adds r0, r5, #0 adds r2, r3, #0 bl sub_0809CB70 ldr r0, [r5, #0x50] adds r0, #0x7b ldrb r0, [r0] adds r1, r5, #0 adds r1, #0x7b strb r0, [r1] ldrh r1, [r7] adds r0, r5, #0 adds r0, #0x74 b _0809C7C4 _0809C738: movs r0, #0x37 bl sub_0807CBE4 cmp r0, #0 beq _0809C74A adds r0, r5, #0 movs r1, #0x1e bl sub_0805E4E0 _0809C74A: ldr r1, _0809C7A8 @ =gUnk_08123DF8 ldrb r0, [r5, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 ldrb r0, [r5, #0xf] cmp r0, #0 beq _0809C7BC ldr r0, _0809C7AC @ =gUnk_030010A0 ldr r0, [r0] movs r1, #7 ands r0, r1 cmp r0, #0 bne _0809C772 ldr r0, [r5, #0x54] bl sub_080A2B80 _0809C772: adds r3, r5, #0 adds r3, #0x7e ldrh r0, [r3] cmp r0, #0 beq _0809C7BC ldr r2, [r5, #0x54] movs r1, #0 ldrsh r0, [r3, r1] ldr r1, [r2, #0x20] subs r1, r1, r0 str r1, [r2, #0x20] ldr r0, [r2, #0x34] adds r0, r0, r1 str r0, [r2, #0x34] ldr r0, [r5, #0x54] ldr r1, [r0, #0x20] movs r0, #0xc0 lsls r0, r0, #6 cmp r1, r0 beq _0809C7A0 ldr r0, _0809C7B0 @ =0xFFFFD000 cmp r1, r0 bne _0809C7BC _0809C7A0: ldrh r0, [r3] rsbs r0, r0, #0 strh r0, [r3] b _0809C7BC .align 2, 0 _0809C7A8: .4byte gUnk_08123DF8 _0809C7AC: .4byte gUnk_030010A0 _0809C7B0: .4byte 0xFFFFD000 _0809C7B4: ldr r0, [r5, #0x50] adds r1, r5, #0 bl sub_0806FA24 _0809C7BC: adds r0, r5, #0 adds r0, #0x76 ldrh r1, [r0] subs r0, #2 _0809C7C4: ldrh r2, [r0] adds r0, #6 ldrh r3, [r0] adds r0, r5, #0 bl sub_0805EC9C b _0809C7DE _0809C7D2: ldr r0, _0809C7E0 @ =gUnk_03000BF0 ldr r0, [r0, #0x30] cmp r0, r5 beq _0809C7DE bl sub_0805E780 _0809C7DE: pop {r4, r5, r6, r7, pc} .align 2, 0 _0809C7E0: .4byte gUnk_03000BF0 thumb_func_start sub_0809C7E4 sub_0809C7E4: @ 0x0809C7E4 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xf] cmp r0, #0 beq _0809C84A adds r3, r5, #0 adds r3, #0x7e ldrh r0, [r3] cmp r0, #0 bne _0809C82A ldr r2, [r5, #0x54] movs r0, #0x36 ldrsh r1, [r2, r0] movs r0, #0x10 rsbs r0, r0, #0 cmp r1, r0 ble _0809C814 ldr r0, [r2, #0x34] ldr r1, _0809C810 @ =0xFFFFC000 adds r0, r0, r1 str r0, [r2, #0x34] b _0809C82A .align 2, 0 _0809C810: .4byte 0xFFFFC000 _0809C814: ldr r0, [r2, #0x34] ldr r1, _0809C84C @ =0xFFFFF000 adds r0, r0, r1 str r0, [r2, #0x34] ldr r1, [r5, #0x54] movs r0, #0xc0 lsls r0, r0, #6 str r0, [r1, #0x20] movs r0, #0x80 lsls r0, r0, #2 strh r0, [r3] _0809C82A: adds r4, r5, #0 adds r4, #0x79 ldrb r0, [r4] subs r0, #1 strb r0, [r4] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _0809C84A ldr r0, _0809C850 @ =0x00000B43 bl sub_08056378 movs r0, #1 strb r0, [r5, #0xd] movs r0, #8 strb r0, [r4] _0809C84A: pop {r4, r5, pc} .align 2, 0 _0809C84C: .4byte 0xFFFFF000 _0809C850: .4byte 0x00000B43 thumb_func_start sub_0809C854 sub_0809C854: @ 0x0809C854 push {r4, r5, lr} adds r4, r0, #0 ldr r0, _0809C8A8 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _0809C8B8 adds r5, r4, #0 adds r5, #0x79 ldrb r0, [r5] subs r0, #1 strb r0, [r5] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _0809C8B8 adds r0, r4, #0 movs r1, #0x91 movs r2, #7 movs r3, #0 bl sub_080A2988 adds r1, r0, #0 cmp r1, #0 beq _0809C892 ldrh r0, [r1, #0x32] subs r0, #0x50 strh r0, [r1, #0x32] ldr r0, _0809C8AC @ =gUnk_03000BF0 str r1, [r0, #0x30] _0809C892: ldrb r0, [r4, #0xf] cmp r0, #2 bhi _0809C8B0 movs r0, #2 strb r0, [r4, #0xd] movs r0, #0x1e strb r0, [r5] movs r0, #0xe6 bl sub_080A3268 b _0809C8B8 .align 2, 0 _0809C8A8: .4byte gUnk_02000050 _0809C8AC: .4byte gUnk_03000BF0 _0809C8B0: movs r0, #3 strb r0, [r4, #0xd] movs r0, #0x78 strb r0, [r5] _0809C8B8: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0809C8BC sub_0809C8BC: @ 0x0809C8BC push {lr} adds r2, r0, #0 adds r3, r2, #0 adds r3, #0x79 ldrb r0, [r3] subs r1, r0, #1 strb r1, [r3] lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _0809C8E2 movs r0, #1 strb r0, [r2, #0xd] movs r0, #0x1e strb r0, [r3] ldrb r0, [r2, #0xf] adds r0, #1 strb r0, [r2, #0xf] b _0809C922 _0809C8E2: movs r0, #3 ands r0, r1 cmp r0, #1 beq _0809C90A cmp r0, #1 bgt _0809C8F4 cmp r0, #0 beq _0809C8FE b _0809C922 _0809C8F4: cmp r0, #2 beq _0809C8FE cmp r0, #3 beq _0809C916 b _0809C922 _0809C8FE: ldrh r1, [r2, #0x2e] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 adds r0, #8 b _0809C920 _0809C90A: ldrh r1, [r2, #0x2e] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 adds r0, #4 b _0809C920 _0809C916: ldrh r1, [r2, #0x2e] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 subs r0, #4 _0809C920: strh r0, [r2, #0x2e] _0809C922: pop {pc} thumb_func_start sub_0809C924 sub_0809C924: @ 0x0809C924 push {r4, r5, lr} adds r5, r0, #0 adds r1, r5, #0 adds r1, #0x79 ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff beq _0809C948 adds r0, r5, #0 movs r1, #0x87 movs r2, #6 movs r3, #0 bl sub_080A2988 b _0809C980 _0809C948: movs r0, #4 strb r0, [r5, #0xd] movs r0, #0x3c strb r0, [r1] ldr r4, _0809C984 @ =0x00000115 adds r0, r5, #0 adds r1, r4, #0 bl sub_080ADF80 ldr r0, [r5, #0x50] adds r1, r4, #0 bl sub_080ADF80 adds r0, r5, #0 movs r1, #0xef bl sub_0801D2B4 ldr r0, [r5, #0x50] movs r1, #0xef bl sub_0801D2B4 adds r0, r5, #0 movs r1, #0xef bl sub_0809CC30 movs r0, #0xe8 bl sub_080A3268 _0809C980: pop {r4, r5, pc} .align 2, 0 _0809C984: .4byte 0x00000115 thumb_func_start sub_0809C988 sub_0809C988: @ 0x0809C988 push {lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x79 ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _0809C9AC movs r0, #5 strb r0, [r2, #0xd] movs r0, #0xb4 strb r0, [r1] movs r0, #3 strb r0, [r2, #0xb] b _0809C9DC _0809C9AC: ldr r0, _0809C9C8 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #8 ands r0, r1 cmp r0, #0 beq _0809C9CC adds r0, r2, #0 adds r0, #0x84 ldr r0, [r0] ldr r1, [r0, #8] adds r1, #0x76 ldrh r0, [r1] subs r0, #4 b _0809C9DA .align 2, 0 _0809C9C8: .4byte gUnk_030010A0 _0809C9CC: adds r0, r2, #0 adds r0, #0x84 ldr r0, [r0] ldr r1, [r0, #8] adds r1, #0x76 ldrh r0, [r1] adds r0, #4 _0809C9DA: strh r0, [r1] _0809C9DC: pop {pc} .align 2, 0 thumb_func_start sub_0809C9E0 sub_0809C9E0: @ 0x0809C9E0 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldr r0, _0809CA04 @ =gUnk_030010A0 ldr r1, [r0] movs r2, #2 ands r1, r2 adds r7, r0, #0 cmp r1, #0 beq _0809CA08 adds r2, r4, #0 adds r2, #0x84 ldr r0, [r2] ldr r1, [r0, #8] adds r1, #0x76 ldrh r0, [r1] subs r0, #8 b _0809CA16 .align 2, 0 _0809CA04: .4byte gUnk_030010A0 _0809CA08: adds r2, r4, #0 adds r2, #0x84 ldr r0, [r2] ldr r1, [r0, #8] adds r1, #0x76 ldrh r0, [r1] adds r0, #8 _0809CA16: strh r0, [r1] adds r5, r2, #0 ldr r0, [r7] movs r6, #3 ands r0, r6 cmp r0, #0 bne _0809CA30 adds r0, r4, #0 movs r1, #0x87 movs r2, #2 movs r3, #0 bl sub_080A2988 _0809CA30: adds r2, r4, #0 adds r2, #0x79 ldrb r0, [r2] adds r1, r0, #0 cmp r1, #0 bne _0809CA92 ldr r0, [r4, #0x54] adds r0, #0x62 strb r1, [r0] ldr r0, [r4, #0x54] movs r1, #0x80 lsls r1, r1, #2 adds r2, #2 ldrb r2, [r2] rsbs r2, r2, #0 bl sub_0806F62C ldr r1, [r4, #0x54] adds r0, r4, #0 movs r2, #0x48 bl sub_0806FC80 cmp r0, #0 beq _0809CAC4 movs r0, #6 strb r0, [r4, #0xd] movs r1, #0 movs r0, #0xc0 strh r0, [r4, #0x24] strb r1, [r4, #0xb] strb r1, [r4, #0xf] ldr r2, [r4, #0x54] ldrb r1, [r2, #0x18] subs r0, #0xc4 ands r0, r1 strb r0, [r2, #0x18] ldr r0, [r5] ldr r0, [r0, #8] adds r0, #0x76 movs r1, #0x80 lsls r1, r1, #1 strh r1, [r0] ldr r1, [r5] movs r0, #1 strb r0, [r1] movs r0, #0xed bl sub_080A3268 b _0809CAC4 _0809CA92: subs r0, #1 strb r0, [r2] ldr r0, [r7] ands r0, r6 cmp r0, #1 beq _0809CAB4 cmp r0, #1 blo _0809CAAC cmp r0, #2 beq _0809CAAC cmp r0, #3 beq _0809CABC b _0809CAC4 _0809CAAC: ldr r0, [r4, #0x54] adds r0, #0x62 movs r1, #0 b _0809CAC2 _0809CAB4: ldr r0, [r4, #0x54] adds r0, #0x62 movs r1, #0xfc b _0809CAC2 _0809CABC: ldr r0, [r4, #0x54] adds r0, #0x62 movs r1, #4 _0809CAC2: strb r1, [r0] _0809CAC4: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0809CAC8 sub_0809CAC8: @ 0x0809CAC8 push {r4, r5, lr} adds r5, r0, #0 bl sub_0806F69C ldr r2, _0809CB3C @ =gUnk_03000BF0 ldrh r0, [r2, #8] movs r1, #0xe4 lsls r1, r1, #1 adds r0, r0, r1 movs r3, #0x32 ldrsh r1, [r5, r3] cmp r0, r1 bge _0809CB26 movs r0, #4 strb r0, [r2, #0xe] ldr r0, _0809CB40 @ =gUnk_03001160 str r0, [r2, #0x30] movs r0, #0x9b bl sub_0807CCB4 ldr r0, [r5, #0x50] bl sub_0805E7BC adds r4, r5, #0 adds r4, #0x84 ldr r0, [r4] ldr r0, [r0, #8] bl sub_0805E7BC ldr r0, [r4] ldr r0, [r0, #0x20] bl sub_0805E7BC ldr r0, [r4] ldr r0, [r0, #0x24] bl sub_0805E7BC ldr r0, [r4] ldr r0, [r0, #0x28] bl sub_0805E7BC ldr r0, [r4] ldr r0, [r0, #0x2c] bl sub_0805E7BC movs r0, #7 strb r0, [r5, #0xd] _0809CB26: ldr r0, _0809CB44 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #0xf ands r0, r1 cmp r0, #0 bne _0809CB38 ldr r0, _0809CB48 @ =0x00000163 bl sub_080A3268 _0809CB38: pop {r4, r5, pc} .align 2, 0 _0809CB3C: .4byte gUnk_03000BF0 _0809CB40: .4byte gUnk_03001160 _0809CB44: .4byte gUnk_030010A0 _0809CB48: .4byte 0x00000163 thumb_func_start sub_0809CB4C sub_0809CB4C: @ 0x0809CB4C push {lr} ldr r0, _0809CB68 @ =gUnk_03000BF0 ldrb r1, [r0, #0xf] movs r0, #4 ands r0, r1 cmp r0, #0 bne _0809CB66 ldr r0, _0809CB6C @ =0x00000B44 movs r1, #0 bl sub_08078AA8 bl sub_0805E780 _0809CB66: pop {pc} .align 2, 0 _0809CB68: .4byte gUnk_03000BF0 _0809CB6C: .4byte 0x00000B44 thumb_func_start sub_0809CB70 sub_0809CB70: @ 0x0809CB70 push {r4, r5, r6, lr} mov r6, sb mov r5, r8 push {r5, r6} adds r6, r0, #0 adds r4, r1, #0 adds r5, r2, #0 ldr r0, _0809CBE0 @ =gUnk_080C9160 mov sb, r0 lsls r0, r4, #1 add r0, sb movs r1, #0 ldrsh r0, [r0, r1] lsls r5, r5, #0x10 asrs r5, r5, #0x10 adds r1, r5, #0 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x80 lsls r1, r1, #1 mov r8, r1 bl sub_0806FA04 ldr r1, [r6, #0x50] lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r1, #0x2c] adds r1, r1, r0 str r1, [r6, #0x2c] adds r4, #0x40 lsls r4, r4, #1 add r4, sb movs r1, #0 ldrsh r0, [r4, r1] adds r1, r5, #0 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r1, r8 bl sub_0806FA04 ldr r2, [r6, #0x50] lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r2, #0x30] subs r1, r1, r0 str r1, [r6, #0x30] ldr r0, [r2, #0x34] str r0, [r6, #0x34] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, pc} .align 2, 0 _0809CBE0: .4byte gUnk_080C9160 thumb_func_start sub_0809CBE4 sub_0809CBE4: @ 0x0809CBE4 push {r4, lr} adds r2, r0, #0 adds r3, r2, #0 adds r3, #0x79 ldrb r0, [r2, #0xf] ldrb r4, [r3] adds r1, r0, r4 strb r1, [r3] ldrb r4, [r2, #0xf] movs r0, #0xf ldrsb r0, [r2, r0] cmp r0, #0 bge _0809CC16 ldrb r0, [r2, #0xe] lsls r1, r1, #0x18 lsls r0, r0, #0x18 cmn r1, r0 bge _0809CC2C rsbs r0, r4, #0 strb r0, [r2, #0xf] movs r0, #0xcf lsls r0, r0, #1 bl sub_080A3268 b _0809CC2C _0809CC16: movs r0, #0 ldrsb r0, [r3, r0] ldrb r1, [r2, #0xe] cmp r0, r1 ble _0809CC2C rsbs r0, r4, #0 strb r0, [r2, #0xf] movs r0, #0xcf lsls r0, r0, #1 bl sub_080A3268 _0809CC2C: pop {r4, pc} .align 2, 0 thumb_func_start sub_0809CC30 sub_0809CC30: @ 0x0809CC30 push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r1, #0 adds r4, #0x84 ldr r0, [r4] ldr r0, [r0, #8] bl sub_0801D2B4 movs r5, #0 _0809CC42: ldr r0, [r4] lsls r1, r5, #2 adds r0, #0x20 adds r0, r0, r1 ldr r0, [r0] adds r1, r6, #0 bl sub_0801D2B4 adds r5, #1 cmp r5, #3 bls _0809CC42 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0809CC5C sub_0809CC5C: @ 0x0809CC5C push {lr} ldr r2, _0809CC70 @ =gUnk_08123E20 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809CC70: .4byte gUnk_08123E20 thumb_func_start sub_0809CC74 sub_0809CC74: @ 0x0809CC74 push {r4, r5, lr} adds r5, r0, #0 movs r4, #1 strb r4, [r5, #0xc] bl sub_08016A04 ldrb r0, [r5, #0xa] cmp r0, #0 bne _0809CCD4 adds r2, r5, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #8 rsbs r1, r1, #0 ands r1, r0 movs r0, #5 orrs r1, r0 strb r1, [r2] movs r4, #0 _0809CC9A: movs r0, #0x92 movs r1, #1 adds r2, r4, #0 bl sub_080A2960 adds r1, r0, #0 adds r4, #1 cmp r1, #0 beq _0809CCBE str r5, [r1, #0x50] lsrs r2, r4, #1 lsls r2, r2, #0x14 ldr r0, _0809CCCC @ =0xFFF80000 adds r2, r2, r0 adds r0, r5, #0 ldr r3, _0809CCD0 @ =0xFFF20000 bl sub_0806FA48 _0809CCBE: cmp r4, #2 bls _0809CC9A adds r0, r5, #0 bl sub_0809CDF0 b _0809CD0A .align 2, 0 _0809CCCC: .4byte 0xFFF80000 _0809CCD0: .4byte 0xFFF20000 _0809CCD4: ldrb r1, [r5, #0xb] adds r0, r4, #0 ands r0, r1 cmp r0, #0 beq _0809CCF2 ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r5, #0x18] movs r0, #0x14 strb r0, [r5, #0xe] b _0809CD02 _0809CCF2: movs r0, #2 strb r0, [r5, #0xc] ands r0, r1 movs r1, #0x12 cmp r0, #0 beq _0809CD00 movs r1, #0x14 _0809CD00: strb r1, [r5, #0xe] _0809CD02: adds r0, r5, #0 movs r1, #0 bl sub_08004260 _0809CD0A: pop {r4, r5, pc} thumb_func_start sub_0809CD0C sub_0809CD0C: @ 0x0809CD0C push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 beq _0809CDAC adds r0, r4, #0 bl sub_08004274 adds r1, r4, #0 adds r1, #0x5a ldrb r2, [r1] movs r0, #1 ands r0, r2 cmp r0, #0 beq _0809CD36 movs r0, #0xfe ands r0, r2 strb r0, [r1] ldrh r0, [r4, #0x32] adds r0, #1 strh r0, [r4, #0x32] _0809CD36: ldrb r1, [r1] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0809CD56 adds r0, r4, #0 adds r0, #0x59 ldrb r0, [r0] cmp r0, #1 bne _0809CD56 movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #6 ands r0, r1 strb r0, [r4, #0x18] _0809CD56: ldrb r0, [r4, #0xf] cmp r0, #0 bne _0809CDAC ldr r5, _0809CDB0 @ =gUnk_03001160 adds r6, r5, #0 adds r6, #0x3d movs r0, #0 ldrsb r0, [r6, r0] cmp r0, #0 bne _0809CDAC ldrb r0, [r4, #0x1e] cmp r0, #0 beq _0809CDAC adds r0, r4, #0 adds r1, r5, #0 movs r2, #4 bl sub_0806FC80 cmp r0, #0 beq _0809CDAC ldrb r0, [r4, #0xf] adds r0, #1 strb r0, [r4, #0xf] movs r0, #2 rsbs r0, r0, #0 bl sub_080526A0 adds r0, r5, #0 movs r1, #0x7a bl sub_0800449C movs r1, #0x10 strb r1, [r6] adds r0, r5, #0 adds r0, #0x3e strb r1, [r0] adds r2, r5, #0 adds r2, #0x42 movs r0, #0xc strb r0, [r2] adds r0, r5, #0 adds r0, #0x46 strh r1, [r0] _0809CDAC: pop {r4, r5, r6, pc} .align 2, 0 _0809CDB0: .4byte gUnk_03001160 thumb_func_start sub_0809CDB4 sub_0809CDB4: @ 0x0809CDB4 push {lr} adds r3, r0, #0 ldrb r0, [r3, #0xe] subs r0, #1 strb r0, [r3, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _0809CDEC movs r2, #1 movs r0, #1 strb r0, [r3, #0xc] movs r0, #0x1e strb r0, [r3, #0xe] strb r1, [r3, #0xf] ldrb r1, [r3, #0x18] subs r0, #0x22 ands r0, r1 orrs r0, r2 strb r0, [r3, #0x18] ldr r0, [r3, #0x50] ldrh r0, [r0, #0x32] subs r0, #0xe strh r0, [r3, #0x32] adds r0, r3, #0 movs r1, #0 bl sub_08004260 _0809CDEC: pop {pc} .align 2, 0 thumb_func_start sub_0809CDF0 sub_0809CDF0: @ 0x0809CDF0 push {r4, r5, r6, lr} adds r4, r0, #0 movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _0809CE80 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] 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, #0x80 strh r1, [r0] ldrh r6, [r0] ldr r0, _0809CE84 @ =0x0000402E subs r1, r6, #1 adds r4, #0x38 ldrb r2, [r4] bl sub_0800015E ldr r5, _0809CE88 @ =0x00004022 ldrb r2, [r4] adds r0, r5, #0 adds r1, r6, #0 bl sub_0800015E adds r1, r6, #1 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E adds r5, #4 adds r1, r6, #0 subs r1, #0x41 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E adds r1, r6, #0 subs r1, #0x40 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E ldr r0, _0809CE8C @ =0x00004024 adds r1, r6, #0 subs r1, #0x3f ldrb r2, [r4] bl sub_0800015E adds r1, r6, #0 subs r1, #0x81 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E adds r1, r6, #0 subs r1, #0x80 ldrb r2, [r4] adds r0, r5, #0 bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 _0809CE80: .4byte gUnk_03000BF0 _0809CE84: .4byte 0x0000402E _0809CE88: .4byte 0x00004022 _0809CE8C: .4byte 0x00004024 thumb_func_start sub_0809CE90 sub_0809CE90: @ 0x0809CE90 push {lr} ldr r2, _0809CEA4 @ =gUnk_08123E80 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809CEA4: .4byte gUnk_08123E80 thumb_func_start sub_0809CEA8 sub_0809CEA8: @ 0x0809CEA8 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 movs r1, #0 bl sub_08004260 pop {r4, pc} thumb_func_start sub_0809CEC0 sub_0809CEC0: @ 0x0809CEC0 push {lr} bl sub_08004274 pop {pc} thumb_func_start sub_0809CEC8 sub_0809CEC8: @ 0x0809CEC8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0809CF06 adds r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] ldrb r0, [r4, #0xa] cmp r0, #0 bne _0809CEEE ldrb r1, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 b _0809CEF4 _0809CEEE: ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 _0809CEF4: strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 movs r1, #0 bl sub_08004260 b _0809CF0C _0809CF06: adds r0, r4, #0 bl sub_08004274 _0809CF0C: adds r4, #0x59 ldrb r0, [r4] cmp r0, #0xff bne _0809CF20 bl sub_08000E50 movs r1, #0xf ands r0, r1 adds r0, #0x10 strb r0, [r4] _0809CF20: pop {r4, pc} .align 2, 0 thumb_func_start sub_0809CF24 sub_0809CF24: @ 0x0809CF24 push {lr} ldr r2, _0809CF38 @ =gUnk_08123EC0 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809CF38: .4byte gUnk_08123EC0 thumb_func_start sub_0809CF3C sub_0809CF3C: @ 0x0809CF3C push {lr} ldr r2, _0809CF50 @ =gUnk_08123EEC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809CF50: .4byte gUnk_08123EEC thumb_func_start sub_0809CF54 sub_0809CF54: @ 0x0809CF54 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #0x31 strb r0, [r4, #0xe] movs r0, #1 strb r0, [r4, #0xf] ldr r0, _0809CFDC @ =0xFFFE8000 str r0, [r4, #0x20] ldr r0, _0809CFE0 @ =0xFFC74000 str r0, [r4, #0x34] adds r1, r4, #0 adds r1, #0x68 movs r0, #0xf8 lsls r0, r0, #8 strh r0, [r1] movs r0, #0xa0 lsls r0, r0, #2 strh r0, [r4, #0x24] movs r0, #8 strb r0, [r4, #0x15] subs r1, #0x30 movs r0, #2 strb r0, [r1] ldr r0, _0809CFE4 @ =gUnk_03000BF0 ldrh r0, [r0, #0xa] strh r0, [r4, #0x2e] ldr r0, _0809CFE8 @ =0x00000123 bl sub_080A3268 adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 movs r1, #0 bl sub_080042AC movs r0, #0x95 movs r1, #1 movs r2, #0 bl sub_080A2960 adds r5, r0, #0 cmp r5, #0 beq _0809CFD8 str r4, [r5, #0x50] movs r3, #0x80 lsls r3, r3, #0xc adds r0, r4, #0 adds r1, r5, #0 movs r2, #0 bl sub_0806FA48 adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FAB0 _0809CFD8: pop {r4, r5, pc} .align 2, 0 _0809CFDC: .4byte 0xFFFE8000 _0809CFE0: .4byte 0xFFC74000 _0809CFE4: .4byte gUnk_03000BF0 _0809CFE8: .4byte 0x00000123 thumb_func_start sub_0809CFEC sub_0809CFEC: @ 0x0809CFEC push {r4, lr} adds r4, r0, #0 bl sub_0806F69C adds r0, r4, #0 adds r0, #0x68 movs r2, #0 ldrsh r1, [r0, r2] adds r0, r4, #0 bl sub_08003FC4 ldrb r0, [r4, #0xe] cmp r0, #0 beq _0809D018 subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 bne _0809D026 strb r0, [r4, #0xf] b _0809D026 _0809D018: adds r0, r4, #0 bl sub_080040A8 cmp r0, #0 bne _0809D026 bl sub_0805E780 _0809D026: adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 thumb_func_start sub_0809D030 sub_0809D030: @ 0x0809D030 push {lr} ldr r2, _0809D044 @ =gUnk_08123EF4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809D044: .4byte gUnk_08123EF4 thumb_func_start sub_0809D048 sub_0809D048: @ 0x0809D048 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 movs r1, #0x17 bl sub_080042AC pop {r4, pc} .align 2, 0 thumb_func_start sub_0809D06C sub_0809D06C: @ 0x0809D06C push {lr} ldr r2, _0809D080 @ =gUnk_08123EFC ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809D080: .4byte gUnk_08123EFC thumb_func_start sub_0809D084 sub_0809D084: @ 0x0809D084 push {lr} adds r1, r0, #0 ldr r0, [r1, #0x50] cmp r0, #0 beq _0809D0A8 ldrb r2, [r0, #0xf] cmp r2, #0 beq _0809D0A0 movs r3, #0x80 lsls r3, r3, #0xc movs r2, #0 bl sub_0806FA48 b _0809D0A8 _0809D0A0: ldrb r0, [r1, #0xd] adds r0, #1 strb r0, [r1, #0xd] str r2, [r1, #0x20] _0809D0A8: pop {pc} .align 2, 0 thumb_func_start sub_0809D0AC sub_0809D0AC: @ 0x0809D0AC push {r4, lr} adds r4, r0, #0 movs r1, #0xc0 lsls r1, r1, #5 bl sub_080044EC cmp r0, #1 bhi _0809D0F0 movs r2, #0 movs r0, #2 strb r0, [r4, #0xa] movs r1, #1 strb r1, [r4, #0xc] str r2, [r4, #0x34] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] movs r0, #0x45 bl sub_0807CCB4 movs r0, #0x72 bl sub_080A3268 adds r0, r4, #0 movs r1, #0x11 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _0809D0F0 adds r0, r4, #0 bl sub_0806FAD8 _0809D0F0: pop {r4, pc} .align 2, 0 thumb_func_start sub_0809D0F4 sub_0809D0F4: @ 0x0809D0F4 push {lr} ldr r2, _0809D108 @ =gUnk_08123F04 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809D108: .4byte gUnk_08123F04 thumb_func_start sub_0809D10C sub_0809D10C: @ 0x0809D10C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 movs r1, #0x17 bl sub_080042AC pop {r4, pc} .align 2, 0 thumb_func_start sub_0809D130 sub_0809D130: @ 0x0809D130 push {lr} adds r2, r0, #0 ldr r0, _0809D148 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _0809D14C adds r0, r2, #0 bl sub_0800445C b _0809D170 .align 2, 0 _0809D148: .4byte gUnk_03003F80 _0809D14C: adds r0, r2, #0 bl sub_08017850 cmp r0, #0 beq _0809D170 movs r0, #0x17 movs r1, #0 movs r2, #0 bl sub_080A7C00 ldr r0, _0809D174 @ =gUnk_02002A40 ldr r1, [r0, #0x40] movs r2, #0x80 lsls r2, r2, #0x15 orrs r1, r2 str r1, [r0, #0x40] bl sub_0805E780 _0809D170: pop {pc} .align 2, 0 _0809D174: .4byte gUnk_02002A40 thumb_func_start sub_0809D178 sub_0809D178: @ 0x0809D178 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0809D19C adds r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 adds r1, r4, #0 adds r1, #0x5a movs r0, #0x80 strb r0, [r1] _0809D19C: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0809D1E8 bl sub_08000E50 movs r1, #3 ands r1, r0 adds r0, r4, #0 bl sub_08004260 bl sub_08000E50 movs r1, #0xf ands r0, r1 adds r0, #0x10 adds r1, r4, #0 adds r1, #0x59 strb r0, [r1] ldrb r1, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] bl sub_08000E50 movs r1, #1 ands r1, r0 cmp r1, #0 beq _0809D1EE ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x18] b _0809D1EE _0809D1E8: adds r0, r4, #0 bl sub_08004274 _0809D1EE: pop {r4, pc} thumb_func_start sub_0809D1F0 sub_0809D1F0: @ 0x0809D1F0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r5, r0, #0 ldrb r0, [r5, #0xc] mov sb, r0 cmp r0, #0 beq _0809D224 cmp r0, #1 beq _0809D2B0 bl sub_08078B48 ldr r2, _0809D220 @ =gUnk_03001160 ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2, #0x18] movs r1, #0x68 adds r1, r1, r5 mov r8, r1 b _0809D3A8 .align 2, 0 _0809D220: .4byte gUnk_03001160 _0809D224: ldrb r1, [r5, #0xe] cmp r1, #0 beq _0809D234 movs r0, #0xff strb r0, [r5, #0x1e] subs r0, r1, #1 strb r0, [r5, #0xe] b _0809D488 _0809D234: movs r1, #1 strb r1, [r5, #0xc] mov r2, sb str r2, [r5, #0x20] ldr r0, _0809D2A0 @ =0xFFEC0000 str r0, [r5, #0x34] movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r5, #0x24] movs r0, #8 strb r0, [r5, #0x15] adds r0, r5, #0 adds r0, #0x38 strb r1, [r0] adds r2, r5, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] ldrb r2, [r5, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 strb r0, [r5, #0x19] ldrb r0, [r5, #0x1b] ands r1, r0 movs r0, #0x40 orrs r1, r0 strb r1, [r5, #0x1b] ldr r0, _0809D2A4 @ =gUnk_03000BF0 ldrh r0, [r0, #0xa] strh r0, [r5, #0x2e] ldr r0, _0809D2A8 @ =gUnk_03001160 ldrh r0, [r0, #0x32] strh r0, [r5, #0x32] mov r3, sb str r3, [r5, #0x54] adds r0, r5, #0 movs r1, #6 bl sub_0805E3A0 adds r0, r5, #0 movs r1, #0 bl sub_080042AC ldr r0, _0809D2AC @ =0x00000123 bl sub_080A3268 movs r0, #0x68 adds r0, r0, r5 mov r8, r0 b _0809D3A8 .align 2, 0 _0809D2A0: .4byte 0xFFEC0000 _0809D2A4: .4byte gUnk_03000BF0 _0809D2A8: .4byte gUnk_03001160 _0809D2AC: .4byte 0x00000123 _0809D2B0: ldr r6, _0809D430 @ =gUnk_03001160 adds r0, r6, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r5, #0 adds r0, #0x38 strb r1, [r0] ldrh r0, [r5, #0x24] adds r0, #8 strh r0, [r5, #0x24] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0xc0 lsls r1, r1, #2 mov sl, r1 cmp r0, sl ble _0809D2D6 mov r2, sl strh r2, [r5, #0x24] _0809D2D6: ldrb r1, [r6, #0x10] movs r0, #0x80 ands r0, r1 movs r3, #0x68 adds r3, r3, r5 mov r8, r3 cmp r0, #0 beq _0809D3A8 ldr r0, _0809D434 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _0809D3A8 ldrb r0, [r6, #0xc] cmp r0, #0x1c beq _0809D3A8 cmp r0, #6 beq _0809D3A8 cmp r0, #9 beq _0809D3A8 ldr r7, _0809D438 @ =gUnk_03003F80 adds r0, r7, #0 adds r0, #0xa8 ldrb r0, [r0] cmp r0, #0x18 beq _0809D3A8 cmp r0, #0xb beq _0809D3A8 cmp r0, #8 beq _0809D3A8 bl sub_08079F8C cmp r0, #0 beq _0809D3A8 adds r0, r5, #0 adds r1, r6, #0 movs r2, #0xe movs r3, #0xe bl sub_080041A0 cmp r0, #0 beq _0809D3A8 movs r1, #0x36 ldrsh r0, [r6, r1] movs r2, #0x36 ldrsh r1, [r5, r2] subs r0, r0, r1 subs r0, #8 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x1f bhi _0809D3A8 adds r0, r6, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 beq _0809D3A8 movs r0, #0x95 movs r1, #0xa movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _0809D3A8 str r4, [r5, #0x54] movs r0, #2 strb r0, [r5, #0xc] movs r0, #8 strb r0, [r5, #0xe] mov r3, sl strh r3, [r5, #0x24] movs r0, #0xe0 lsls r0, r0, #8 mov r1, r8 strh r0, [r1] bl sub_08079184 bl sub_08078B48 bl sub_080791D0 bl sub_08077B20 adds r0, r7, #0 adds r0, #0x26 movs r2, #0 strb r2, [r0] strb r2, [r7, #2] ldrb r1, [r6, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r6, #0x10] ldrb r1, [r6, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r6, #0x18] ldr r1, _0809D43C @ =gUnk_03003DC0 movs r0, #6 strb r0, [r1] ldr r0, _0809D440 @ =gUnk_02034490 mov r3, sb strb r3, [r0] _0809D3A8: adds r0, r5, #0 bl sub_0806F69C mov r0, r8 movs r2, #0 ldrsh r1, [r0, r2] adds r0, r5, #0 bl sub_08003FC4 adds r0, r5, #0 bl sub_080042B8 ldr r4, [r5, #0x54] cmp r4, #0 beq _0809D454 ldr r2, _0809D430 @ =gUnk_03001160 movs r3, #0x2e ldrsh r1, [r2, r3] movs r3, #0x2e ldrsh r0, [r5, r3] subs r0, #8 cmp r1, r0 bge _0809D3DA movs r0, #0 strb r0, [r5, #0xe] _0809D3DA: ldrb r0, [r5, #0xe] cmp r0, #0 bne _0809D448 ldr r2, _0809D444 @ =0xFFF80000 adds r0, r5, #0 adds r1, r4, #0 movs r3, #0 bl sub_0806FA48 ldrh r0, [r4, #0x36] adds r0, #0x18 strh r0, [r4, #0x36] adds r0, r5, #0 adds r0, #0x29 ldrb r1, [r0] lsls r1, r1, #0x1d adds r3, r4, #0 adds r3, #0x29 lsrs r1, r1, #0x1d ldrb r2, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] ldrb r2, [r5, #0x19] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r3, [r4, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r3 orrs r0, r2 strb r0, [r4, #0x19] ldrb r0, [r5, #0x1b] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r4, #0x1b] ands r1, r2 orrs r1, r0 strb r1, [r4, #0x1b] b _0809D454 .align 2, 0 _0809D430: .4byte gUnk_03001160 _0809D434: .4byte gUnk_02000050 _0809D438: .4byte gUnk_03003F80 _0809D43C: .4byte gUnk_03003DC0 _0809D440: .4byte gUnk_02034490 _0809D444: .4byte 0xFFF80000 _0809D448: subs r0, #1 strb r0, [r5, #0xe] adds r0, r2, #0 adds r1, r4, #0 bl sub_0806FA24 _0809D454: adds r0, r5, #0 bl sub_080040A8 cmp r0, #0 bne _0809D488 ldrb r0, [r5, #0xc] cmp r0, #2 bne _0809D478 ldr r0, _0809D494 @ =gUnk_02002A40 ldr r1, [r0, #0x40] movs r2, #0x80 lsls r2, r2, #0x15 orrs r1, r2 str r1, [r0, #0x40] movs r0, #9 movs r1, #0 bl sub_080A7138 _0809D478: ldr r4, [r5, #0x54] cmp r4, #0 beq _0809D484 adds r0, r4, #0 bl sub_0805E79C _0809D484: bl sub_0805E780 _0809D488: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _0809D494: .4byte gUnk_02002A40 thumb_func_start sub_0809D498 sub_0809D498: @ 0x0809D498 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 ldrb r0, [r5, #0xc] cmp r0, #0 bne _0809D548 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] ldr r0, _0809D534 @ =0xFFFD8000 str r0, [r5, #0x20] ldr r0, _0809D538 @ =0xFFB4C000 str r0, [r5, #0x34] adds r4, r5, #0 adds r4, #0x68 movs r0, #0xf0 lsls r0, r0, #8 strh r0, [r4] movs r0, #0xc0 lsls r0, r0, #2 strh r0, [r5, #0x24] movs r0, #8 strb r0, [r5, #0x15] adds r0, r5, #0 adds r0, #0x38 strb r3, [r0] adds r6, r5, #0 adds r6, #0x29 ldrb r1, [r6] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 strb r0, [r6] ldrb r2, [r5, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 strb r0, [r5, #0x19] ldrb r0, [r5, #0x1b] ands r1, r0 movs r0, #0x40 orrs r1, r0 strb r1, [r5, #0x1b] adds r0, r5, #0 movs r1, #6 bl sub_0805E3A0 ldr r0, _0809D53C @ =gUnk_03000BF0 ldrh r0, [r0, #0xa] strh r0, [r5, #0x2e] ldr r0, _0809D540 @ =gUnk_03001160 ldrh r0, [r0, #0x32] strh r0, [r5, #0x32] ldr r0, _0809D544 @ =0x00000123 bl sub_080A3268 ldrb r1, [r6] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x10 orrs r0, r1 strb r0, [r6] adds r0, r5, #0 movs r1, #0 bl sub_080042AC bl sub_08078B48 adds r7, r4, #0 b _0809D62E .align 2, 0 _0809D534: .4byte 0xFFFD8000 _0809D538: .4byte 0xFFB4C000 _0809D53C: .4byte gUnk_03000BF0 _0809D540: .4byte gUnk_03001160 _0809D544: .4byte 0x00000123 _0809D548: adds r7, r5, #0 adds r7, #0x68 cmp r0, #1 bne _0809D62E ldr r6, _0809D658 @ =gUnk_03001160 ldrb r1, [r6, #0x18] movs r0, #4 rsbs r0, r0, #0 mov r8, r0 ands r0, r1 strb r0, [r6, #0x18] ldr r4, [r5, #0x54] cmp r4, #0 beq _0809D5B0 ldr r2, _0809D65C @ =0xFFF80000 adds r0, r5, #0 adds r1, r4, #0 movs r3, #0 bl sub_0806FA48 ldrh r0, [r4, #0x36] adds r0, #0x18 strh r0, [r4, #0x36] adds r0, r5, #0 adds r0, #0x29 ldrb r1, [r0] lsls r1, r1, #0x1d adds r3, r4, #0 adds r3, #0x29 lsrs r1, r1, #0x1d ldrb r2, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] ldrb r2, [r5, #0x19] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r3, [r4, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r3 orrs r0, r2 strb r0, [r4, #0x19] ldrb r0, [r5, #0x1b] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r4, #0x1b] ands r1, r2 orrs r1, r0 strb r1, [r4, #0x1b] _0809D5B0: bl sub_08078B48 ldr r3, _0809D660 @ =gUnk_03000BF0 movs r1, #0xa ldrsh r0, [r3, r1] adds r0, #0x78 movs r2, #0x2e ldrsh r1, [r5, r2] cmp r0, r1 bge _0809D62E ldrb r0, [r5, #0xc] adds r0, #1 strb r0, [r5, #0xc] adds r2, r5, #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] cmp r4, #0 beq _0809D5E6 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] _0809D5E6: str r6, [r3, #0x30] ldrb r1, [r6, #0x18] mov r0, r8 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r6, #0x18] bl sub_080791D0 bl sub_0805E564 ldr r1, _0809D664 @ =gUnk_02034490 movs r0, #0 strb r0, [r1] movs r0, #0x52 bl sub_0807CC30 cmp r0, #0 bne _0809D62E movs r0, #0x69 movs r1, #0 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _0809D62E ldr r1, _0809D668 @ =gUnk_0800B0AC bl sub_0807DAD0 adds r1, r4, #0 adds r1, #0x84 str r0, [r1] movs r0, #0x52 bl sub_0807CD04 _0809D62E: adds r0, r5, #0 bl sub_0806F69C movs r0, #0 ldrsh r1, [r7, r0] adds r0, r5, #0 bl sub_08003FC4 adds r0, r5, #0 bl sub_080042B8 adds r0, r5, #0 bl sub_080040A8 cmp r0, #0 bne _0809D652 bl sub_0805E780 _0809D652: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0809D658: .4byte gUnk_03001160 _0809D65C: .4byte 0xFFF80000 _0809D660: .4byte gUnk_03000BF0 _0809D664: .4byte gUnk_02034490 _0809D668: .4byte gUnk_0800B0AC thumb_func_start sub_0809D66C sub_0809D66C: @ 0x0809D66C push {r4, lr} adds r4, r0, #0 ldr r0, _0809D694 @ =gUnk_03001160 ldrb r1, [r0, #0x1a] lsls r1, r1, #0x1c lsrs r1, r1, #0x1c ldrb r2, [r4, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x1a] ldrb r0, [r4, #0xc] cmp r0, #1 beq _0809D6EC cmp r0, #1 bgt _0809D698 cmp r0, #0 beq _0809D6A2 b _0809D6FE .align 2, 0 _0809D694: .4byte gUnk_03001160 _0809D698: cmp r0, #2 beq _0809D6F4 cmp r0, #3 beq _0809D6FA b _0809D6FE _0809D6A2: movs r3, #1 movs r2, #1 strb r2, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 orrs r0, r3 strb r0, [r4, #0x18] adds r0, r4, #0 adds r0, #0x38 strb r2, [r0] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] ldrb r2, [r4, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 strb r0, [r4, #0x19] ldrb r0, [r4, #0x1b] ands r1, r0 movs r0, #0x40 orrs r1, r0 strb r1, [r4, #0x1b] adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 adds r0, r4, #0 movs r1, #0xe0 bl sub_080042AC _0809D6EC: adds r0, r4, #0 bl sub_080042B8 b _0809D6FE _0809D6F4: movs r0, #3 strb r0, [r4, #0xc] b _0809D6FE _0809D6FA: bl sub_0805E780 _0809D6FE: pop {r4, pc} thumb_func_start sub_0809D700 sub_0809D700: @ 0x0809D700 push {r4, lr} sub sp, #4 bl sub_08052654 cmp r0, #0 beq _0809D732 movs r0, #0 str r0, [sp] movs r0, #6 movs r1, #0x95 movs r2, #6 movs r3, #8 bl sub_0805EB2C adds r4, r0, #0 cmp r4, #0 bne _0809D732 movs r0, #0x95 movs r1, #8 movs r2, #0 bl sub_080A2960 cmp r0, #0 beq _0809D732 strb r4, [r0, #0xe] _0809D732: add sp, #4 pop {r4, pc} .align 2, 0 thumb_func_start sub_0809D738 sub_0809D738: @ 0x0809D738 push {r4, lr} movs r0, #0x95 movs r1, #9 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _0809D77C ldr r1, _0809D774 @ =gUnk_03000BF0 movs r0, #0 str r0, [r1, #0x30] adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 bl sub_0805E544 movs r0, #0x95 movs r1, #0xa movs r2, #0 bl sub_080A2960 cmp r0, #0 beq _0809D76C str r0, [r4, #0x54] _0809D76C: ldr r1, _0809D778 @ =gUnk_02034490 movs r0, #1 strb r0, [r1] b _0809D780 .align 2, 0 _0809D774: .4byte gUnk_03000BF0 _0809D778: .4byte gUnk_02034490 _0809D77C: bl sub_080791D0 _0809D780: pop {r4, pc} .align 2, 0 thumb_func_start sub_0809D784 sub_0809D784: @ 0x0809D784 push {lr} ldr r1, _0809D7A0 @ =gUnk_081240B0 ldrb r3, [r0, #0xc] lsls r3, r3, #2 adds r3, r3, r1 ldrb r1, [r0, #0xa] lsls r1, r1, #5 ldr r2, _0809D7A4 @ =gUnk_08123FB0 adds r1, r1, r2 ldr r2, [r3] bl _call_via_r2 pop {pc} .align 2, 0 _0809D7A0: .4byte gUnk_081240B0 _0809D7A4: .4byte gUnk_08123FB0 thumb_func_start sub_0809D7A8 sub_0809D7A8: @ 0x0809D7A8 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xc] adds r0, #1 movs r4, #0 strb r0, [r5, #0xc] adds r2, r5, #0 adds r2, #0x38 movs r0, #2 strb r0, [r2] ldrb r2, [r5, #0x19] movs r0, #0x3f ands r0, r2 movs r2, #0x40 orrs r0, r2 strb r0, [r5, #0x19] ldr r0, [r1, #0x10] str r0, [r5, #0x20] ldrb r3, [r1, #0xf] strb r3, [r5, #0x15] ldrh r0, [r1, #0x18] strh r0, [r5, #0x24] ldrh r0, [r5, #0x32] ldrh r2, [r1, #0x1a] subs r0, r0, r2 strh r0, [r5, #0x32] str r4, [r5, #0x34] ldrb r0, [r1, #0x1e] strb r0, [r5, #0xe] movs r0, #0x80 ands r0, r3 cmp r0, #0 beq _0809D80C ldrb r0, [r5, #0x15] cmp r0, #0x81 bne _0809D80C bl sub_08000E50 ldr r1, _0809D820 @ =gUnk_03001160 ldrb r1, [r1, #0x14] lsls r1, r1, #2 movs r2, #3 ands r0, r2 adds r1, r1, r0 subs r1, #2 movs r0, #0x1f ands r1, r0 movs r0, #0x10 eors r1, r0 strb r1, [r5, #0x15] _0809D80C: adds r0, r5, #0 bl sub_08016A04 ldrb r4, [r5, #0xa] adds r0, r5, #0 bl sub_08080CB4 strb r4, [r5, #0xa] pop {r4, r5, pc} .align 2, 0 _0809D820: .4byte gUnk_03001160 thumb_func_start sub_0809D824 sub_0809D824: @ 0x0809D824 push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 movs r0, #1 ldr r2, [r6, #4] cmp r2, #0 beq _0809D838 adds r0, r5, #0 bl _call_via_r2 _0809D838: cmp r0, #0 beq _0809D850 ldrb r0, [r5, #0xc] adds r0, #1 strb r0, [r5, #0xc] ldrh r1, [r6, #0x1a] ldrh r2, [r5, #0x32] adds r0, r1, r2 strh r0, [r5, #0x32] ldrh r0, [r5, #0x36] subs r0, r0, r1 strh r0, [r5, #0x36] _0809D850: ldrb r4, [r5, #0xa] ldrb r0, [r6, #0xd] strb r0, [r5, #0xa] adds r0, r5, #0 bl sub_08080CB4 strb r4, [r5, #0xa] pop {r4, r5, r6, pc} thumb_func_start sub_0809D860 sub_0809D860: @ 0x0809D860 push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 bl sub_0806F69C ldr r1, [r6, #0x14] adds r0, r5, #0 bl sub_080044EC cmp r0, #1 bhi _0809D8B2 ldrb r0, [r5, #0xe] cmp r0, #0 beq _0809D888 subs r0, #1 strb r0, [r5, #0xe] ldr r0, [r6, #0x14] lsls r0, r0, #3 str r0, [r5, #0x20] b _0809D8AC _0809D888: ldrb r0, [r5, #0xc] adds r0, #1 strb r0, [r5, #0xc] ldr r0, _0809D8C4 @ =gUnk_03001160 adds r0, #0x38 ldrb r1, [r0] adds r0, r5, #0 adds r0, #0x38 strb r1, [r0] adds r0, r5, #0 bl sub_08016A04 ldr r1, [r6] cmp r1, #0 beq _0809D8AC adds r0, r5, #0 bl _call_via_r1 _0809D8AC: movs r0, #0x6e bl sub_080A3268 _0809D8B2: ldrb r4, [r5, #0xa] ldrb r0, [r6, #0xd] strb r0, [r5, #0xa] adds r0, r5, #0 bl sub_08080CB4 strb r4, [r5, #0xa] pop {r4, r5, r6, pc} .align 2, 0 _0809D8C4: .4byte gUnk_03001160 thumb_func_start sub_0809D8C8 sub_0809D8C8: @ 0x0809D8C8 push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 ldr r0, _0809D8E4 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _0809D8E8 adds r0, r5, #0 bl sub_0800445C b _0809D90A .align 2, 0 _0809D8E4: .4byte gUnk_03003F80 _0809D8E8: adds r0, r5, #0 bl sub_08017850 cmp r0, #0 beq _0809D90A ldrb r0, [r6, #0xd] ldrb r1, [r5, #0xb] movs r2, #0 bl sub_080A7C00 ldrh r0, [r6, #0x1c] cmp r0, #0 beq _0809D906 bl sub_0807CCC8 _0809D906: bl sub_0805E780 _0809D90A: ldrb r4, [r5, #0xa] ldrb r0, [r6, #0xd] strb r0, [r5, #0xa] adds r0, r5, #0 bl sub_08080CB4 strb r4, [r5, #0xa] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0809D91C sub_0809D91C: @ 0x0809D91C push {r4, lr} adds r4, r0, #0 movs r1, #0x11 movs r2, #0 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _0809D934 adds r0, r4, #0 bl sub_0806FAD8 _0809D934: movs r0, #0x72 bl sub_080A3268 pop {r4, pc} thumb_func_start sub_0809D93C sub_0809D93C: @ 0x0809D93C push {r4, r5, lr} adds r4, r0, #0 adds r3, r1, #0 ldr r2, _0809D9A0 @ =gUnk_03001160 ldrb r0, [r2, #0xc] cmp r0, #6 bne _0809D9A4 ldrb r0, [r3, #0xc] ldrb r1, [r2, #0x14] asrs r0, r1 movs r1, #1 ands r0, r1 cmp r0, #0 beq _0809D9A4 movs r5, #0x2e ldrsh r0, [r2, r5] movs r5, #0x2e ldrsh r1, [r4, r5] subs r0, r0, r1 movs r1, #8 ldrsb r1, [r3, r1] adds r0, r0, r1 ldrb r1, [r3, #0xa] adds r0, r0, r1 lsls r1, r1, #1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r1, r0 ble _0809D9A4 movs r0, #0x32 ldrsh r2, [r2, r0] movs r1, #0x32 ldrsh r0, [r4, r1] movs r4, #0x1a ldrsh r1, [r3, r4] adds r0, r0, r1 subs r2, r2, r0 movs r0, #9 ldrsb r0, [r3, r0] adds r2, r2, r0 ldrb r1, [r3, #0xb] adds r0, r2, r1 lsls r1, r1, #1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r1, r0 ble _0809D9A4 movs r0, #1 b _0809D9A6 .align 2, 0 _0809D9A0: .4byte gUnk_03001160 _0809D9A4: movs r0, #0 _0809D9A6: pop {r4, r5, pc} thumb_func_start sub_0809D9A8 sub_0809D9A8: @ 0x0809D9A8 push {lr} ldr r2, _0809D9BC @ =gUnk_081240C0 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809D9BC: .4byte gUnk_081240C0 thumb_func_start sub_0809D9C0 sub_0809D9C0: @ 0x0809D9C0 push {lr} ldr r2, _0809D9D4 @ =gUnk_081240D8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809D9D4: .4byte gUnk_081240D8 thumb_func_start sub_0809D9D8 sub_0809D9D8: @ 0x0809D9D8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r0, #1 movs r2, #0 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] movs r0, #0x1e strb r0, [r4, #0xe] strb r2, [r4, #0xf] ldrb r1, [r4, #0x19] movs r0, #0x3f ands r0, r1 movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x19] strh r2, [r4, #0x24] movs r0, #0x18 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #1 bl sub_080042AC adds r0, r4, #0 movs r1, #6 bl sub_0805EB64 cmp r0, #0 beq _0809DA1E str r4, [r0, #0x50] str r0, [r4, #0x54] b _0809DA28 _0809DA1E: movs r0, #0x20 bl sub_0807CD04 bl sub_0805E780 _0809DA28: pop {r4, pc} .align 2, 0 thumb_func_start sub_0809DA2C sub_0809DA2C: @ 0x0809DA2C 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 _0809DA5C ldrb r0, [r1, #0xc] adds r0, #1 strb r0, [r1, #0xc] ldr r0, [r1, #0x30] movs r2, #0x80 lsls r2, r2, #0xd adds r0, r0, r2 str r0, [r1, #0x30] ldr r0, [r1, #0x34] ldr r2, _0809DA60 @ =0xFFF00000 adds r0, r0, r2 str r0, [r1, #0x34] adds r0, r1, #0 movs r1, #3 bl sub_080042AC _0809DA5C: pop {pc} .align 2, 0 _0809DA60: .4byte 0xFFF00000 thumb_func_start sub_0809DA64 sub_0809DA64: @ 0x0809DA64 push {r4, r5, lr} adds r5, r0, #0 ldr r4, [r5, #0x54] adds r1, r4, #0 bl sub_080045C4 adds r1, r0, #0 adds r0, r5, #0 bl sub_0809E1C8 adds r0, r5, #0 bl sub_0809E1F0 movs r0, #0x2e ldrsh r1, [r4, r0] movs r0, #0x32 ldrsh r2, [r4, r0] adds r0, r5, #0 bl sub_080041DC lsls r0, r0, #4 movs r2, #0x24 ldrsh r1, [r5, r2] cmp r0, r1 bge _0809DAAC ldrb r0, [r5, #0xc] adds r0, #1 strb r0, [r5, #0xc] movs r0, #0x10 strb r0, [r5, #0xe] movs r0, #1 strb r0, [r5, #0xf] adds r0, r5, #0 movs r1, #2 bl sub_080042AC _0809DAAC: adds r0, r5, #0 bl sub_080042B8 pop {r4, r5, pc} thumb_func_start sub_0809DAB4 sub_0809DAB4: @ 0x0809DAB4 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _0809DB10 @ =gUnk_03000BF0 ldrh r1, [r5, #6] adds r1, #0x78 ldrh r2, [r5, #8] adds r2, #0xa8 bl sub_080045B4 adds r1, r0, #0 adds r0, r4, #0 bl sub_0809E1C8 ldrb r0, [r4, #0xe] cmp r0, #0 beq _0809DADE subs r0, #1 strb r0, [r4, #0xe] ldrh r0, [r4, #0x24] subs r0, #0x80 strh r0, [r4, #0x24] _0809DADE: adds r0, r4, #0 bl sub_0809E1F0 ldrh r1, [r5, #6] adds r1, #0x78 ldrh r2, [r5, #8] adds r2, #0xa8 adds r0, r4, #0 bl sub_080041DC lsls r0, r0, #4 movs r2, #0x24 ldrsh r1, [r4, r2] cmp r0, r1 bge _0809DB02 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] _0809DB02: adds r0, r4, #0 bl sub_0809E210 adds r0, r4, #0 bl sub_080042B8 pop {r4, r5, pc} .align 2, 0 _0809DB10: .4byte gUnk_03000BF0 thumb_func_start sub_0809DB14 sub_0809DB14: @ 0x0809DB14 push {r4, r5, lr} adds r4, r0, #0 bl sub_0809E1F0 adds r0, r4, #0 bl sub_080040A8 adds r5, r0, #0 cmp r5, #0 bne _0809DB36 movs r0, #0x20 bl sub_0807CD04 ldr r0, [r4, #0x54] str r5, [r0, #0x50] bl sub_0805E780 _0809DB36: adds r0, r4, #0 bl sub_080042B8 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0809DB40 sub_0809DB40: @ 0x0809DB40 push {lr} ldr r2, _0809DB54 @ =gUnk_081240EC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809DB54: .4byte gUnk_081240EC thumb_func_start sub_0809DB58 sub_0809DB58: @ 0x0809DB58 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] ldrb r1, [r4, #0x19] movs r0, #0x3f ands r0, r1 movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x19] adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 movs r1, #0x3c bl sub_080042AC pop {r4, pc} .align 2, 0 thumb_func_start sub_0809DB88 sub_0809DB88: @ 0x0809DB88 push {r4, r5, lr} adds r5, r0, #0 ldr r4, [r5, #0x50] cmp r4, #0 beq _0809DBC4 ldr r0, [r4, #4] cmp r0, #0 bne _0809DB9C bl sub_0805E780 _0809DB9C: ldrb r0, [r4, #0xf] cmp r0, #0 beq _0809DBB0 movs r3, #0x80 lsls r3, r3, #0xc adds r0, r4, #0 adds r1, r5, #0 movs r2, #0 bl sub_0806FA48 _0809DBB0: ldrb r0, [r4, #0x18] lsls r0, r0, #0x1e lsrs r0, r0, #0x1e ldrb r2, [r5, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r2 orrs r1, r0 strb r1, [r5, #0x18] b _0809DBC8 _0809DBC4: bl sub_0805E780 _0809DBC8: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0809DBCC sub_0809DBCC: @ 0x0809DBCC push {lr} ldr r2, _0809DBE0 @ =gUnk_081240F4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809DBE0: .4byte gUnk_081240F4 thumb_func_start sub_0809DBE4 sub_0809DBE4: @ 0x0809DBE4 push {r4, lr} adds r4, r0, #0 bl sub_0809DB58 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #0x18 strb r0, [r4, #0x15] adds r0, #0xe8 strh r0, [r4, #0x24] movs r0, #0x80 lsls r0, r0, #0xa str r0, [r4, #0x20] movs r0, #1 strb r0, [r4, #0xe] movs r0, #0x6e bl sub_080A3268 pop {r4, pc} thumb_func_start sub_0809DC14 sub_0809DC14: @ 0x0809DC14 push {r4, lr} adds r4, r0, #0 bl sub_0806F69C movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_080044EC cmp r0, #1 bhi _0809DC5A ldrb r0, [r4, #0xe] cmp r0, #0 beq _0809DC3C subs r0, #1 strb r0, [r4, #0xe] movs r0, #0x80 lsls r0, r0, #9 str r0, [r4, #0x20] b _0809DC54 _0809DC3C: ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldr r0, _0809DC64 @ =gUnk_03001160 adds r0, #0x38 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] adds r0, r4, #0 bl sub_08016A04 _0809DC54: movs r0, #0x6e bl sub_080A3268 _0809DC5A: adds r0, r4, #0 bl sub_0809DB88 pop {r4, pc} .align 2, 0 _0809DC64: .4byte gUnk_03001160 thumb_func_start sub_0809DC68 sub_0809DC68: @ 0x0809DC68 push {lr} ldr r2, _0809DC7C @ =gUnk_08124100 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809DC7C: .4byte gUnk_08124100 thumb_func_start sub_0809DC80 sub_0809DC80: @ 0x0809DC80 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r0, #1 movs r3, #0 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] movs r0, #0x1e strb r0, [r4, #0xe] movs r0, #1 strb r0, [r4, #0xf] ldrb r1, [r4, #0x19] movs r0, #0x3f ands r0, r1 movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x19] movs r2, #0 strh r3, [r4, #0x24] movs r0, #0x18 strb r0, [r4, #0x15] ldr r0, [r4, #0x30] movs r1, #0x80 lsls r1, r1, #0xd adds r0, r0, r1 str r0, [r4, #0x30] ldr r0, [r4, #0x34] ldr r1, _0809DCFC @ =0xFFF00000 adds r0, r0, r1 str r0, [r4, #0x34] ldrh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x68 strh r1, [r0] ldrh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x6a strh r0, [r1] adds r0, r4, #0 adds r0, #0x6c strh r3, [r0] adds r0, #2 strb r2, [r0] adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 movs r1, #3 bl sub_080042AC adds r0, r4, #0 movs r1, #6 bl sub_0805EB64 cmp r0, #0 beq _0809DD00 str r4, [r0, #0x50] str r0, [r4, #0x54] b _0809DD0A .align 2, 0 _0809DCFC: .4byte 0xFFF00000 _0809DD00: movs r0, #0x20 bl sub_0807CD04 bl sub_0805E780 _0809DD0A: pop {r4, pc} thumb_func_start sub_0809DD0C sub_0809DD0C: @ 0x0809DD0C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0809DD2A ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] movs r0, #0xa3 lsls r0, r0, #1 bl sub_080A3268 _0809DD2A: adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 thumb_func_start sub_0809DD34 sub_0809DD34: @ 0x0809DD34 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x6e ldrb r0, [r1] adds r0, #8 strb r0, [r1] subs r1, #2 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x20 bls _0809DD64 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] movs r0, #0x20 strh r0, [r1] movs r0, #0xa3 lsls r0, r0, #1 bl sub_080A3268 _0809DD64: adds r0, r4, #0 bl sub_0809E238 adds r0, r4, #0 bl sub_0809E29C adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} thumb_func_start sub_0809DD78 sub_0809DD78: @ 0x0809DD78 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x6e ldrb r0, [r1] adds r0, #8 strb r0, [r1] subs r1, #2 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0809DDA8 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #0x5f ands r0, r1 strb r0, [r4, #0x18] b _0809DDB4 _0809DDA8: adds r0, r4, #0 bl sub_0809E238 adds r0, r4, #0 bl sub_0809E29C _0809DDB4: adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} thumb_func_start sub_0809DDBC sub_0809DDBC: @ 0x0809DDBC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0809DDD8 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldr r0, _0809DDE0 @ =0x0000015B bl sub_080A3268 _0809DDD8: adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 _0809DDE0: .4byte 0x0000015B thumb_func_start sub_0809DDE4 sub_0809DDE4: @ 0x0809DDE4 push {r4, r5, lr} adds r4, r0, #0 ldr r0, _0809DE34 @ =gUnk_03000BF0 ldrh r1, [r0, #6] adds r1, #0x40 ldrh r2, [r0, #8] movs r0, #0xbc lsls r0, r0, #1 adds r2, r2, r0 adds r0, r4, #0 bl sub_080045B4 adds r1, r0, #0 adds r0, r4, #0 bl sub_0809E1C8 adds r0, r4, #0 bl sub_0809E1F0 adds r0, r4, #0 bl sub_0809E210 adds r0, r4, #0 bl sub_080040A8 adds r5, r0, #0 cmp r5, #0 bne _0809DE2A movs r0, #0x20 bl sub_0807CD04 ldr r0, [r4, #0x54] str r5, [r0, #0x50] bl sub_0805E780 _0809DE2A: adds r0, r4, #0 bl sub_080042B8 pop {r4, r5, pc} .align 2, 0 _0809DE34: .4byte gUnk_03000BF0 thumb_func_start sub_0809DE38 sub_0809DE38: @ 0x0809DE38 push {lr} ldr r2, _0809DE4C @ =gUnk_08124118 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809DE4C: .4byte gUnk_08124118 thumb_func_start sub_0809DE50 sub_0809DE50: @ 0x0809DE50 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r0, #1 movs r2, #0 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] movs r0, #0xa strb r0, [r4, #0xe] strb r2, [r4, #0xf] ldrb r1, [r4, #0x19] movs r0, #0x3f ands r0, r1 movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x19] strh r2, [r4, #0x24] ldr r1, _0809DEEC @ =gUnk_0812412D ldrb r0, [r4, #0xb] adds r0, r0, r1 ldrb r0, [r0] strb r0, [r4, #0x15] ldrb r1, [r4, #0xb] lsls r1, r1, #2 ldr r0, _0809DEF0 @ =gUnk_08124132 adds r1, r1, r0 ldr r2, _0809DEF4 @ =gUnk_03000BF0 ldrh r0, [r1] ldrh r3, [r2, #6] adds r0, r0, r3 strh r0, [r4, #0x2e] ldrh r0, [r1, #2] ldrh r2, [r2, #8] adds r0, r0, r2 adds r0, #0x40 strh r0, [r4, #0x32] ldr r0, _0809DEF8 @ =0x0000FFC0 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_08016A04 ldr r1, _0809DEFC @ =gUnk_08124128 ldrb r0, [r4, #0xb] adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 bl sub_080042AC movs r0, #0x97 movs r1, #1 movs r2, #0 bl sub_080A2960 adds r5, r0, #0 cmp r5, #0 beq _0809DEE8 str r4, [r5, #0x50] str r5, [r4, #0x54] movs r3, #0x80 lsls r3, r3, #0xc adds r0, r4, #0 adds r1, r5, #0 movs r2, #0 bl sub_0806FA48 movs r1, #0x10 ldrb r0, [r4, #0x15] cmp r0, #0x18 bne _0809DEE2 rsbs r1, r1, #0 _0809DEE2: ldrh r0, [r5, #0x2e] adds r0, r0, r1 strh r0, [r5, #0x2e] _0809DEE8: pop {r4, r5, pc} .align 2, 0 _0809DEEC: .4byte gUnk_0812412D _0809DEF0: .4byte gUnk_08124132 _0809DEF4: .4byte gUnk_03000BF0 _0809DEF8: .4byte 0x0000FFC0 _0809DEFC: .4byte gUnk_08124128 thumb_func_start sub_0809DF00 sub_0809DF00: @ 0x0809DF00 push {r4, r5, lr} adds r4, r0, #0 ldrb r1, [r4, #0xb] bl sub_0809E2C4 cmp r0, #1 beq _0809DF16 cmp r0, #2 beq _0809DF64 movs r0, #0xa b _0809DF96 _0809DF16: ldrb r0, [r4, #0xc] adds r0, #2 strb r0, [r4, #0xc] movs r0, #0xff strb r0, [r4, #0xe] adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] adds r1, #2 adds r0, r4, #0 bl sub_080042AC ldr r0, _0809DF60 @ =0x00000123 bl sub_080A3268 ldr r5, [r4, #0x54] cmp r5, #0 beq _0809DF98 ldrb r1, [r4, #0xb] adds r1, #2 movs r0, #0x96 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _0809DF52 adds r0, r5, #0 bl sub_0806FA24 _0809DF52: adds r0, r5, #0 bl sub_0805E79C movs r0, #0 str r0, [r4, #0x54] b _0809DF98 .align 2, 0 _0809DF60: .4byte 0x00000123 _0809DF64: ldrb r0, [r4, #0xe] cmp r0, #0 bne _0809DF94 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] adds r1, #2 adds r0, r4, #0 bl sub_080042AC ldr r0, _0809DF8C @ =0x00000123 bl sub_080A3268 ldr r0, _0809DF90 @ =0x000001F3 bl sub_080A3268 b _0809DF98 .align 2, 0 _0809DF8C: .4byte 0x00000123 _0809DF90: .4byte 0x000001F3 _0809DF94: subs r0, #1 _0809DF96: strb r0, [r4, #0xe] _0809DF98: adds r0, r4, #0 bl sub_080042B8 pop {r4, r5, pc} thumb_func_start sub_0809DFA0 sub_0809DFA0: @ 0x0809DFA0 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x54] cmp r0, #0 beq _0809DFD6 movs r2, #0x2e ldrsh r1, [r0, r2] movs r2, #0x2e ldrsh r0, [r4, r2] subs r1, r1, r0 ldrb r0, [r4, #0x15] lsls r0, r0, #0xb eors r1, r0 movs r0, #0x80 lsls r0, r0, #8 ands r1, r0 cmp r1, #0 beq _0809DFD6 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] movs r0, #1 strb r0, [r4, #0xf] movs r0, #0x81 lsls r0, r0, #1 bl sub_080A3268 _0809DFD6: adds r0, r4, #0 bl sub_0809DFE0 pop {r4, pc} .align 2, 0 thumb_func_start sub_0809DFE0 sub_0809DFE0: @ 0x0809DFE0 push {r4, lr} adds r4, r0, #0 bl sub_080040A8 cmp r0, #0 bne _0809E028 ldr r1, [r4, #0x54] cmp r1, #0 beq _0809DFF4 str r0, [r1, #0x50] _0809DFF4: ldrb r1, [r4, #0xe] movs r0, #0x80 ands r0, r1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 beq _0809E008 bl sub_0805E780 b _0809E034 _0809E008: strb r0, [r4, #0xc] bl sub_08000E50 ldr r2, _0809E024 @ =gUnk_08124146 movs r1, #1 ands r1, r0 ldrb r0, [r4, #0xb] lsls r0, r0, #1 adds r1, r1, r0 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r4, #0xb] b _0809E034 .align 2, 0 _0809E024: .4byte gUnk_08124146 _0809E028: adds r0, r4, #0 bl sub_0809E1F0 adds r0, r4, #0 bl sub_080042B8 _0809E034: pop {r4, pc} .align 2, 0 thumb_func_start sub_0809E038 sub_0809E038: @ 0x0809E038 push {lr} ldr r2, _0809E04C @ =gUnk_08124150 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809E04C: .4byte gUnk_08124150 thumb_func_start sub_0809E050 sub_0809E050: @ 0x0809E050 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] ldrb r1, [r4, #0x19] movs r0, #0x3f ands r0, r1 movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x19] ldr r0, _0809E084 @ =0x0000FFF0 strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 movs r1, #1 bl sub_080042AC pop {r4, pc} .align 2, 0 _0809E084: .4byte 0x0000FFF0 thumb_func_start sub_0809E088 sub_0809E088: @ 0x0809E088 push {r4, lr} adds r4, r0, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} thumb_func_start sub_0809E0A0 sub_0809E0A0: @ 0x0809E0A0 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x97 movs r1, #5 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _0809E0C8 str r5, [r4, #0x50] str r4, [r5, #0x54] movs r0, #0 strb r0, [r5, #0xf] ldr r0, _0809E0CC @ =gUnk_03001160 adds r1, r4, #0 bl sub_0806FA24 ldr r0, _0809E0D0 @ =0x0000FFF8 strh r0, [r4, #0x36] _0809E0C8: pop {r4, r5, pc} .align 2, 0 _0809E0CC: .4byte gUnk_03001160 _0809E0D0: .4byte 0x0000FFF8 thumb_func_start sub_0809E0D4 sub_0809E0D4: @ 0x0809E0D4 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 adds r6, r1, #0 ldrb r2, [r6, #0x18] cmp r2, #0 bne _0809E130 ldr r1, [r5, #0x54] cmp r1, #0 beq _0809E0FC ldrb r0, [r1, #0xc] cmp r0, #1 bhi _0809E0FE ldr r0, _0809E0F8 @ =gUnk_02033280 strb r2, [r0, #6] b _0809E1BC .align 2, 0 _0809E0F8: .4byte gUnk_02033280 _0809E0FC: ldr r1, _0809E124 @ =gUnk_03001160 _0809E0FE: ldrb r0, [r6, #0x18] adds r0, #1 movs r4, #0 strb r0, [r6, #0x18] movs r0, #0x2e ldrsh r2, [r1, r0] movs r0, #0x32 ldrsh r3, [r1, r0] adds r0, r5, #0 adds r1, r6, #0 bl sub_0807DEDC ldr r0, _0809E128 @ =0x00000123 bl sub_080A3268 ldr r0, _0809E12C @ =gUnk_02033280 strb r4, [r0, #6] b _0809E1BC .align 2, 0 _0809E124: .4byte gUnk_03001160 _0809E128: .4byte 0x00000123 _0809E12C: .4byte gUnk_02033280 _0809E130: ldr r1, [r5, #0x54] cmp r1, #0 beq _0809E142 movs r0, #0x2e ldrsh r2, [r1, r0] mov r8, r2 movs r2, #0x32 ldrsh r7, [r1, r2] b _0809E14C _0809E142: movs r1, #0x1e ldrsh r0, [r6, r1] mov r8, r0 movs r2, #0x22 ldrsh r7, [r6, r2] _0809E14C: ldrb r0, [r6, #0x19] subs r0, #1 strb r0, [r6, #0x19] lsls r0, r0, #0x18 cmp r0, #0 bne _0809E170 movs r0, #8 strb r0, [r6, #0x19] movs r1, #0x2e ldrsh r0, [r5, r1] mov r2, r8 subs r0, r2, r0 movs r2, #0x32 ldrsh r1, [r5, r2] subs r1, r7, r1 bl sub_080045DA strb r0, [r5, #0x15] _0809E170: movs r0, #0x2e ldrsh r4, [r5, r0] mov r1, r8 subs r4, r4, r1 movs r2, #0x32 ldrsh r0, [r5, r2] subs r6, r0, r7 movs r0, #0x24 ldrsh r1, [r5, r0] ldrb r2, [r5, #0x15] adds r0, r5, #0 bl sub_0806F62C movs r1, #0x2e ldrsh r0, [r5, r1] mov r2, r8 subs r0, r0, r2 muls r4, r0, r4 movs r1, #0x32 ldrsh r0, [r5, r1] subs r0, r0, r7 muls r6, r0, r6 cmp r4, #0 bgt _0809E1B6 cmp r6, #0 bgt _0809E1B6 strh r2, [r5, #0x2e] strh r7, [r5, #0x32] movs r0, #1 strb r0, [r5, #0xf] movs r0, #0x81 lsls r0, r0, #1 bl sub_080A3268 b _0809E1BC _0809E1B6: ldr r1, _0809E1C4 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0809E1BC: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0809E1C4: .4byte gUnk_02033280 thumb_func_start sub_0809E1C8 sub_0809E1C8: @ 0x0809E1C8 push {lr} adds r3, r0, #0 adds r1, #0x20 ldrb r2, [r3, #0x15] subs r1, r1, r2 movs r0, #0x1f ands r1, r0 cmp r1, #0 beq _0809E1E6 cmp r1, #0xf bhi _0809E1E2 adds r0, r2, #1 b _0809E1E4 _0809E1E2: subs r0, r2, #1 _0809E1E4: strb r0, [r3, #0x15] _0809E1E6: ldrb r1, [r3, #0x15] movs r0, #0x1f ands r0, r1 strb r0, [r3, #0x15] pop {pc} thumb_func_start sub_0809E1F0 sub_0809E1F0: @ 0x0809E1F0 push {lr} adds r1, r0, #0 ldrh r0, [r1, #0x24] adds r0, #0x40 strh r0, [r1, #0x24] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r2, #0x80 lsls r2, r2, #3 cmp r0, r2 ble _0809E208 strh r2, [r1, #0x24] _0809E208: adds r0, r1, #0 bl sub_0806F69C pop {pc} thumb_func_start sub_0809E210 sub_0809E210: @ 0x0809E210 push {r4, lr} adds r1, r0, #0 ldr r4, _0809E230 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5B0 movs r1, #0xfe ands r0, r1 strb r0, [r4, #0x14] ldr r1, _0809E234 @ =gUnk_03003F80 movs r0, #0x80 lsls r0, r0, #1 strh r0, [r1, #8] pop {r4, pc} .align 2, 0 _0809E230: .4byte gUnk_03001160 _0809E234: .4byte gUnk_03003F80 thumb_func_start sub_0809E238 sub_0809E238: @ 0x0809E238 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r7, r0, #0 ldr r6, _0809E298 @ =gUnk_080C9160 movs r0, #0x6e adds r0, r0, r7 mov r8, r0 ldrb r0, [r0] lsls r0, r0, #1 adds r0, r0, r6 movs r1, #0 ldrsh r0, [r0, r1] adds r5, r7, #0 adds r5, #0x6c movs r2, #0 ldrsh r1, [r5, r2] bl sub_0806F9EC adds r4, r0, #0 lsls r4, r4, #0x10 asrs r4, r4, #0x10 mov r1, r8 ldrb r0, [r1] adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r6 movs r2, #0 ldrsh r0, [r0, r2] movs r2, #0 ldrsh r1, [r5, r2] bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r7, #0 adds r1, #0x68 ldrh r1, [r1] adds r1, r1, r4 strh r1, [r7, #0x2e] adds r1, r7, #0 adds r1, #0x6a ldrh r1, [r1] subs r1, r1, r0 strh r1, [r7, #0x32] pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0809E298: .4byte gUnk_080C9160 thumb_func_start sub_0809E29C sub_0809E29C: @ 0x0809E29C push {lr} adds r2, r0, #0 adds r0, #0x6e ldrb r0, [r0] adds r0, #0x40 movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _0809E2B8 ldrb r1, [r2, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 b _0809E2BE _0809E2B8: ldrb r0, [r2, #0x18] movs r1, #0x40 orrs r0, r1 _0809E2BE: strb r0, [r2, #0x18] pop {pc} .align 2, 0 thumb_func_start sub_0809E2C4 sub_0809E2C4: @ 0x0809E2C4 push {r4, r5, r6, r7, lr} lsls r1, r1, #2 ldr r0, _0809E328 @ =gUnk_08124178 adds r1, r1, r0 ldr r3, _0809E32C @ =gUnk_03001160 movs r0, #0x2e ldrsh r5, [r3, r0] ldr r4, _0809E330 @ =gUnk_03000BF0 ldrh r0, [r4, #6] ldrh r2, [r1] adds r0, r0, r2 subs r6, r5, r0 movs r0, #0x32 ldrsh r2, [r3, r0] ldrh r0, [r4, #8] ldrh r1, [r1, #2] adds r0, r0, r1 subs r5, r2, r0 ldr r4, _0809E334 @ =gUnk_08124158 movs r2, #0 adds r7, r3, #0 _0809E2EE: movs r1, #0 ldrsh r0, [r4, r1] subs r0, r6, r0 ldrb r1, [r4, #4] adds r0, r0, r1 lsls r1, r1, #1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r1, r0 ble _0809E33C movs r1, #2 ldrsh r0, [r4, r1] subs r0, r5, r0 ldrb r1, [r4, #5] adds r0, r0, r1 lsls r1, r1, #1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r1, r0 ble _0809E33C ldrb r0, [r4, #6] ldrb r7, [r7, #0x14] cmp r0, r7 bne _0809E338 ldrb r0, [r3, #0xc] cmp r0, #6 bne _0809E338 movs r0, #1 b _0809E346 .align 2, 0 _0809E328: .4byte gUnk_08124178 _0809E32C: .4byte gUnk_03001160 _0809E330: .4byte gUnk_03000BF0 _0809E334: .4byte gUnk_08124158 _0809E338: movs r0, #2 b _0809E346 _0809E33C: adds r2, #1 adds r4, #8 cmp r2, #3 ble _0809E2EE movs r0, #0 _0809E346: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0809E348 sub_0809E348: @ 0x0809E348 push {lr} ldr r2, _0809E35C @ =gUnk_0812418C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809E35C: .4byte gUnk_0812418C thumb_func_start sub_0809E360 sub_0809E360: @ 0x0809E360 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #8 bls _0809E372 movs r0, #8 strb r0, [r4, #0xe] _0809E372: ldrb r2, [r4, #0xe] movs r0, #0x48 subs r0, r0, r2 ldr r1, _0809E3E0 @ =gUnk_03003DBC ldrb r1, [r1] cmp r0, r1 ble _0809E3D8 movs r5, #0 adds r7, r4, #0 adds r7, #0x7e movs r0, #0x76 adds r0, r0, r4 mov r8, r0 cmp r5, r2 bhs _0809E3A6 movs r6, #0xe _0809E392: movs r0, #0x17 bl sub_080A7EE0 strb r6, [r0, #0xe] str r4, [r0, #0x50] adds r6, #0xc adds r5, #1 ldrb r2, [r4, #0xe] cmp r5, r2 blo _0809E392 _0809E3A6: movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r7] lsls r1, r0, #8 mov r2, r8 strh r1, [r2] lsls r0, r0, #6 strb r0, [r4, #0x14] adds r0, r4, #0 movs r1, #0 bl sub_0805E3A0 ldrb r0, [r4, #0xa] cmp r0, #0 beq _0809E3D8 bl sub_0804B128 str r0, [r4, #0x54] adds r1, r4, #0 adds r1, #0x54 adds r2, r4, #0 adds r2, #0x74 adds r0, r4, #0 bl sub_080A2CC0 _0809E3D8: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0809E3E0: .4byte gUnk_03003DBC thumb_func_start sub_0809E3E4 sub_0809E3E4: @ 0x0809E3E4 push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x76 ldrb r0, [r4, #0xb] ldrh r1, [r2] adds r1, r1, r0 strh r1, [r2] lsrs r1, r1, #2 strb r1, [r4, #0x14] ldrb r0, [r4, #0xa] cmp r0, #0 beq _0809E428 ldrb r1, [r4, #0x15] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0809E40E adds r0, r4, #0 bl sub_0806F69C _0809E40E: adds r2, r4, #0 adds r2, #0x74 ldrh r0, [r2] subs r0, #1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 bne _0809E428 adds r1, r4, #0 adds r1, #0x54 adds r0, r4, #0 bl sub_080A2CC0 _0809E428: pop {r4, pc} .align 2, 0 thumb_func_start sub_0809E42C sub_0809E42C: @ 0x0809E42C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r4, r0, #0 ldr r6, [r4, #0x50] ldr r0, [r6, #4] cmp r0, #0 bne _0809E444 bl sub_0805E780 _0809E444: ldrb r0, [r4, #0xc] movs r1, #0x76 adds r1, r1, r4 mov r8, r1 adds r7, r4, #0 adds r7, #0x62 movs r2, #0x74 adds r2, r2, r4 mov sb, r2 adds r5, r4, #0 adds r5, #0x63 movs r1, #0x75 adds r1, r1, r4 mov sl, r1 cmp r0, #0 bne _0809E482 movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r6, #0x14] mov r2, r8 strb r0, [r2] ldrb r0, [r7] mov r1, sb strb r0, [r1] ldrb r0, [r5] mov r2, sl strb r0, [r2] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08004260 _0809E482: ldrb r0, [r6, #0x14] mov r1, r8 ldrb r1, [r1] cmp r0, r1 beq _0809E490 bl sub_0805E780 _0809E490: ldrb r1, [r6, #0x18] lsls r1, r1, #0x1e lsrs r1, r1, #0x1e ldrb r2, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r6, #0 adds r1, r4, #0 bl sub_0806FA6C mov r2, sb ldrb r0, [r2] ldrb r1, [r7] adds r0, r0, r1 strb r0, [r7] mov r2, sl ldrb r0, [r2] ldrb r1, [r5] adds r0, r0, r1 strb r0, [r5] ldrb r0, [r4, #0x14] cmp r0, #2 beq _0809E4D0 ldrh r0, [r4, #0x32] adds r0, #1 strh r0, [r4, #0x32] ldrb r0, [r5] subs r0, #1 b _0809E4DA _0809E4D0: ldrh r0, [r4, #0x32] subs r0, #1 strh r0, [r4, #0x32] ldrb r0, [r5] adds r0, #1 _0809E4DA: strb r0, [r5] adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0809E4F4 bl sub_0805E780 _0809E4F4: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0809E500 sub_0809E500: @ 0x0809E500 push {lr} ldr r2, _0809E514 @ =gUnk_081242C8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809E514: .4byte gUnk_081242C8 thumb_func_start sub_0809E518 sub_0809E518: @ 0x0809E518 push {r4, r5, r6, lr} adds r6, r0, #0 movs r1, #1 strb r1, [r6, #0xc] ldrb r2, [r6, #0xa] adds r0, r2, #0 cmp r0, #0xff bne _0809E52E ldrb r0, [r6, #0xb] strb r0, [r6, #0x1e] b _0809E5CA _0809E52E: ands r1, r2 rsbs r0, r1, #0 orrs r0, r1 asrs r5, r0, #0x1f movs r0, #4 ands r5, r0 movs r0, #2 ands r0, r2 cmp r0, #0 beq _0809E5A4 ldr r0, _0809E5A0 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x44 bhi _0809E5B4 strb r5, [r6, #0x1e] adds r5, #1 movs r0, #0x9a movs r1, #0xff adds r2, r5, #0 bl sub_080A2960 adds r4, r0, #0 adds r0, r6, #0 adds r1, r4, #0 bl sub_0806FA24 adds r5, #1 movs r0, #0x9a movs r1, #0xff adds r2, r5, #0 bl sub_080A2960 adds r4, r0, #0 movs r3, #0x80 lsls r3, r3, #9 adds r0, r6, #0 adds r1, r4, #0 movs r2, #0 bl sub_0806FA48 adds r1, r4, #0 adds r1, #0x63 movs r0, #0xff strb r0, [r1] adds r5, #1 movs r0, #0x9a movs r1, #0xff adds r2, r5, #0 bl sub_080A2960 adds r4, r0, #0 adds r0, r6, #0 adds r1, r4, #0 bl sub_0806FA24 b _0809E5C4 .align 2, 0 _0809E5A0: .4byte gUnk_03003DBC _0809E5A4: adds r2, r5, #1 movs r0, #0x9a movs r1, #0xff bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 bne _0809E5BA _0809E5B4: bl sub_0805E780 b _0809E5C4 _0809E5BA: strb r5, [r6, #0x1e] adds r0, r6, #0 adds r1, r4, #0 bl sub_0806FA24 _0809E5C4: adds r0, r6, #0 bl sub_0809E5F0 _0809E5CA: ldrb r1, [r6, #0x1e] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0809E5E8 ldrb r0, [r6, #0x19] movs r1, #0xc0 orrs r0, r1 strb r0, [r6, #0x19] adds r2, r6, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] _0809E5E8: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start nullsub_125 nullsub_125: @ 0x0809E5EC bx lr .align 2, 0 thumb_func_start sub_0809E5F0 sub_0809E5F0: @ 0x0809E5F0 push {r4, r5, lr} movs r2, #0x2e ldrsh r1, [r0, r2] ldr r4, _0809E628 @ =gUnk_03000BF0 ldrh r2, [r4, #6] subs r1, r1, r2 asrs r5, r1, #4 movs r3, #0x3f ands r5, r3 movs r2, #0x32 ldrsh r1, [r0, r2] ldrh r2, [r4, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r3 lsls r1, r1, #6 orrs r5, r1 adds r1, r0, #0 adds r1, #0x80 strh r5, [r1] ldrb r0, [r0, #0xa] cmp r0, #1 beq _0809E708 cmp r0, #1 bgt _0809E62C cmp r0, #0 beq _0809E64E b _0809E792 .align 2, 0 _0809E628: .4byte gUnk_03000BF0 _0809E62C: cmp r0, #2 beq _0809E636 cmp r0, #3 beq _0809E6F0 b _0809E792 _0809E636: ldr r0, _0809E6DC @ =0x00004022 adds r1, r5, #0 subs r1, #0x3d movs r2, #1 bl sub_0800015E ldr r0, _0809E6E0 @ =0x0000406D adds r1, r5, #0 subs r1, #0x3c movs r2, #1 bl sub_0800015E _0809E64E: ldr r0, _0809E6E4 @ =0x0000406C adds r1, r5, #0 subs r1, #0x42 movs r2, #1 bl sub_0800015E ldr r4, _0809E6DC @ =0x00004022 adds r1, r5, #0 subs r1, #0x41 adds r0, r4, #0 movs r2, #1 bl sub_0800015E adds r1, r5, #0 subs r1, #0x40 adds r0, r4, #0 movs r2, #1 bl sub_0800015E adds r1, r5, #0 subs r1, #0x3f adds r0, r4, #0 movs r2, #1 bl sub_0800015E subs r1, r5, #2 adds r0, r4, #0 movs r2, #1 bl sub_0800015E subs r1, r5, #1 adds r0, r4, #0 movs r2, #1 bl sub_0800015E adds r0, r4, #0 adds r1, r5, #0 movs r2, #1 bl sub_0800015E adds r1, r5, #1 adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r0, _0809E6E8 @ =0x0000406E adds r1, r5, #0 adds r1, #0x3e movs r2, #1 bl sub_0800015E adds r1, r5, #0 adds r1, #0x3f adds r0, r4, #0 movs r2, #1 bl sub_0800015E adds r1, r5, #0 adds r1, #0x40 adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r0, _0809E6EC @ =0x0000406F adds r1, r5, #0 adds r1, #0x41 movs r2, #1 bl sub_0800015E b _0809E792 .align 2, 0 _0809E6DC: .4byte 0x00004022 _0809E6E0: .4byte 0x0000406D _0809E6E4: .4byte 0x0000406C _0809E6E8: .4byte 0x0000406E _0809E6EC: .4byte 0x0000406F _0809E6F0: ldr r0, _0809E794 @ =0x00004022 adds r1, r5, #0 subs r1, #0x44 movs r2, #1 bl sub_0800015E ldr r0, _0809E798 @ =0x0000406C adds r1, r5, #0 subs r1, #0x45 movs r2, #1 bl sub_0800015E _0809E708: ldr r4, _0809E794 @ =0x00004022 adds r1, r5, #0 subs r1, #0x42 adds r0, r4, #0 movs r2, #1 bl sub_0800015E adds r1, r5, #0 subs r1, #0x41 adds r0, r4, #0 movs r2, #1 bl sub_0800015E adds r1, r5, #0 subs r1, #0x40 adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r0, _0809E79C @ =0x0000406D adds r1, r5, #0 subs r1, #0x3f movs r2, #1 bl sub_0800015E subs r1, r5, #2 adds r0, r4, #0 movs r2, #1 bl sub_0800015E subs r1, r5, #1 adds r0, r4, #0 movs r2, #1 bl sub_0800015E adds r0, r4, #0 adds r1, r5, #0 movs r2, #1 bl sub_0800015E adds r1, r5, #1 adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r0, _0809E7A0 @ =0x0000406E adds r1, r5, #0 adds r1, #0x3e movs r2, #1 bl sub_0800015E adds r1, r5, #0 adds r1, #0x3f adds r0, r4, #0 movs r2, #1 bl sub_0800015E adds r1, r5, #0 adds r1, #0x40 adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r0, _0809E7A4 @ =0x0000406F adds r1, r5, #0 adds r1, #0x41 movs r2, #1 bl sub_0800015E _0809E792: pop {r4, r5, pc} .align 2, 0 _0809E794: .4byte 0x00004022 _0809E798: .4byte 0x0000406C _0809E79C: .4byte 0x0000406D _0809E7A0: .4byte 0x0000406E _0809E7A4: .4byte 0x0000406F thumb_func_start sub_0809E7A8 sub_0809E7A8: @ 0x0809E7A8 push {lr} ldr r2, _0809E7BC @ =gUnk_081242D0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809E7BC: .4byte gUnk_081242D0 thumb_func_start sub_0809E7C0 sub_0809E7C0: @ 0x0809E7C0 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xb] cmp r0, #0xff beq _0809E7D4 adds r0, r4, #0 bl sub_0809E7FC _0809E7D4: ldrb r1, [r4, #0xa] adds r0, r4, #0 bl sub_08004260 pop {r4, pc} .align 2, 0 thumb_func_start sub_0809E7E0 sub_0809E7E0: @ 0x0809E7E0 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 _0809E7F8 bl sub_0805E780 _0809E7F8: pop {r4, pc} .align 2, 0 thumb_func_start sub_0809E7FC sub_0809E7FC: @ 0x0809E7FC push {lr} adds r1, r0, #0 ldrb r3, [r1, #0xb] lsls r3, r3, #1 ldr r0, _0809E820 @ =gUnk_081242D8 adds r3, r3, r0 ldr r0, [r1, #0x50] movs r2, #0 ldrsb r2, [r3, r2] lsls r2, r2, #0x10 ldrb r3, [r3, #1] lsls r3, r3, #0x18 asrs r3, r3, #0x18 lsls r3, r3, #0x10 bl sub_0806FA48 pop {pc} .align 2, 0 _0809E820: .4byte gUnk_081242D8 thumb_func_start sub_0809E824 sub_0809E824: @ 0x0809E824 push {lr} ldr r2, _0809E838 @ =gUnk_08124354 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809E838: .4byte gUnk_08124354 thumb_func_start sub_0809E83C sub_0809E83C: @ 0x0809E83C push {r4, lr} adds r4, r0, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _0809E856 adds r0, r4, #0 bl sub_0809E96C bl sub_0805E780 _0809E856: movs r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 pop {r4, pc} .align 2, 0 thumb_func_start sub_0809E86C sub_0809E86C: @ 0x0809E86C push {r4, lr} adds r4, r0, #0 ldr r1, _0809E8B4 @ =gUnk_03001160 movs r2, #0x30 movs r3, #0x30 bl sub_0800419C cmp r0, #0 beq _0809E89A movs r0, #0x14 bl sub_0807CC30 cmp r0, #0 beq _0809E89A ldr r0, _0809E8B8 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #3 ands r0, r1 cmp r0, #0 bne _0809E89A adds r0, r4, #0 bl sub_080A2B80 _0809E89A: bl sub_0809E9A0 cmp r0, #0x54 bne _0809E8B0 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0xf strb r0, [r4, #0xe] movs r0, #1 bl sub_08078A90 _0809E8B0: pop {r4, pc} .align 2, 0 _0809E8B4: .4byte gUnk_03001160 _0809E8B8: .4byte gUnk_030010A0 thumb_func_start sub_0809E8BC sub_0809E8BC: @ 0x0809E8BC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0809E8E8 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #0x40 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_0809E96C adds r0, r4, #0 bl sub_0809E918 _0809E8E8: pop {r4, pc} .align 2, 0 thumb_func_start sub_0809E8EC sub_0809E8EC: @ 0x0809E8EC 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 _0809E916 adds r0, r1, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 movs r0, #0 bl sub_08078A90 movs r0, #0x73 bl sub_080A3268 bl sub_0805E780 _0809E916: pop {pc} thumb_func_start sub_0809E918 sub_0809E918: @ 0x0809E918 push {r4, r5, r6, lr} adds r5, r0, #0 ldr r4, _0809E964 @ =gUnk_08124364 movs r1, #0 ldrsh r0, [r4, r1] ldr r1, _0809E968 @ =0xFFFFFC18 cmp r0, r1 beq _0809E962 adds r6, r1, #0 _0809E92A: adds r0, r5, #0 movs r1, #3 movs r2, #0 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _0809E958 ldrh r0, [r4] ldrh r1, [r2, #0x2e] adds r0, r0, r1 strh r0, [r2, #0x2e] ldrh r0, [r4, #2] ldrh r1, [r2, #0x32] adds r0, r0, r1 strh r0, [r2, #0x32] adds r1, r2, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r2, #0 bl sub_08016A04 _0809E958: adds r4, #4 movs r1, #0 ldrsh r0, [r4, r1] cmp r0, r6 bne _0809E92A _0809E962: pop {r4, r5, r6, pc} .align 2, 0 _0809E964: .4byte gUnk_08124364 _0809E968: .4byte 0xFFFFFC18 thumb_func_start sub_0809E96C sub_0809E96C: @ 0x0809E96C push {r4, r5, lr} adds r4, r0, #0 movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _0809E99C @ =gUnk_03000BF0 ldrh r1, [r2, #6] adds r1, #0x20 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] adds r2, #8 subs r1, r1, r2 asrs r1, r1, #4 ands r1, r3 lsls r1, r1, #6 orrs r0, r1 bl sub_08018C1C pop {r4, r5, pc} .align 2, 0 _0809E99C: .4byte gUnk_03000BF0 thumb_func_start sub_0809E9A0 sub_0809E9A0: @ 0x0809E9A0 push {r4, r5, r6, lr} ldr r5, _0809E9B0 @ =gUnk_03001160 ldrb r2, [r5, #0xc] cmp r2, #6 beq _0809E9B4 movs r0, #0 b _0809E9F0 .align 2, 0 _0809E9B0: .4byte gUnk_03001160 _0809E9B4: ldrb r0, [r5, #0x14] ands r2, r0 lsls r2, r2, #1 ldr r0, _0809E9F4 @ =gUnk_080B4468 adds r2, r2, r0 movs r1, #0x2e ldrsh r0, [r5, r1] movs r3, #0 ldrsh r1, [r2, r3] adds r0, r0, r1 ldr r4, _0809E9F8 @ =gUnk_03000BF0 ldrh r1, [r4, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r3, #0x3f ands r0, r3 movs r6, #0x32 ldrsh r1, [r5, r6] movs r5, #2 ldrsh r2, [r2, r5] 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 movs r1, #1 bl sub_080002C8 _0809E9F0: pop {r4, r5, r6, pc} .align 2, 0 _0809E9F4: .4byte gUnk_080B4468 _0809E9F8: .4byte gUnk_03000BF0 thumb_func_start sub_0809E9FC sub_0809E9FC: @ 0x0809E9FC push {r4, lr} adds r4, r0, #0 ldr r1, _0809EA18 @ =gUnk_081243B4 ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_0809EB30 pop {r4, pc} .align 2, 0 _0809EA18: .4byte gUnk_081243B4 thumb_func_start sub_0809EA1C sub_0809EA1C: @ 0x0809EA1C push {lr} ldr r2, _0809EA30 @ =gUnk_081243BC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809EA30: .4byte gUnk_081243BC thumb_func_start sub_0809EA34 sub_0809EA34: @ 0x0809EA34 push {r4, lr} adds r4, r0, #0 movs r2, #0 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] strb r2, [r4, #0x1e] adds r1, r4, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] adds r1, #4 movs r0, #0x48 strb r0, [r1] subs r1, #1 movs r0, #0x28 strb r0, [r1] subs r1, #4 movs r0, #0xa strb r0, [r1] ldr r0, _0809EA7C @ =gUnk_080FD150 str r0, [r4, #0x48] adds r0, r4, #0 bl sub_0809EAD8 adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 bl sub_0809EABC pop {r4, pc} .align 2, 0 _0809EA7C: .4byte gUnk_080FD150 thumb_func_start sub_0809EA80 sub_0809EA80: @ 0x0809EA80 push {r4, r5, lr} adds r5, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0809EAB4 adds r4, r5, #0 adds r4, #0x86 ldrh r0, [r4] bl sub_0807CBE4 cmp r0, #0 beq _0809EAA6 ldrh r0, [r4] bl sub_0807CD48 b _0809EAAC _0809EAA6: ldrh r0, [r4] bl sub_0807CCC8 _0809EAAC: movs r0, #0x88 lsls r0, r0, #1 bl sub_08004488 _0809EAB4: adds r0, r5, #0 bl sub_0809EABC pop {r4, r5, pc} thumb_func_start sub_0809EABC sub_0809EABC: @ 0x0809EABC push {r4, lr} adds r4, r0, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 rsbs r1, r0, #0 orrs r1, r0 lsrs r1, r1, #0x1f ldrb r0, [r4, #0x1e] cmp r0, r1 beq _0809EAD6 strb r1, [r4, #0x1e] _0809EAD6: pop {r4, pc} thumb_func_start sub_0809EAD8 sub_0809EAD8: @ 0x0809EAD8 push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r0, [r5, #0xb] cmp r0, #0 beq _0809EAF8 bl sub_0804B128 str r0, [r5, #0x54] adds r1, r5, #0 adds r1, #0x54 adds r2, r5, #0 adds r2, #0x74 adds r0, r5, #0 bl sub_080A2CC0 b _0809EB24 _0809EAF8: ldr r0, _0809EB28 @ =0x00004050 movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _0809EB2C @ =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 _0809EB24: pop {r4, r5, r6, pc} .align 2, 0 _0809EB28: .4byte 0x00004050 _0809EB2C: .4byte gUnk_03000BF0 thumb_func_start sub_0809EB30 sub_0809EB30: @ 0x0809EB30 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xb] cmp r0, #0 beq _0809EB64 ldrb r1, [r4, #0x15] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0809EB4A adds r0, r4, #0 bl sub_0806F69C _0809EB4A: adds r2, r4, #0 adds r2, #0x74 ldrh r0, [r2] subs r0, #1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 bne _0809EB64 adds r1, r4, #0 adds r1, #0x54 adds r0, r4, #0 bl sub_080A2CC0 _0809EB64: pop {r4, pc} .align 2, 0 thumb_func_start sub_0809EB68 sub_0809EB68: @ 0x0809EB68 push {lr} ldr r2, _0809EB7C @ =gUnk_081243C4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809EB7C: .4byte gUnk_081243C4 thumb_func_start sub_0809EB80 sub_0809EB80: @ 0x0809EB80 push {r4, r5, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] movs r5, #3 strb r5, [r4, #0x1e] adds r1, r4, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] adds r1, #4 movs r0, #0x48 strb r0, [r1] subs r1, #1 movs r0, #0x28 strb r0, [r1] subs r1, #4 movs r0, #0xa strb r0, [r1] ldr r0, _0809EBD4 @ =gUnk_080FD150 str r0, [r4, #0x48] adds r0, r4, #0 bl sub_0809EAD8 adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 adds r0, #0x84 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _0809EBD2 strb r5, [r4, #0xc] movs r0, #2 strb r0, [r4, #0x1e] _0809EBD2: pop {r4, r5, pc} .align 2, 0 _0809EBD4: .4byte gUnk_080FD150 thumb_func_start sub_0809EBD8 sub_0809EBD8: @ 0x0809EBD8 push {lr} adds r2, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0809EC04 movs r1, #2 strb r1, [r2, #0xc] movs r0, #0x10 strb r0, [r2, #0xe] strb r1, [r2, #0x1e] adds r0, r2, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 movs r0, #0x88 lsls r0, r0, #1 bl sub_08004488 _0809EC04: pop {pc} .align 2, 0 thumb_func_start sub_0809EC08 sub_0809EC08: @ 0x0809EC08 push {r4, lr} adds r4, r0, #0 adds r0, #0x84 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _0809EC1E movs r0, #3 strb r0, [r4, #0xc] b _0809EC44 _0809EC1E: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0809EC44 movs r0, #1 strb r0, [r4, #0xc] movs r0, #3 strb r0, [r4, #0x1e] adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CD48 movs r0, #0x88 lsls r0, r0, #1 bl sub_08004488 _0809EC44: pop {r4, pc} .align 2, 0 thumb_func_start nullsub_126 nullsub_126: @ 0x0809EC48 bx lr .align 2, 0 thumb_func_start sub_0809EC4C sub_0809EC4C: @ 0x0809EC4C push {r4, r5, r6, lr} adds r6, r0, #0 ldrb r3, [r6, #0xc] cmp r3, #0 bne _0809ED14 movs r4, #1 strb r4, [r6, #0xc] adds r2, r6, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] ldrb r0, [r6, #0xa] cmp r0, #0 bne _0809ED04 ldrb r0, [r6, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r6, #0x10] strb r4, [r6, #0x1e] adds r5, r6, #0 adds r5, #0x38 strb r4, [r5] adds r1, r6, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] adds r1, #4 movs r0, #0x48 strb r0, [r1] subs r1, #1 movs r0, #0x7a strb r0, [r1] adds r0, r6, #0 adds r0, #0x3b strb r4, [r0] ldr r0, _0809ECF4 @ =gUnk_080FD168 str r0, [r6, #0x48] movs r0, #0x2e ldrsh r4, [r6, r0] ldr r1, _0809ECF8 @ =gUnk_03000BF0 ldrh r0, [r1, #6] subs r4, r4, r0 asrs r4, r4, #4 movs r2, #0x3f ands r4, r2 movs r3, #0x32 ldrsh r0, [r6, r3] ldrh r1, [r1, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r4, r0 ldr r0, _0809ECFC @ =0x00004066 subs r1, r4, #1 ldrb r2, [r5] bl sub_0800015E ldr r0, _0809ED00 @ =0x00004065 ldrb r2, [r5] adds r1, r4, #0 bl sub_0800015E adds r0, r6, #0 bl sub_08016A04 movs r0, #0x9e movs r1, #1 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _0809ED14 str r1, [r6, #0x54] adds r0, r6, #0 bl sub_0806FA24 b _0809ED14 .align 2, 0 _0809ECF4: .4byte gUnk_080FD168 _0809ECF8: .4byte gUnk_03000BF0 _0809ECFC: .4byte 0x00004066 _0809ED00: .4byte 0x00004065 _0809ED04: strb r3, [r6, #0x1e] adds r1, r6, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r6, #0 bl sub_08016A04 _0809ED14: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0809ED18 sub_0809ED18: @ 0x0809ED18 push {lr} ldr r2, _0809ED2C @ =gUnk_081243D4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809ED2C: .4byte gUnk_081243D4 thumb_func_start sub_0809ED30 sub_0809ED30: @ 0x0809ED30 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] movs r1, #2 eors r0, r1 lsls r0, r0, #3 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_0809EE34 adds r0, r4, #0 bl sub_0809EFB0 ldrb r1, [r4, #0xa] adds r0, r4, #0 bl sub_08004260 pop {r4, pc} thumb_func_start sub_0809ED54 sub_0809ED54: @ 0x0809ED54 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x84 ldrh r0, [r1] cmp r0, #0 beq _0809ED6A bl sub_0807CBE4 cmp r0, #0 beq _0809ED86 _0809ED6A: ldrb r0, [r4, #0xb] cmp r0, #1 bne _0809ED80 adds r1, r4, #0 adds r1, #0x74 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0809ED86 _0809ED80: adds r0, r4, #0 bl sub_0809EE08 _0809ED86: pop {r4, pc} thumb_func_start sub_0809ED88 sub_0809ED88: @ 0x0809ED88 push {r4, lr} adds r4, r0, #0 bl sub_0809F08C adds r0, r4, #0 bl sub_0809EE44 adds r0, r4, #0 adds r0, #0x86 ldrh r2, [r0] cmp r2, #0 beq _0809EDC6 adds r1, r4, #0 adds r1, #0x84 ldrh r0, [r1] cmp r0, r2 bne _0809EDB4 bl sub_0807CBE4 cmp r0, #0 bne _0809EDE2 b _0809EDBE _0809EDB4: ldrh r0, [r1] bl sub_0807CBE4 cmp r0, #0 beq _0809EDE2 _0809EDBE: adds r0, r4, #0 bl sub_0809EE24 b _0809EDE2 _0809EDC6: ldrb r0, [r4, #0xb] cmp r0, #1 bne _0809EDE2 adds r1, r4, #0 adds r1, #0x74 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0809EDE2 adds r0, r4, #0 bl sub_0809EE24 _0809EDE2: pop {r4, pc} thumb_func_start sub_0809EDE4 sub_0809EDE4: @ 0x0809EDE4 push {r4, lr} adds r4, r0, #0 bl sub_0809F08C adds r0, r4, #0 bl sub_0809EE44 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0809EE06 adds r0, r4, #0 bl sub_0809EE34 _0809EE06: pop {r4, pc} thumb_func_start sub_0809EE08 sub_0809EE08: @ 0x0809EE08 push {lr} movs r1, #2 strb r1, [r0, #0xc] adds r1, r0, #0 adds r1, #0x7f ldrb r1, [r1] lsls r1, r1, #2 adds r2, r0, #0 adds r2, #0x74 strh r1, [r2] ldrb r1, [r0, #0xa] bl sub_08004260 pop {pc} thumb_func_start sub_0809EE24 sub_0809EE24: @ 0x0809EE24 push {lr} movs r1, #3 strb r1, [r0, #0xc] ldrb r1, [r0, #0xa] adds r1, #4 bl sub_08004260 pop {pc} thumb_func_start sub_0809EE34 sub_0809EE34: @ 0x0809EE34 movs r1, #1 strb r1, [r0, #0xc] ldrb r1, [r0, #0xe] lsls r1, r1, #2 adds r0, #0x74 strh r1, [r0] bx lr .align 2, 0 thumb_func_start sub_0809EE44 sub_0809EE44: @ 0x0809EE44 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r0, #0x5a ldrb r0, [r0] movs r1, #7 ands r1, r0 adds r0, r5, #0 adds r0, #0x7e ldrb r0, [r0] lsls r0, r1 strh r0, [r5, #0x24] cmp r1, #0 bne _0809EE60 b _0809EF74 _0809EE60: ldr r4, _0809EEA4 @ =gUnk_03001160 adds r0, r5, #0 adds r1, r4, #0 bl sub_0809EF78 cmp r0, #0 beq _0809EE80 bl sub_08079F8C cmp r0, #0 beq _0809EE80 movs r1, #0x24 ldrsh r0, [r5, r1] ldrb r1, [r5, #0x15] bl sub_08079E58 _0809EE80: ldr r6, _0809EEA8 @ =gUnk_03003D80 ldr r4, [r6, #4] cmp r6, r4 beq _0809EF74 _0809EE88: ldrb r0, [r4, #8] cmp r0, #8 bne _0809EF6E movs r3, #0 ldrb r0, [r4, #9] subs r0, #2 cmp r0, #0x17 bhi _0809EF52 lsls r0, r0, #2 ldr r1, _0809EEAC @ =_0809EEB0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809EEA4: .4byte gUnk_03001160 _0809EEA8: .4byte gUnk_03003D80 _0809EEAC: .4byte _0809EEB0 _0809EEB0: @ jump table .4byte _0809EF1E @ case 0 .4byte _0809EF26 @ case 1 .4byte _0809EF48 @ case 2 .4byte _0809EF52 @ case 3 .4byte _0809EF52 @ case 4 .4byte _0809EF52 @ case 5 .4byte _0809EF52 @ case 6 .4byte _0809EF52 @ case 7 .4byte _0809EF52 @ case 8 .4byte _0809EF52 @ case 9 .4byte _0809EF52 @ case 10 .4byte _0809EF52 @ case 11 .4byte _0809EF52 @ case 12 .4byte _0809EF52 @ case 13 .4byte _0809EF52 @ case 14 .4byte _0809EF50 @ case 15 .4byte _0809EF52 @ case 16 .4byte _0809EF10 @ case 17 .4byte _0809EF52 @ case 18 .4byte _0809EF52 @ case 19 .4byte _0809EF52 @ case 20 .4byte _0809EF52 @ case 21 .4byte _0809EF52 @ case 22 .4byte _0809EF50 @ case 23 _0809EF10: ldrb r0, [r4, #0xc] cmp r0, #2 bne _0809EF56 ldrb r0, [r4, #0xd] cmp r0, #1 bls _0809EF52 b _0809EF56 _0809EF1E: ldrb r0, [r4, #0xc] cmp r0, #2 beq _0809EF52 b _0809EF56 _0809EF26: ldr r2, _0809EF44 @ =gUnk_03001160 movs r7, #0x2e ldrsh r1, [r4, r7] movs r7, #0x2e ldrsh r0, [r2, r7] cmp r1, r0 bne _0809EF56 movs r0, #0x32 ldrsh r1, [r4, r0] movs r7, #0x32 ldrsh r0, [r2, r7] cmp r1, r0 beq _0809EF52 b _0809EF56 .align 2, 0 _0809EF44: .4byte gUnk_03001160 _0809EF48: ldrb r0, [r5, #0xf] cmp r0, #0 beq _0809EF52 b _0809EF56 _0809EF50: movs r3, #1 _0809EF52: cmp r3, #0 beq _0809EF6E _0809EF56: adds r0, r5, #0 adds r1, r4, #0 bl sub_0809EF78 cmp r0, #0 beq _0809EF6E movs r0, #0x24 ldrsh r1, [r5, r0] ldrb r2, [r5, #0x15] adds r0, r4, #0 bl sub_080044AE _0809EF6E: ldr r4, [r4, #4] cmp r6, r4 bne _0809EE88 _0809EF74: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0809EF78 sub_0809EF78: @ 0x0809EF78 push {r4, r5, lr} adds r3, r0, #0 adds r4, r1, #0 movs r5, #0 adds r0, #0x70 ldrh r2, [r0] movs r1, #0x2e ldrsh r0, [r4, r1] adds r1, r3, #0 adds r1, #0x6c ldrh r1, [r1] subs r0, r0, r1 cmp r2, r0 blo _0809EFAC adds r0, r3, #0 adds r0, #0x72 ldrh r2, [r0] movs r1, #0x32 ldrsh r0, [r4, r1] adds r1, r3, #0 adds r1, #0x6e ldrh r1, [r1] subs r0, r0, r1 cmp r2, r0 blo _0809EFAC movs r5, #1 _0809EFAC: adds r0, r5, #0 pop {r4, r5, pc} thumb_func_start sub_0809EFB0 sub_0809EFB0: @ 0x0809EFB0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r4, r0, #0 ldr r0, _0809F010 @ =gUnk_081243E4 ldrb r1, [r4, #0xa] lsls r1, r1, #1 adds r2, r1, r0 ldrb r2, [r2] lsls r2, r2, #0x18 asrs r2, r2, #0x18 mov sb, r2 adds r1, #1 adds r1, r1, r0 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 mov r8, r1 movs r0, #0x2e ldrsh r6, [r4, r0] movs r0, #0x32 ldrsh r5, [r4, r0] ldr r0, _0809F014 @ =gUnk_02027EB4 mov sl, r0 movs r7, #0 _0809EFE6: adds r7, #1 add r6, sb add r5, r8 mov r0, sl adds r1, r6, #0 adds r2, r5, #0 movs r3, #9 bl sub_080AE4CC cmp r0, #0 beq _0809EFE6 subs r0, r7, #1 lsls r7, r0, #4 ldrb r0, [r4, #0xa] cmp r0, #1 beq _0809F034 cmp r0, #1 bgt _0809F018 cmp r0, #0 beq _0809F022 b _0809F082 .align 2, 0 _0809F010: .4byte gUnk_081243E4 _0809F014: .4byte gUnk_02027EB4 _0809F018: cmp r0, #2 beq _0809F03E cmp r0, #3 beq _0809F064 b _0809F082 _0809F022: ldrh r0, [r4, #0x2e] subs r0, #0x10 adds r1, r4, #0 adds r1, #0x6c strh r0, [r1] ldrh r0, [r4, #0x32] adds r0, #8 adds r1, #2 b _0809F054 _0809F034: adds r1, r7, #0 adds r1, #8 ldrh r0, [r4, #0x2e] subs r0, r0, r1 b _0809F068 _0809F03E: ldrh r0, [r4, #0x2e] subs r0, #0x10 adds r1, r4, #0 adds r1, #0x6c strh r0, [r1] adds r1, r7, #0 adds r1, #8 ldrh r0, [r4, #0x32] subs r0, r0, r1 adds r1, r4, #0 adds r1, #0x6e _0809F054: strh r0, [r1] adds r1, #2 movs r0, #0x20 strh r0, [r1] adds r0, r4, #0 adds r0, #0x72 strh r7, [r0] b _0809F082 _0809F064: ldrh r0, [r4, #0x2e] adds r0, #8 _0809F068: adds r1, r4, #0 adds r1, #0x6c strh r0, [r1] ldrh r0, [r4, #0x32] subs r0, #0x10 adds r1, #2 strh r0, [r1] adds r0, r4, #0 adds r0, #0x70 strh r7, [r0] adds r1, #4 movs r0, #0x20 strh r0, [r1] _0809F082: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0809F08C sub_0809F08C: @ 0x0809F08C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] cmp r0, #0 beq _0809F09A subs r0, #1 strb r0, [r4, #0xf] _0809F09A: adds r0, r4, #0 bl sub_08004274 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _0809F0C0 movs r0, #0xdf ands r0, r1 strb r0, [r2] movs r0, #0x14 strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_0809F0E4 b _0809F0E0 _0809F0C0: movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0809F0E0 ldrb r0, [r4, #0xf] cmp r0, #0 bne _0809F0E0 movs r0, #0x14 strb r0, [r4, #0xf] ldrb r0, [r2] movs r1, #0x10 eors r0, r1 strb r0, [r2] adds r0, r4, #0 bl sub_0809F0E4 _0809F0E0: pop {r4, pc} .align 2, 0 thumb_func_start sub_0809F0E4 sub_0809F0E4: @ 0x0809F0E4 push {r4, r5, lr} adds r5, r0, #0 ldr r0, _0809F124 @ =0x00000183 bl sub_08004488 ldrb r0, [r5, #0xa] movs r1, #2 eors r1, r0 movs r0, #0xb2 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _0809F120 str r5, [r4, #0x50] ldrb r0, [r5, #0xa] lsls r0, r0, #1 ldr r1, _0809F128 @ =gUnk_081243EC adds r0, r0, r1 movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #0x10 movs r3, #1 ldrsb r3, [r0, r3] lsls r3, r3, #0x10 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA48 _0809F120: pop {r4, r5, pc} .align 2, 0 _0809F124: .4byte 0x00000183 _0809F128: .4byte gUnk_081243EC thumb_func_start sub_0809F12C sub_0809F12C: @ 0x0809F12C push {lr} ldr r2, _0809F140 @ =gUnk_08124670 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809F140: .4byte gUnk_08124670 thumb_func_start sub_0809F144 sub_0809F144: @ 0x0809F144 push {r4, r5, r6, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldr r0, _0809F188 @ =gUnk_080FD178 str r0, [r4, #0x48] ldr r0, _0809F18C @ =0x00004022 movs r2, #0x2e ldrsh r1, [r4, r2] ldr r3, _0809F190 @ =gUnk_03000BF0 ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 movs r5, #0x3f ands r1, r5 movs r6, #0x32 ldrsh r2, [r4, r6] ldrh r3, [r3, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r5 lsls r2, r2, #6 orrs r1, r2 adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E ldrb r1, [r4, #0xa] adds r0, r4, #0 bl sub_08004260 pop {r4, r5, r6, pc} .align 2, 0 _0809F188: .4byte gUnk_080FD178 _0809F18C: .4byte 0x00004022 _0809F190: .4byte gUnk_03000BF0 thumb_func_start sub_0809F194 sub_0809F194: @ 0x0809F194 push {lr} adds r2, r0, #0 ldr r0, [r2, #0x50] ldrb r0, [r0, #0xf] cmp r0, #1 bne _0809F1AE movs r0, #2 strb r0, [r2, #0xc] ldrb r1, [r2, #0xa] adds r1, #4 adds r0, r2, #0 bl sub_08004260 _0809F1AE: pop {pc} thumb_func_start sub_0809F1B0 sub_0809F1B0: @ 0x0809F1B0 push {r4, r5, lr} adds r4, r0, #0 bl sub_08004274 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r3, #1 adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _0809F20C movs r0, #0xfe ands r0, r1 strb r0, [r2] movs r0, #0x1b bl sub_080A7EE0 adds r5, r0, #0 cmp r5, #0 beq _0809F21E ldrb r0, [r4, #0xa] strb r0, [r5, #0xa] ldr r0, [r4, #0x50] str r0, [r5, #0x50] ldrb r0, [r4, #0xa] lsls r0, r0, #1 ldr r1, _0809F208 @ =gUnk_08124684 adds r0, r0, r1 movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #0x10 movs r3, #1 ldrsb r3, [r0, r3] lsls r3, r3, #0x10 adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA48 movs r0, #0xec bl sub_08004488 b _0809F21E .align 2, 0 _0809F208: .4byte gUnk_08124684 _0809F20C: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0809F21E strb r3, [r4, #0xc] ldrb r1, [r4, #0xa] adds r0, r4, #0 bl sub_08004260 _0809F21E: pop {r4, r5, pc} thumb_func_start sub_0809F220 sub_0809F220: @ 0x0809F220 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 _0809F242 movs r0, #4 strb r0, [r2, #0xc] movs r0, #0xf strb r0, [r2, #0xe] ldrb r1, [r2, #0xa] adds r0, r2, #0 bl sub_08004260 b _0809F252 _0809F242: ldr r0, [r2, #0x50] adds r0, #0x36 movs r1, #1 ldrb r2, [r2, #0xb] lsls r1, r2 ldrb r2, [r0] orrs r1, r2 strb r1, [r0] _0809F252: pop {pc} thumb_func_start sub_0809F254 sub_0809F254: @ 0x0809F254 push {r4, r5, lr} adds r3, r0, #0 ldrb r1, [r3, #0x18] lsls r0, r1, #0x1e lsrs r0, r0, #0x1e movs r5, #1 eors r0, r5 movs r4, #4 rsbs r4, r4, #0 adds r2, r4, #0 ands r2, r1 orrs r2, r0 strb r2, [r3, #0x18] ldrb r0, [r3, #0xe] subs r0, #1 strb r0, [r3, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0809F284 movs r0, #1 strb r5, [r3, #0xc] ands r2, r4 orrs r2, r0 strb r2, [r3, #0x18] _0809F284: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0809F288 sub_0809F288: @ 0x0809F288 push {lr} ldr r2, _0809F29C @ =gUnk_081246EC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809F29C: .4byte gUnk_081246EC thumb_func_start sub_0809F2A0 sub_0809F2A0: @ 0x0809F2A0 push {r4, r5, r6, lr} movs r1, #1 strb r1, [r0, #0xc] ldrb r1, [r0, #0xb] strb r1, [r0, #0x1e] ldrb r1, [r0, #0x19] movs r2, #0xc0 orrs r1, r2 strb r1, [r0, #0x19] adds r3, r0, #0 adds r3, #0x29 ldrb r1, [r3] movs r2, #7 orrs r1, r2 strb r1, [r3] ldr r5, _0809F2EC @ =0x00004069 movs r2, #0x2e ldrsh r1, [r0, r2] ldr r3, _0809F2F0 @ =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, [r0, r6] ldrh r3, [r3, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r4 lsls r2, r2, #6 orrs r1, r2 adds r0, #0x38 ldrb r2, [r0] adds r0, r5, #0 bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 _0809F2EC: .4byte 0x00004069 _0809F2F0: .4byte gUnk_03000BF0 thumb_func_start nullsub_537 nullsub_537: @ 0x0809F2F4 bx lr .align 2, 0 thumb_func_start sub_0809F2F8 sub_0809F2F8: @ 0x0809F2F8 push {r4, lr} adds r4, r0, #0 ldr r1, _0809F314 @ =gUnk_081246F4 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 _0809F314: .4byte gUnk_081246F4 thumb_func_start sub_0809F318 sub_0809F318: @ 0x0809F318 push {r4, lr} adds r4, r0, #0 movs r1, #0 bl sub_08004260 bl sub_08000E50 movs r1, #0x10 ands r1, r0 cmp r1, #0 beq _0809F336 ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x18] _0809F336: movs r0, #0x28 strh r0, [r4, #0x2e] movs r0, #0x48 strh r0, [r4, #0x32] ldr r0, _0809F36C @ =0x0000FFB0 strh r0, [r4, #0x36] ldrb r1, [r4, #0x1b] movs r0, #0x3f ands r0, r1 movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x1b] movs r0, #1 strb r0, [r4, #0xc] ldr r1, _0809F370 @ =gUnk_08124704 ldrb r0, [r4, #0xa] adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 bl sub_0801D2B4 adds r0, r4, #0 movs r1, #7 bl sub_0805E3A0 pop {r4, pc} .align 2, 0 _0809F36C: .4byte 0x0000FFB0 _0809F370: .4byte gUnk_08124704 thumb_func_start sub_0809F374 sub_0809F374: @ 0x0809F374 push {r4, lr} adds r4, r0, #0 bl sub_0806F69C movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] cmp r0, #1 bhi _0809F3AE movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_080044EC cmp r0, #1 bhi _0809F3C0 movs r0, #0 str r0, [r4, #0x34] movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_08004260 movs r0, #0xc3 lsls r0, r0, #1 bl sub_080A3268 b _0809F3E6 _0809F3AE: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_080044EC cmp r0, #0 beq _0809F3C8 cmp r0, #1 beq _0809F3D4 _0809F3C0: ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] b _0809F3E6 _0809F3C8: movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _0809F3D4: movs r0, #0 strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_0809F448 movs r0, #0xc3 lsls r0, r0, #1 bl sub_080A3268 _0809F3E6: pop {r4, pc} thumb_func_start sub_0809F3E8 sub_0809F3E8: @ 0x0809F3E8 push {lr} adds r2, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0809F404 movs r0, #3 strb r0, [r2, #0xc] adds r0, r2, #0 movs r1, #2 bl sub_08004260 _0809F404: pop {pc} .align 2, 0 thumb_func_start sub_0809F408 sub_0809F408: @ 0x0809F408 push {lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x5a ldrb r0, [r1] cmp r0, #9 beq _0809F41C cmp r0, #0x80 beq _0809F438 b _0809F442 _0809F41C: movs r0, #0 strb r0, [r1] adds r0, r2, #0 movs r1, #0x43 movs r2, #0 bl sub_080A29AC ldr r1, _0809F434 @ =gUnk_02000080 movs r0, #1 strb r0, [r1] b _0809F442 .align 2, 0 _0809F434: .4byte gUnk_02000080 _0809F438: ldr r1, _0809F444 @ =gUnk_02000080 movs r0, #1 strb r0, [r1, #4] bl sub_0805E780 _0809F442: pop {pc} .align 2, 0 _0809F444: .4byte gUnk_02000080 thumb_func_start sub_0809F448 sub_0809F448: @ 0x0809F448 push {r4, r5, r6, r7, lr} adds r6, r0, #0 bl sub_08000E50 adds r5, r0, #0 ldrb r0, [r6, #0xf] lsls r2, r0, #1 ldr r1, _0809F474 @ =gUnk_08124708 adds r7, r2, r1 adds r0, #1 strb r0, [r6, #0xf] ldr r1, [r6, #0x2c] movs r0, #0xa0 lsls r0, r0, #0xe subs r4, r0, r1 ldrb r0, [r7] cmp r0, #0 beq _0809F478 cmp r0, #1 beq _0809F492 b _0809F49C .align 2, 0 _0809F474: .4byte gUnk_08124708 _0809F478: movs r1, #0xc0 lsls r1, r1, #0xd adds r0, r5, #0 bl __modsi3 adds r4, r0, #0 movs r0, #0x80 lsls r0, r0, #0x11 ands r0, r5 cmp r0, #0 beq _0809F49C rsbs r4, r4, #0 b _0809F49C _0809F492: ldr r0, _0809F4BC @ =0xFFF80000 adds r1, r4, r0 ldr r0, _0809F4C0 @ =0x000FFFFF ands r0, r5 adds r4, r1, r0 _0809F49C: adds r0, r4, #0 cmp r4, #0 bge _0809F4A4 rsbs r0, r4, #0 _0809F4A4: ldrb r1, [r7, #1] lsls r1, r1, #8 bl __divsi3 strh r0, [r6, #0x24] adds r0, r4, #0 movs r1, #0 bl sub_080045DA lsrs r0, r0, #3 strb r0, [r6, #0x15] pop {r4, r5, r6, r7, pc} .align 2, 0 _0809F4BC: .4byte 0xFFF80000 _0809F4C0: .4byte 0x000FFFFF thumb_func_start sub_0809F4C4 sub_0809F4C4: @ 0x0809F4C4 push {lr} ldr r2, _0809F4D8 @ =gUnk_08124798 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809F4D8: .4byte gUnk_08124798 thumb_func_start sub_0809F4DC sub_0809F4DC: @ 0x0809F4DC push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xb] cmp r0, #0 bne _0809F4FC ldr r0, _0809F4F8 @ =gUnk_081247A0 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 b _0809F50C .align 2, 0 _0809F4F8: .4byte gUnk_081247A0 _0809F4FC: ldr r0, _0809F510 @ =gUnk_081247AC ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 _0809F50C: pop {pc} .align 2, 0 _0809F510: .4byte gUnk_081247AC thumb_func_start sub_0809F514 sub_0809F514: @ 0x0809F514 push {lr} movs r1, #1 strb r1, [r0, #0xc] movs r1, #0x78 strb r1, [r0, #0xe] ldrb r2, [r0, #0x18] subs r1, #0x7c ands r1, r2 strb r1, [r0, #0x18] adds r2, r0, #0 adds r2, #0x68 movs r1, #0xc strb r1, [r2] ldr r1, _0809F540 @ =gUnk_03000BF0 str r0, [r1, #0x30] ldr r2, _0809F544 @ =gUnk_02034490 movs r1, #0xff strb r1, [r2] bl sub_0809F7BC pop {pc} .align 2, 0 _0809F540: .4byte gUnk_03000BF0 _0809F544: .4byte gUnk_02034490 thumb_func_start sub_0809F548 sub_0809F548: @ 0x0809F548 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0809F590 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x5a strb r0, [r4, #0xe] adds r0, #0xc3 bl sub_080A3268 movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _0809F58C @ =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 bl sub_0809F814 b _0809F5A8 .align 2, 0 _0809F58C: .4byte gUnk_03000BF0 _0809F590: ldr r0, _0809F5AC @ =gUnk_030010A0 ldr r0, [r0] movs r1, #7 ands r0, r1 cmp r0, #0 bne _0809F5A2 adds r0, r4, #0 bl sub_0809F7BC _0809F5A2: adds r0, r4, #0 bl sub_0809F7F4 _0809F5A8: pop {r4, r5, pc} .align 2, 0 _0809F5AC: .4byte gUnk_030010A0 thumb_func_start sub_0809F5B0 sub_0809F5B0: @ 0x0809F5B0 push {lr} ldrb r1, [r0, #0xe] subs r1, #1 strb r1, [r0, #0xe] lsls r1, r1, #0x18 cmp r1, #0 bne _0809F5D4 movs r0, #0x73 bl sub_080A3268 movs r0, #0x24 bl sub_0807CD04 ldr r0, _0809F5D8 @ =gUnk_080DD750 bl sub_0804ADDC bl sub_0805E780 _0809F5D4: pop {pc} .align 2, 0 _0809F5D8: .4byte gUnk_080DD750 thumb_func_start sub_0809F5DC sub_0809F5DC: @ 0x0809F5DC movs r1, #1 strb r1, [r0, #0xc] ldrb r2, [r0, #0x18] subs r1, #5 ands r1, r2 strb r1, [r0, #0x18] adds r0, #0x68 movs r1, #0xc strb r1, [r0] bx lr thumb_func_start sub_0809F5F0 sub_0809F5F0: @ 0x0809F5F0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] bl sub_0807CC3C cmp r0, #0 beq _0809F614 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xe] movs r0, #3 bl sub_08078A90 bl sub_08078B48 ldr r0, _0809F618 @ =gUnk_03000BF0 str r4, [r0, #0x30] _0809F614: pop {r4, pc} .align 2, 0 _0809F618: .4byte gUnk_03000BF0 thumb_func_start sub_0809F61C sub_0809F61C: @ 0x0809F61C push {r4, r5, lr} adds r4, r0, #0 ldr r5, _0809F678 @ =gUnk_03000BF0 ldrb r1, [r5, #0xf] movs r0, #4 ands r0, r1 cmp r0, #0 bne _0809F694 ldrb r0, [r4, #0xe] cmp r0, #0x1e bne _0809F638 ldrb r0, [r4, #0xb] bl sub_0807CCB4 _0809F638: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0809F67C movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x78 strb r0, [r4, #0xe] adds r0, #0xa5 bl sub_080A3268 movs r1, #0x2e ldrsh r0, [r4, r1] ldrh r1, [r5, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r3, #0x3f ands r0, r3 movs r2, #0x32 ldrsh r1, [r4, r2] ldrh r2, [r5, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r3 lsls r1, r1, #6 orrs r0, r1 bl sub_0809F814 b _0809F694 .align 2, 0 _0809F678: .4byte gUnk_03000BF0 _0809F67C: ldr r0, _0809F698 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #7 ands r0, r1 cmp r0, #0 bne _0809F68E adds r0, r4, #0 bl sub_0809F7BC _0809F68E: adds r0, r4, #0 bl sub_0809F7F4 _0809F694: pop {r4, r5, pc} .align 2, 0 _0809F698: .4byte gUnk_030010A0 thumb_func_start sub_0809F69C sub_0809F69C: @ 0x0809F69C 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 _0809F6C0 movs r0, #0x1e strb r0, [r1, #0xe] movs r0, #4 strb r0, [r1, #0xc] ldr r1, _0809F6C4 @ =gUnk_03000BF0 ldr r0, _0809F6C8 @ =gUnk_03001160 str r0, [r1, #0x30] movs r0, #0x73 bl sub_080A3268 _0809F6C0: pop {pc} .align 2, 0 _0809F6C4: .4byte gUnk_03000BF0 _0809F6C8: .4byte gUnk_03001160 thumb_func_start sub_0809F6CC sub_0809F6CC: @ 0x0809F6CC push {lr} adds r2, r0, #0 ldr r0, _0809F6F8 @ =gUnk_03000BF0 ldrb r1, [r0, #0xf] movs r0, #4 ands r0, r1 cmp r0, #0 bne _0809F6F4 ldrb r0, [r2, #0xe] subs r0, #1 strb r0, [r2, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0809F6F4 ldr r0, _0809F6FC @ =gUnk_03003F80 adds r0, #0x8b movs r1, #1 strb r1, [r0] bl sub_0805E780 _0809F6F4: pop {pc} .align 2, 0 _0809F6F8: .4byte gUnk_03000BF0 _0809F6FC: .4byte gUnk_03003F80 thumb_func_start sub_0809F700 sub_0809F700: @ 0x0809F700 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0809F722 movs r0, #1 strb r0, [r4, #0xc] bl sub_08000E50 movs r1, #0x1e ands r0, r1 adds r0, #8 strb r0, [r4, #0xe] ldrb r1, [r4, #0x10] movs r0, #0xc orrs r0, r1 strb r0, [r4, #0x10] _0809F722: ldr r0, _0809F768 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #3 ands r0, r1 cmp r0, #0 bne _0809F750 bl sub_08000E50 ldr r3, _0809F76C @ =gUnk_081247C0 movs r2, #7 adds r1, r0, #0 ands r1, r2 adds r1, r1, r3 ldrb r1, [r1] movs r5, #0x62 strb r1, [r5, r4] lsrs r0, r0, #4 ands r0, r2 adds r0, r0, r3 ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x63 strb r0, [r1] _0809F750: adds r0, r4, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0809F766 bl sub_0805E780 _0809F766: pop {r4, r5, pc} .align 2, 0 _0809F768: .4byte gUnk_030010A0 _0809F76C: .4byte gUnk_081247C0 thumb_func_start sub_0809F770 sub_0809F770: @ 0x0809F770 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0xa3 movs r1, #1 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _0809F7B6 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA30 bl sub_08000E50 ldrh r2, [r4, #0x2e] subs r2, #0x10 movs r3, #0x1f adds r1, r0, #0 ands r1, r3 adds r2, r2, r1 strh r2, [r4, #0x2e] ldrh r2, [r4, #0x32] subs r2, #0x10 asrs r1, r0, #8 ands r1, r3 adds r2, r2, r1 strh r2, [r4, #0x32] asrs r0, r0, #0x10 movs r1, #3 ands r0, r1 strb r0, [r4, #0x1e] movs r0, #0xff strb r0, [r4, #0x15] _0809F7B6: adds r0, r4, #0 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0809F7BC sub_0809F7BC: @ 0x0809F7BC push {r4, r5, r6, r7, lr} adds r6, r0, #0 movs r5, #0 ldr r7, _0809F7F0 @ =gUnk_081247C8 _0809F7C4: adds r0, r6, #0 bl sub_0809F770 adds r4, r0, #0 cmp r4, #0 beq _0809F7E8 bl sub_08000E50 movs r1, #3 ands r1, r0 lsls r1, r1, #1 adds r1, r1, r7 ldrh r1, [r1] strh r1, [r4, #0x24] lsrs r0, r0, #8 movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] _0809F7E8: adds r5, #1 cmp r5, #7 bls _0809F7C4 pop {r4, r5, r6, r7, pc} .align 2, 0 _0809F7F0: .4byte gUnk_081247C8 thumb_func_start sub_0809F7F4 sub_0809F7F4: @ 0x0809F7F4 push {lr} adds r1, r0, #0 adds r1, #0x68 ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 bne _0809F812 movs r0, #0xc strb r0, [r1] movs r0, #0xc2 lsls r0, r0, #1 bl sub_080A3268 _0809F812: pop {pc} thumb_func_start sub_0809F814 sub_0809F814: @ 0x0809F814 push {lr} adds r1, r0, #0 ldr r0, _0809F824 @ =gUnk_081247D0 movs r2, #1 bl sub_0807BB68 pop {pc} .align 2, 0 _0809F824: .4byte gUnk_081247D0 thumb_func_start sub_0809F828 sub_0809F828: @ 0x0809F828 push {lr} ldr r2, _0809F83C @ =gUnk_081247F8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809F83C: .4byte gUnk_081247F8 thumb_func_start sub_0809F840 sub_0809F840: @ 0x0809F840 push {lr} adds r2, r0, #0 movs r1, #0 movs r0, #1 strb r0, [r2, #0xc] strb r1, [r2, #0x1e] movs r0, #0x20 strb r0, [r2, #0xe] strb r1, [r2, #0xf] ldrb r0, [r2, #0xb] cmp r0, #0 beq _0809F860 ldrb r0, [r2, #0x18] movs r1, #0x40 orrs r0, r1 strb r0, [r2, #0x18] _0809F860: adds r0, r2, #0 bl sub_08016A04 pop {pc} thumb_func_start sub_0809F868 sub_0809F868: @ 0x0809F868 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xe] subs r0, #1 strb r0, [r1, #0xe] movs r2, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _0809F8A2 ldrb r0, [r1, #0xf] cmp r0, #0 bne _0809F890 ldrb r0, [r1, #0x1e] adds r0, #1 strb r0, [r1, #0x1e] ands r0, r2 cmp r0, #3 bne _0809F89E movs r0, #1 b _0809F89C _0809F890: ldrb r0, [r1, #0x1e] subs r0, #1 strb r0, [r1, #0x1e] ands r0, r2 cmp r0, #0 bne _0809F89E _0809F89C: strb r0, [r1, #0xf] _0809F89E: movs r0, #0x20 strb r0, [r1, #0xe] _0809F8A2: pop {pc} thumb_func_start sub_0809F8A4 sub_0809F8A4: @ 0x0809F8A4 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 ldr r0, _0809F904 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x42 bhi _0809F8FC movs r5, #0 _0809F8B6: movs r0, #0x1d bl sub_080A7EE0 adds r4, r0, #0 cmp r5, #0 bne _0809F8C6 mov r8, r4 adds r7, r4, #0 _0809F8C6: strb r5, [r4, #0xa] mov r0, r8 str r0, [r4, #0x50] str r7, [r4, #0x54] adds r0, r6, #0 adds r1, r4, #0 bl sub_0806FA24 adds r1, r4, #0 adds r1, #0x68 adds r3, r5, #1 movs r2, #7 _0809F8DE: ldrh r0, [r6, #0x2e] strh r0, [r1] adds r1, #2 ldrh r0, [r6, #0x32] strh r0, [r1] adds r1, #2 subs r2, #1 cmp r2, #0 bge _0809F8DE adds r7, r4, #0 adds r5, r3, #0 cmp r5, #4 ble _0809F8B6 bl sub_0805E780 _0809F8FC: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0809F904: .4byte gUnk_03003DBC thumb_func_start sub_0809F908 sub_0809F908: @ 0x0809F908 push {lr} ldr r2, _0809F91C @ =gUnk_08124800 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809F91C: .4byte gUnk_08124800 thumb_func_start sub_0809F920 sub_0809F920: @ 0x0809F920 push {r4, lr} adds r4, r0, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _0809F934 bl sub_0805E780 _0809F934: movs r2, #1 strb r2, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] adds r1, #4 movs r0, #0x48 strb r0, [r1] adds r0, r4, #0 adds r0, #0x3f strb r2, [r0] subs r1, #5 movs r0, #2 strb r0, [r1] ldr r0, _0809F960 @ =gUnk_080FD150 str r0, [r4, #0x48] pop {r4, pc} .align 2, 0 _0809F960: .4byte gUnk_080FD150 thumb_func_start sub_0809F964 sub_0809F964: @ 0x0809F964 push {r4, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0xa1 bne _0809F9A8 adds r0, r4, #0 movs r1, #0x4e movs r2, #0 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _0809F99A adds r3, r2, #0 adds r3, #0x29 ldrb r1, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r3] adds r1, r2, #0 adds r1, #0x63 movs r0, #0xfb strb r0, [r1] _0809F99A: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 bl sub_0805E780 _0809F9A8: pop {r4, pc} .align 2, 0 thumb_func_start sub_0809F9AC sub_0809F9AC: @ 0x0809F9AC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0809F9D2 movs r0, #1 strb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #9 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #0 bl sub_08004260 _0809F9D2: adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 thumb_func_start sub_0809F9DC sub_0809F9DC: @ 0x0809F9DC push {r4, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0809FA9A movs r0, #0x7f ands r0, r1 cmp r0, #0x1f bhi _0809FA9A lsls r0, r0, #2 ldr r1, _0809FA00 @ =_0809FA04 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809FA00: .4byte _0809FA04 _0809FA04: @ jump table .4byte _0809FA84 @ case 0 .4byte _0809FA84 @ case 1 .4byte _0809FA9A @ case 2 .4byte _0809FA9A @ case 3 .4byte _0809FA84 @ case 4 .4byte _0809FA84 @ case 5 .4byte _0809FA84 @ case 6 .4byte _0809FA9A @ case 7 .4byte _0809FA84 @ case 8 .4byte _0809FA84 @ case 9 .4byte _0809FA84 @ case 10 .4byte _0809FA84 @ case 11 .4byte _0809FA84 @ case 12 .4byte _0809FA9A @ case 13 .4byte _0809FA9A @ case 14 .4byte _0809FA9A @ case 15 .4byte _0809FA9A @ case 16 .4byte _0809FA9A @ case 17 .4byte _0809FA9A @ case 18 .4byte _0809FA9A @ case 19 .4byte _0809FA9A @ case 20 .4byte _0809FA9A @ case 21 .4byte _0809FA9A @ case 22 .4byte _0809FA9A @ case 23 .4byte _0809FA9A @ case 24 .4byte _0809FA9A @ case 25 .4byte _0809FA9A @ case 26 .4byte _0809FA9A @ case 27 .4byte _0809FA9A @ case 28 .4byte _0809FA9A @ case 29 .4byte _0809FA84 @ case 30 .4byte _0809FA84 @ case 31 _0809FA84: movs r0, #5 strb r0, [r4, #0xc] ldr r0, _0809FAB4 @ =gUnk_03001160 str r0, [r4, #0x54] ldrb r0, [r4, #0xa] movs r1, #0 movs r2, #0 bl sub_080A7C00 bl sub_0805E780 _0809FA9A: ldr r0, _0809FAB8 @ =gUnk_08124824 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_08080CB4 pop {r4, pc} .align 2, 0 _0809FAB4: .4byte gUnk_03001160 _0809FAB8: .4byte gUnk_08124824 thumb_func_start sub_0809FABC sub_0809FABC: @ 0x0809FABC push {lr} adds r3, r0, #0 movs r0, #1 strb r0, [r3, #0xc] ldrb r0, [r3, #0xb] cmp r0, #0 beq _0809FAD0 cmp r0, #2 beq _0809FADE b _0809FAE6 _0809FAD0: movs r0, #0xf0 lsls r0, r0, #9 str r0, [r3, #0x20] ldrh r0, [r3, #0x36] adds r0, #8 strh r0, [r3, #0x36] b _0809FAE6 _0809FADE: adds r0, r3, #0 bl sub_0809FECC b _0809FB30 _0809FAE6: adds r1, r3, #0 adds r1, #0x38 movs r0, #3 strb r0, [r1] adds r0, r3, #0 adds r0, #0x3c movs r2, #0x17 strb r2, [r0] adds r1, #8 movs r0, #0x48 strb r0, [r1] subs r1, #1 movs r0, #7 strb r0, [r1] adds r0, r3, #0 adds r0, #0x3b strb r2, [r0] ldr r0, _0809FB34 @ =gUnk_080FD1A8 str r0, [r3, #0x48] movs r0, #1 strb r0, [r3, #0x1c] ldrh r1, [r3, #0x2e] adds r0, r3, #0 adds r0, #0x74 strh r1, [r0] ldrh r0, [r3, #0x32] adds r1, r3, #0 adds r1, #0x76 strh r0, [r1] adds r0, r3, #0 movs r1, #3 bl sub_0805E3A0 movs r0, #0x9b lsls r0, r0, #1 bl sub_08004488 _0809FB30: pop {pc} .align 2, 0 _0809FB34: .4byte gUnk_080FD1A8 thumb_func_start sub_0809FB38 sub_0809FB38: @ 0x0809FB38 push {lr} adds r2, r0, #0 ldr r0, [r2, #0x34] ldr r1, _0809FB60 @ =0xFFFF2000 adds r0, r0, r1 str r0, [r2, #0x34] adds r0, r2, #0 adds r0, #0x5a ldrb r0, [r0] cmp r0, #0 beq _0809FB74 ldrb r0, [r2, #0xe] cmp r0, #0 beq _0809FB64 adds r1, r0, #0 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #1 b _0809FB66 .align 2, 0 _0809FB60: .4byte 0xFFFF2000 _0809FB64: movs r0, #0xf0 _0809FB66: strb r0, [r2, #0xe] movs r0, #3 strb r0, [r2, #0xc] movs r0, #1 strb r0, [r2, #0xf] movs r0, #0x80 strh r0, [r2, #0x24] _0809FB74: pop {pc} .align 2, 0 thumb_func_start sub_0809FB78 sub_0809FB78: @ 0x0809FB78 push {lr} ldr r2, _0809FB8C @ =gUnk_08124840 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809FB8C: .4byte gUnk_08124840 thumb_func_start sub_0809FB90 sub_0809FB90: @ 0x0809FB90 movs r3, #1 movs r1, #1 strb r1, [r0, #0xd] strb r1, [r0, #0x1d] ldrb r2, [r0, #0x18] subs r1, #5 ands r1, r2 orrs r1, r3 strb r1, [r0, #0x18] bx lr thumb_func_start sub_0809FBA4 sub_0809FBA4: @ 0x0809FBA4 push {lr} adds r2, r0, #0 ldr r0, _0809FBC8 @ =gUnk_03003F80 ldrb r1, [r0, #0x1c] movs r0, #0xf ands r0, r1 cmp r0, #1 bne _0809FBC2 adds r0, r2, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0x13 beq _0809FBCC _0809FBC2: movs r0, #3 strb r0, [r2, #0xc] b _0809FBD2 .align 2, 0 _0809FBC8: .4byte gUnk_03003F80 _0809FBCC: adds r0, r2, #0 bl sub_0806F4E8 _0809FBD2: pop {pc} thumb_func_start sub_0809FBD4 sub_0809FBD4: @ 0x0809FBD4 push {r4, r5, lr} adds r4, r0, #0 ldr r0, _0809FBFC @ =gUnk_03003F80 ldrb r1, [r0, #0x1c] movs r0, #0xf ands r0, r1 cmp r0, #1 bne _0809FBF4 adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r5, #0x7f adds r0, r5, #0 ands r0, r1 cmp r0, #0x13 beq _0809FC00 _0809FBF4: movs r0, #3 strb r0, [r4, #0xc] b _0809FC22 .align 2, 0 _0809FBFC: .4byte gUnk_03003F80 _0809FC00: adds r0, r4, #0 bl sub_0806F3E4 cmp r0, #0 beq _0809FC22 ldrb r1, [r4, #0x10] adds r0, r5, #0 ands r0, r1 strb r0, [r4, #0x10] movs r0, #5 strb r0, [r4, #0xc] ldr r0, _0809FC24 @ =gUnk_03001160 str r0, [r4, #0x54] ldrb r0, [r4, #0xa] movs r1, #0 bl sub_08053FF0 _0809FC22: pop {r4, r5, pc} .align 2, 0 _0809FC24: .4byte gUnk_03001160 thumb_func_start sub_0809FC28 sub_0809FC28: @ 0x0809FC28 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0809FCAC bl sub_08000E50 adds r5, r0, #0 ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x10] movs r0, #0x20 strb r0, [r4, #0xf] ldr r2, _0809FC6C @ =gUnk_0812484C lsrs r0, r5, #8 movs r1, #1 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_0809FE9C cmp r0, #0 beq _0809FC70 movs r0, #0x1f ands r5, r0 strb r5, [r4, #0x15] b _0809FC8A .align 2, 0 _0809FC6C: .4byte gUnk_0812484C _0809FC70: movs r1, #0x2e ldrsh r0, [r4, r1] movs r2, #0x32 ldrsh r1, [r4, r2] adds r2, r4, #0 adds r2, #0x74 ldrh r2, [r2] adds r3, r4, #0 adds r3, #0x76 ldrh r3, [r3] bl sub_080045D4 strb r0, [r4, #0x15] _0809FC8A: ldrb r1, [r4, #0x15] movs r0, #0xf ands r0, r1 cmp r0, #0 beq _0809FCAC movs r0, #0x10 eors r1, r0 lsrs r1, r1, #4 movs r0, #1 ands r1, r0 lsls r1, r1, #6 ldrb r2, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] _0809FCAC: adds r0, r4, #0 bl sub_080AEFB4 bl sub_0805E40C cmp r0, #0 bne _0809FCF8 ldrb r0, [r4, #0xa] cmp r0, #0 bne _0809FCF8 ldr r0, _0809FCFC @ =gUnk_030010A0 ldr r0, [r0] movs r1, #1 ands r0, r1 cmp r0, #0 beq _0809FCE0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0809FCE0 adds r0, r4, #0 movs r1, #0 bl sub_08081404 _0809FCE0: ldrb r0, [r4, #0xe] cmp r0, #0x3b bhi _0809FCF8 ldrb r2, [r4, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #1 eors r1, r0 subs r0, #5 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] _0809FCF8: pop {r4, r5, pc} .align 2, 0 _0809FCFC: .4byte gUnk_030010A0 thumb_func_start sub_0809FD00 sub_0809FD00: @ 0x0809FD00 push {r4, lr} adds r4, r0, #0 ldr r2, [r4, #0x54] ldrh r1, [r2, #8] ldr r0, _0809FD18 @ =0x00000B08 cmp r1, r0 beq _0809FD1C adds r0, r4, #0 movs r1, #0 bl sub_08081404 b _0809FD44 .align 2, 0 _0809FD18: .4byte 0x00000B08 _0809FD1C: adds r0, r2, #0 adds r1, r4, #0 bl sub_0806FA24 ldrh r0, [r4, #0x36] subs r0, #1 strh r0, [r4, #0x36] ldr r1, _0809FD48 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080177A0 cmp r0, #0 beq _0809FD44 adds r0, r4, #0 bl sub_0809FECC ldrb r0, [r4, #0xa] movs r1, #0 bl sub_08053FF0 _0809FD44: pop {r4, pc} .align 2, 0 _0809FD48: .4byte gUnk_03001160 thumb_func_start sub_0809FD4C sub_0809FD4C: @ 0x0809FD4C push {lr} adds r1, r0, #0 movs r2, #6 strb r2, [r1, #0xc] movs r0, #0x80 strb r0, [r1, #0xe] strb r2, [r1, #0xf] ldrb r2, [r1, #0x10] movs r0, #0x7f ands r0, r2 strb r0, [r1, #0x10] ldrb r2, [r1, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r2 movs r2, #1 orrs r0, r2 strb r0, [r1, #0x18] adds r3, r1, #0 adds r3, #0x29 ldrb r2, [r3] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r2 movs r2, #0x10 orrs r0, r2 strb r0, [r3] adds r2, r1, #0 adds r2, #0x63 movs r0, #0xfb strb r0, [r2] ldr r0, [r1, #0x54] bl sub_0806FA24 pop {pc} .align 2, 0 thumb_func_start sub_0809FD94 sub_0809FD94: @ 0x0809FD94 push {r4, r5, r6, lr} adds r5, r0, #0 ldr r6, [r5, #0x54] ldr r2, _0809FE24 @ =gUnk_080C9160 ldrb r0, [r5, #0xe] lsls r0, r0, #1 adds r0, r0, r2 movs r3, #0 ldrsh r1, [r0, r3] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 cmp r0, #0 bge _0809FDB4 ldr r1, _0809FE28 @ =0x0000FFFF adds r0, r0, r1 _0809FDB4: asrs r0, r0, #0x10 ldrh r3, [r6, #0x2e] adds r0, r0, r3 strh r0, [r5, #0x2e] ldrb r0, [r5, #0xe] adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r2 movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #8 cmp r0, #0 bge _0809FDD6 ldr r3, _0809FE28 @ =0x0000FFFF adds r0, r0, r3 _0809FDD6: asrs r1, r0, #0x10 ldrh r0, [r6, #0x32] subs r0, r0, r1 strh r0, [r5, #0x32] ldrb r3, [r5, #0xe] adds r0, r3, #0 adds r0, #8 strb r0, [r5, #0xe] ldrh r0, [r6, #0x36] strh r0, [r5, #0x36] ldrb r2, [r6, #0x1b] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r4, [r5, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r4 orrs r0, r2 strb r0, [r5, #0x1b] ldrb r0, [r6, #0x19] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r5, #0x19] ands r1, r2 orrs r1, r0 strb r1, [r5, #0x19] subs r3, #0x39 lsls r3, r3, #0x18 lsrs r3, r3, #0x18 cmp r3, #0x7e bhi _0809FE2C adds r2, r5, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #8 rsbs r1, r1, #0 ands r1, r0 movs r0, #3 b _0809FE3A .align 2, 0 _0809FE24: .4byte gUnk_080C9160 _0809FE28: .4byte 0x0000FFFF _0809FE2C: adds r2, r5, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #8 rsbs r1, r1, #0 ands r1, r0 movs r0, #5 _0809FE3A: orrs r1, r0 strb r1, [r2] ldrb r0, [r5, #0xf] subs r0, #1 strb r0, [r5, #0xf] lsls r0, r0, #0x18 adds r4, r5, #0 adds r4, #0x63 cmp r0, #0 bne _0809FE6C movs r0, #6 strb r0, [r5, #0xf] ldrb r0, [r4] subs r0, #1 strb r0, [r4] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #0x16 rsbs r1, r1, #0 cmp r0, r1 bge _0809FE6C adds r0, r5, #0 movs r1, #1 bl sub_08081404 _0809FE6C: movs r1, #0 ldrsb r1, [r4, r1] movs r0, #0x11 rsbs r0, r0, #0 cmp r1, r0 bge _0809FE8A ldrb r2, [r5, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #1 eors r1, r0 subs r0, #5 ands r0, r2 orrs r0, r1 strb r0, [r5, #0x18] _0809FE8A: adds r1, r5, #0 adds r1, #0x87 ldrb r0, [r1] cmp r0, #0xa bls _0809FE98 movs r0, #0xa strb r0, [r1] _0809FE98: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0809FE9C sub_0809FE9C: @ 0x0809FE9C push {lr} adds r2, r0, #0 movs r1, #0x2e ldrsh r0, [r2, r1] adds r1, r2, #0 adds r1, #0x74 ldrh r1, [r1] subs r0, r0, r1 adds r0, #0x48 cmp r0, #0x90 bhi _0809FEC8 movs r1, #0x32 ldrsh r0, [r2, r1] adds r1, r2, #0 adds r1, #0x76 ldrh r1, [r1] subs r0, r0, r1 adds r0, #0x30 cmp r0, #0x60 bhi _0809FEC8 movs r0, #1 b _0809FECA _0809FEC8: movs r0, #0 _0809FECA: pop {pc} thumb_func_start sub_0809FECC sub_0809FECC: @ 0x0809FECC ldr r1, _0809FEDC @ =gUnk_03001160 str r1, [r0, #0x54] movs r2, #0 movs r1, #5 strb r1, [r0, #0xc] strb r2, [r0, #0xd] bx lr .align 2, 0 _0809FEDC: .4byte gUnk_03001160 thumb_func_start sub_0809FEE0 sub_0809FEE0: @ 0x0809FEE0 push {lr} ldr r2, _0809FEF4 @ =gUnk_08124850 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0809FEF4: .4byte gUnk_08124850 thumb_func_start sub_0809FEF8 sub_0809FEF8: @ 0x0809FEF8 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldr r1, _0809FF20 @ =gUnk_0812485C ldrb r0, [r4, #0xa] adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 bl sub_08004260 ldr r1, _0809FF24 @ =gUnk_08124860 ldrb r0, [r4, #0xa] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] bl sub_080A3268 pop {r4, pc} .align 2, 0 _0809FF20: .4byte gUnk_0812485C _0809FF24: .4byte gUnk_08124860 thumb_func_start sub_0809FF28 sub_0809FF28: @ 0x0809FF28 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0809FF64 movs r0, #2 strb r0, [r4, #0xc] ldr r1, [r4, #0x50] ldrb r0, [r4, #0xe] strb r0, [r1, #0x10] ldrb r2, [r4, #0xf] movs r0, #3 ands r2, r0 ldrb r3, [r1, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r3 orrs r0, r2 strb r0, [r1, #0x18] adds r1, #0x6d ldrb r2, [r1] movs r0, #0xef ands r0, r2 strb r0, [r1] _0809FF64: pop {r4, pc} .align 2, 0 thumb_func_start sub_0809FF68 sub_0809FF68: @ 0x0809FF68 push {r4, r5, lr} adds r4, r0, #0 ldrb r1, [r4, #0xc] cmp r1, #0 bne _0809FFA2 movs r0, #1 strb r0, [r4, #0xc] movs r0, #8 strb r0, [r4, #0xe] strb r1, [r4, #0xf] ldrb r0, [r4, #0x19] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x19] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] ldr r1, _0809FFC4 @ =gUnk_08124868 ldrb r0, [r4, #0xa] adds r0, r0, r1 ldrb r0, [r0] strb r0, [r4, #0x1e] adds r1, r4, #0 adds r1, #0x68 movs r0, #0x78 strh r0, [r1] _0809FFA2: ldrb r0, [r4, #0xb] cmp r0, #0 beq _080A0068 movs r0, #0xff bl sub_0807CC3C cmp r0, #0 beq _080A00AA ldrb r2, [r4, #0xd] cmp r2, #1 beq _080A0006 cmp r2, #1 bgt _0809FFC8 cmp r2, #0 beq _0809FFCE b _080A005A .align 2, 0 _0809FFC4: .4byte gUnk_08124868 _0809FFC8: cmp r2, #2 beq _080A0038 b _080A005A _0809FFCE: adds r1, r4, #0 adds r1, #0x68 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _080A005A movs r0, #0x20 strh r0, [r1] movs r1, #1 strb r1, [r4, #0xe] movs r0, #0 strb r0, [r4, #0xf] strb r1, [r4, #0xd] strb r1, [r4, #0xa] adds r0, r4, #0 bl sub_080AE068 movs r1, #0xc6 lsls r1, r1, #1 adds r0, r4, #0 bl sub_080ADF80 movs r0, #0xf6 bl sub_080A3268 b _080A005A _080A0006: adds r1, r4, #0 adds r1, #0x68 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _080A005A movs r0, #0x2d strh r0, [r1] strb r2, [r4, #0xe] movs r0, #2 strb r0, [r4, #0xd] strb r0, [r4, #0xa] adds r0, r4, #0 bl sub_080AE068 ldr r1, _080A0034 @ =0x0000018D adds r0, r4, #0 bl sub_080ADF80 b _080A005A .align 2, 0 _080A0034: .4byte 0x0000018D _080A0038: adds r1, r4, #0 adds r1, #0x68 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _080A005A movs r0, #3 strb r0, [r4, #0xd] ldr r1, _080A0064 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] movs r0, #0x73 bl sub_080A3268 _080A005A: adds r0, r4, #0 bl sub_080A00B0 b _080A00AA .align 2, 0 _080A0064: .4byte gUnk_02000080 _080A0068: ldrb r0, [r4, #0xa] cmp r0, #0 beq _080A00A4 cmp r0, #2 bne _080A00A4 ldrb r0, [r4, #0xd] cmp r0, #0 bne _080A00A4 movs r0, #1 strb r0, [r4, #0xd] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _080A00AC @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 movs r0, #0x39 movs r2, #1 bl sub_0807B314 _080A00A4: adds r0, r4, #0 bl sub_080A00B0 _080A00AA: pop {r4, r5, pc} .align 2, 0 _080A00AC: .4byte gUnk_03000BF0 thumb_func_start sub_080A00B0 sub_080A00B0: @ 0x080A00B0 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 _080A00DA movs r0, #8 strb r0, [r2, #0xe] ldr r1, _080A00DC @ =gUnk_08124868 ldrb r0, [r2, #0xa] adds r0, r0, r1 ldrb r1, [r2, #0xf] ldrb r0, [r0] adds r0, r1, r0 strb r0, [r2, #0x1e] adds r1, #1 movs r0, #3 ands r1, r0 strb r1, [r2, #0xf] _080A00DA: pop {pc} .align 2, 0 _080A00DC: .4byte gUnk_08124868 thumb_func_start sub_080A00E0 sub_080A00E0: @ 0x080A00E0 push {lr} ldr r2, _080A00F4 @ =gUnk_0812486C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080A00F4: .4byte gUnk_0812486C thumb_func_start sub_080A00F8 sub_080A00F8: @ 0x080A00F8 push {lr} ldrb r1, [r0, #0xc] adds r1, #1 movs r3, #0 strb r1, [r0, #0xc] adds r2, r0, #0 adds r2, #0x38 movs r1, #1 strb r1, [r2] ldrb r1, [r0, #0x19] movs r2, #0xc0 orrs r1, r2 strb r1, [r0, #0x19] movs r1, #0x29 adds r1, r1, r0 mov ip, r1 ldrb r1, [r1] movs r2, #7 orrs r1, r2 mov r2, ip strb r1, [r2] strb r3, [r0, #0xd] movs r1, #0 bl sub_08004260 pop {pc} thumb_func_start sub_080A012C sub_080A012C: @ 0x080A012C push {r4, lr} adds r4, r0, #0 movs r0, #0 bl sub_0807CC3C cmp r0, #0 beq _080A0154 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080A0154 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] _080A0154: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A0158 sub_080A0158: @ 0x080A0158 push {r4, lr} adds r4, r0, #0 movs r0, #1 bl sub_0807CC3C cmp r0, #0 beq _080A018A adds r0, r4, #0 bl sub_080A0190 adds r0, r4, #0 movs r1, #0x1e bl sub_0805E4E0 ldr r1, _080A018C @ =gUnk_03001160 adds r0, r4, #0 movs r2, #0x10 movs r3, #0x10 bl sub_080041A0 cmp r0, #0 beq _080A018A movs r0, #0x37 bl sub_0805B390 _080A018A: pop {r4, pc} .align 2, 0 _080A018C: .4byte gUnk_03001160 thumb_func_start sub_080A0190 sub_080A0190: @ 0x080A0190 push {r4, lr} movs r4, #0 movs r1, #1 strb r1, [r0, #0xd] ldr r1, _080A01B8 @ =gUnk_03001160 bl sub_0806FA24 ldr r2, _080A01BC @ =gUnk_03003F80 movs r0, #3 strb r0, [r2, #0xc] adds r0, r2, #0 adds r0, #0x38 strb r4, [r0] ldr r0, [r2, #0x30] movs r1, #0x80 lsls r1, r1, #8 orrs r0, r1 str r0, [r2, #0x30] pop {r4, pc} .align 2, 0 _080A01B8: .4byte gUnk_03001160 _080A01BC: .4byte gUnk_03003F80 thumb_func_start sub_080A01C0 sub_080A01C0: @ 0x080A01C0 push {r4, lr} adds r4, r0, #0 ldr r1, _080A01DC @ =gUnk_08124898 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_08080CB4 pop {r4, pc} .align 2, 0 _080A01DC: .4byte gUnk_08124898 thumb_func_start sub_080A01E0 sub_080A01E0: @ 0x080A01E0 push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r3, #1 strb r3, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 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, #0x10 orrs r0, r1 strb r0, [r2] ldrb r1, [r4, #0x19] movs r0, #0x3f ands r0, r1 movs r1, #0x40 orrs r0, r1 strb r0, [r4, #0x19] ldr r0, _080A027C @ =gUnk_080FD1A0 str r0, [r4, #0x48] ldr r0, _080A0280 @ =0x0000FF40 strh r0, [r4, #0x36] adds r1, r4, #0 adds r1, #0x6a movs r0, #0x40 strb r0, [r1] ldrb r0, [r4, #0xa] cmp r0, #0x43 bgt _080A0246 cmp r0, #0x42 bge _080A0246 cmp r0, #0x40 beq _080A0246 cmp r0, #0x41 bne _080A0246 ldr r2, _080A0284 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _080A0288 @ =0x0000FDFF ands r0, r1 strh r0, [r2] adds r0, r4, #0 adds r0, #0x38 strb r3, [r0] _080A0246: ldr r0, _080A028C @ =gUnk_0800A0B4 bl sub_0807DB2C ldr r1, _080A0284 @ =gUnk_03000F50 adds r2, r1, #0 adds r2, #0x66 movs r0, #0xc8 lsls r0, r0, #3 strh r0, [r2] adds r1, #0x68 movs r0, #0x80 lsls r0, r0, #5 strh r0, [r1] bl sub_0805BC4C ldrb r2, [r4, #0xa] subs r2, #0x40 adds r0, r4, #0 movs r1, #0xad movs r3, #0 bl sub_080A2988 cmp r0, #0 beq _080A027A str r4, [r0, #0x50] str r0, [r4, #0x54] _080A027A: pop {r4, pc} .align 2, 0 _080A027C: .4byte gUnk_080FD1A0 _080A0280: .4byte 0x0000FF40 _080A0284: .4byte gUnk_03000F50 _080A0288: .4byte 0x0000FDFF _080A028C: .4byte gUnk_0800A0B4 thumb_func_start sub_080A0290 sub_080A0290: @ 0x080A0290 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _080A02BC @ =gUnk_02033280 ldr r0, [r5] movs r1, #4 ands r0, r1 cmp r0, #0 beq _080A02CA adds r0, r4, #0 bl sub_080A0424 ldrh r2, [r4, #0x36] movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #8 rsbs r0, r0, #0 cmp r1, r0 bge _080A02C0 adds r0, r2, #1 strh r0, [r4, #0x36] b _080A02CA .align 2, 0 _080A02BC: .4byte gUnk_02033280 _080A02C0: movs r1, #2 strb r1, [r4, #0xc] ldr r0, [r5] orrs r0, r1 str r0, [r5] _080A02CA: pop {r4, r5, pc} thumb_func_start sub_080A02CC sub_080A02CC: @ 0x080A02CC push {r4, lr} adds r4, r0, #0 bl sub_080A0424 adds r0, r4, #0 bl sub_080A0444 adds r0, r4, #0 bl sub_08017850 cmp r0, #0 beq _080A0342 ldr r0, [r4, #0x54] bl sub_0805E7BC ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] movs r2, #0 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x2d strb r0, [r4, #0xe] ldr r0, _080A0344 @ =gUnk_03000F50 adds r3, r0, #0 adds r3, #0x66 movs r1, #0xc8 lsls r1, r1, #3 strh r1, [r3] adds r0, #0x68 strh r2, [r0] ldrb r0, [r4, #0xa] movs r1, #0 movs r2, #1 bl sub_080A7C18 adds r0, r4, #0 movs r1, #1 bl sub_0808C650 movs r0, #6 movs r1, #2 bl sub_08050054 movs r0, #0xf8 bl sub_080A3268 movs r0, #0xa4 lsls r0, r0, #1 bl sub_080A3268 movs r0, #5 bl sub_080A3268 ldr r0, _080A0348 @ =0x80110000 bl sub_080A3268 _080A0342: pop {r4, pc} .align 2, 0 _080A0344: .4byte gUnk_03000F50 _080A0348: .4byte 0x80110000 thumb_func_start sub_080A034C sub_080A034C: @ 0x080A034C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _080A0378 adds r0, r4, #0 bl sub_080A0424 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080A038C ldr r0, _080A0374 @ =gUnk_03001160 movs r1, #0 bl sub_0805E3A0 b _080A038C .align 2, 0 _080A0374: .4byte gUnk_03001160 _080A0378: movs r0, #0 movs r1, #0x3c bl sub_0805E4E0 bl sub_0808C67C cmp r0, #0 beq _080A038C movs r0, #4 strb r0, [r4, #0xc] _080A038C: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A0390 sub_080A0390: @ 0x080A0390 push {r4, lr} adds r4, r0, #0 movs r0, #0 movs r1, #0x3c bl sub_0805E4E0 ldr r0, _080A03B4 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080A03B2 movs r0, #5 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x68 movs r0, #0xd2 lsls r0, r0, #1 strh r0, [r1] _080A03B2: pop {r4, pc} .align 2, 0 _080A03B4: .4byte gUnk_03000FD0 thumb_func_start sub_080A03B8 sub_080A03B8: @ 0x080A03B8 push {r4, lr} adds r4, r0, #0 movs r0, #0 movs r1, #0xa bl sub_0805E4E0 adds r1, r4, #0 adds r1, #0x68 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _080A03E4 movs r0, #6 strb r0, [r4, #0xc] ldrb r0, [r4, #0xa] bl sub_0805429C adds r1, r4, #0 bl sub_08056398 _080A03E4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A03E8 sub_080A03E8: @ 0x080A03E8 push {lr} movs r0, #0 movs r1, #0xa bl sub_0805E4E0 ldr r0, _080A041C @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _080A041A movs r0, #0x5a bl sub_0805E510 ldr r0, _080A0420 @ =gUnk_03003F80 adds r0, #0x8b movs r1, #1 strb r1, [r0] bl sub_0807DF50 movs r0, #0 bl sub_0807CD10 bl sub_0805E780 _080A041A: pop {pc} .align 2, 0 _080A041C: .4byte gUnk_02000050 _080A0420: .4byte gUnk_03003F80 thumb_func_start sub_080A0424 sub_080A0424: @ 0x080A0424 push {lr} adds r1, r0, #0 adds r1, #0x6a ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 bne _080A0442 movs r0, #0x40 strb r0, [r1] movs r0, #0xbc lsls r0, r0, #1 bl sub_080A3268 _080A0442: pop {pc} thumb_func_start sub_080A0444 sub_080A0444: @ 0x080A0444 ldr r3, _080A0460 @ =gUnk_081248B4 ldrb r1, [r0, #0xf] adds r2, r1, #1 strb r2, [r0, #0xf] lsls r1, r1, #0x18 lsrs r1, r1, #0x1b movs r2, #7 ands r1, r2 adds r1, r1, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 strh r1, [r0, #0x36] bx lr .align 2, 0 _080A0460: .4byte gUnk_081248B4 thumb_func_start sub_080A0464 sub_080A0464: @ 0x080A0464 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 movs r0, #6 movs r1, #0xac movs r2, #6 bl sub_0805EB00 cmp r0, #0 beq _080A048A movs r1, #0x2e ldrsh r2, [r0, r1] movs r1, #0x32 ldrsh r3, [r0, r1] adds r3, #0x18 adds r0, r4, #0 adds r1, r5, #0 bl sub_0807DEDC _080A048A: pop {r4, r5, pc} thumb_func_start sub_080A048C sub_080A048C: @ 0x080A048C push {lr} ldr r2, _080A04A0 @ =gUnk_081248BC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080A04A0: .4byte gUnk_081248BC thumb_func_start sub_080A04A4 sub_080A04A4: @ 0x080A04A4 push {r4, lr} movs r3, #0 movs r1, #1 strb r1, [r0, #0xc] movs r4, #4 movs r1, #4 strb r1, [r0, #0x1e] strb r3, [r0, #0xe] ldrb r1, [r0, #0x19] movs r2, #0xc0 orrs r1, r2 strb r1, [r0, #0x19] movs r1, #0x29 adds r1, r1, r0 mov ip, r1 ldrb r1, [r1] movs r2, #7 orrs r1, r2 mov r2, ip strb r1, [r2] str r3, [r0, #0x34] ldrb r2, [r0, #0x19] movs r1, #0xd rsbs r1, r1, #0 ands r1, r2 orrs r1, r4 strb r1, [r0, #0x19] bl sub_080A04E8 pop {r4, pc} thumb_func_start sub_080A04E0 sub_080A04E0: @ 0x080A04E0 push {lr} bl sub_080A04E8 pop {pc} thumb_func_start sub_080A04E8 sub_080A04E8: @ 0x080A04E8 push {r4, r5, lr} adds r5, r0, #0 ldr r0, [r5, #0x50] movs r1, #0x36 ldrsh r0, [r0, r1] cmp r0, #0 bge _080A04F8 rsbs r0, r0, #0 _080A04F8: movs r1, #0x80 lsls r1, r1, #1 adds r4, r0, r1 adds r0, r5, #0 adds r1, r4, #0 adds r2, r4, #0 movs r3, #0 bl sub_0805EC9C movs r1, #0xe0 lsls r1, r1, #1 subs r1, r1, r4 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r4, #0 bl __divsi3 adds r4, r0, #0 ldr r0, [r5, #0x50] ldrb r0, [r0, #0xa] cmp r0, #0x41 bne _080A0538 lsls r3, r4, #1 cmp r3, #0xc bls _080A052E movs r3, #0xc _080A052E: movs r0, #0x10 subs r0, r0, r4 lsls r4, r0, #8 orrs r4, r3 b _080A0540 _080A0538: movs r0, #0x10 subs r0, r0, r4 lsls r0, r0, #8 orrs r4, r0 _080A0540: ldr r0, _080A054C @ =0x0000FFFF ands r4, r0 ldr r0, _080A0550 @ =gUnk_03000F50 adds r0, #0x68 strh r4, [r0] pop {r4, r5, pc} .align 2, 0 _080A054C: .4byte 0x0000FFFF _080A0550: .4byte gUnk_03000F50 thumb_func_start sub_080A0554 sub_080A0554: @ 0x080A0554 push {lr} adds r3, r0, #0 ldrb r0, [r3, #0xc] cmp r0, #0 bne _080A0588 movs r2, #1 strb r2, [r3, #0xc] ldrb r0, [r3, #0xa] strb r0, [r3, #0x1e] movs r0, #0x29 adds r0, r0, r3 mov ip, r0 ldrb r1, [r0] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 mov r1, ip strb r0, [r1] adds r0, r3, #0 adds r0, #0x38 strb r2, [r0] adds r0, r3, #0 bl sub_08016A04 _080A0588: pop {pc} .align 2, 0 thumb_func_start sub_080A058C sub_080A058C: @ 0x080A058C push {lr} ldr r2, _080A05A0 @ =gUnk_081248C4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080A05A0: .4byte gUnk_081248C4 thumb_func_start sub_080A05A4 sub_080A05A4: @ 0x080A05A4 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xa] cmp r1, #2 beq _080A05D2 movs r0, #1 strb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #9 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 bl sub_080A0640 adds r0, r4, #0 movs r1, #1 bl sub_08004260 b _080A05F0 _080A05D2: movs r0, #0 strb r1, [r4, #0xc] ldrh r1, [r4, #0x32] adds r1, #1 strh r1, [r4, #0x32] strh r0, [r4, #0x36] adds r1, r4, #0 adds r1, #0x63 ldrb r0, [r1] subs r0, #1 strb r0, [r1] adds r0, r4, #0 movs r1, #3 bl sub_08004260 _080A05F0: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A05F4 sub_080A05F4: @ 0x080A05F4 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] cmp r0, #0 bne _080A060C movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_08004260 b _080A0622 _080A060C: ldr r0, [r0, #4] cmp r0, #0 bne _080A0616 bl sub_0805E780 _080A0616: adds r0, r4, #0 bl sub_080A0640 adds r0, r4, #0 bl sub_08004274 _080A0622: pop {r4, pc} thumb_func_start sub_080A0624 sub_080A0624: @ 0x080A0624 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 _080A063C bl sub_0805E780 _080A063C: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A0640 sub_080A0640: @ 0x080A0640 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 bne _080A065E ldr r0, [r4, #0x50] ldr r0, [r0, #0x64] ldr r0, [r0, #0x10] movs r3, #0x80 lsls r3, r3, #0xc adds r1, r4, #0 movs r2, #0 bl sub_0806FA48 b _080A0666 _080A065E: ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA24 _080A0666: movs r0, #0 strh r0, [r4, #0x36] pop {r4, pc} thumb_func_start sub_080A066C sub_080A066C: @ 0x080A066C push {lr} ldr r2, _080A0680 @ =gUnk_0812493C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080A0680: .4byte gUnk_0812493C thumb_func_start sub_080A0684 sub_080A0684: @ 0x080A0684 push {r4, r5, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x84 ldrh r1, [r2] ldr r0, _080A070C @ =0x0000FFFF cmp r1, r0 beq _080A06A2 adds r0, r1, #0 bl sub_0807CBE4 cmp r0, #0 beq _080A06A2 bl sub_0805E780 _080A06A2: movs r0, #1 strb r0, [r4, #0xc] movs r2, #0 movs r0, #0xc0 lsls r0, r0, #2 strh r0, [r4, #0x24] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r2, [r4, #0x1e] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x18] ldr r0, _080A0710 @ =gUnk_080FD180 str r0, [r4, #0x48] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #5 orrs r0, r1 strb r0, [r2] ldrh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x70 strh r1, [r0] ldrh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x72 strh r0, [r1] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _080A0714 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] 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, #0x74 strh r1, [r0] pop {r4, r5, pc} .align 2, 0 _080A070C: .4byte 0x0000FFFF _080A0710: .4byte gUnk_080FD180 _080A0714: .4byte gUnk_03000BF0 thumb_func_start sub_080A0718 sub_080A0718: @ 0x080A0718 push {r4, lr} adds r4, r0, #0 movs r1, #2 bl sub_08083734 cmp r0, #0 beq _080A074A movs r2, #0 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0xc strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #0x10 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] strb r2, [r4, #0x15] ldrh r0, [r4, #0x32] adds r0, #0x24 strh r0, [r4, #0x32] adds r0, r4, #0 bl sub_080A080C _080A074A: pop {r4, pc} thumb_func_start sub_080A074C sub_080A074C: @ 0x080A074C push {r4, lr} adds r4, r0, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _080A07B6 movs r0, #3 strb r0, [r4, #0xc] strh r1, [r4, #0x36] adds r0, r4, #0 adds r0, #0x70 ldrh r0, [r0] strh r0, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x72 ldrh r0, [r0] strh r0, [r4, #0x32] adds r0, r4, #0 movs r1, #0x11 movs r2, #0x40 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _080A0794 ldrh r0, [r1, #0x2e] adds r0, #0xc strh r0, [r1, #0x2e] ldrh r0, [r1, #0x32] subs r0, #0xc strh r0, [r1, #0x32] _080A0794: adds r0, r4, #0 movs r1, #0x11 movs r2, #0x40 bl sub_080A29AC adds r1, r0, #0 cmp r1, #0 beq _080A07B0 ldrh r0, [r1, #0x2e] subs r0, #0xc strh r0, [r1, #0x2e] ldrh r0, [r1, #0x32] subs r0, #0xc strh r0, [r1, #0x32] _080A07B0: ldr r0, _080A07B8 @ =0x0000010B bl sub_08004488 _080A07B6: pop {r4, pc} .align 2, 0 _080A07B8: .4byte 0x0000010B thumb_func_start sub_080A07BC sub_080A07BC: @ 0x080A07BC push {r4, lr} adds r4, r0, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _080A07EA movs r0, #4 strb r0, [r4, #0xc] movs r0, #0xc strb r0, [r4, #0xe] movs r0, #0x10 strb r0, [r4, #0x15] ldrh r0, [r4, #0x32] adds r0, #2 strh r0, [r4, #0x32] adds r0, r4, #0 bl sub_080A0870 ldr r0, _080A07EC @ =0x0000010B bl sub_080A3268 _080A07EA: pop {r4, pc} .align 2, 0 _080A07EC: .4byte 0x0000010B thumb_func_start sub_080A07F0 sub_080A07F0: @ 0x080A07F0 push {r4, lr} adds r4, r0, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080A0808 bl sub_0805E780 _080A0808: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A080C sub_080A080C: @ 0x080A080C push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r4, #0 adds r6, #0x74 ldrh r0, [r6] subs r0, #1 adds r5, r4, #0 adds r5, #0x38 ldrb r1, [r5] bl sub_080001DA adds r1, r4, #0 adds r1, #0x76 strh r0, [r1] ldrh r0, [r6] ldrb r1, [r5] bl sub_080001DA adds r1, r4, #0 adds r1, #0x78 strh r0, [r1] ldrh r0, [r6] adds r0, #1 ldrb r1, [r5] bl sub_080001DA adds r1, r4, #0 adds r1, #0x7a strh r0, [r1] ldr r4, _080A086C @ =0x00004022 ldrh r1, [r6] subs r1, #1 ldrb r2, [r5] adds r0, r4, #0 bl sub_0800015E ldrh r1, [r6] ldrb r2, [r5] adds r0, r4, #0 bl sub_0800015E ldrh r1, [r6] adds r1, #1 ldrb r2, [r5] adds r0, r4, #0 bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 _080A086C: .4byte 0x00004022 thumb_func_start sub_080A0870 sub_080A0870: @ 0x080A0870 push {r4, r5, r6, lr} adds r6, r0, #0 adds r0, #0x76 ldrh r0, [r0] adds r5, r6, #0 adds r5, #0x74 ldrh r1, [r5] subs r1, #1 adds r4, r6, #0 adds r4, #0x38 ldrb r2, [r4] bl sub_0800015E adds r0, r6, #0 adds r0, #0x78 ldrh r0, [r0] ldrh r1, [r5] ldrb r2, [r4] bl sub_0800015E adds r0, r6, #0 adds r0, #0x7a ldrh r0, [r0] ldrh r1, [r5] adds r1, #1 ldrb r2, [r4] bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080A08AC sub_080A08AC: @ 0x080A08AC push {lr} ldr r2, _080A08C0 @ =gUnk_08124950 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080A08C0: .4byte gUnk_08124950 thumb_func_start sub_080A08C4 sub_080A08C4: @ 0x080A08C4 push {r4, lr} adds r4, r0, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 bne _080A08E2 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0 bl sub_080A0960 b _080A08F6 _080A08E2: movs r0, #3 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_08004260 adds r0, r4, #0 movs r1, #1 bl sub_080A0960 _080A08F6: ldrb r0, [r4, #0x18] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x18] adds r1, r4, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 pop {r4, pc} .align 2, 0 thumb_func_start sub_080A0910 sub_080A0910: @ 0x080A0910 push {r4, lr} adds r4, r0, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _080A0932 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_080A0960 ldr r0, _080A0934 @ =0x0000010B bl sub_080A3268 _080A0932: pop {r4, pc} .align 2, 0 _080A0934: .4byte 0x0000010B thumb_func_start sub_080A0938 sub_080A0938: @ 0x080A0938 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080A095A movs r0, #3 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _080A095A: pop {r4, pc} thumb_func_start nullsub_127 nullsub_127: @ 0x080A095C bx lr .align 2, 0 thumb_func_start sub_080A0960 sub_080A0960: @ 0x080A0960 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r5, _080A0998 @ =gUnk_08124960 cmp r1, #1 bne _080A096C ldr r5, _080A099C @ =gUnk_0812497A _080A096C: movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _080A09A0 @ =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, r5, #0 movs r2, #1 bl sub_0801AF18 pop {r4, r5, r6, pc} .align 2, 0 _080A0998: .4byte gUnk_08124960 _080A099C: .4byte gUnk_0812497A _080A09A0: .4byte gUnk_03000BF0 thumb_func_start sub_080A09A4 sub_080A09A4: @ 0x080A09A4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080A09D4 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x10 strb r0, [r4, #0xe] ldrb r0, [r4, #0xa] lsls r0, r0, #3 strb r0, [r4, #0x15] adds r0, r4, #0 adds r0, #0x38 ldrb r0, [r0] ldr r1, _080A0A2C @ =gUnk_02027EB4 cmp r0, #2 bne _080A09CA ldr r1, _080A0A30 @ =gUnk_0200D654 _080A09CA: str r1, [r4, #0x54] ldrb r1, [r4, #0xa] adds r0, r4, #0 bl sub_08004260 _080A09D4: ldr r0, [r4, #0x50] ldrh r0, [r0, #0x24] strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_0806F69C ldr r0, [r4, #0x54] movs r2, #0x2e ldrsh r1, [r4, r2] movs r3, #0x32 ldrsh r2, [r4, r3] movs r3, #9 bl sub_080AE4CC cmp r0, #0 beq _080A09F8 bl sub_0805E780 _080A09F8: movs r1, #0x24 ldrsh r0, [r4, r1] cmp r0, #0x40 bgt _080A0A22 ldrb r2, [r4, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #1 eors r1, r0 subs r0, #5 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080A0A22 bl sub_0805E780 _080A0A22: adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 _080A0A2C: .4byte gUnk_02027EB4 _080A0A30: .4byte gUnk_0200D654 thumb_func_start sub_080A0A34 sub_080A0A34: @ 0x080A0A34 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 beq _080A0A44 cmp r0, #1 beq _080A0A5C b _080A0A5E _080A0A44: ldrb r1, [r4, #0x10] movs r0, #2 ands r0, r1 ldr r1, _080A0A54 @ =gUnk_08124A18 cmp r0, #0 beq _080A0A5E ldr r1, _080A0A58 @ =gUnk_08124A10 b _080A0A5E .align 2, 0 _080A0A54: .4byte gUnk_08124A18 _080A0A58: .4byte gUnk_08124A10 _080A0A5C: ldr r1, _080A0AB8 @ =gUnk_08124A20 _080A0A5E: ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080A0AB0 movs r0, #1 strb r0, [r4, #0xc] ldrb r2, [r4, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 movs r3, #0x40 orrs r0, r3 strb r0, [r4, #0x19] movs r0, #0x29 adds r0, r0, r4 mov ip, r0 ldrb r2, [r0] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 mov r2, ip strb r0, [r2] ldrb r0, [r4, #0x1b] ands r1, r0 orrs r1, r3 strb r1, [r4, #0x1b] ldr r1, _080A0ABC @ =gUnk_080C9CBC ldr r0, _080A0AC0 @ =gUnk_02022740 ldrb r0, [r0, #3] lsls r0, r0, #3 adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 bl sub_0801D2B4 _080A0AB0: adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 _080A0AB8: .4byte gUnk_08124A20 _080A0ABC: .4byte gUnk_080C9CBC _080A0AC0: .4byte gUnk_02022740 thumb_func_start sub_080A0AC4 sub_080A0AC4: @ 0x080A0AC4 push {lr} ldrb r1, [r0, #0xa] bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_080A0AD0 sub_080A0AD0: @ 0x080A0AD0 push {lr} movs r1, #0x80 bl sub_08003FC4 pop {pc} .align 2, 0 thumb_func_start sub_080A0ADC sub_080A0ADC: @ 0x080A0ADC push {r4, lr} adds r4, r0, #0 bl sub_0807DD64 adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC pop {r4, pc} .align 2, 0 thumb_func_start sub_080A0AF0 sub_080A0AF0: @ 0x080A0AF0 push {r4, lr} adds r4, r0, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #5 bne _080A0B1C adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080A0B1C bl sub_0805E780 _080A0B1C: adds r0, r4, #0 movs r1, #0x80 bl sub_08003FC4 pop {r4, pc} .align 2, 0 thumb_func_start sub_080A0B28 sub_080A0B28: @ 0x080A0B28 push {r4, lr} adds r4, r0, #0 movs r0, #0x2e ldrsh r2, [r4, r0] movs r0, #0x32 ldrsh r3, [r4, r0] adds r0, r4, #0 bl sub_0807DEDC ldrh r0, [r4, #0x32] subs r0, #0xb0 strh r0, [r4, #0x32] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] pop {r4, pc} thumb_func_start sub_080A0B4C sub_080A0B4C: @ 0x080A0B4C push {lr} movs r1, #0x78 strh r1, [r0, #0x2e] movs r1, #0x50 strh r1, [r0, #0x32] movs r1, #0 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_080A0B60 sub_080A0B60: @ 0x080A0B60 push {lr} adds r2, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _080A0B7C movs r0, #2 strb r0, [r2, #0xc] movs r0, #0x9b lsls r0, r0, #1 bl sub_080A3268 _080A0B7C: pop {pc} .align 2, 0 thumb_func_start sub_080A0B80 sub_080A0B80: @ 0x080A0B80 ldr r1, [r0, #0x30] ldr r2, _080A0B8C @ =0xFFFD8000 adds r1, r1, r2 str r1, [r0, #0x30] bx lr .align 2, 0 _080A0B8C: .4byte 0xFFFD8000 thumb_func_start sub_080A0B90 sub_080A0B90: @ 0x080A0B90 push {lr} ldr r2, _080A0BA4 @ =gUnk_08124B20 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080A0BA4: .4byte gUnk_08124B20 thumb_func_start sub_080A0BA8 sub_080A0BA8: @ 0x080A0BA8 push {r4, r5, lr} adds r5, r0, #0 ldrb r2, [r5, #0xc] cmp r2, #0 beq _080A0BB8 cmp r2, #1 beq _080A0C08 b _080A0CE0 _080A0BB8: movs r0, #1 strb r0, [r5, #0xc] ldrb r1, [r5, #0x18] subs r0, #5 ands r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r5, #0x18] movs r0, #9 strb r0, [r5, #0x1e] movs r0, #8 strb r0, [r5, #0xe] strb r2, [r5, #0xf] ldrb r1, [r5, #0x19] movs r2, #0x3f adds r0, r2, #0 ands r0, r1 movs r3, #0x40 orrs r0, r3 strb r0, [r5, #0x19] adds r4, r5, #0 adds r4, #0x29 ldrb r1, [r4] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r4] ldrb r0, [r5, #0x1b] ands r2, r0 orrs r2, r3 strb r2, [r5, #0x1b] adds r0, r5, #0 movs r1, #0xbf movs r2, #0x48 movs r3, #0x1e bl sub_0806FB00 b _080A0CE0 _080A0C08: ldrb r0, [r5, #0xf] cmp r0, #6 bhi _080A0C46 ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080A0C46 strb r2, [r5, #0xe] ldrb r2, [r5, #0xf] movs r0, #0xb4 movs r1, #1 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _080A0C40 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 movs r0, #0x68 strh r0, [r4, #0x32] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FAD8 _080A0C40: ldrb r0, [r5, #0xf] adds r0, #1 strb r0, [r5, #0xf] _080A0C46: adds r0, r5, #0 bl sub_0806FB38 cmp r0, #0 bne _080A0C58 ldr r0, _080A0CE4 @ =gUnk_02000080 ldrb r0, [r0, #5] cmp r0, #1 bls _080A0CE0 _080A0C58: movs r0, #0xbf strh r0, [r5, #0x2e] movs r0, #0x48 strh r0, [r5, #0x32] movs r0, #0xa strb r0, [r5, #0x1e] movs r0, #2 strb r0, [r5, #0xc] ldrb r0, [r5, #0xf] cmp r0, #6 bhi _080A0CA0 _080A0C6E: ldrb r2, [r5, #0xf] movs r0, #0xb4 movs r1, #1 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _080A0C92 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 movs r0, #0x68 strh r0, [r4, #0x32] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FAD8 _080A0C92: ldrb r0, [r5, #0xf] adds r0, #1 strb r0, [r5, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #6 bls _080A0C6E _080A0CA0: movs r0, #0xb4 movs r1, #2 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _080A0CC0 movs r0, #0xc4 strh r0, [r4, #0x2e] movs r0, #0x2c strh r0, [r4, #0x32] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FAB0 _080A0CC0: movs r0, #0xb4 movs r1, #3 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _080A0CE0 movs r0, #0xb4 strh r0, [r4, #0x2e] movs r0, #0x19 strh r0, [r4, #0x32] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FAB0 _080A0CE0: pop {r4, r5, pc} .align 2, 0 _080A0CE4: .4byte gUnk_02000080 thumb_func_start sub_080A0CE8 sub_080A0CE8: @ 0x080A0CE8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 beq _080A0CF8 cmp r0, #1 beq _080A0D28 b _080A0D66 _080A0CF8: movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r4, #0x18] ldrb r0, [r4, #0xb] adds r0, #2 strb r0, [r4, #0x1e] ldr r1, _080A0D24 @ =gUnk_08124B10 ldrb r0, [r4, #0xb] lsls r0, r0, #1 adds r0, r0, r1 ldrh r1, [r0] adds r0, r4, #0 movs r2, #0x68 movs r3, #0x14 bl sub_0806FB00 b _080A0D66 .align 2, 0 _080A0D24: .4byte gUnk_08124B10 _080A0D28: adds r0, r4, #0 bl sub_0806FB38 cmp r0, #0 bne _080A0D3A ldr r0, _080A0D68 @ =gUnk_02000080 ldrb r0, [r0, #5] cmp r0, #1 bls _080A0D66 _080A0D3A: ldr r1, _080A0D6C @ =gUnk_08124B10 ldrb r0, [r4, #0xb] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r4, #0x2e] movs r0, #0x68 strh r0, [r4, #0x32] ldrb r1, [r4, #0xb] movs r0, #7 subs r1, r0, r1 adds r3, r4, #0 adds r3, #0x29 ands r1, r0 ldrb r2, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] movs r0, #2 strb r0, [r4, #0xc] _080A0D66: pop {r4, pc} .align 2, 0 _080A0D68: .4byte gUnk_02000080 _080A0D6C: .4byte gUnk_08124B10 thumb_func_start sub_080A0D70 sub_080A0D70: @ 0x080A0D70 push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r6, [r5, #0xc] cmp r6, #0 bne _080A0DC4 movs r0, #1 strb r0, [r5, #0xc] ldrb r1, [r5, #0x18] subs r0, #5 ands r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r5, #0x18] ldrb r2, [r5, #0x19] movs r4, #0x3f movs r1, #0x3f adds r0, r1, #0 ands r0, r2 movs r3, #0x40 orrs r0, r3 strb r0, [r5, #0x19] movs r0, #0x29 adds r0, r0, r5 mov ip, r0 ldrb r2, [r0] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 mov r2, ip strb r0, [r2] ldrb r0, [r5, #0x1b] ands r1, r0 orrs r1, r3 strb r1, [r5, #0x1b] movs r0, #0xb strb r0, [r5, #0x1e] bl sub_08000E50 ands r0, r4 adds r0, #0x40 strb r0, [r5, #0xe] strb r6, [r5, #0xf] _080A0DC4: ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 lsrs r4, r0, #0x18 cmp r4, #0 bne _080A0E02 movs r0, #4 strb r0, [r5, #0xe] ldr r2, _080A0E04 @ =gUnk_08124B30 ldrb r0, [r5, #0xf] adds r1, r0, #1 strb r1, [r5, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 adds r0, r0, r2 ldrb r0, [r0] adds r0, #2 strb r0, [r5, #0x1e] ldrb r0, [r5, #0xf] adds r0, r0, r2 ldrb r0, [r0] cmp r0, #0xff bne _080A0E02 bl sub_08000E50 movs r1, #0x3f ands r0, r1 adds r0, #0x40 strb r0, [r5, #0xe] strb r4, [r5, #0xf] _080A0E02: pop {r4, r5, r6, pc} .align 2, 0 _080A0E04: .4byte gUnk_08124B30 thumb_func_start sub_080A0E08 sub_080A0E08: @ 0x080A0E08 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _080A0E26 movs r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] subs r0, #5 ands r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r2, #0x18] movs r0, #0xf strb r0, [r2, #0x1e] _080A0E26: pop {pc} thumb_func_start sub_080A0E28 sub_080A0E28: @ 0x080A0E28 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xc] cmp r0, #0 bne _080A0E36 movs r0, #1 strb r0, [r1, #0xc] _080A0E36: ldr r0, _080A0E48 @ =gUnk_03000BF0 str r1, [r0, #0x30] ldr r0, _080A0E4C @ =gUnk_03001160 ldr r3, _080A0E50 @ =0xFFD80000 movs r2, #0 bl sub_0806FA48 pop {pc} .align 2, 0 _080A0E48: .4byte gUnk_03000BF0 _080A0E4C: .4byte gUnk_03001160 _080A0E50: .4byte 0xFFD80000 thumb_func_start sub_080A0E54 sub_080A0E54: @ 0x080A0E54 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldrb r0, [r0, #0xd] cmp r0, #3 bls _080A0E64 bl sub_0805E780 _080A0E64: ldrb r0, [r4, #0xc] cmp r0, #0 bne _080A0E76 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0xa] adds r0, r4, #0 bl sub_08004260 _080A0E76: ldr r0, [r4, #0x50] ldrb r3, [r4, #0xa] adds r1, r4, #0 movs r2, #0 bl sub_0806FA90 adds r2, r4, #0 adds r2, #0x63 ldrb r0, [r2] ldrb r1, [r4, #0xa] subs r0, r0, r1 strb r0, [r2] adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 thumb_func_start sub_080A0E98 sub_080A0E98: @ 0x080A0E98 push {lr} ldr r2, _080A0EAC @ =gUnk_08124C08 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080A0EAC: .4byte gUnk_08124C08 thumb_func_start sub_080A0EB0 sub_080A0EB0: @ 0x080A0EB0 push {r4, r5, lr} movs r1, #1 strb r1, [r0, #0xc] movs r1, #0x2e ldrsh r2, [r0, r1] ldr r3, _080A0EE8 @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r2, r2, r1 asrs r2, r2, #4 movs r4, #0x3f ands r2, r4 movs r5, #0x32 ldrsh r1, [r0, r5] ldrh r3, [r3, #8] subs r1, r1, r3 asrs r1, r1, #4 ands r1, r4 lsls r1, r1, #6 orrs r2, r1 adds r0, #0x80 strh r2, [r0] ldr r2, _080A0EEC @ =0x0000407D ldrh r1, [r0] adds r0, r2, #0 movs r2, #1 bl sub_0800015E pop {r4, r5, pc} .align 2, 0 _080A0EE8: .4byte gUnk_03000BF0 _080A0EEC: .4byte 0x0000407D thumb_func_start sub_080A0EF0 sub_080A0EF0: @ 0x080A0EF0 push {r4, lr} adds r4, r0, #0 adds r0, #0x80 ldrh r0, [r0] movs r1, #1 bl sub_080002B0 ldr r1, _080A0F1C @ =0x0000407D cmp r0, r1 beq _080A0F18 bl sub_08078B48 ldr r1, _080A0F20 @ =gUnk_03001160 ldr r0, [r4, #0x2c] str r0, [r1, #0x2c] ldrh r0, [r4, #0x32] adds r0, #4 strh r0, [r1, #0x32] bl sub_0805E780 _080A0F18: pop {r4, pc} .align 2, 0 _080A0F1C: .4byte 0x0000407D _080A0F20: .4byte gUnk_03001160 thumb_func_start sub_080A0F24 sub_080A0F24: @ 0x080A0F24 push {r4, lr} adds r4, r0, #0 ldr r1, _080A0F40 @ =gUnk_08124C10 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_080A11E0 pop {r4, pc} .align 2, 0 _080A0F40: .4byte gUnk_08124C10 thumb_func_start sub_080A0F44 sub_080A0F44: @ 0x080A0F44 push {r4, r5, r6, lr} adds r5, r0, #0 movs r6, #1 strb r6, [r5, #0xc] adds r1, r5, #0 adds r1, #0x59 movs r0, #8 strb r0, [r1] adds r2, r5, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] ldr r0, _080A0FA8 @ =gUnk_080FD460 str r0, [r5, #0x48] adds r0, r5, #0 movs r1, #6 bl sub_0805E3A0 adds r0, r5, #0 bl sub_080A11C0 cmp r0, #0 beq _080A0FA4 ldr r1, _080A0FAC @ =gUnk_03001160 ldrh r0, [r5, #0x2e] movs r4, #0 strh r0, [r1, #0x2e] ldrh r0, [r5, #0x32] strh r0, [r1, #0x32] movs r0, #3 bl sub_08078A90 bl sub_08078B48 bl sub_0805E544 movs r0, #0x89 lsls r0, r0, #1 bl sub_080A3268 movs r0, #3 strb r0, [r5, #0xc] strb r4, [r5, #0xd] adds r0, r5, #0 adds r0, #0x68 strb r6, [r0] _080A0FA4: pop {r4, r5, r6, pc} .align 2, 0 _080A0FA8: .4byte gUnk_080FD460 _080A0FAC: .4byte gUnk_03001160 thumb_func_start sub_080A0FB0 sub_080A0FB0: @ 0x080A0FB0 push {r4, r5, lr} adds r5, r0, #0 bl sub_080A11C0 adds r1, r0, #0 cmp r1, #0 beq _080A0FF8 adds r0, r5, #0 adds r0, #0x68 ldrb r0, [r0] cmp r0, #0 bne _080A0FFE ldr r1, _080A0FF4 @ =gUnk_03001160 ldrh r0, [r5, #0x2e] movs r4, #0 strh r0, [r1, #0x2e] ldrh r0, [r5, #0x32] strh r0, [r1, #0x32] movs r0, #3 bl sub_08078A90 bl sub_08078B48 bl sub_0805E544 movs r0, #0x89 lsls r0, r0, #1 bl sub_080A3268 movs r0, #2 strb r0, [r5, #0xc] strb r4, [r5, #0xd] b _080A0FFE .align 2, 0 _080A0FF4: .4byte gUnk_03001160 _080A0FF8: adds r0, r5, #0 adds r0, #0x68 strb r1, [r0] _080A0FFE: pop {r4, r5, pc} thumb_func_start sub_080A1000 sub_080A1000: @ 0x080A1000 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xd] cmp r1, #1 beq _080A102A cmp r1, #1 bgt _080A1014 cmp r1, #0 beq _080A101E b _080A1088 _080A1014: cmp r1, #2 beq _080A1038 cmp r1, #3 beq _080A1064 b _080A1088 _080A101E: movs r0, #0x1e strb r0, [r4, #0xe] ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] b _080A10D4 _080A102A: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080A10D4 b _080A1070 _080A1038: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080A1056 ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] movs r0, #0x1e strb r0, [r4, #0xe] adds r0, #0xf5 bl sub_080A3268 b _080A10D4 _080A1056: ldr r0, _080A1060 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #7 b _080A10C2 .align 2, 0 _080A1060: .4byte gUnk_030010A0 _080A1064: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080A107C _080A1070: ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] movs r0, #0x1e strb r0, [r4, #0xe] b _080A10D4 _080A107C: ldr r0, _080A1084 @ =gUnk_030010A0 ldr r0, [r0] b _080A10C2 .align 2, 0 _080A1084: .4byte gUnk_030010A0 _080A1088: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080A10BC ldr r0, _080A10B4 @ =gUnk_03000BF0 ldrb r0, [r0, #4] cmp r0, #3 bne _080A10A2 movs r0, #0xf9 bl sub_0807CCB4 _080A10A2: ldrb r1, [r4, #0xb] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, _080A10B8 @ =gUnk_0813ADEC adds r0, r0, r1 bl sub_08080840 b _080A10D4 .align 2, 0 _080A10B4: .4byte gUnk_03000BF0 _080A10B8: .4byte gUnk_0813ADEC _080A10BC: ldr r0, _080A10D8 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #1 _080A10C2: ands r0, r1 cmp r0, #0 bne _080A10D4 ldr r0, _080A10DC @ =gUnk_03001160 ldrb r1, [r0, #0x14] adds r1, #2 movs r2, #6 ands r1, r2 strb r1, [r0, #0x14] _080A10D4: pop {r4, pc} .align 2, 0 _080A10D8: .4byte gUnk_030010A0 _080A10DC: .4byte gUnk_03001160 thumb_func_start sub_080A10E0 sub_080A10E0: @ 0x080A10E0 push {r4, lr} adds r2, r0, #0 ldrb r1, [r2, #0xd] cmp r1, #1 beq _080A110E cmp r1, #1 bgt _080A10F4 cmp r1, #0 beq _080A10FE b _080A1180 _080A10F4: cmp r1, #2 beq _080A1124 cmp r1, #3 beq _080A1148 b _080A1180 _080A10FE: movs r0, #1 strb r0, [r2, #0xd] movs r0, #0x1e strb r0, [r2, #0xe] adds r0, #0xf6 bl sub_080A3268 b _080A11BA _080A110E: ldrb r0, [r2, #0xe] subs r0, #1 strb r0, [r2, #0xe] lsls r0, r0, #0x18 cmp r0, #0 beq _080A1130 ldr r0, _080A1120 @ =gUnk_030010A0 ldr r0, [r0] b _080A1162 .align 2, 0 _080A1120: .4byte gUnk_030010A0 _080A1124: ldrb r0, [r2, #0xe] subs r0, #1 strb r0, [r2, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080A113C _080A1130: ldrb r0, [r2, #0xd] adds r0, #1 strb r0, [r2, #0xd] movs r0, #0x1e strb r0, [r2, #0xe] b _080A11BA _080A113C: ldr r0, _080A1144 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #3 b _080A1162 .align 2, 0 _080A1144: .4byte gUnk_030010A0 _080A1148: ldrb r0, [r2, #0xe] subs r0, #1 strb r0, [r2, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080A115C ldrb r0, [r2, #0xd] adds r0, #1 strb r0, [r2, #0xd] b _080A11BA _080A115C: ldr r0, _080A1178 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #7 _080A1162: ands r0, r1 cmp r0, #0 bne _080A11BA ldr r0, _080A117C @ =gUnk_03001160 ldrb r1, [r0, #0x14] adds r1, #2 movs r2, #6 ands r1, r2 strb r1, [r0, #0x14] b _080A11BA .align 2, 0 _080A1178: .4byte gUnk_030010A0 _080A117C: .4byte gUnk_03001160 _080A1180: ldr r4, _080A11A0 @ =gUnk_03001160 ldrb r3, [r4, #0x14] cmp r3, #4 beq _080A11A8 ldr r0, _080A11A4 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #7 ands r0, r1 cmp r0, #0 bne _080A11BA adds r0, r3, #2 movs r1, #6 ands r0, r1 strb r0, [r4, #0x14] b _080A11BA .align 2, 0 _080A11A0: .4byte gUnk_03001160 _080A11A4: .4byte gUnk_030010A0 _080A11A8: movs r0, #0 movs r1, #1 strb r1, [r2, #0xc] strb r0, [r2, #0xd] ldr r0, _080A11BC @ =gUnk_03003F80 adds r0, #0x8b strb r1, [r0] bl sub_0805E564 _080A11BA: pop {r4, pc} .align 2, 0 _080A11BC: .4byte gUnk_03003F80 thumb_func_start sub_080A11C0 sub_080A11C0: @ 0x080A11C0 push {lr} adds r1, r0, #0 ldr r0, _080A11D8 @ =gUnk_03001160 movs r2, #0x36 ldrsh r0, [r0, r2] cmp r0, #0 bne _080A11DC adds r0, r1, #0 bl sub_08017850 b _080A11DE .align 2, 0 _080A11D8: .4byte gUnk_03001160 _080A11DC: movs r0, #0 _080A11DE: pop {pc} thumb_func_start sub_080A11E0 sub_080A11E0: @ 0x080A11E0 push {lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x59 ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 bne _080A1202 movs r0, #8 strb r0, [r1] ldrb r0, [r2, #0x1e] adds r0, #1 movs r1, #3 ands r0, r1 strb r0, [r2, #0x1e] _080A1202: pop {pc} thumb_func_start sub_080A1204 sub_080A1204: @ 0x080A1204 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r5, r0, #0 cmp r5, #0 bne _080A1260 adds r0, #1 strb r0, [r4, #0xc] bl sub_080A1514 lsls r0, r0, #2 ldr r1, _080A126C @ =gUnk_08124C20 adds r0, r0, r1 ldrh r2, [r0] lsls r1, r2, #4 subs r1, r1, r2 lsls r1, r1, #2 adds r2, r4, #0 adds r2, #0x68 strh r1, [r2] adds r1, r4, #0 adds r1, #0x6a strh r5, [r1] ldrh r1, [r0, #2] adds r0, r4, #0 adds r0, #0x6c strh r1, [r0] adds r1, r4, #0 adds r1, #0x6e movs r0, #1 strh r0, [r1] adds r0, r4, #0 adds r0, #0x70 movs r2, #0 movs r1, #9 _080A124A: strb r2, [r0] adds r0, #1 subs r1, #1 cmp r1, #0 bge _080A124A adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 bl sub_0806EC20 _080A1260: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 pop {r4, r5, pc} .align 2, 0 _080A126C: .4byte gUnk_08124C20 thumb_func_start sub_080A1270 sub_080A1270: @ 0x080A1270 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 mov sb, r0 movs r6, #0 ldr r0, [r0, #0x64] str r0, [sp, #4] mov r4, sb adds r4, #0x70 ldr r0, _080A12F8 @ =gUnk_03000BF0 movs r2, #0xd8 lsls r2, r2, #2 adds r1, r2, #0 ldrh r3, [r0, #6] adds r1, r1, r3 movs r7, #0xd4 lsls r7, r7, #2 adds r2, r7, #0 ldrh r0, [r0, #8] adds r2, r2, r0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 mov r8, r1 lsls r2, r2, #0x10 asrs r3, r2, #0x10 movs r0, #9 mov sl, r0 movs r1, #1 rsbs r1, r1, #0 adds r5, r1, #0 _080A12B2: ldr r7, [sp, #4] ldr r2, [r7] movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 bne _080A1300 ldr r0, [r2, #4] cmp r0, #0 beq _080A132C cmp r2, #0 beq _080A132C movs r1, #0x2e ldrsh r0, [r2, r1] cmp r8, r0 bgt _080A132E movs r7, #0x32 ldrsh r0, [r2, r7] cmp r3, r0 bgt _080A132E ldrb r0, [r2, #0xa] adds r0, #1 strb r0, [r4] movs r0, #1 strb r0, [r2, #0xb] adds r6, #1 ldr r1, _080A12FC @ =gUnk_08124EC8 ldrb r0, [r2, #0xa] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] str r3, [sp] bl sub_080A3268 ldr r3, [sp] b _080A132E .align 2, 0 _080A12F8: .4byte gUnk_03000BF0 _080A12FC: .4byte gUnk_08124EC8 _080A1300: cmp r0, #0 ble _080A132E adds r6, #1 ldr r0, [r2, #4] cmp r0, #0 beq _080A132C cmp r2, #0 beq _080A132C mov r1, r8 adds r1, #4 movs r7, #0x2e ldrsh r0, [r2, r7] cmp r1, r0 ble _080A131E strh r1, [r2, #0x2e] _080A131E: adds r1, r3, #4 movs r7, #0x32 ldrsh r0, [r2, r7] cmp r1, r0 ble _080A132E strh r1, [r2, #0x32] b _080A132E _080A132C: strb r5, [r4] _080A132E: movs r0, #1 rsbs r0, r0, #0 add sl, r0 adds r4, #1 ldr r1, [sp, #4] adds r1, #4 str r1, [sp, #4] mov r2, sl cmp r2, #0 bge _080A12B2 mov r0, sb adds r0, #0x6a strh r6, [r0] ldr r0, _080A136C @ =gUnk_03003F80 adds r0, #0x27 movs r1, #0xff strb r1, [r0] mov r1, sb adds r1, #0x68 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bgt _080A1370 movs r0, #0xe2 bl sub_080A3268 bl sub_08050384 b _080A1376 .align 2, 0 _080A136C: .4byte gUnk_03003F80 _080A1370: ldr r1, _080A1384 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _080A1376: 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 _080A1384: .4byte gUnk_02033280 thumb_func_start sub_080A1388 sub_080A1388: @ 0x080A1388 push {r4, r5, r6, lr} adds r5, r0, #0 adds r5, #0x70 ldr r4, [r0, #0x64] movs r6, #9 _080A1392: ldr r1, [r4] movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 blt _080A13A6 cmp r1, #0 beq _080A13A6 adds r0, r1, #0 bl sub_0805E79C _080A13A6: subs r6, #1 adds r5, #1 adds r4, #4 cmp r6, #0 bge _080A1392 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080A13B4 sub_080A13B4: @ 0x080A13B4 push {r4, lr} adds r4, r1, #0 adds r1, r0, #0 adds r1, #0x6a adds r0, #0x6c movs r2, #0 ldrsh r1, [r1, r2] movs r2, #0 ldrsh r0, [r0, r2] cmp r1, r0 blt _080A13D8 ldr r0, _080A13D4 @ =0x0000300C bl sub_08056378 movs r0, #1 b _080A13E0 .align 2, 0 _080A13D4: .4byte 0x0000300C _080A13D8: ldr r0, _080A13E4 @ =0x00003005 bl sub_08056378 movs r0, #0 _080A13E0: str r0, [r4, #0x14] pop {r4, pc} .align 2, 0 _080A13E4: .4byte 0x00003005 thumb_func_start sub_080A13E8 sub_080A13E8: @ 0x080A13E8 push {r4, r5, r6, lr} adds r5, r0, #0 bl sub_080A1514 lsls r0, r0, #2 ldr r1, _080A1408 @ =gUnk_08124EA0 adds r4, r0, r1 movs r6, #0 ldrb r0, [r4] cmp r0, #0x5c beq _080A141C cmp r0, #0x5c bgt _080A140C cmp r0, #0x3f beq _080A1412 b _080A1444 .align 2, 0 _080A1408: .4byte gUnk_08124EA0 _080A140C: cmp r0, #0x63 beq _080A1430 b _080A1444 _080A1412: ldr r0, _080A1418 @ =gUnk_02002A40 adds r0, #0xbb b _080A1424 .align 2, 0 _080A1418: .4byte gUnk_02002A40 _080A141C: ldr r0, _080A142C @ =gUnk_02002A40 movs r1, #0x8b lsls r1, r1, #1 adds r0, r0, r1 _080A1424: ldrb r0, [r0] cmp r0, #0 beq _080A1444 b _080A1454 .align 2, 0 _080A142C: .4byte gUnk_02002A40 _080A1430: movs r0, #0x4f bl sub_0807CC30 cmp r0, #0 bne _080A1442 movs r0, #0x4f bl sub_0807CD04 b _080A1444 _080A1442: movs r6, #1 _080A1444: cmp r6, #0 bne _080A1454 ldrb r0, [r4] ldrb r1, [r4, #1] movs r2, #0 bl sub_080A7C18 b _080A145C _080A1454: adds r1, r5, #0 adds r1, #0x6e movs r0, #2 strh r0, [r1] _080A145C: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080A1460 sub_080A1460: @ 0x080A1460 push {r4, r5, lr} adds r5, r0, #0 bl sub_080A1514 adds r1, r5, #0 adds r1, #0x70 movs r4, #0 ldr r3, _080A149C @ =gUnk_08124ECC movs r2, #9 _080A1472: movs r0, #0 ldrsb r0, [r1, r0] adds r0, r0, r3 ldrb r0, [r0] adds r4, r4, r0 adds r1, #1 subs r2, #1 cmp r2, #0 bge _080A1472 adds r0, r4, #0 bl sub_080526CC ldr r0, _080A14A0 @ =0x00003007 adds r1, r5, #0 bl sub_08056398 ldr r1, _080A14A4 @ =gUnk_02000050 lsls r0, r4, #0x10 lsrs r0, r0, #0x10 str r0, [r1, #0x10] pop {r4, r5, pc} .align 2, 0 _080A149C: .4byte gUnk_08124ECC _080A14A0: .4byte 0x00003007 _080A14A4: .4byte gUnk_02000050 thumb_func_start sub_080A14A8 sub_080A14A8: @ 0x080A14A8 push {r4, lr} bl sub_080A1514 adds r4, r0, #0 adds r4, #1 cmp r4, #9 ble _080A14B8 movs r4, #9 _080A14B8: movs r0, #1 ands r0, r4 cmp r0, #0 beq _080A14C8 movs r0, #0x4b bl sub_0807CD04 b _080A14CE _080A14C8: movs r0, #0x4b bl sub_0807CD80 _080A14CE: movs r0, #2 ands r0, r4 cmp r0, #0 beq _080A14DE movs r0, #0x4c bl sub_0807CD04 b _080A14E4 _080A14DE: movs r0, #0x4c bl sub_0807CD80 _080A14E4: movs r0, #4 ands r0, r4 cmp r0, #0 beq _080A14F4 movs r0, #0x4d bl sub_0807CD04 b _080A14FA _080A14F4: movs r0, #0x4d bl sub_0807CD80 _080A14FA: movs r0, #8 ands r0, r4 cmp r0, #0 beq _080A150A movs r0, #0x4e bl sub_0807CD04 b _080A1510 _080A150A: movs r0, #0x4e bl sub_0807CD80 _080A1510: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A1514 sub_080A1514: @ 0x080A1514 push {r4, lr} movs r0, #0x4b bl sub_0807CC30 rsbs r1, r0, #0 orrs r1, r0 lsrs r4, r1, #0x1f movs r0, #0x4c bl sub_0807CC30 cmp r0, #0 beq _080A1530 movs r0, #2 orrs r4, r0 _080A1530: movs r0, #0x4d bl sub_0807CC30 cmp r0, #0 beq _080A153E movs r0, #4 orrs r4, r0 _080A153E: movs r0, #0x4e bl sub_0807CC30 cmp r0, #0 beq _080A154C movs r0, #8 orrs r4, r0 _080A154C: adds r0, r4, #0 pop {r4, pc} thumb_func_start sub_080A1550 sub_080A1550: @ 0x080A1550 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} mov r8, r1 movs r0, #0 str r0, [r1, #0x14] movs r0, #0xb9 movs r1, #0 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _080A15FE movs r0, #0x28 bl sub_0801D8E0 str r0, [r4, #0x64] cmp r0, #0 bne _080A1582 adds r0, r4, #0 bl sub_0805E79C b _080A15FE _080A1582: mov r0, r8 ldr r1, [r0, #4] adds r0, r4, #0 bl sub_0807DAD0 adds r1, r4, #0 adds r1, #0x84 str r0, [r1] bl sub_080A1514 lsls r1, r0, #4 subs r1, r1, r0 lsls r1, r1, #2 ldr r0, _080A15B4 @ =gUnk_08124C48 adds r5, r1, r0 ldr r4, [r4, #0x64] mov sb, r4 ldr r7, _080A15B8 @ =gUnk_03000BF0 movs r6, #9 _080A15A8: movs r1, #0 ldrsh r0, [r5, r1] cmp r0, #0 bgt _080A15BC movs r4, #0 b _080A15E6 .align 2, 0 _080A15B4: .4byte gUnk_08124C48 _080A15B8: .4byte gUnk_03000BF0 _080A15BC: movs r0, #0 ldrsh r1, [r5, r0] subs r1, #1 movs r0, #0x41 bl sub_0804AA60 adds r4, r0, #0 cmp r4, #0 beq _080A15E6 ldrh r0, [r5, #2] ldrh r1, [r7, #6] adds r0, r0, r1 strh r0, [r4, #0x2e] ldrh r0, [r5, #4] ldrh r1, [r7, #8] adds r0, r0, r1 strh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] _080A15E6: mov r0, sb adds r0, #4 mov sb, r0 subs r0, #4 stm r0!, {r4} subs r6, #1 adds r5, #6 cmp r6, #0 bge _080A15A8 movs r0, #1 mov r1, r8 str r0, [r1, #0x14] _080A15FE: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080A1608 sub_080A1608: @ 0x080A1608 push {r4, lr} ldr r4, _080A163C @ =0x00003002 movs r0, #1 bl sub_0807CC3C cmp r0, #0 beq _080A1618 adds r4, #4 _080A1618: adds r0, r4, #0 bl sub_08056378 ldr r4, _080A1640 @ =gUnk_02000050 movs r1, #0 movs r0, #1 strb r0, [r4, #6] strb r1, [r4, #7] bl sub_080A1514 lsls r0, r0, #2 ldr r1, _080A1644 @ =gUnk_08124C20 adds r0, r0, r1 ldrh r1, [r0] str r1, [r4, #0x10] ldrh r0, [r0, #2] str r0, [r4, #0x14] pop {r4, pc} .align 2, 0 _080A163C: .4byte 0x00003002 _080A1640: .4byte gUnk_02000050 _080A1644: .4byte gUnk_08124C20 thumb_func_start sub_080A1648 sub_080A1648: @ 0x080A1648 push {r4, lr} ldr r4, _080A1684 @ =0x0000407F ldr r1, _080A1688 @ =0x00000D36 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _080A168C @ =0x00000D37 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _080A1690 @ =0x00000D38 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 subs r4, #1 ldr r1, _080A1694 @ =0x00000D75 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 ldr r1, _080A1698 @ =0x00000E75 adds r0, r4, #0 movs r2, #1 bl sub_0807B314 pop {r4, pc} .align 2, 0 _080A1684: .4byte 0x0000407F _080A1688: .4byte 0x00000D36 _080A168C: .4byte 0x00000D37 _080A1690: .4byte 0x00000D38 _080A1694: .4byte 0x00000D75 _080A1698: .4byte 0x00000E75 thumb_func_start sub_080A169C sub_080A169C: @ 0x080A169C push {lr} ldr r0, _080A16C8 @ =0x00000D36 movs r1, #1 bl sub_0807BA8C ldr r0, _080A16CC @ =0x00000D37 movs r1, #1 bl sub_0807BA8C ldr r0, _080A16D0 @ =0x00000D38 movs r1, #1 bl sub_0807BA8C ldr r0, _080A16D4 @ =0x00000D75 movs r1, #1 bl sub_0807BA8C ldr r0, _080A16D8 @ =0x00000E75 movs r1, #1 bl sub_0807BA8C pop {pc} .align 2, 0 _080A16C8: .4byte 0x00000D36 _080A16CC: .4byte 0x00000D37 _080A16D0: .4byte 0x00000D38 _080A16D4: .4byte 0x00000D75 _080A16D8: .4byte 0x00000E75 thumb_func_start sub_080A16DC sub_080A16DC: @ 0x080A16DC push {r4, lr} adds r4, r0, #0 ldr r1, _080A1700 @ =gUnk_08124ED0 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_080A1DCC adds r0, r4, #0 bl sub_080A1C9C pop {r4, pc} .align 2, 0 _080A1700: .4byte gUnk_08124ED0 thumb_func_start sub_080A1704 sub_080A1704: @ 0x080A1704 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} mov sl, r0 movs r0, #0x7b bl sub_0807CBE4 cmp r0, #0 beq _080A171E bl sub_0805E780 _080A171E: ldr r0, _080A1828 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x45 bhi _080A181C movs r0, #0x40 bl sub_0801D8E0 adds r7, r0, #0 cmp r7, #0 beq _080A181C movs r6, #0 movs r0, #1 mov sb, r0 mov r2, sb mov r1, sl strb r2, [r1, #0xc] str r7, [r1, #0x64] adds r1, #0x6e movs r3, #0 mov r8, r3 movs r0, #0x96 lsls r0, r0, #2 strh r0, [r1] mov r0, sl adds r0, #0x6c strh r6, [r0] mov r0, sl str r0, [r7] movs r0, #0x5c movs r1, #0 bl sub_0804AA60 adds r1, r0, #0 str r7, [r1, #0x64] str r1, [r7, #4] movs r0, #0x5d movs r1, #0 bl sub_0804AA60 adds r1, r0, #0 ldr r4, _080A182C @ =gUnk_03000BF0 movs r2, #0x80 lsls r2, r2, #2 adds r5, r2, #0 ldrh r3, [r4, #6] adds r0, r5, r3 strh r0, [r1, #0x2e] movs r2, #0xcc lsls r2, r2, #2 adds r0, r2, #0 ldrh r3, [r4, #8] adds r0, r0, r3 strh r0, [r1, #0x32] str r7, [r1, #0x64] str r1, [r7, #8] movs r0, #0x5d movs r1, #1 bl sub_0804AA60 adds r1, r0, #0 movs r2, #0x98 lsls r2, r2, #2 adds r0, r2, #0 ldrh r3, [r4, #6] adds r0, r0, r3 strh r0, [r1, #0x2e] adds r2, #0xb0 adds r0, r2, #0 ldrh r3, [r4, #8] adds r0, r0, r3 strh r0, [r1, #0x32] str r7, [r1, #0x64] str r1, [r7, #0xc] ldr r2, _080A1830 @ =gUnk_03000F50 ldr r0, _080A1834 @ =0x00001E07 strh r0, [r2, #0x2c] ldrh r0, [r2] movs r3, #0x80 lsls r3, r3, #4 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] mov r0, sl adds r0, #0x70 strh r6, [r0] adds r0, #2 strh r6, [r0] adds r0, #2 mov r1, r8 strb r1, [r0] adds r0, #6 strb r1, [r0] subs r0, #4 movs r1, #0xc0 strh r1, [r0] adds r0, #2 strh r1, [r0] ldr r0, _080A1838 @ =gUnk_030010A0 adds r0, #0x39 mov r2, sb strb r2, [r0] ldr r2, _080A183C @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x80 lsls r1, r1, #0xa orrs r0, r1 str r0, [r2, #0x30] ldrh r3, [r4, #6] adds r5, r5, r3 strh r5, [r2, #0x16] movs r1, #0x84 lsls r1, r1, #2 adds r0, r1, #0 ldrh r4, [r4, #8] adds r0, r0, r4 strh r0, [r2, #0x18] ldr r0, _080A1840 @ =0x80100000 bl sub_080A3268 ldr r0, _080A1844 @ =gUnk_02033A90 movs r2, #0x86 lsls r2, r2, #4 adds r1, r0, r2 ldr r3, _080A1848 @ =0x00000864 adds r0, r0, r3 ldr r0, [r0] str r0, [r1] _080A181C: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _080A1828: .4byte gUnk_03003DBC _080A182C: .4byte gUnk_03000BF0 _080A1830: .4byte gUnk_03000F50 _080A1834: .4byte 0x00001E07 _080A1838: .4byte gUnk_030010A0 _080A183C: .4byte gUnk_03003F80 _080A1840: .4byte 0x80100000 _080A1844: .4byte gUnk_02033A90 _080A1848: .4byte 0x00000864 thumb_func_start sub_080A184C sub_080A184C: @ 0x080A184C push {lr} adds r3, r0, #0 adds r1, r3, #0 adds r1, #0x6e ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _080A1874 movs r0, #2 strb r0, [r3, #0xc] subs r1, #2 movs r2, #8 movs r0, #8 strh r0, [r1] ldr r0, [r3, #0x64] ldr r0, [r0, #4] adds r0, #0x45 strb r2, [r0] _080A1874: ldr r2, _080A1894 @ =gUnk_03003F80 ldr r1, _080A1898 @ =gUnk_03000BF0 movs r3, #0x80 lsls r3, r3, #2 adds r0, r3, #0 ldrh r3, [r1, #6] adds r0, r0, r3 strh r0, [r2, #0x16] movs r3, #0x84 lsls r3, r3, #2 adds r0, r3, #0 ldrh r1, [r1, #8] adds r0, r0, r1 strh r0, [r2, #0x18] pop {pc} .align 2, 0 _080A1894: .4byte gUnk_03003F80 _080A1898: .4byte gUnk_03000BF0 thumb_func_start sub_080A189C sub_080A189C: @ 0x080A189C push {lr} adds r3, r0, #0 ldr r0, [r3, #0x64] ldr r0, [r0, #4] adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _080A18E6 movs r0, #3 strb r0, [r3, #0xc] movs r0, #0x23 strb r0, [r3, #0xe] adds r1, r3, #0 adds r1, #0x6c movs r2, #1 movs r0, #1 strh r0, [r1] adds r1, #0xc movs r0, #0x80 lsls r0, r0, #3 strh r0, [r1] adds r0, r3, #0 adds r0, #0x7b strb r2, [r0] ldr r0, [r3, #0x64] ldr r0, [r0, #8] adds r0, #0x45 movs r1, #0xc strb r1, [r0] movs r0, #0x94 lsls r0, r0, #1 bl sub_080A3268 movs r0, #0x96 movs r1, #1 bl sub_08080964 _080A18E6: ldr r2, _080A1904 @ =gUnk_03003F80 ldr r1, _080A1908 @ =gUnk_03000BF0 movs r3, #0x80 lsls r3, r3, #2 adds r0, r3, #0 ldrh r3, [r1, #6] adds r0, r0, r3 strh r0, [r2, #0x16] movs r3, #0x84 lsls r3, r3, #2 adds r0, r3, #0 ldrh r1, [r1, #8] adds r0, r0, r1 strh r0, [r2, #0x18] pop {pc} .align 2, 0 _080A1904: .4byte gUnk_03003F80 _080A1908: .4byte gUnk_03000BF0 thumb_func_start sub_080A190C sub_080A190C: @ 0x080A190C push {r4, lr} adds r4, r0, #0 bl sub_080A1FF0 ldr r3, [r4, #0x64] ldr r2, [r3, #8] adds r0, r2, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _080A197C adds r0, r4, #0 adds r1, r2, #0 bl sub_080A20B8 cmp r0, #0 beq _080A1956 movs r0, #4 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x6c movs r0, #0x10 strh r0, [r1] adds r1, #0xc movs r0, #0xc0 strh r0, [r1] ldr r0, [r4, #0x64] ldr r0, [r0, #4] ldrb r1, [r0, #0x14] adds r0, r4, #0 bl sub_080A1D70 ldr r0, [r4, #0x64] ldr r0, [r0, #4] adds r0, #0x45 movs r1, #0x18 strb r1, [r0] _080A1956: ldr r2, _080A1974 @ =gUnk_03003F80 ldr r1, _080A1978 @ =gUnk_03000BF0 movs r3, #0x80 lsls r3, r3, #2 adds r0, r3, #0 ldrh r3, [r1, #6] adds r0, r0, r3 strh r0, [r2, #0x16] movs r3, #0x84 lsls r3, r3, #2 adds r0, r3, #0 ldrh r1, [r1, #8] adds r0, r0, r1 strh r0, [r2, #0x18] b _080A1988 .align 2, 0 _080A1974: .4byte gUnk_03003F80 _080A1978: .4byte gUnk_03000BF0 _080A197C: ldr r1, _080A198C @ =gUnk_03003F80 ldrh r0, [r2, #0x2e] strh r0, [r1, #0x16] ldr r0, [r3, #8] ldrh r0, [r0, #0x32] strh r0, [r1, #0x18] _080A1988: pop {r4, pc} .align 2, 0 _080A198C: .4byte gUnk_03003F80 thumb_func_start sub_080A1990 sub_080A1990: @ 0x080A1990 push {lr} adds r2, r0, #0 ldr r1, [r2, #0x64] ldr r0, [r1, #4] adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _080A19D6 ldr r0, [r1, #8] adds r0, #0x45 movs r1, #0xc strb r1, [r0] movs r0, #5 strb r0, [r2, #0xc] movs r0, #0x23 strb r0, [r2, #0xe] adds r1, r2, #0 adds r1, #0x6c movs r0, #2 strh r0, [r1] adds r1, #0xc movs r0, #0x80 lsls r0, r0, #3 strh r0, [r1] adds r1, #3 movs r0, #1 strb r0, [r1] movs r0, #0x94 lsls r0, r0, #1 bl sub_080A3268 movs r0, #0x96 movs r1, #1 bl sub_08080964 _080A19D6: ldr r2, _080A19F4 @ =gUnk_03003F80 ldr r1, _080A19F8 @ =gUnk_03000BF0 movs r3, #0x80 lsls r3, r3, #2 adds r0, r3, #0 ldrh r3, [r1, #6] adds r0, r0, r3 strh r0, [r2, #0x16] movs r3, #0x84 lsls r3, r3, #2 adds r0, r3, #0 ldrh r1, [r1, #8] adds r0, r0, r1 strh r0, [r2, #0x18] pop {pc} .align 2, 0 _080A19F4: .4byte gUnk_03003F80 _080A19F8: .4byte gUnk_03000BF0 thumb_func_start sub_080A19FC sub_080A19FC: @ 0x080A19FC push {r4, lr} adds r4, r0, #0 bl sub_080A1FF0 ldr r3, [r4, #0x64] ldr r2, [r3, #0xc] adds r0, r2, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _080A1A6C adds r0, r4, #0 adds r1, r2, #0 bl sub_080A20B8 cmp r0, #0 beq _080A1A46 movs r0, #6 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x6c movs r0, #0x20 strh r0, [r1] adds r1, #0xc movs r0, #0xc0 strh r0, [r1] ldr r0, [r4, #0x64] ldr r0, [r0, #4] ldrb r1, [r0, #0x14] adds r0, r4, #0 bl sub_080A1D70 ldr r0, [r4, #0x64] ldr r0, [r0, #4] adds r0, #0x45 movs r1, #0x18 strb r1, [r0] _080A1A46: ldr r2, _080A1A64 @ =gUnk_03003F80 ldr r1, _080A1A68 @ =gUnk_03000BF0 movs r3, #0x80 lsls r3, r3, #2 adds r0, r3, #0 ldrh r3, [r1, #6] adds r0, r0, r3 strh r0, [r2, #0x16] movs r3, #0x84 lsls r3, r3, #2 adds r0, r3, #0 ldrh r1, [r1, #8] adds r0, r0, r1 strh r0, [r2, #0x18] b _080A1A78 .align 2, 0 _080A1A64: .4byte gUnk_03003F80 _080A1A68: .4byte gUnk_03000BF0 _080A1A6C: ldr r1, _080A1A7C @ =gUnk_03003F80 ldrh r0, [r2, #0x2e] strh r0, [r1, #0x16] ldr r0, [r3, #0xc] ldrh r0, [r0, #0x32] strh r0, [r1, #0x18] _080A1A78: pop {r4, pc} .align 2, 0 _080A1A7C: .4byte gUnk_03003F80 thumb_func_start sub_080A1A80 sub_080A1A80: @ 0x080A1A80 push {lr} adds r2, r0, #0 ldr r1, [r2, #0x64] ldr r0, [r1, #4] adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _080A1AC0 ldr r0, [r1, #0xc] adds r0, #0x45 movs r1, #0xc strb r1, [r0] movs r0, #7 strb r0, [r2, #0xc] movs r0, #0x23 strb r0, [r2, #0xe] adds r1, r2, #0 adds r1, #0x6c adds r0, #0xe1 strh r0, [r1] adds r1, #0xc movs r0, #0x80 lsls r0, r0, #3 strh r0, [r1] movs r0, #0x94 lsls r0, r0, #1 bl sub_080A3268 movs r0, #0x96 movs r1, #1 bl sub_08080964 _080A1AC0: ldr r2, _080A1AE0 @ =gUnk_03003F80 ldr r1, _080A1AE4 @ =gUnk_03000BF0 movs r3, #0x80 lsls r3, r3, #2 adds r0, r3, #0 ldrh r3, [r1, #6] adds r0, r0, r3 strh r0, [r2, #0x16] movs r3, #0x84 lsls r3, r3, #2 adds r0, r3, #0 ldrh r1, [r1, #8] adds r0, r0, r1 strh r0, [r2, #0x18] pop {pc} .align 2, 0 _080A1AE0: .4byte gUnk_03003F80 _080A1AE4: .4byte gUnk_03000BF0 thumb_func_start sub_080A1AE8 sub_080A1AE8: @ 0x080A1AE8 push {r4, lr} adds r4, r0, #0 bl sub_080A1FF0 ldr r0, [r4, #0x64] ldr r1, [r0, #0xc] adds r0, r1, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _080A1B24 adds r0, r4, #0 bl sub_080A20B8 cmp r0, #0 beq _080A1B24 movs r0, #8 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x6c movs r0, #0x40 strh r0, [r1] adds r1, #0xc movs r0, #0xc0 strh r0, [r1] ldr r0, [r4, #0x64] ldr r0, [r0, #4] adds r0, #0x45 movs r1, #0xc strb r1, [r0] _080A1B24: ldr r2, _080A1B44 @ =gUnk_03003F80 ldr r1, _080A1B48 @ =gUnk_03000BF0 movs r3, #0x80 lsls r3, r3, #2 adds r0, r3, #0 ldrh r3, [r1, #6] adds r0, r0, r3 strh r0, [r2, #0x16] movs r3, #0x84 lsls r3, r3, #2 adds r0, r3, #0 ldrh r1, [r1, #8] adds r0, r0, r1 strh r0, [r2, #0x18] pop {r4, pc} .align 2, 0 _080A1B44: .4byte gUnk_03003F80 _080A1B48: .4byte gUnk_03000BF0 thumb_func_start sub_080A1B4C sub_080A1B4C: @ 0x080A1B4C push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldr r0, [r4, #0x64] ldr r0, [r0, #4] adds r0, #0x45 ldrb r7, [r0] cmp r7, #0 bne _080A1BD0 adds r5, r4, #0 adds r5, #0x6c ldrh r0, [r5] cmp r0, #0 beq _080A1B80 movs r0, #0x2d movs r1, #1 bl sub_08080964 movs r0, #0x94 lsls r0, r0, #1 bl sub_080A3268 adds r1, r4, #0 adds r1, #0x78 movs r0, #0xc0 lsls r0, r0, #3 strh r0, [r1] _080A1B80: movs r6, #0 strh r7, [r5] ldr r0, _080A1BF0 @ =gUnk_030010A0 adds r0, #0x39 strb r6, [r0] bl sub_08079F8C cmp r0, #0 beq _080A1BD0 ldr r3, _080A1BF4 @ =gUnk_03001160 movs r1, #0x36 ldrsh r0, [r3, r1] cmp r0, #0 bne _080A1BD0 movs r0, #9 strb r0, [r4, #0xc] strb r6, [r4, #0xe] movs r0, #0xf0 strb r0, [r4, #0xf] adds r1, r4, #0 adds r1, #0x6e adds r0, #0xb4 strh r0, [r1] strb r6, [r4, #0x15] movs r0, #0x60 strh r0, [r4, #0x24] ldr r2, _080A1BF8 @ =gUnk_03003F80 ldr r0, [r2, #0x30] ldr r1, _080A1BFC @ =0xFFFDFFFF ands r0, r1 str r0, [r2, #0x30] adds r0, r3, #0 adds r1, r4, #0 bl sub_0806FA24 ldr r0, _080A1C00 @ =gUnk_03000BF0 str r4, [r0, #0x30] movs r0, #2 bl sub_08078A90 _080A1BD0: ldr r2, _080A1BF8 @ =gUnk_03003F80 ldr r1, _080A1C00 @ =gUnk_03000BF0 movs r3, #0x80 lsls r3, r3, #2 adds r0, r3, #0 ldrh r3, [r1, #6] adds r0, r0, r3 strh r0, [r2, #0x16] movs r3, #0x84 lsls r3, r3, #2 adds r0, r3, #0 ldrh r1, [r1, #8] adds r0, r0, r1 strh r0, [r2, #0x18] pop {r4, r5, r6, r7, pc} .align 2, 0 _080A1BF0: .4byte gUnk_030010A0 _080A1BF4: .4byte gUnk_03001160 _080A1BF8: .4byte gUnk_03003F80 _080A1BFC: .4byte 0xFFFDFFFF _080A1C00: .4byte gUnk_03000BF0 thumb_func_start sub_080A1C04 sub_080A1C04: @ 0x080A1C04 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x6e ldrh r0, [r1] cmp r0, #0 bne _080A1C52 adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_080A1E54 ldrb r0, [r4, #0xf] subs r1, r0, #1 strb r1, [r4, #0xf] lsls r0, r1, #0x18 cmp r0, #0 bne _080A1C40 movs r0, #0x7b bl sub_0807CCC8 ldr r0, _080A1C3C @ =gUnk_0813ABD0 movs r1, #8 bl sub_0808091C b _080A1C9A .align 2, 0 _080A1C3C: .4byte gUnk_0813ABD0 _080A1C40: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x3c bne _080A1C9A movs r0, #7 movs r1, #4 bl sub_08050054 b _080A1C9A _080A1C52: subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xb3 bhi _080A1C66 adds r0, r4, #0 bl sub_080A1E54 b _080A1C9A _080A1C66: ldrh r1, [r1] cmp r1, #0xb4 beq _080A1C76 movs r0, #0x96 lsls r0, r0, #1 cmp r1, r0 beq _080A1C8A b _080A1C9A _080A1C76: movs r0, #0x94 lsls r0, r0, #1 bl sub_080A3268 movs r0, #0xb4 lsls r0, r0, #2 movs r1, #2 bl sub_08080964 b _080A1C9A _080A1C8A: movs r0, #0x94 lsls r0, r0, #1 bl sub_080A3268 movs r0, #0x4b movs r1, #1 bl sub_08080964 _080A1C9A: pop {r4, pc} thumb_func_start sub_080A1C9C sub_080A1C9C: @ 0x080A1C9C push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x7a ldrb r0, [r5] cmp r0, #0 beq _080A1D04 adds r0, r4, #0 adds r0, #0x74 adds r7, r4, #0 adds r7, #0x75 ldrb r1, [r0] adds r6, r0, #0 ldrb r0, [r7] cmp r1, r0 beq _080A1CE4 subs r5, #2 movs r0, #0 strh r0, [r5] adds r0, r4, #0 movs r1, #0xc bl sub_080A1D8C adds r0, r4, #0 adds r0, #0x76 ldrh r1, [r0] adds r2, r0, #0 cmp r1, #0 bne _080A1D14 ldrb r0, [r7] strb r0, [r6] adds r0, r4, #0 adds r0, #0x7c ldrh r0, [r0] strh r0, [r5] b _080A1D14 _080A1CE4: adds r0, r4, #0 movs r1, #0xc bl sub_080A1D8C adds r0, r4, #0 adds r0, #0x78 adds r1, r4, #0 adds r1, #0x76 ldrh r0, [r0] adds r2, r1, #0 ldrh r1, [r2] cmp r0, r1 bne _080A1D14 movs r0, #0 strb r0, [r5] b _080A1D14 _080A1D04: adds r0, r4, #0 movs r1, #8 bl sub_080A1D8C adds r6, r4, #0 adds r6, #0x74 adds r2, r4, #0 adds r2, #0x76 _080A1D14: adds r3, r4, #0 adds r3, #0x70 ldr r5, _080A1D68 @ =gUnk_080C9160 ldrb r0, [r6] lsls r0, r0, #1 adds r0, r0, r5 movs r7, #0 ldrsh r1, [r0, r7] ldrh r0, [r2] muls r0, r1, r0 cmp r0, #0 bge _080A1D2E adds r0, #0xff _080A1D2E: asrs r0, r0, #8 ldrh r1, [r3] adds r0, r0, r1 strh r0, [r3] adds r4, #0x72 ldrb r0, [r6] adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r5 movs r5, #0 ldrsh r1, [r0, r5] ldrh r0, [r2] muls r0, r1, r0 cmp r0, #0 bge _080A1D4E adds r0, #0xff _080A1D4E: asrs r0, r0, #8 ldrh r1, [r4] subs r1, r1, r0 strh r1, [r4] ldr r2, _080A1D6C @ =gUnk_03000F50 ldrh r0, [r3] lsrs r0, r0, #8 strh r0, [r2, #0x2e] lsls r1, r1, #0x10 lsrs r1, r1, #0x18 strh r1, [r2, #0x30] pop {r4, r5, r6, r7, pc} .align 2, 0 _080A1D68: .4byte gUnk_080C9160 _080A1D6C: .4byte gUnk_03000F50 thumb_func_start sub_080A1D70 sub_080A1D70: @ 0x080A1D70 adds r2, r0, #0 adds r0, #0x75 strb r1, [r0] adds r1, r2, #0 adds r1, #0x7a movs r0, #1 strb r0, [r1] adds r0, r2, #0 adds r0, #0x78 ldrh r1, [r0] adds r0, #4 strh r1, [r0] bx lr .align 2, 0 thumb_func_start sub_080A1D8C sub_080A1D8C: @ 0x080A1D8C push {r4, lr} adds r4, r1, #0 adds r3, r0, #0 adds r3, #0x78 adds r2, r0, #0 adds r2, #0x76 ldrh r1, [r3] ldrh r0, [r2] cmp r1, r0 beq _080A1DC8 cmp r1, r0 bls _080A1DB6 adds r3, r0, #0 subs r0, r1, r3 cmp r4, r0 bge _080A1DB2 adds r0, r3, r4 strh r0, [r2] b _080A1DC8 _080A1DB2: strh r1, [r2] b _080A1DC8 _080A1DB6: ldrh r1, [r2] ldrh r3, [r3] subs r0, r1, r3 cmp r4, r0 bge _080A1DC6 subs r0, r1, r4 strh r0, [r2] b _080A1DC8 _080A1DC6: strh r3, [r2] _080A1DC8: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A1DCC sub_080A1DCC: @ 0x080A1DCC push {r4, lr} adds r4, r0, #0 ldr r1, [r4, #0x64] ldr r3, [r1, #8] cmp r3, #0 bne _080A1DDE ldr r3, [r1, #0xc] cmp r3, #0 beq _080A1E24 _080A1DDE: adds r0, r3, #0 adds r0, #0x7c ldrb r0, [r0] cmp r0, #0 beq _080A1E24 ldrb r0, [r3, #0x19] lsrs r0, r0, #6 cmp r0, #2 bne _080A1E24 ldr r3, [r1, #0x10] ldrb r2, [r3, #0x10] movs r1, #0x7f adds r0, r1, #0 ands r0, r2 strb r0, [r3, #0x10] ldr r0, [r4, #0x64] ldr r3, [r0, #0x14] ldrb r2, [r3, #0x10] adds r0, r1, #0 ands r0, r2 strb r0, [r3, #0x10] ldr r3, [r3, #0x54] ldrb r2, [r3, #0x10] adds r0, r1, #0 ands r0, r2 strb r0, [r3, #0x10] ldr r3, [r3, #0x54] ldrb r2, [r3, #0x10] adds r0, r1, #0 ands r0, r2 strb r0, [r3, #0x10] ldr r3, [r3, #0x54] ldrb r0, [r3, #0x10] ands r1, r0 b _080A1E50 _080A1E24: ldr r0, [r4, #0x64] ldr r2, [r0, #0x10] ldrb r0, [r2, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r2, #0x10] ldr r0, [r4, #0x64] ldr r3, [r0, #0x14] ldrb r0, [r3, #0x10] orrs r0, r1 strb r0, [r3, #0x10] ldr r3, [r3, #0x54] ldrb r0, [r3, #0x10] orrs r0, r1 strb r0, [r3, #0x10] ldr r3, [r3, #0x54] ldrb r0, [r3, #0x10] orrs r0, r1 strb r0, [r3, #0x10] ldr r3, [r3, #0x54] ldrb r0, [r3, #0x10] orrs r1, r0 _080A1E50: strb r1, [r3, #0x10] pop {r4, pc} thumb_func_start sub_080A1E54 sub_080A1E54: @ 0x080A1E54 push {r4, r5, lr} adds r2, r0, #0 ldrb r0, [r2, #0xe] adds r0, #1 strb r0, [r2, #0xe] movs r1, #0xff ands r0, r1 movs r1, #0x1f ands r0, r1 cmp r0, #0 bne _080A1ECA adds r0, r2, #0 movs r1, #0x51 movs r2, #0 bl sub_080A29AC adds r4, r0, #0 cmp r4, #0 beq _080A1ECA bl sub_08000E50 ldr r3, _080A1ECC @ =gUnk_03000BF0 movs r1, #0xf0 adds r2, r0, #0 ands r2, r1 movs r5, #0x80 lsls r5, r5, #2 adds r1, r5, #0 adds r2, r2, r1 ldrh r1, [r3, #6] adds r1, r1, r2 subs r1, #0x78 strh r1, [r4, #0x2e] lsrs r0, r0, #8 movs r1, #0x70 ands r0, r1 movs r1, #0x84 lsls r1, r1, #2 adds r0, r0, r1 ldrh r3, [r3, #8] adds r0, r0, r3 subs r0, #0x38 strh r0, [r4, #0x32] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #5 orrs r0, r1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 _080A1ECA: pop {r4, r5, pc} .align 2, 0 _080A1ECC: .4byte gUnk_03000BF0 thumb_func_start sub_080A1ED0 sub_080A1ED0: @ 0x080A1ED0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 mov sb, r1 adds r5, r2, #0 movs r1, #0 str r1, [sp] ldr r4, _080A1F60 @ =gUnk_08124EF8 lsls r1, r5, #2 adds r1, r1, r4 ldrh r2, [r1] ldr r3, _080A1F64 @ =gUnk_03000BF0 ldrh r1, [r3, #6] adds r2, r2, r1 mov sl, r2 lsls r1, r5, #1 adds r1, #1 lsls r1, r1, #1 adds r1, r1, r4 ldrh r2, [r1] ldrh r1, [r3, #8] adds r2, r2, r1 mov r8, r2 ldr r1, _080A1F68 @ =gUnk_08124FF0 lsls r0, r0, #2 adds r0, r0, r1 ldr r4, [r0] movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #1 beq _080A1FB0 lsls r7, r5, #3 movs r0, #0x10 adds r6, r7, #0 eors r6, r0 _080A1F1C: movs r0, #0x60 mov r1, sb bl sub_0804AA60 adds r2, r0, #0 cmp r2, #0 beq _080A1FA6 mov r0, sp ldrb r0, [r0] strb r0, [r2, #0xb] ldr r1, [sp] adds r1, #1 str r1, [sp] mov r0, sl strh r0, [r2, #0x2e] mov r1, r8 strh r1, [r2, #0x32] strb r7, [r2, #0x15] adds r0, r2, #0 adds r0, #0x7a strb r6, [r0] ldrh r1, [r4, #4] subs r0, #2 strh r1, [r0] cmp r5, #1 beq _080A1F7A cmp r5, #1 blo _080A1F6C cmp r5, #2 beq _080A1F80 cmp r5, #3 beq _080A1F94 b _080A1FA6 .align 2, 0 _080A1F60: .4byte gUnk_08124EF8 _080A1F64: .4byte gUnk_03000BF0 _080A1F68: .4byte gUnk_08124FF0 _080A1F6C: ldrh r1, [r4] adds r0, r2, #0 adds r0, #0x74 strh r1, [r0] ldrh r0, [r4, #2] rsbs r0, r0, #0 b _080A1F8C _080A1F7A: ldrh r0, [r4, #2] adds r0, #0xf0 b _080A1F98 _080A1F80: ldrh r1, [r4] adds r0, r2, #0 adds r0, #0x74 strh r1, [r0] ldrh r0, [r4, #2] adds r0, #0xa0 _080A1F8C: adds r1, r2, #0 adds r1, #0x76 strh r0, [r1] b _080A1FA6 _080A1F94: ldrh r0, [r4, #2] rsbs r0, r0, #0 _080A1F98: adds r1, r2, #0 adds r1, #0x74 strh r0, [r1] ldrh r1, [r4] adds r0, r2, #0 adds r0, #0x76 strh r1, [r0] _080A1FA6: adds r4, #6 movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #1 bne _080A1F1C _080A1FB0: mov r0, sb cmp r0, #0 bne _080A1FE4 movs r0, #0xf movs r1, #2 movs r2, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _080A1FE4 mov r1, sl strh r1, [r2, #0x2e] mov r0, r8 strh r0, [r2, #0x32] ldrb r0, [r2, #0x1b] movs r1, #0xc0 orrs r0, r1 strb r0, [r2, #0x1b] ldrb r0, [r2, #0x19] orrs r0, r1 strb r0, [r2, #0x19] adds r1, r2, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] _080A1FE4: 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_080A1FF0 sub_080A1FF0: @ 0x080A1FF0 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xe] cmp r0, #0 beq _080A2066 subs r1, r0, #1 strb r1, [r5, #0xe] lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x20 bhi _080A2066 movs r0, #0xf ands r1, r0 cmp r1, #0 bne _080A2066 adds r0, r5, #0 movs r1, #0x51 movs r2, #0 bl sub_080A29AC adds r4, r0, #0 cmp r4, #0 beq _080A2066 bl sub_08000E50 ldr r3, _080A209C @ =gUnk_03000BF0 movs r1, #0x78 ands r0, r1 movs r1, #0x80 lsls r1, r1, #2 adds r2, r1, #0 adds r2, r0, r2 ldrh r1, [r3, #6] adds r1, r1, r2 subs r1, #0x3c strh r1, [r4, #0x2e] movs r1, #0x84 lsls r1, r1, #2 adds r0, r0, r1 ldrh r3, [r3, #8] adds r0, r0, r3 subs r0, #0x3c strh r0, [r4, #0x32] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 _080A2066: adds r4, r5, #0 adds r4, #0x7b ldrb r0, [r4] cmp r0, #0 beq _080A20B4 ldr r0, _080A20A0 @ =gUnk_03001160 ldr r2, _080A209C @ =gUnk_03000BF0 ldrh r1, [r2, #6] movs r3, #0x80 lsls r3, r3, #2 adds r1, r1, r3 ldrh r2, [r2, #8] adds r3, #0x10 adds r2, r2, r3 movs r3, #0x80 lsls r3, r3, #1 bl sub_0806FCB8 cmp r0, #0 beq _080A20B2 ldrb r0, [r5, #0xe] cmp r0, #0 bne _080A20A4 movs r0, #0x78 strb r0, [r5, #0xe] b _080A20B4 .align 2, 0 _080A209C: .4byte gUnk_03000BF0 _080A20A0: .4byte gUnk_03001160 _080A20A4: cmp r0, #0x23 bne _080A20B4 movs r0, #0x1e movs r1, #0 bl sub_08080964 b _080A20B4 _080A20B2: strb r0, [r4] _080A20B4: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080A20B8 sub_080A20B8: @ 0x080A20B8 push {r4, lr} adds r4, r1, #0 cmp r4, #0 bne _080A20C4 movs r0, #1 b _080A20FA _080A20C4: bl sub_08079F8C cmp r0, #0 beq _080A20F8 ldr r0, _080A20F0 @ =gUnk_03001160 movs r1, #0x36 ldrsh r0, [r0, r1] cmp r0, #0 bne _080A20F8 movs r1, #0 adds r0, r4, #0 adds r0, #0x7c ldrb r0, [r0] cmp r0, #0 bne _080A20EC ldr r0, _080A20F4 @ =gUnk_03003F80 ldrb r1, [r0, #0x14] rsbs r0, r1, #0 orrs r0, r1 lsrs r1, r0, #0x1f _080A20EC: adds r0, r1, #0 b _080A20FA .align 2, 0 _080A20F0: .4byte gUnk_03001160 _080A20F4: .4byte gUnk_03003F80 _080A20F8: movs r0, #0 _080A20FA: pop {r4, pc} thumb_func_start sub_080A20FC sub_080A20FC: @ 0x080A20FC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r1, r0, #0 cmp r1, #0 bne _080A2114 adds r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0x1e] adds r0, r4, #0 bl sub_0807DD64 _080A2114: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 pop {r4, pc} thumb_func_start sub_080A2124 sub_080A2124: @ 0x080A2124 push {lr} ldr r3, _080A2134 @ =gUnk_08125010 movs r1, #1 movs r2, #0xe bl sub_08078850 pop {pc} .align 2, 0 _080A2134: .4byte gUnk_08125010 thumb_func_start sub_080A2138 sub_080A2138: @ 0x080A2138 push {r4, lr} adds r4, r0, #0 movs r0, #0x72 bl sub_080A3268 ldr r2, _080A2160 @ =gUnk_02002A40 ldrb r0, [r4, #0xb] adds r0, #0x18 movs r1, #1 lsls r1, r0 ldr r0, [r2, #0x40] orrs r0, r1 str r0, [r2, #0x40] adds r0, r4, #0 movs r1, #0x46 movs r2, #0 bl sub_080A29AC pop {r4, pc} .align 2, 0 _080A2160: .4byte gUnk_02002A40 thumb_func_start sub_080A2164 sub_080A2164: @ 0x080A2164 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080A21DC adds r1, r4, #0 adds r1, #0x86 ldrh r0, [r1] cmp r0, #0 beq _080A2180 bl sub_0807CBE4 cmp r0, #0 beq _080A224E _080A2180: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x19] subs r0, #0xe ands r0, r1 movs r1, #8 orrs r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r4, #0x19] movs r0, #3 strb r0, [r4, #0x1e] ldrb r1, [r4, #0x10] movs r0, #0x20 orrs r0, r1 strb r0, [r4, #0x10] ldr r0, _080A21D4 @ =gUnk_03000BF0 ldrb r0, [r0, #5] strb r0, [r4, #0xf] movs r0, #2 strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x68 ldr r0, _080A21D8 @ =0x0000FFFE strh r0, [r1] adds r1, #2 movs r0, #0x80 strh r0, [r1] adds r0, r4, #0 movs r1, #0x80 movs r2, #0x80 movs r3, #0 bl sub_0805EC9C b _080A221E .align 2, 0 _080A21D4: .4byte gUnk_03000BF0 _080A21D8: .4byte 0x0000FFFE _080A21DC: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080A221E movs r0, #2 strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x6a adds r2, r4, #0 adds r2, #0x68 ldrh r0, [r2] ldrh r3, [r1] adds r0, r0, r3 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x77 bhi _080A2208 movs r0, #1 strh r0, [r2] _080A2208: ldrh r0, [r1] cmp r0, #0x88 bls _080A2212 ldr r0, _080A2250 @ =0x0000FFFF strh r0, [r2] _080A2212: ldrh r2, [r1] adds r0, r4, #0 adds r1, r2, #0 movs r3, #0 bl sub_0805EC9C _080A221E: ldr r2, _080A2254 @ =gUnk_03000F50 ldrh r1, [r2] movs r3, #0x80 lsls r3, r3, #8 adds r0, r3, #0 orrs r0, r1 strh r0, [r2] adds r2, #0x62 ldrb r0, [r2] movs r3, #0xdc lsls r3, r3, #6 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r1, _080A2258 @ =gUnk_03000BF0 ldrb r0, [r1, #5] ldrb r4, [r4, #0xf] cmp r0, r4 beq _080A224E ldrh r0, [r1] cmp r0, #0 bne _080A224E bl sub_0805E780 _080A224E: pop {r4, pc} .align 2, 0 _080A2250: .4byte 0x0000FFFF _080A2254: .4byte gUnk_03000F50 _080A2258: .4byte gUnk_03000BF0 thumb_func_start sub_080A225C sub_080A225C: @ 0x080A225C push {lr} ldr r2, _080A2270 @ =gUnk_0812503C ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080A2270: .4byte gUnk_0812503C thumb_func_start sub_080A2274 sub_080A2274: @ 0x080A2274 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xc] cmp r0, #0 bne _080A22AE adds r0, r1, #0 bl sub_080A2340 movs r0, #0xbd movs r1, #1 movs r2, #0 bl sub_080A2960 movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] movs r1, #3 cmp r0, #1 bne _080A229C movs r1, #2 _080A229C: movs r0, #0xbd movs r2, #0 bl sub_080A2960 movs r0, #0xbd movs r1, #4 movs r2, #0 bl sub_080A2960 _080A22AE: pop {pc} thumb_func_start sub_080A22B0 sub_080A22B0: @ 0x080A22B0 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xc] cmp r0, #0 bne _080A22C0 adds r0, r1, #0 bl sub_080A2340 _080A22C0: pop {pc} .align 2, 0 thumb_func_start sub_080A22C4 sub_080A22C4: @ 0x080A22C4 push {r4, r5, lr} adds r4, r0, #0 ldrb r5, [r4, #0xc] cmp r5, #0 beq _080A22FC cmp r5, #1 beq _080A231C ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080A233E movs r0, #8 strb r0, [r4, #0xe] ldrb r0, [r4, #0xf] adds r0, #1 movs r1, #3 ands r0, r1 strb r0, [r4, #0xf] ldrb r1, [r4, #0xd] adds r0, r1, r0 strb r0, [r4, #0x1e] lsls r1, r1, #0x18 lsls r0, r0, #0x18 cmp r1, r0 bne _080A233E b _080A233A _080A22FC: adds r0, r4, #0 bl sub_080A2340 movs r0, #8 strb r0, [r4, #0xe] strb r5, [r4, #0xf] ldrb r0, [r4, #0x1e] strb r0, [r4, #0xd] bl sub_08000E50 movs r1, #3 ands r0, r1 lsls r0, r0, #4 adds r0, #0x1e strh r0, [r4, #0x24] b _080A233E _080A231C: ldrh r0, [r4, #0x24] subs r0, #1 strh r0, [r4, #0x24] lsls r0, r0, #0x10 cmp r0, #0 bne _080A233E bl sub_08000E50 movs r1, #7 ands r0, r1 lsls r0, r0, #4 adds r0, #0x1e strh r0, [r4, #0x24] movs r0, #2 b _080A233C _080A233A: movs r0, #1 _080A233C: strb r0, [r4, #0xc] _080A233E: pop {r4, r5, pc} thumb_func_start sub_080A2340 sub_080A2340: @ 0x080A2340 ldrb r1, [r0, #0xa] lsls r1, r1, #3 ldr r2, _080A239C @ =gUnk_08125014 adds r1, r1, r2 ldrh r2, [r1] strh r2, [r0, #0x2e] ldrh r2, [r1, #2] strh r2, [r0, #0x32] ldrh r2, [r1, #4] strb r2, [r0, #0x1e] ldrb r1, [r1, #6] movs r2, #0x29 adds r2, r2, r0 mov ip, r2 movs r2, #7 ands r2, r1 mov r1, ip ldrb r3, [r1] movs r1, #8 rsbs r1, r1, #0 ands r1, r3 orrs r1, r2 mov r2, ip strb r1, [r2] ldrb r3, [r0, #0x19] movs r2, #0x3f adds r1, r2, #0 ands r1, r3 movs r3, #0x40 orrs r1, r3 strb r1, [r0, #0x19] ldrb r1, [r0, #0x1b] ands r2, r1 orrs r2, r3 strb r2, [r0, #0x1b] ldrb r2, [r0, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r2 movs r2, #2 orrs r1, r2 strb r1, [r0, #0x18] movs r1, #1 strb r1, [r0, #0xc] bx lr .align 2, 0 _080A239C: .4byte gUnk_08125014 thumb_func_start sub_080A23A0 sub_080A23A0: @ 0x080A23A0 push {r4, lr} adds r4, r0, #0 adds r0, #0x45 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 beq _080A23C0 ldr r0, _080A23D4 @ =gUnk_020342F8 subs r1, #1 bl sub_0801D5A8 cmp r0, #0 bne _080A23C0 bl sub_0805E780 _080A23C0: ldr r0, _080A23D8 @ =gUnk_0812505C ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _080A23D4: .4byte gUnk_020342F8 _080A23D8: .4byte gUnk_0812505C thumb_func_start sub_080A23DC sub_080A23DC: @ 0x080A23DC push {r4, lr} adds r4, r0, #0 ldr r1, _080A240C @ =gUnk_08125050 ldrb r0, [r4, #0xb] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] adds r2, r4, #0 adds r2, #0x68 strh r0, [r2] adds r3, r4, #0 adds r3, #0x29 ldrb r0, [r3] movs r1, #7 orrs r0, r1 strb r0, [r3] ldrh r0, [r2] bl sub_0807CBD0 cmp r0, #0 beq _080A2410 movs r0, #2 b _080A2412 .align 2, 0 _080A240C: .4byte gUnk_08125050 _080A2410: movs r0, #1 _080A2412: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0 bl sub_08004260 pop {r4, pc} .align 2, 0 thumb_func_start sub_080A2420 sub_080A2420: @ 0x080A2420 push {r4, lr} adds r4, r0, #0 adds r0, #0x68 ldrh r0, [r0] bl sub_0807CBD0 cmp r0, #0 beq _080A243A movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_080A29BC _080A243A: pop {r4, pc} thumb_func_start sub_080A243C sub_080A243C: @ 0x080A243C push {lr} bl sub_08004274 pop {pc} thumb_func_start nullsub_538 nullsub_538: @ 0x080A2444 bx lr .align 2, 0 thumb_func_start sub_080A2448 sub_080A2448: @ 0x080A2448 push {r4, r5, lr} adds r5, r0, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _080A245E adds r0, r5, #0 bl sub_080A2500 _080A245E: ldrb r0, [r5, #0xc] adds r1, r0, #0 cmp r1, #0 bne _080A24CE adds r0, #1 strb r0, [r5, #0xc] ldrb r0, [r5, #0xe] strb r0, [r5, #0xa] str r1, [r5, #0x54] ldr r2, _080A24B4 @ =gUnk_03003D90 ldr r4, [r2, #4] cmp r4, r2 beq _080A24BE _080A2478: ldrb r0, [r4, #8] cmp r0, #3 bne _080A24B8 ldrb r0, [r5, #0xb] ldrb r1, [r4, #9] cmp r0, r1 bne _080A24B8 movs r3, #0x2e ldrsh r0, [r4, r3] movs r3, #0x2e ldrsh r1, [r5, r3] subs r0, r0, r1 adds r0, #0x10 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x1f bhi _080A24B8 movs r1, #0x32 ldrsh r0, [r4, r1] movs r3, #0x32 ldrsh r1, [r5, r3] subs r0, r0, r1 adds r0, #0x10 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x1f bhi _080A24B8 str r4, [r5, #0x54] b _080A24BE .align 2, 0 _080A24B4: .4byte gUnk_03003D90 _080A24B8: ldr r4, [r4, #4] cmp r4, r2 bne _080A2478 _080A24BE: ldr r0, [r5, #0x54] cmp r0, #0 bne _080A24CA adds r0, r5, #0 bl sub_080A2534 _080A24CA: bl sub_08054564 _080A24CE: ldr r4, [r5, #0x54] cmp r4, #0 beq _080A24F6 movs r2, #0x80 lsls r2, r2, #0xb movs r3, #0x80 lsls r3, r3, #9 adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA48 ldrh r0, [r5, #0x36] subs r0, #4 strh r0, [r5, #0x36] ldr r0, [r4, #4] cmp r0, #0 bne _080A24F6 adds r0, r5, #0 bl sub_080A2508 _080A24F6: adds r0, r5, #0 bl sub_08080CB4 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080A2500 sub_080A2500: @ 0x080A2500 push {lr} bl sub_0805E780 pop {pc} thumb_func_start sub_080A2508 sub_080A2508: @ 0x080A2508 push {r4, lr} adds r4, r0, #0 ldrb r2, [r4, #0xa] movs r1, #0 movs r3, #0 bl sub_080A2988 adds r2, r0, #0 cmp r2, #0 beq _080A252C movs r0, #5 strb r0, [r2, #0xe] adds r0, r4, #0 adds r0, #0x86 ldrh r1, [r0] adds r0, r2, #0 adds r0, #0x86 strh r1, [r0] _080A252C: adds r0, r4, #0 bl sub_080A2500 pop {r4, pc} thumb_func_start sub_080A2534 sub_080A2534: @ 0x080A2534 push {r4, lr} adds r4, r0, #0 ldrb r2, [r4, #0xa] movs r1, #0 movs r3, #0 bl sub_080A2988 adds r2, r0, #0 cmp r2, #0 beq _080A2558 movs r0, #4 strb r0, [r2, #0xe] adds r0, r4, #0 adds r0, #0x86 ldrh r1, [r0] adds r0, r2, #0 adds r0, #0x86 strh r1, [r0] _080A2558: adds r0, r4, #0 bl sub_080A2500 pop {r4, pc} thumb_func_start sub_080A2560 sub_080A2560: @ 0x080A2560 push {lr} ldr r2, _080A2574 @ =gUnk_08125084 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080A2574: .4byte gUnk_08125084 thumb_func_start sub_080A2578 sub_080A2578: @ 0x080A2578 push {lr} movs r1, #8 strb r1, [r0, #0xc] bl sub_080A259C pop {pc} thumb_func_start sub_080A2584 sub_080A2584: @ 0x080A2584 push {lr} bl sub_0805E564 ldr r1, _080A2598 @ =gUnk_02034490 movs r0, #0 strb r0, [r1] bl sub_0805E780 pop {pc} .align 2, 0 _080A2598: .4byte gUnk_02034490 thumb_func_start sub_080A259C sub_080A259C: @ 0x080A259C push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldr r5, _080A25DC @ =gUnk_03001160 ldrb r1, [r5, #0x10] movs r7, #0x7f adds r0, r7, #0 ands r0, r1 strb r0, [r5, #0x10] ldrb r1, [r5, #0x18] movs r6, #4 rsbs r6, r6, #0 adds r0, r6, #0 ands r0, r1 strb r0, [r5, #0x18] ldrb r1, [r5, #0x1a] lsls r1, r1, #0x1c lsrs r1, r1, #0x1c ldrb r2, [r4, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x1a] ldrb r0, [r4, #0xd] cmp r0, #1 beq _080A269C cmp r0, #1 bgt _080A25E0 cmp r0, #0 beq _080A25E6 b _080A273C .align 2, 0 _080A25DC: .4byte gUnk_03001160 _080A25E0: cmp r0, #2 beq _080A26B4 b _080A273C _080A25E6: movs r0, #1 movs r2, #1 strb r0, [r4, #0xd] ldrb r1, [r4, #0x18] adds r0, r6, #0 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r5, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] adds r0, r5, #0 adds r0, #0x29 ldrb r1, [r0] lsls r1, r1, #0x1d adds r3, r4, #0 adds r3, #0x29 lsrs r1, r1, #0x1d ldrb r2, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] ldrb r2, [r5, #0x19] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r3, [r4, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r3 orrs r0, r2 strb r0, [r4, #0x19] ldrb r0, [r5, #0x1b] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r4, #0x1b] ands r1, r2 orrs r1, r0 strb r1, [r4, #0x1b] ldrb r1, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] movs r0, #4 strb r0, [r4, #0x14] adds r0, r4, #0 movs r1, #6 bl sub_0805E3A0 ldr r0, _080A2670 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 beq _080A2678 ldrb r0, [r4, #0xa] bl sub_080542AC ldr r1, _080A2674 @ =0x0000045B cmp r0, #0 beq _080A2688 adds r1, #3 b _080A2688 .align 2, 0 _080A2670: .4byte gUnk_03003F80 _080A2674: .4byte 0x0000045B _080A2678: ldrb r0, [r4, #0xa] bl sub_080542AC ldr r1, _080A2698 @ =0x000001B9 cmp r0, #0 beq _080A2688 movs r1, #0xb8 lsls r1, r1, #2 _080A2688: lsrs r0, r1, #8 strh r0, [r4, #0x12] movs r0, #0xff ands r1, r0 adds r0, r4, #0 bl sub_080042AC b _080A273C .align 2, 0 _080A2698: .4byte 0x000001B9 _080A269C: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] cmp r0, #0 beq _080A273C ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] b _080A273C _080A26B4: adds r0, r4, #0 bl sub_080042B8 ldr r0, _080A2764 @ =gUnk_02000050 ldrb r1, [r0] adds r0, r7, #0 ands r0, r1 cmp r0, #0 bne _080A2762 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080A273C movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x69 ldrb r0, [r0] strb r0, [r5, #0x10] adds r0, r4, #0 adds r0, #0x68 ldrb r1, [r0] movs r0, #3 ands r1, r0 ldrb r2, [r5, #0x18] adds r0, r6, #0 ands r0, r2 orrs r0, r1 strb r0, [r5, #0x18] adds r0, r4, #0 adds r0, #0x6a ldrb r1, [r0] adds r0, r5, #0 adds r0, #0x3d strb r1, [r0] ldr r1, _080A2768 @ =gUnk_03003F80 adds r0, r4, #0 adds r0, #0x6b ldrb r0, [r0] strb r0, [r1, #7] adds r0, r4, #0 adds r0, #0x6c ldrb r0, [r0] strb r0, [r1, #0xb] adds r0, r4, #0 adds r0, #0x6d ldrb r0, [r0] strb r0, [r1, #0xa] adds r0, r4, #0 adds r0, #0x6e ldrb r0, [r0] adds r2, r1, #0 adds r2, #0x27 strb r0, [r2] adds r0, r4, #0 adds r0, #0x6f ldrb r0, [r0] strb r0, [r1, #0x1a] ldr r0, [r4, #0x70] str r0, [r1, #0x30] adds r0, r4, #0 adds r0, #0x74 ldrb r0, [r0] adds r1, #0x8a strb r0, [r1] _080A273C: ldr r5, [r4, #0x50] cmp r5, #0 beq _080A2762 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] _080A2762: pop {r4, r5, r6, r7, pc} .align 2, 0 _080A2764: .4byte gUnk_02000050 _080A2768: .4byte gUnk_03003F80 thumb_func_start sub_080A276C sub_080A276C: @ 0x080A276C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 adds r4, r1, #0 adds r7, r2, #0 bl sub_0805E744 adds r6, r0, #0 cmp r6, #0 beq _080A2820 movs r0, #0xc1 strb r0, [r6, #9] movs r0, #6 mov r8, r0 mov r1, r8 strb r1, [r6, #8] strb r4, [r6, #0xa] strb r7, [r6, #0xb] str r5, [r6, #0x50] adds r0, r6, #0 movs r1, #6 bl sub_0805EA2C adds r0, r6, #0 movs r1, #6 bl sub_0805EA78 ldr r4, _080A2828 @ =gUnk_03001160 adds r0, r4, #0 adds r1, r6, #0 bl sub_0806FA24 ldr r0, _080A282C @ =gUnk_03003DC0 mov r1, r8 strb r1, [r0] ldr r1, _080A2830 @ =gUnk_02034490 movs r0, #1 strb r0, [r1] ldrb r0, [r4, #0x10] adds r1, r6, #0 adds r1, #0x69 strb r0, [r1] ldrb r0, [r4, #0x18] lsls r0, r0, #0x1e lsrs r0, r0, #0x1e subs r1, #1 strb r0, [r1] adds r0, r4, #0 adds r0, #0x3d ldrb r0, [r0] adds r1, #2 strb r0, [r1] ldr r1, _080A2834 @ =gUnk_03003F80 ldrb r0, [r1, #7] adds r2, r6, #0 adds r2, #0x6b strb r0, [r2] ldrb r2, [r1, #0xb] adds r0, r6, #0 adds r0, #0x6c strb r2, [r0] ldrb r0, [r1, #0xa] adds r2, r6, #0 adds r2, #0x6d strb r0, [r2] adds r0, r1, #0 adds r0, #0x27 ldrb r0, [r0] adds r2, #1 strb r0, [r2] ldrb r0, [r1, #0x1a] adds r2, #1 strb r0, [r2] ldr r0, [r1, #0x30] str r0, [r6, #0x70] adds r1, #0x8a ldrb r1, [r1] adds r0, r6, #0 adds r0, #0x74 strb r1, [r0] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] _080A2820: adds r0, r6, #0 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _080A2828: .4byte gUnk_03001160 _080A282C: .4byte gUnk_03003DC0 _080A2830: .4byte gUnk_02034490 _080A2834: .4byte gUnk_03003F80 thumb_func_start sub_080A2838 sub_080A2838: @ 0x080A2838 push {r4, lr} adds r4, r0, #0 ldrb r2, [r4, #9] lsls r2, r2, #3 ldr r0, _080A2858 @ =gUnk_08126798 adds r2, r2, r0 ldrb r1, [r4, #0xa] adds r0, r4, #0 bl sub_080A285C cmp r0, #2 bne _080A2856 adds r0, r4, #0 bl sub_08016A04 _080A2856: pop {r4, pc} .align 2, 0 _080A2858: .4byte gUnk_08126798 thumb_func_start sub_080A285C sub_080A285C: @ 0x080A285C push {r4, r5, lr} adds r4, r0, #0 adds r5, r2, #0 ldrb r3, [r4, #0x10] movs r0, #1 ands r0, r3 cmp r0, #0 beq _080A2870 movs r0, #1 b _080A2958 _080A2870: ldrb r2, [r5] movs r0, #3 ands r0, r2 cmp r0, #0 bne _080A288C lsls r0, r2, #0x1c lsrs r0, r0, #0x1e lsls r0, r0, #2 movs r1, #1 orrs r0, r1 orrs r0, r3 strb r0, [r4, #0x10] movs r0, #1 b _080A2958 _080A288C: subs r0, #2 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _080A289C lsls r1, r1, #3 ldr r0, [r5, #4] adds r5, r0, r1 _080A289C: ldrh r0, [r5, #2] lsls r0, r0, #0x16 lsrs r2, r0, #0x16 adds r1, r2, #0 ldrb r0, [r5, #3] lsls r0, r0, #0x1c lsrs r0, r0, #0x1e cmp r0, #1 beq _080A28BA cmp r0, #2 bne _080A28C4 adds r0, r4, #0 adds r0, #0x60 strh r2, [r0] b _080A28D2 _080A28BA: adds r0, r4, #0 movs r2, #0 bl sub_080AE008 b _080A28CA _080A28C4: adds r0, r4, #0 bl sub_080ADF80 _080A28CA: cmp r0, #0 bne _080A28D2 movs r0, #0 b _080A2958 _080A28D2: ldrh r0, [r5, #4] lsls r0, r0, #0x16 lsrs r1, r0, #0x16 adds r0, r4, #0 bl sub_0801D040 movs r1, #0xff adds r0, r4, #0 adds r0, #0x58 strb r1, [r0] adds r1, r4, #0 adds r1, #0x40 movs r0, #0x48 strb r0, [r1] ldrh r0, [r5, #6] lsls r0, r0, #0x16 lsrs r0, r0, #0x16 strh r0, [r4, #0x12] ldrb r0, [r5, #5] movs r3, #3 movs r1, #0x30 ands r1, r0 ldrb r2, [r4, #0x18] movs r0, #0x31 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] ldrb r1, [r5, #7] lsls r1, r1, #0x1b movs r0, #0x29 adds r0, r0, r4 mov ip, r0 lsrs r1, r1, #0x1d lsls r1, r1, #3 ldrb r2, [r0] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 mov r1, ip strb r0, [r1] ldrb r1, [r5, #7] lsrs r1, r1, #5 ands r1, r3 ldrb r2, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] ldr r1, _080A295C @ =gUnk_08125104 ldrb r0, [r5, #1] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [r4, #0x48] ldrb r0, [r5] lsls r0, r0, #0x1c lsrs r0, r0, #0x1e lsls r0, r0, #2 movs r1, #1 orrs r0, r1 ldrb r1, [r4, #0x10] orrs r0, r1 strb r0, [r4, #0x10] movs r0, #2 _080A2958: pop {r4, r5, pc} .align 2, 0 _080A295C: .4byte gUnk_08125104 thumb_func_start sub_080A2960 sub_080A2960: @ 0x080A2960 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r6, r1, #0 adds r7, r2, #0 bl sub_0805E678 adds r4, r0, #0 cmp r4, #0 beq _080A2984 movs r0, #6 strb r0, [r4, #8] strb r5, [r4, #9] strb r6, [r4, #0xa] strb r7, [r4, #0xb] adds r0, r4, #0 movs r1, #6 bl sub_0805EA2C _080A2984: adds r0, r4, #0 pop {r4, r5, r6, r7, pc} thumb_func_start sub_080A2988 sub_080A2988: @ 0x080A2988 push {r4, r5, lr} adds r5, r0, #0 adds r0, r1, #0 adds r1, r2, #0 adds r2, r3, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _080A29A6 str r5, [r4, #0x50] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 _080A29A6: adds r0, r4, #0 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080A29AC sub_080A29AC: @ 0x080A29AC push {r4, lr} adds r4, r1, #0 adds r3, r2, #0 movs r1, #0xf adds r2, r4, #0 bl sub_080A2988 pop {r4, pc} thumb_func_start sub_080A29BC sub_080A29BC: @ 0x080A29BC push {lr} movs r1, #2 movs r2, #0 bl sub_080A29AC pop {pc} thumb_func_start sub_080A29C8 sub_080A29C8: @ 0x080A29C8 push {r4, r5, r6, lr} adds r4, r0, #0 adds r5, r1, #0 adds r6, r2, #0 movs r0, #0xf movs r1, #2 movs r2, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _080A29F4 ldr r1, _080A29F8 @ =gUnk_03000BF0 ldrh r0, [r1, #6] adds r0, r0, r4 strh r0, [r2, #0x2e] ldrh r0, [r1, #8] adds r0, r0, r5 strh r0, [r2, #0x32] adds r0, r2, #0 adds r0, #0x38 strb r6, [r0] _080A29F4: pop {r4, r5, r6, pc} .align 2, 0 _080A29F8: .4byte gUnk_03000BF0 thumb_func_start sub_080A29FC sub_080A29FC: @ 0x080A29FC push {lr} movs r1, #0x11 movs r2, #0 bl sub_080A29AC pop {pc} thumb_func_start sub_080A2A08 sub_080A2A08: @ 0x080A2A08 push {lr} movs r1, #6 movs r2, #0 bl sub_080A29AC pop {pc} thumb_func_start sub_080A2A14 sub_080A2A14: @ 0x080A2A14 push {lr} movs r1, #0xb movs r2, #0 bl sub_080A29AC pop {pc} thumb_func_start sub_080A2A20 sub_080A2A20: @ 0x080A2A20 push {r4, lr} adds r4, r1, #0 adds r3, r2, #0 movs r1, #0 adds r2, r4, #0 bl sub_080A2988 adds r1, r0, #0 cmp r1, #0 beq _080A2A38 movs r0, #5 strb r0, [r1, #0xe] _080A2A38: adds r0, r1, #0 pop {r4, pc} thumb_func_start sub_080A2A3C sub_080A2A3C: @ 0x080A2A3C push {r4, r5, r6, lr} adds r4, r1, #0 adds r5, r2, #0 adds r6, r3, #0 movs r1, #0 adds r2, r4, #0 adds r3, r5, #0 bl sub_080A2988 adds r1, r0, #0 cmp r1, #0 beq _080A2A5E movs r0, #5 strb r0, [r1, #0xe] adds r0, r1, #0 adds r0, #0x86 strh r6, [r0] _080A2A5E: adds r0, r1, #0 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080A2A64 sub_080A2A64: @ 0x080A2A64 push {lr} movs r1, #0x20 movs r2, #0 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _080A2A80 adds r3, r2, #0 adds r3, #0x29 ldrb r0, [r3] movs r1, #7 orrs r0, r1 strb r0, [r3] _080A2A80: adds r0, r2, #0 pop {pc} thumb_func_start sub_080A2A84 sub_080A2A84: @ 0x080A2A84 push {r4, r5, r6, r7, lr} adds r5, r1, #0 bl sub_080A2A64 adds r6, r0, #0 cmp r6, #0 beq _080A2AD2 bl sub_08000E50 adds r4, r0, #0 adds r5, #1 adds r1, r5, #0 bl __modsi3 adds r1, r0, #0 lsrs r4, r4, #8 movs r7, #1 adds r0, r4, #0 ands r0, r7 cmp r0, #0 beq _080A2AB0 rsbs r1, r1, #0 _080A2AB0: ldrh r0, [r6, #0x2e] adds r0, r0, r1 strh r0, [r6, #0x2e] lsrs r4, r4, #8 adds r0, r4, #0 adds r1, r5, #0 bl __modsi3 adds r1, r0, #0 lsrs r4, r4, #8 ands r4, r7 cmp r4, #0 beq _080A2ACC rsbs r1, r1, #0 _080A2ACC: ldrh r0, [r6, #0x32] adds r0, r0, r1 strh r0, [r6, #0x32] _080A2AD2: pop {r4, r5, r6, r7, pc} thumb_func_start sub_080A2AD4 sub_080A2AD4: @ 0x080A2AD4 push {lr} movs r1, #0x21 movs r2, #0 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _080A2AF0 adds r3, r2, #0 adds r3, #0x29 ldrb r0, [r3] movs r1, #7 orrs r0, r1 strb r0, [r3] _080A2AF0: adds r0, r2, #0 pop {pc} thumb_func_start sub_080A2AF4 sub_080A2AF4: @ 0x080A2AF4 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r1, #0 adds r4, r2, #0 bl sub_080A2AD4 adds r6, r0, #0 cmp r6, #0 beq _080A2B74 bl sub_08000E50 adds r7, r0, #0 subs r1, r4, r5 adds r1, #1 bl __modsi3 adds r4, r0, #0 adds r4, r4, r5 asrs r7, r7, #0x10 movs r0, #0xff ands r7, r0 ldr r0, _080A2B7C @ =gUnk_080C9160 mov r8, r0 lsls r0, r7, #1 add r0, r8 movs r1, #0 ldrsh r0, [r0, r1] lsls r4, r4, #0x18 asrs r4, r4, #0x10 adds r1, r4, #0 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r5, #0x80 lsls r5, r5, #1 adds r1, r5, #0 bl sub_0806FA04 lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r6, #0x2c] adds r1, r1, r0 str r1, [r6, #0x2c] adds r0, r7, #0 adds r0, #0x40 lsls r0, r0, #1 add r0, r8 movs r1, #0 ldrsh r0, [r0, r1] adds r1, r4, #0 bl sub_0806F9EC lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r5, #0 bl sub_0806FA04 lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, [r6, #0x30] subs r1, r1, r0 str r1, [r6, #0x30] _080A2B74: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _080A2B7C: .4byte gUnk_080C9160 thumb_func_start sub_080A2B80 sub_080A2B80: @ 0x080A2B80 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0xf movs r1, #0x26 movs r2, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _080A2BE0 bl sub_08000E50 adds r3, r0, #0 movs r1, #0xf adds r2, r3, #0 ands r2, r1 movs r0, #0x80 ands r0, r3 cmp r0, #0 beq _080A2BAA rsbs r2, r2, #0 _080A2BAA: lsrs r0, r3, #8 ands r0, r1 cmp r0, #4 ble _080A2BB4 rsbs r0, r0, #0 _080A2BB4: lsls r2, r2, #0x10 lsls r3, r0, #0x10 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA48 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FAB0 adds r0, r5, #0 adds r0, #0x62 ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x62 strb r0, [r1] adds r0, r5, #0 adds r0, #0x63 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x63 strb r1, [r0] _080A2BE0: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080A2BE4 sub_080A2BE4: @ 0x080A2BE4 push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r1, #0 ldrb r1, [r4, #0x15] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080A2CBA lsrs r0, r1, #3 cmp r0, #1 beq _080A2C3C cmp r0, #1 bgt _080A2C04 cmp r0, #0 beq _080A2C0E b _080A2CBA _080A2C04: cmp r0, #2 beq _080A2C68 cmp r0, #3 beq _080A2C94 b _080A2CBA _080A2C0E: ldrh r5, [r4, #0x32] adds r0, r4, #0 bl sub_0806F69C ldrh r1, [r4, #0x32] lsls r0, r5, #0x10 asrs r0, r0, #0x10 subs r0, r0, r1 lsls r0, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #0 beq _080A2CBA cmp r6, #0 beq _080A2CBA ldr r0, _080A2C38 @ =gUnk_03001160 lsls r1, r1, #8 movs r2, #0 bl sub_080044AE b _080A2CBA .align 2, 0 _080A2C38: .4byte gUnk_03001160 _080A2C3C: ldrh r5, [r4, #0x2e] adds r0, r4, #0 bl sub_0806F69C ldrh r1, [r4, #0x2e] lsls r0, r5, #0x10 asrs r0, r0, #0x10 subs r1, r1, r0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0 beq _080A2CBA cmp r6, #0 beq _080A2CBA ldr r0, _080A2C64 @ =gUnk_03001160 lsls r1, r1, #8 movs r2, #8 bl sub_080044AE b _080A2CBA .align 2, 0 _080A2C64: .4byte gUnk_03001160 _080A2C68: ldrh r5, [r4, #0x32] adds r0, r4, #0 bl sub_0806F69C ldrh r1, [r4, #0x32] lsls r0, r5, #0x10 asrs r0, r0, #0x10 subs r1, r1, r0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0 beq _080A2CBA cmp r6, #0 beq _080A2CBA ldr r0, _080A2C90 @ =gUnk_03001160 lsls r1, r1, #8 movs r2, #0x10 bl sub_080044AE b _080A2CBA .align 2, 0 _080A2C90: .4byte gUnk_03001160 _080A2C94: ldrh r5, [r4, #0x2e] adds r0, r4, #0 bl sub_0806F69C ldrh r1, [r4, #0x2e] lsls r0, r5, #0x10 asrs r0, r0, #0x10 subs r0, r0, r1 lsls r0, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #0 beq _080A2CBA cmp r6, #0 beq _080A2CBA ldr r0, _080A2CBC @ =gUnk_03001160 lsls r1, r1, #8 movs r2, #0x18 bl sub_080044AE _080A2CBA: pop {r4, r5, r6, pc} .align 2, 0 _080A2CBC: .4byte gUnk_03001160 thumb_func_start sub_080A2CC0 sub_080A2CC0: @ 0x080A2CC0 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 ldr r3, [r5] cmp r3, #0 beq _080A2CF8 ldrh r0, [r3] cmp r0, #0xfe bne _080A2CDC ldrh r1, [r3, #2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 subs r3, r3, r0 _080A2CDC: ldrh r0, [r3] cmp r0, #0xff bne _080A2CEA movs r0, #0xff strb r0, [r4, #0x15] movs r0, #0 b _080A2CEE _080A2CEA: strb r0, [r4, #0x15] ldrh r0, [r3, #4] _080A2CEE: strh r0, [r4, #0x24] ldrh r0, [r3, #2] strh r0, [r2] adds r0, r3, #6 str r0, [r5] _080A2CF8: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080A2CFC sub_080A2CFC: @ 0x080A2CFC push {r4, lr} adds r4, r1, #0 adds r3, r2, #0 movs r1, #0 adds r2, r4, #0 bl sub_080A2D2C pop {r4, pc} thumb_func_start sub_080A2D0C sub_080A2D0C: @ 0x080A2D0C push {r4, lr} adds r4, r1, #0 adds r3, r2, #0 movs r1, #1 adds r2, r4, #0 bl sub_080A2D2C pop {r4, pc} thumb_func_start sub_080A2D1C sub_080A2D1C: @ 0x080A2D1C push {r4, lr} adds r4, r1, #0 adds r3, r2, #0 movs r1, #2 adds r2, r4, #0 bl sub_080A2D2C pop {r4, pc} thumb_func_start sub_080A2D2C sub_080A2D2C: @ 0x080A2D2C push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r4, r1, #0 adds r6, r2, #0 adds r7, r3, #0 movs r0, #0x56 movs r1, #0 adds r2, r4, #0 bl sub_080A2960 adds r4, r0, #0 cmp r4, #0 beq _080A2D6E adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FAB0 str r5, [r4, #0x50] adds r0, r4, #0 adds r0, #0x62 strb r6, [r0] adds r0, #1 strb r7, [r0] ldrb r1, [r5, #0x11] lsls r1, r1, #0x1c lsrs r1, r1, #0x1c adds r0, r4, #0 bl sub_0805E3A0 _080A2D6E: adds r0, r4, #0 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080A2D74 sub_080A2D74: @ 0x080A2D74 push {lr} adds r2, r0, #0 ldr r0, [r2, #0x6c] cmp r0, #0 beq _080A2D82 subs r0, #1 str r0, [r2, #0x6c] _080A2D82: ldr r0, _080A2D94 @ =gUnk_081271D4 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 pop {pc} .align 2, 0 _080A2D94: .4byte gUnk_081271D4 thumb_func_start sub_080A2D98 sub_080A2D98: @ 0x080A2D98 push {r4, lr} adds r4, r0, #0 ldr r0, _080A2DD0 @ =gUnk_03003F80 str r4, [r0, #0x2c] movs r2, #0 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x11] subs r0, #0x11 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r4, #0x11] movs r0, #0xff strb r0, [r4, #0x1e] adds r0, r4, #0 adds r0, #0x68 ldrb r0, [r0] cmp r0, #0xe bne _080A2DD8 movs r0, #0x27 str r0, [r4, #0x70] ldr r1, _080A2DD4 @ =gUnk_081271DC ldrb r0, [r1, #1] str r0, [r4, #0x78] str r2, [r4, #0x74] str r1, [r4, #0x7c] b _080A2DDA .align 2, 0 _080A2DD0: .4byte gUnk_03003F80 _080A2DD4: .4byte gUnk_081271DC _080A2DD8: str r2, [r4, #0x70] _080A2DDA: ldr r0, _080A2DFC @ =gUnk_03001160 ldrb r1, [r0, #0x14] movs r0, #0xe ands r0, r1 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_08079BD8 adds r0, r4, #0 movs r1, #1 movs r2, #3 bl sub_080AE008 adds r0, r4, #0 bl sub_080A2E00 pop {r4, pc} .align 2, 0 _080A2DFC: .4byte gUnk_03001160 thumb_func_start sub_080A2E00 sub_080A2E00: @ 0x080A2E00 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldr r0, _080A2E90 @ =gUnk_03001160 mov ip, r0 mov r1, ip adds r1, #0x3d ldrb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 beq _080A2E1A lsrs r0, r0, #0x18 cmp r0, #0x81 bne _080A2E40 _080A2E1A: adds r5, r4, #0 adds r5, #0x3d ldrb r0, [r5] movs r2, #0 strb r0, [r1] adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] mov r1, ip adds r1, #0x3e strb r0, [r1] adds r3, r4, #0 adds r3, #0x42 ldrb r1, [r3] mov r0, ip adds r0, #0x42 strb r1, [r0] strb r2, [r3] strb r2, [r5] _080A2E40: ldr r0, _080A2E94 @ =gUnk_03003F80 ldrb r3, [r0, #3] adds r7, r0, #0 cmp r3, #0 beq _080A2F20 ldr r0, [r7, #0x2c] cmp r4, r0 bne _080A2F20 movs r2, #0x80 adds r0, r2, #0 ands r0, r3 cmp r0, #0 beq _080A2E9C ldr r1, _080A2E98 @ =gUnk_08127240 ldrb r0, [r4, #0x14] lsrs r0, r0, #1 lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [r4, #0x48] ldr r0, _080A2E90 @ =gUnk_03001160 adds r0, #0x3c ldrb r0, [r0] adds r0, #1 movs r1, #0x20 adds r2, r4, #0 adds r2, #0x3c orrs r0, r1 strb r0, [r2] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] movs r0, #0x7f ands r0, r3 strb r0, [r7, #3] adds r0, r4, #0 bl sub_080176E4 b _080A2F30 .align 2, 0 _080A2E90: .4byte gUnk_03001160 _080A2E94: .4byte gUnk_03003F80 _080A2E98: .4byte gUnk_08127240 _080A2E9C: adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _080A2F30 movs r0, #0x7f ands r0, r1 cmp r0, #0x42 bne _080A2F06 adds r0, r4, #0 adds r0, #0x68 ldrb r1, [r0] adds r5, r0, #0 cmp r1, #0xe bne _080A2F06 movs r0, #0x40 ands r0, r3 lsls r0, r0, #0x18 lsrs r6, r0, #0x18 cmp r6, #0 bne _080A2F06 ldrb r3, [r5] movs r0, #0x15 movs r1, #0 movs r2, #0 bl sub_08077CB8 adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 beq _080A2EF4 movs r0, #1 strb r0, [r1, #0xf] ldr r2, [r4, #0x54] adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] movs r1, #0x10 eors r0, r1 strb r0, [r2, #0x15] ldr r0, [r4, #0x54] str r4, [r0, #0x50] _080A2EF4: ldr r1, _080A2F1C @ =gUnk_08127220 ldrb r0, [r1, #1] str r0, [r4, #0x78] str r6, [r4, #0x74] str r1, [r4, #0x7c] ldrb r0, [r7, #3] movs r1, #0x40 orrs r0, r1 strb r0, [r7, #3] _080A2F06: ldr r0, [r4, #0x6c] cmp r0, #0 bne _080A2F30 movs r0, #0x8c lsls r0, r0, #1 bl sub_080A3268 movs r0, #8 str r0, [r4, #0x6c] b _080A2F30 .align 2, 0 _080A2F1C: .4byte gUnk_08127220 _080A2F20: movs r1, #0 strb r1, [r7, #3] ldr r0, [r7, #0x2c] cmp r0, r4 bne _080A2F2C str r1, [r7, #0x2c] _080A2F2C: bl sub_0805E780 _080A2F30: ldr r6, _080A301C @ =gUnk_03001160 ldrh r0, [r6, #0x12] cmp r0, #1 beq _080A2F3E cmp r0, #4 beq _080A2F3E b _080A3064 _080A2F3E: ldrb r0, [r6, #0x1e] subs r0, #0x25 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x3e bls _080A2F4C b _080A3064 _080A2F4C: ldrb r2, [r6, #0x18] movs r1, #0x40 ands r1, r2 ldrb r3, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r3 orrs r0, r1 lsrs r2, r2, #7 lsls r2, r2, #7 movs r3, #0x7f ands r0, r3 orrs r0, r2 strb r0, [r4, #0x18] ldrb r2, [r6, #0x1e] ldr r1, [r4, #0x70] adds r0, r1, #0 subs r0, #0x25 adds r0, r2, r0 adds r5, r4, #0 adds r5, #0x68 ldrb r7, [r4, #0x1e] cmp r0, r7 beq _080A2FA2 adds r0, r1, #0 adds r0, #0xdb adds r0, r2, r0 strb r0, [r4, #0x1e] ldrb r0, [r5] cmp r0, #0xe bne _080A2F98 adds r0, r6, #0 adds r0, #0x5a ldrb r1, [r0] adds r0, r3, #0 ands r0, r1 cmp r0, #0 bne _080A2FA2 _080A2F98: ldrb r1, [r4, #0x1e] ldrh r2, [r4, #0x12] adds r0, r4, #0 bl sub_080042D0 _080A2FA2: ldrb r0, [r5] cmp r0, #0xe bne _080A303E ldr r0, _080A301C @ =gUnk_03001160 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 beq _080A303E ldr r0, [r4, #0x78] subs r3, r0, #1 str r3, [r4, #0x78] cmp r3, #0 bne _080A303E ldr r0, [r4, #0x74] adds r0, #1 str r0, [r4, #0x74] lsls r0, r0, #2 ldr r1, [r4, #0x7c] adds r2, r1, r0 ldrb r0, [r2] ldr r7, _080A3020 @ =gUnk_03003F80 cmp r0, #0xff bne _080A2FEC ldrb r1, [r7, #3] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _080A2FE8 ldr r0, _080A3024 @ =gUnk_081271DC str r0, [r4, #0x7c] movs r0, #0xbf ands r0, r1 strb r0, [r7, #3] _080A2FE8: str r3, [r4, #0x74] ldr r1, [r4, #0x7c] _080A2FEC: ldr r0, [r4, #0x74] lsls r0, r0, #2 adds r2, r1, r0 ldrb r0, [r2, #1] str r0, [r4, #0x78] ldrb r1, [r7, #3] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _080A3028 ldr r0, _080A301C @ =gUnk_03001160 adds r0, #0x5a ldrb r0, [r0] movs r1, #0x7f ands r1, r0 adds r1, #8 ldrb r2, [r2] adds r1, r1, r2 ldrh r2, [r4, #0x12] adds r0, r4, #0 bl sub_080042D0 b _080A303E .align 2, 0 _080A301C: .4byte gUnk_03001160 _080A3020: .4byte gUnk_03003F80 _080A3024: .4byte gUnk_081271DC _080A3028: ldr r0, _080A3060 @ =gUnk_03001160 adds r0, #0x5a ldrb r0, [r0] movs r1, #0x7f ands r1, r0 ldrb r2, [r2] adds r1, r1, r2 ldrh r2, [r4, #0x12] adds r0, r4, #0 bl sub_080042D0 _080A303E: ldr r1, _080A3060 @ =gUnk_03001160 adds r0, r1, #0 adds r0, #0x5a ldrb r0, [r0] adds r2, r4, #0 adds r2, #0x5a strb r0, [r2] adds r0, r1, #0 adds r0, #0x5b ldrb r0, [r0] adds r2, #1 strb r0, [r2] adds r0, r4, #0 bl sub_08078E84 b _080A3068 .align 2, 0 _080A3060: .4byte gUnk_03001160 _080A3064: movs r0, #0xff strb r0, [r4, #0x1e] _080A3068: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080A306C sub_080A306C: @ 0x080A306C push {lr} ldr r2, _080A3080 @ =gUnk_08127270 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080A3080: .4byte gUnk_08127270 thumb_func_start sub_080A3084 sub_080A3084: @ 0x080A3084 push {r4, r5, lr} adds r4, r0, #0 ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r5, #1 strb r5, [r4, #0xc] ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA24 ldrb r0, [r4, #0xa] cmp r0, #0 bne _080A30F8 ldr r0, _080A30EC @ =gUnk_03001160 adds r0, #0x3c ldrb r0, [r0] adds r0, #1 adds r1, r4, #0 adds r1, #0x3c strb r0, [r1] ldr r0, _080A30F0 @ =gUnk_08127278 str r0, [r4, #0x48] movs r0, #0x80 lsls r0, r0, #3 strh r0, [r4, #0x24] adds r0, r4, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #2 bne _080A30CC strb r5, [r4, #0xb] _080A30CC: ldrb r0, [r4, #0x14] lsls r0, r0, #2 strb r0, [r4, #0x15] movs r0, #0x3c str r0, [r4, #0x6c] adds r0, r4, #0 bl sub_0801766C adds r0, r4, #0 bl sub_0806F69C ldr r0, _080A30F4 @ =0x0000013F bl sub_080A3268 b _080A30FC .align 2, 0 _080A30EC: .4byte gUnk_03001160 _080A30F0: .4byte gUnk_08127278 _080A30F4: .4byte 0x0000013F _080A30F8: movs r0, #6 strb r0, [r4, #0xe] _080A30FC: adds r0, r4, #0 movs r1, #0x18 bl sub_08004260 adds r0, r4, #0 bl sub_080A310C pop {r4, r5, pc} thumb_func_start sub_080A310C sub_080A310C: @ 0x080A310C push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 beq _080A312A ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _080A3200 bl sub_0805E780 b _080A3200 _080A312A: adds r0, r4, #0 bl sub_08004274 ldr r0, [r4, #0x6c] subs r0, #1 str r0, [r4, #0x6c] movs r1, #1 rsbs r1, r1, #0 cmp r0, r1 beq _080A31FC adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] ldrb r0, [r4, #0xb] cmp r0, #0 bne _080A315C adds r0, r4, #0 bl sub_0800451C _080A315C: movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _080A31F0 @ =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 ldr r1, _080A31F4 @ =gUnk_03001160 adds r1, #0x38 ldrb r1, [r1] movs r2, #0x80 bl sub_080002F0 cmp r0, #0 bne _080A31AE ldr r1, _080A31F8 @ =gUnk_08003E44 movs r0, #0x2e ldrsh r2, [r4, r0] movs r5, #0x32 ldrsh r3, [r4, r5] adds r0, r4, #0 bl sub_080040D8 cmp r0, #0 beq _080A31AE adds r0, r4, #0 movs r1, #0x19 movs r2, #0 bl sub_080A29AC bl sub_0805E780 _080A31AE: adds r0, r4, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0 beq _080A31C6 adds r0, r4, #0 movs r1, #0x19 movs r2, #0 bl sub_080A29AC bl sub_0805E780 _080A31C6: adds r0, r4, #0 movs r1, #0xc bl sub_08008790 cmp r0, #0 beq _080A31D6 bl sub_0805E780 _080A31D6: adds r0, r4, #0 adds r0, #0x68 ldrb r3, [r0] movs r0, #0x15 movs r1, #1 movs r2, #0 bl sub_08077CB8 str r0, [r4, #0x54] cmp r0, #0 beq _080A3200 str r4, [r0, #0x50] b _080A3200 .align 2, 0 _080A31F0: .4byte gUnk_03000BF0 _080A31F4: .4byte gUnk_03001160 _080A31F8: .4byte gUnk_08003E44 _080A31FC: bl sub_0805E780 _080A3200: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080A3204 sub_080A3204: @ 0x080A3204 push {lr} bl sub_080A3210 bl m4aSoundInit pop {pc} thumb_func_start sub_080A3210 sub_080A3210: @ 0x080A3210 push {r4, lr} ldr r4, _080A3230 @ =gUnk_02021EE0 adds r0, r4, #0 movs r1, #0x18 bl sub_0801D630 bl sub_080A35C8 movs r0, #0x80 lsls r0, r0, #1 strh r0, [r4, #0x12] strh r0, [r4, #4] bl m4aMPlayAllStop pop {r4, pc} .align 2, 0 _080A3230: .4byte gUnk_02021EE0 thumb_func_start sub_080A3234 sub_080A3234: @ 0x080A3234 push {lr} ldr r1, _080A3244 @ =gUnk_02021EE0 strh r0, [r1, #8] strh r0, [r1, #0xa] ldrh r0, [r1, #0x14] bl sub_080A353C pop {pc} .align 2, 0 _080A3244: .4byte gUnk_02021EE0 thumb_func_start sub_080A3248 sub_080A3248: @ 0x080A3248 push {lr} ldr r1, _080A3258 @ =gUnk_02021EE0 strh r0, [r1, #0x10] strh r0, [r1, #0xe] ldrh r0, [r1, #0x14] bl sub_080A353C pop {pc} .align 2, 0 _080A3258: .4byte gUnk_02021EE0 thumb_func_start sub_080A325C sub_080A325C: @ 0x080A325C ldr r1, _080A3264 @ =gUnk_02021EE0 strh r0, [r1, #0x12] bx lr .align 2, 0 _080A3264: .4byte gUnk_02021EE0 thumb_func_start sub_080A3268 sub_080A3268: @ 0x080A3268 push {r4, r5, lr} adds r3, r0, #0 ldr r0, _080A32AC @ =gUnk_03001000 ldrb r2, [r0, #7] cmp r2, #0 beq _080A3276 b _080A347C _080A3276: ldr r5, _080A32B0 @ =gUnk_02021EE0 ldr r4, _080A32B4 @ =0x0000FFFF ands r4, r3 ldr r1, _080A32B8 @ =0xFFFF0000 ands r1, r3 ldr r0, _080A32BC @ =0x80090000 cmp r1, r0 bne _080A3288 b _080A33A0 _080A3288: cmp r1, r0 bhi _080A3310 ldr r0, _080A32C0 @ =0x80040000 cmp r1, r0 bne _080A3294 b _080A33F4 _080A3294: cmp r1, r0 bhi _080A32D8 ldr r0, _080A32C4 @ =0x80020000 cmp r1, r0 bne _080A32A0 b _080A3384 _080A32A0: cmp r1, r0 bhi _080A32CC ldr r0, _080A32C8 @ =0x80010000 cmp r1, r0 beq _080A337C b _080A3458 .align 2, 0 _080A32AC: .4byte gUnk_03001000 _080A32B0: .4byte gUnk_02021EE0 _080A32B4: .4byte 0x0000FFFF _080A32B8: .4byte 0xFFFF0000 _080A32BC: .4byte 0x80090000 _080A32C0: .4byte 0x80040000 _080A32C4: .4byte 0x80020000 _080A32C8: .4byte 0x80010000 _080A32CC: ldr r0, _080A32D4 @ =0x80030000 cmp r1, r0 beq _080A338C b _080A3458 .align 2, 0 _080A32D4: .4byte 0x80030000 _080A32D8: ldr r0, _080A32F0 @ =0x80060000 cmp r1, r0 bne _080A32E0 b _080A340A _080A32E0: cmp r1, r0 bhi _080A32F8 ldr r0, _080A32F4 @ =0x80050000 cmp r1, r0 bne _080A32EC b _080A33FE _080A32EC: b _080A3458 .align 2, 0 _080A32F0: .4byte 0x80060000 _080A32F4: .4byte 0x80050000 _080A32F8: ldr r0, _080A3308 @ =0x80070000 cmp r1, r0 bne _080A3300 b _080A340E _080A3300: ldr r0, _080A330C @ =0x80080000 cmp r1, r0 beq _080A3398 b _080A3458 .align 2, 0 _080A3308: .4byte 0x80070000 _080A330C: .4byte 0x80080000 _080A3310: ldr r0, _080A3330 @ =0x800D0000 cmp r1, r0 bne _080A3318 b _080A343A _080A3318: cmp r1, r0 bhi _080A3348 ldr r0, _080A3334 @ =0x800B0000 cmp r1, r0 bne _080A3324 b _080A3420 _080A3324: cmp r1, r0 bhi _080A333C ldr r0, _080A3338 @ =0x800A0000 cmp r1, r0 beq _080A33B6 b _080A3458 .align 2, 0 _080A3330: .4byte 0x800D0000 _080A3334: .4byte 0x800B0000 _080A3338: .4byte 0x800A0000 _080A333C: ldr r0, _080A3344 @ =0x800C0000 cmp r1, r0 beq _080A33CC b _080A3458 .align 2, 0 _080A3344: .4byte 0x800C0000 _080A3348: ldr r0, _080A335C @ =0x800F0000 cmp r1, r0 bne _080A3350 b _080A344E _080A3350: cmp r1, r0 bhi _080A3364 ldr r0, _080A3360 @ =0x800E0000 cmp r1, r0 beq _080A3446 b _080A3458 .align 2, 0 _080A335C: .4byte 0x800F0000 _080A3360: .4byte 0x800E0000 _080A3364: ldr r0, _080A3374 @ =0x80100000 cmp r1, r0 beq _080A343E ldr r0, _080A3378 @ =0x80110000 cmp r1, r0 beq _080A3454 b _080A3458 .align 2, 0 _080A3374: .4byte 0x80100000 _080A3378: .4byte 0x80110000 _080A337C: strh r2, [r5, #0x14] bl m4aMPlayAllStop b _080A347C _080A3384: movs r0, #0 bl sub_080A3234 b _080A347C _080A338C: bl sub_080A35C8 movs r0, #0x80 lsls r0, r0, #1 strh r0, [r5, #0x12] b _080A3418 _080A3398: ldrh r0, [r5, #0x14] bl sub_080A35B4 b _080A347C _080A33A0: cmp r4, #0 bne _080A33A6 ldrh r4, [r5, #0x14] _080A33A6: subs r0, r4, #1 cmp r0, #0x62 bhi _080A347C strh r4, [r5, #0x14] adds r0, r4, #0 bl m4aSongNumStart b _080A33C4 _080A33B6: subs r0, r4, #1 cmp r0, #0x62 bhi _080A347C strh r4, [r5, #0x14] adds r0, r4, #0 bl m4aSongNumStartOrContinue _080A33C4: adds r0, r4, #0 bl sub_080A35A0 b _080A347C _080A33CC: ldr r2, _080A33EC @ =gUnk_08A11C3C ldr r1, _080A33F0 @ =gUnk_08A11DBC ldrh r0, [r5, #0x14] lsls r0, r0, #3 adds r0, r0, r1 ldrh r1, [r0, #4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r0, r0, r2 ldr r0, [r0] adds r1, r4, #0 bl m4aMPlayTempoControl b _080A347C .align 2, 0 _080A33EC: .4byte gUnk_08A11C3C _080A33F0: .4byte gUnk_08A11DBC _080A33F4: bl m4aMPlayAllStop bl m4aSoundVSyncOff b _080A347C _080A33FE: ldrh r0, [r5, #0x14] cmp r0, #0 beq _080A347C bl m4aSongNumStop b _080A347C _080A340A: bl m4aSoundVSyncOn _080A340E: ldrh r0, [r5, #0x14] cmp r0, #0 beq _080A347C bl m4aSongNumStartOrContinue _080A3418: ldrh r0, [r5, #0x14] bl sub_080A353C b _080A347C _080A3420: subs r0, r4, #1 cmp r0, #0x62 bhi _080A347C strh r4, [r5, #0x14] adds r0, r4, #0 bl m4aSongNumStartOrContinue bl sub_080A35C8 adds r0, r4, #0 bl sub_080A353C b _080A347C _080A343A: strh r2, [r5, #0x10] b _080A347C _080A343E: strh r2, [r5, #0x10] movs r0, #1 strb r0, [r5, #2] b _080A347C _080A3446: movs r0, #0x80 lsls r0, r0, #1 strh r0, [r5, #0x10] b _080A347C _080A344E: bl sub_080A35C8 b _080A347C _080A3454: strh r2, [r5, #0x14] b _080A347C _080A3458: cmp r4, #0 beq _080A347C subs r0, r4, #1 cmp r0, #0x62 bhi _080A3470 strh r4, [r5, #0x14] adds r0, r4, #0 bl m4aSongNumStart bl sub_080A35C8 b _080A3476 _080A3470: adds r0, r4, #0 bl m4aSongNumStart _080A3476: adds r0, r4, #0 bl sub_080A353C _080A347C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080A3480 sub_080A3480: @ 0x080A3480 push {r4, lr} ldr r4, _080A34A4 @ =gUnk_02021EE0 movs r0, #0xa ldrsh r1, [r4, r0] movs r2, #8 ldrsh r0, [r4, r2] cmp r1, r0 beq _080A34C4 adds r0, r1, #0 movs r2, #8 ldrsh r1, [r4, r2] bl sub_080A3518 adds r1, r0, #0 cmp r1, #0 bne _080A34A8 ldrh r0, [r4, #0xa] b _080A34AC .align 2, 0 _080A34A4: .4byte gUnk_02021EE0 _080A34A8: ldrh r0, [r4, #8] adds r0, r0, r1 _080A34AC: strh r0, [r4, #8] movs r1, #8 ldrsh r0, [r4, r1] cmp r0, #0 bge _080A34BC movs r0, #0 strh r0, [r4, #0xa] strh r0, [r4, #8] _080A34BC: ldrh r0, [r4, #0x14] bl sub_080A353C b _080A3516 _080A34C4: movs r2, #0x10 ldrsh r1, [r4, r2] movs r2, #0xe ldrsh r0, [r4, r2] cmp r1, r0 beq _080A3516 adds r0, r1, #0 movs r2, #0xe ldrsh r1, [r4, r2] bl sub_080A3518 adds r1, r0, #0 cmp r1, #0 bne _080A34FC ldrb r0, [r4, #2] ldrh r2, [r4, #0x10] cmp r0, #0 beq _080A34F8 cmp r2, #0 bne _080A34F8 strb r1, [r4, #2] strh r1, [r4, #0x14] movs r0, #0 bl m4aSongNumStop b _080A3502 _080A34F8: strh r2, [r4, #0xe] b _080A3502 _080A34FC: ldrh r0, [r4, #0xe] adds r0, r0, r1 strh r0, [r4, #0xe] _080A3502: movs r1, #0xe ldrsh r0, [r4, r1] cmp r0, #0 bge _080A3510 movs r0, #0 strh r0, [r4, #0x10] strh r0, [r4, #0xe] _080A3510: ldrh r0, [r4, #0x14] bl sub_080A353C _080A3516: pop {r4, pc} thumb_func_start sub_080A3518 sub_080A3518: @ 0x080A3518 push {lr} adds r2, r0, #0 subs r0, r2, r1 cmp r0, #0 ble _080A352C adds r1, #4 cmp r2, r1 ble _080A3532 movs r0, #4 b _080A353A _080A352C: subs r1, #4 cmp r2, r1 blt _080A3536 _080A3532: movs r0, #0 b _080A353A _080A3536: movs r0, #4 rsbs r0, r0, #0 _080A353A: pop {pc} thumb_func_start sub_080A353C sub_080A353C: @ 0x080A353C push {r4, r5, lr} adds r3, r0, #0 cmp r3, #0 beq _080A358C subs r0, r3, #1 cmp r0, #0x62 bhi _080A3558 ldr r0, _080A3554 @ =gUnk_02021EE0 movs r1, #0xe ldrsh r5, [r0, r1] b _080A355E .align 2, 0 _080A3554: .4byte gUnk_02021EE0 _080A3558: ldr r0, _080A3590 @ =gUnk_02021EE0 movs r1, #0x12 ldrsh r5, [r0, r1] _080A355E: movs r1, #8 ldrsh r0, [r0, r1] muls r0, r5, r0 lsrs r5, r0, #8 ldr r2, _080A3594 @ =gUnk_08A11C3C ldr r1, _080A3598 @ =gUnk_08A11DBC lsls r0, r3, #3 adds r0, r0, r1 ldrh r1, [r0, #4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r0, r0, r2 ldr r4, [r0] adds r0, r4, #0 bl m4aMPlayImmInit ldr r1, _080A359C @ =0x0000FFFF lsls r2, r5, #0x10 lsrs r2, r2, #0x10 adds r0, r4, #0 bl m4aMPlayVolumeControl _080A358C: pop {r4, r5, pc} .align 2, 0 _080A3590: .4byte gUnk_02021EE0 _080A3594: .4byte gUnk_08A11C3C _080A3598: .4byte gUnk_08A11DBC _080A359C: .4byte 0x0000FFFF thumb_func_start sub_080A35A0 sub_080A35A0: @ 0x080A35A0 push {lr} ldr r2, _080A35B0 @ =gUnk_02021EE0 movs r1, #0x80 lsls r1, r1, #1 strh r1, [r2, #0xa] bl sub_080A353C pop {pc} .align 2, 0 _080A35B0: .4byte gUnk_02021EE0 thumb_func_start sub_080A35B4 sub_080A35B4: @ 0x080A35B4 push {lr} ldr r2, _080A35C4 @ =gUnk_02021EE0 movs r1, #0 strh r1, [r2, #0xa] bl sub_080A353C pop {pc} .align 2, 0 _080A35C4: .4byte gUnk_02021EE0 thumb_func_start sub_080A35C8 sub_080A35C8: @ 0x080A35C8 ldr r1, _080A35DC @ =gUnk_02021EE0 movs r0, #0x80 lsls r0, r0, #1 strh r0, [r1, #6] strh r0, [r1, #8] strh r0, [r1, #0xa] strh r0, [r1, #0xc] strh r0, [r1, #0xe] strh r0, [r1, #0x10] bx lr .align 2, 0 _080A35DC: .4byte gUnk_02021EE0 thumb_func_start sub_080A35E0 sub_080A35E0: @ 0x080A35E0 push {lr} ldr r1, _080A35FC @ =gUnk_030010A0 ldr r0, [r1] adds r0, #1 str r0, [r1] ldr r1, _080A3600 @ =gUnk_08127D00 ldr r0, _080A3604 @ =gUnk_03001000 ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _080A35FC: .4byte gUnk_030010A0 _080A3600: .4byte gUnk_08127D00 _080A3604: .4byte gUnk_03001000 thumb_func_start sub_080A3608 sub_080A3608: @ 0x080A3608 push {r4, r5, lr} ldr r0, _080A3640 @ =gUnk_02002A40 movs r5, #0 movs r4, #1 strb r4, [r0, #6] movs r0, #0x55 bl sub_0807CD04 ldr r0, _080A3644 @ =gUnk_03001000 strb r4, [r0, #3] ldr r2, _080A3648 @ =gUnk_02000080 strb r5, [r2, #5] movs r1, #0 movs r0, #0xb4 strh r0, [r2, #8] movs r0, #5 strb r0, [r2, #0x16] movs r0, #4 strb r0, [r2, #0x17] strb r1, [r2, #0x1a] movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] cmp r0, #1 bls _080A3650 ldr r0, _080A364C @ =gUnk_08127998 b _080A365E .align 2, 0 _080A3640: .4byte gUnk_02002A40 _080A3644: .4byte gUnk_03001000 _080A3648: .4byte gUnk_02000080 _080A364C: .4byte gUnk_08127998 _080A3650: cmp r0, #1 bne _080A365C ldr r0, _080A3658 @ =gUnk_08127644 b _080A365E .align 2, 0 _080A3658: .4byte gUnk_08127644 _080A365C: ldr r0, _080A36B0 @ =gUnk_081272F0 _080A365E: str r0, [r2, #0xc] movs r0, #0 bl sub_0801DA90 movs r0, #0xb bl sub_0801D714 movs r0, #0xc bl sub_0801D714 movs r0, #0 movs r1, #0 bl sub_0801D79C ldr r2, _080A36B4 @ =gUnk_03000F50 movs r0, #0xc8 lsls r0, r0, #3 strh r0, [r2] adds r1, r2, #0 adds r1, #0x66 ldr r0, _080A36B8 @ =0x00002442 strh r0, [r1] adds r1, #2 movs r0, #0x80 lsls r0, r0, #5 strh r0, [r1] ldr r0, _080A36BC @ =0x00001E4D strh r0, [r2, #0x14] subs r0, #0x8a strh r0, [r2, #0x20] bl sub_080A3210 bl sub_0805E5B4 movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 bl sub_08050054 pop {r4, r5, pc} .align 2, 0 _080A36B0: .4byte gUnk_081272F0 _080A36B4: .4byte gUnk_03000F50 _080A36B8: .4byte 0x00002442 _080A36BC: .4byte 0x00001E4D thumb_func_start sub_080A36C0 sub_080A36C0: @ 0x080A36C0 push {lr} ldr r1, _080A36D4 @ =gUnk_08127D10 ldr r0, _080A36D8 @ =gUnk_02000080 ldrb r0, [r0, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _080A36D4: .4byte gUnk_08127D10 _080A36D8: .4byte gUnk_02000080 thumb_func_start sub_080A36DC sub_080A36DC: @ 0x080A36DC push {lr} ldr r1, _080A36F4 @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _080A36F0 bl sub_080A3954 _080A36F0: pop {pc} .align 2, 0 _080A36F4: .4byte gUnk_02000080 thumb_func_start sub_080A36F8 sub_080A36F8: @ 0x080A36F8 push {r4, r5, lr} ldr r0, _080A3754 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080A3752 ldr r5, _080A3758 @ =gUnk_02000080 movs r0, #0x10 ldrsh r4, [r5, r0] lsls r4, r4, #1 ldr r0, _080A375C @ =gUnk_08127CEC adds r4, r4, r0 ldrb r0, [r4] bl sub_0801D714 ldrb r0, [r4, #1] bl sub_0801D7EC ldr r0, _080A3760 @ =gUnk_02021F30 movs r1, #0x80 lsls r1, r1, #4 bl sub_0801D630 ldr r1, _080A3764 @ =gUnk_03000F50 movs r2, #0 movs r0, #1 strh r0, [r1, #0x1a] ldrh r0, [r5, #0x12] strh r0, [r1, #0x22] adds r1, #0x68 movs r0, #0x80 lsls r0, r0, #5 strh r0, [r1] strb r2, [r5, #5] ldrb r0, [r5, #0x1a] cmp r0, #0 bne _080A374A movs r0, #1 strb r0, [r5, #0x1a] movs r0, #9 bl sub_080A3268 _080A374A: movs r0, #4 movs r1, #8 bl sub_08050054 _080A3752: pop {r4, r5, pc} .align 2, 0 _080A3754: .4byte gUnk_03000FD0 _080A3758: .4byte gUnk_02000080 _080A375C: .4byte gUnk_08127CEC _080A3760: .4byte gUnk_02021F30 _080A3764: .4byte gUnk_03000F50 thumb_func_start sub_080A3768 sub_080A3768: @ 0x080A3768 push {r4, lr} ldr r4, _080A377C @ =gUnk_02000080 ldrb r1, [r4, #6] cmp r1, #1 beq _080A37C4 cmp r1, #1 bgt _080A3780 cmp r1, #0 beq _080A378A b _080A384C .align 2, 0 _080A377C: .4byte gUnk_02000080 _080A3780: cmp r1, #2 beq _080A3804 cmp r1, #3 beq _080A3812 b _080A384C _080A378A: ldr r0, _080A37B8 @ =gUnk_02021F30 movs r1, #0x80 lsls r1, r1, #4 bl sub_0801D630 movs r1, #0x10 ldrsh r0, [r4, r1] ldr r2, _080A37BC @ =gUnk_081272E0 ldrb r1, [r4, #0x19] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl sub_0805F46C ldr r1, _080A37C0 @ =gUnk_03000F50 movs r2, #0 movs r0, #1 strh r0, [r1, #0x1a] ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] strb r2, [r4, #0x18] b _080A385E .align 2, 0 _080A37B8: .4byte gUnk_02021F30 _080A37BC: .4byte gUnk_081272E0 _080A37C0: .4byte gUnk_03000F50 _080A37C4: ldr r0, _080A37F8 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080A385E ldr r0, _080A37FC @ =gUnk_030010A0 ldr r0, [r0] ands r0, r1 cmp r0, #0 bne _080A385E ldrb r1, [r4, #0x18] adds r1, #1 strb r1, [r4, #0x18] lsls r0, r1, #0x18 lsrs r3, r0, #0x18 ldr r2, _080A3800 @ =gUnk_03000F50 movs r0, #0x10 subs r0, r0, r3 lsls r0, r0, #8 orrs r0, r3 adds r2, #0x68 strh r0, [r2] lsls r1, r1, #0x18 lsrs r1, r1, #0x18 cmp r1, #0xf bls _080A385E b _080A383C .align 2, 0 _080A37F8: .4byte gUnk_03000FD0 _080A37FC: .4byte gUnk_030010A0 _080A3800: .4byte gUnk_03000F50 _080A3804: ldrh r0, [r4, #8] subs r0, #1 strh r0, [r4, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _080A385E b _080A383C _080A3812: ldr r0, _080A3844 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #1 ands r0, r1 cmp r0, #0 bne _080A385E ldrb r1, [r4, #0x18] subs r1, #1 strb r1, [r4, #0x18] lsls r0, r1, #0x18 lsrs r3, r0, #0x18 ldr r2, _080A3848 @ =gUnk_03000F50 movs r0, #0x10 subs r0, r0, r3 lsls r0, r0, #8 orrs r0, r3 adds r2, #0x68 strh r0, [r2] lsls r1, r1, #0x18 cmp r1, #0 bne _080A385E _080A383C: ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] b _080A385E .align 2, 0 _080A3844: .4byte gUnk_030010A0 _080A3848: .4byte gUnk_03000F50 _080A384C: ldr r1, _080A3860 @ =gUnk_03000FD0 ldrb r0, [r1] cmp r0, #0 bne _080A385E movs r0, #1 rsbs r0, r0, #0 str r0, [r1, #4] bl sub_080A3954 _080A385E: pop {r4, pc} .align 2, 0 _080A3860: .4byte gUnk_03000FD0 thumb_func_start sub_080A3864 sub_080A3864: @ 0x080A3864 push {lr} ldr r1, _080A3884 @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _080A3880 bl sub_080A3954 movs r0, #5 movs r1, #8 bl sub_08050054 _080A3880: pop {pc} .align 2, 0 _080A3884: .4byte gUnk_02000080 thumb_func_start sub_080A3888 sub_080A3888: @ 0x080A3888 push {lr} ldr r1, _080A38A8 @ =gUnk_03000FD0 ldr r0, _080A38AC @ =0xFFFF7FFF str r0, [r1, #4] movs r0, #5 movs r1, #4 bl sub_08050054 ldr r0, _080A38B0 @ =gUnk_02000080 ldrh r0, [r0, #8] bl sub_08050038 bl sub_080A3954 pop {pc} .align 2, 0 _080A38A8: .4byte gUnk_03000FD0 _080A38AC: .4byte 0xFFFF7FFF _080A38B0: .4byte gUnk_02000080 thumb_func_start sub_080A38B4 sub_080A38B4: @ 0x080A38B4 push {lr} movs r0, #4 movs r1, #4 bl sub_08050054 ldr r0, _080A38CC @ =gUnk_02000080 ldrh r0, [r0, #8] bl sub_08050038 bl sub_080A3954 pop {pc} .align 2, 0 _080A38CC: .4byte gUnk_02000080 thumb_func_start sub_080A38D0 sub_080A38D0: @ 0x080A38D0 push {r4, r5, r6, lr} mov r6, r8 push {r6} ldr r0, _080A391C @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080A3914 ldr r0, _080A3920 @ =gUnk_02021F30 movs r6, #0x80 lsls r6, r6, #4 adds r1, r6, #0 bl sub_0801D630 ldr r4, _080A3924 @ =gUnk_03000F50 movs r0, #0 mov r8, r0 movs r5, #1 strh r5, [r4, #0x1a] ldr r0, _080A3928 @ =gUnk_020344B0 adds r1, r6, #0 bl sub_0801D630 strh r5, [r4, #0x26] adds r4, #0x68 movs r0, #0x80 lsls r0, r0, #5 strh r0, [r4] ldr r0, _080A392C @ =gUnk_02000080 mov r1, r8 strb r1, [r0, #5] movs r0, #4 movs r1, #8 bl sub_08050054 _080A3914: pop {r3} mov r8, r3 pop {r4, r5, r6, pc} .align 2, 0 _080A391C: .4byte gUnk_03000FD0 _080A3920: .4byte gUnk_02021F30 _080A3924: .4byte gUnk_03000F50 _080A3928: .4byte gUnk_020344B0 _080A392C: .4byte gUnk_02000080 thumb_func_start sub_080A3930 sub_080A3930: @ 0x080A3930 push {lr} ldr r0, _080A394C @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080A3948 movs r0, #7 movs r1, #8 bl sub_08050054 ldr r1, _080A3950 @ =gUnk_03001000 movs r0, #2 strb r0, [r1, #3] _080A3948: pop {pc} .align 2, 0 _080A394C: .4byte gUnk_03000FD0 _080A3950: .4byte gUnk_03001000 thumb_func_start sub_080A3954 sub_080A3954: @ 0x080A3954 ldr r2, _080A397C @ =gUnk_02000080 ldr r1, [r2, #0xc] ldrb r0, [r1] movs r3, #0 strb r0, [r2, #5] strb r3, [r2, #6] ldrh r0, [r1, #6] strh r0, [r2, #0x10] ldrh r0, [r1, #4] strh r0, [r2, #8] ldrh r0, [r1, #8] strh r0, [r2, #0x12] ldrh r0, [r1, #0xa] strh r0, [r2, #0x14] ldrb r0, [r1, #1] strb r0, [r2, #0x19] adds r1, #0xc str r1, [r2, #0xc] bx lr .align 2, 0 _080A397C: .4byte gUnk_02000080 thumb_func_start sub_080A3980 sub_080A3980: @ 0x080A3980 push {lr} ldr r0, _080A3990 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080A398E bl sub_080560A8 _080A398E: pop {pc} .align 2, 0 _080A3990: .4byte gUnk_03000FD0 thumb_func_start sub_080A3994 sub_080A3994: @ 0x080A3994 push {r4, r5, lr} ldr r0, _080A39AC @ =gUnk_02000080 ldrb r1, [r0, #6] adds r2, r0, #0 cmp r1, #4 bls _080A39A2 b _080A3B14 _080A39A2: lsls r0, r1, #2 ldr r1, _080A39B0 @ =_080A39B4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080A39AC: .4byte gUnk_02000080 _080A39B0: .4byte _080A39B4 _080A39B4: @ jump table .4byte _080A39C8 @ case 0 .4byte _080A3A38 @ case 1 .4byte _080A3AB8 @ case 2 .4byte _080A3AEE @ case 3 .4byte _080A3B14 @ case 4 _080A39C8: movs r5, #1 strb r5, [r2, #6] movs r4, #0 movs r0, #0x1e strh r0, [r2, #8] strb r4, [r2, #3] movs r0, #1 bl sub_0801DA90 bl sub_080A3210 bl sub_080A4D34 movs r0, #0xa bl sub_0801D714 movs r0, #0 movs r1, #0 bl sub_0801D79C movs r0, #4 bl sub_0801D7EC movs r0, #0xc0 lsls r0, r0, #0x13 movs r1, #0x20 bl sub_0801D630 movs r0, #0 movs r1, #0 bl sub_08052418 ldr r2, _080A3A2C @ =gUnk_03000F50 ldrh r0, [r2] movs r3, #0xc0 lsls r3, r3, #3 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r0, _080A3A30 @ =0x00001C01 strh r0, [r2, #0x14] ldr r0, _080A3A34 @ =0x00001D05 strh r0, [r2, #0x20] strh r5, [r2, #0x26] movs r0, #4 movs r1, #8 bl sub_08050054 b _080A3B36 .align 2, 0 _080A3A2C: .4byte gUnk_03000F50 _080A3A30: .4byte 0x00001C01 _080A3A34: .4byte 0x00001D05 _080A3A38: ldr r0, _080A3A50 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 beq _080A3A42 b _080A3B36 _080A3A42: ldrh r0, [r2, #8] cmp r0, #0 beq _080A3A54 subs r0, #1 strh r0, [r2, #8] b _080A3B36 .align 2, 0 _080A3A50: .4byte gUnk_03000FD0 _080A3A54: ldrb r4, [r2, #3] ldr r0, _080A3A68 @ =gUnk_03000FF0 ldrh r0, [r0, #2] cmp r0, #0x40 beq _080A3A72 cmp r0, #0x40 bgt _080A3A6C cmp r0, #1 beq _080A3A7A b _080A3A9A .align 2, 0 _080A3A68: .4byte gUnk_03000FF0 _080A3A6C: cmp r0, #0x80 beq _080A3A76 b _080A3A9A _080A3A72: movs r4, #0 b _080A3A9A _080A3A76: movs r4, #1 b _080A3A9A _080A3A7A: cmp r4, #0 beq _080A3A82 movs r0, #4 b _080A3A8C _080A3A82: movs r0, #8 movs r1, #0 bl sub_08050318 movs r0, #2 _080A3A8C: ldr r1, _080A3AB4 @ =gUnk_02000080 strb r0, [r1, #6] movs r0, #0x3c strh r0, [r1, #8] movs r0, #0x6a bl sub_080A3268 _080A3A9A: ldr r1, _080A3AB4 @ =gUnk_02000080 ldrb r0, [r1, #3] cmp r0, r4 beq _080A3B36 strb r4, [r1, #3] movs r0, #0 adds r1, r4, #0 bl sub_08052418 movs r0, #0x69 bl sub_080A3268 b _080A3B36 .align 2, 0 _080A3AB4: .4byte gUnk_02000080 _080A3AB8: movs r0, #0 bl sub_0807CDA4 adds r1, r0, #0 ldr r4, _080A3AD8 @ =gUnk_02000080 strb r1, [r4] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 beq _080A3ADC cmp r1, #1 bne _080A3B36 movs r0, #4 strb r0, [r4, #6] b _080A3B36 .align 2, 0 _080A3AD8: .4byte gUnk_02000080 _080A3ADC: movs r0, #0x3c strh r0, [r4, #8] movs r0, #9 movs r1, #0 bl sub_08050318 movs r0, #3 strb r0, [r4, #6] b _080A3B36 _080A3AEE: adds r1, r2, #0 ldrh r0, [r1, #8] cmp r0, #0 beq _080A3AFC subs r0, #1 strh r0, [r1, #8] b _080A3B36 _080A3AFC: ldr r0, _080A3B10 @ =gUnk_03000FF0 ldrh r1, [r0, #2] movs r0, #0xb ands r0, r1 cmp r0, #0 beq _080A3B36 movs r0, #1 strb r0, [r2, #6] b _080A3B36 .align 2, 0 _080A3B10: .4byte gUnk_03000FF0 _080A3B14: ldr r2, _080A3B38 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _080A3B3C @ =0x0000FDFF ands r0, r1 movs r4, #0 strh r0, [r2] bl sub_08050384 movs r0, #7 movs r1, #8 bl sub_08050054 ldr r1, _080A3B40 @ =gUnk_03001000 movs r0, #3 strb r0, [r1, #3] ldr r0, _080A3B44 @ =gUnk_02000080 strb r4, [r0, #6] _080A3B36: pop {r4, r5, pc} .align 2, 0 _080A3B38: .4byte gUnk_03000F50 _080A3B3C: .4byte 0x0000FDFF _080A3B40: .4byte gUnk_03001000 _080A3B44: .4byte gUnk_02000080 thumb_func_start sub_080A3B48 sub_080A3B48: @ 0x080A3B48 push {lr} movs r1, #0 ldr r0, _080A3B6C @ =gUnk_02002A40 ldr r3, _080A3B70 @ =0x0000012B adds r2, r0, r3 ldrb r0, [r2] cmp r0, #0 beq _080A3B66 _080A3B58: adds r1, #1 cmp r1, #0x12 bhi _080A3B66 adds r0, r1, r2 ldrb r0, [r0] cmp r0, #0 bne _080A3B58 _080A3B66: adds r0, r1, #0 pop {pc} .align 2, 0 _080A3B6C: .4byte gUnk_02002A40 _080A3B70: .4byte 0x0000012B thumb_func_start sub_080A3B74 sub_080A3B74: @ 0x080A3B74 ldr r0, _080A3B80 @ =gUnk_02000080 adds r0, #0x2f movs r1, #0 strb r1, [r0] bx lr .align 2, 0 _080A3B80: .4byte gUnk_02000080 thumb_func_start sub_080A3B84 sub_080A3B84: @ 0x080A3B84 push {r4, r5, lr} ldr r4, _080A3BC4 @ =gUnk_030010A0 adds r4, #0x2c movs r5, #0 movs r0, #2 strb r0, [r4] bl sub_080AD90C ldr r1, _080A3BC8 @ =gUnk_081280C4 ldr r0, _080A3BCC @ =gUnk_02000080 ldrb r0, [r0, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 bl sub_080A3B74 bl sub_080A4054 bl sub_0801C1D4 bl sub_0801C208 bl sub_0805E5C0 bl sub_080AD9B0 bl sub_080AD918 strb r5, [r4] pop {r4, r5, pc} .align 2, 0 _080A3BC4: .4byte gUnk_030010A0 _080A3BC8: .4byte gUnk_081280C4 _080A3BCC: .4byte gUnk_02000080 thumb_func_start sub_080A3BD0 sub_080A3BD0: @ 0x080A3BD0 push {r4, lr} ldr r0, _080A3C54 @ =gUnk_02000080 movs r1, #0 movs r4, #1 strb r4, [r0, #1] adds r0, #0x2a strb r1, [r0] bl sub_080A4D34 movs r0, #0xcb bl sub_0801D714 movs r0, #0x75 bl sub_0801D7EC bl sub_080A4494 adds r1, r0, #7 cmp r1, #0 bge _080A3BFA adds r1, #7 _080A3BFA: asrs r0, r1, #3 subs r0, #6 cmp r0, #0 bge _080A3C04 movs r0, #0 _080A3C04: cmp r0, #6 ble _080A3C0A movs r0, #6 _080A3C0A: adds r0, #0x76 bl sub_0801D7EC ldr r1, _080A3C58 @ =gUnk_03000F50 ldrh r2, [r1] movs r3, #0xf0 lsls r3, r3, #5 adds r0, r3, #0 orrs r0, r2 strh r0, [r1] ldr r0, _080A3C5C @ =0x00001C01 strh r0, [r1, #0x14] ldr r0, _080A3C60 @ =0x00001D02 strh r0, [r1, #0x20] ldr r0, _080A3C64 @ =0x00001E0B strh r0, [r1, #0x2c] strh r4, [r1, #0x1a] strh r4, [r1, #0x26] strh r4, [r1, #0x32] bl sub_080A4528 bl sub_080A4398 movs r0, #0 bl sub_0801E738 ldr r0, _080A3C68 @ =gUnk_081280DC bl sub_080A70AC movs r0, #1 bl sub_080A7114 movs r0, #6 movs r1, #8 bl sub_08050054 pop {r4, pc} .align 2, 0 _080A3C54: .4byte gUnk_02000080 _080A3C58: .4byte gUnk_03000F50 _080A3C5C: .4byte 0x00001C01 _080A3C60: .4byte 0x00001D02 _080A3C64: .4byte 0x00001E0B _080A3C68: .4byte gUnk_081280DC thumb_func_start sub_080A3C6C sub_080A3C6C: @ 0x080A3C6C push {r4, r5, lr} ldr r0, _080A3C9C @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 beq _080A3C78 b _080A3DA8 _080A3C78: ldr r5, _080A3CA0 @ =gUnk_02000080 movs r0, #2 strb r0, [r5, #1] adds r0, r5, #0 adds r0, #0x28 ldrb r0, [r0] lsls r2, r0, #0x10 ldr r0, [r5, #0x10] subs r4, r2, r0 adds r1, r4, #0 cmp r4, #0 bge _080A3C92 rsbs r1, r4, #0 _080A3C92: ldr r0, _080A3CA4 @ =0x00001FFD cmp r1, r0 bhi _080A3CA8 str r2, [r5, #0x10] b _080A3CDE .align 2, 0 _080A3C9C: .4byte gUnk_03000FD0 _080A3CA0: .4byte gUnk_02000080 _080A3CA4: .4byte 0x00001FFD _080A3CA8: movs r0, #1 strb r0, [r5, #1] adds r0, r4, #0 bl sub_08000E44 adds r2, r0, #0 adds r0, r4, #0 cmp r0, #0 bge _080A3CBE ldr r1, _080A3D18 @ =0x0001FFFF adds r0, r0, r1 _080A3CBE: asrs r4, r0, #0x11 cmp r4, #0 bge _080A3CC6 rsbs r4, r4, #0 _080A3CC6: cmp r4, #5 ble _080A3CCC movs r4, #5 _080A3CCC: ldr r0, _080A3D1C @ =gUnk_081280EE adds r0, r4, r0 ldrb r1, [r0] ldr r0, _080A3D20 @ =0x00000666 muls r0, r2, r0 muls r1, r0, r1 ldr r0, [r5, #0x10] adds r0, r0, r1 str r0, [r5, #0x10] _080A3CDE: adds r3, r5, #0 adds r3, #0x29 ldrb r2, [r3] ldr r0, [r5, #0x10] adds r1, r0, #0 cmp r0, #0 bge _080A3CF0 ldr r4, _080A3D24 @ =0x0000FFFF adds r1, r0, r4 _080A3CF0: asrs r1, r1, #0x10 cmp r2, r1 beq _080A3CFE strb r1, [r3] movs r0, #0x69 bl sub_080A3268 _080A3CFE: ldr r2, _080A3D28 @ =gUnk_03000FF0 ldrh r1, [r2, #2] ldr r0, _080A3D2C @ =0x0000020A ands r0, r1 cmp r0, #0 beq _080A3D30 movs r0, #2 bl sub_080A7114 movs r0, #0x6c bl sub_080A3268 b _080A3DA8 .align 2, 0 _080A3D18: .4byte 0x0001FFFF _080A3D1C: .4byte gUnk_081280EE _080A3D20: .4byte 0x00000666 _080A3D24: .4byte 0x0000FFFF _080A3D28: .4byte gUnk_03000FF0 _080A3D2C: .4byte 0x0000020A _080A3D30: adds r0, r5, #0 adds r0, #0x28 ldrb r4, [r0] ldrh r1, [r2, #4] adds r5, r0, #0 cmp r1, #0x20 beq _080A3D56 cmp r1, #0x20 bgt _080A3D4C cmp r1, #1 beq _080A3D5E cmp r1, #0x10 beq _080A3D5A b _080A3D8A _080A3D4C: cmp r1, #0x40 beq _080A3D56 cmp r1, #0x80 beq _080A3D5A b _080A3D8A _080A3D56: subs r4, #1 b _080A3D8A _080A3D5A: adds r4, #1 b _080A3D8A _080A3D5E: ldr r2, _080A3DAC @ =gUnk_02000080 ldrb r0, [r2, #1] cmp r0, #2 bne _080A3D8A ldr r0, [r2, #0x10] cmp r0, #0 bge _080A3D70 ldr r1, _080A3DB0 @ =0x0000FFFF adds r0, r0, r1 _080A3D70: asrs r4, r0, #0x10 ldr r0, _080A3DB4 @ =gUnk_02002A40 movs r1, #0x8c lsls r1, r1, #1 adds r0, r0, r1 adds r0, r4, r0 ldrb r1, [r0] adds r0, r2, #0 adds r0, #0x2a strb r1, [r0] movs r0, #3 bl sub_080A7114 _080A3D8A: bl sub_080A3B48 cmp r0, r4 bgt _080A3D94 subs r4, r0, #1 _080A3D94: cmp r0, #1 bgt _080A3D9A movs r4, #0 _080A3D9A: cmp r4, #0 bge _080A3DA0 movs r4, #0 _080A3DA0: ldrb r0, [r5] cmp r0, r4 beq _080A3DA8 strb r4, [r5] _080A3DA8: pop {r4, r5, pc} .align 2, 0 _080A3DAC: .4byte gUnk_02000080 _080A3DB0: .4byte 0x0000FFFF _080A3DB4: .4byte gUnk_02002A40 thumb_func_start sub_080A3DB8 sub_080A3DB8: @ 0x080A3DB8 push {lr} ldr r0, _080A3DDC @ =gUnk_02000080 ldrb r1, [r0, #1] cmp r1, #6 bne _080A3DEE ldr r0, _080A3DE0 @ =gUnk_02022740 strb r1, [r0] ldrb r0, [r0, #3] lsls r0, r0, #3 ldr r1, _080A3DE4 @ =gUnk_080C9CBC adds r1, r0, r1 ldrb r0, [r1, #3] cmp r0, #0 beq _080A3DE8 ldrb r1, [r1, #4] bl sub_080A7138 b _080A3DF8 .align 2, 0 _080A3DDC: .4byte gUnk_02000080 _080A3DE0: .4byte gUnk_02022740 _080A3DE4: .4byte gUnk_080C9CBC _080A3DE8: bl sub_080A71DC b _080A3DF8 _080A3DEE: ldr r1, _080A3DFC @ =gUnk_02022740 movs r0, #5 strb r0, [r1] bl sub_080A71DC _080A3DF8: pop {pc} .align 2, 0 _080A3DFC: .4byte gUnk_02022740 thumb_func_start sub_080A3E00 sub_080A3E00: @ 0x080A3E00 push {lr} ldr r1, _080A3E18 @ =gUnk_02000080 movs r0, #3 strb r0, [r1, #1] ldr r2, _080A3E1C @ =gUnk_081280F4 ldrb r0, [r1, #6] lsls r0, r0, #2 adds r0, r0, r2 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _080A3E18: .4byte gUnk_02000080 _080A3E1C: .4byte gUnk_081280F4 thumb_func_start sub_080A3E20 sub_080A3E20: @ 0x080A3E20 push {lr} ldr r2, _080A3E44 @ =gUnk_02000080 movs r0, #0 strh r0, [r2, #0x18] adds r1, r2, #0 adds r1, #0x2c ldrb r0, [r1] adds r0, #2 strb r0, [r1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x45 ble _080A3E42 movs r0, #0x46 strb r0, [r1] movs r0, #1 strb r0, [r2, #6] _080A3E42: pop {pc} .align 2, 0 _080A3E44: .4byte gUnk_02000080 thumb_func_start sub_080A3E48 sub_080A3E48: @ 0x080A3E48 push {r4, lr} ldr r2, _080A3E78 @ =gUnk_080C9CBC ldr r3, _080A3E7C @ =gUnk_02000080 adds r0, r3, #0 adds r0, #0x2a ldrb r0, [r0] lsls r0, r0, #3 adds r0, r0, r2 ldrb r1, [r0, #5] ldr r0, _080A3E80 @ =gUnk_02022740 ldrb r0, [r0, #3] lsls r0, r0, #3 adds r0, r0, r2 ldrb r0, [r0, #5] cmp r1, r0 beq _080A3E84 movs r0, #0x8c lsls r0, r0, #1 bl sub_080A3268 movs r0, #4 bl sub_080A7114 b _080A3EC8 .align 2, 0 _080A3E78: .4byte gUnk_080C9CBC _080A3E7C: .4byte gUnk_02000080 _080A3E80: .4byte gUnk_02022740 _080A3E84: movs r2, #0 movs r0, #2 strb r0, [r3, #6] movs r0, #0x14 strh r0, [r3, #8] ldr r3, _080A3ECC @ =gUnk_03000F50 ldrh r0, [r3] movs r4, #0x80 lsls r4, r4, #6 adds r1, r4, #0 orrs r0, r1 strh r0, [r3] adds r1, r3, #0 adds r1, #0x58 ldr r0, _080A3ED0 @ =0x00006887 strh r0, [r1] adds r1, #4 ldr r0, _080A3ED4 @ =0x0000405F strh r0, [r1] adds r1, #4 movs r0, #0x3f strh r0, [r1] adds r1, #2 movs r0, #0x1f strh r0, [r1] adds r1, #4 ldr r0, _080A3ED8 @ =0x00003F90 strh r0, [r1] adds r0, r3, #0 adds r0, #0x6a strh r2, [r0] movs r0, #0xfa bl sub_080A3268 _080A3EC8: pop {r4, pc} .align 2, 0 _080A3ECC: .4byte gUnk_03000F50 _080A3ED0: .4byte 0x00006887 _080A3ED4: .4byte 0x0000405F _080A3ED8: .4byte 0x00003F90 thumb_func_start sub_080A3EDC sub_080A3EDC: @ 0x080A3EDC push {lr} ldr r2, _080A3F08 @ =gUnk_03000F50 adds r1, r2, #0 adds r1, #0x6a ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xe bls _080A3F04 movs r0, #0 strh r0, [r1] ldrh r1, [r2] ldr r0, _080A3F0C @ =0x0000DFFF ands r0, r1 strh r0, [r2] movs r0, #5 bl sub_080A7114 _080A3F04: pop {pc} .align 2, 0 _080A3F08: .4byte gUnk_03000F50 _080A3F0C: .4byte 0x0000DFFF thumb_func_start sub_080A3F10 sub_080A3F10: @ 0x080A3F10 push {r4, lr} ldr r2, _080A3F48 @ =gUnk_02000080 movs r0, #4 strb r0, [r2, #1] adds r3, r2, #0 adds r3, #0x2c ldrb r1, [r3] subs r1, #3 strb r1, [r3] movs r4, #0x80 lsls r4, r4, #1 adds r0, r4, #0 ldrh r4, [r2, #0x18] adds r0, r0, r4 strh r0, [r2, #0x18] lsls r1, r1, #0x18 cmp r1, #0 bge _080A3F46 movs r0, #0 strh r0, [r2, #0x18] strb r0, [r3] movs r0, #1 bl sub_080A7114 movs r0, #0x6d bl sub_080A3268 _080A3F46: pop {r4, pc} .align 2, 0 _080A3F48: .4byte gUnk_02000080 thumb_func_start sub_080A3F4C sub_080A3F4C: @ 0x080A3F4C push {lr} ldr r1, _080A3F60 @ =gUnk_08128100 ldr r0, _080A3F64 @ =gUnk_02000080 ldrb r0, [r0, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _080A3F60: .4byte gUnk_08128100 _080A3F64: .4byte gUnk_02000080 thumb_func_start sub_080A3F68 sub_080A3F68: @ 0x080A3F68 push {r4, r5, lr} ldr r5, _080A3FB4 @ =gUnk_02000080 movs r0, #5 strb r0, [r5, #1] ldr r4, _080A3FB8 @ =gUnk_02002C81 ldr r0, _080A3FBC @ =gUnk_02022740 ldrb r1, [r0, #3] adds r0, r4, #0 bl sub_0801D5BC ldr r0, _080A3FC0 @ =0xFFFFFED6 adds r1, r4, r0 ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x63 bls _080A3F96 ldr r0, _080A3FC4 @ =0xFFFFFED5 adds r1, r4, r0 movs r0, #1 strb r0, [r1] _080A3F96: bl sub_080A4468 movs r0, #0xcd bl sub_080A3268 ldr r0, _080A3FC8 @ =0x00000702 movs r1, #0xe bl sub_080563C8 movs r0, #1 strb r0, [r5, #6] movs r0, #0x78 strh r0, [r5, #8] pop {r4, r5, pc} .align 2, 0 _080A3FB4: .4byte gUnk_02000080 _080A3FB8: .4byte gUnk_02002C81 _080A3FBC: .4byte gUnk_02022740 _080A3FC0: .4byte 0xFFFFFED6 _080A3FC4: .4byte 0xFFFFFED5 _080A3FC8: .4byte 0x00000702 thumb_func_start sub_080A3FCC sub_080A3FCC: @ 0x080A3FCC push {lr} ldr r0, _080A3FE8 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _080A3FE6 ldr r0, _080A3FEC @ =gUnk_02000080 movs r1, #2 strb r1, [r0, #6] ldr r0, _080A3FF0 @ =0x00000147 bl sub_080A3268 _080A3FE6: pop {pc} .align 2, 0 _080A3FE8: .4byte gUnk_02000050 _080A3FEC: .4byte gUnk_02000080 _080A3FF0: .4byte 0x00000147 thumb_func_start sub_080A3FF4 sub_080A3FF4: @ 0x080A3FF4 push {lr} ldr r2, _080A4014 @ =gUnk_02000080 ldrh r0, [r2, #8] subs r0, #1 strh r0, [r2, #8] lsls r0, r0, #0x10 cmp r0, #0 beq _080A4018 ldrh r0, [r2, #0x1a] ldrh r3, [r2, #0x18] adds r1, r0, r3 strh r1, [r2, #0x18] adds r0, #0x20 strh r0, [r2, #0x1a] b _080A4036 .align 2, 0 _080A4014: .4byte gUnk_02000080 _080A4018: movs r0, #6 strb r0, [r2, #1] movs r0, #3 strb r0, [r2, #6] movs r0, #0x4f strh r0, [r2, #8] movs r0, #0xb3 movs r1, #1 movs r2, #0 bl sub_080A2960 movs r0, #0xe5 lsls r0, r0, #1 bl sub_080A3268 _080A4036: pop {pc} thumb_func_start sub_080A4038 sub_080A4038: @ 0x080A4038 push {lr} ldr r1, _080A4050 @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bge _080A404E movs r0, #2 bl sub_080A7114 _080A404E: pop {pc} .align 2, 0 _080A4050: .4byte gUnk_02000080 thumb_func_start sub_080A4054 sub_080A4054: @ 0x080A4054 push {lr} bl sub_080A422C bl sub_080A414C bl sub_080A4080 movs r2, #0 ldr r0, _080A407C @ =gUnk_02019EE0 adds r1, r0, #1 _080A4068: ldrb r0, [r1] cmp r0, #0 beq _080A4072 subs r0, #1 strb r0, [r1] _080A4072: adds r1, #4 adds r2, #1 cmp r2, #0xf bls _080A4068 pop {pc} .align 2, 0 _080A407C: .4byte gUnk_02019EE0 thumb_func_start sub_080A4080 sub_080A4080: @ 0x080A4080 push {r4, r5, r6, r7, lr} ldr r4, _080A4134 @ =gUnk_03001010 movs r0, #0 strh r0, [r4, #4] strh r0, [r4, #6] ldr r5, _080A4138 @ =gUnk_02000080 adds r0, r5, #0 adds r0, #0x2f movs r1, #0 ldrsb r1, [r0, r1] movs r0, #0x10 subs r0, r0, r1 strh r0, [r4, #2] movs r0, #0x40 strh r0, [r4] movs r0, #0x80 lsls r0, r0, #3 strh r0, [r4, #8] ldr r0, _080A413C @ =0x000001FB movs r1, #0 bl sub_080ADA14 movs r0, #0x94 strh r0, [r4, #2] movs r0, #0x50 strh r0, [r4] movs r0, #0x90 lsls r0, r0, #3 strh r0, [r4, #8] movs r7, #0xfd lsls r7, r7, #1 adds r0, r7, #0 movs r1, #0 bl sub_080ADA14 movs r0, #0xb8 strh r0, [r4] movs r0, #0x94 lsls r0, r0, #3 strh r0, [r4, #8] adds r0, r7, #0 movs r1, #1 bl sub_080ADA14 ldr r0, _080A4140 @ =gUnk_03001000 ldrh r0, [r0, #0xc] lsrs r0, r0, #2 movs r1, #0xe ands r0, r1 ldr r1, _080A4144 @ =gUnk_08128110 adds r6, r0, r1 ldrb r1, [r6] movs r0, #0xa subs r0, r0, r1 strh r0, [r4] movs r0, #0x9c lsls r0, r0, #3 strh r0, [r4, #8] bl sub_080A3B48 subs r0, #1 cmp r0, #0 ble _080A4130 ldr r1, [r5, #0x10] cmp r1, #0 bge _080A4108 ldr r2, _080A4148 @ =0x0000FFFF adds r1, r1, r2 _080A4108: asrs r5, r1, #0x10 cmp r5, r0 beq _080A411C ldrb r0, [r6, #1] adds r0, #0x77 strh r0, [r4, #2] adds r0, r7, #0 movs r1, #3 bl sub_080ADA14 _080A411C: cmp r5, #0 beq _080A4130 ldrb r1, [r6, #1] movs r0, #0x27 subs r0, r0, r1 strh r0, [r4, #2] adds r0, r7, #0 movs r1, #2 bl sub_080ADA14 _080A4130: pop {r4, r5, r6, r7, pc} .align 2, 0 _080A4134: .4byte gUnk_03001010 _080A4138: .4byte gUnk_02000080 _080A413C: .4byte 0x000001FB _080A4140: .4byte gUnk_03001000 _080A4144: .4byte gUnk_08128110 _080A4148: .4byte 0x0000FFFF thumb_func_start sub_080A414C sub_080A414C: @ 0x080A414C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r4, _080A4210 @ =gUnk_03001010 movs r0, #0 strh r0, [r4, #4] strh r0, [r4, #6] ldr r0, _080A4214 @ =gUnk_02000080 ldrh r0, [r0, #0x10] ldr r1, _080A4218 @ =0x00000B21 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r5, #3 rsbs r5, r5, #0 movs r1, #0xff mov r8, r1 adds r7, r4, #0 ldr r6, _080A421C @ =gUnk_080C9160 rsbs r0, r0, #0 adds r4, r0, #0 subs r4, #0x45 ldr r2, _080A4220 @ =gUnk_02002B6B mov sb, r2 _080A4180: adds r2, r4, #0 mov r3, r8 ands r2, r3 lsls r0, r2, #1 adds r0, r0, r6 movs r3, #0 ldrsh r1, [r0, r3] lsls r0, r1, #4 adds r0, r0, r1 lsls r0, r0, #2 cmp r0, #0 bge _080A419A adds r0, #0xff _080A419A: asrs r0, r0, #8 adds r0, #0x4f strh r0, [r7, #2] adds r0, r2, #0 adds r0, #0x40 mov r1, r8 ands r0, r1 lsls r0, r0, #1 adds r0, r0, r6 movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #5 adds r0, r0, r1 lsls r0, r0, #1 cmp r0, #0 bge _080A41BC adds r0, #0xff _080A41BC: asrs r0, r0, #8 subs r0, #0x10 strh r0, [r7] ldr r2, _080A4214 @ =gUnk_02000080 ldr r0, [r2, #0x10] cmp r0, #0 bge _080A41CE ldr r3, _080A4224 @ =0x0000FFFF adds r0, r0, r3 _080A41CE: asrs r0, r0, #0x10 adds r3, r0, r5 cmp r3, #0 blt _080A4200 mov r1, sb adds r0, r3, r1 ldrb r1, [r0] ldr r0, _080A4228 @ =gUnk_02002A40 cmp r5, #0 bne _080A41EE ldrb r2, [r2, #1] cmp r2, #4 bgt _080A41EE cmp r2, #3 blt _080A41EE subs r1, #1 _080A41EE: cmp r1, #0 ble _080A4200 movs r2, #0x8c lsls r2, r2, #1 adds r0, r0, r2 adds r0, r3, r0 ldrb r0, [r0] bl sub_080A42E0 _080A4200: adds r4, #0x17 adds r5, #1 cmp r5, #3 ble _080A4180 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _080A4210: .4byte gUnk_03001010 _080A4214: .4byte gUnk_02000080 _080A4218: .4byte 0x00000B21 _080A421C: .4byte gUnk_080C9160 _080A4220: .4byte gUnk_02002B6B _080A4224: .4byte 0x0000FFFF _080A4228: .4byte gUnk_02002A40 thumb_func_start sub_080A422C sub_080A422C: @ 0x080A422C push {r4, r5, lr} ldr r5, _080A42A4 @ =gUnk_02000080 ldrh r0, [r5, #0x18] lsrs r0, r0, #8 movs r1, #0x1b bl __modsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _080A42A8 @ =gUnk_08128120 adds r0, r0, r1 movs r1, #0 ldrsb r1, [r0, r1] lsls r1, r1, #4 movs r4, #0x80 lsls r4, r4, #1 movs r0, #0 adds r2, r4, #0 movs r3, #0 bl sub_0805ECEC ldr r1, _080A42AC @ =gUnk_03001010 movs r0, #0 strh r4, [r1, #4] strh r0, [r1, #6] movs r0, #0x4f strh r0, [r1, #2] adds r0, r5, #0 adds r0, #0x2a ldrb r2, [r0] adds r4, #0x80 ldrb r0, [r5, #1] cmp r0, #5 beq _080A42B6 cmp r0, #5 bgt _080A42B0 cmp r0, #3 blt _080A42C4 adds r4, r5, #0 adds r4, #0x2c movs r0, #0 ldrsb r0, [r4, r0] adds r0, #0x32 strh r0, [r1] adds r0, r2, #0 movs r1, #0 bl sub_080A42E0 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #1 movs r1, #0x46 bl __divsi3 movs r1, #0x8a subs r4, r1, r0 b _080A42C6 .align 2, 0 _080A42A4: .4byte gUnk_02000080 _080A42A8: .4byte gUnk_08128120 _080A42AC: .4byte gUnk_03001010 _080A42B0: cmp r0, #6 beq _080A42C6 b _080A42C4 _080A42B6: movs r0, #0x78 strh r0, [r1] adds r0, r2, #0 movs r1, #0xff bl sub_080A42E0 b _080A42C6 _080A42C4: movs r4, #0x8a _080A42C6: ldr r0, _080A42D8 @ =gUnk_03001010 strh r4, [r0] ldr r0, _080A42DC @ =gUnk_02022740 ldrb r0, [r0, #3] movs r1, #0 bl sub_080A42E0 pop {r4, r5, pc} .align 2, 0 _080A42D8: .4byte gUnk_03001010 _080A42DC: .4byte gUnk_02022740 thumb_func_start sub_080A42E0 sub_080A42E0: @ 0x080A42E0 push {r4, r5, r6, r7, lr} adds r4, r1, #0 lsls r0, r0, #3 ldr r1, _080A42F4 @ =gUnk_080C9CBC adds r7, r0, r1 cmp r4, #0xff bne _080A42F8 ldrb r0, [r7, #2] b _080A42FA .align 2, 0 _080A42F4: .4byte gUnk_080C9CBC _080A42F8: ldrb r0, [r7, #1] _080A42FA: bl sub_080A43A8 adds r6, r0, #0 cmp r4, #0 beq _080A4372 cmp r4, #0xff beq _080A4372 lsls r1, r6, #2 ldr r0, _080A4348 @ =gUnk_02019EE0 adds r1, r1, r0 lsls r5, r6, #1 ldrb r0, [r1, #2] cmp r4, r0 beq _080A4324 strb r4, [r1, #2] movs r1, #0xb8 lsls r1, r1, #2 adds r0, r5, r1 adds r1, r4, #0 bl sub_0801C2F0 _080A4324: ldr r1, _080A434C @ =gUnk_03001010 ldr r2, _080A4350 @ =0x00003AE0 adds r0, r5, r2 strh r0, [r1, #8] movs r0, #0 ldrsh r4, [r1, r0] movs r2, #2 ldrsh r5, [r1, r2] ldr r0, _080A4354 @ =gUnk_02000080 ldrb r0, [r0, #1] cmp r0, #0 bne _080A4358 ldrh r0, [r1] adds r0, #0x10 strh r0, [r1] ldrh r0, [r1, #2] adds r0, #9 b _080A4362 .align 2, 0 _080A4348: .4byte gUnk_02019EE0 _080A434C: .4byte gUnk_03001010 _080A4350: .4byte 0x00003AE0 _080A4354: .4byte gUnk_02000080 _080A4358: ldrh r0, [r1] adds r0, #8 strh r0, [r1] ldrh r0, [r1, #2] adds r0, #0xa _080A4362: strh r0, [r1, #2] movs r0, #0 movs r1, #5 bl sub_080ADA14 ldr r0, _080A4394 @ =gUnk_03001010 strh r4, [r0] strh r5, [r0, #2] _080A4372: ldrb r1, [r7] lsls r1, r1, #0xc movs r0, #0x80 lsls r0, r0, #4 orrs r1, r0 lsls r0, r6, #4 movs r2, #0xc0 lsls r2, r2, #2 adds r0, r0, r2 orrs r1, r0 ldr r0, _080A4394 @ =gUnk_03001010 strh r1, [r0, #8] movs r0, #0 movs r1, #3 bl sub_080ADA14 pop {r4, r5, r6, r7, pc} .align 2, 0 _080A4394: .4byte gUnk_03001010 thumb_func_start sub_080A4398 sub_080A4398: @ 0x080A4398 push {lr} ldr r0, _080A43A4 @ =gUnk_02019EE0 movs r1, #0x40 bl sub_0801D630 pop {pc} .align 2, 0 _080A43A4: .4byte gUnk_02019EE0 thumb_func_start sub_080A43A8 sub_080A43A8: @ 0x080A43A8 push {r4, r5, lr} adds r5, r0, #0 bl sub_080A43DC adds r4, r0, #0 cmp r4, #0xf bls _080A43C8 movs r0, #0xf ands r4, r0 lsls r1, r4, #4 movs r0, #0xc0 lsls r0, r0, #2 adds r1, r1, r0 adds r0, r5, #0 bl sub_080A4418 _080A43C8: lsls r0, r4, #2 ldr r1, _080A43D8 @ =gUnk_02019EE0 adds r0, r0, r1 strb r5, [r0] movs r1, #2 strb r1, [r0, #1] adds r0, r4, #0 pop {r4, r5, pc} .align 2, 0 _080A43D8: .4byte gUnk_02019EE0 thumb_func_start sub_080A43DC sub_080A43DC: @ 0x080A43DC push {lr} movs r1, #0 ldr r2, _080A43EC @ =gUnk_02019EE0 _080A43E2: ldrb r3, [r2] cmp r0, r3 bne _080A43F0 adds r0, r1, #0 b _080A4416 .align 2, 0 _080A43EC: .4byte gUnk_02019EE0 _080A43F0: adds r2, #4 adds r1, #1 cmp r1, #0xf bls _080A43E2 movs r1, #0 ldr r2, _080A4408 @ =gUnk_02019EE0 _080A43FC: ldrb r0, [r2, #1] cmp r0, #0 bne _080A440C adds r0, r1, #0 adds r0, #0x10 b _080A4416 .align 2, 0 _080A4408: .4byte gUnk_02019EE0 _080A440C: adds r2, #4 adds r1, #1 cmp r1, #0xf bls _080A43FC movs r0, #0 _080A4416: pop {pc} thumb_func_start sub_080A4418 sub_080A4418: @ 0x080A4418 push {lr} lsls r1, r1, #5 ldr r2, _080A4444 @ =0x06010000 adds r3, r1, r2 ldr r1, _080A4448 @ =gUnk_080CA06C lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] movs r2, #0x80 lsls r2, r2, #0x18 ands r2, r1 mvns r0, r2 ands r0, r1 ldr r1, _080A444C @ =gUnk_085A2E80 adds r1, r0, r1 cmp r2, #0 beq _080A4450 adds r0, r1, #0 adds r1, r3, #0 bl LZ77UnCompVram b _080A445C .align 2, 0 _080A4444: .4byte 0x06010000 _080A4448: .4byte gUnk_080CA06C _080A444C: .4byte gUnk_085A2E80 _080A4450: ldr r0, _080A4460 @ =0x040000D4 str r1, [r0] str r3, [r0, #4] ldr r1, _080A4464 @ =0x84000080 str r1, [r0, #8] ldr r0, [r0, #8] _080A445C: pop {pc} .align 2, 0 _080A4460: .4byte 0x040000D4 _080A4464: .4byte 0x84000080 thumb_func_start sub_080A4468 sub_080A4468: @ 0x080A4468 push {lr} ldr r0, _080A4488 @ =gUnk_03003DF0 movs r1, #0 strb r1, [r0, #2] ldr r0, [r0, #4] strb r1, [r0, #3] ldr r0, _080A448C @ =gUnk_02022740 ldrb r0, [r0, #3] bl sub_0801E6C8 ldr r0, _080A4490 @ =gUnk_02000080 adds r0, #0x2a ldrb r0, [r0] bl sub_0801E798 pop {pc} .align 2, 0 _080A4488: .4byte gUnk_03003DF0 _080A448C: .4byte gUnk_02022740 _080A4490: .4byte gUnk_02000080 thumb_func_start sub_080A4494 sub_080A4494: @ 0x080A4494 push {r4, r5, lr} bl sub_0805F2C8 adds r4, r0, #0 cmp r4, #0 beq _080A44D0 ldr r0, _080A44D4 @ =gUnk_02000D00 str r0, [r4, #8] movs r1, #0 strb r1, [r4, #2] movs r0, #5 strb r0, [r4, #3] strb r1, [r4, #1] ldr r1, _080A44D8 @ =gUnk_02002AC0 adds r0, r4, #0 movs r2, #0x80 bl sub_080A44E0 ldr r0, _080A44DC @ =gUnk_02022740 ldr r0, [r0, #0xc] bl sub_08002632 adds r0, r4, #0 movs r2, #0xa0 bl sub_080A44E0 adds r5, r0, #0 adds r0, r4, #0 bl sub_0805F300 _080A44D0: adds r0, r5, #0 pop {r4, r5, pc} .align 2, 0 _080A44D4: .4byte gUnk_02000D00 _080A44D8: .4byte gUnk_02002AC0 _080A44DC: .4byte gUnk_02022740 thumb_func_start sub_080A44E0 sub_080A44E0: @ 0x080A44E0 push {r4, r5, r6, lr} mov r6, r8 push {r6} adds r4, r0, #0 adds r6, r1, #0 adds r5, r2, #0 movs r0, #0 strh r0, [r4, #6] movs r0, #0x60 strh r0, [r4, #4] movs r0, #0xc0 lsls r0, r0, #2 mov r8, r0 ldr r0, [r4, #8] mov r1, r8 bl sub_0801D630 adds r0, r6, #0 adds r1, r4, #0 bl sub_0805F76C adds r6, r0, #0 ldr r0, [r4, #8] lsls r5, r5, #5 ldr r1, _080A4524 @ =0x06010000 adds r5, r5, r1 adds r1, r5, #0 mov r2, r8 bl sub_0801D66C adds r0, r6, #0 pop {r3} mov r8, r3 pop {r4, r5, r6, pc} .align 2, 0 _080A4524: .4byte 0x06010000 thumb_func_start sub_080A4528 sub_080A4528: @ 0x080A4528 push {r4, lr} ldr r0, _080A4540 @ =gUnk_02022740 ldr r2, [r0, #0xc] ldrb r0, [r2, #8] cmp r0, #7 bne _080A4544 ldrb r0, [r2, #9] ldrb r1, [r2, #0xa] ldrb r2, [r2, #0xb] bl sub_0806ED50 b _080A4550 .align 2, 0 _080A4540: .4byte gUnk_02022740 _080A4544: cmp r0, #3 bne _080A45A2 ldrb r0, [r2, #9] ldrb r1, [r2, #0xa] bl sub_0804AA60 _080A4550: adds r4, r0, #0 cmp r4, #0 beq _080A45A2 ldrb r0, [r4, #8] cmp r0, #7 bne _080A456A adds r0, r4, #0 bl sub_0806EC78 ldrb r0, [r4, #9] strb r0, [r4, #0xf] movs r0, #0x56 b _080A4576 _080A456A: adds r0, r4, #0 bl sub_0804A57C ldrb r0, [r4, #9] strb r0, [r4, #0xf] movs r0, #0x66 _080A4576: strb r0, [r4, #9] movs r2, #0 movs r0, #0xcc strh r0, [r4, #0x2e] movs r0, #0x60 strh r0, [r4, #0x32] adds r3, r4, #0 adds r3, #0x29 ldrb r1, [r3] subs r0, #0x99 ands r0, r1 movs r1, #0x10 orrs r0, r1 strb r0, [r3] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] str r2, [r4, #0x48] _080A45A2: pop {r4, pc} thumb_func_start sub_080A45A4 sub_080A45A4: @ 0x080A45A4 push {lr} bl sub_080AD90C ldr r0, _080A45C4 @ =gUnk_02032EC0 ldrb r0, [r0, #3] cmp r0, #0xff bne _080A45D0 ldr r1, _080A45C8 @ =gUnk_0812815C ldr r0, _080A45CC @ =gUnk_02000080 ldrb r0, [r0, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 b _080A45E0 .align 2, 0 _080A45C4: .4byte gUnk_02032EC0 _080A45C8: .4byte gUnk_0812815C _080A45CC: .4byte gUnk_02000080 _080A45D0: ldr r1, _080A4600 @ =gUnk_0812814C ldr r0, _080A4604 @ =gUnk_02000080 ldrb r0, [r0, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 _080A45E0: bl sub_0805E5C0 bl sub_0801C1D4 bl sub_0801C208 bl sub_080AD9B0 bl sub_080A4978 bl sub_080AD918 bl sub_080A4B44 pop {pc} .align 2, 0 _080A4600: .4byte gUnk_0812814C _080A4604: .4byte gUnk_02000080 thumb_func_start sub_080A4608 sub_080A4608: @ 0x080A4608 push {r4, lr} movs r0, #0x80 bl sub_080A3248 movs r0, #3 bl sub_080A4DA8 ldr r4, _080A46A0 @ =gUnk_020176A0 movs r1, #0xfb lsls r1, r1, #1 adds r0, r4, r1 ldrh r1, [r0] movs r0, #0 bl sub_0801D79C movs r0, #0xae lsls r0, r0, #1 movs r2, #0xd3 lsls r2, r2, #1 adds r1, r4, r2 ldrh r1, [r1] bl sub_0801D79C ldr r0, _080A46A4 @ =gUnk_02034CB0 movs r1, #0x80 lsls r1, r1, #4 bl sub_0801D630 ldr r0, _080A46A8 @ =gUnk_02001A40 movs r1, #0x80 lsls r1, r1, #5 bl sub_0801D630 ldr r2, _080A46AC @ =gUnk_03000F50 adds r1, r2, #0 adds r1, #0x58 movs r0, #0xf0 strh r0, [r1] adds r1, #4 ldr r0, _080A46B0 @ =0x00007898 strh r0, [r1] adds r1, #4 movs r0, #0x1f strh r0, [r1] adds r1, #2 movs r0, #0x1d strh r0, [r1] movs r0, #1 strh r0, [r2, #0x1a] movs r2, #0xee ldr r3, _080A46B4 @ =gUnk_02000080 movs r1, #0xf adds r0, r3, #0 adds r0, #0x1f _080A4674: strb r2, [r0] subs r0, #1 subs r1, #1 cmp r1, #0 bge _080A4674 ldr r0, _080A46B8 @ =gUnk_02032EC0 ldrb r1, [r0, #3] ldr r0, _080A46BC @ =gUnk_02002A40 ldrb r0, [r0, #6] movs r2, #0x88 cmp r0, #0 bne _080A468E movs r2, #0x82 _080A468E: cmp r2, r1 bge _080A4694 movs r1, #1 _080A4694: strb r1, [r3, #0x1c] movs r0, #4 movs r1, #8 bl sub_08050054 pop {r4, pc} .align 2, 0 _080A46A0: .4byte gUnk_020176A0 _080A46A4: .4byte gUnk_02034CB0 _080A46A8: .4byte gUnk_02001A40 _080A46AC: .4byte gUnk_03000F50 _080A46B0: .4byte 0x00007898 _080A46B4: .4byte gUnk_02000080 _080A46B8: .4byte gUnk_02032EC0 _080A46BC: .4byte gUnk_02002A40 thumb_func_start sub_080A46C0 sub_080A46C0: @ 0x080A46C0 push {lr} movs r0, #0x80 lsls r0, r0, #1 bl sub_080A3248 movs r0, #0x6c bl sub_080A3268 movs r0, #2 bl sub_0807CD8C bl sub_080A71DC pop {pc} thumb_func_start sub_080A46DC sub_080A46DC: @ 0x080A46DC push {lr} bl sub_080A4608 movs r0, #1 bl sub_080A7114 pop {pc} .align 2, 0 thumb_func_start sub_080A46EC sub_080A46EC: @ 0x080A46EC push {lr} ldr r0, _080A4714 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080A4710 ldr r1, _080A4718 @ =gUnk_080FC3E4 ldr r0, _080A471C @ =gUnk_02000080 ldrb r0, [r0, #0x1c] lsls r0, r0, #3 adds r0, r0, r1 ldrb r1, [r0, #7] movs r0, #0xa2 movs r2, #0 bl sub_080A2960 movs r0, #2 bl sub_080A7114 _080A4710: pop {pc} .align 2, 0 _080A4714: .4byte gUnk_03000FD0 _080A4718: .4byte gUnk_080FC3E4 _080A471C: .4byte gUnk_02000080 thumb_func_start sub_080A4720 sub_080A4720: @ 0x080A4720 push {r4, lr} ldr r4, _080A4744 @ =gUnk_02000080 ldrb r0, [r4] cmp r0, #0 beq _080A47C4 adds r1, r4, #0 adds r1, #0x20 ldrb r0, [r1] adds r0, #1 movs r3, #0 strb r0, [r1] ldrb r0, [r1] cmp r0, #0x40 beq _080A4748 cmp r0, #0x80 beq _080A4788 b _080A475A .align 2, 0 _080A4744: .4byte gUnk_02000080 _080A4748: ldr r0, _080A477C @ =gUnk_02002B0E ldrb r1, [r4, #0x1c] bl sub_0801D5BC adds r1, r4, #0 adds r1, #0x21 strb r0, [r1] movs r0, #1 strb r0, [r4, #1] _080A475A: ldr r0, _080A4780 @ =gUnk_02000080 adds r0, #0x20 ldrb r0, [r0] lsrs r1, r0, #2 cmp r1, #0x10 bls _080A476A movs r0, #0x20 subs r1, r0, r1 _080A476A: ldr r0, _080A4784 @ =gUnk_03000F50 adds r2, r0, #0 adds r2, #0x6a strh r1, [r2] adds r0, #0x66 movs r1, #0xbf strh r1, [r0] b _080A47C4 .align 2, 0 _080A477C: .4byte gUnk_02002B0E _080A4780: .4byte gUnk_02000080 _080A4784: .4byte gUnk_03000F50 _080A4788: ldr r2, _080A47C8 @ =gUnk_03000F50 adds r0, r2, #0 adds r0, #0x6a strh r3, [r0] subs r0, #4 strh r3, [r0] ldrh r1, [r2] movs r3, #0x80 lsls r3, r3, #6 adds r0, r3, #0 orrs r0, r1 strh r0, [r2] movs r0, #3 bl sub_080A7114 ldr r0, _080A47CC @ =gUnk_0812813C bl sub_080A70AC movs r0, #0x15 strb r0, [r4, #1] adds r0, r4, #0 adds r0, #0x21 ldrb r0, [r0] movs r1, #0x6d cmp r0, #0 bne _080A47BE adds r1, #0x9c _080A47BE: adds r0, r1, #0 bl sub_080A3268 _080A47C4: pop {r4, pc} .align 2, 0 _080A47C8: .4byte gUnk_03000F50 _080A47CC: .4byte gUnk_0812813C thumb_func_start sub_080A47D0 sub_080A47D0: @ 0x080A47D0 push {r4, lr} ldr r0, _080A47EC @ =gUnk_02000080 movs r4, #0x1f ldrsb r4, [r0, r4] ldr r0, _080A47F0 @ =gUnk_03000FF0 ldrh r0, [r0, #4] cmp r0, #8 beq _080A47FE cmp r0, #8 bgt _080A47F4 cmp r0, #2 beq _080A47FE b _080A480A .align 2, 0 _080A47EC: .4byte gUnk_02000080 _080A47F0: .4byte gUnk_03000FF0 _080A47F4: cmp r0, #0x10 beq _080A4804 cmp r0, #0x20 beq _080A4808 b _080A480A _080A47FE: bl sub_080A46C0 b _080A480A _080A4804: adds r4, #8 b _080A480A _080A4808: subs r4, #8 _080A480A: ldr r1, _080A4828 @ =gUnk_02000080 ldrb r0, [r1, #0x1e] cmp r4, #0 bge _080A4814 movs r4, #0 _080A4814: cmp r0, r4 bge _080A481A adds r4, r0, #0 _080A481A: strb r4, [r1, #0x1f] ldr r1, _080A482C @ =gUnk_03000F50 adds r0, r4, #0 subs r0, #0x70 strh r0, [r1, #0x18] pop {r4, pc} .align 2, 0 _080A4828: .4byte gUnk_02000080 _080A482C: .4byte gUnk_03000F50 thumb_func_start sub_080A4830 sub_080A4830: @ 0x080A4830 push {lr} bl sub_080A4608 ldr r2, _080A4858 @ =gUnk_03000F50 ldrh r1, [r2] movs r3, #0x80 lsls r3, r3, #6 adds r0, r3, #0 orrs r0, r1 strh r0, [r2] ldr r0, _080A485C @ =gUnk_0812813C bl sub_080A70AC ldr r1, _080A4860 @ =gUnk_02000080 movs r0, #0xff strb r0, [r1, #1] movs r0, #1 bl sub_080A7114 pop {pc} .align 2, 0 _080A4858: .4byte gUnk_03000F50 _080A485C: .4byte gUnk_0812813C _080A4860: .4byte gUnk_02000080 thumb_func_start sub_080A4864 sub_080A4864: @ 0x080A4864 push {r4, r5, r6, lr} ldr r0, _080A4894 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080A4926 ldr r0, _080A4898 @ =gUnk_02000080 movs r5, #0x1f ldrsb r5, [r0, r5] ldrb r4, [r0, #0x1c] ldr r0, _080A489C @ =gUnk_03000FF0 ldrh r1, [r0, #4] cmp r1, #0x20 beq _080A48DC cmp r1, #0x20 bgt _080A48A0 cmp r1, #2 beq _080A48C0 cmp r1, #2 ble _080A48DE cmp r1, #8 beq _080A48C0 cmp r1, #0x10 beq _080A48D8 b _080A48DE .align 2, 0 _080A4894: .4byte gUnk_03000FD0 _080A4898: .4byte gUnk_02000080 _080A489C: .4byte gUnk_03000FF0 _080A48A0: cmp r1, #0x80 beq _080A48D4 cmp r1, #0x80 bgt _080A48AE cmp r1, #0x40 beq _080A48D0 b _080A48DE _080A48AE: movs r0, #0x80 lsls r0, r0, #1 cmp r1, r0 beq _080A48CC movs r0, #0x80 lsls r0, r0, #2 cmp r1, r0 beq _080A48C8 b _080A48DE _080A48C0: movs r0, #3 bl sub_080A7114 b _080A48DE _080A48C8: subs r4, #5 b _080A48DE _080A48CC: adds r4, #5 b _080A48DE _080A48D0: subs r4, #1 b _080A48DE _080A48D4: adds r4, #1 b _080A48DE _080A48D8: adds r5, #8 b _080A48DE _080A48DC: subs r5, #8 _080A48DE: ldr r0, _080A4928 @ =gUnk_02002A40 ldrb r0, [r0, #6] movs r1, #0x88 cmp r0, #0 bne _080A48EA movs r1, #0x82 _080A48EA: cmp r4, #0 bgt _080A48F0 movs r4, #1 _080A48F0: cmp r1, r4 bge _080A48F6 adds r4, r1, #0 _080A48F6: ldr r6, _080A492C @ =gUnk_02000080 ldrb r0, [r6, #0x1c] cmp r0, r4 beq _080A490E strb r4, [r6, #0x1c] movs r0, #0x69 bl sub_080A3268 movs r0, #2 bl sub_080A7114 movs r5, #0 _080A490E: ldrb r0, [r6, #0x1e] cmp r5, #0 bge _080A4916 movs r5, #0 _080A4916: cmp r0, r5 bge _080A491C adds r5, r0, #0 _080A491C: strb r5, [r6, #0x1f] ldr r1, _080A4930 @ =gUnk_03000F50 adds r0, r5, #0 subs r0, #0x70 strh r0, [r1, #0x18] _080A4926: pop {r4, r5, r6, pc} .align 2, 0 _080A4928: .4byte gUnk_02002A40 _080A492C: .4byte gUnk_02000080 _080A4930: .4byte gUnk_03000F50 thumb_func_start sub_080A4934 sub_080A4934: @ 0x080A4934 push {lr} movs r0, #1 bl sub_080A7114 pop {pc} .align 2, 0 thumb_func_start sub_080A4940 sub_080A4940: @ 0x080A4940 push {lr} bl sub_080A46C0 pop {pc} thumb_func_start sub_080A4948 sub_080A4948: @ 0x080A4948 push {r4, lr} adds r1, r0, #0 movs r4, #0 ldr r3, _080A4974 @ =gUnk_02002A40 ldrb r0, [r3, #6] movs r2, #0x88 cmp r0, #0 bne _080A495A movs r2, #0x82 _080A495A: cmp r1, #0 bgt _080A4962 cmp r2, r1 blt _080A4970 _080A4962: adds r0, r3, #0 adds r0, #0xce bl sub_0801D5A8 cmp r0, #0 beq _080A4970 movs r4, #1 _080A4970: adds r0, r4, #0 pop {r4, pc} .align 2, 0 _080A4974: .4byte gUnk_02002A40 thumb_func_start sub_080A4978 sub_080A4978: @ 0x080A4978 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r5, _080A4B1C @ =gUnk_03001010 movs r0, #0 strh r0, [r5, #4] strh r0, [r5, #6] movs r0, #0x80 lsls r0, r0, #4 strh r0, [r5, #8] movs r0, #0x9c strh r0, [r5] movs r0, #0x48 strh r0, [r5, #2] movs r7, #0xfe lsls r7, r7, #1 adds r0, r7, #0 movs r1, #0 bl sub_080ADA14 ldr r0, _080A4B20 @ =gUnk_02002A40 ldrb r0, [r0, #6] movs r2, #0x88 cmp r0, #0 bne _080A49AC movs r2, #0x82 _080A49AC: ldr r3, _080A4B24 @ =gUnk_02000080 ldrb r1, [r3, #1] movs r0, #2 ands r0, r1 cmp r0, #0 beq _080A4A10 ldrb r4, [r3, #0x1c] cmp r2, r4 blt _080A4A10 movs r6, #0xe8 strh r6, [r5] movs r0, #0xa0 lsls r0, r0, #7 adds r1, r2, #0 bl __divsi3 subs r1, r4, #1 muls r0, r1, r0 cmp r0, #0 bge _080A49D6 adds r0, #0xff _080A49D6: asrs r0, r0, #8 adds r0, #0x20 strh r0, [r5, #2] adds r0, r7, #0 movs r1, #1 bl sub_080ADA14 ldr r0, _080A4B28 @ =gUnk_03001000 ldrh r1, [r0, #0xc] movs r0, #0x10 ands r0, r1 movs r4, #2 cmp r0, #0 beq _080A49F4 movs r4, #4 _080A49F4: strh r6, [r5] movs r0, #0x1a strh r0, [r5, #2] adds r0, r7, #0 adds r1, r4, #0 bl sub_080ADA14 strh r6, [r5] movs r0, #0x76 strh r0, [r5, #2] adds r1, r4, #1 adds r0, r7, #0 bl sub_080ADA14 _080A4A10: ldr r0, _080A4B28 @ =gUnk_03001000 ldrh r1, [r0, #0xc] movs r2, #0x10 adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _080A4A6A ldr r5, _080A4B24 @ =gUnk_02000080 ldrb r1, [r5, #1] adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _080A4A6A ldrb r0, [r5, #0x1e] cmp r0, #0 beq _080A4A6A ldr r4, _080A4B1C @ =gUnk_03001010 strh r2, [r4, #2] movs r0, #0x1f ldrsb r0, [r5, r0] cmp r0, #0 ble _080A4A4E movs r0, #6 strh r0, [r4] movs r0, #0x9c strh r0, [r4, #2] movs r0, #0xfe lsls r0, r0, #1 movs r1, #6 bl sub_080ADA14 _080A4A4E: ldrb r1, [r5, #0x1e] movs r0, #0x1f ldrsb r0, [r5, r0] cmp r1, r0 ble _080A4A6A movs r0, #0xea strh r0, [r4] movs r0, #0x9c strh r0, [r4, #2] movs r0, #0xfe lsls r0, r0, #1 movs r1, #7 bl sub_080ADA14 _080A4A6A: movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] cmp r0, #0 beq _080A4ABE ldr r2, _080A4B24 @ =gUnk_02000080 ldrb r1, [r2, #1] movs r0, #4 ands r0, r1 cmp r0, #0 beq _080A4ABE ldr r1, _080A4B1C @ =gUnk_03001010 movs r0, #0x10 strh r0, [r1, #2] ldrb r4, [r2, #0x1c] movs r6, #2 adds r7, r1, #0 movs r5, #0x6b _080A4A8E: strh r5, [r7] adds r0, r4, #0 movs r1, #0xa bl __modsi3 lsls r0, r0, #1 movs r2, #0x9e lsls r2, r2, #4 adds r1, r2, #0 orrs r0, r1 strh r0, [r7, #8] movs r0, #0 movs r1, #9 bl sub_080ADA14 adds r0, r4, #0 movs r1, #0xa bl __divsi3 adds r4, r0, #0 subs r5, #7 subs r6, #1 cmp r6, #0 bge _080A4A8E _080A4ABE: ldr r4, _080A4B24 @ =gUnk_02000080 ldrb r1, [r4, #1] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080A4B3A ldrb r0, [r4, #0x1c] bl sub_080A4948 cmp r0, #0 beq _080A4B3A ldr r1, _080A4B1C @ =gUnk_03001010 movs r0, #0x2c strh r0, [r1] movs r0, #0x48 strh r0, [r1, #2] movs r0, #0xd4 lsls r0, r0, #7 strh r0, [r1, #8] movs r0, #0xfc lsls r0, r0, #1 ldrb r1, [r4, #0x1c] subs r1, #1 bl sub_080ADA14 ldrb r1, [r4, #0x1c] ldrb r0, [r4, #0x1d] cmp r0, r1 beq _080A4B3A strb r1, [r4, #0x1d] ldrb r4, [r4, #0x1c] lsls r4, r4, #4 ldr r0, _080A4B2C @ =gUnk_081281A8 adds r4, r4, r0 ldr r0, [r4] movs r1, #0x16 movs r2, #9 bl sub_0801D754 ldr r0, [r4, #4] ldr r2, [r4, #8] cmp r2, #0 bge _080A4B34 ldr r1, _080A4B30 @ =0x06014000 bl LZ77UnCompVram b _080A4B3A .align 2, 0 _080A4B1C: .4byte gUnk_03001010 _080A4B20: .4byte gUnk_02002A40 _080A4B24: .4byte gUnk_02000080 _080A4B28: .4byte gUnk_03001000 _080A4B2C: .4byte gUnk_081281A8 _080A4B30: .4byte 0x06014000 _080A4B34: ldr r1, _080A4B40 @ =0x06014000 bl sub_08000E96 _080A4B3A: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _080A4B40: .4byte 0x06014000 thumb_func_start sub_080A4B44 sub_080A4B44: @ 0x080A4B44 push {r4, r5, lr} ldr r5, _080A4B9C @ =gUnk_02000080 ldrb r4, [r5, #0x1c] ldrb r1, [r5, #1] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _080A4B5C adds r0, r4, #0 bl sub_080A4CBC strb r0, [r5, #0x1e] _080A4B5C: ldrb r1, [r5, #1] movs r0, #4 ands r0, r1 cmp r0, #0 beq _080A4B6E adds r0, r4, #0 movs r1, #2 bl sub_080A4BA0 _080A4B6E: ldrb r1, [r5, #1] movs r0, #8 ands r0, r1 cmp r0, #0 beq _080A4B98 subs r0, r4, #2 movs r1, #0 bl sub_080A4BA0 subs r0, r4, #1 movs r1, #1 bl sub_080A4BA0 adds r0, r4, #1 movs r1, #3 bl sub_080A4BA0 adds r0, r4, #2 movs r1, #4 bl sub_080A4BA0 _080A4B98: pop {r4, r5, pc} .align 2, 0 _080A4B9C: .4byte gUnk_02000080 thumb_func_start sub_080A4BA0 sub_080A4BA0: @ 0x080A4BA0 push {r4, r5, r6, lr} sub sp, #0x54 adds r5, r0, #0 adds r6, r1, #0 add r0, sp, #0x18 movs r1, #0x30 bl sub_0801D630 ldr r0, _080A4C08 @ =gUnk_0812816C mov r1, sp movs r2, #0x18 bl sub_0801D66C ldr r0, _080A4C0C @ =gUnk_08128184 add r4, sp, #0x48 adds r1, r4, #0 movs r2, #0xc bl sub_0801D66C lsls r1, r6, #1 adds r1, r1, r6 lsls r2, r1, #9 ldr r0, [sp, #4] adds r0, r0, r2 str r0, [sp, #4] mov r2, sp mov r0, sp lsls r1, r1, #4 ldrh r0, [r0, #0x10] adds r1, r1, r0 strh r1, [r2, #0x10] lsls r1, r6, #7 ldr r0, [sp] adds r0, r0, r1 str r0, [sp] cmp r6, #2 bne _080A4BEE mov r0, sp strb r6, [r0, #0x14] _080A4BEE: ldr r0, _080A4C10 @ =gUnk_02002A40 ldrb r0, [r0, #6] movs r1, #0x88 cmp r0, #0 bne _080A4BFA movs r1, #0x82 _080A4BFA: cmp r5, #0 ble _080A4C02 cmp r1, r5 bge _080A4C14 _080A4C02: movs r5, #1 rsbs r5, r5, #0 b _080A4C3E .align 2, 0 _080A4C08: .4byte gUnk_0812816C _080A4C0C: .4byte gUnk_08128184 _080A4C10: .4byte gUnk_02002A40 _080A4C14: ldr r1, _080A4C30 @ =gUnk_020227E8 ldr r2, _080A4C34 @ =0x00303030 adds r0, r5, #0 bl sub_08057044 adds r0, r5, #0 bl sub_080A4948 cmp r0, #0 bne _080A4C38 movs r0, #0x80 lsls r0, r0, #8 b _080A4C3C .align 2, 0 _080A4C30: .4byte gUnk_020227E8 _080A4C34: .4byte 0x00303030 _080A4C38: movs r0, #0x80 lsls r0, r0, #4 _080A4C3C: adds r5, r5, r0 _080A4C3E: ldr r0, _080A4C94 @ =gUnk_02000080 lsls r1, r6, #1 adds r0, #0x10 adds r1, r1, r0 ldrh r0, [r1] cmp r0, r5 beq _080A4CB2 strh r5, [r1] ldr r0, _080A4C98 @ =0x0000F00B cmp r6, #2 bne _080A4C56 subs r0, #7 _080A4C56: ldr r1, [sp] movs r2, #0x80 bl sub_0801D5EC cmp r5, #0 ble _080A4CAC ldr r0, _080A4C9C @ =0x00007FFF cmp r5, r0 ble _080A4C6A ldr r5, _080A4CA0 @ =0x00000889 _080A4C6A: adds r0, r5, #0 cmp r5, #0 bge _080A4C72 adds r0, #0xff _080A4C72: asrs r0, r0, #8 strb r0, [r4, #8] strb r5, [r4, #9] ldr r0, [sp] adds r0, #0x16 str r0, [sp] movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] cmp r0, #0 bne _080A4CA4 adds r0, r4, #0 mov r1, sp bl sub_0805F46C b _080A4CAC .align 2, 0 _080A4C94: .4byte gUnk_02000080 _080A4C98: .4byte 0x0000F00B _080A4C9C: .4byte 0x00007FFF _080A4CA0: .4byte 0x00000889 _080A4CA4: adds r0, r5, #0 mov r1, sp bl sub_0805F46C _080A4CAC: ldr r1, _080A4CB8 @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0x32] _080A4CB2: add sp, #0x54 pop {r4, r5, r6, pc} .align 2, 0 _080A4CB8: .4byte gUnk_03000F50 thumb_func_start sub_080A4CBC sub_080A4CBC: @ 0x080A4CBC push {r4, r5, r6, lr} adds r6, r0, #0 ldr r1, _080A4D0C @ =gUnk_02000080 ldrb r0, [r1, #0x1a] cmp r0, r6 beq _080A4CFE strb r6, [r1, #0x1a] ldr r4, _080A4D10 @ =gUnk_02021F30 movs r5, #0x80 lsls r5, r5, #4 adds r0, r4, #0 adds r1, r5, #0 bl sub_0801D630 ldr r1, _080A4D14 @ =0x0600E000 adds r0, r4, #0 adds r2, r5, #0 bl sub_0801D66C adds r0, r6, #0 bl sub_080A4948 cmp r0, #0 beq _080A4CF8 movs r1, #0x90 lsls r1, r1, #4 adds r0, r6, r1 ldr r1, _080A4D18 @ =gUnk_08128190 bl sub_0805F46C _080A4CF8: ldr r1, _080A4D1C @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0x1a] _080A4CFE: ldr r0, _080A4D18 @ =gUnk_08128190 ldr r0, [r0] movs r2, #0x80 lsls r2, r2, #1 adds r1, r0, r2 movs r2, #0 b _080A4D28 .align 2, 0 _080A4D0C: .4byte gUnk_02000080 _080A4D10: .4byte gUnk_02021F30 _080A4D14: .4byte 0x0600E000 _080A4D18: .4byte gUnk_08128190 _080A4D1C: .4byte gUnk_03000F50 _080A4D20: adds r1, #0x40 adds r2, #1 cmp r2, #0x13 bhi _080A4D2E _080A4D28: ldrh r0, [r1] cmp r0, #0 bne _080A4D20 _080A4D2E: lsls r0, r2, #3 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080A4D34 sub_080A4D34: @ 0x080A4D34 push {lr} bl sub_08053320 movs r0, #0xb5 bl sub_0801D714 ldr r1, _080A4D50 @ =gUnk_02002A40 adds r2, r1, #0 adds r2, #0xaa ldrb r0, [r2] cmp r0, #8 bhi _080A4D54 movs r1, #2 b _080A4D66 .align 2, 0 _080A4D50: .4byte gUnk_02002A40 _080A4D54: adds r0, r1, #0 adds r0, #0xab ldrb r0, [r0] ldrb r1, [r2] subs r0, r0, r1 movs r1, #1 cmp r0, #8 bgt _080A4D66 movs r1, #0 _080A4D66: adds r0, r1, #0 adds r0, #0x56 bl sub_0801D7EC ldr r1, _080A4D80 @ =gUnk_03000F50 movs r0, #0 strh r0, [r1, #0x2e] strh r0, [r1, #0x30] ldr r0, _080A4D84 @ =0x00001E0B strh r0, [r1, #0x2c] movs r0, #1 strh r0, [r1, #0x32] pop {pc} .align 2, 0 _080A4D80: .4byte gUnk_03000F50 _080A4D84: .4byte 0x00001E0B thumb_func_start sub_080A4D88 sub_080A4D88: @ 0x080A4D88 push {lr} ldr r0, _080A4DA4 @ =gUnk_020344A0 movs r1, #8 bl sub_0801D630 movs r0, #1 movs r1, #0 bl sub_080A7138 movs r0, #0x80 bl sub_080A3248 pop {pc} .align 2, 0 _080A4DA4: .4byte gUnk_020344A0 thumb_func_start sub_080A4DA8 sub_080A4DA8: @ 0x080A4DA8 push {r4, lr} adds r4, r0, #0 bl sub_080A4D34 adds r0, r4, #0 bl sub_080A4DB8 pop {r4, pc} thumb_func_start sub_080A4DB8 sub_080A4DB8: @ 0x080A4DB8 push {r4, r5, lr} adds r5, r0, #0 bl sub_08056250 ldr r0, _080A4E58 @ =gUnk_02034CB0 movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 bl sub_0801D630 ldr r0, _080A4E5C @ =gUnk_02021F30 adds r1, r4, #0 bl sub_0801D630 ldr r0, _080A4E60 @ =gUnk_020344B0 adds r1, r4, #0 bl sub_0801D630 ldr r0, _080A4E64 @ =gUnk_0200AF34 movs r1, #0xc0 lsls r1, r1, #2 bl sub_0801D630 ldr r4, _080A4E68 @ =gUnk_02000080 adds r0, r4, #0 movs r1, #0x30 bl sub_0801D630 ldr r0, _080A4E6C @ =0x0000FFFF strh r0, [r4, #0x2e] ldr r0, _080A4E70 @ =gUnk_02034490 adds r0, #2 adds r0, r5, r0 ldrb r0, [r0] movs r3, #0 strb r0, [r4, #3] ldr r0, _080A4E74 @ =gUnk_08128A38 lsls r5, r5, #3 adds r5, r5, r0 ldrb r0, [r5] lsls r0, r0, #3 ldr r1, _080A4E78 @ =gUnk_08128AD8 adds r4, r0, r1 ldr r1, _080A4E7C @ =gUnk_03000F50 ldrh r2, [r4, #2] movs r5, #0xca lsls r5, r5, #5 adds r0, r5, #0 orrs r0, r2 strh r0, [r1] strh r3, [r1, #0xa] strh r3, [r1, #0xc] movs r2, #1 strh r2, [r1, #0xe] strh r3, [r1, #0x16] strh r3, [r1, #0x18] ldrh r0, [r4, #4] strh r0, [r1, #0x14] strh r2, [r1, #0x1a] strh r3, [r1, #0x22] strh r3, [r1, #0x24] ldrh r0, [r4, #6] strh r0, [r1, #0x20] strh r2, [r1, #0x26] strh r3, [r1, #0x2e] strh r3, [r1, #0x30] ldr r0, _080A4E80 @ =0x00001E0B strh r0, [r1, #0x2c] ldrb r0, [r4] cmp r0, #0 beq _080A4E4A bl sub_0801D714 _080A4E4A: ldrb r0, [r4, #1] cmp r0, #0 beq _080A4E54 bl sub_0801D7EC _080A4E54: pop {r4, r5, pc} .align 2, 0 _080A4E58: .4byte gUnk_02034CB0 _080A4E5C: .4byte gUnk_02021F30 _080A4E60: .4byte gUnk_020344B0 _080A4E64: .4byte gUnk_0200AF34 _080A4E68: .4byte gUnk_02000080 _080A4E6C: .4byte 0x0000FFFF _080A4E70: .4byte gUnk_02034490 _080A4E74: .4byte gUnk_08128A38 _080A4E78: .4byte gUnk_08128AD8 _080A4E7C: .4byte gUnk_03000F50 _080A4E80: .4byte 0x00001E0B thumb_func_start sub_080A4E84 sub_080A4E84: @ 0x080A4E84 ldr r1, _080A4E8C @ =gUnk_02034490 strb r0, [r1, #0x14] bx lr .align 2, 0 _080A4E8C: .4byte gUnk_02034490 thumb_func_start sub_080A4E90 sub_080A4E90: @ 0x080A4E90 ldr r1, _080A4E9C @ =gUnk_02034490 movs r2, #0 strb r0, [r1, #0x11] strb r2, [r1, #0x12] bx lr .align 2, 0 _080A4E9C: .4byte gUnk_02034490 thumb_func_start sub_080A4EA0 sub_080A4EA0: @ 0x080A4EA0 push {r4, lr} ldr r4, _080A4EB8 @ =gUnk_02034490 ldrb r0, [r4, #0x11] cmp r0, #6 bne _080A4EBC movs r0, #0x80 lsls r0, r0, #1 bl sub_080A3248 bl sub_080A71DC b _080A4F14 .align 2, 0 _080A4EB8: .4byte gUnk_02034490 _080A4EBC: bl sub_080AD90C ldr r1, _080A4F18 @ =gUnk_08128B30 ldrb r0, [r4, #0x11] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 bl sub_080A5128 bl sub_0801C1D4 bl sub_0801C208 ldrb r0, [r4, #0x11] cmp r0, #4 beq _080A4EF0 ldr r0, _080A4F1C @ =gUnk_08128A38 ldrb r1, [r4, #1] lsls r1, r1, #3 adds r0, #4 adds r1, r1, r0 ldr r0, [r1] bl _call_via_r0 _080A4EF0: bl sub_080AD918 movs r3, #0x16 ldrsb r3, [r4, r3] movs r1, #0 cmp r3, #0 beq _080A4F00 ldr r1, _080A4F20 @ =0x00000E46 _080A4F00: ldr r2, _080A4F24 @ =gUnk_03000F50 adds r0, r2, #0 adds r0, #0x66 strh r1, [r0] lsls r1, r3, #8 movs r0, #0x10 subs r0, r0, r3 orrs r1, r0 adds r2, #0x68 strh r1, [r2] _080A4F14: pop {r4, pc} .align 2, 0 _080A4F18: .4byte gUnk_08128B30 _080A4F1C: .4byte gUnk_08128A38 _080A4F20: .4byte 0x00000E46 _080A4F24: .4byte gUnk_03000F50 thumb_func_start sub_080A4F28 sub_080A4F28: @ 0x080A4F28 push {r4, lr} bl sub_0801E8D4 bl sub_080A4D34 movs r1, #4 ldr r3, _080A4F90 @ =gUnk_02034492 movs r2, #0 _080A4F38: adds r0, r1, r3 strb r2, [r0] adds r1, #1 cmp r1, #0xd ble _080A4F38 ldr r1, _080A4F94 @ =gUnk_030010A0 ldrh r0, [r1, #0x20] ldrh r1, [r1, #0x22] bl sub_080A6A80 ldr r4, _080A4F98 @ =gUnk_02034490 ldrb r0, [r0, #4] strb r0, [r4, #6] bl sub_0801DB94 strb r0, [r4, #7] movs r0, #0x10 bl sub_0805436C movs r1, #0xf cmp r0, #2 beq _080A4F66 movs r1, #0x10 _080A4F66: strb r1, [r4, #0x15] ldr r1, _080A4F9C @ =gUnk_08128A38 ldrb r0, [r4, #1] lsls r0, r0, #3 adds r0, r0, r1 ldrb r0, [r0, #1] bl sub_080A50A0 strb r0, [r4, #1] strb r0, [r4, #0x14] bl sub_080A4DB8 movs r0, #4 movs r1, #0x20 bl sub_08050054 movs r0, #1 bl sub_080A4E90 pop {r4, pc} .align 2, 0 _080A4F90: .4byte gUnk_02034492 _080A4F94: .4byte gUnk_030010A0 _080A4F98: .4byte gUnk_02034490 _080A4F9C: .4byte gUnk_08128A38 thumb_func_start sub_080A4FA0 sub_080A4FA0: @ 0x080A4FA0 push {lr} ldr r0, _080A4FB4 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080A4FB0 movs r0, #2 bl sub_080A4E90 _080A4FB0: pop {pc} .align 2, 0 _080A4FB4: .4byte gUnk_03000FD0 thumb_func_start sub_080A4FB8 sub_080A4FB8: @ 0x080A4FB8 push {r4, r5, lr} bl sub_080A51F4 cmp r0, #0 beq _080A5052 ldr r0, _080A4FE4 @ =gUnk_02000080 ldr r1, [r0, #0xc] adds r2, r0, #0 cmp r1, #0 beq _080A5052 movs r4, #1 rsbs r4, r4, #0 ldr r0, _080A4FE8 @ =gUnk_03000FF0 ldrh r1, [r0, #2] cmp r1, #8 beq _080A4FFE cmp r1, #8 bgt _080A4FEC cmp r1, #2 beq _080A500A b _080A500C .align 2, 0 _080A4FE4: .4byte gUnk_02000080 _080A4FE8: .4byte gUnk_03000FF0 _080A4FEC: movs r0, #0x80 lsls r0, r0, #1 cmp r1, r0 beq _080A5006 movs r0, #0x80 lsls r0, r0, #2 cmp r1, r0 beq _080A5002 b _080A500C _080A4FFE: movs r4, #0 b _080A5010 _080A5002: movs r4, #1 b _080A5010 _080A5006: movs r4, #2 b _080A5010 _080A500A: movs r4, #3 _080A500C: cmp r4, #0 blt _080A5052 _080A5010: ldr r0, [r2, #0xc] adds r0, r0, r4 ldrb r5, [r0] cmp r5, #6 bgt _080A5024 cmp r5, #4 bge _080A5028 cmp r5, #0 beq _080A5052 b _080A5042 _080A5024: cmp r5, #0xf bne _080A5042 _080A5028: movs r0, #0x47 bl sub_0807CA84 cmp r0, #0 bne _080A5042 movs r1, #1 cmp r4, #1 bne _080A503A movs r1, #2 _080A503A: ldr r0, _080A5078 @ =gUnk_02000080 ldr r0, [r0, #0xc] adds r0, r0, r1 ldrb r5, [r0] _080A5042: ldr r0, _080A507C @ =gUnk_02034490 movs r4, #0 strb r5, [r0, #0x14] movs r0, #0x65 bl sub_080A3268 ldr r0, _080A5078 @ =gUnk_02000080 str r4, [r0, #0xc] _080A5052: ldr r4, _080A507C @ =gUnk_02034490 movs r0, #0x14 ldrsb r0, [r4, r0] bl sub_080A50A0 adds r5, r0, #0 ldrb r0, [r4, #1] cmp r0, r5 beq _080A5096 strb r5, [r4, #0x14] bl sub_080A51D4 cmp r5, #0xe bne _080A5080 movs r0, #6 bl sub_080A4E90 b _080A5096 .align 2, 0 _080A5078: .4byte gUnk_02000080 _080A507C: .4byte gUnk_02034490 _080A5080: movs r0, #3 bl sub_080A4E90 ldr r0, _080A5098 @ =gUnk_02034CB0 movs r1, #0x80 lsls r1, r1, #4 bl sub_0801D630 ldr r1, _080A509C @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0xe] _080A5096: pop {r4, r5, pc} .align 2, 0 _080A5098: .4byte gUnk_02034CB0 _080A509C: .4byte gUnk_03000F50 thumb_func_start sub_080A50A0 sub_080A50A0: @ 0x080A50A0 push {lr} adds r1, r0, #0 cmp r1, #0xf bne _080A50B4 bl sub_08052690 movs r1, #4 cmp r0, #0 beq _080A50B4 movs r1, #5 _080A50B4: adds r0, r1, #0 pop {pc} thumb_func_start sub_080A50B8 sub_080A50B8: @ 0x080A50B8 push {r4, lr} ldr r4, _080A50DC @ =gUnk_02034490 movs r0, #0x16 ldrsb r0, [r4, r0] adds r0, #2 cmp r0, #0x10 ble _080A50D8 ldr r2, _080A50E0 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _080A50E4 @ =0x0000F8FF ands r0, r1 strh r0, [r2] movs r0, #4 bl sub_080A4E90 movs r0, #0x10 _080A50D8: strb r0, [r4, #0x16] pop {r4, pc} .align 2, 0 _080A50DC: .4byte gUnk_02034490 _080A50E0: .4byte gUnk_03000F50 _080A50E4: .4byte 0x0000F8FF thumb_func_start sub_080A50E8 sub_080A50E8: @ 0x080A50E8 push {lr} ldr r1, _080A5104 @ =gUnk_02034490 movs r0, #0x10 strb r0, [r1, #0x16] movs r0, #0x14 ldrsb r0, [r1, r0] strb r0, [r1, #1] bl sub_080A4DB8 movs r0, #5 bl sub_080A4E90 pop {pc} .align 2, 0 _080A5104: .4byte gUnk_02034490 thumb_func_start sub_080A5108 sub_080A5108: @ 0x080A5108 push {r4, lr} ldr r4, _080A5124 @ =gUnk_02034490 movs r0, #0x16 ldrsb r0, [r4, r0] subs r0, #2 cmp r0, #0 bge _080A511E movs r0, #2 bl sub_080A4E90 movs r0, #0 _080A511E: strb r0, [r4, #0x16] pop {r4, pc} .align 2, 0 _080A5124: .4byte gUnk_02034490 thumb_func_start sub_080A5128 sub_080A5128: @ 0x080A5128 push {r4, r5, lr} sub sp, #0x18 ldr r0, _080A5140 @ =gUnk_02034490 ldrb r1, [r0, #1] adds r2, r0, #0 cmp r1, #7 blt _080A515A cmp r1, #8 ble _080A5144 cmp r1, #0xb bgt _080A515A b _080A51C6 .align 2, 0 _080A5140: .4byte gUnk_02034490 _080A5144: movs r0, #0x60 str r0, [sp] movs r0, #0x18 str r0, [sp, #4] subs r0, #0x28 str r0, [sp, #8] movs r1, #0x48 str r1, [sp, #0xc] movs r0, #0x80 lsls r0, r0, #1 b _080A5182 _080A515A: movs r0, #0x40 str r0, [sp] movs r0, #0x16 ldrsb r0, [r2, r0] lsls r0, r0, #1 movs r4, #0x10 subs r0, r4, r0 str r0, [sp, #4] movs r0, #0x16 ldrsb r0, [r2, r0] movs r1, #3 bl __divsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r4, r4, r0 str r4, [sp, #8] movs r1, #0x48 str r1, [sp, #0xc] adds r0, #0xe0 _080A5182: str r0, [sp, #0x10] str r1, [sp, #0x14] ldr r4, _080A51CC @ =gUnk_03001010 movs r0, #0 strh r0, [r4, #4] strh r0, [r4, #6] movs r0, #0x80 lsls r0, r0, #3 strh r0, [r4, #8] ldr r0, [sp] strh r0, [r4] ldr r0, [sp, #4] strh r0, [r4, #2] ldr r5, _080A51D0 @ =0x000001FB adds r0, r5, #0 movs r1, #0 bl sub_080ADA14 ldr r0, [sp, #8] strh r0, [r4] ldr r0, [sp, #0xc] strh r0, [r4, #2] adds r0, r5, #0 movs r1, #1 bl sub_080ADA14 ldr r0, [sp, #0x10] strh r0, [r4] ldr r0, [sp, #0x14] strh r0, [r4, #2] adds r0, r5, #0 movs r1, #2 bl sub_080ADA14 _080A51C6: add sp, #0x18 pop {r4, r5, pc} .align 2, 0 _080A51CC: .4byte gUnk_03001010 _080A51D0: .4byte 0x000001FB thumb_func_start sub_080A51D4 sub_080A51D4: @ 0x080A51D4 push {lr} ldr r0, _080A51EC @ =gUnk_02034490 ldrb r1, [r0, #1] cmp r1, #0xd bhi _080A51E8 adds r0, #2 adds r0, r1, r0 ldr r1, _080A51F0 @ =gUnk_02000080 ldrb r1, [r1, #3] strb r1, [r0] _080A51E8: pop {pc} .align 2, 0 _080A51EC: .4byte gUnk_02034490 _080A51F0: .4byte gUnk_02000080 thumb_func_start sub_080A51F4 sub_080A51F4: @ 0x080A51F4 push {lr} movs r1, #1 ldr r0, _080A5210 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 beq _080A5202 movs r1, #0 _080A5202: ldr r0, _080A5214 @ =gUnk_02034490 ldrb r0, [r0, #0x11] cmp r0, #2 beq _080A520C movs r1, #0 _080A520C: adds r0, r1, #0 pop {pc} .align 2, 0 _080A5210: .4byte gUnk_03000FD0 _080A5214: .4byte gUnk_02034490 thumb_func_start sub_080A5218 sub_080A5218: @ 0x080A5218 push {lr} ldr r1, _080A5230 @ =gUnk_08128B48 ldr r0, _080A5234 @ =gUnk_02000080 ldrb r0, [r0, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 bl sub_080A5384 pop {pc} .align 2, 0 _080A5230: .4byte gUnk_08128B48 _080A5234: .4byte gUnk_02000080 thumb_func_start sub_080A5238 sub_080A5238: @ 0x080A5238 push {r4, r5, lr} ldr r4, _080A528C @ =gUnk_02000080 movs r0, #0 str r0, [r4, #0xc] ldr r0, _080A5290 @ =gUnk_08128B50 bl sub_080A70AC movs r5, #1 adds r4, #0x10 _080A524A: adds r0, r5, #0 bl sub_0807CA84 cmp r0, #1 bne _080A527E ldr r1, _080A5294 @ =gUnk_080FD5B4 lsls r0, r5, #3 adds r0, r0, r1 ldrb r1, [r0] cmp r1, #0x11 bhi _080A527E cmp r5, #0x10 bhi _080A526C cmp r5, #0xf blo _080A526C ldr r0, _080A5298 @ =gUnk_02034490 ldrb r5, [r0, #0x15] _080A526C: adds r0, r1, r4 strb r5, [r0] lsls r1, r1, #3 movs r0, #0xd8 lsls r0, r0, #2 adds r1, r1, r0 adds r0, r5, #0 bl sub_080A5F48 _080A527E: adds r5, #1 cmp r5, #0x1f bls _080A524A movs r0, #1 bl sub_080A7114 pop {r4, r5, pc} .align 2, 0 _080A528C: .4byte gUnk_02000080 _080A5290: .4byte gUnk_08128B50 _080A5294: .4byte gUnk_080FD5B4 _080A5298: .4byte gUnk_02034490 thumb_func_start sub_080A529C sub_080A529C: @ 0x080A529C push {r4, r5, lr} bl sub_080A51F4 cmp r0, #0 beq _080A5380 ldr r1, _080A52D0 @ =gUnk_02000080 ldr r0, _080A52D4 @ =gUnk_08128BF4 str r0, [r1, #0xc] ldrb r4, [r1, #3] lsls r1, r4, #3 ldr r0, _080A52D8 @ =gUnk_08128B64 adds r1, r1, r0 ldr r0, _080A52DC @ =gUnk_03000FF0 ldrh r2, [r0, #2] adds r3, r0, #0 cmp r2, #1 beq _080A52E0 cmp r2, #2 beq _080A52EC ldrh r0, [r3, #4] cmp r0, #0x20 beq _080A5330 cmp r0, #0x20 bgt _080A531E b _080A5318 .align 2, 0 _080A52D0: .4byte gUnk_02000080 _080A52D4: .4byte gUnk_08128BF4 _080A52D8: .4byte gUnk_08128B64 _080A52DC: .4byte gUnk_03000FF0 _080A52E0: cmp r4, #0x10 bne _080A52EC movs r0, #0xb bl sub_080A4E84 b _080A530A _080A52EC: ldr r0, _080A5314 @ =gUnk_02000080 adds r0, #0x10 adds r2, r4, r0 ldrb r0, [r2] cmp r0, #0 beq _080A5336 ldrh r0, [r3, #2] movs r1, #1 eors r0, r1 rsbs r1, r0, #0 orrs r1, r0 lsrs r1, r1, #0x1f ldrb r0, [r2] bl sub_08054414 _080A530A: movs r0, #0x6a bl sub_080A3268 b _080A5336 .align 2, 0 _080A5314: .4byte gUnk_02000080 _080A5318: cmp r0, #0x10 beq _080A5334 b _080A5336 _080A531E: cmp r0, #0x40 beq _080A5328 cmp r0, #0x80 beq _080A532C b _080A5336 _080A5328: ldrb r4, [r1] b _080A5336 _080A532C: ldrb r4, [r1, #1] b _080A5336 _080A5330: ldrb r4, [r1, #2] b _080A5336 _080A5334: ldrb r4, [r1, #3] _080A5336: ldr r5, _080A535C @ =gUnk_02000080 ldrb r0, [r5, #3] cmp r0, r4 beq _080A5346 strb r4, [r5, #3] movs r0, #0x69 bl sub_080A3268 _080A5346: adds r0, r5, #0 adds r0, #0x10 adds r0, r4, r0 ldrb r1, [r0] cmp r4, #0xc blo _080A5376 cmp r4, #0xf bls _080A5360 cmp r4, #0x10 beq _080A5374 b _080A5376 .align 2, 0 _080A535C: .4byte gUnk_02000080 _080A5360: cmp r1, #0 beq _080A5376 ldr r0, _080A5370 @ =gUnk_02002A40 adds r0, r0, r1 adds r0, #0x9a ldrb r1, [r0] b _080A5376 .align 2, 0 _080A5370: .4byte gUnk_02002A40 _080A5374: movs r1, #0x73 _080A5376: movs r0, #0x80 lsls r0, r0, #3 adds r0, r1, r0 bl sub_080A6F6C _080A5380: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080A5384 sub_080A5384: @ 0x080A5384 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _080A5400 @ =gUnk_03001010 movs r2, #0 movs r1, #0x80 lsls r1, r1, #3 strh r1, [r0, #4] strh r2, [r0, #6] strh r2, [r0, #8] movs r5, #0 ldr r4, _080A5404 @ =gUnk_02002A40 movs r0, #0xb6 adds r0, r0, r4 mov sl, r0 movs r1, #0xac adds r1, r1, r4 mov sb, r1 movs r2, #0xad adds r2, r2, r4 mov r8, r2 movs r6, #0 _080A53B4: ldr r0, _080A5408 @ =gUnk_02000080 adds r0, #0x10 adds r2, r5, r0 ldrb r0, [r2] cmp r0, #0 beq _080A5456 ldr r0, _080A540C @ =gUnk_08128B64 adds r1, r6, r0 ldrb r0, [r1, #6] ldr r3, _080A5400 @ =gUnk_03001010 strh r0, [r3] ldrb r0, [r1, #7] strh r0, [r3, #2] ldrb r3, [r2] cmp r3, #0x1f bhi _080A53E0 cmp r3, #0x1c blo _080A53E0 adds r0, r3, #0 subs r0, #0x1c add r0, sl ldrb r3, [r0] _080A53E0: movs r2, #3 cmp r3, #7 blo _080A542E cmp r3, #8 bhi _080A5414 ldr r0, _080A5410 @ =gUnk_080FD5A0 adds r1, r4, #0 adds r1, #0xae ldrb r1, [r1] adds r1, r1, r0 ldrb r0, [r1] mov r7, sb ldrb r7, [r7] cmp r0, r7 bhi _080A542E b _080A542C .align 2, 0 _080A5400: .4byte gUnk_03001010 _080A5404: .4byte gUnk_02002A40 _080A5408: .4byte gUnk_02000080 _080A540C: .4byte gUnk_08128B64 _080A5410: .4byte gUnk_080FD5A0 _080A5414: cmp r3, #0xa bhi _080A542E ldr r0, _080A552C @ =gUnk_080FD5A4 adds r1, r4, #0 adds r1, #0xaf ldrb r1, [r1] adds r1, r1, r0 ldrb r0, [r1] mov r1, r8 ldrb r1, [r1] cmp r0, r1 bhi _080A542E _080A542C: movs r2, #4 _080A542E: lsls r2, r2, #0xc movs r7, #0xd8 lsls r7, r7, #2 adds r0, r6, r7 movs r7, #0x80 lsls r7, r7, #4 adds r1, r7, #0 orrs r0, r1 orrs r2, r0 ldr r0, _080A5530 @ =gUnk_03001010 strh r2, [r0, #8] ldr r1, _080A5534 @ =gUnk_080FDFD8 lsls r0, r3, #2 adds r0, r0, r1 ldr r0, [r0] ldrb r1, [r0] movs r0, #0xa1 lsls r0, r0, #1 bl sub_080ADA14 _080A5456: adds r6, #8 adds r5, #1 cmp r5, #0x10 bls _080A53B4 ldr r0, _080A5530 @ =gUnk_03001010 movs r1, #0x80 lsls r1, r1, #4 strh r1, [r0, #8] ldr r1, _080A5538 @ =gUnk_02000080 ldrb r1, [r1, #3] mov sb, r0 cmp r1, #0x10 bne _080A547C movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] cmp r0, #0 beq _080A547C movs r1, #0x11 _080A547C: lsls r0, r1, #3 ldr r1, _080A553C @ =gUnk_08128B64 mov r8, r1 adds r1, r0, r1 mov r4, sb ldrb r0, [r1, #6] strh r0, [r4] ldrb r0, [r1, #7] strh r0, [r4, #2] ldrb r2, [r1, #4] ldr r0, _080A5540 @ =gUnk_03001000 ldrh r1, [r0, #0xc] movs r0, #0x10 ands r0, r1 adds r1, r2, #4 cmp r0, #0 beq _080A54A0 adds r1, r2, #3 _080A54A0: ldr r6, _080A5544 @ =0x000001FB adds r0, r6, #0 bl sub_080ADA14 movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] movs r1, #0x11 cmp r0, #0 beq _080A54B6 movs r1, #0x10 _080A54B6: lsls r0, r1, #3 mov r2, r8 adds r1, r0, r2 ldrb r0, [r1, #6] strh r0, [r4] ldrb r0, [r1, #7] strh r0, [r4, #2] movs r0, #0x80 lsls r0, r0, #4 strh r0, [r4, #8] adds r0, r6, #0 movs r1, #0x22 bl sub_080ADA14 ldr r7, _080A5548 @ =gUnk_02002A40 adds r0, r7, #0 adds r0, #0xb4 ldrb r0, [r0] bl sub_080A554C adds r5, r0, #0 cmp r5, #0x10 bhi _080A54FA lsls r0, r5, #3 mov r3, r8 adds r1, r0, r3 ldrb r0, [r1, #6] strh r0, [r4] ldrb r0, [r1, #7] strh r0, [r4, #2] adds r0, r6, #0 movs r1, #3 bl sub_080ADA14 _080A54FA: adds r0, r7, #0 adds r0, #0xb5 ldrb r0, [r0] bl sub_080A554C adds r5, r0, #0 cmp r5, #0x10 bhi _080A5522 lsls r0, r5, #3 mov r7, r8 adds r1, r0, r7 ldrb r0, [r1, #6] mov r2, sb strh r0, [r2] ldrb r0, [r1, #7] strh r0, [r2, #2] adds r0, r6, #0 movs r1, #3 bl sub_080ADA14 _080A5522: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _080A552C: .4byte gUnk_080FD5A4 _080A5530: .4byte gUnk_03001010 _080A5534: .4byte gUnk_080FDFD8 _080A5538: .4byte gUnk_02000080 _080A553C: .4byte gUnk_08128B64 _080A5540: .4byte gUnk_03001000 _080A5544: .4byte 0x000001FB _080A5548: .4byte gUnk_02002A40 thumb_func_start sub_080A554C sub_080A554C: @ 0x080A554C push {lr} adds r2, r0, #0 cmp r2, #0 beq _080A556E movs r1, #0 ldr r3, _080A5564 @ =gUnk_02000090 _080A5558: adds r0, r1, r3 ldrb r0, [r0] cmp r2, r0 bne _080A5568 adds r0, r1, #0 b _080A5570 .align 2, 0 _080A5564: .4byte gUnk_02000090 _080A5568: adds r1, #1 cmp r1, #0x10 bls _080A5558 _080A556E: movs r0, #0x11 _080A5570: pop {pc} .align 2, 0 thumb_func_start sub_080A5574 sub_080A5574: @ 0x080A5574 push {lr} ldr r1, _080A558C @ =gUnk_08128BF8 ldr r0, _080A5590 @ =gUnk_02000080 ldrb r0, [r0, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 bl sub_080A57F4 pop {pc} .align 2, 0 _080A558C: .4byte gUnk_08128BF8 _080A5590: .4byte gUnk_02000080 thumb_func_start sub_080A5594 sub_080A5594: @ 0x080A5594 push {r4, r5, r6, r7, lr} ldr r4, _080A5620 @ =gUnk_02000080 ldr r0, _080A5624 @ =gUnk_08128C00 str r0, [r4, #0xc] ldr r0, _080A5628 @ =gUnk_08128C04 bl sub_080A70AC movs r6, #6 movs r5, #0x34 adds r7, r4, #0 adds r7, #0x10 _080A55AA: adds r0, r5, #0 bl sub_0807CA84 cmp r0, #1 bne _080A55EA ldr r1, _080A562C @ =gUnk_080FD5B4 lsls r0, r5, #3 adds r0, r0, r1 ldrb r1, [r0] cmp r1, #3 bne _080A55C8 ldrb r0, [r4, #0x13] cmp r0, #0 beq _080A55C8 movs r1, #0x63 _080A55C8: cmp r1, #0x63 beq _080A55EA cmp r1, #1 bne _080A55D8 adds r1, r6, #0 cmp r1, #7 bhi _080A55D8 adds r6, r1, #1 _080A55D8: adds r0, r1, r7 strb r5, [r0] lsls r1, r1, #3 movs r0, #0xe0 lsls r0, r0, #2 adds r1, r1, r0 adds r0, r5, #0 bl sub_080A5F48 _080A55EA: adds r5, #1 cmp r5, #0x46 bls _080A55AA movs r0, #0x3d bl sub_0807CA84 cmp r0, #0 bne _080A564A movs r5, #0 movs r0, #0x67 bl sub_0807CA84 cmp r0, #0 beq _080A5646 movs r4, #0 ldr r1, _080A5630 @ =gUnk_02002B6B _080A560A: adds r0, r4, r1 ldrb r0, [r0] adds r5, r5, r0 adds r4, #1 cmp r4, #0x12 bls _080A560A cmp r5, #0x4f ble _080A5634 movs r5, #4 b _080A5646 .align 2, 0 _080A5620: .4byte gUnk_02000080 _080A5624: .4byte gUnk_08128C00 _080A5628: .4byte gUnk_08128C04 _080A562C: .4byte gUnk_080FD5B4 _080A5630: .4byte gUnk_02002B6B _080A5634: cmp r5, #0x27 ble _080A563C movs r5, #3 b _080A5646 _080A563C: cmp r5, #9 ble _080A5644 movs r5, #2 b _080A5646 _080A5644: movs r5, #1 _080A5646: ldr r0, _080A5698 @ =gUnk_02000080 strb r5, [r0, #0x10] _080A564A: ldr r0, _080A5698 @ =gUnk_02000080 ldr r1, _080A569C @ =gUnk_02002A40 adds r1, #0xa9 ldrb r1, [r1] adds r1, #1 strb r1, [r0, #0x11] movs r5, #0 movs r4, #0x48 _080A565A: adds r0, r4, #0 bl sub_0807CA84 cmp r0, #0 beq _080A5666 adds r5, #1 _080A5666: adds r4, #1 cmp r4, #0x4f bls _080A565A ldr r4, _080A5698 @ =gUnk_02000080 strb r5, [r4, #0x12] movs r0, #0x3e bl sub_0807CA84 cmp r0, #0 bne _080A5688 movs r0, #0x3f bl sub_0807CA84 cmp r0, #0 beq _080A5688 movs r0, #0x3f strb r0, [r4, #0x13] _080A5688: ldr r1, _080A5698 @ =gUnk_02000080 movs r0, #1 strb r0, [r1, #0x14] strb r0, [r1, #0x15] bl sub_080A7114 pop {r4, r5, r6, r7, pc} .align 2, 0 _080A5698: .4byte gUnk_02000080 _080A569C: .4byte gUnk_02002A40 thumb_func_start sub_080A56A0 sub_080A56A0: @ 0x080A56A0 push {r4, lr} bl sub_080A51F4 cmp r0, #0 bne _080A56AC b _080A57F0 _080A56AC: ldr r2, _080A56D0 @ =gUnk_02000080 ldr r0, _080A56D4 @ =gUnk_08128C00 str r0, [r2, #0xc] ldrb r0, [r2, #3] lsls r0, r0, #3 ldr r1, _080A56D8 @ =gUnk_08128C14 adds r4, r0, r1 movs r3, #0xff ldr r0, _080A56DC @ =gUnk_03000FF0 ldrh r1, [r0, #4] cmp r1, #0x20 beq _080A56F2 cmp r1, #0x20 bgt _080A56E0 cmp r1, #0x10 beq _080A56F6 b _080A56F8 .align 2, 0 _080A56D0: .4byte gUnk_02000080 _080A56D4: .4byte gUnk_08128C00 _080A56D8: .4byte gUnk_08128C14 _080A56DC: .4byte gUnk_03000FF0 _080A56E0: cmp r1, #0x40 beq _080A56EA cmp r1, #0x80 beq _080A56EE b _080A56F8 _080A56EA: ldrb r3, [r4] b _080A56F8 _080A56EE: ldrb r3, [r4, #1] b _080A56F8 _080A56F2: ldrb r3, [r4, #2] b _080A56F8 _080A56F6: ldrb r3, [r4, #3] _080A56F8: cmp r3, #0xff beq _080A570C ldr r0, _080A5708 @ =gUnk_02000080 strb r3, [r0, #3] movs r0, #0x69 bl sub_080A3268 b _080A575E .align 2, 0 _080A5708: .4byte gUnk_02000080 _080A570C: ldrh r0, [r0, #2] cmp r0, #1 bne _080A575E ldrb r3, [r2, #3] movs r1, #0 cmp r3, #2 beq _080A572E cmp r3, #2 bhi _080A5724 cmp r3, #0 beq _080A572E b _080A574E _080A5724: cmp r3, #4 beq _080A5748 cmp r3, #5 beq _080A574C b _080A574E _080A572E: ldr r0, _080A5744 @ =gUnk_02000080 adds r0, #0x10 adds r0, r3, r0 ldrb r0, [r0] cmp r0, #0 beq _080A574E movs r1, #8 cmp r3, #0 bne _080A574E movs r1, #7 b _080A5752 .align 2, 0 _080A5744: .4byte gUnk_02000080 _080A5748: movs r1, #9 b _080A5752 _080A574C: movs r1, #0xa _080A574E: cmp r1, #0 beq _080A575E _080A5752: adds r0, r1, #0 bl sub_080A4E84 movs r0, #0x6a bl sub_080A3268 _080A575E: ldr r0, _080A5780 @ =gUnk_02000080 ldrb r1, [r0, #3] adds r2, r0, #0 cmp r1, #0 beq _080A576C cmp r1, #2 bne _080A5788 _080A576C: adds r0, r2, #0 adds r0, #0x10 adds r0, r1, r0 ldrb r0, [r0] cmp r0, #0 beq _080A5788 ldr r1, _080A5784 @ =gUnk_0200AF00 movs r0, #0x10 b _080A578C .align 2, 0 _080A5780: .4byte gUnk_02000080 _080A5784: .4byte gUnk_0200AF00 _080A5788: ldr r1, _080A57AC @ =gUnk_0200AF00 ldr r0, _080A57B0 @ =0x0000FFF0 _080A578C: strh r0, [r1, #0x1c] ldrb r3, [r2, #3] adds r0, r2, #0 adds r0, #0x10 adds r0, r3, r0 ldrb r2, [r0] cmp r2, #0 beq _080A57E6 cmp r3, #5 bhi _080A57E6 lsls r0, r3, #2 ldr r1, _080A57B4 @ =_080A57B8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080A57AC: .4byte gUnk_0200AF00 _080A57B0: .4byte 0x0000FFF0 _080A57B4: .4byte _080A57B8 _080A57B8: @ jump table .4byte _080A57D0 @ case 0 .4byte _080A57D8 @ case 1 .4byte _080A57DC @ case 2 .4byte _080A57E6 @ case 3 .4byte _080A57E0 @ case 4 .4byte _080A57E4 @ case 5 _080A57D0: cmp r2, #0x3d beq _080A57E6 movs r2, #0x67 b _080A57E6 _080A57D8: movs r2, #0x63 b _080A57E6 _080A57DC: movs r2, #0x70 b _080A57E6 _080A57E0: movs r2, #0x74 b _080A57E6 _080A57E4: movs r2, #0x73 _080A57E6: movs r0, #0x80 lsls r0, r0, #3 adds r0, r2, r0 bl sub_080A6F6C _080A57F0: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A57F4 sub_080A57F4: @ 0x080A57F4 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r2, _080A5890 @ =gUnk_03001010 movs r1, #0 movs r0, #0x80 lsls r0, r0, #3 strh r0, [r2, #4] strh r1, [r2, #6] movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] ldr r1, _080A5894 @ =gUnk_08128C94 mov sb, r1 cmp r0, #0 bne _080A581A ldr r3, _080A5898 @ =gUnk_08128C14 mov sb, r3 _080A581A: ldr r0, _080A589C @ =gUnk_02000080 ldrb r0, [r0, #3] lsls r0, r0, #3 mov r1, sb adds r3, r1, r0 movs r0, #0x80 lsls r0, r0, #4 strh r0, [r2, #8] ldrb r0, [r3, #6] strh r0, [r2] ldrb r0, [r3, #7] strh r0, [r2, #2] ldrb r2, [r3, #4] ldr r0, _080A58A0 @ =gUnk_03001000 ldrh r1, [r0, #0xc] movs r0, #0x10 ands r0, r1 adds r1, r2, #0 adds r1, #0xa cmp r0, #0 bne _080A5846 adds r1, #1 _080A5846: ldr r0, _080A58A4 @ =0x000001FB bl sub_080ADA14 movs r3, #0 mov r8, r3 mov r7, sb adds r7, #5 _080A5854: ldr r0, _080A589C @ =gUnk_02000080 adds r0, #0x10 mov r1, r8 adds r6, r1, r0 ldrb r1, [r6] cmp r1, #0 beq _080A58E8 mov r3, r8 lsls r5, r3, #3 mov r0, sb adds r3, r0, r5 ldr r4, _080A5890 @ =gUnk_03001010 ldrb r0, [r7, #1] strh r0, [r4] ldrb r2, [r7, #2] strh r2, [r4, #2] movs r0, #0xe8 lsls r0, r0, #8 strh r0, [r4, #8] cmp r1, #0x33 bhi _080A58B8 mov r1, r8 cmp r1, #2 bne _080A58A8 ldrb r0, [r7] adds r1, r0, #0 adds r1, #0xa ldr r0, _080A58A4 @ =0x000001FB b _080A58E4 .align 2, 0 _080A5890: .4byte gUnk_03001010 _080A5894: .4byte gUnk_08128C94 _080A5898: .4byte gUnk_08128C14 _080A589C: .4byte gUnk_02000080 _080A58A0: .4byte gUnk_03001000 _080A58A4: .4byte 0x000001FB _080A58A8: ldrb r0, [r6] adds r0, #9 ldrb r3, [r3, #5] adds r1, r0, r3 ldr r0, _080A58B4 @ =0x000001FB b _080A58E4 .align 2, 0 _080A58B4: .4byte 0x000001FB _080A58B8: ldr r3, _080A58CC @ =0x0000EB80 adds r0, r5, r3 strh r0, [r4, #8] cmp r1, #0x3d beq _080A58D0 cmp r1, #0x3e bne _080A58D6 adds r0, r2, #0 adds r0, #8 b _080A58D4 .align 2, 0 _080A58CC: .4byte 0x0000EB80 _080A58D0: adds r0, r2, #0 adds r0, #0xd _080A58D4: strh r0, [r4, #2] _080A58D6: ldr r0, _080A5980 @ =gUnk_080FDFD8 lsls r1, r1, #2 adds r1, r1, r0 ldr r0, [r1] ldrb r1, [r0] movs r0, #0xa1 lsls r0, r0, #1 _080A58E4: bl sub_080ADA14 _080A58E8: adds r7, #8 movs r0, #1 add r8, r0 mov r1, r8 cmp r1, #0xf bls _080A5854 ldr r4, _080A5984 @ =gUnk_02000080 ldrb r0, [r4, #0x12] cmp r0, #0 beq _080A5920 ldr r2, _080A5988 @ =gUnk_03001010 movs r3, #0x80 lsls r3, r3, #4 adds r1, r3, #0 adds r0, r0, r1 strh r0, [r2, #8] mov r3, sb adds r3, #0x10 ldrb r0, [r3, #6] adds r0, #9 strh r0, [r2] ldrb r0, [r3, #7] adds r0, #7 strh r0, [r2, #2] movs r0, #0 movs r1, #1 bl sub_080ADA14 _080A5920: ldrb r0, [r4, #0x13] cmp r0, #0x3f bne _080A5976 mov r3, sb adds r3, #0x18 ldr r1, _080A5988 @ =gUnk_03001010 ldrb r0, [r3, #6] adds r0, #8 strh r0, [r1] ldrb r0, [r3, #7] adds r0, #8 strh r0, [r1, #2] ldr r0, _080A598C @ =gUnk_02002A40 adds r0, #0xc2 ldrh r4, [r0] movs r0, #0 mov r8, r0 adds r5, r1, #0 _080A5944: adds r0, r4, #0 movs r1, #0xa bl __modsi3 movs r1, #0x80 lsls r1, r1, #4 adds r0, r0, r1 strh r0, [r5, #8] movs r0, #0 movs r1, #1 bl sub_080ADA14 adds r0, r4, #0 movs r1, #0xa bl __divsi3 adds r4, r0, #0 ldrh r0, [r5] subs r0, #8 strh r0, [r5] movs r3, #1 add r8, r3 mov r0, r8 cmp r0, #2 bls _080A5944 _080A5976: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _080A5980: .4byte gUnk_080FDFD8 _080A5984: .4byte gUnk_02000080 _080A5988: .4byte gUnk_03001010 _080A598C: .4byte gUnk_02002A40 thumb_func_start sub_080A5990 sub_080A5990: @ 0x080A5990 push {lr} ldr r1, _080A59A4 @ =gUnk_08128D14 ldr r0, _080A59A8 @ =gUnk_02000080 ldrb r0, [r0, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _080A59A4: .4byte gUnk_08128D14 _080A59A8: .4byte gUnk_02000080 thumb_func_start sub_080A59AC sub_080A59AC: @ 0x080A59AC push {lr} ldr r1, _080A59C4 @ =gUnk_02000080 movs r0, #0 strb r0, [r1, #3] movs r1, #0 bl sub_08052418 movs r0, #1 bl sub_080A7114 pop {pc} .align 2, 0 _080A59C4: .4byte gUnk_02000080 thumb_func_start sub_080A59C8 sub_080A59C8: @ 0x080A59C8 push {lr} bl sub_080A51F4 cmp r0, #0 beq _080A5A52 ldr r1, _080A59EC @ =gUnk_02000080 ldrb r2, [r1, #3] movs r3, #0 ldr r0, _080A59F0 @ =gUnk_03000FF0 ldrh r0, [r0, #2] cmp r0, #2 beq _080A5A02 cmp r0, #2 bgt _080A59F4 cmp r0, #1 beq _080A5A0A b _080A5A0C .align 2, 0 _080A59EC: .4byte gUnk_02000080 _080A59F0: .4byte gUnk_03000FF0 _080A59F4: cmp r0, #0x40 beq _080A59FE cmp r0, #0x80 beq _080A5A06 b _080A5A0C _080A59FE: movs r2, #0 b _080A5A0C _080A5A02: cmp r2, #0 bne _080A5A10 _080A5A06: movs r2, #1 b _080A5A0C _080A5A0A: movs r3, #1 _080A5A0C: cmp r3, #0 beq _080A5A3C _080A5A10: movs r0, #0xff strh r0, [r1, #8] cmp r2, #0 bne _080A5A2E movs r0, #8 movs r1, #0 bl sub_08050318 movs r0, #2 bl sub_080A7114 movs r0, #0x6a bl sub_080A3268 b _080A5A52 _080A5A2E: movs r0, #3 bl sub_080A7114 movs r0, #0x6c bl sub_080A3268 b _080A5A52 _080A5A3C: ldrb r0, [r1, #3] cmp r0, r2 beq _080A5A52 strb r2, [r1, #3] movs r0, #0 adds r1, r2, #0 bl sub_08052418 movs r0, #0x69 bl sub_080A3268 _080A5A52: pop {pc} thumb_func_start sub_080A5A54 sub_080A5A54: @ 0x080A5A54 push {lr} movs r0, #0 bl sub_0807CDA4 adds r1, r0, #0 cmp r1, #0 beq _080A5A8A cmp r1, #0 bgt _080A5A70 movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 beq _080A5A76 b _080A5A8A _080A5A70: cmp r1, #1 beq _080A5A84 b _080A5A8A _080A5A76: movs r0, #9 movs r1, #0 bl sub_08050318 ldr r1, _080A5A8C @ =gUnk_02000080 movs r0, #0x3c strh r0, [r1, #8] _080A5A84: movs r0, #3 bl sub_080A7114 _080A5A8A: pop {pc} .align 2, 0 _080A5A8C: .4byte gUnk_02000080 thumb_func_start sub_080A5A90 sub_080A5A90: @ 0x080A5A90 push {lr} ldr r2, _080A5AA4 @ =gUnk_02000080 ldrh r0, [r2, #8] cmp r0, #0 beq _080A5AA8 cmp r0, #0xff beq _080A5AC0 subs r0, #1 strh r0, [r2, #8] b _080A5AD2 .align 2, 0 _080A5AA4: .4byte gUnk_02000080 _080A5AA8: ldr r0, _080A5ABC @ =gUnk_03000FF0 ldrh r1, [r0, #2] movs r0, #0xb ands r0, r1 cmp r0, #0 beq _080A5AD2 movs r0, #0xff strh r0, [r2, #8] b _080A5AD2 .align 2, 0 _080A5ABC: .4byte gUnk_03000FF0 _080A5AC0: ldr r0, _080A5AD4 @ =gUnk_02034490 ldrb r0, [r0, #1] movs r1, #1 cmp r0, #0xa bne _080A5ACC movs r1, #2 _080A5ACC: adds r0, r1, #0 bl sub_080A4E84 _080A5AD2: pop {pc} .align 2, 0 _080A5AD4: .4byte gUnk_02034490 thumb_func_start sub_080A5AD8 sub_080A5AD8: @ 0x080A5AD8 push {lr} ldr r1, _080A5AEC @ =gUnk_08128D24 ldr r0, _080A5AF0 @ =gUnk_02000080 ldrb r0, [r0, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _080A5AEC: .4byte gUnk_08128D24 _080A5AF0: .4byte gUnk_02000080 thumb_func_start sub_080A5AF4 sub_080A5AF4: @ 0x080A5AF4 push {r4, lr} ldr r0, _080A5B18 @ =gUnk_02000080 movs r4, #0 strb r4, [r0, #3] movs r0, #2 movs r1, #0 bl sub_08052418 movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] cmp r0, #0 bne _080A5B24 ldr r1, _080A5B1C @ =gUnk_03000F50 ldr r0, _080A5B20 @ =0x0000FFFC strh r0, [r1, #0x18] b _080A5B28 .align 2, 0 _080A5B18: .4byte gUnk_02000080 _080A5B1C: .4byte gUnk_03000F50 _080A5B20: .4byte 0x0000FFFC _080A5B24: ldr r0, _080A5B30 @ =gUnk_03000F50 strh r4, [r0, #0x18] _080A5B28: movs r0, #1 bl sub_080A7114 pop {r4, pc} .align 2, 0 _080A5B30: .4byte gUnk_03000F50 thumb_func_start sub_080A5B34 sub_080A5B34: @ 0x080A5B34 push {r4, r5, r6, lr} bl sub_080A51F4 cmp r0, #0 beq _080A5BB6 ldr r1, _080A5B58 @ =gUnk_02000080 ldrb r4, [r1, #3] movs r5, #0 ldr r0, _080A5B5C @ =gUnk_03000FF0 ldrh r0, [r0, #2] adds r6, r1, #0 cmp r0, #2 beq _080A5B6C cmp r0, #2 bgt _080A5B60 cmp r0, #1 beq _080A5B74 b _080A5B76 .align 2, 0 _080A5B58: .4byte gUnk_02000080 _080A5B5C: .4byte gUnk_03000FF0 _080A5B60: cmp r0, #0x10 beq _080A5B70 cmp r0, #0x20 bne _080A5B76 movs r4, #0 b _080A5B76 _080A5B6C: cmp r4, #0 bne _080A5B74 _080A5B70: movs r4, #1 b _080A5B76 _080A5B74: movs r5, #1 _080A5B76: adds r1, r6, #0 ldrb r0, [r1, #3] cmp r0, r4 beq _080A5B8E strb r4, [r1, #3] movs r0, #2 adds r1, r4, #0 bl sub_08052418 movs r0, #0x69 bl sub_080A3268 _080A5B8E: cmp r5, #0 beq _080A5BB6 cmp r4, #0 bne _080A5BAA movs r0, #7 movs r1, #0x20 bl sub_08050054 movs r0, #0x3c strh r0, [r6, #8] movs r0, #2 bl sub_080A7114 b _080A5BB6 _080A5BAA: movs r0, #0x6c bl sub_080A3268 movs r0, #2 bl sub_080A4E84 _080A5BB6: pop {r4, r5, r6, pc} thumb_func_start sub_080A5BB8 sub_080A5BB8: @ 0x080A5BB8 push {lr} ldr r0, _080A5BE4 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080A5BE2 bl sub_08050384 ldr r1, _080A5BE8 @ =gUnk_03001000 ldrb r0, [r1, #1] movs r0, #1 strb r0, [r1, #1] movs r0, #6 movs r1, #8 bl sub_08050054 movs r0, #2 bl sub_080A4E84 ldr r1, _080A5BEC @ =gUnk_02034490 movs r0, #0x10 strb r0, [r1, #0x16] _080A5BE2: pop {pc} .align 2, 0 _080A5BE4: .4byte gUnk_03000FD0 _080A5BE8: .4byte gUnk_03001000 _080A5BEC: .4byte gUnk_02034490 thumb_func_start sub_080A5BF0 sub_080A5BF0: @ 0x080A5BF0 push {r4, r5, lr} ldr r1, _080A5C30 @ =gUnk_08128D30 ldr r0, _080A5C34 @ =gUnk_02000080 ldrb r0, [r0, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 bl sub_080A5D1C ldr r0, _080A5C38 @ =gUnk_03001000 ldrh r0, [r0, #0xc] movs r1, #7 ands r0, r1 cmp r0, #0 bne _080A5C2E ldr r4, _080A5C3C @ =gUnk_02017830 ldrh r5, [r4] adds r0, r4, #2 adds r1, r4, #0 movs r2, #0xe bl sub_0801D66C strh r5, [r4, #0xe] ldr r2, _080A5C40 @ =gUnk_0200B644 ldr r0, [r2] movs r1, #0x80 lsls r1, r1, #5 orrs r0, r1 str r0, [r2] _080A5C2E: pop {r4, r5, pc} .align 2, 0 _080A5C30: .4byte gUnk_08128D30 _080A5C34: .4byte gUnk_02000080 _080A5C38: .4byte gUnk_03001000 _080A5C3C: .4byte gUnk_02017830 _080A5C40: .4byte gUnk_0200B644 thumb_func_start sub_080A5C44 sub_080A5C44: @ 0x080A5C44 push {r4, lr} ldr r1, _080A5C88 @ =gUnk_02000080 ldr r0, _080A5C8C @ =gUnk_08128D38 str r0, [r1, #0xc] ldrb r0, [r1, #3] bl sub_080A5CFC movs r0, #0x81 bl sub_0801D7EC ldr r4, _080A5C90 @ =gUnk_02033A90 ldrb r0, [r4, #3] movs r1, #1 bl sub_080A6FB4 movs r0, #1 bl sub_080A7114 ldrb r1, [r4, #3] lsls r1, r1, #1 ldr r0, _080A5C94 @ =gUnk_08128D43 adds r1, r1, r0 ldr r2, _080A5C98 @ =gUnk_03000F50 movs r0, #0 ldrsb r0, [r1, r0] ldrh r3, [r2, #0x16] adds r0, r0, r3 strh r0, [r2, #0x16] movs r0, #0 ldrsb r0, [r1, r0] ldrh r1, [r2, #0x18] adds r0, r0, r1 strh r0, [r2, #0x18] pop {r4, pc} .align 2, 0 _080A5C88: .4byte gUnk_02000080 _080A5C8C: .4byte gUnk_08128D38 _080A5C90: .4byte gUnk_02033A90 _080A5C94: .4byte gUnk_08128D43 _080A5C98: .4byte gUnk_03000F50 thumb_func_start sub_080A5C9C sub_080A5C9C: @ 0x080A5C9C push {lr} bl sub_080A51F4 cmp r0, #0 beq _080A5CFA ldr r0, _080A5CC4 @ =gUnk_02033A90 ldrb r0, [r0, #3] lsls r0, r0, #2 ldr r1, _080A5CC8 @ =gUnk_080C9C6C adds r3, r0, r1 ldr r1, _080A5CCC @ =gUnk_02000080 ldrb r2, [r1, #3] ldr r0, _080A5CD0 @ =gUnk_03000FF0 ldrh r0, [r0, #2] cmp r0, #0x40 beq _080A5CD4 cmp r0, #0x80 beq _080A5CDC b _080A5CE6 .align 2, 0 _080A5CC4: .4byte gUnk_02033A90 _080A5CC8: .4byte gUnk_080C9C6C _080A5CCC: .4byte gUnk_02000080 _080A5CD0: .4byte gUnk_03000FF0 _080A5CD4: cmp r2, #0 ble _080A5CE6 subs r2, #1 b _080A5CE6 _080A5CDC: ldrb r0, [r3] subs r0, #1 cmp r0, r2 ble _080A5CE6 adds r2, #1 _080A5CE6: ldrb r0, [r1, #3] cmp r0, r2 beq _080A5CFA strb r2, [r1, #3] adds r0, r2, #0 bl sub_080A5CFC movs r0, #0x69 bl sub_080A3268 _080A5CFA: pop {pc} thumb_func_start sub_080A5CFC sub_080A5CFC: @ 0x080A5CFC push {r4, lr} adds r4, r0, #0 bl sub_0801DDA0 bl sub_0801DD88 ldr r1, _080A5D18 @ =gUnk_02019EE0 movs r2, #0x80 lsls r2, r2, #3 adds r0, r4, #0 bl sub_0801DBA0 pop {r4, pc} .align 2, 0 _080A5D18: .4byte gUnk_02019EE0 thumb_func_start sub_080A5D1C sub_080A5D1C: @ 0x080A5D1C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _080A5E98 @ =gUnk_02033A90 ldrb r0, [r0, #3] lsls r0, r0, #2 ldr r1, _080A5E9C @ =gUnk_080C9C6C adds r7, r0, r1 ldr r1, _080A5EA0 @ =gUnk_08128D3C ldrb r0, [r7] adds r0, r0, r1 ldrb r6, [r0] bl sub_0801DB94 mov r8, r0 ldr r5, _080A5EA4 @ =gUnk_03001010 movs r0, #0x80 lsls r0, r0, #3 strh r0, [r5, #4] movs r0, #0 strh r0, [r5, #6] strh r0, [r5, #8] movs r0, #0x34 strh r0, [r5] ldr r0, _080A5EA8 @ =gUnk_02000080 ldrb r1, [r0, #3] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r0, r6, r0 strh r0, [r5, #2] ldr r1, _080A5EAC @ =gUnk_03001000 mov sl, r1 ldrh r1, [r1, #0xc] movs r0, #0x10 ands r0, r1 movs r1, #0x74 cmp r0, #0 bne _080A5D70 movs r1, #0x75 _080A5D70: ldr r0, _080A5EB0 @ =0x000001FB bl sub_080ADA14 movs r0, #0x20 mov sb, r0 mov r1, sb strh r1, [r5] mov r1, r8 lsls r0, r1, #1 add r0, r8 lsls r0, r0, #2 adds r0, r6, r0 strh r0, [r5, #2] mov r0, sl ldrh r1, [r0, #0xc] mov r0, sb ands r0, r1 movs r1, #0x79 cmp r0, #0 beq _080A5D9A movs r1, #0x78 _080A5D9A: ldr r0, _080A5EB0 @ =0x000001FB bl sub_080ADA14 movs r0, #0x7e strh r0, [r5, #2] movs r0, #0x87 lsls r0, r0, #7 strh r0, [r5, #8] bl sub_080527CC cmp r0, #0 beq _080A5DCC movs r0, #0x18 strh r0, [r5] ldr r0, _080A5EB4 @ =gUnk_080FDFD8 movs r1, #0xa0 lsls r1, r1, #1 adds r0, r0, r1 ldr r0, [r0] ldrb r4, [r0] movs r0, #0xa2 lsls r0, r0, #1 adds r1, r4, #0 bl sub_080ADA14 _080A5DCC: bl sub_08052764 cmp r0, #0 beq _080A5DEE movs r0, #0x2e strh r0, [r5] ldr r0, _080A5EB4 @ =gUnk_080FDFD8 movs r1, #0xa4 lsls r1, r1, #1 adds r0, r0, r1 ldr r0, [r0] ldrb r4, [r0] movs r0, #0xa2 lsls r0, r0, #1 adds r1, r4, #0 bl sub_080ADA14 _080A5DEE: bl sub_0805279C cmp r0, #0 beq _080A5E48 movs r0, #0x45 strh r0, [r5] movs r0, #0xe0 lsls r0, r0, #2 strh r0, [r5, #8] ldr r1, _080A5EB4 @ =gUnk_080FDFD8 movs r0, #0xa2 lsls r0, r0, #1 adds r1, r1, r0 ldr r1, [r1] ldrb r4, [r1] adds r1, r4, #0 bl sub_080ADA14 bl sub_080A5F24 cmp r0, #0 beq _080A5E48 movs r0, #0 strh r0, [r5, #8] movs r0, #0x46 strh r0, [r5] ldrb r1, [r7, #1] ldrb r0, [r7, #2] subs r1, r1, r0 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r0, r6, r0 strh r0, [r5, #2] mov r0, sl ldrh r1, [r0, #0xc] mov r0, sb ands r0, r1 movs r1, #0x7b cmp r0, #0 beq _080A5E42 movs r1, #0x7a _080A5E42: ldr r0, _080A5EB0 @ =0x000001FB bl sub_080ADA14 _080A5E48: ldr r1, _080A5EA4 @ =gUnk_03001010 movs r0, #0 strh r0, [r1, #8] movs r0, #0x34 strh r0, [r1] strh r6, [r1, #2] ldrb r0, [r7, #1] adds r4, r0, #0 adds r4, #0x82 movs r5, #0 ldrb r0, [r7] cmp r5, r0 bhs _080A5E7C adds r6, r1, #0 _080A5E64: ldr r0, _080A5EB0 @ =0x000001FB adds r1, r4, #0 bl sub_080ADA14 subs r4, #1 ldrh r0, [r6, #2] adds r0, #0xc strh r0, [r6, #2] adds r5, #1 ldrb r1, [r7] cmp r5, r1 blo _080A5E64 _080A5E7C: ldr r5, _080A5EB8 @ =gUnk_02019EE0 ldrb r0, [r5] cmp r0, #0 beq _080A5F14 ldr r7, _080A5EA4 @ =gUnk_03001010 ldr r6, _080A5EBC @ =gUnk_03000F50 _080A5E88: ldrb r0, [r5] cmp r0, #2 beq _080A5EDC cmp r0, #2 bgt _080A5EC0 cmp r0, #1 beq _080A5ECA b _080A5EEE .align 2, 0 _080A5E98: .4byte gUnk_02033A90 _080A5E9C: .4byte gUnk_080C9C6C _080A5EA0: .4byte gUnk_08128D3C _080A5EA4: .4byte gUnk_03001010 _080A5EA8: .4byte gUnk_02000080 _080A5EAC: .4byte gUnk_03001000 _080A5EB0: .4byte 0x000001FB _080A5EB4: .4byte gUnk_080FDFD8 _080A5EB8: .4byte gUnk_02019EE0 _080A5EBC: .4byte gUnk_03000F50 _080A5EC0: cmp r0, #3 beq _080A5EE0 cmp r0, #4 beq _080A5EE4 b _080A5EEE _080A5ECA: movs r4, #0x7d ldr r0, _080A5ED8 @ =gUnk_02000080 ldrb r0, [r0, #3] cmp r8, r0 beq _080A5EF0 movs r4, #0x7e b _080A5EF0 .align 2, 0 _080A5ED8: .4byte gUnk_02000080 _080A5EDC: movs r4, #0x80 b _080A5EF0 _080A5EE0: movs r4, #0x81 b _080A5EF0 _080A5EE4: bl sub_080A5F24 movs r4, #0x7f cmp r0, #0 bne _080A5EF0 _080A5EEE: movs r4, #0xff _080A5EF0: ldrb r0, [r5, #1] adds r0, #0x50 ldrh r1, [r6, #0x16] subs r0, r0, r1 strh r0, [r7] ldrb r0, [r5, #2] adds r0, #0x10 ldrh r1, [r6, #0x18] subs r0, r0, r1 strh r0, [r7, #2] ldr r0, _080A5F20 @ =0x000001FB adds r1, r4, #0 bl sub_080ADA14 adds r5, #3 ldrb r0, [r5] cmp r0, #0 bne _080A5E88 _080A5F14: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _080A5F20: .4byte 0x000001FB thumb_func_start sub_080A5F24 sub_080A5F24: @ 0x080A5F24 push {r4, lr} movs r4, #1 ldr r0, _080A5F44 @ =gUnk_02033A90 ldrb r0, [r0, #3] cmp r0, #6 bne _080A5F40 movs r0, #0x8c lsls r0, r0, #4 movs r1, #0x7b bl sub_0807CB10 cmp r0, #0 beq _080A5F40 movs r4, #0 _080A5F40: adds r0, r4, #0 pop {r4, pc} .align 2, 0 _080A5F44: .4byte gUnk_02033A90 thumb_func_start sub_080A5F48 sub_080A5F48: @ 0x080A5F48 push {r4, r5, lr} adds r4, r0, #0 cmp r4, #0x1f bhi _080A5F5C cmp r4, #0x1c blo _080A5F5C ldr r0, _080A5F9C @ =gUnk_02002A40 adds r0, r0, r4 adds r0, #0x9a ldrb r4, [r0] _080A5F5C: lsls r0, r1, #5 ldr r1, _080A5FA0 @ =0x06010000 adds r5, r0, r1 ldr r1, _080A5FA4 @ =gUnk_080FDFD8 lsls r0, r4, #2 adds r0, r0, r1 ldr r0, [r0] ldrb r1, [r0] ldr r3, _080A5FA8 @ =gUnk_08003DD4 lsls r1, r1, #2 ldr r0, [r3, #4] adds r0, r0, r1 ldr r2, _080A5FAC @ =0x040000D4 ldrh r1, [r0, #2] lsls r1, r1, #5 ldr r0, [r3, #8] adds r0, r0, r1 str r0, [r2] str r5, [r2, #4] ldr r0, _080A5FB0 @ =0x84000040 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #1 rsbs r0, r0, #0 cmp r4, #7 blo _080A5FBE cmp r4, #8 bhi _080A5FB4 ldr r0, _080A5F9C @ =gUnk_02002A40 adds r0, #0xac b _080A5FBC .align 2, 0 _080A5F9C: .4byte gUnk_02002A40 _080A5FA0: .4byte 0x06010000 _080A5FA4: .4byte gUnk_080FDFD8 _080A5FA8: .4byte gUnk_08003DD4 _080A5FAC: .4byte 0x040000D4 _080A5FB0: .4byte 0x84000040 _080A5FB4: cmp r4, #0xa bhi _080A5FBE ldr r0, _080A5FF8 @ =gUnk_02002A40 adds r0, #0xad _080A5FBC: ldrb r0, [r0] _080A5FBE: cmp r0, #0 blt _080A5FF6 movs r1, #0xa bl Div adds r4, r1, #0 cmp r0, #9 ble _080A5FD0 movs r0, #9 _080A5FD0: ldr r1, _080A5FFC @ =0x040000D4 lsls r0, r0, #5 ldr r2, _080A6000 @ =gUnk_085C4620 adds r0, r0, r2 str r0, [r1] str r5, [r1, #4] ldr r3, _080A6004 @ =0x84000008 str r3, [r1, #8] ldr r0, [r1, #8] adds r0, r4, #0 adds r0, #0xa lsls r0, r0, #5 adds r0, r0, r2 str r0, [r1] adds r0, r5, #0 adds r0, #0x20 str r0, [r1, #4] str r3, [r1, #8] ldr r0, [r1, #8] _080A5FF6: pop {r4, r5, pc} .align 2, 0 _080A5FF8: .4byte gUnk_02002A40 _080A5FFC: .4byte 0x040000D4 _080A6000: .4byte gUnk_085C4620 _080A6004: .4byte 0x84000008 thumb_func_start sub_080A6008 sub_080A6008: @ 0x080A6008 push {lr} ldr r1, _080A601C @ =gUnk_08128D58 ldr r0, _080A6020 @ =gUnk_02000080 ldrb r0, [r0, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _080A601C: .4byte gUnk_08128D58 _080A6020: .4byte gUnk_02000080 thumb_func_start sub_080A6024 sub_080A6024: @ 0x080A6024 push {lr} ldr r0, _080A6040 @ =gUnk_08128D60 bl sub_080A70AC movs r0, #0 bl sub_0801E738 bl sub_080A4398 movs r0, #1 bl sub_080A7114 pop {pc} .align 2, 0 _080A6040: .4byte gUnk_08128D60 thumb_func_start sub_080A6044 sub_080A6044: @ 0x080A6044 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} bl sub_080A51F4 cmp r0, #0 beq _080A60C2 ldr r0, _080A60CC @ =gUnk_02000080 ldr r1, _080A60D0 @ =gUnk_08128D51 str r1, [r0, #0xc] ldr r1, _080A60D4 @ =gUnk_03001010 movs r0, #0 strh r0, [r1, #4] strh r0, [r1, #6] movs r5, #0 movs r4, #0 ldr r0, _080A60D8 @ =gUnk_02002A40 movs r2, #0x8c lsls r2, r2, #1 adds r3, r0, r2 ldrb r2, [r3] cmp r2, #0 beq _080A60C2 adds r6, r1, #0 movs r1, #0 mov sb, r1 adds r7, r0, #0 mov r8, r3 _080A607E: movs r1, #3 ands r1, r5 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #4 adds r0, #0x2b strh r0, [r6] lsrs r1, r5, #2 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 adds r0, #0x34 strh r0, [r6, #2] ldr r3, _080A60DC @ =0x0000012B adds r0, r7, r3 adds r0, r4, r0 ldrb r1, [r0] ldr r0, _080A60CC @ =gUnk_02000080 mov r3, sb strb r3, [r0, #1] adds r0, r2, #0 bl sub_080A42E0 adds r5, #1 cmp r5, #0xa bhi _080A60C2 adds r4, #1 cmp r4, #0x11 bhi _080A60C2 mov r1, r8 adds r0, r4, r1 ldrb r2, [r0] cmp r2, #0 bne _080A607E _080A60C2: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _080A60CC: .4byte gUnk_02000080 _080A60D0: .4byte gUnk_08128D51 _080A60D4: .4byte gUnk_03001010 _080A60D8: .4byte gUnk_02002A40 _080A60DC: .4byte 0x0000012B thumb_func_start sub_080A60E0 sub_080A60E0: @ 0x080A60E0 push {r4, lr} ldr r1, _080A6100 @ =gUnk_08128DB0 ldr r4, _080A6104 @ =gUnk_02000080 ldrb r0, [r4, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 bl sub_080A617C ldrb r0, [r4, #3] bl sub_080A7040 pop {r4, pc} .align 2, 0 _080A6100: .4byte gUnk_08128DB0 _080A6104: .4byte gUnk_02000080 thumb_func_start sub_080A6108 sub_080A6108: @ 0x080A6108 push {lr} ldr r0, _080A6120 @ =gUnk_02000080 ldr r1, _080A6124 @ =gUnk_08128DB8 str r1, [r0, #0xc] ldr r0, _080A6128 @ =gUnk_08128DBC bl sub_080A70AC movs r0, #1 bl sub_080A7114 pop {pc} .align 2, 0 _080A6120: .4byte gUnk_02000080 _080A6124: .4byte gUnk_08128DB8 _080A6128: .4byte gUnk_08128DBC thumb_func_start sub_080A612C sub_080A612C: @ 0x080A612C push {lr} bl sub_080A51F4 cmp r0, #0 beq _080A6178 ldr r1, _080A614C @ =gUnk_02000080 ldrb r2, [r1, #3] ldr r0, _080A6150 @ =gUnk_03000FF0 ldrh r0, [r0, #2] cmp r0, #0x10 beq _080A6154 cmp r0, #0x20 bne _080A6156 subs r2, #1 b _080A6156 .align 2, 0 _080A614C: .4byte gUnk_02000080 _080A6150: .4byte gUnk_03000FF0 _080A6154: adds r2, #1 _080A6156: adds r3, r2, #0 adds r3, #8 adds r0, r3, #0 cmp r3, #0 bge _080A6164 adds r0, r2, #0 adds r0, #0xf _080A6164: asrs r2, r0, #3 lsls r0, r2, #3 subs r2, r3, r0 ldrb r0, [r1, #3] cmp r0, r2 beq _080A6178 strb r2, [r1, #3] movs r0, #0x69 bl sub_080A3268 _080A6178: pop {pc} .align 2, 0 thumb_func_start sub_080A617C sub_080A617C: @ 0x080A617C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r6, _080A6260 @ =gUnk_03001010 movs r0, #0 strh r0, [r6, #4] strh r0, [r6, #6] movs r7, #0xc0 lsls r7, r7, #4 strh r7, [r6, #8] movs r0, #0x2f mov r8, r0 mov r2, r8 strh r2, [r6, #2] ldr r4, _080A6264 @ =gUnk_02000080 ldrb r1, [r4, #3] lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #2 subs r0, r0, r1 adds r0, #0x1a strh r0, [r6] ldr r0, _080A6268 @ =gUnk_03001000 ldrh r1, [r0, #0xc] movs r0, #0x20 ands r0, r1 movs r1, #9 cmp r0, #0 beq _080A61B8 movs r1, #8 _080A61B8: movs r5, #0xfe lsls r5, r5, #1 adds r0, r5, #0 bl sub_080ADA14 ldrb r0, [r4, #3] lsls r0, r0, #3 ldr r1, _080A626C @ =gUnk_08128D70 adds r4, r0, r1 ldrb r0, [r4] bl sub_0807CA84 cmp r0, #0 beq _080A621C strh r7, [r6, #8] movs r0, #0xcc strh r0, [r6] movs r0, #0x88 strh r0, [r6, #2] adds r0, r5, #0 movs r1, #0xb bl sub_080ADA14 movs r0, #0x30 strh r0, [r6] movs r0, #0x6c strh r0, [r6, #2] ldrb r0, [r4, #1] lsls r0, r0, #0xc movs r2, #0xd8 lsls r2, r2, #4 adds r1, r2, #0 orrs r0, r1 strh r0, [r6, #8] ldrb r1, [r4, #2] adds r0, r5, #0 bl sub_080ADA14 ldrb r0, [r4, #1] lsls r0, r0, #0xc orrs r0, r7 strh r0, [r6, #8] movs r0, #0x78 strh r0, [r6] movs r0, #0x68 strh r0, [r6, #2] adds r0, r5, #0 movs r1, #0xc bl sub_080ADA14 _080A621C: mov r0, r8 strh r0, [r6, #2] movs r5, #0 adds r7, r6, #0 movs r6, #0x18 _080A6226: lsls r1, r5, #3 ldr r0, _080A626C @ =gUnk_08128D70 adds r4, r1, r0 ldrb r0, [r4] bl sub_0807CA84 cmp r0, #0 beq _080A6250 ldrb r0, [r4, #1] lsls r0, r0, #0xc movs r2, #0xc0 lsls r2, r2, #4 adds r1, r2, #0 orrs r0, r1 strh r0, [r7, #8] strh r6, [r7] movs r0, #0xfe lsls r0, r0, #1 movs r1, #0xa bl sub_080ADA14 _080A6250: adds r6, #0x1b adds r5, #1 cmp r5, #7 bls _080A6226 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _080A6260: .4byte gUnk_03001010 _080A6264: .4byte gUnk_02000080 _080A6268: .4byte gUnk_03001000 _080A626C: .4byte gUnk_08128D70 thumb_func_start sub_080A6270 sub_080A6270: @ 0x080A6270 push {lr} ldr r1, _080A6288 @ =gUnk_08128DCC ldr r0, _080A628C @ =gUnk_02000080 ldrb r0, [r0, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 bl sub_080A6378 pop {pc} .align 2, 0 _080A6288: .4byte gUnk_08128DCC _080A628C: .4byte gUnk_02000080 thumb_func_start sub_080A6290 sub_080A6290: @ 0x080A6290 push {r4, lr} ldr r0, _080A62C4 @ =gUnk_08128DD8 bl sub_080A70AC ldr r4, _080A62C8 @ =gUnk_02000080 ldr r0, _080A62CC @ =gUnk_08128DD4 str r0, [r4, #0xc] movs r0, #0x81 bl sub_0801D7EC ldr r1, _080A62D0 @ =gUnk_03000F50 ldr r0, _080A62D4 @ =0x0000FFFC strh r0, [r1, #0x18] strh r0, [r1, #0x24] ldr r2, _080A62D8 @ =gUnk_02002A40 ldr r0, [r2, #0x40] ldr r1, _080A62DC @ =0x00010780 orrs r0, r1 str r0, [r2, #0x40] bl sub_080A6F40 strh r0, [r4, #0x10] movs r0, #1 strb r0, [r4, #5] pop {r4, pc} .align 2, 0 _080A62C4: .4byte gUnk_08128DD8 _080A62C8: .4byte gUnk_02000080 _080A62CC: .4byte gUnk_08128DD4 _080A62D0: .4byte gUnk_03000F50 _080A62D4: .4byte 0x0000FFFC _080A62D8: .4byte gUnk_02002A40 _080A62DC: .4byte 0x00010780 thumb_func_start sub_080A62E0 sub_080A62E0: @ 0x080A62E0 push {r4, lr} bl sub_080A51F4 cmp r0, #0 beq _080A6372 ldr r0, _080A6310 @ =gUnk_02000080 ldrb r3, [r0, #3] lsls r1, r3, #3 ldr r0, _080A6314 @ =gUnk_08128DE8 adds r1, r1, r0 movs r4, #1 rsbs r4, r4, #0 ldr r0, _080A6318 @ =gUnk_03000FF0 ldrh r2, [r0, #2] cmp r2, #0x20 beq _080A634E cmp r2, #0x20 bgt _080A631C cmp r2, #1 beq _080A6326 cmp r2, #0x10 beq _080A6354 b _080A635A .align 2, 0 _080A6310: .4byte gUnk_02000080 _080A6314: .4byte gUnk_08128DE8 _080A6318: .4byte gUnk_03000FF0 _080A631C: cmp r2, #0x40 beq _080A6344 cmp r2, #0x80 beq _080A634A b _080A635A _080A6326: ldr r0, _080A6340 @ =gUnk_02002A40 lsls r2, r3 ldr r0, [r0, #0x40] ands r0, r2 cmp r0, #0 beq _080A635A movs r0, #0x6a bl sub_080A3268 movs r0, #6 bl sub_080A4E84 b _080A635A .align 2, 0 _080A6340: .4byte gUnk_02002A40 _080A6344: ldrb r0, [r1] lsls r0, r0, #0x1b b _080A6358 _080A634A: ldrh r0, [r1] b _080A6356 _080A634E: ldrb r0, [r1, #2] lsls r0, r0, #0x1b b _080A6358 _080A6354: ldrh r0, [r1, #2] _080A6356: lsls r0, r0, #0x16 _080A6358: lsrs r4, r0, #0x1b _080A635A: cmp r4, #0 blt _080A6368 ldr r0, _080A6374 @ =gUnk_02000080 strb r4, [r0, #3] movs r0, #0x69 bl sub_080A3268 _080A6368: ldr r0, _080A6374 @ =gUnk_02000080 ldrb r0, [r0, #3] movs r1, #0 bl sub_080A6FB4 _080A6372: pop {r4, pc} .align 2, 0 _080A6374: .4byte gUnk_02000080 thumb_func_start sub_080A6378 sub_080A6378: @ 0x080A6378 push {r4, r5, r6, lr} ldr r0, _080A6420 @ =gUnk_02000080 adds r4, r0, #0 adds r4, #0x2c ldrb r0, [r4] adds r0, #1 strb r0, [r4] movs r6, #0x20 ands r0, r6 cmp r0, #0 beq _080A6392 bl sub_080A6438 _080A6392: ldr r5, _080A6424 @ =gUnk_03001010 movs r0, #0x80 lsls r0, r0, #3 strh r0, [r5, #4] movs r0, #0 strh r0, [r5, #6] movs r0, #0xe0 lsls r0, r0, #7 strh r0, [r5, #8] ldrb r1, [r4] adds r0, r6, #0 ands r0, r1 cmp r0, #0 bne _080A63EA ldr r4, _080A6428 @ =gUnk_030010A0 ldrh r1, [r4, #0x20] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #5 movs r1, #0xf9 lsls r1, r1, #4 bl __divsi3 adds r0, #0x28 strh r0, [r5] ldrh r0, [r4, #0x22] lsls r0, r0, #7 movs r1, #0xc6 lsls r1, r1, #4 bl __divsi3 adds r0, #0xc strh r0, [r5, #2] ldr r0, _080A642C @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #8 ands r0, r1 movs r1, #0x59 cmp r0, #0 beq _080A63E4 movs r1, #0x5a _080A63E4: ldr r0, _080A6430 @ =0x000001FB bl sub_080ADA14 _080A63EA: ldr r3, _080A6420 @ =gUnk_02000080 ldrb r0, [r3, #3] lsls r0, r0, #3 ldr r1, _080A6434 @ =gUnk_08128DE8 adds r0, r0, r1 ldr r2, _080A6424 @ =gUnk_03001010 ldrb r1, [r0, #6] strh r1, [r2] ldrb r0, [r0, #7] strh r0, [r2, #2] ldrb r0, [r3, #3] lsls r2, r0, #1 adds r2, r2, r0 adds r2, #0x26 adds r3, #0x2c ldrb r1, [r3] lsrs r1, r1, #4 movs r0, #1 bics r0, r1 adds r1, r2, r0 ldr r0, _080A6430 @ =0x000001FB bl sub_080ADA14 bl sub_080A6498 pop {r4, r5, r6, pc} .align 2, 0 _080A6420: .4byte gUnk_02000080 _080A6424: .4byte gUnk_03001010 _080A6428: .4byte gUnk_030010A0 _080A642C: .4byte gUnk_03003F80 _080A6430: .4byte 0x000001FB _080A6434: .4byte gUnk_08128DE8 thumb_func_start sub_080A6438 sub_080A6438: @ 0x080A6438 push {r4, r5, r6, r7, lr} ldr r2, _080A6484 @ =gUnk_03001010 movs r1, #0 movs r0, #0x80 lsls r0, r0, #3 strh r0, [r2, #4] strh r1, [r2, #6] strh r1, [r2, #8] ldr r0, _080A6488 @ =gUnk_02002A40 ldr r1, _080A648C @ =gUnk_02000080 ldrh r0, [r0, #0x20] ldrh r5, [r1, #0x10] ands r5, r0 ldr r4, _080A6490 @ =gUnk_08128F58 movs r6, #0 ldrb r0, [r4] cmp r0, #0 beq _080A6482 adds r7, r2, #0 _080A645E: movs r0, #1 lsls r0, r6 ands r0, r5 cmp r0, #0 beq _080A6478 ldrb r0, [r4, #1] strh r0, [r7] ldrb r0, [r4, #2] strh r0, [r7, #2] ldrb r1, [r4] ldr r0, _080A6494 @ =0x000001FB bl sub_080ADA14 _080A6478: adds r6, #1 adds r4, #8 ldrb r0, [r4] cmp r0, #0 bne _080A645E _080A6482: pop {r4, r5, r6, r7, pc} .align 2, 0 _080A6484: .4byte gUnk_03001010 _080A6488: .4byte gUnk_02002A40 _080A648C: .4byte gUnk_02000080 _080A6490: .4byte gUnk_08128F58 _080A6494: .4byte 0x000001FB thumb_func_start sub_080A6498 sub_080A6498: @ 0x080A6498 push {r4, r5, r6, r7, lr} ldr r0, _080A64E4 @ =gUnk_03001010 movs r2, #0 movs r1, #0x80 lsls r1, r1, #4 strh r1, [r0, #4] strh r2, [r0, #6] strh r2, [r0, #8] movs r4, #0 ldr r7, _080A64E8 @ =gUnk_02002A40 adds r6, r0, #0 movs r5, #0x28 _080A64B0: movs r1, #1 lsls r1, r4 ldr r0, [r7, #0x40] ands r0, r1 cmp r0, #0 bne _080A64D2 lsls r1, r4, #3 ldr r0, _080A64EC @ =gUnk_08128DE8 adds r1, r1, r0 ldrb r0, [r1, #6] strh r0, [r6] ldrb r0, [r1, #7] strh r0, [r6, #2] ldr r0, _080A64F0 @ =0x000001FB adds r1, r5, #0 bl sub_080ADA14 _080A64D2: adds r5, #3 adds r4, #1 cmp r4, #0x10 bls _080A64B0 ldr r0, _080A64F4 @ =gUnk_03000F50 adds r0, #0x62 ldr r1, _080A64F8 @ =0x00003D3F strh r1, [r0] pop {r4, r5, r6, r7, pc} .align 2, 0 _080A64E4: .4byte gUnk_03001010 _080A64E8: .4byte gUnk_02002A40 _080A64EC: .4byte gUnk_08128DE8 _080A64F0: .4byte 0x000001FB _080A64F4: .4byte gUnk_03000F50 _080A64F8: .4byte 0x00003D3F thumb_func_start sub_080A64FC sub_080A64FC: @ 0x080A64FC push {r4, lr} bl sub_080AD90C ldr r1, _080A652C @ =gUnk_08128E70 ldr r4, _080A6530 @ =gUnk_02000080 ldrb r0, [r4, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 adds r4, #0x2c ldrb r1, [r4] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _080A6522 bl sub_080A6438 _080A6522: bl sub_080A6498 bl sub_080AD918 pop {r4, pc} .align 2, 0 _080A652C: .4byte gUnk_08128E70 _080A6530: .4byte gUnk_02000080 thumb_func_start sub_080A6534 sub_080A6534: @ 0x080A6534 push {r4, lr} bl sub_080A4D34 movs r0, #4 bl sub_080A4DB8 bl sub_080A6290 ldr r2, _080A6590 @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _080A6594 @ =0x0000F7FF ands r0, r1 movs r4, #0 strh r0, [r2] ldr r0, _080A6598 @ =gUnk_020176A0 adds r0, #0xa2 ldrh r1, [r0] movs r0, #0 bl sub_0801D79C ldr r1, _080A659C @ =gUnk_08128F4C ldr r0, _080A65A0 @ =gUnk_02032EC0 ldrb r0, [r0, #3] lsls r0, r0, #1 adds r0, r0, r1 ldrh r2, [r0] ldr r3, _080A65A4 @ =gUnk_02002A40 ldrh r1, [r3, #0x20] adds r0, r2, #0 orrs r0, r1 strh r0, [r3, #0x20] ldr r1, _080A65A8 @ =gUnk_02000080 ldrh r0, [r1, #0x10] ands r2, r0 strh r2, [r1, #0x12] strh r4, [r1, #0x10] movs r0, #0x3c strh r0, [r1, #8] movs r0, #1 bl sub_080A7114 movs r0, #4 movs r1, #8 bl sub_08050054 pop {r4, pc} .align 2, 0 _080A6590: .4byte gUnk_03000F50 _080A6594: .4byte 0x0000F7FF _080A6598: .4byte gUnk_020176A0 _080A659C: .4byte gUnk_08128F4C _080A65A0: .4byte gUnk_02032EC0 _080A65A4: .4byte gUnk_02002A40 _080A65A8: .4byte gUnk_02000080 thumb_func_start sub_080A65AC sub_080A65AC: @ 0x080A65AC push {r4, lr} ldr r0, _080A65E4 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080A6600 ldr r4, _080A65E8 @ =gUnk_02000080 adds r1, r4, #0 adds r1, #0x2c ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldrh r0, [r4, #8] cmp r0, #0 beq _080A65EC cmp r0, #0x1e bne _080A65DA ldrh r0, [r4, #0x12] strh r0, [r4, #0x10] movs r0, #0x20 strb r0, [r1] adds r0, #0xe3 bl sub_080A3268 _080A65DA: ldrh r0, [r4, #8] subs r0, #1 strh r0, [r4, #8] b _080A6600 .align 2, 0 _080A65E4: .4byte gUnk_03000FD0 _080A65E8: .4byte gUnk_02000080 _080A65EC: ldr r0, _080A6604 @ =gUnk_03000FF0 ldrh r0, [r0, #2] cmp r0, #1 blt _080A6600 cmp r0, #2 ble _080A65FC cmp r0, #8 bne _080A6600 _080A65FC: bl sub_080A71DC _080A6600: pop {r4, pc} .align 2, 0 _080A6604: .4byte gUnk_03000FF0 thumb_func_start sub_080A6608 sub_080A6608: @ 0x080A6608 push {r4, lr} ldr r1, _080A6640 @ =gUnk_08128E78 ldr r4, _080A6644 @ =gUnk_02000080 ldrb r0, [r4, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 ldrb r1, [r4, #3] lsls r1, r1, #3 ldr r0, _080A6648 @ =gUnk_08128E94 adds r1, r1, r0 ldr r2, _080A664C @ =gUnk_03000F50 movs r0, #5 ldrsb r0, [r1, r0] rsbs r0, r0, #0 strh r0, [r2, #0x18] ldrb r1, [r1, #6] lsls r1, r1, #0x18 asrs r1, r1, #0x18 ldrh r0, [r4, #0xa] subs r0, r0, r1 strh r0, [r2, #0x24] bl sub_080A66D0 pop {r4, pc} .align 2, 0 _080A6640: .4byte gUnk_08128E78 _080A6644: .4byte gUnk_02000080 _080A6648: .4byte gUnk_08128E94 _080A664C: .4byte gUnk_03000F50 thumb_func_start sub_080A6650 sub_080A6650: @ 0x080A6650 push {lr} ldr r0, _080A6670 @ =gUnk_08128E84 bl sub_080A70AC ldr r0, _080A6674 @ =gUnk_02034490 ldrb r0, [r0, #6] ldr r1, _080A6678 @ =gUnk_02000080 strb r0, [r1, #3] bl sub_080A67C4 bl sub_080A68D4 movs r0, #1 bl sub_080A7114 pop {pc} .align 2, 0 _080A6670: .4byte gUnk_08128E84 _080A6674: .4byte gUnk_02034490 _080A6678: .4byte gUnk_02000080 thumb_func_start sub_080A667C sub_080A667C: @ 0x080A667C push {lr} ldr r2, _080A669C @ =gUnk_02000080 ldr r0, _080A66A0 @ =gUnk_08128E80 str r0, [r2, #0xc] ldrb r0, [r2, #3] lsls r0, r0, #3 ldr r1, _080A66A4 @ =gUnk_08128E94 adds r3, r0, r1 ldrh r1, [r2, #0xa] ldr r0, _080A66A8 @ =gUnk_03000FF0 ldrh r0, [r0] cmp r0, #0x40 beq _080A66AC cmp r0, #0x80 beq _080A66B4 b _080A66C2 .align 2, 0 _080A669C: .4byte gUnk_02000080 _080A66A0: .4byte gUnk_08128E80 _080A66A4: .4byte gUnk_08128E94 _080A66A8: .4byte gUnk_03000FF0 _080A66AC: cmp r1, #0 beq _080A66C2 subs r1, #2 b _080A66C2 _080A66B4: ldrb r0, [r3, #2] cmp r0, r1 bls _080A66BC adds r1, #2 _080A66BC: cmp r0, r1 bhs _080A66C2 adds r1, r0, #0 _080A66C2: strh r1, [r2, #0xa] ldrb r0, [r2, #3] movs r1, #0 bl sub_080A6FB4 pop {pc} .align 2, 0 thumb_func_start sub_080A66D0 sub_080A66D0: @ 0x080A66D0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r6, _080A677C @ =gUnk_03001010 movs r0, #0 strh r0, [r6, #4] strh r0, [r6, #6] movs r0, #0x78 strh r0, [r6] ldr r4, _080A6780 @ =gUnk_02000080 ldrb r0, [r4, #3] lsls r0, r0, #3 ldr r1, _080A6784 @ =gUnk_08128E94 adds r5, r0, r1 adds r1, r4, #0 adds r1, #0x2c ldrb r0, [r1] adds r2, r0, #1 strb r2, [r1] adds r0, r4, #0 adds r0, #0x2b ldrb r0, [r0] cmp r0, #1 beq _080A6738 movs r0, #0x10 ands r2, r0 cmp r2, #0 beq _080A6738 movs r0, #0x80 lsls r0, r0, #4 strh r0, [r6, #8] ldrh r0, [r4, #0xa] cmp r0, #0 beq _080A6724 movs r0, #0xc strh r0, [r6, #2] ldr r0, _080A6788 @ =0x000001FB movs r1, #0x71 bl sub_080ADA14 _080A6724: ldrb r0, [r5, #2] ldrh r4, [r4, #0xa] cmp r0, r4 bls _080A6738 movs r0, #0x84 strh r0, [r6, #2] ldr r0, _080A6788 @ =0x000001FB movs r1, #0x72 bl sub_080ADA14 _080A6738: ldrb r0, [r5, #7] mov sl, r0 ldrb r5, [r5, #3] mov sb, r5 ldr r1, _080A6780 @ =gUnk_02000080 ldrh r0, [r1, #0xa] mov r8, r0 ldr r2, _080A677C @ =gUnk_03001010 movs r0, #0 strh r0, [r2, #4] strh r0, [r2, #6] movs r0, #0xc0 lsls r0, r0, #4 strh r0, [r2, #8] adds r1, #0x2c ldrb r1, [r1] movs r0, #0x20 ands r0, r1 lsls r0, r0, #0x18 lsrs r6, r0, #0x18 ldr r4, _080A678C @ =gUnk_02019EE0 ldrh r0, [r4, #2] cmp r0, #0 beq _080A67BA rsbs r5, r6, #0 orrs r5, r6 adds r7, r2, #0 _080A676E: movs r1, #0 ldrb r0, [r4] cmp r0, #1 bne _080A6790 lsrs r1, r5, #0x1f b _080A6796 .align 2, 0 _080A677C: .4byte gUnk_03001010 _080A6780: .4byte gUnk_02000080 _080A6784: .4byte gUnk_08128E94 _080A6788: .4byte 0x000001FB _080A678C: .4byte gUnk_02019EE0 _080A6790: cmp r6, #0 bne _080A6796 movs r1, #1 _080A6796: cmp r1, #0 beq _080A67B2 ldrh r0, [r4, #4] add r0, sl strh r0, [r7] ldrh r0, [r4, #6] add r0, sb mov r1, r8 subs r0, r0, r1 strh r0, [r7, #2] ldrh r0, [r4, #2] ldrb r1, [r4, #1] bl sub_080ADA14 _080A67B2: adds r4, #8 ldrh r0, [r4, #2] cmp r0, #0 bne _080A676E _080A67BA: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} thumb_func_start sub_080A67C4 sub_080A67C4: @ 0x080A67C4 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r0, #0xba bl sub_0801D714 adds r5, r4, #0 adds r5, #0x5f cmp r4, #0xb beq _080A67F4 cmp r4, #0xb bhi _080A67E0 cmp r4, #9 beq _080A67E6 b _080A6822 _080A67E0: cmp r4, #0xe beq _080A6802 b _080A6822 _080A67E6: movs r0, #0x18 bl sub_0807CC30 cmp r0, #0 beq _080A6822 movs r5, #0x70 b _080A6822 _080A67F4: movs r0, #0xe bl sub_0801E7F4 cmp r0, #0 beq _080A6822 movs r5, #0x71 b _080A6822 _080A6802: ldr r1, _080A68AC @ =gUnk_02032EC0 adds r0, r1, #0 adds r0, #0x20 ldrb r0, [r0] cmp r0, #8 bne _080A6822 adds r0, r1, #0 adds r0, #0x21 ldrb r0, [r0] movs r1, #3 bl __modsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 adds r5, r0, #0 adds r5, #0x72 _080A6822: adds r0, r5, #0 bl sub_0801D7EC lsls r1, r4, #3 ldr r0, _080A68B0 @ =gUnk_08128E94 adds r4, r1, r0 ldr r0, _080A68B4 @ =gUnk_03003DE4 ldrb r1, [r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 ldr r1, _080A68B8 @ =gUnk_02017AA0 adds r1, r0, r1 ldr r2, _080A68BC @ =0x00001E0A adds r0, r2, #0 movs r2, #7 _080A6842: strh r0, [r1] adds r1, #2 subs r2, #1 cmp r2, #0 bge _080A6842 movs r2, #8 movs r0, #5 ldrsb r0, [r4, r0] ldrb r3, [r4, #4] adds r0, r0, r3 ldr r5, _080A68B4 @ =gUnk_03003DE4 ldr r6, _080A68B8 @ =gUnk_02017AA0 cmp r2, r0 bge _080A6874 ldr r7, _080A68C0 @ =0x00001E0B adds r3, r7, #0 _080A6862: strh r3, [r1] adds r1, #2 adds r2, #1 movs r0, #5 ldrsb r0, [r4, r0] ldrb r7, [r4, #4] adds r0, r0, r7 cmp r2, r0 blt _080A6862 _080A6874: cmp r2, #0x9f bgt _080A6886 ldr r3, _080A68BC @ =0x00001E0A adds r0, r3, #0 _080A687C: strh r0, [r1] adds r1, #2 adds r2, #1 cmp r2, #0x9f ble _080A687C _080A6886: ldrb r1, [r5] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 adds r0, r0, r6 ldr r1, _080A68C4 @ =0x0400000E ldr r2, _080A68C8 @ =0xA2600001 bl sub_0805622C ldr r1, _080A68CC @ =gUnk_02000080 ldrb r0, [r4, #2] lsrs r0, r0, #1 strh r0, [r1, #0xa] ldr r0, _080A68D0 @ =gUnk_02019EE0 movs r1, #0x80 lsls r1, r1, #3 bl sub_0801D630 pop {r4, r5, r6, r7, pc} .align 2, 0 _080A68AC: .4byte gUnk_02032EC0 _080A68B0: .4byte gUnk_08128E94 _080A68B4: .4byte gUnk_03003DE4 _080A68B8: .4byte gUnk_02017AA0 _080A68BC: .4byte 0x00001E0A _080A68C0: .4byte 0x00001E0B _080A68C4: .4byte 0x0400000E _080A68C8: .4byte 0xA2600001 _080A68CC: .4byte gUnk_02000080 _080A68D0: .4byte gUnk_02019EE0 thumb_func_start sub_080A68D4 sub_080A68D4: @ 0x080A68D4 push {r4, r5, r6, lr} ldr r0, _080A690C @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #8 ands r0, r1 movs r4, #0x64 cmp r0, #0 beq _080A68E6 movs r4, #0x65 _080A68E6: ldr r1, _080A6910 @ =gUnk_030010A0 ldrh r0, [r1, #0x20] ldrh r1, [r1, #0x22] ldr r2, _080A6914 @ =0x000001FB movs r3, #0x80 lsls r3, r3, #1 adds r3, r4, r3 bl sub_080A698C bl sub_080A6F40 adds r6, r0, #0 ldr r0, _080A6918 @ =gUnk_02002A40 ldrh r0, [r0, #0x20] ands r6, r0 ldr r4, _080A691C @ =gUnk_08128F58 movs r5, #0 b _080A693A .align 2, 0 _080A690C: .4byte gUnk_03003F80 _080A6910: .4byte gUnk_030010A0 _080A6914: .4byte 0x000001FB _080A6918: .4byte gUnk_02002A40 _080A691C: .4byte gUnk_08128F58 _080A6920: movs r0, #1 lsls r0, r5 ands r0, r6 cmp r0, #0 beq _080A6936 ldrh r0, [r4, #4] ldrh r1, [r4, #6] ldrb r3, [r4, #3] ldr r2, _080A6980 @ =0x000001FB bl sub_080A698C _080A6936: adds r5, #1 adds r4, #8 _080A693A: ldrb r0, [r4] cmp r0, #0 bne _080A6920 movs r5, #0xa _080A6942: adds r0, r5, #0 bl sub_0801E7F4 cmp r0, #0 beq _080A6976 adds r0, r5, #0 bl sub_0801E810 cmp r0, #0 bne _080A6976 ldr r1, _080A6984 @ =gUnk_080C9CBC lsls r0, r5, #3 adds r0, r0, r1 ldrb r3, [r0, #7] ldrb r0, [r0, #4] lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #2 ldr r0, _080A6988 @ =gUnk_080FE320 adds r1, r1, r0 ldrh r0, [r1, #0xc] ldrh r1, [r1, #0xe] adds r3, #0x64 ldr r2, _080A6980 @ =0x000001FB bl sub_080A698C _080A6976: adds r5, #1 cmp r5, #0x64 bls _080A6942 pop {r4, r5, r6, pc} .align 2, 0 _080A6980: .4byte 0x000001FB _080A6984: .4byte gUnk_080C9CBC _080A6988: .4byte gUnk_080FE320 thumb_func_start sub_080A698C sub_080A698C: @ 0x080A698C push {r4, r5, r6, lr} adds r6, r2, #0 adds r5, r3, #0 bl sub_080A69E0 adds r4, r0, #0 cmp r4, #0 ble _080A69D4 ldr r2, _080A69D8 @ =gUnk_02000080 adds r2, #0x2d ldrb r0, [r2] lsls r0, r0, #3 ldr r3, _080A69DC @ =gUnk_02019EE0 adds r0, r0, r3 lsrs r1, r5, #8 strb r1, [r0] ldrb r0, [r2] lsls r0, r0, #3 adds r0, r0, r3 strb r5, [r0, #1] ldrb r0, [r2] lsls r0, r0, #3 adds r0, r0, r3 strh r6, [r0, #2] ldrb r0, [r2] lsls r0, r0, #3 adds r0, r0, r3 strh r4, [r0, #4] ldrb r0, [r2] lsls r0, r0, #3 adds r0, r0, r3 asrs r1, r4, #0x10 strh r1, [r0, #6] ldrb r0, [r2] adds r0, #1 strb r0, [r2] _080A69D4: pop {r4, r5, r6, pc} .align 2, 0 _080A69D8: .4byte gUnk_02000080 _080A69DC: .4byte gUnk_02019EE0 thumb_func_start sub_080A69E0 sub_080A69E0: @ 0x080A69E0 push {r4, r5, r6, r7, lr} sub sp, #4 adds r7, r0, #0 adds r6, r1, #0 orrs r0, r6 cmp r0, #0 beq _080A6A06 adds r0, r7, #0 adds r1, r6, #0 bl sub_080A6A80 adds r3, r0, #0 cmp r3, #0 beq _080A6A06 ldr r0, _080A6A0C @ =gUnk_02000080 ldrb r1, [r0, #3] ldrb r2, [r3, #4] cmp r1, r2 beq _080A6A10 _080A6A06: movs r0, #1 rsbs r0, r0, #0 b _080A6A74 .align 2, 0 _080A6A0C: .4byte gUnk_02000080 _080A6A10: ldrb r1, [r0, #3] cmp r1, #7 beq _080A6A26 cmp r1, #7 bgt _080A6A20 cmp r1, #4 beq _080A6A26 b _080A6A48 _080A6A20: cmp r1, #0xf beq _080A6A44 b _080A6A48 _080A6A26: ldrb r0, [r0, #3] movs r2, #7 cmp r0, #4 bne _080A6A30 movs r2, #9 _080A6A30: ldr r1, _080A6A40 @ =gUnk_0811E214 lsls r0, r2, #2 adds r0, r0, r1 ldr r0, [r0] ldrh r0, [r0, #2] subs r6, r6, r0 b _080A6A48 .align 2, 0 _080A6A40: .4byte gUnk_0811E214 _080A6A44: ldr r0, _080A6A78 @ =0xFFFFFEF8 adds r7, r7, r0 _080A6A48: ldrb r0, [r3] lsls r0, r0, #4 subs r0, r7, r0 movs r4, #0x64 muls r0, r4, r0 ldr r5, _080A6A7C @ =0x0000023A adds r1, r5, #0 str r3, [sp] bl __divsi3 adds r7, r0, #0 ldr r3, [sp] ldrb r0, [r3, #1] lsls r0, r0, #4 subs r0, r6, r0 muls r0, r4, r0 adds r1, r5, #0 bl __divsi3 adds r6, r0, #0 lsls r0, r6, #0x10 orrs r0, r7 _080A6A74: add sp, #4 pop {r4, r5, r6, r7, pc} .align 2, 0 _080A6A78: .4byte 0xFFFFFEF8 _080A6A7C: .4byte 0x0000023A thumb_func_start sub_080A6A80 sub_080A6A80: @ 0x080A6A80 push {lr} adds r3, r0, #0 lsrs r3, r3, #4 lsrs r1, r1, #4 ldr r2, _080A6A8C @ =gUnk_08127F94 b _080A6AAE .align 2, 0 _080A6A8C: .4byte gUnk_08127F94 _080A6A90: ldrb r0, [r2] cmp r0, r3 bhi _080A6AAC ldrb r0, [r2, #2] cmp r0, r3 blo _080A6AAC ldrb r0, [r2, #1] cmp r0, r1 bhi _080A6AAC ldrb r0, [r2, #3] cmp r0, r1 blo _080A6AAC adds r0, r2, #0 b _080A6AB6 _080A6AAC: adds r2, #8 _080A6AAE: ldrb r0, [r2] cmp r0, #0xff bne _080A6A90 movs r0, #0 _080A6AB6: pop {pc} thumb_func_start sub_080A6AB8 sub_080A6AB8: @ 0x080A6AB8 push {r4, lr} bl sub_080AD90C ldr r1, _080A6AF4 @ =gUnk_08128F1C ldr r4, _080A6AF8 @ =gUnk_02000080 ldrb r0, [r4, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 ldrb r1, [r4, #3] lsls r1, r1, #3 ldr r0, _080A6AFC @ =gUnk_08128E94 adds r1, r1, r0 ldr r2, _080A6B00 @ =gUnk_03000F50 movs r0, #5 ldrsb r0, [r1, r0] rsbs r0, r0, #0 strh r0, [r2, #0x18] ldrb r1, [r1, #6] lsls r1, r1, #0x18 asrs r1, r1, #0x18 ldrh r0, [r4, #0xa] subs r0, r0, r1 strh r0, [r2, #0x24] bl sub_080AD918 pop {r4, pc} .align 2, 0 _080A6AF4: .4byte gUnk_08128F1C _080A6AF8: .4byte gUnk_02000080 _080A6AFC: .4byte gUnk_08128E94 _080A6B00: .4byte gUnk_03000F50 thumb_func_start sub_080A6B04 sub_080A6B04: @ 0x080A6B04 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} bl sub_080A4D34 movs r0, #6 bl sub_080A4DB8 ldr r0, _080A6BF0 @ =gUnk_02022740 ldrb r2, [r0, #3] lsls r2, r2, #3 ldr r0, _080A6BF4 @ =gUnk_080C9CBC adds r2, r2, r0 ldrb r1, [r2, #4] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, _080A6BF8 @ =gUnk_080FE320 adds r0, r0, r1 ldrb r2, [r2, #7] mov r8, r2 ldrh r6, [r0, #0xc] ldrh r5, [r0, #0xe] adds r0, r6, #0 adds r1, r5, #0 bl sub_080A6A80 ldrb r4, [r0, #4] ldr r7, _080A6BFC @ =gUnk_02000080 strb r4, [r7, #3] adds r1, r7, #0 adds r1, #0x2b movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_080A67C4 adds r0, r4, #0 movs r1, #2 bl sub_080A6FB4 ldr r4, _080A6C00 @ =0x0000475F movs r0, #0 adds r1, r4, #0 bl sub_0801D79C movs r0, #0x5f adds r1, r4, #0 bl sub_0801D79C ldr r0, _080A6C04 @ =0x00005001 ldr r1, _080A6C08 @ =gUnk_02001A40 movs r2, #0x80 lsls r2, r2, #5 bl sub_0801D5EC ldr r0, _080A6C0C @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #8 ands r0, r1 movs r2, #0x64 cmp r0, #0 beq _080A6B84 movs r2, #0x65 _080A6B84: ldr r1, _080A6C10 @ =gUnk_030010A0 ldrh r0, [r1, #0x20] ldrh r1, [r1, #0x22] ldr r4, _080A6C14 @ =0x000001FB movs r3, #0x80 lsls r3, r3, #1 adds r3, r2, r3 adds r2, r4, #0 bl sub_080A698C mov r3, r8 adds r3, #0x64 adds r0, r6, #0 adds r1, r5, #0 adds r2, r4, #0 bl sub_080A698C adds r0, r6, #0 adds r1, r5, #0 bl sub_080A69E0 asrs r5, r0, #0x10 ldrb r0, [r7, #3] lsls r0, r0, #3 ldr r1, _080A6C18 @ =gUnk_08128E94 adds r1, r0, r1 movs r0, #0 strh r0, [r7, #0xa] ldrb r0, [r1, #2] cmp r0, #0 beq _080A6BD4 adds r0, r5, #0 subs r0, #0x3c cmp r0, #0 ble _080A6BD4 ldrb r1, [r1, #2] cmp r1, r0 bge _080A6BD2 adds r0, r1, #0 _080A6BD2: strh r0, [r7, #0xa] _080A6BD4: ldr r1, _080A6BFC @ =gUnk_02000080 movs r0, #0x1e strh r0, [r1, #8] movs r0, #1 bl sub_080A7114 movs r0, #4 movs r1, #8 bl sub_08050054 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _080A6BF0: .4byte gUnk_02022740 _080A6BF4: .4byte gUnk_080C9CBC _080A6BF8: .4byte gUnk_080FE320 _080A6BFC: .4byte gUnk_02000080 _080A6C00: .4byte 0x0000475F _080A6C04: .4byte 0x00005001 _080A6C08: .4byte gUnk_02001A40 _080A6C0C: .4byte gUnk_03003F80 _080A6C10: .4byte gUnk_030010A0 _080A6C14: .4byte 0x000001FB _080A6C18: .4byte gUnk_08128E94 thumb_func_start sub_080A6C1C sub_080A6C1C: @ 0x080A6C1C push {lr} ldr r0, _080A6C34 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080A6C6A ldr r0, _080A6C38 @ =gUnk_02000080 ldrh r0, [r0, #8] cmp r0, #0 beq _080A6C3C cmp r0, #1 beq _080A6C5C b _080A6C62 .align 2, 0 _080A6C34: .4byte gUnk_03000FD0 _080A6C38: .4byte gUnk_02000080 _080A6C3C: bl sub_080A66D0 ldr r0, _080A6C58 @ =gUnk_03000FF0 ldrh r0, [r0, #2] cmp r0, #1 blt _080A6C6A cmp r0, #2 ble _080A6C50 cmp r0, #8 bne _080A6C6A _080A6C50: bl sub_080A71DC b _080A6C6A .align 2, 0 _080A6C58: .4byte gUnk_03000FF0 _080A6C5C: ldr r0, _080A6C6C @ =0x00000103 bl sub_080A3268 _080A6C62: ldr r1, _080A6C70 @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] _080A6C6A: pop {pc} .align 2, 0 _080A6C6C: .4byte 0x00000103 _080A6C70: .4byte gUnk_02000080 thumb_func_start sub_080A6C74 sub_080A6C74: @ 0x080A6C74 push {r4, lr} bl sub_080AD90C ldr r1, _080A6CA0 @ =gUnk_08128F24 ldr r4, _080A6CA4 @ =gUnk_02000080 ldrb r0, [r4, #5] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 ldrb r0, [r4] cmp r0, #0 beq _080A6C94 bl sub_080A6E70 _080A6C94: bl sub_080A6498 bl sub_080AD918 pop {r4, pc} .align 2, 0 _080A6CA0: .4byte gUnk_08128F24 _080A6CA4: .4byte gUnk_02000080 thumb_func_start sub_080A6CA8 sub_080A6CA8: @ 0x080A6CA8 push {lr} bl sub_080A4D34 movs r0, #0xd bl sub_080A4DB8 bl sub_080A6290 movs r0, #0 bl sub_080A6D74 ldr r1, _080A6CD4 @ =gUnk_02000080 strb r0, [r1, #3] movs r0, #1 bl sub_080A7114 movs r0, #4 movs r1, #8 bl sub_08050054 pop {pc} .align 2, 0 _080A6CD4: .4byte gUnk_02000080 thumb_func_start sub_080A6CD8 sub_080A6CD8: @ 0x080A6CD8 push {r4, lr} ldr r0, _080A6D08 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080A6D6E ldr r1, _080A6D0C @ =gUnk_02000080 movs r0, #1 strb r0, [r1] movs r4, #0 ldr r0, _080A6D10 @ =gUnk_03000FF0 ldrh r0, [r0, #2] adds r2, r1, #0 cmp r0, #0x10 beq _080A6D34 cmp r0, #0x10 bgt _080A6D1A cmp r0, #2 beq _080A6D4C cmp r0, #2 bgt _080A6D14 cmp r0, #1 beq _080A6D38 b _080A6D54 .align 2, 0 _080A6D08: .4byte gUnk_03000FD0 _080A6D0C: .4byte gUnk_02000080 _080A6D10: .4byte gUnk_03000FF0 _080A6D14: cmp r0, #8 beq _080A6D38 b _080A6D54 _080A6D1A: cmp r0, #0x40 beq _080A6D2E cmp r0, #0x40 bgt _080A6D28 cmp r0, #0x20 beq _080A6D2E b _080A6D54 _080A6D28: cmp r0, #0x80 beq _080A6D34 b _080A6D54 _080A6D2E: movs r4, #1 rsbs r4, r4, #0 b _080A6D58 _080A6D34: movs r4, #1 b _080A6D58 _080A6D38: movs r0, #2 strb r0, [r2] bl sub_080A7114 ldr r0, _080A6D48 @ =0x00000704 bl sub_08056378 b _080A6D54 .align 2, 0 _080A6D48: .4byte 0x00000704 _080A6D4C: movs r0, #3 strb r0, [r1] bl sub_080A7114 _080A6D54: cmp r4, #0 beq _080A6D6E _080A6D58: adds r0, r4, #0 bl sub_080A6D74 ldr r1, _080A6D70 @ =gUnk_02000080 ldrb r2, [r1, #3] cmp r0, r2 beq _080A6D6E strb r0, [r1, #3] movs r0, #0x69 bl sub_080A3268 _080A6D6E: pop {r4, pc} .align 2, 0 _080A6D70: .4byte gUnk_02000080 thumb_func_start sub_080A6D74 sub_080A6D74: @ 0x080A6D74 push {r4, r5, lr} adds r3, r0, #0 ldr r0, _080A6DA4 @ =gUnk_02002A40 ldr r0, [r0, #0x40] lsrs r2, r0, #0x18 ldr r0, _080A6DA8 @ =gUnk_02000080 ldrb r1, [r0, #3] cmp r3, #0 bne _080A6DAC movs r1, #0 movs r0, #1 ands r0, r2 cmp r0, #0 bne _080A6DC6 movs r3, #1 _080A6D92: adds r1, #1 cmp r1, #7 bhi _080A6DC6 adds r0, r3, #0 lsls r0, r1 ands r0, r2 cmp r0, #0 beq _080A6D92 b _080A6DC6 .align 2, 0 _080A6DA4: .4byte gUnk_02002A40 _080A6DA8: .4byte gUnk_02000080 _080A6DAC: cmp r2, #0 beq _080A6DC6 movs r4, #7 movs r5, #1 _080A6DB4: adds r0, r1, r3 adds r1, r0, #0 adds r1, #8 ands r1, r4 adds r0, r5, #0 lsls r0, r1 ands r0, r2 cmp r0, #0 beq _080A6DB4 _080A6DC6: movs r0, #7 ands r1, r0 adds r0, r1, #0 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080A6DD0 sub_080A6DD0: @ 0x080A6DD0 push {lr} bl sub_08056338 cmp r0, #0 beq _080A6DE0 cmp r0, #1 beq _080A6DF0 b _080A6DF6 _080A6DE0: ldr r1, _080A6DEC @ =gUnk_02000080 movs r0, #2 strb r0, [r1] movs r0, #3 b _080A6DF2 .align 2, 0 _080A6DEC: .4byte gUnk_02000080 _080A6DF0: movs r0, #1 _080A6DF2: bl sub_080A7114 _080A6DF6: pop {pc} thumb_func_start sub_080A6DF8 sub_080A6DF8: @ 0x080A6DF8 push {lr} ldr r0, _080A6E14 @ =gUnk_02000080 ldrb r0, [r0] cmp r0, #2 bne _080A6E18 movs r0, #4 bl sub_080A7114 movs r0, #5 movs r1, #8 bl sub_08050054 b _080A6E3A .align 2, 0 _080A6E14: .4byte gUnk_02000080 _080A6E18: bl sub_080791D0 ldr r0, _080A6E3C @ =gUnk_03001160 adds r1, r0, #0 adds r1, #0x58 ldrb r1, [r1] ldrh r2, [r0, #0x12] bl sub_080042D0 bl sub_080A71DC ldr r1, _080A6E40 @ =gUnk_02034490 movs r0, #0 strb r0, [r1] movs r0, #0x6c bl sub_080A3268 _080A6E3A: pop {pc} .align 2, 0 _080A6E3C: .4byte gUnk_03001160 _080A6E40: .4byte gUnk_02034490 thumb_func_start sub_080A6E44 sub_080A6E44: @ 0x080A6E44 push {lr} ldr r0, _080A6E64 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080A6E60 ldr r0, _080A6E68 @ =gUnk_02000080 ldrb r1, [r0, #3] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, _080A6E6C @ =gUnk_08128024 adds r0, r0, r1 bl sub_080A71F4 _080A6E60: pop {pc} .align 2, 0 _080A6E64: .4byte gUnk_03000FD0 _080A6E68: .4byte gUnk_02000080 _080A6E6C: .4byte gUnk_08128024 thumb_func_start sub_080A6E70 sub_080A6E70: @ 0x080A6E70 push {r4, r5, lr} ldr r1, _080A6ED0 @ =gUnk_03001010 movs r0, #0 strh r0, [r1, #4] strh r0, [r1, #6] movs r0, #0x80 lsls r0, r0, #3 strh r0, [r1, #8] ldr r1, _080A6ED4 @ =gUnk_02000080 adds r4, r1, #0 adds r4, #0x2c ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldrb r0, [r1, #3] bl sub_080A6EE0 ldrb r1, [r4] movs r0, #0x10 ands r0, r1 movs r1, #0x5e cmp r0, #0 beq _080A6EA0 movs r1, #0x5d _080A6EA0: ldr r0, _080A6ED8 @ =0x000001FB bl sub_080ADA14 movs r4, #0 ldr r5, _080A6EDC @ =gUnk_02002A40 _080A6EAA: adds r0, r4, #0 adds r0, #0x18 movs r1, #1 lsls r1, r0 ldr r0, [r5, #0x40] ands r0, r1 cmp r0, #0 beq _080A6EC8 adds r0, r4, #0 bl sub_080A6EE0 ldr r0, _080A6ED8 @ =0x000001FB movs r1, #0x5c bl sub_080ADA14 _080A6EC8: adds r4, #1 cmp r4, #7 bls _080A6EAA pop {r4, r5, pc} .align 2, 0 _080A6ED0: .4byte gUnk_03001010 _080A6ED4: .4byte gUnk_02000080 _080A6ED8: .4byte 0x000001FB _080A6EDC: .4byte gUnk_02002A40 thumb_func_start sub_080A6EE0 sub_080A6EE0: @ 0x080A6EE0 push {r4, r5, r6, lr} lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #2 ldr r0, _080A6F34 @ =gUnk_08128024 adds r1, r1, r0 ldrh r3, [r1, #6] ldrh r4, [r1, #8] ldr r0, _080A6F38 @ =gUnk_0811E214 ldrb r2, [r1, #0xb] lsls r2, r2, #2 adds r2, r2, r0 ldrb r1, [r1, #0xc] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 ldr r1, [r2] adds r1, r1, r0 ldrh r0, [r1] adds r3, r3, r0 ldrh r0, [r1, #2] adds r4, r4, r0 ldr r6, _080A6F3C @ =gUnk_03001010 lsls r0, r3, #2 adds r0, r0, r3 lsls r0, r0, #5 movs r5, #0xf9 lsls r5, r5, #4 adds r1, r5, #0 bl __divsi3 adds r0, #0x28 strh r0, [r6] lsls r0, r4, #2 adds r0, r0, r4 lsls r0, r0, #5 adds r1, r5, #0 bl __divsi3 adds r0, #0xc strh r0, [r6, #2] pop {r4, r5, r6, pc} .align 2, 0 _080A6F34: .4byte gUnk_08128024 _080A6F38: .4byte gUnk_0811E214 _080A6F3C: .4byte gUnk_03001010 thumb_func_start sub_080A6F40 sub_080A6F40: @ 0x080A6F40 push {r4, r5, r6, lr} movs r5, #0 ldr r4, _080A6F4C @ =gUnk_08128F38 movs r6, #0 b _080A6F60 .align 2, 0 _080A6F4C: .4byte gUnk_08128F38 _080A6F50: ldrb r0, [r4] ldrb r1, [r4, #1] bl sub_0807CB24 lsls r0, r5 orrs r6, r0 adds r5, #1 adds r4, #2 _080A6F60: ldrb r0, [r4] cmp r0, #0 bne _080A6F50 mvns r0, r6 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080A6F6C sub_080A6F6C: @ 0x080A6F6C push {r4, lr} adds r4, r0, #0 ldr r1, _080A6FA4 @ =gUnk_02000080 ldrh r0, [r1, #0x2e] cmp r0, r4 beq _080A6F9A strh r4, [r1, #0x2e] ldr r0, _080A6FA8 @ =gUnk_020350F0 movs r1, #0x80 lsls r1, r1, #1 bl sub_0801D630 movs r0, #0xff ands r0, r4 cmp r0, #0 beq _080A6F94 ldr r1, _080A6FAC @ =gUnk_08128FA8 adds r0, r4, #0 bl sub_0805F46C _080A6F94: ldr r1, _080A6FB0 @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0xe] _080A6F9A: ldr r1, _080A6FB0 @ =gUnk_03000F50 movs r0, #2 strh r0, [r1, #0xc] pop {r4, pc} .align 2, 0 _080A6FA4: .4byte gUnk_02000080 _080A6FA8: .4byte gUnk_020350F0 _080A6FAC: .4byte gUnk_08128FA8 _080A6FB0: .4byte gUnk_03000F50 thumb_func_start sub_080A6FB4 sub_080A6FB4: @ 0x080A6FB4 push {r4, r5, lr} adds r2, r0, #0 movs r4, #0 cmp r1, #1 beq _080A6FF0 cmp r1, #1 blo _080A6FC8 cmp r1, #2 beq _080A6FD6 b _080A6FFA _080A6FC8: ldr r0, _080A6FE4 @ =gUnk_02002A40 movs r1, #1 lsls r1, r2 ldr r0, [r0, #0x40] ands r0, r1 cmp r0, #0 beq _080A6FFA _080A6FD6: ldr r1, _080A6FE8 @ =gUnk_08127F94 lsls r0, r2, #3 adds r0, r0, r1 ldrh r4, [r0, #6] ldr r5, _080A6FEC @ =gUnk_08128FC0 b _080A6FFA .align 2, 0 _080A6FE4: .4byte gUnk_02002A40 _080A6FE8: .4byte gUnk_08127F94 _080A6FEC: .4byte gUnk_08128FC0 _080A6FF0: ldr r1, _080A702C @ =gUnk_08128FF0 lsls r0, r2, #1 adds r0, r0, r1 ldrh r4, [r0] ldr r5, _080A7030 @ =gUnk_08128FD8 _080A6FFA: ldr r1, _080A7034 @ =gUnk_02000080 ldrh r0, [r1, #0x2e] cmp r0, r4 beq _080A7024 strh r4, [r1, #0x2e] ldr r0, _080A7038 @ =gUnk_020350F0 movs r1, #0x80 lsls r1, r1, #1 bl sub_0801D630 movs r0, #0xff ands r0, r4 cmp r0, #0 beq _080A701E adds r0, r4, #0 adds r1, r5, #0 bl sub_0805F46C _080A701E: ldr r1, _080A703C @ =gUnk_03000F50 movs r0, #1 strh r0, [r1, #0xe] _080A7024: ldr r1, _080A703C @ =gUnk_03000F50 movs r0, #2 strh r0, [r1, #0xc] pop {r4, r5, pc} .align 2, 0 _080A702C: .4byte gUnk_08128FF0 _080A7030: .4byte gUnk_08128FD8 _080A7034: .4byte gUnk_02000080 _080A7038: .4byte gUnk_020350F0 _080A703C: .4byte gUnk_03000F50 thumb_func_start sub_080A7040 sub_080A7040: @ 0x080A7040 push {r4, r5, lr} adds r5, r0, #0 ldr r1, _080A7090 @ =gUnk_02000080 ldrh r0, [r1, #0x2e] cmp r0, r5 beq _080A708C strh r5, [r1, #0x2e] ldr r4, _080A7094 @ =gUnk_02022130 movs r1, #0xc0 lsls r1, r1, #2 adds r0, r4, #0 bl sub_0801D630 ldr r0, _080A7098 @ =0xFFFFFE00 adds r4, r4, r0 ldr r1, _080A709C @ =0x0600E000 movs r2, #0x80 lsls r2, r2, #4 adds r0, r4, #0 bl sub_0801D66C ldr r1, _080A70A0 @ =gUnk_08128D70 lsls r0, r5, #3 adds r4, r0, r1 ldrb r0, [r4] bl sub_0807CA84 cmp r0, #0 beq _080A7082 ldrh r0, [r4, #6] ldr r1, _080A70A4 @ =gUnk_08129004 bl sub_0805F46C _080A7082: ldr r0, _080A70A8 @ =gUnk_03000F50 movs r1, #3 strh r1, [r0, #0x18] movs r1, #1 strh r1, [r0, #0x1a] _080A708C: pop {r4, r5, pc} .align 2, 0 _080A7090: .4byte gUnk_02000080 _080A7094: .4byte gUnk_02022130 _080A7098: .4byte 0xFFFFFE00 _080A709C: .4byte 0x0600E000 _080A70A0: .4byte gUnk_08128D70 _080A70A4: .4byte gUnk_08129004 _080A70A8: .4byte gUnk_03000F50 thumb_func_start sub_080A70AC sub_080A70AC: @ 0x080A70AC push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A7110 @ =gUnk_0200AF34 movs r1, #0xc0 lsls r1, r1, #2 adds r0, r4, #0 bl sub_0801D630 adds r2, r4, #0 subs r2, #0x34 movs r0, #0x7f strb r0, [r2, #0x13] strb r0, [r2, #0x14] ldrb r0, [r5] strh r0, [r2, #0x16] movs r0, #1 ldrsb r0, [r5, r0] strh r0, [r2, #0x1c] ldrb r1, [r5, #2] subs r0, r4, #4 strb r1, [r0] ldrb r0, [r5, #3] strh r0, [r2, #0x18] movs r0, #4 ldrsb r0, [r5, r0] strh r0, [r2, #0x1e] ldrb r1, [r5, #5] subs r0, r4, #3 strb r1, [r0] ldrb r0, [r5, #6] strh r0, [r2, #0x1a] movs r0, #7 ldrsb r0, [r5, r0] strh r0, [r2, #0x20] ldrb r0, [r5, #8] subs r4, #2 strb r0, [r4] adds r5, #9 movs r4, #1 rsbs r4, r4, #0 _080A70FC: ldrb r0, [r5] ldrb r1, [r5, #1] bl sub_0801CA6C adds r5, #2 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, r4 bne _080A70FC pop {r4, r5, pc} .align 2, 0 _080A7110: .4byte gUnk_0200AF34 thumb_func_start sub_080A7114 sub_080A7114: @ 0x080A7114 ldr r1, _080A7120 @ =gUnk_02000080 movs r2, #0 strb r0, [r1, #5] strb r2, [r1, #6] strb r2, [r1, #7] bx lr .align 2, 0 _080A7120: .4byte gUnk_02000080 thumb_func_start sub_080A7124 sub_080A7124: @ 0x080A7124 push {lr} ldr r0, _080A7134 @ =gUnk_02032EC0 movs r1, #0xed lsls r1, r1, #2 bl sub_0801D630 pop {pc} .align 2, 0 _080A7134: .4byte gUnk_02032EC0 thumb_func_start sub_080A7138 sub_080A7138: @ 0x080A7138 push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 ldr r4, _080A715C @ =gUnk_02032EC0 ldrb r0, [r4] cmp r0, #0 bne _080A7164 movs r1, #0xed lsls r1, r1, #2 adds r0, r4, #0 bl sub_0801D630 strb r5, [r4, #2] strb r6, [r4, #3] ldr r0, _080A7160 @ =gUnk_03001000 ldrb r0, [r0, #4] strb r0, [r4, #7] b _080A716C .align 2, 0 _080A715C: .4byte gUnk_02032EC0 _080A7160: .4byte gUnk_03001000 _080A7164: strb r5, [r4, #4] strb r6, [r4, #5] movs r0, #1 strb r0, [r4] _080A716C: ldr r1, _080A7194 @ =gUnk_02032EC0 movs r0, #0 strb r0, [r1, #6] ldr r0, _080A7198 @ =0x0000FFFF strh r0, [r1, #8] movs r4, #0 movs r0, #0x20 strh r0, [r1, #0xa] ldr r1, _080A719C @ =gUnk_03001000 movs r0, #7 strb r0, [r1, #4] movs r0, #5 movs r1, #0x20 bl sub_08050054 ldr r0, _080A71A0 @ =gUnk_02018EB0 strb r4, [r0] strb r4, [r0, #1] pop {r4, r5, r6, pc} .align 2, 0 _080A7194: .4byte gUnk_02032EC0 _080A7198: .4byte 0x0000FFFF _080A719C: .4byte gUnk_03001000 _080A71A0: .4byte gUnk_02018EB0 thumb_func_start sub_080A71A4 sub_080A71A4: @ 0x080A71A4 push {r4, lr} adds r4, r0, #0 ldr r3, _080A71B4 @ =gUnk_02032EC0 ldrb r0, [r3] cmp r0, #0 bne _080A71B8 strb r2, [r3, #0xe] b _080A71BA .align 2, 0 _080A71B4: .4byte gUnk_02032EC0 _080A71B8: strb r2, [r3, #0xf] _080A71BA: adds r0, r4, #0 bl sub_080A7138 pop {r4, pc} .align 2, 0 thumb_func_start sub_080A71C4 sub_080A71C4: @ 0x080A71C4 push {r4, r5, lr} adds r4, r2, #0 adds r5, r3, #0 bl sub_080A7138 ldr r0, _080A71D8 @ =gUnk_02032EC0 strh r4, [r0, #8] strh r5, [r0, #0xa] pop {r4, r5, pc} .align 2, 0 _080A71D8: .4byte gUnk_02032EC0 thumb_func_start sub_080A71DC sub_080A71DC: @ 0x080A71DC push {lr} ldr r1, _080A71F0 @ =gUnk_02032EC0 movs r0, #3 strb r0, [r1] movs r0, #5 movs r1, #0x20 bl sub_08050054 pop {pc} .align 2, 0 _080A71F0: .4byte gUnk_02032EC0 thumb_func_start sub_080A71F4 sub_080A71F4: @ 0x080A71F4 push {lr} cmp r0, #0 beq _080A71FE bl sub_08080840 _080A71FE: bl sub_0805E89C bl sub_0805E974 bl sub_0805E89C ldr r0, _080A7218 @ =gUnk_03001000 movs r2, #0 movs r1, #1 strb r1, [r0, #3] strb r2, [r0, #4] pop {pc} .align 2, 0 _080A7218: .4byte gUnk_03001000 thumb_func_start sub_080A721C sub_080A721C: @ 0x080A721C push {lr} ldr r0, _080A7248 @ =gUnk_02032EC0 ldrb r1, [r0] adds r2, r0, #0 cmp r1, #2 bhi _080A7238 ldrb r3, [r2, #4] cmp r3, #0 beq _080A7238 ldrb r0, [r2, #5] movs r1, #0 strb r0, [r2, #3] strb r3, [r2, #2] strb r1, [r2, #4] _080A7238: ldr r0, _080A724C @ =gUnk_0812901C ldrb r1, [r2] lsls r1, r1, #2 adds r1, r1, r0 ldr r0, [r1] bl _call_via_r0 pop {pc} .align 2, 0 _080A7248: .4byte gUnk_02032EC0 _080A724C: .4byte gUnk_0812901C thumb_func_start sub_080A7250 sub_080A7250: @ 0x080A7250 push {r4, lr} ldr r0, _080A72E8 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080A72E4 ldr r0, _080A72EC @ =gUnk_03000F50 ldr r1, _080A72F0 @ =gUnk_03001020 movs r2, #0x7c bl sub_0801D66C ldr r0, _080A72F4 @ =gUnk_020176A0 ldr r1, _080A72F8 @ =gUnk_02024090 movs r2, #0x80 lsls r2, r2, #3 bl sub_0801D66C ldr r0, _080A72FC @ =gUnk_02024490 ldr r4, _080A7300 @ =gUnk_02032F14 movs r2, #0x85 lsls r2, r2, #2 adds r1, r4, #0 bl sub_0801D66C ldr r0, _080A7304 @ =gUnk_02001A00 movs r2, #0x85 lsls r2, r2, #2 adds r1, r4, r2 movs r2, #0x40 bl sub_0801D66C ldr r0, _080A7308 @ =gUnk_03000BF0 adds r1, r4, #0 subs r1, #0x38 movs r2, #0x38 bl sub_0801D66C ldr r0, _080A730C @ =gUnk_03000420 movs r2, #0x95 lsls r2, r2, #2 adds r1, r4, r2 movs r2, #0x80 lsls r2, r2, #1 bl sub_0801D66C ldr r0, _080A7310 @ =gUnk_02033280 movs r2, #0xd5 lsls r2, r2, #2 adds r1, r4, r2 movs r2, #0xc bl sub_0801D66C bl sub_0805E958 adds r1, r4, #0 subs r1, #0x54 ldr r0, _080A7314 @ =gUnk_030010A0 adds r0, #0x2f ldrb r0, [r0] strb r0, [r1, #0xd] ldr r0, _080A7318 @ =gUnk_03003F80 adds r0, #0x8b ldrb r0, [r0] strb r0, [r1, #0xc] ldr r0, _080A731C @ =gUnk_02017654 ldr r0, [r0] str r0, [r1, #0x10] ldr r0, _080A7320 @ =gUnk_02025EB0 ldr r0, [r0] str r0, [r1, #0x14] ldr r0, _080A7324 @ =gUnk_0200B650 ldr r0, [r0] str r0, [r1, #0x18] movs r0, #1 strb r0, [r1] _080A72E4: pop {r4, pc} .align 2, 0 _080A72E8: .4byte gUnk_03000FD0 _080A72EC: .4byte gUnk_03000F50 _080A72F0: .4byte gUnk_03001020 _080A72F4: .4byte gUnk_020176A0 _080A72F8: .4byte gUnk_02024090 _080A72FC: .4byte gUnk_02024490 _080A7300: .4byte gUnk_02032F14 _080A7304: .4byte gUnk_02001A00 _080A7308: .4byte gUnk_03000BF0 _080A730C: .4byte gUnk_03000420 _080A7310: .4byte gUnk_02033280 _080A7314: .4byte gUnk_030010A0 _080A7318: .4byte gUnk_03003F80 _080A731C: .4byte gUnk_02017654 _080A7320: .4byte gUnk_02025EB0 _080A7324: .4byte gUnk_0200B650 thumb_func_start sub_080A7328 sub_080A7328: @ 0x080A7328 push {r4, lr} ldr r0, _080A7388 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080A7384 bl sub_0805E89C ldr r0, _080A738C @ =gUnk_02000080 movs r1, #0x30 bl sub_0801D630 ldr r0, _080A7390 @ =gUnk_03000BF0 movs r1, #0x38 bl sub_0801D630 ldr r0, _080A7394 @ =gUnk_03000420 movs r1, #0x80 lsls r1, r1, #1 bl sub_0801D630 ldr r4, _080A7398 @ =gUnk_02033280 adds r0, r4, #0 movs r1, #0xc bl sub_0801D630 movs r0, #8 strb r0, [r4, #8] movs r0, #1 bl sub_0801DA90 bl sub_08056418 bl sub_080ADD30 movs r0, #0 bl sub_0801CFA8 ldr r0, _080A739C @ =gUnk_02024490 movs r2, #1 strb r2, [r0] ldr r1, _080A73A0 @ =gUnk_02032EC0 movs r0, #2 strb r0, [r1] ldr r0, _080A73A4 @ =gUnk_030010A0 adds r0, #0x30 strb r2, [r0] _080A7384: pop {r4, pc} .align 2, 0 _080A7388: .4byte gUnk_03000FD0 _080A738C: .4byte gUnk_02000080 _080A7390: .4byte gUnk_03000BF0 _080A7394: .4byte gUnk_03000420 _080A7398: .4byte gUnk_02033280 _080A739C: .4byte gUnk_02024490 _080A73A0: .4byte gUnk_02032EC0 _080A73A4: .4byte gUnk_030010A0 thumb_func_start sub_080A73A8 sub_080A73A8: @ 0x080A73A8 push {r4, r5, lr} ldr r0, _080A7468 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 beq _080A73B4 b _080A74BC _080A73B4: bl sub_0805E89C bl sub_0805E974 ldr r1, _080A746C @ =gUnk_02017654 ldr r5, _080A7470 @ =gUnk_02032EC0 ldr r0, [r5, #0x10] str r0, [r1] ldr r0, _080A7474 @ =gUnk_03003F80 ldrb r1, [r5, #0xc] adds r0, #0x8b strb r1, [r0] ldr r1, _080A7478 @ =gUnk_02025EB0 ldr r0, [r5, #0x14] str r0, [r1] ldr r1, _080A747C @ =gUnk_0200B650 ldr r0, [r5, #0x18] str r0, [r1] movs r1, #0xea lsls r1, r1, #2 adds r0, r5, r1 ldr r1, _080A7480 @ =gUnk_02033280 movs r2, #0xc bl sub_0801D66C movs r1, #0xaa lsls r1, r1, #2 adds r0, r5, r1 ldr r1, _080A7484 @ =gUnk_03000420 movs r2, #0x80 lsls r2, r2, #1 bl sub_0801D66C movs r1, #0x9a lsls r1, r1, #2 adds r0, r5, r1 ldr r1, _080A7488 @ =gUnk_02001A00 movs r2, #0x40 bl sub_0801D66C adds r0, r5, #0 adds r0, #0x54 ldr r1, _080A748C @ =gUnk_02024490 movs r2, #0x85 lsls r2, r2, #2 bl sub_0801D66C adds r0, r5, #0 adds r0, #0x1c ldr r4, _080A7490 @ =gUnk_03000BF0 adds r1, r4, #0 movs r2, #0x38 bl sub_0801D66C ldr r0, _080A7494 @ =gUnk_03001020 ldr r1, _080A7498 @ =gUnk_03000F50 movs r2, #0x7c bl sub_0801D66C ldrb r0, [r4, #4] bl sub_08052D58 ldr r4, _080A749C @ =gUnk_02033A90 strh r0, [r4, #4] bl sub_08052E8C ldr r1, _080A74A0 @ =0x0000085C adds r4, r4, r1 str r0, [r4] ldrb r0, [r5, #6] bl sub_080527FC ldrb r1, [r5, #0xd] rsbs r0, r1, #0 orrs r0, r1 lsrs r0, r0, #0x1f bl sub_0801D000 bl sub_080A74F4 ldrh r1, [r5, #8] ldr r0, _080A74A4 @ =0x0000FFFF cmp r1, r0 beq _080A74A8 adds r0, r1, #0 ldrh r1, [r5, #0xa] bl sub_08050054 b _080A74AE .align 2, 0 _080A7468: .4byte gUnk_03000FD0 _080A746C: .4byte gUnk_02017654 _080A7470: .4byte gUnk_02032EC0 _080A7474: .4byte gUnk_03003F80 _080A7478: .4byte gUnk_02025EB0 _080A747C: .4byte gUnk_0200B650 _080A7480: .4byte gUnk_02033280 _080A7484: .4byte gUnk_03000420 _080A7488: .4byte gUnk_02001A00 _080A748C: .4byte gUnk_02024490 _080A7490: .4byte gUnk_03000BF0 _080A7494: .4byte gUnk_03001020 _080A7498: .4byte gUnk_03000F50 _080A749C: .4byte gUnk_02033A90 _080A74A0: .4byte 0x0000085C _080A74A4: .4byte 0x0000FFFF _080A74A8: ldrh r0, [r5, #0xa] bl sub_080500F4 _080A74AE: ldr r1, _080A74C0 @ =gUnk_02032EC0 movs r2, #0 movs r0, #4 strb r0, [r1] ldr r0, _080A74C4 @ =gUnk_030010A0 adds r0, #0x30 strb r2, [r0] _080A74BC: pop {r4, r5, pc} .align 2, 0 _080A74C0: .4byte gUnk_02032EC0 _080A74C4: .4byte gUnk_030010A0 thumb_func_start sub_080A74C8 sub_080A74C8: @ 0x080A74C8 push {lr} bl sub_080A74F4 ldr r0, _080A74E8 @ =gUnk_03000FD0 ldrb r3, [r0] cmp r3, #0 bne _080A74E6 ldr r0, _080A74EC @ =gUnk_03001000 ldr r1, _080A74F0 @ =gUnk_02032EC0 ldrb r2, [r1, #7] strb r2, [r0, #4] strb r3, [r1] strb r3, [r1, #2] bl sub_0805E5B4 _080A74E6: pop {pc} .align 2, 0 _080A74E8: .4byte gUnk_03000FD0 _080A74EC: .4byte gUnk_03001000 _080A74F0: .4byte gUnk_02032EC0 thumb_func_start sub_080A74F4 sub_080A74F4: @ 0x080A74F4 push {lr} bl sub_0805E5A8 ldr r1, _080A7524 @ =gUnk_03001000 movs r0, #0 strb r0, [r1, #0xb] bl sub_080AD90C bl sub_0805E5C0 bl sub_0805E5F8 bl sub_0801C344 bl sub_0801C208 bl sub_08078CB4 bl sub_080AD9B0 bl sub_080AD918 pop {pc} .align 2, 0 _080A7524: .4byte gUnk_03001000 thumb_func_start sub_080A7528 sub_080A7528: @ 0x080A7528 push {lr} ldr r1, _080A753C @ =gUnk_08129030 ldr r0, _080A7540 @ =gUnk_02032EC0 ldrb r0, [r0, #2] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {pc} .align 2, 0 _080A753C: .4byte gUnk_08129030 _080A7540: .4byte gUnk_02032EC0 thumb_func_start sub_080A7544 sub_080A7544: @ 0x080A7544 push {r4, lr} adds r4, r0, #0 ldr r1, _080A7584 @ =gUnk_0812905C ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldrb r0, [r4, #0xa] cmp r0, #0 bne _080A7582 ldr r1, _080A7588 @ =gUnk_03001160 adds r0, r4, #0 bl sub_08078E84 ldr r1, [r4, #0x48] adds r0, r4, #0 adds r0, #0x62 ldrb r0, [r0] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldr r1, [r4, #0x48] adds r0, r4, #0 adds r0, #0x63 ldrb r0, [r0] ldrb r2, [r1, #1] adds r0, r0, r2 strb r0, [r1, #1] _080A7582: pop {r4, pc} .align 2, 0 _080A7584: .4byte gUnk_0812905C _080A7588: .4byte gUnk_03001160 thumb_func_start sub_080A758C sub_080A758C: @ 0x080A758C push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xa] cmp r0, #0 bne _080A75AC ldr r1, _080A7654 @ =gUnk_03003F80 ldrb r0, [r1, #4] cmp r0, #0 bne _080A75AC ldrb r1, [r1, #2] movs r0, #0x20 ands r0, r1 cmp r0, #0 bne _080A75AC bl sub_0805E780 _080A75AC: adds r0, r5, #0 bl sub_0806FBD8 cmp r0, #0 bne _080A75BA bl sub_0805E780 _080A75BA: adds r0, r5, #0 movs r1, #1 movs r2, #3 bl sub_080AE008 ldr r1, _080A7658 @ =gUnk_03001160 adds r0, r1, #0 adds r0, #0x3c ldrb r0, [r0] adds r0, #1 movs r2, #0x20 adds r3, r5, #0 adds r3, #0x3c movs r4, #0 orrs r0, r2 strb r0, [r3] adds r1, #0x3b ldrb r0, [r1] adds r1, r5, #0 adds r1, #0x3b strb r0, [r1] ldrb r1, [r5, #0x11] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r5, #0x11] adds r0, r5, #0 adds r0, #0x41 strb r4, [r0] subs r0, #4 strb r4, [r0] adds r0, #5 strb r4, [r0] ldrb r0, [r5, #0xc] adds r0, #1 strb r0, [r5, #0xc] movs r0, #0xff strb r0, [r5, #0x1e] adds r0, r5, #0 bl sub_0801766C ldrb r0, [r5, #0xa] cmp r0, #0 bne _080A76BC ldr r2, _080A7654 @ =gUnk_03003F80 ldrb r1, [r2, #2] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _080A767A ldrb r1, [r5, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r5, #0x10] movs r0, #2 strb r0, [r5, #0xb] adds r0, r2, #0 adds r0, #0x3e ldrb r0, [r0] lsls r0, r0, #0x1e lsrs r0, r0, #0x1d adds r0, #8 adds r1, r5, #0 adds r1, #0x44 strb r0, [r1] adds r0, r5, #0 adds r0, #0x68 ldrb r0, [r0] cmp r0, #1 beq _080A765C cmp r0, #6 bne _080A7664 subs r1, #4 movs r0, #0x1a b _080A766A .align 2, 0 _080A7654: .4byte gUnk_03003F80 _080A7658: .4byte gUnk_03001160 _080A765C: adds r1, r5, #0 adds r1, #0x40 movs r0, #0x18 b _080A766A _080A7664: adds r1, r5, #0 adds r1, #0x40 movs r0, #0x19 _080A766A: strb r0, [r1] ldrb r0, [r5, #0xc] adds r0, #1 strb r0, [r5, #0xc] adds r0, r5, #0 bl sub_080A7824 b _080A7692 _080A767A: adds r0, r2, #0 adds r0, #0x3e ldrb r0, [r0] lsls r0, r0, #0x1e lsrs r0, r0, #0x1d adds r0, #4 adds r1, r5, #0 adds r1, #0x44 strb r0, [r1] adds r0, r5, #0 bl sub_080A76CC _080A7692: ldr r0, _080A76B0 @ =gUnk_03003F80 str r5, [r0, #0x2c] adds r0, r5, #0 bl sub_08079BD8 ldr r4, _080A76B4 @ =gUnk_0812906C ldr r0, _080A76B8 @ =gUnk_08129068 bl sub_080028F4 lsls r0, r0, #1 adds r0, r0, r4 ldrh r0, [r0] bl sub_080A3268 b _080A76C2 .align 2, 0 _080A76B0: .4byte gUnk_03003F80 _080A76B4: .4byte gUnk_0812906C _080A76B8: .4byte gUnk_08129068 _080A76BC: adds r0, r5, #0 bl sub_080A76CC _080A76C2: movs r0, #0x87 lsls r0, r0, #1 bl sub_080A3268 pop {r4, r5, pc} thumb_func_start sub_080A76CC sub_080A76CC: @ 0x080A76CC push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 beq _080A76D8 b _080A77DC _080A76D8: ldr r5, _080A771C @ =gUnk_03003F80 ldr r0, [r5, #0x2c] cmp r0, r4 beq _080A76E4 bl sub_0805E780 _080A76E4: ldrb r0, [r5, #4] cmp r0, #0 bne _080A76F2 str r0, [r5, #0x2c] strb r0, [r5, #0x1b] bl sub_0805E780 _080A76F2: ldrb r2, [r5, #0x1b] cmp r2, #0 beq _080A7744 adds r1, r4, #0 adds r1, #0x40 movs r0, #0xd strb r0, [r1] movs r0, #0x40 ands r0, r2 cmp r0, #0 beq _080A7728 adds r0, r4, #0 adds r0, #0x68 ldrb r0, [r0] cmp r0, #1 beq _080A7720 cmp r0, #6 bne _080A7724 movs r0, #0xa b _080A7726 .align 2, 0 _080A771C: .4byte gUnk_03003F80 _080A7720: movs r0, #8 b _080A7726 _080A7724: movs r0, #9 _080A7726: strb r0, [r1] _080A7728: ldr r0, _080A7740 @ =gUnk_03001160 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _080A77C4 movs r0, #0x8b lsls r0, r0, #1 bl sub_080A3268 b _080A77C4 .align 2, 0 _080A7740: .4byte gUnk_03001160 _080A7744: ldr r0, [r5, #0x30] movs r1, #0x80 lsls r1, r1, #0x14 ands r0, r1 cmp r0, #0 beq _080A776A adds r0, r4, #0 adds r0, #0x68 ldrb r0, [r0] cmp r0, #6 bne _080A7762 adds r1, r4, #0 adds r1, #0x40 movs r0, #0xc b _080A7768 _080A7762: adds r1, r4, #0 adds r1, #0x40 movs r0, #0xb _080A7768: strb r0, [r1] _080A776A: ldr r0, _080A77D0 @ =gUnk_03003F80 adds r0, #0x3e ldrb r0, [r0] movs r2, #3 ands r2, r0 cmp r2, #0 beq _080A77C4 ldr r0, _080A77D4 @ =gUnk_03001160 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _080A77C4 movs r1, #0x12 cmp r2, #1 bne _080A778E movs r1, #0x14 _080A778E: adds r0, r4, #0 movs r2, #0 bl sub_080A29AC adds r2, r0, #0 cmp r2, #0 beq _080A77C4 ldrb r1, [r4, #0x1e] lsls r1, r1, #1 ldr r0, _080A77D8 @ =gUnk_081292E2 adds r1, r1, r0 movs r0, #1 ldrsb r0, [r1, r0] ldrh r3, [r4, #0x32] adds r0, r0, r3 strh r0, [r2, #0x32] ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 ldrb r0, [r4, #0x18] lsls r0, r0, #0x19 cmp r0, #0 bge _080A77BE rsbs r1, r1, #0 _080A77BE: ldrh r0, [r4, #0x2e] adds r0, r0, r1 strh r0, [r2, #0x2e] _080A77C4: ldr r1, _080A77D4 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080A78B8 b _080A7806 .align 2, 0 _080A77D0: .4byte gUnk_03003F80 _080A77D4: .4byte gUnk_03001160 _080A77D8: .4byte gUnk_081292E2 _080A77DC: ldr r1, _080A7810 @ =gUnk_03003F80 ldrb r0, [r1, #4] cmp r0, #0 beq _080A7814 ldr r0, [r1, #0x2c] adds r2, r0, #0 adds r2, #0x40 ldrb r0, [r2] cmp r0, #0 beq _080A7814 ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldrb r1, [r2] adds r0, r4, #0 adds r0, #0x40 strb r1, [r0] adds r0, r4, #0 bl sub_080A7A54 _080A7806: adds r0, r4, #0 bl sub_080A7A84 b _080A7820 .align 2, 0 _080A7810: .4byte gUnk_03003F80 _080A7814: movs r0, #0xff strb r0, [r4, #0x1e] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] _080A7820: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080A7824 sub_080A7824: @ 0x080A7824 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r5, _080A7860 @ =gUnk_03003F80 ldr r0, [r5, #0x2c] cmp r0, r4 beq _080A7834 bl sub_0805E780 _080A7834: ldrb r0, [r5, #4] cmp r0, #0 beq _080A78AE ldrb r0, [r5, #2] cmp r0, #0 bne _080A7846 str r0, [r5, #0x2c] bl sub_0805E780 _080A7846: ldr r2, _080A7864 @ =gUnk_03001160 adds r6, r2, #0 adds r6, #0x5a ldrb r1, [r6] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080A7868 movs r0, #0 str r0, [r5, #0x2c] bl sub_0805E780 b _080A78B4 .align 2, 0 _080A7860: .4byte gUnk_03003F80 _080A7864: .4byte gUnk_03001160 _080A7868: adds r0, r4, #0 adds r1, r2, #0 bl sub_080A78B8 ldrb r1, [r6] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _080A7880 movs r0, #0x77 bl sub_080A3268 _080A7880: ldrb r0, [r4, #0x1e] cmp r0, #0x8a bls _080A788A movs r0, #0xff strb r0, [r4, #0x1e] _080A788A: ldrb r1, [r6] movs r0, #8 ands r0, r1 cmp r0, #0 beq _080A78A4 ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 bl sub_080A7B98 b _080A78B4 _080A78A4: ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] b _080A78B4 _080A78AE: str r0, [r5, #0x2c] bl sub_0805E780 _080A78B4: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080A78B8 sub_080A78B8: @ 0x080A78B8 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 adds r6, r1, #0 ldr r0, _080A78E8 @ =gUnk_03003F80 ldrb r1, [r0, #0x1b] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _080A78FC ldrb r0, [r6, #0x1e] subs r0, #0x6a strb r0, [r4, #0x1e] ldr r0, _080A78EC @ =gUnk_030010A0 ldr r0, [r0] movs r1, #4 ands r0, r1 cmp r0, #0 beq _080A78F0 ldrb r1, [r4, #0x14] lsrs r1, r1, #1 adds r1, #0xb1 b _080A78F2 .align 2, 0 _080A78E8: .4byte gUnk_03003F80 _080A78EC: .4byte gUnk_030010A0 _080A78F0: ldrb r1, [r4, #0x1e] _080A78F2: ldrh r2, [r4, #0x12] adds r0, r4, #0 bl sub_080042D0 b _080A7912 _080A78FC: ldrb r0, [r6, #0x1e] subs r0, #0x6a ldrb r1, [r4, #0x1e] cmp r0, r1 beq _080A7912 strb r0, [r4, #0x1e] ldrb r1, [r4, #0x1e] ldrh r2, [r4, #0x12] adds r0, r4, #0 bl sub_080042D0 _080A7912: ldr r2, _080A792C @ =gUnk_03003F80 ldrb r1, [r2, #0x1b] movs r0, #0x40 ands r0, r1 adds r7, r2, #0 cmp r0, #0 beq _080A7930 ldrb r1, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 b _080A7958 .align 2, 0 _080A792C: .4byte gUnk_03003F80 _080A7930: ldrb r1, [r6, #0x14] movs r0, #2 ands r0, r1 cmp r0, #0 beq _080A7946 ldrb r0, [r6, #0x18] lsls r0, r0, #0x19 lsrs r2, r0, #0x1f movs r0, #1 eors r2, r0 b _080A794C _080A7946: ldrb r0, [r6, #0x18] lsls r0, r0, #0x19 lsrs r2, r0, #0x1f _080A794C: lsls r2, r2, #6 ldrb r1, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 _080A7958: strb r0, [r4, #0x18] adds r2, r4, #0 adds r2, #0x41 ldrb r1, [r2] movs r0, #0x80 ands r0, r1 mov r8, r2 adds r5, r4, #0 adds r5, #0x3d cmp r0, #0 beq _080A7A1C adds r3, r6, #0 adds r3, #0x3d ldrb r0, [r3] lsls r0, r0, #0x18 cmp r0, #0 beq _080A7980 lsrs r0, r0, #0x18 cmp r0, #0x81 bne _080A79AE _080A7980: adds r2, r4, #0 adds r2, #0x3d ldrb r0, [r2] movs r1, #0 strb r0, [r3] adds r5, r4, #0 adds r5, #0x3e ldrb r0, [r5] adds r3, r6, #0 adds r3, #0x3e strb r0, [r3] movs r3, #0x42 adds r3, r3, r4 mov ip, r3 ldrb r0, [r3] adds r3, r6, #0 adds r3, #0x42 strb r0, [r3] mov r0, ip strb r1, [r0] strb r1, [r5] strb r1, [r2] adds r5, r2, #0 _080A79AE: ldr r0, [r7, #0x30] movs r1, #0x80 lsls r1, r1, #0x14 ands r0, r1 cmp r0, #0 beq _080A79C4 ldrb r1, [r7, #0x1b] movs r0, #0x80 orrs r0, r1 strb r0, [r7, #0x1b] b _080A7A1C _080A79C4: ldrb r0, [r7, #0x1b] cmp r0, #0 beq _080A7A1C mov r1, r8 ldrb r0, [r1] movs r1, #0x7f ands r1, r0 cmp r1, #0x43 beq _080A79E6 cmp r1, #0x43 bgt _080A79E0 cmp r1, #0xd beq _080A79E6 b _080A7A08 _080A79E0: cmp r1, #0x44 bne _080A7A08 b _080A7A1C _080A79E6: ldrb r1, [r7, #0x1b] movs r0, #8 orrs r0, r1 strb r0, [r7, #0x1b] adds r1, r6, #0 adds r1, #0x42 movs r0, #2 strb r0, [r1] ldrb r1, [r7, #0x1b] movs r0, #0x20 ands r0, r1 cmp r0, #0 bne _080A7A1C movs r0, #0xfe ands r0, r1 strb r0, [r7, #0x1b] b _080A7A1C _080A7A08: ldrb r0, [r7, #0x1b] movs r1, #0xc0 ands r1, r0 cmp r1, #0 bne _080A7A1C strb r1, [r7, #0x1b] strb r1, [r7, #4] str r1, [r7, #0x2c] bl sub_0805E780 _080A7A1C: adds r1, r5, #0 ldrb r0, [r1] movs r2, #0 ldrsb r2, [r1, r2] cmp r2, #0 beq _080A7A36 cmp r2, #0 ble _080A7A32 subs r0, #1 strb r0, [r1] b _080A7A36 _080A7A32: adds r0, #1 strb r0, [r5] _080A7A36: adds r0, r4, #0 bl sub_080A7A54 ldrb r0, [r4, #0x18] lsls r0, r0, #0x19 cmp r0, #0 bge _080A7A4C ldr r1, [r4, #0x48] ldrb r0, [r1] rsbs r0, r0, #0 strb r0, [r1] _080A7A4C: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080A7A54 sub_080A7A54: @ 0x080A7A54 ldr r1, _080A7A7C @ =gUnk_03001160 ldrb r1, [r1, #0x1e] subs r1, #0x6a lsls r1, r1, #2 ldr r2, _080A7A80 @ =gUnk_08129096 adds r1, r1, r2 ldr r3, [r0, #0x48] ldrb r2, [r1] strb r2, [r3] ldr r3, [r0, #0x48] ldrb r2, [r1, #1] strb r2, [r3, #1] ldr r3, [r0, #0x48] ldrb r2, [r1, #2] strb r2, [r3, #6] ldr r2, [r0, #0x48] ldrb r0, [r1, #3] strb r0, [r2, #7] bx lr .align 2, 0 _080A7A7C: .4byte gUnk_03001160 _080A7A80: .4byte gUnk_08129096 thumb_func_start sub_080A7A84 sub_080A7A84: @ 0x080A7A84 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldr r6, _080A7AE0 @ =gUnk_03001160 adds r0, r6, #0 adds r0, #0x5a ldrb r0, [r0] movs r1, #0xf ands r1, r0 cmp r1, #0 beq _080A7B8C ldr r2, _080A7AE4 @ =gUnk_08129072 subs r0, r1, #1 lsls r0, r0, #1 adds r1, r0, r2 movs r3, #0 ldrsb r3, [r1, r3] adds r0, #1 adds r0, r0, r2 movs r5, #0 ldrsb r5, [r0, r5] ldr r2, _080A7AE8 @ =gUnk_03003F80 ldrb r1, [r2, #0x1b] movs r0, #0xc0 ands r0, r1 adds r7, r2, #0 cmp r0, #0 bne _080A7AC4 ldrb r0, [r6, #0x18] lsls r0, r0, #0x19 cmp r0, #0 bge _080A7AC4 rsbs r3, r3, #0 _080A7AC4: ldrb r0, [r4, #0xa] cmp r0, #0 beq _080A7AEC movs r0, #0x2e ldrsh r2, [r4, r0] adds r2, r2, r3 movs r1, #0x32 ldrsh r3, [r4, r1] adds r3, r3, r5 adds r0, r4, #0 movs r1, #0 bl sub_08008796 b _080A7B8C .align 2, 0 _080A7AE0: .4byte gUnk_03001160 _080A7AE4: .4byte gUnk_08129072 _080A7AE8: .4byte gUnk_03003F80 _080A7AEC: ldr r0, [r4, #0x34] cmp r0, #0 bne _080A7B8C adds r0, r7, #0 adds r0, #0xac ldrh r0, [r0] movs r1, #8 ands r1, r0 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 rsbs r1, r1, #0 lsrs r1, r1, #0x1f movs r0, #0x2e ldrsh r2, [r4, r0] adds r6, r3, #0 adds r2, r2, r6 movs r0, #0x32 ldrsh r3, [r4, r0] adds r3, r3, r5 adds r0, r4, #0 bl sub_08008796 cmp r0, #0 bne _080A7B8C ldrb r2, [r7, #0x1b] cmp r2, #0 beq _080A7B8C movs r0, #0xc0 ands r0, r2 cmp r0, #0 bne _080A7B8C adds r0, r4, #0 adds r1, r6, #0 adds r2, r5, #0 bl sub_080002B4 cmp r0, #0x2e bne _080A7B4C ldr r0, _080A7B44 @ =gUnk_03001160 ldr r1, _080A7B48 @ =0x00000119 bl sub_0800449C b _080A7B54 .align 2, 0 _080A7B44: .4byte gUnk_03001160 _080A7B48: .4byte 0x00000119 _080A7B4C: ldr r0, _080A7B90 @ =gUnk_03001160 movs r1, #0x74 bl sub_0800449C _080A7B54: movs r0, #0xf movs r1, #0x1a movs r2, #0 bl sub_080A2960 adds r2, r0, #0 cmp r2, #0 beq _080A7B8C ldr r1, _080A7B94 @ =gUnk_0812908E ldrb r0, [r4, #0x14] adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r3, [r4, #0x2e] adds r0, r0, r3 strh r0, [r2, #0x2e] ldrb r0, [r4, #0x14] adds r0, #1 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r4, #0x32] adds r0, r0, r1 strh r0, [r2, #0x32] ldr r0, [r4, #0x34] str r0, [r2, #0x34] _080A7B8C: pop {r4, r5, r6, r7, pc} .align 2, 0 _080A7B90: .4byte gUnk_03001160 _080A7B94: .4byte gUnk_0812908E thumb_func_start sub_080A7B98 sub_080A7B98: @ 0x080A7B98 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r6, r0, #0 ldr r0, _080A7BFC @ =gUnk_03003F80 adds r0, #0xac ldrh r1, [r0] movs r0, #8 ands r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 rsbs r0, r0, #0 lsrs r0, r0, #0x1f mov sl, r0 movs r7, #0x10 rsbs r7, r7, #0 movs r0, #0 _080A7BBE: movs r5, #0x10 rsbs r5, r5, #0 movs r4, #0 movs r1, #0x10 adds r1, r1, r7 mov sb, r1 adds r0, #1 mov r8, r0 _080A7BCE: movs r0, #0x2e ldrsh r2, [r6, r0] adds r2, r2, r5 movs r1, #0x32 ldrsh r3, [r6, r1] adds r3, r3, r7 adds r0, r6, #0 mov r1, sl bl sub_08008796 adds r5, #0x10 adds r4, #1 cmp r4, #2 bls _080A7BCE mov r7, sb mov r0, r8 cmp r0, #2 bls _080A7BBE pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _080A7BFC: .4byte gUnk_03003F80 thumb_func_start sub_080A7C00 sub_080A7C00: @ 0x080A7C00 push {r4, lr} bl sub_080A7C38 adds r4, r0, #0 cmp r4, #0 beq _080A7C16 ldrb r1, [r4, #0xa] movs r2, #0 bl sub_080A276C str r0, [r4, #0x50] _080A7C16: pop {r4, pc} thumb_func_start sub_080A7C18 sub_080A7C18: @ 0x080A7C18 push {lr} bl sub_080A7C38 adds r2, r0, #0 cmp r2, #0 beq _080A7C32 ldr r0, _080A7C34 @ =gUnk_03001160 str r0, [r2, #0x50] ldrb r1, [r2, #0xa] adds r0, r2, #0 movs r2, #0 bl sub_08078AF0 _080A7C32: pop {pc} .align 2, 0 _080A7C34: .4byte gUnk_03001160 thumb_func_start sub_080A7C38 sub_080A7C38: @ 0x080A7C38 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r6, r1, #0 adds r7, r2, #0 cmp r5, #0x3f bne _080A7C52 ldr r0, _080A7C78 @ =gUnk_02002A40 adds r0, #0xbb ldrb r0, [r0] cmp r0, #0 beq _080A7C52 movs r5, #0x57 movs r6, #0 _080A7C52: bl sub_0805E744 adds r4, r0, #0 cmp r4, #0 beq _080A7C72 strb r5, [r4, #0xa] strb r6, [r4, #0xb] strb r7, [r4, #0xe] movs r0, #0xb strb r0, [r4, #9] movs r0, #6 strb r0, [r4, #8] adds r0, r4, #0 movs r1, #6 bl sub_0805EA2C _080A7C72: adds r0, r4, #0 pop {r4, r5, r6, r7, pc} .align 2, 0 _080A7C78: .4byte gUnk_02002A40 thumb_func_start sub_080A7C7C sub_080A7C7C: @ 0x080A7C7C push {lr} ldr r0, _080A7C88 @ =gUnk_02017660 movs r1, #0x40 bl sub_0801D630 pop {pc} .align 2, 0 _080A7C88: .4byte gUnk_02017660 thumb_func_start sub_080A7C8C sub_080A7C8C: @ 0x080A7C8C push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 ldr r4, _080A7C9C @ =gUnk_02017660 movs r2, #0 movs r1, #0 b _080A7CA8 .align 2, 0 _080A7C9C: .4byte gUnk_02017660 _080A7CA0: adds r1, #1 adds r4, #8 cmp r1, #7 bhi _080A7CB0 _080A7CA8: ldrh r0, [r4, #4] cmp r0, r5 bne _080A7CA0 movs r2, #1 _080A7CB0: lsrs r1, r6, #1 ldrb r0, [r4, #6] lsls r0, r0, #0x1f lsrs r0, r0, #0x1f cmp r1, r0 bne _080A7CF4 cmp r2, #0 beq _080A7CD2 ldrb r0, [r4, #1] bl sub_0807CCB4 ldrb r0, [r4, #2] ldrb r1, [r4, #3] movs r2, #0 bl sub_080A7C00 b _080A7CDC _080A7CD2: movs r0, #0x60 movs r1, #0 movs r2, #0 bl sub_080A7C00 _080A7CDC: movs r0, #0x74 adds r1, r5, #0 adds r2, r6, #0 bl sub_0807B7D8 movs r0, #0 movs r1, #0x78 bl sub_0805E4E0 ldr r0, _080A7CF8 @ =0x0000011B bl sub_080A3268 _080A7CF4: pop {r4, r5, r6, pc} .align 2, 0 _080A7CF8: .4byte 0x0000011B thumb_func_start sub_080A7CFC sub_080A7CFC: @ 0x080A7CFC push {r4, r5, r6, lr} adds r5, r0, #0 movs r4, #0xc0 lsls r4, r4, #3 movs r6, #0 movs r0, #3 bl sub_0804B128 adds r1, r0, #0 cmp r1, #0 beq _080A7D38 _080A7D12: ldrh r0, [r1, #4] cmp r0, r5 bne _080A7D30 ldrb r0, [r1] cmp r0, #5 beq _080A7D24 cmp r0, #6 beq _080A7D2A b _080A7D38 _080A7D24: movs r6, #0 ldrh r4, [r1, #6] b _080A7D38 _080A7D2A: movs r6, #1 ldrh r4, [r1, #6] b _080A7D38 _080A7D30: adds r1, #8 ldrh r0, [r1, #4] cmp r0, #0 bne _080A7D12 _080A7D38: adds r0, r4, #0 adds r1, r6, #0 bl sub_080A7D44 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080A7D44 sub_080A7D44: @ 0x080A7D44 push {lr} cmp r1, #0 beq _080A7D52 movs r1, #0 bl sub_08078AA8 b _080A7D56 _080A7D52: bl sub_08056378 _080A7D56: pop {pc} thumb_func_start sub_080A7D58 sub_080A7D58: @ 0x080A7D58 push {lr} adds r3, r0, #0 ldrb r0, [r3, #9] lsls r0, r0, #4 ldr r1, _080A7D78 @ =gUnk_0813210C adds r2, r0, r1 ldrh r1, [r2] ldr r0, _080A7D7C @ =0x0000FFFF cmp r1, r0 bne _080A7D74 ldrb r0, [r3, #0xa] lsls r0, r0, #4 ldr r1, [r2, #4] adds r2, r1, r0 _080A7D74: adds r0, r2, #0 pop {pc} .align 2, 0 _080A7D78: .4byte gUnk_0813210C _080A7D7C: .4byte 0x0000FFFF thumb_func_start sub_080A7D80 sub_080A7D80: @ 0x080A7D80 push {r4, r5, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #1 ands r0, r1 cmp r0, #0 bne _080A7E4A adds r0, r4, #0 bl sub_080A7D58 adds r5, r0, #0 adds r0, r4, #0 adds r1, r5, #0 bl sub_080A7E50 cmp r0, #0 bne _080A7DA6 movs r0, #0 b _080A7E4C _080A7DA6: ldrb r1, [r4, #0x10] movs r0, #1 adds r2, r1, #0 orrs r2, r0 strb r2, [r4, #0x10] ldrb r1, [r5, #0xa] movs r0, #8 ands r0, r1 cmp r0, #0 beq _080A7DC0 movs r0, #0x80 orrs r2, r0 strb r2, [r4, #0x10] _080A7DC0: ldrh r0, [r5, #8] lsls r0, r0, #0x14 lsrs r0, r0, #0x14 strh r0, [r4, #0x12] ldrb r2, [r4, #0x18] lsls r0, r2, #0x1e cmp r0, #0 bne _080A7DE0 ldrb r1, [r5, #0xa] lsls r1, r1, #0x1a lsrs r1, r1, #0x1e movs r0, #4 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] _080A7DE0: ldrb r1, [r5, #0xa] lsls r1, r1, #0x1d adds r3, r4, #0 adds r3, #0x29 lsrs r1, r1, #0x1a ldrb r2, [r3] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] ldrb r1, [r5, #0xa] lsrs r1, r1, #6 lsls r1, r1, #4 ldrb r2, [r4, #0x18] movs r0, #0x31 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] movs r1, #0x24 ldrsh r0, [r4, r1] cmp r0, #0 bne _080A7E14 ldrh r0, [r5, #0xc] strh r0, [r4, #0x24] _080A7E14: ldrb r0, [r5, #9] lsrs r0, r0, #4 lsls r0, r0, #4 movs r1, #7 orrs r0, r1 adds r1, r4, #0 adds r1, #0x3c strb r0, [r1] ldrb r0, [r5, #0xf] subs r1, #1 strb r0, [r1] ldrb r0, [r5, #0xe] adds r1, #4 strb r0, [r1] ldrb r1, [r5, #0xb] adds r0, r4, #0 adds r0, #0x40 strb r1, [r0] adds r1, r4, #0 adds r1, #0x45 movs r0, #0xff strb r0, [r1] ldr r0, [r5, #4] str r0, [r4, #0x48] adds r0, r4, #0 bl sub_08016A04 _080A7E4A: movs r0, #1 _080A7E4C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080A7E50 sub_080A7E50: @ 0x080A7E50 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 ldrh r2, [r5] lsls r1, r2, #0x10 cmp r1, #0 beq _080A7EA2 movs r0, #0x80 lsls r0, r0, #8 ands r0, r2 cmp r0, #0 beq _080A7E78 ldr r0, _080A7E74 @ =0x000003FF ands r0, r2 adds r1, r4, #0 adds r1, #0x60 strh r0, [r1] b _080A7EA2 .align 2, 0 _080A7E74: .4byte 0x000003FF _080A7E78: movs r0, #0x80 lsls r0, r0, #7 ands r0, r2 cmp r0, #0 beq _080A7E92 lsrs r1, r1, #0x14 lsls r1, r1, #0x18 lsrs r1, r1, #0x18 adds r0, r4, #0 movs r2, #0 bl sub_080AE008 b _080A7E9A _080A7E92: ldrh r1, [r5] adds r0, r4, #0 bl sub_080ADF80 _080A7E9A: cmp r0, #0 bne _080A7EA2 movs r0, #0 b _080A7EAC _080A7EA2: ldrh r1, [r5, #2] adds r0, r4, #0 bl sub_0801D040 movs r0, #1 _080A7EAC: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080A7EB0 sub_080A7EB0: @ 0x080A7EB0 push {lr} adds r3, r0, #0 movs r1, #0x2e ldrsh r0, [r3, r1] ldr r2, _080A7ED8 @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r0, r0, r1 ldrh r1, [r2, #0x1e] cmp r0, r1 bhi _080A7ED2 movs r1, #0x32 ldrsh r0, [r3, r1] ldrh r1, [r2, #8] subs r0, r0, r1 ldrh r2, [r2, #0x20] cmp r0, r2 bls _080A7EDC _080A7ED2: movs r0, #1 b _080A7EDE .align 2, 0 _080A7ED8: .4byte gUnk_03000BF0 _080A7EDC: movs r0, #0 _080A7EDE: pop {pc} thumb_func_start sub_080A7EE0 sub_080A7EE0: @ 0x080A7EE0 push {r4, r5, lr} adds r5, r0, #0 bl sub_0805E678 adds r4, r0, #0 cmp r4, #0 beq _080A7EFC movs r0, #4 strb r0, [r4, #8] strb r5, [r4, #9] adds r0, r4, #0 movs r1, #5 bl sub_0805EA2C _080A7EFC: adds r0, r4, #0 pop {r4, r5, pc} thumb_func_start sub_080A7F00 sub_080A7F00: @ 0x080A7F00 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080A7F26 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_080A7F80 ldrb r0, [r4, #0xa] cmp r0, #3 bne _080A7F26 ldr r0, [r4, #0x50] ldrb r1, [r0, #0x14] adds r1, #0x18 adds r0, r4, #0 bl sub_080042AC _080A7F26: ldr r0, [r4, #0x50] cmp r0, #0 beq _080A7F34 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _080A7F38 _080A7F34: bl sub_0805E780 _080A7F38: adds r2, r4, #0 adds r2, #0x41 ldrb r1, [r2] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080A7F56 ldr r1, [r4, #0x4c] ldr r0, _080A7F7C @ =gUnk_03001160 cmp r1, r0 bne _080A7F56 adds r1, r4, #0 adds r1, #0x3d movs r0, #0xd3 strb r0, [r1] _080A7F56: movs r0, #0 strb r0, [r2] ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA6C adds r0, r4, #0 bl sub_080A7F9C ldrb r0, [r4, #0xa] cmp r0, #3 bne _080A7F7A ldrh r0, [r4, #0x32] adds r0, #1 strh r0, [r4, #0x32] adds r0, r4, #0 bl sub_080042B8 _080A7F7A: pop {r4, pc} .align 2, 0 _080A7F7C: .4byte gUnk_03001160 thumb_func_start sub_080A7F80 sub_080A7F80: @ 0x080A7F80 ldr r3, _080A7F98 @ =gUnk_081293B8 ldr r2, [r0, #0x50] ldrb r1, [r0, #0xa] lsls r1, r1, #2 ldrb r2, [r2, #0xa] adds r1, r1, r2 adds r1, r1, r3 ldrb r1, [r1] adds r0, #0x3f strb r1, [r0] bx lr .align 2, 0 _080A7F98: .4byte gUnk_081293B8 thumb_func_start sub_080A7F9C sub_080A7F9C: @ 0x080A7F9C push {lr} ldr r2, _080A7FB0 @ =gUnk_081293CC ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080A7FB0: .4byte gUnk_081293CC thumb_func_start sub_080A7FB4 sub_080A7FB4: @ 0x080A7FB4 ldr r1, [r0, #0x50] ldr r3, _080A7FD4 @ =gUnk_081293E0 ldrb r2, [r1, #0x14] lsls r2, r2, #2 adds r2, r2, r3 adds r1, #0x5a ldrb r3, [r1] movs r1, #0xf ands r1, r3 ldr r2, [r2] lsls r1, r1, #2 adds r1, r1, r2 subs r1, #4 ldr r1, [r1] str r1, [r0, #0x48] bx lr .align 2, 0 _080A7FD4: .4byte gUnk_081293E0 thumb_func_start sub_080A7FD8 sub_080A7FD8: @ 0x080A7FD8 ldr r1, [r0, #0x50] ldr r2, _080A7FE8 @ =gUnk_081293F0 ldrb r1, [r1, #0x14] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] str r1, [r0, #0x48] bx lr .align 2, 0 _080A7FE8: .4byte gUnk_081293F0 thumb_func_start sub_080A7FEC sub_080A7FEC: @ 0x080A7FEC push {lr} adds r3, r0, #0 ldr r2, [r3, #0x50] adds r0, r2, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _080A8008 ldr r0, _080A8004 @ =gUnk_08129410 b _080A800A .align 2, 0 _080A8004: .4byte gUnk_08129410 _080A8008: ldr r0, _080A8018 @ =gUnk_08129400 _080A800A: ldrb r1, [r2, #0x14] lsls r1, r1, #2 adds r1, r1, r0 ldr r0, [r1] str r0, [r3, #0x48] pop {pc} .align 2, 0 _080A8018: .4byte gUnk_08129400 thumb_func_start sub_080A801C sub_080A801C: @ 0x080A801C ldr r1, [r0, #0x50] ldr r2, _080A802C @ =gUnk_08129420 ldrb r1, [r1, #0x14] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] str r1, [r0, #0x48] bx lr .align 2, 0 _080A802C: .4byte gUnk_08129420 thumb_func_start sub_080A8030 sub_080A8030: @ 0x080A8030 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A8048 @ =gUnk_081295D0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080A8048: .4byte gUnk_081295D0 thumb_func_start sub_080A804C sub_080A804C: @ 0x080A804C push {lr} ldr r2, _080A8060 @ =gUnk_081295E4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080A8060: .4byte gUnk_081295E4 thumb_func_start sub_080A8064 sub_080A8064: @ 0x080A8064 push {lr} adds r1, r0, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x80 bne _080A8078 adds r0, r1, #0 bl sub_0805E7BC b _080A8086 _080A8078: adds r0, r1, #0 adds r0, #0x3e ldrb r0, [r0] strb r0, [r1, #0x15] adds r0, r1, #0 bl sub_080A8178 _080A8086: pop {pc} thumb_func_start sub_080A8088 sub_080A8088: @ 0x080A8088 push {lr} movs r1, #1 strb r1, [r0, #0xc] movs r1, #0x30 strb r1, [r0, #0xe] movs r1, #0xa0 lsls r1, r1, #8 str r1, [r0, #0x20] movs r1, #0 bl sub_08004260 pop {pc} thumb_func_start sub_080A80A0 sub_080A80A0: @ 0x080A80A0 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080AF090 cmp r0, #0 beq _080A80DC adds r0, r4, #0 bl sub_080A7EB0 cmp r0, #0 beq _080A80C4 adds r0, r4, #0 bl sub_0805E7BC b _080A80F0 _080A80C4: adds r0, r4, #0 bl sub_08016AD2 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080A80F0 movs r0, #3 strb r0, [r4, #0xc] b _080A80F0 _080A80DC: ldrh r1, [r4, #0x2a] adds r0, r4, #0 bl sub_0800417E adds r0, r4, #0 bl sub_080A8178 adds r0, r4, #0 bl sub_08016AD2 _080A80F0: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A80F4 sub_080A80F4: @ 0x080A80F4 push {r4, lr} adds r4, r0, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_08004274 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _080A8116 adds r0, r4, #0 bl sub_0805E7BC _080A8116: pop {r4, pc} thumb_func_start sub_080A8118 sub_080A8118: @ 0x080A8118 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080AF090 movs r1, #0xa0 lsls r1, r1, #6 adds r0, r4, #0 bl sub_080044EC cmp r0, #0 beq _080A813A cmp r0, #1 beq _080A8142 b _080A815A _080A813A: adds r0, r4, #0 bl sub_0805E7BC b _080A8176 _080A8142: ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r0, #0x90 lsls r0, r0, #1 strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_0800442E cmp r0, #0 bne _080A8176 _080A815A: ldrb r1, [r4, #0x10] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080A8176 ldrb r2, [r4, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #1 eors r1, r0 subs r0, #5 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] _080A8176: pop {r4, pc} thumb_func_start sub_080A8178 sub_080A8178: @ 0x080A8178 movs r1, #2 strb r1, [r0, #0xc] ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] movs r1, #0x40 strh r1, [r0, #0x24] movs r1, #0xa0 lsls r1, r1, #9 str r1, [r0, #0x20] bx lr thumb_func_start sub_080A8190 sub_080A8190: @ 0x080A8190 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A81A8 @ =gUnk_0812960C bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080A81A8: .4byte gUnk_0812960C thumb_func_start sub_080A81AC sub_080A81AC: @ 0x080A81AC push {lr} ldr r2, _080A81C0 @ =gUnk_08129620 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080A81C0: .4byte gUnk_08129620 thumb_func_start sub_080A81C4 sub_080A81C4: @ 0x080A81C4 push {lr} adds r1, r0, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x80 bne _080A81D8 adds r0, r1, #0 bl sub_0805E7BC b _080A81DE _080A81D8: adds r0, r1, #0 bl sub_080A82D8 _080A81DE: pop {pc} thumb_func_start sub_080A81E0 sub_080A81E0: @ 0x080A81E0 push {lr} movs r1, #1 strb r1, [r0, #0xc] movs r1, #0x3c strb r1, [r0, #0xe] ldr r1, _080A81F8 @ =0x0000FFFE strh r1, [r0, #0x36] movs r1, #0 bl sub_08004260 pop {pc} .align 2, 0 _080A81F8: .4byte 0x0000FFFE thumb_func_start sub_080A81FC sub_080A81FC: @ 0x080A81FC push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080AF090 ldrh r0, [r4, #0x2a] cmp r0, #0 bne _080A8240 adds r0, r4, #0 bl sub_080A7EB0 cmp r0, #0 beq _080A8222 adds r0, r4, #0 bl sub_0805E7BC b _080A8246 _080A8222: adds r0, r4, #0 bl sub_08016AD2 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080A8246 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x90 lsls r0, r0, #1 strh r0, [r4, #0x24] b _080A8246 _080A8240: adds r0, r4, #0 bl sub_080A82D8 _080A8246: pop {r4, pc} thumb_func_start sub_080A8248 sub_080A8248: @ 0x080A8248 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080AF090 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _080A827A movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r0, #0xe0 strh r0, [r4, #0x24] movs r0, #0xe0 lsls r0, r0, #8 str r0, [r4, #0x20] _080A827A: pop {r4, pc} thumb_func_start sub_080A827C sub_080A827C: @ 0x080A827C push {r4, lr} adds r4, r0, #0 ldrb r2, [r4, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #1 eors r1, r0 subs r0, #5 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_08004274 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_080044EC cmp r0, #0 bne _080A82B2 adds r0, r4, #0 bl sub_0805E7BC _080A82B2: pop {r4, pc} thumb_func_start sub_080A82B4 sub_080A82B4: @ 0x080A82B4 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0806F69C movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _080A82D6 adds r0, r4, #0 bl sub_0805E7BC _080A82D6: pop {r4, pc} thumb_func_start sub_080A82D8 sub_080A82D8: @ 0x080A82D8 movs r1, #4 strb r1, [r0, #0xc] ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] movs r1, #0x80 lsls r1, r1, #9 str r1, [r0, #0x20] ldrb r1, [r0, #0x15] movs r2, #0x10 eors r1, r2 strb r1, [r0, #0x15] movs r1, #0x80 strh r1, [r0, #0x24] bx lr thumb_func_start sub_080A82F8 sub_080A82F8: @ 0x080A82F8 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A8310 @ =gUnk_08129650 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080A8310: .4byte gUnk_08129650 thumb_func_start sub_080A8314 sub_080A8314: @ 0x080A8314 push {lr} ldr r2, _080A8328 @ =gUnk_08129664 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080A8328: .4byte gUnk_08129664 thumb_func_start sub_080A832C sub_080A832C: @ 0x080A832C push {lr} adds r3, r0, #0 adds r2, r3, #0 adds r2, #0x41 ldrb r0, [r2] cmp r0, #0x80 bne _080A8358 adds r1, r3, #0 adds r1, #0x3d movs r0, #0x10 strb r0, [r1] adds r1, #5 movs r0, #0xc strb r0, [r1] adds r1, #4 movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r1] ldr r0, [r3, #0x50] ldrb r1, [r2] adds r0, #0x41 strb r1, [r0] _080A8358: adds r0, r3, #0 adds r0, #0x3d ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080A836A ldr r0, [r3, #0x50] b _080A836E _080A836A: ldr r0, [r3, #0x50] rsbs r1, r1, #0 _080A836E: adds r0, #0x3d strb r1, [r0] ldr r0, [r3, #0x50] movs r1, #0x42 adds r1, r1, r3 mov ip, r1 ldrb r1, [r1] adds r0, #0x42 strb r1, [r0] ldr r0, [r3, #0x50] adds r1, r3, #0 adds r1, #0x46 ldrh r1, [r1] adds r0, #0x46 movs r2, #0 strh r1, [r0] ldr r0, [r3, #0x50] adds r1, r3, #0 adds r1, #0x3e ldrb r1, [r1] adds r0, #0x3e strb r1, [r0] mov r0, ip strb r2, [r0] pop {pc} thumb_func_start sub_080A83A0 sub_080A83A0: @ 0x080A83A0 push {r4, lr} adds r4, r0, #0 bl sub_0806FBD8 cmp r0, #0 beq _080A83B0 movs r0, #1 strb r0, [r4, #0xc] _080A83B0: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A83B4 sub_080A83B4: @ 0x080A83B4 push {r4, r5, lr} adds r4, r0, #0 ldr r5, [r4, #0x50] cmp r5, #0 bne _080A83C2 bl sub_0805E780 _080A83C2: ldr r0, [r5, #4] cmp r0, #0 bne _080A83CC bl sub_0805E780 _080A83CC: adds r0, r5, #0 adds r0, #0x5a ldrb r0, [r0] lsls r0, r0, #0x1a lsrs r0, r0, #0x18 ldr r1, _080A8424 @ =gUnk_0812966C adds r2, r0, r1 ldr r1, [r4, #0x48] ldrb r0, [r2] strb r0, [r1] adds r2, #1 adds r0, r5, #0 adds r0, #0x5b ldrb r0, [r0] cmp r0, #0x40 bne _080A83F4 ldr r1, [r4, #0x48] ldrb r0, [r1] rsbs r0, r0, #0 strb r0, [r1] _080A83F4: ldr r1, [r4, #0x48] ldrb r0, [r2] strb r0, [r1, #1] adds r2, #1 ldr r1, [r4, #0x48] ldrb r0, [r2] strb r0, [r1, #6] ldr r1, [r4, #0x48] ldrb r0, [r2, #1] strb r0, [r1, #7] adds r0, r5, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _080A8428 ldrb r1, [r4, #0x10] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080A8438 movs r0, #0x7f ands r0, r1 b _080A8436 .align 2, 0 _080A8424: .4byte gUnk_0812966C _080A8428: ldrb r1, [r4, #0x10] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080A8438 movs r0, #0x80 orrs r0, r1 _080A8436: strb r0, [r4, #0x10] _080A8438: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080A843C sub_080A843C: @ 0x080A843C push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A8454 @ =gUnk_081296F0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080A8454: .4byte gUnk_081296F0 thumb_func_start sub_080A8458 sub_080A8458: @ 0x080A8458 push {lr} ldr r2, _080A846C @ =gUnk_08129704 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080A846C: .4byte gUnk_08129704 thumb_func_start sub_080A8470 sub_080A8470: @ 0x080A8470 push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x41 ldrb r0, [r2] cmp r0, #0x80 bne _080A8496 adds r0, r4, #0 adds r0, #0x3f ldrb r0, [r0] cmp r0, #0x68 bne _080A848E movs r0, #0x86 bl sub_08004488 _080A848E: adds r0, r4, #0 bl sub_0805E7BC b _080A84C6 _080A8496: adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] adds r0, #4 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] ldrb r0, [r2] adds r0, #0x7e lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _080A84B8 adds r0, r4, #0 bl sub_080A8680 b _080A84C6 _080A84B8: adds r0, r4, #0 movs r1, #0x19 bl sub_08004260 adds r0, r4, #0 bl sub_080A86A0 _080A84C6: pop {r4, pc} thumb_func_start sub_080A84C8 sub_080A84C8: @ 0x080A84C8 push {r4, lr} adds r4, r0, #0 movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x30 strb r0, [r4, #0xe] strb r1, [r4, #0xf] ldrh r0, [r4, #0x36] subs r0, #4 strh r0, [r4, #0x36] movs r0, #0x15 bl sub_0807CC30 cmp r0, #0 bne _080A84F0 adds r1, r4, #0 adds r1, #0x3f movs r0, #0x68 strb r0, [r1] _080A84F0: ldr r0, _080A8500 @ =0x0000018D bl sub_08004488 adds r0, r4, #0 movs r1, #0x18 bl sub_08004260 pop {r4, pc} .align 2, 0 _080A8500: .4byte 0x0000018D thumb_func_start sub_080A8504 sub_080A8504: @ 0x080A8504 push {r4, r5, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080AF090 cmp r0, #0 beq _080A853C adds r0, r4, #0 bl sub_080A7EB0 cmp r0, #0 beq _080A8524 bl sub_0805E780 _080A8524: adds r0, r4, #0 bl sub_08016AD2 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080A8558 movs r0, #4 strb r0, [r4, #0xc] b _080A8558 _080A853C: ldrh r1, [r4, #0x2a] adds r0, r4, #0 bl sub_0800417E adds r0, r4, #0 bl sub_08016AD2 adds r0, r4, #0 movs r1, #0x19 bl sub_08004260 adds r0, r4, #0 bl sub_080A86A0 _080A8558: ldrb r0, [r4, #0xf] cmp r0, #0 beq _080A85B6 ldr r5, [r4, #0x50] ldr r0, [r5, #4] cmp r0, #0 beq _080A85B6 adds r0, r4, #0 adds r1, r5, #0 bl sub_080177A0 cmp r0, #0 beq _080A85B6 adds r0, r4, #0 adds r0, #0x3d movs r3, #0 movs r2, #0x10 strb r2, [r0] ldrb r0, [r4, #0x15] rsbs r0, r0, #0 adds r1, r4, #0 adds r1, #0x3e strb r0, [r1] adds r1, #3 movs r0, #0x80 strb r0, [r1] adds r0, r4, #0 adds r0, #0x42 movs r1, #0xc strb r1, [r0] adds r0, #4 strh r3, [r0] adds r0, r5, #0 adds r0, #0x3d strb r2, [r0] ldrb r0, [r4, #0x15] adds r2, r5, #0 adds r2, #0x3e strb r0, [r2] adds r2, #3 movs r0, #0xc2 strb r0, [r2] adds r0, r5, #0 adds r0, #0x42 strb r1, [r0] adds r0, #4 strh r3, [r0] _080A85B6: pop {r4, r5, pc} thumb_func_start sub_080A85B8 sub_080A85B8: @ 0x080A85B8 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080AF090 cmp r0, #0 beq _080A85F2 adds r0, r4, #0 bl sub_080A7EB0 cmp r0, #0 beq _080A85D8 bl sub_0805E780 _080A85D8: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080A860E movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x10] b _080A860E _080A85F2: ldrh r1, [r4, #0x2a] adds r0, r4, #0 bl sub_0800417E adds r0, r4, #0 bl sub_08016AD2 adds r0, r4, #0 movs r1, #0x19 bl sub_08004260 adds r0, r4, #0 bl sub_080A86A0 _080A860E: pop {r4, pc} thumb_func_start sub_080A8610 sub_080A8610: @ 0x080A8610 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 _080A8628 bl sub_0805E780 _080A8628: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A862C sub_080A862C: @ 0x080A862C push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080AF090 movs r1, #0xa0 lsls r1, r1, #6 adds r0, r4, #0 bl sub_080044EC cmp r0, #0 beq _080A864E cmp r0, #1 beq _080A8654 b _080A8662 _080A864E: bl sub_0805E780 b _080A867E _080A8654: ldrb r0, [r4, #0x10] movs r1, #0x7f ands r1, r0 strb r1, [r4, #0x10] movs r0, #0x90 lsls r0, r0, #1 strh r0, [r4, #0x24] _080A8662: ldrb r1, [r4, #0x10] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080A867E ldrb r2, [r4, #0x18] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e movs r0, #1 eors r1, r0 subs r0, #5 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] _080A867E: pop {r4, pc} thumb_func_start sub_080A8680 sub_080A8680: @ 0x080A8680 push {lr} movs r1, #2 strb r1, [r0, #0xc] ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] movs r1, #3 strb r1, [r0, #0xe] movs r1, #1 strb r1, [r0, #0xf] movs r0, #0x8c lsls r0, r0, #1 bl sub_08004488 pop {pc} thumb_func_start sub_080A86A0 sub_080A86A0: @ 0x080A86A0 push {lr} movs r3, #0 movs r1, #3 strb r1, [r0, #0xc] ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] strh r3, [r0, #0x24] movs r0, #0xc7 lsls r0, r0, #1 bl sub_08004488 pop {pc} thumb_func_start sub_080A86BC sub_080A86BC: @ 0x080A86BC push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A86D4 @ =gUnk_08129718 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080A86D4: .4byte gUnk_08129718 thumb_func_start sub_080A86D8 sub_080A86D8: @ 0x080A86D8 push {lr} ldr r2, _080A86EC @ =gUnk_0812972C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080A86EC: .4byte gUnk_0812972C thumb_func_start sub_080A86F0 sub_080A86F0: @ 0x080A86F0 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r1, [r4, #0x50] cmp r1, #0 bne _080A8700 bl sub_0805E780 b _080A876E _080A8700: adds r5, r1, #0 adds r5, #0x83 ldrb r1, [r5] movs r3, #0x3f adds r0, r3, #0 ands r0, r1 cmp r0, #3 bne _080A8768 ldr r0, _080A875C @ =gUnk_03003F80 ldrb r0, [r0, #0xf] cmp r0, #0 beq _080A876E movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _080A8760 @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r3 movs r6, #0x32 ldrsh r1, [r4, r6] ldrh r2, [r2, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r3 lsls r1, r1, #6 orrs r0, r1 ldr r1, _080A8764 @ =gUnk_03001160 adds r1, #0x38 ldrb r1, [r1] bl sub_080002E0 cmp r0, #0 bne _080A876E adds r0, r4, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x80 bne _080A876E ldrb r1, [r5] movs r0, #0x7f ands r0, r1 strb r0, [r5] bl sub_0805E780 b _080A876E .align 2, 0 _080A875C: .4byte gUnk_03003F80 _080A8760: .4byte gUnk_03000BF0 _080A8764: .4byte gUnk_03001160 _080A8768: adds r0, r4, #0 bl sub_0805E7BC _080A876E: pop {r4, r5, r6, pc} thumb_func_start sub_080A8770 sub_080A8770: @ 0x080A8770 movs r1, #1 strb r1, [r0, #0xc] adds r3, r0, #0 adds r3, #0x3c ldrb r2, [r3] movs r1, #0x10 orrs r1, r2 strb r1, [r3] ldr r1, _080A8788 @ =gUnk_08129734 str r1, [r0, #0x48] bx lr .align 2, 0 _080A8788: .4byte gUnk_08129734 thumb_func_start sub_080A878C sub_080A878C: @ 0x080A878C push {r4, r5, lr} adds r5, r0, #0 ldr r4, [r5, #0x50] cmp r4, #0 bne _080A879A bl sub_0805E780 _080A879A: ldr r0, [r4, #4] cmp r0, #0 bne _080A87A4 bl sub_0805E780 _080A87A4: adds r0, r4, #0 adds r0, #0x83 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #3 beq _080A87B6 bl sub_0805E780 _080A87B6: adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA24 ldrh r0, [r5, #0x36] adds r0, #2 strh r0, [r5, #0x36] pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080A87C8 sub_080A87C8: @ 0x080A87C8 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A87E0 @ =gUnk_08129740 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080A87E0: .4byte gUnk_08129740 thumb_func_start sub_080A87E4 sub_080A87E4: @ 0x080A87E4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #1 bne _080A8804 ldr r0, [r4, #0x54] cmp r0, #0 bne _080A87F8 bl sub_0805E780 _080A87F8: ldr r0, [r4, #0x54] ldr r0, [r0, #4] cmp r0, #0 bne _080A8804 bl sub_0805E780 _080A8804: ldr r0, _080A8818 @ =gUnk_08129754 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _080A8818: .4byte gUnk_08129754 thumb_func_start sub_080A881C sub_080A881C: @ 0x080A881C push {lr} adds r1, r0, #0 adds r2, r1, #0 adds r2, #0x46 movs r0, #0 strh r0, [r2] ldrb r2, [r1, #0xa] cmp r2, #0 bne _080A8854 ldr r0, [r1, #0x50] str r2, [r0, #0x54] adds r0, r1, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x80 bne _080A884A ldr r0, _080A8850 @ =gUnk_03003F80 movs r1, #0xf0 strb r1, [r0, #0xf] movs r0, #2 rsbs r0, r0, #0 bl sub_080526A0 _080A884A: bl sub_0805E780 b _080A8866 .align 2, 0 _080A8850: .4byte gUnk_03003F80 _080A8854: ldrb r0, [r1, #0xc] cmp r0, #1 bhi _080A8866 movs r0, #2 strb r0, [r1, #0xc] ldr r0, [r1, #0x50] adds r0, #0x83 movs r1, #0xc0 strb r1, [r0] _080A8866: pop {pc} thumb_func_start sub_080A8868 sub_080A8868: @ 0x080A8868 push {r4, lr} adds r3, r0, #0 movs r4, #0 movs r0, #1 strb r0, [r3, #0xc] strb r4, [r3, #0xd] ldrb r1, [r3, #0x18] subs r0, #0x32 ands r0, r1 movs r1, #0x10 orrs r0, r1 strb r0, [r3, #0x18] movs r0, #0x80 lsls r0, r0, #8 str r0, [r3, #0x20] ldr r0, _080A88A4 @ =gUnk_08129764 str r0, [r3, #0x48] adds r2, r3, #0 adds r2, #0x3c ldrb r0, [r2] orrs r1, r0 strb r1, [r2] ldrb r0, [r3, #0xa] cmp r0, #1 beq _080A88B8 cmp r0, #1 bgt _080A88A8 cmp r0, #0 beq _080A88AE b _080A88C6 .align 2, 0 _080A88A4: .4byte gUnk_08129764 _080A88A8: cmp r0, #2 beq _080A88BE b _080A88C6 _080A88AE: adds r0, r3, #0 movs r1, #0 bl sub_08004260 b _080A88C6 _080A88B8: strb r4, [r3, #0xe] strb r4, [r3, #0xf] b _080A88C6 _080A88BE: adds r0, r3, #0 movs r1, #5 bl sub_08004260 _080A88C6: pop {r4, pc} thumb_func_start sub_080A88C8 sub_080A88C8: @ 0x080A88C8 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r6, [r4, #0x50] cmp r6, #0 bne _080A88D6 movs r0, #2 strb r0, [r4, #0xc] _080A88D6: ldr r0, [r6, #4] cmp r0, #0 bne _080A88E0 movs r0, #2 strb r0, [r4, #0xc] _080A88E0: ldr r3, _080A88FC @ =0xFFFF0000 adds r0, r6, #0 adds r1, r4, #0 movs r2, #0 bl sub_0806FA48 ldrb r5, [r4, #0xa] cmp r5, #1 beq _080A890E cmp r5, #1 bgt _080A8900 cmp r5, #0 beq _080A8906 b _080A8982 .align 2, 0 _080A88FC: .4byte 0xFFFF0000 _080A8900: cmp r5, #2 beq _080A8962 b _080A8982 _080A8906: ldrh r0, [r4, #0x36] adds r0, #0x10 strh r0, [r4, #0x36] b _080A8982 _080A890E: ldrh r0, [r4, #0x36] adds r0, #0xe strh r0, [r4, #0x36] ldr r0, [r4, #0x54] bl sub_08078954 ldr r1, [r4, #0x54] adds r0, r4, #0 bl sub_0806FA24 ldrb r0, [r4, #0xe] adds r1, r0, #1 strb r1, [r4, #0xe] lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xf bls _080A8982 ldr r2, [r4, #0x54] ldrb r0, [r2, #0xe] cmp r0, #0 bne _080A8982 movs r3, #2 ands r1, r3 cmp r1, #0 beq _080A8946 ldrb r0, [r2, #0xf] adds r0, #1 strb r0, [r2, #0xf] _080A8946: ldr r0, [r4, #0x54] ldrb r1, [r0, #0xf] cmp r1, #0x1f bhi _080A8982 movs r0, #3 ands r0, r1 cmp r0, #3 bne _080A8982 adds r1, r6, #0 adds r1, #0x83 movs r0, #0xc0 strb r0, [r1] strb r3, [r4, #0xc] b _080A8982 _080A8962: ldrh r0, [r4, #0x36] adds r0, #0xe strh r0, [r4, #0x36] ldr r1, _080A8984 @ =gUnk_03001160 adds r0, r4, #0 movs r2, #0xe movs r3, #0xe bl sub_080041A0 cmp r0, #0 beq _080A8982 strb r5, [r4, #0xc] adds r1, r6, #0 adds r1, #0x83 movs r0, #0xc0 strb r0, [r1] _080A8982: pop {r4, r5, r6, pc} .align 2, 0 _080A8984: .4byte gUnk_03001160 thumb_func_start sub_080A8988 sub_080A8988: @ 0x080A8988 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xa] cmp r0, #1 bne _080A89B4 ldr r4, [r5, #0x54] cmp r4, #0 bne _080A899C bl sub_0805E780 _080A899C: ldr r0, [r4, #4] cmp r0, #0 bne _080A89A6 bl sub_0805E780 _080A89A6: adds r0, r4, #0 bl sub_08078954 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 _080A89B4: movs r1, #0xa0 lsls r1, r1, #6 adds r0, r5, #0 bl sub_080044EC cmp r0, #1 bne _080A8A44 adds r0, r5, #0 bl sub_080043E8 cmp r0, #0 beq _080A8A00 cmp r0, #2 beq _080A89E0 cmp r0, #2 bhi _080A89DA cmp r0, #1 beq _080A89E6 b _080A89FC _080A89DA: cmp r0, #3 beq _080A89F2 b _080A89FC _080A89E0: adds r0, r5, #0 movs r1, #0xb b _080A89EA _080A89E6: adds r0, r5, #0 movs r1, #0 _080A89EA: movs r2, #0 bl sub_080A29AC b _080A89FC _080A89F2: adds r0, r5, #0 movs r1, #0xc movs r2, #0 bl sub_080A29AC _080A89FC: bl sub_0805E780 _080A8A00: ldrb r0, [r5, #0xa] cmp r0, #1 beq _080A8A3E cmp r0, #1 bgt _080A8A10 cmp r0, #0 beq _080A8A16 b _080A8A44 _080A8A10: cmp r0, #2 beq _080A8A2A b _080A8A44 _080A8A16: adds r0, r5, #0 movs r1, #1 bl sub_08004260 movs r0, #0x84 bl sub_08004488 movs r0, #3 strb r0, [r5, #0xc] b _080A8A44 _080A8A2A: adds r0, r5, #0 movs r1, #5 movs r2, #0x80 bl sub_080A29AC adds r4, r0, #0 cmp r4, #0 beq _080A8A3E movs r0, #0 str r0, [r4, #0x50] _080A8A3E: adds r0, r5, #0 bl sub_0805E7BC _080A8A44: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080A8A48 sub_080A8A48: @ 0x080A8A48 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080A8A64 adds r0, r4, #0 bl sub_0805E7BC _080A8A64: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A8A68 sub_080A8A68: @ 0x080A8A68 push {r4, lr} adds r4, r0, #0 bl sub_0800279C cmp r0, #0 beq _080A8A78 bl sub_0805E780 _080A8A78: ldr r0, _080A8A8C @ =gUnk_0812979C ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _080A8A8C: .4byte gUnk_0812979C thumb_func_start sub_080A8A90 sub_080A8A90: @ 0x080A8A90 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xa] cmp r0, #0 bne _080A8AAA movs r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x15] lsrs r1, r1, #3 adds r0, r2, #0 bl sub_08004260 b _080A8AC2 _080A8AAA: movs r0, #2 strb r0, [r2, #0xc] ldrb r1, [r2, #0x15] lsrs r1, r1, #3 movs r0, #4 orrs r1, r0 adds r0, r2, #0 bl sub_08004260 ldr r0, _080A8AC4 @ =0x0000015F bl sub_08004488 _080A8AC2: pop {pc} .align 2, 0 _080A8AC4: .4byte 0x0000015F thumb_func_start sub_080A8AC8 sub_080A8AC8: @ 0x080A8AC8 push {r4, r5, lr} adds r4, r0, #0 ldr r5, [r4, #0x50] cmp r5, #0 bne _080A8AD8 bl sub_0805E7BC b _080A8B34 _080A8AD8: ldr r0, [r5, #4] cmp r0, #0 bne _080A8AE6 adds r0, r4, #0 bl sub_0805E7BC b _080A8B34 _080A8AE6: ldrb r0, [r4, #0x18] lsls r0, r0, #0x1e lsrs r0, r0, #0x1e cmp r0, #1 bne _080A8B2E adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 ldrb r0, [r5, #0x15] adds r2, r0, #4 movs r0, #0x18 ands r2, r0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _080A8B1A movs r0, #0 strb r2, [r4, #0x15] lsrs r1, r2, #2 strb r1, [r4, #0x14] strb r0, [r4, #0xe] lsrs r1, r2, #3 adds r0, r4, #0 bl sub_08004260 b _080A8B2E _080A8B1A: lsrs r0, r2, #2 ldrb r1, [r4, #0x14] cmp r0, r1 beq _080A8B2E strb r2, [r4, #0x15] strb r0, [r4, #0x14] lsrs r1, r2, #3 adds r0, r4, #0 bl sub_08004260 _080A8B2E: adds r0, r4, #0 bl sub_08004274 _080A8B34: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080A8B38 sub_080A8B38: @ 0x080A8B38 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080AF090 adds r2, r0, #0 cmp r2, #0 beq _080A8B66 adds r0, r4, #0 bl sub_080A7EB0 cmp r0, #0 beq _080A8B5E adds r0, r4, #0 bl sub_0805E7BC b _080A8B74 _080A8B5E: adds r0, r4, #0 bl sub_08016AD2 b _080A8B74 _080A8B66: movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] strh r2, [r4, #0x24] _080A8B74: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A8B78 sub_080A8B78: @ 0x080A8B78 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080A8B94 adds r0, r4, #0 bl sub_0805E7BC _080A8B94: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A8B98 sub_080A8B98: @ 0x080A8B98 push {r4, lr} adds r4, r0, #0 bl sub_0800279C cmp r0, #0 beq _080A8BA8 bl sub_0805E780 _080A8BA8: ldr r0, _080A8BBC @ =gUnk_0812982C ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _080A8BBC: .4byte gUnk_0812982C thumb_func_start sub_080A8BC0 sub_080A8BC0: @ 0x080A8BC0 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xa] cmp r0, #0 bne _080A8BDA movs r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x15] lsrs r1, r1, #3 adds r0, r2, #0 bl sub_08004260 b _080A8BF4 _080A8BDA: movs r0, #2 strb r0, [r2, #0xc] ldrb r1, [r2, #0x15] lsrs r1, r1, #3 movs r0, #4 orrs r1, r0 adds r0, r2, #0 bl sub_08004260 movs r0, #0xaf lsls r0, r0, #1 bl sub_08004488 _080A8BF4: pop {pc} .align 2, 0 thumb_func_start sub_080A8BF8 sub_080A8BF8: @ 0x080A8BF8 push {r4, r5, lr} adds r4, r0, #0 ldr r5, [r4, #0x50] cmp r5, #0 bne _080A8C08 bl sub_0805E7BC b _080A8C48 _080A8C08: ldr r0, [r5, #4] cmp r0, #0 bne _080A8C16 adds r0, r4, #0 bl sub_0805E7BC b _080A8C48 _080A8C16: ldrb r0, [r4, #0x18] lsls r0, r0, #0x1e lsrs r0, r0, #0x1e cmp r0, #1 bne _080A8C42 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 ldrb r0, [r4, #0xe] cmp r0, #0 beq _080A8C42 ldrb r0, [r5, #0x15] movs r1, #0x18 ands r1, r0 movs r0, #0 strb r1, [r4, #0x15] strb r0, [r4, #0xe] lsrs r1, r1, #3 adds r0, r4, #0 bl sub_08004260 _080A8C42: adds r0, r4, #0 bl sub_08004274 _080A8C48: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080A8C4C sub_080A8C4C: @ 0x080A8C4C push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080AF090 adds r2, r0, #0 cmp r2, #0 beq _080A8C7A adds r0, r4, #0 bl sub_080A7EB0 cmp r0, #0 beq _080A8C72 adds r0, r4, #0 bl sub_0805E7BC b _080A8C88 _080A8C72: adds r0, r4, #0 bl sub_08016AD2 b _080A8C88 _080A8C7A: movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] strh r2, [r4, #0x24] _080A8C88: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A8C8C sub_080A8C8C: @ 0x080A8C8C push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080A8CA8 adds r0, r4, #0 bl sub_0805E7BC _080A8CA8: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A8CAC sub_080A8CAC: @ 0x080A8CAC push {r4, lr} adds r4, r0, #0 bl sub_0800279C cmp r0, #0 beq _080A8CBC bl sub_0805E780 _080A8CBC: ldr r0, _080A8CD0 @ =gUnk_081298B8 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _080A8CD0: .4byte gUnk_081298B8 thumb_func_start sub_080A8CD4 sub_080A8CD4: @ 0x080A8CD4 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xa] cmp r0, #0 bne _080A8CEE movs r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x15] lsrs r1, r1, #3 adds r0, r2, #0 bl sub_08004260 b _080A8D08 _080A8CEE: movs r0, #2 strb r0, [r2, #0xc] ldrb r1, [r2, #0x15] lsrs r1, r1, #3 movs r0, #4 orrs r1, r0 adds r0, r2, #0 bl sub_08004260 movs r0, #0xb0 lsls r0, r0, #1 bl sub_08004488 _080A8D08: pop {pc} .align 2, 0 thumb_func_start sub_080A8D0C sub_080A8D0C: @ 0x080A8D0C push {r4, r5, lr} adds r4, r0, #0 ldr r5, [r4, #0x50] cmp r5, #0 bne _080A8D1C bl sub_0805E7BC b _080A8D5C _080A8D1C: ldr r0, [r5, #4] cmp r0, #0 bne _080A8D2A adds r0, r4, #0 bl sub_0805E7BC b _080A8D5C _080A8D2A: ldrb r0, [r4, #0x18] lsls r0, r0, #0x1e lsrs r0, r0, #0x1e cmp r0, #1 bne _080A8D56 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 ldrb r0, [r4, #0xe] cmp r0, #0 beq _080A8D56 ldrb r0, [r5, #0x15] movs r1, #0x18 ands r1, r0 movs r0, #0 strb r1, [r4, #0x15] strb r0, [r4, #0xe] lsrs r1, r1, #3 adds r0, r4, #0 bl sub_08004260 _080A8D56: adds r0, r4, #0 bl sub_08004274 _080A8D5C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080A8D60 sub_080A8D60: @ 0x080A8D60 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080AF090 adds r2, r0, #0 cmp r2, #0 beq _080A8D8E adds r0, r4, #0 bl sub_080A7EB0 cmp r0, #0 beq _080A8D86 adds r0, r4, #0 bl sub_0805E7BC b _080A8D9C _080A8D86: adds r0, r4, #0 bl sub_08016AD2 b _080A8D9C _080A8D8E: movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] strh r2, [r4, #0x24] _080A8D9C: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A8DA0 sub_080A8DA0: @ 0x080A8DA0 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080A8DBC adds r0, r4, #0 bl sub_0805E7BC _080A8DBC: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A8DC0 sub_080A8DC0: @ 0x080A8DC0 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A8DD8 @ =gUnk_08129954 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080A8DD8: .4byte gUnk_08129954 thumb_func_start sub_080A8DDC sub_080A8DDC: @ 0x080A8DDC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #3 beq _080A8E12 adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080A8E12 movs r2, #0x7f adds r0, r2, #0 ands r0, r1 cmp r0, #0x1e beq _080A8E12 movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] adds r0, r2, #0 ands r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #0x53 bl sub_08004260 _080A8E12: ldr r0, _080A8E24 @ =gUnk_08129968 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _080A8E24: .4byte gUnk_08129968 thumb_func_start sub_080A8E28 sub_080A8E28: @ 0x080A8E28 push {r4, r5, r6, lr} adds r5, r0, #0 movs r0, #1 strb r0, [r5, #0xc] ldr r0, _080A8E80 @ =0xFFFF0000 str r0, [r5, #0x20] ldrb r0, [r5, #0xa] cmp r0, #3 beq _080A8E6E ldr r0, [r5, #0x50] adds r1, r5, #0 bl sub_0806FA24 movs r1, #0x80 lsls r1, r1, #5 ldrb r2, [r5, #0x15] adds r0, r5, #0 bl sub_0806F5BC ldr r0, [r5, #0x50] ldr r2, [r5, #0x54] ldr r1, [r0, #0x30] ldr r0, [r2, #0x30] subs r1, r1, r0 str r1, [r5, #0x34] ldr r0, [r5, #0x30] subs r0, r0, r1 str r0, [r5, #0x30] adds r0, r5, #0 movs r1, #0x51 bl sub_08004260 ldr r0, _080A8E84 @ =0x000001B5 bl sub_080A3268 _080A8E6E: ldrb r4, [r5, #0xa] cmp r4, #2 beq _080A8EF2 cmp r4, #2 ble _080A8E88 cmp r4, #3 beq _080A8F02 b _080A8FAE .align 2, 0 _080A8E80: .4byte 0xFFFF0000 _080A8E84: .4byte 0x000001B5 _080A8E88: cmp r4, #0 bge _080A8E8E b _080A8FAE _080A8E8E: ldr r0, _080A8EC0 @ =gUnk_03001160 movs r2, #0x2e ldrsh r1, [r0, r2] movs r3, #0x32 ldrsh r2, [r0, r3] adds r0, r5, #0 bl sub_080041DC adds r4, r0, #0 ldrb r6, [r5, #0xa] cmp r6, #1 bne _080A8ECE bl sub_08000E50 adds r2, r0, #0 ldr r0, _080A8EC4 @ =0x000001FF ands r2, r0 ldr r0, _080A8EC8 @ =gUnk_030010A0 ldr r0, [r0] ands r0, r6 cmp r0, #0 bne _080A8ECC adds r4, r4, r2 b _080A8ECE .align 2, 0 _080A8EC0: .4byte gUnk_03001160 _080A8EC4: .4byte 0x000001FF _080A8EC8: .4byte gUnk_030010A0 _080A8ECC: subs r4, r4, r2 _080A8ECE: cmp r4, #0x1f bgt _080A8ED6 movs r4, #0x20 b _080A8EE0 _080A8ED6: movs r0, #0x80 lsls r0, r0, #3 cmp r4, r0 ble _080A8EE0 adds r4, r0, #0 _080A8EE0: lsls r1, r4, #8 ldr r0, [r5, #0x34] bl __divsi3 lsls r0, r0, #0xd str r0, [r5, #0x20] movs r0, #0x1e strb r0, [r5, #0xf] b _080A8FAE _080A8EF2: ldr r0, [r5, #0x34] movs r1, #0xc0 lsls r1, r1, #9 bl __divsi3 lsls r0, r0, #0xc str r0, [r5, #0x20] b _080A8FAE _080A8F02: ldr r0, _080A8F64 @ =0xFF600000 str r0, [r5, #0x34] bl sub_08000E50 ands r4, r0 lsls r2, r4, #1 ldr r1, _080A8F68 @ =gUnk_08129978 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r3, [r5, #0x2e] adds r0, r0, r3 strh r0, [r5, #0x2e] adds r0, r2, #1 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r5, #0x32] adds r0, r0, r1 strh r0, [r5, #0x32] movs r0, #2 ands r2, r0 cmp r2, #0 beq _080A8F74 bl sub_08000E50 ldr r2, _080A8F6C @ =gUnk_08129988 movs r1, #0xf ands r1, r0 adds r1, r1, r2 movs r0, #0 ldrsb r0, [r1, r0] ldrh r2, [r5, #0x2e] adds r0, r0, r2 strh r0, [r5, #0x2e] bl sub_08000E50 ldr r2, _080A8F70 @ =gUnk_08129980 movs r1, #7 ands r1, r0 adds r1, r1, r2 movs r0, #0 ldrsb r0, [r1, r0] ldrh r3, [r5, #0x32] adds r0, r0, r3 b _080A8F9E .align 2, 0 _080A8F64: .4byte 0xFF600000 _080A8F68: .4byte gUnk_08129978 _080A8F6C: .4byte gUnk_08129988 _080A8F70: .4byte gUnk_08129980 _080A8F74: bl sub_08000E50 ldr r2, _080A8FB0 @ =gUnk_08129980 movs r1, #7 ands r1, r0 adds r1, r1, r2 movs r0, #0 ldrsb r0, [r1, r0] ldrh r1, [r5, #0x2e] adds r0, r0, r1 strh r0, [r5, #0x2e] bl sub_08000E50 ldr r2, _080A8FB4 @ =gUnk_08129988 movs r1, #0xf ands r1, r0 adds r1, r1, r2 movs r0, #0 ldrsb r0, [r1, r0] ldrh r2, [r5, #0x32] adds r0, r0, r2 _080A8F9E: strh r0, [r5, #0x32] adds r0, r5, #0 bl sub_08004168 adds r0, r5, #0 movs r1, #0 bl sub_08004260 _080A8FAE: pop {r4, r5, r6, pc} .align 2, 0 _080A8FB0: .4byte gUnk_08129980 _080A8FB4: .4byte gUnk_08129988 thumb_func_start sub_080A8FB8 sub_080A8FB8: @ 0x080A8FB8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #3 bne _080A8FE8 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _080A9054 adds r0, r4, #0 movs r1, #7 bl sub_08008790 adds r0, r4, #0 movs r1, #4 movs r2, #0 bl sub_080A29AC bl sub_0805E780 b _080A9054 _080A8FE8: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0806F69C ldrb r0, [r4, #0xa] cmp r0, #2 beq _080A901C ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _080A901C movs r0, #0x1e strb r0, [r4, #0xf] ldr r1, _080A9048 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 _080A901C: adds r0, r4, #0 movs r1, #0 bl sub_08003FC4 cmp r0, #0 bne _080A9054 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_080A90D8 ldrb r0, [r4, #0xa] cmp r0, #2 bne _080A904C movs r0, #0xf strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0x54 bl sub_08004260 b _080A9054 .align 2, 0 _080A9048: .4byte gUnk_03001160 _080A904C: adds r0, r4, #0 movs r1, #0x52 bl sub_08004260 _080A9054: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A9058 sub_080A9058: @ 0x080A9058 push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xa] cmp r0, #2 bne _080A9098 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _080A908A ldrb r0, [r4, #0x10] movs r1, #0x7f ands r1, r0 strb r1, [r4, #0x10] movs r0, #3 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0x55 bl sub_08004260 b _080A90BA _080A908A: adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_080A90D8 b _080A90BA _080A9098: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080A90BA movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #0x53 bl sub_08004260 _080A90BA: pop {r4, pc} thumb_func_start sub_080A90BC sub_080A90BC: @ 0x080A90BC 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 _080A90D4 bl sub_0805E780 _080A90D4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A90D8 sub_080A90D8: @ 0x080A90D8 push {r4, r5, r6, r7, lr} adds r5, r0, #0 movs r0, #0x74 adds r0, r0, r5 mov ip, r0 ldrh r3, [r0] movs r1, #0x2e ldrsh r0, [r5, r1] ldr r7, _080A9154 @ =gUnk_03000BF0 ldrh r1, [r7, #6] subs r0, r0, r1 asrs r4, r0, #4 movs r6, #0x3f adds r2, r4, #0 ands r2, r6 movs r1, #0x32 ldrsh r0, [r5, r1] ldrh r1, [r7, #8] subs r0, r0, r1 asrs r1, r0, #4 adds r0, r1, #0 ands r0, r6 lsls r0, r0, #6 orrs r2, r0 cmp r3, r2 beq _080A9152 movs r0, #0x3f ands r4, r0 ands r1, r0 lsls r0, r1, #6 orrs r4, r0 mov r2, ip strh r4, [r2] adds r0, r5, #0 bl sub_080002A0 cmp r0, #0x13 beq _080A9128 cmp r0, #0x34 bne _080A9152 _080A9128: movs r0, #0xd3 lsls r0, r0, #2 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 adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0807B7D8 _080A9152: pop {r4, r5, r6, r7, pc} .align 2, 0 _080A9154: .4byte gUnk_03000BF0 thumb_func_start sub_080A9158 sub_080A9158: @ 0x080A9158 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xc] cmp r0, #0 bne _080A9166 movs r0, #1 strb r0, [r5, #0xc] _080A9166: ldr r4, [r5, #0x50] cmp r4, #0 beq _080A917C adds r0, r4, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 beq _080A917C ldr r0, [r4, #4] cmp r0, #0 bne _080A91A4 _080A917C: adds r0, r5, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080A9198 ldr r1, [r5, #0x4c] ldr r0, _080A91A0 @ =gUnk_03001160 cmp r1, r0 bne _080A9198 adds r0, r5, #0 bl sub_0803C0AC _080A9198: adds r0, r5, #0 bl sub_0805E7BC b _080A91D8 .align 2, 0 _080A91A0: .4byte gUnk_03001160 _080A91A4: ldr r1, _080A91DC @ =gUnk_08129998 ldrb r0, [r4, #0x14] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [r5, #0x48] adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA24 adds r0, r4, #0 adds r0, #0x3d ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080A91D8 adds r1, r5, #0 adds r1, #0x3d ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bne _080A91D8 movs r0, #0xff strb r0, [r1] _080A91D8: pop {r4, r5, pc} .align 2, 0 _080A91DC: .4byte gUnk_08129998 thumb_func_start sub_080A91E0 sub_080A91E0: @ 0x080A91E0 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 bne _080A9288 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080A9204 movs r0, #1 strb r0, [r4, #0xc] bl sub_08000E50 strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] _080A9204: adds r0, r4, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x80 bne _080A921C ldr r1, [r4, #0x50] cmp r1, #0 beq _080A9218 movs r0, #0xff strb r0, [r1, #0xa] _080A9218: bl sub_0805E780 _080A921C: ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA24 ldrb r0, [r4, #0xf] cmp r0, #0 beq _080A9230 subs r0, #1 strb r0, [r4, #0xf] b _080A92F6 _080A9230: adds r0, r4, #0 bl sub_080644C8 cmp r0, #0 beq _080A92F6 ldrb r1, [r4, #0xe] adds r0, r1, #1 strb r0, [r4, #0xe] movs r0, #3 ands r0, r1 cmp r0, #0 bne _080A92F6 movs r0, #0xc bl sub_080A7EE0 adds r5, r0, #0 cmp r5, #0 beq _080A92F6 movs r0, #1 strb r0, [r5, #0xa] ldr r0, [r4, #0x50] adds r0, #0x3e ldrb r1, [r0] ldr r3, _080A9284 @ =gUnk_081299C8 ldrb r0, [r4, #0xe] lsrs r0, r0, #2 movs r2, #7 ands r0, r2 adds r0, r0, r3 lsls r1, r1, #3 ldrb r0, [r0] adds r1, r1, r0 movs r0, #0x1f ands r1, r0 strb r1, [r5, #0x15] ldr r0, [r4, #0x50] str r0, [r5, #0x50] adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA24 b _080A92F6 .align 2, 0 _080A9284: .4byte gUnk_081299C8 _080A9288: ldrb r0, [r4, #0xc] cmp r0, #0 bne _080A92B0 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x12 strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #0x16 ands r0, r1 strb r0, [r4, #0x18] movs r0, #0x80 lsls r0, r0, #4 strh r0, [r4, #0x24] ldr r0, _080A92F8 @ =gUnk_080FD1E4 str r0, [r4, #0x48] adds r0, r4, #0 movs r1, #0 bl sub_08004260 _080A92B0: adds r0, r4, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x80 bne _080A92C8 ldr r1, [r4, #0x50] cmp r1, #0 beq _080A92C4 movs r0, #0xff strb r0, [r1, #0xa] _080A92C4: bl sub_0805E780 _080A92C8: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080A92D8 bl sub_0805E780 _080A92D8: adds r0, r4, #0 bl sub_0806F69C ldr r0, _080A92FC @ =gUnk_02027EB4 movs r2, #0x2e ldrsh r1, [r4, r2] movs r3, #0x32 ldrsh r2, [r4, r3] movs r3, #2 bl sub_080AE4CC cmp r0, #0 beq _080A92F6 bl sub_0805E780 _080A92F6: pop {r4, r5, pc} .align 2, 0 _080A92F8: .4byte gUnk_080FD1E4 _080A92FC: .4byte gUnk_02027EB4 thumb_func_start sub_080A9300 sub_080A9300: @ 0x080A9300 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A9318 @ =gUnk_081299D0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080A9318: .4byte gUnk_081299D0 thumb_func_start sub_080A931C sub_080A931C: @ 0x080A931C push {lr} ldr r2, _080A9330 @ =gUnk_081299E4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080A9330: .4byte gUnk_081299E4 thumb_func_start sub_080A9334 sub_080A9334: @ 0x080A9334 push {r4, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080A936C movs r0, #0x3f ands r0, r1 cmp r0, #0 beq _080A9368 movs r0, #2 rsbs r0, r0, #0 bl sub_080526A0 adds r0, r4, #0 bl sub_080A9488 adds r0, r4, #0 adds r0, #0x42 movs r1, #0 strb r1, [r0] subs r0, #5 strb r1, [r0] b _080A936C _080A9368: bl sub_0805E780 _080A936C: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A9370 sub_080A9370: @ 0x080A9370 push {r4, lr} movs r4, #0 movs r3, #1 movs r1, #1 strb r1, [r0, #0xc] ldrb r2, [r0, #0x18] subs r1, #5 ands r1, r2 orrs r1, r3 strb r1, [r0, #0x18] ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] movs r1, #0x6a strb r1, [r0, #0xe] strb r4, [r0, #0xf] movs r1, #0xa0 lsls r1, r1, #4 str r1, [r0, #0x20] ldrb r1, [r0, #0xa] bl sub_080A94C0 pop {r4, pc} thumb_func_start sub_080A93A0 sub_080A93A0: @ 0x080A93A0 push {r4, r5, lr} adds r4, r0, #0 ldr r5, [r4, #0x50] cmp r5, #0 beq _080A93B0 ldr r0, [r5, #4] cmp r0, #0 bne _080A93B4 _080A93B0: bl sub_0805E780 _080A93B4: ldrb r0, [r4, #0xf] cmp r0, #0 beq _080A93BE bl sub_0805E780 _080A93BE: ldrb r0, [r5, #0xf] cmp r0, #0 beq _080A93DA movs r2, #0 movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] str r2, [r5, #0x54] movs r0, #0xfc bl sub_080A3268 _080A93DA: pop {r4, r5, pc} thumb_func_start sub_080A93DC sub_080A93DC: @ 0x080A93DC push {r4, lr} adds r4, r0, #0 ldrh r0, [r4, #0x2a] cmp r0, #0 beq _080A9414 movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r0, #0x20 strb r0, [r4, #0xe] adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] adds r1, #2 adds r0, r4, #0 bl sub_08004260 movs r0, #0xc5 lsls r0, r0, #1 bl sub_08004488 adds r0, r4, #0 bl sub_0806F69C b _080A9424 _080A9414: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080A9424 bl sub_0805E780 _080A9424: adds r0, r4, #0 bl sub_080AF090 pop {r4, pc} thumb_func_start sub_080A942C sub_080A942C: @ 0x080A942C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080A9440 bl sub_0805E780 _080A9440: adds r0, r4, #0 bl sub_08004274 pop {r4, pc} thumb_func_start sub_080A9448 sub_080A9448: @ 0x080A9448 push {r4, lr} adds r4, r0, #0 movs r1, #0xa0 lsls r1, r1, #6 bl sub_08003FC4 cmp r0, #0 bne _080A9464 adds r0, r4, #0 bl sub_080A29BC bl sub_0805E780 b _080A9486 _080A9464: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080A9486 movs r0, #2 strb r0, [r4, #0xe] ldrb r0, [r4, #0x14] adds r0, #1 movs r1, #3 ands r0, r1 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_080A94C0 _080A9486: pop {r4, pc} thumb_func_start sub_080A9488 sub_080A9488: @ 0x080A9488 push {r4, lr} adds r4, r0, #0 movs r0, #4 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r0, #2 strb r0, [r4, #0xe] movs r0, #0xc0 lsls r0, r0, #9 str r0, [r4, #0x20] adds r0, r4, #0 adds r0, #0x3e ldrb r1, [r0] movs r0, #0x18 ands r0, r1 lsrs r0, r0, #3 strb r0, [r4, #0x14] movs r0, #0x74 bl sub_08004488 ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_080A94C0 pop {r4, pc} thumb_func_start sub_080A94C0 sub_080A94C0: @ 0x080A94C0 push {r4, lr} lsls r1, r1, #3 ldr r2, _080A94FC @ =gUnk_081299F8 adds r1, r1, r2 ldrb r3, [r1] movs r2, #1 ands r3, r2 lsls r3, r3, #6 ldrb r4, [r0, #0x18] movs r2, #0x41 rsbs r2, r2, #0 ands r2, r4 orrs r2, r3 strb r2, [r0, #0x18] ldrb r3, [r1, #1] lsls r3, r3, #7 movs r4, #0x7f ands r2, r4 orrs r2, r3 strb r2, [r0, #0x18] ldrb r2, [r1, #2] adds r3, r0, #0 adds r3, #0x58 strb r2, [r3] ldr r1, [r1, #4] str r1, [r0, #0x48] ldrb r1, [r3] bl sub_08004260 pop {r4, pc} .align 2, 0 _080A94FC: .4byte gUnk_081299F8 thumb_func_start sub_080A9500 sub_080A9500: @ 0x080A9500 push {lr} ldr r2, _080A9514 @ =gUnk_08129A64 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080A9514: .4byte gUnk_08129A64 thumb_func_start sub_080A9518 sub_080A9518: @ 0x080A9518 push {lr} movs r1, #1 strb r1, [r0, #0xc] movs r1, #0xa strb r1, [r0, #0xe] ldrh r1, [r0, #0x36] subs r1, #2 strh r1, [r0, #0x36] ldrh r1, [r0, #0x32] adds r1, #2 strh r1, [r0, #0x32] movs r1, #0 bl sub_08004260 ldr r0, _080A953C @ =0x00000149 bl sub_080A3268 pop {pc} .align 2, 0 _080A953C: .4byte 0x00000149 thumb_func_start sub_080A9540 sub_080A9540: @ 0x080A9540 push {r4, lr} adds r3, r0, #0 ldrb r0, [r3, #0xe] subs r0, #1 strb r0, [r3, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080A9578 movs r0, #2 strb r0, [r3, #0xc] ldrb r1, [r3, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r3, #0x10] adds r2, r3, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] ldrh r0, [r3, #0x32] adds r0, #6 strh r0, [r3, #0x32] adds r0, r3, #0 movs r1, #1 bl sub_08004260 b _080A95B6 _080A9578: ldrh r1, [r3, #0x36] movs r2, #0x36 ldrsh r0, [r3, r2] cmp r0, #0 beq _080A9586 adds r0, r1, #1 strh r0, [r3, #0x36] _080A9586: ldrb r1, [r3, #0x15] lsls r1, r1, #1 ldr r0, _080A95B8 @ =gUnk_080C9160 adds r1, r1, r0 movs r4, #0 ldrsh r2, [r1, r4] movs r4, #0x24 ldrsh r0, [r3, r4] muls r2, r0, r2 ldr r0, [r3, #0x2c] adds r0, r0, r2 str r0, [r3, #0x2c] adds r1, #0x80 movs r0, #0 ldrsh r1, [r1, r0] movs r2, #0x24 ldrsh r0, [r3, r2] muls r1, r0, r1 ldr r0, [r3, #0x30] subs r0, r0, r1 str r0, [r3, #0x30] adds r0, r3, #0 bl sub_08004274 _080A95B6: pop {r4, pc} .align 2, 0 _080A95B8: .4byte gUnk_080C9160 thumb_func_start sub_080A95BC sub_080A95BC: @ 0x080A95BC push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080A95D8 adds r0, r4, #0 bl sub_0805E7BC _080A95D8: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A95DC sub_080A95DC: @ 0x080A95DC push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A95F4 @ =gUnk_08129ABC bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080A95F4: .4byte gUnk_08129ABC thumb_func_start sub_080A95F8 sub_080A95F8: @ 0x080A95F8 push {lr} ldr r2, _080A960C @ =gUnk_08129AD0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080A960C: .4byte gUnk_08129AD0 thumb_func_start sub_080A9610 sub_080A9610: @ 0x080A9610 push {r4, r5, lr} adds r4, r0, #0 movs r5, #1 strb r5, [r4, #0xc] ldrb r0, [r4, #0xa] cmp r0, #1 beq _080A9660 cmp r0, #1 bgt _080A9628 cmp r0, #0 beq _080A9632 b _080A9756 _080A9628: cmp r0, #2 beq _080A96D0 cmp r0, #3 beq _080A9718 b _080A9756 _080A9632: movs r1, #0x90 lsls r1, r1, #7 ldrb r2, [r4, #0x15] adds r0, r4, #0 bl sub_0806F62C movs r1, #0 movs r0, #0x80 lsls r0, r0, #2 strh r0, [r4, #0x24] strb r1, [r4, #0xe] ldrb r0, [r4, #0x15] strb r0, [r4, #0xf] adds r1, r4, #0 adds r1, #0x78 movs r0, #0x96 lsls r0, r0, #1 strh r0, [r1] adds r0, r4, #0 movs r1, #0 bl sub_080042AC b _080A9756 _080A9660: ldrb r0, [r4, #0x19] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x19] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] bl sub_08000E50 ldr r2, _080A96C8 @ =0x000001FF adds r1, r2, #0 ands r0, r1 adds r2, #1 adds r1, r2, #0 adds r0, r0, r1 strh r0, [r4, #0x24] bl sub_08000E50 ldr r1, _080A96CC @ =0x00001FFF ands r1, r0 movs r0, #0xc0 lsls r0, r0, #9 adds r1, r1, r0 str r1, [r4, #0x20] bl sub_08000E50 movs r1, #7 ands r0, r1 subs r0, #4 ldrb r1, [r4, #0x15] subs r1, r1, r0 strb r1, [r4, #0x15] movs r0, #0x96 lsls r0, r0, #2 str r0, [r4, #0x78] movs r0, #0x24 ldrsh r1, [r4, r0] ldrb r2, [r4, #0x15] adds r0, r4, #0 bl sub_0806F62C adds r0, r4, #0 movs r1, #4 bl sub_08004260 b _080A9756 .align 2, 0 _080A96C8: .4byte 0x000001FF _080A96CC: .4byte 0x00001FFF _080A96D0: bl sub_08000E50 ands r0, r5 cmp r0, #0 beq _080A96EA bl sub_08000E50 movs r1, #7 ands r0, r1 ldrb r1, [r4, #0x15] adds r0, r0, r1 strb r0, [r4, #0x15] b _080A96F8 _080A96EA: bl sub_08000E50 movs r1, #7 ands r0, r1 ldrb r1, [r4, #0x15] subs r1, r1, r0 strb r1, [r4, #0x15] _080A96F8: movs r0, #0x80 lsls r0, r0, #2 strh r0, [r4, #0x24] movs r0, #0x30 strb r0, [r4, #0xe] movs r1, #0xa0 lsls r1, r1, #7 ldrb r2, [r4, #0x15] adds r0, r4, #0 bl sub_0806F62C adds r0, r4, #0 movs r1, #5 bl sub_08004260 b _080A9756 _080A9718: ldr r0, _080A9760 @ =gUnk_03001160 adds r1, r4, #0 bl sub_0806FA24 ldr r0, _080A9764 @ =0xFF600000 str r0, [r4, #0x34] ldrh r0, [r4, #0x2e] adds r0, #0x60 strh r0, [r4, #0x2e] ldrh r0, [r4, #0x32] adds r0, #0x40 strh r0, [r4, #0x32] bl sub_08000E50 movs r1, #0xc0 bl __modsi3 ldrh r1, [r4, #0x2e] subs r1, r1, r0 strh r1, [r4, #0x2e] bl sub_08000E50 movs r1, #0x7f ands r1, r0 ldrh r0, [r4, #0x32] subs r0, r0, r1 strh r0, [r4, #0x32] adds r0, r4, #0 movs r1, #0 bl sub_08004260 _080A9756: ldr r0, _080A9768 @ =0x000001B5 bl sub_080A3268 pop {r4, r5, pc} .align 2, 0 _080A9760: .4byte gUnk_03001160 _080A9764: .4byte 0xFF600000 _080A9768: .4byte 0x000001B5 thumb_func_start sub_080A976C sub_080A976C: @ 0x080A976C push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #1 bne _080A9778 b _080A9908 _080A9778: cmp r0, #1 bgt _080A9782 cmp r0, #0 beq _080A9790 b _080A99EE _080A9782: cmp r0, #2 bne _080A9788 b _080A99A0 _080A9788: cmp r0, #3 bne _080A978E b _080A99D2 _080A978E: b _080A99EE _080A9790: ldr r0, [r4, #0x50] ldrb r0, [r0, #0xc] cmp r0, #2 bne _080A979C bl sub_0805E780 _080A979C: ldrb r0, [r4, #0xb] cmp r0, #0 bne _080A97E0 adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080A97E0 movs r5, #0x7f adds r0, r5, #0 ands r0, r1 cmp r0, #0 bne _080A97C0 adds r0, r4, #0 bl sub_080A99F0 _080A97C0: adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] lsls r0, r0, #3 strb r0, [r4, #0x15] movs r1, #0 movs r0, #0x80 lsls r0, r0, #3 strh r0, [r4, #0x24] movs r0, #1 strb r0, [r4, #0xb] strb r1, [r4, #0xe] ldrb r1, [r4, #0x10] adds r0, r5, #0 ands r0, r1 strb r0, [r4, #0x10] _080A97E0: ldr r1, [r4, #0x50] adds r0, r4, #0 movs r2, #0x40 bl sub_0806FC80 cmp r0, #0 beq _080A9848 ldrb r0, [r4, #0xb] cmp r0, #0 bne _080A9804 ldrb r0, [r4, #0x15] movs r1, #0x80 eors r0, r1 strb r0, [r4, #0x15] movs r0, #0x80 lsls r0, r0, #3 strh r0, [r4, #0x24] b _080A9848 _080A9804: ldr r1, [r4, #0x50] adds r1, #0x45 ldrb r0, [r1] subs r0, #1 strb r0, [r1] ldr r0, [r4, #0x50] adds r0, #0x3d movs r1, #0x1e strb r1, [r0] ldr r1, [r4, #0x50] adds r0, r1, #0 adds r0, #0x7c ldrb r0, [r0] cmp r0, #0 beq _080A983C adds r1, #0x42 movs r0, #0x18 strb r0, [r1] ldr r0, [r4, #0x50] adds r0, #0x46 movs r1, #0x80 lsls r1, r1, #2 strh r1, [r0] ldr r1, [r4, #0x50] ldrb r0, [r4, #0x15] lsrs r0, r0, #3 adds r1, #0x3e strb r0, [r1] _080A983C: ldr r0, _080A98B8 @ =0x00000127 bl sub_080A3268 adds r0, r4, #0 bl sub_080A99F0 _080A9848: adds r0, r4, #0 bl sub_080042B8 adds r5, r4, #0 adds r5, #0x78 ldrh r0, [r5] subs r0, #1 strh r0, [r5] movs r0, #0x24 ldrsh r1, [r4, r0] ldrb r2, [r4, #0x15] adds r0, r4, #0 bl sub_0806F62C ldrb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 movs r2, #0 bl sub_080AE58C ldrh r1, [r4, #0x2a] movs r0, #0xee lsls r0, r0, #8 ands r0, r1 cmp r0, #0 beq _080A9882 ldrb r0, [r4, #0x15] rsbs r0, r0, #0 strb r0, [r4, #0x15] _080A9882: ldrh r1, [r4, #0x2a] movs r0, #0xee ands r0, r1 cmp r0, #0 beq _080A989A ldrb r0, [r4, #0x15] rsbs r0, r0, #0 movs r2, #0x80 rsbs r2, r2, #0 adds r1, r2, #0 eors r0, r1 strb r0, [r4, #0x15] _080A989A: ldrb r0, [r4, #0x15] ldrb r1, [r4, #0xf] cmp r0, r1 bne _080A98A4 b _080A99EE _080A98A4: movs r0, #0xb2 lsls r0, r0, #1 bl sub_080A3268 ldrh r0, [r5] cmp r0, #0 bne _080A98BC movs r0, #4 b _080A98C0 .align 2, 0 _080A98B8: .4byte 0x00000127 _080A98BC: ldrb r0, [r4, #0xe] adds r0, #1 _080A98C0: strb r0, [r4, #0xe] ldrb r0, [r4, #0x15] strb r0, [r4, #0xf] ldrb r0, [r4, #0xe] cmp r0, #1 bhi _080A98CE b _080A99EE _080A98CE: movs r5, #0 _080A98D0: adds r0, r4, #0 movs r1, #0xf movs r2, #1 bl sub_0804A98C adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 beq _080A98FC ldr r0, [r4, #0x50] str r0, [r1, #0x50] ldr r1, [r4, #0x54] ldr r0, _080A9904 @ =gUnk_08129ADC adds r0, r5, r0 ldrb r0, [r0] ldrb r2, [r4, #0x15] adds r0, r0, r2 strb r0, [r1, #0x15] ldr r1, [r4, #0x54] adds r0, r4, #0 bl sub_0806FA24 _080A98FC: adds r5, #1 cmp r5, #2 bls _080A98D0 b _080A9998 .align 2, 0 _080A9904: .4byte gUnk_08129ADC _080A9908: ldr r0, [r4, #0x50] ldrb r0, [r0, #0xc] cmp r0, #2 bne _080A9916 adds r0, r4, #0 bl sub_080A99F0 _080A9916: adds r0, r4, #0 bl sub_08004274 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 beq _080A9950 ldrb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 movs r2, #0 bl sub_080AE58C ldrh r0, [r4, #0x2a] cmp r0, #0 bne _080A994A movs r0, #0x24 ldrsh r1, [r4, r0] ldrb r2, [r4, #0x15] adds r0, r4, #0 bl sub_0806F62C b _080A9950 _080A994A: adds r0, r4, #0 bl sub_080A99F0 _080A9950: ldr r2, [r4, #0x78] cmp r2, #0x1d bhi _080A9978 movs r0, #7 ands r0, r2 cmp r0, #0 beq _080A996E ldrb r0, [r4, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 movs r0, #1 orrs r1, r0 strb r1, [r4, #0x18] b _080A9978 _080A996E: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] _080A9978: subs r1, r2, #1 str r1, [r4, #0x78] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 bne _080A998A adds r0, r4, #0 bl sub_080A99F0 _080A998A: adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080A99EE _080A9998: adds r0, r4, #0 bl sub_080A99F0 b _080A99EE _080A99A0: adds r0, r4, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff beq _080A99C2 movs r2, #0x24 ldrsh r1, [r4, r2] ldrb r2, [r4, #0x15] adds r0, r4, #0 bl sub_0806F62C b _080A99EE _080A99C2: ldr r1, [r4, #0x54] cmp r1, #0 beq _080A99CC movs r0, #1 strb r0, [r1, #0xe] _080A99CC: bl sub_0805E780 b _080A99EE _080A99D2: movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _080A99EE adds r0, r4, #0 movs r1, #4 movs r2, #0 bl sub_080A29AC bl sub_0805E780 _080A99EE: pop {r4, r5, pc} thumb_func_start sub_080A99F0 sub_080A99F0: @ 0x080A99F0 push {lr} movs r1, #4 movs r2, #0 bl sub_080A29AC bl sub_0805E780 pop {pc} thumb_func_start sub_080A9A00 sub_080A9A00: @ 0x080A9A00 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A9A18 @ =gUnk_08129AE0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080A9A18: .4byte gUnk_08129AE0 thumb_func_start sub_080A9A1C sub_080A9A1C: @ 0x080A9A1C push {lr} ldr r2, _080A9A30 @ =gUnk_08129AF8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080A9A30: .4byte gUnk_08129AF8 thumb_func_start sub_080A9A34 sub_080A9A34: @ 0x080A9A34 push {lr} adds r2, r0, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x9d bne _080A9A62 movs r0, #3 strb r0, [r2, #0xc] ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0x10] movs r0, #0xa8 lsls r0, r0, #0xa str r0, [r2, #0x20] 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] _080A9A62: pop {pc} thumb_func_start sub_080A9A64 sub_080A9A64: @ 0x080A9A64 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #2 bhi _080A9A7E adds r0, r4, #0 bl sub_0806F520 cmp r0, #0 bne _080A9A7E adds r0, r4, #0 bl sub_080A9BA8 _080A9A7E: ldr r0, _080A9A90 @ =gUnk_08129B08 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _080A9A90: .4byte gUnk_08129B08 thumb_func_start sub_080A9A94 sub_080A9A94: @ 0x080A9A94 movs r1, #2 strb r1, [r0, #0xd] ldr r1, _080A9AA0 @ =0x0000FFFE strh r1, [r0, #0x36] bx lr .align 2, 0 _080A9AA0: .4byte 0x0000FFFE thumb_func_start sub_080A9AA4 sub_080A9AA4: @ 0x080A9AA4 push {lr} bl sub_0806F4E8 pop {pc} thumb_func_start sub_080A9AAC sub_080A9AAC: @ 0x080A9AAC push {lr} bl sub_0806F3E4 pop {pc} thumb_func_start sub_080A9AB4 sub_080A9AB4: @ 0x080A9AB4 ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] bx lr .align 2, 0 thumb_func_start nullsub_128 nullsub_128: @ 0x080A9AC0 bx lr .align 2, 0 thumb_func_start sub_080A9AC4 sub_080A9AC4: @ 0x080A9AC4 push {lr} bl sub_080A9BA8 pop {pc} thumb_func_start sub_080A9ACC sub_080A9ACC: @ 0x080A9ACC push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xb] cmp r0, #1 beq _080A9AE0 cmp r0, #2 beq _080A9AEE movs r0, #1 strb r0, [r2, #0xc] b _080A9B0A _080A9AE0: movs r0, #2 strb r0, [r2, #0xc] ldrb r1, [r2, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x10] b _080A9B0A _080A9AEE: movs r0, #3 strb r0, [r2, #0xc] movs r0, #0xa8 lsls r0, r0, #0xa str r0, [r2, #0x20] 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] _080A9B0A: movs r0, #2 strb r0, [r2, #0x1c] ldrb r0, [r2, #0xa] cmp r0, #0 bne _080A9B1E adds r0, r2, #0 movs r1, #5 bl sub_08004260 b _080A9B22 _080A9B1E: movs r0, #0 strb r0, [r2, #0x1e] _080A9B22: pop {pc} thumb_func_start sub_080A9B24 sub_080A9B24: @ 0x080A9B24 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldr r0, [r0, #4] cmp r0, #0 bne _080A9B36 adds r0, r4, #0 bl sub_080A9BA8 _080A9B36: ldr r0, [r4, #0x50] ldrb r0, [r0, #0xc] cmp r0, #0xb bne _080A9B46 adds r0, r4, #0 bl sub_080A9BD0 b _080A9B50 _080A9B46: movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_080A9C34 _080A9B50: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A9B54 sub_080A9B54: @ 0x080A9B54 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldr r0, [r0, #4] cmp r0, #0 bne _080A9B66 adds r0, r4, #0 bl sub_080A9BA8 _080A9B66: ldr r0, [r4, #0x50] ldrb r0, [r0, #0xc] cmp r0, #9 bne _080A9B76 adds r0, r4, #0 bl sub_080A9C34 b _080A9B7C _080A9B76: adds r0, r4, #0 bl sub_080A9C50 _080A9B7C: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A9B80 sub_080A9B80: @ 0x080A9B80 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x20] cmp r0, #0 bge _080A9B92 ldrb r0, [r4, #0x18] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x18] _080A9B92: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _080A9BA6 adds r0, r4, #0 bl sub_080A9BA8 _080A9BA6: pop {r4, pc} thumb_func_start sub_080A9BA8 sub_080A9BA8: @ 0x080A9BA8 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xa] cmp r0, #0 bne _080A9BBE adds r0, r1, #0 movs r1, #5 movs r2, #0 bl sub_080A29AC b _080A9BC8 _080A9BBE: adds r0, r1, #0 movs r1, #0x3c movs r2, #0 bl sub_080A29AC _080A9BC8: bl sub_0805E780 pop {pc} .align 2, 0 thumb_func_start sub_080A9BD0 sub_080A9BD0: @ 0x080A9BD0 push {r4, r5, lr} adds r5, r0, #0 ldr r1, [r5, #0x50] ldrb r0, [r1, #0x14] cmp r0, #1 beq _080A9BF8 cmp r0, #1 bgt _080A9BE6 cmp r0, #0 beq _080A9BF0 b _080A9C06 _080A9BE6: cmp r0, #2 beq _080A9C00 cmp r0, #3 beq _080A9BF8 b _080A9C06 _080A9BF0: ldrb r0, [r1, #0x1e] adds r2, r0, #0 subs r2, #0x39 b _080A9C06 _080A9BF8: ldrb r0, [r1, #0x1e] adds r2, r0, #0 subs r2, #0x3d b _080A9C06 _080A9C00: ldrb r0, [r1, #0x1e] adds r2, r0, #0 subs r2, #0x41 _080A9C06: ldrb r0, [r1, #0x14] lsls r0, r0, #2 adds r0, r2, r0 lsls r4, r0, #1 adds r4, r4, r0 ldr r0, _080A9C30 @ =gUnk_08129B20 adds r4, r4, r0 movs r2, #0 ldrsb r2, [r4, r2] movs r3, #1 ldrsb r3, [r4, r3] adds r0, r1, #0 adds r1, r5, #0 bl sub_0806FA90 movs r0, #2 ldrsb r0, [r4, r0] ldrh r1, [r5, #0x36] adds r0, r0, r1 strh r0, [r5, #0x36] pop {r4, r5, pc} .align 2, 0 _080A9C30: .4byte gUnk_08129B20 thumb_func_start sub_080A9C34 sub_080A9C34: @ 0x080A9C34 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] adds r1, r4, #0 movs r2, #0 movs r3, #1 bl sub_0806FA90 adds r4, #0x63 ldrb r0, [r4] subs r0, #0xe strb r0, [r4] pop {r4, pc} .align 2, 0 thumb_func_start sub_080A9C50 sub_080A9C50: @ 0x080A9C50 push {r4, r5, lr} adds r5, r0, #0 ldr r1, [r5, #0x50] ldrb r0, [r1, #0x14] cmp r0, #1 beq _080A9C78 cmp r0, #1 bgt _080A9C66 cmp r0, #0 beq _080A9C70 b _080A9C86 _080A9C66: cmp r0, #2 beq _080A9C80 cmp r0, #3 beq _080A9C78 b _080A9C86 _080A9C70: ldrb r0, [r1, #0x1e] adds r4, r0, #0 subs r4, #0x27 b _080A9C86 _080A9C78: ldrb r0, [r1, #0x1e] adds r4, r0, #0 subs r4, #0x2d b _080A9C86 _080A9C80: ldrb r0, [r1, #0x1e] adds r4, r0, #0 subs r4, #0x33 _080A9C86: adds r0, r1, #0 adds r1, r5, #0 movs r2, #0 movs r3, #1 bl sub_0806FA90 adds r0, r5, #0 adds r0, #0x63 ldr r1, _080A9CA4 @ =gUnk_08129B50 adds r1, r4, r1 ldrb r1, [r1] ldrb r2, [r0] adds r1, r1, r2 strb r1, [r0] pop {r4, r5, pc} .align 2, 0 _080A9CA4: .4byte gUnk_08129B50 thumb_func_start sub_080A9CA8 sub_080A9CA8: @ 0x080A9CA8 push {r4, r5, lr} adds r5, r0, #0 ldr r0, [r5, #0x50] ldr r0, [r0, #4] cmp r0, #0 bne _080A9CB8 bl sub_0805E780 _080A9CB8: ldr r4, _080A9CD0 @ =gUnk_08129B58 adds r0, r5, #0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080A9CD0: .4byte gUnk_08129B58 thumb_func_start sub_080A9CD4 sub_080A9CD4: @ 0x080A9CD4 push {lr} ldr r2, _080A9CE8 @ =gUnk_08129B70 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080A9CE8: .4byte gUnk_08129B70 thumb_func_start nullsub_539 nullsub_539: @ 0x080A9CEC bx lr .align 2, 0 thumb_func_start sub_080A9CF0 sub_080A9CF0: @ 0x080A9CF0 push {r4, lr} adds r4, r0, #0 bl sub_0806F520 cmp r0, #0 bne _080A9D0A adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC bl sub_0805E780 _080A9D0A: ldr r0, _080A9D1C @ =gUnk_08129B78 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _080A9D1C: .4byte gUnk_08129B78 thumb_func_start sub_080A9D20 sub_080A9D20: @ 0x080A9D20 movs r1, #2 strb r1, [r0, #0xd] bx lr .align 2, 0 thumb_func_start nullsub_540 nullsub_540: @ 0x080A9D28 bx lr .align 2, 0 thumb_func_start sub_080A9D2C sub_080A9D2C: @ 0x080A9D2C push {r4, lr} adds r4, r0, #0 bl sub_0806F3E4 cmp r0, #0 beq _080A9D64 adds r0, r4, #0 adds r0, #0x3f ldrb r0, [r0] cmp r0, #0xa6 bne _080A9D56 movs r0, #2 rsbs r0, r0, #0 bl sub_080526A0 ldr r0, _080A9D68 @ =gUnk_03001160 movs r1, #0x7a bl sub_0800449C bl sub_08079D84 _080A9D56: adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC bl sub_0805E780 _080A9D64: pop {r4, pc} .align 2, 0 _080A9D68: .4byte gUnk_03001160 thumb_func_start sub_080A9D6C sub_080A9D6C: @ 0x080A9D6C push {lr} movs r1, #1 strb r1, [r0, #0xc] ldr r1, [r0, #0x50] ldrb r1, [r1, #0x14] strb r1, [r0, #0x14] ldrb r1, [r0, #0x14] bl sub_080042AC pop {pc} thumb_func_start sub_080A9D80 sub_080A9D80: @ 0x080A9D80 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldr r3, _080A9D9C @ =0xFFFF0000 adds r1, r4, #0 movs r2, #0 bl sub_0806FA48 ldr r0, _080A9DA0 @ =0x0000FFFE strh r0, [r4, #0x36] adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 _080A9D9C: .4byte 0xFFFF0000 _080A9DA0: .4byte 0x0000FFFE thumb_func_start sub_080A9DA4 sub_080A9DA4: @ 0x080A9DA4 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A9DBC @ =gUnk_08129BEC bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080A9DBC: .4byte gUnk_08129BEC thumb_func_start sub_080A9DC0 sub_080A9DC0: @ 0x080A9DC0 push {lr} ldr r2, _080A9DD4 @ =gUnk_08129C00 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080A9DD4: .4byte gUnk_08129C00 thumb_func_start sub_080A9DD8 sub_080A9DD8: @ 0x080A9DD8 push {r4, lr} adds r4, r0, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 beq _080A9DEE adds r0, r4, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x80 bne _080A9DF2 _080A9DEE: bl sub_0805E780 _080A9DF2: adds r0, r4, #0 bl sub_080A9DC0 pop {r4, pc} .align 2, 0 thumb_func_start sub_080A9DFC sub_080A9DFC: @ 0x080A9DFC push {lr} movs r2, #1 strb r2, [r0, #0xc] movs r1, #0xb4 strb r1, [r0, #0xe] adds r1, r0, #0 adds r1, #0x45 strb r2, [r1] movs r1, #0 bl sub_08004260 pop {pc} thumb_func_start sub_080A9E14 sub_080A9E14: @ 0x080A9E14 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080AF090 ldrh r0, [r4, #0x2a] cmp r0, #0 bne _080A9E34 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080A9E42 _080A9E34: adds r0, r4, #0 movs r1, #0x4f movs r2, #0 bl sub_080A29AC bl sub_0805E780 _080A9E42: adds r0, r4, #0 bl sub_080A7EB0 cmp r0, #0 beq _080A9E50 bl sub_0805E780 _080A9E50: pop {r4, pc} .align 2, 0 thumb_func_start sub_080A9E54 sub_080A9E54: @ 0x080A9E54 push {r4, r5, lr} adds r5, r0, #0 ldr r0, [r5, #0x54] cmp r0, #0 bne _080A9E60 ldr r0, [r5, #0x50] _080A9E60: adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 bne _080A9E78 ldrb r1, [r5, #0x10] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080A9E78 movs r0, #0x80 orrs r0, r1 strb r0, [r5, #0x10] _080A9E78: ldr r4, _080A9E90 @ =gUnk_08129C7C adds r0, r5, #0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080A9E90: .4byte gUnk_08129C7C thumb_func_start sub_080A9E94 sub_080A9E94: @ 0x080A9E94 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #2 bhi _080A9EA4 adds r0, r4, #0 bl sub_080AA1D8 _080A9EA4: ldr r0, _080A9EB8 @ =gUnk_08129C90 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _080A9EB8: .4byte gUnk_08129C90 thumb_func_start sub_080A9EBC sub_080A9EBC: @ 0x080A9EBC push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080A9F4E ldrb r0, [r4, #0xc] cmp r0, #3 beq _080A9EF2 cmp r0, #4 bne _080A9F18 movs r0, #0 strb r0, [r4, #0xf] subs r0, #2 bl sub_080526A0 adds r0, r4, #0 bl sub_080AF090 adds r0, r4, #0 bl sub_080042B8 adds r5, r4, #0 adds r5, #0x42 b _080A9F4A _080A9EF2: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] adds r5, r4, #0 adds r5, #0x42 cmp r0, #0 beq _080A9F4A adds r1, r4, #0 adds r1, #0x82 movs r0, #2 strb r0, [r1] movs r0, #0xff strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_080AA270 movs r0, #0x20 strb r0, [r4, #0xf] b _080A9F4A _080A9F18: ldr r3, [r4, #0x50] adds r0, r4, #0 adds r0, #0x3d ldrb r0, [r0] adds r1, r3, #0 adds r1, #0x3d strb r0, [r1] adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] adds r1, #1 strb r0, [r1] adds r2, r4, #0 adds r2, #0x42 ldrb r1, [r2] adds r0, r3, #0 adds r0, #0x42 strb r1, [r0] ldrb r0, [r4, #0xc] adds r5, r2, #0 cmp r0, #1 bne _080A9F4A adds r0, r4, #0 bl sub_080AA320 _080A9F4A: movs r0, #0 strb r0, [r5] _080A9F4E: pop {r4, r5, pc} thumb_func_start sub_080A9F50 sub_080A9F50: @ 0x080A9F50 push {r4, lr} adds r4, r0, #0 movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x80 movs r2, #0 strh r1, [r0] movs r0, #0xff strb r0, [r4, #0x14] adds r0, r4, #0 adds r0, #0x82 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] ldr r1, [r4, #0x50] adds r0, r4, #0 bl sub_0806FAD8 adds r0, r4, #0 bl sub_080AA270 pop {r4, pc} .align 2, 0 thumb_func_start sub_080A9F90 sub_080A9F90: @ 0x080A9F90 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x80 ldrh r0, [r1] cmp r0, #0 beq _080A9FA4 subs r0, #1 strh r0, [r1] b _080A9FC8 _080A9FA4: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _080A9FB8 adds r0, r4, #0 bl sub_080AA270 b _080A9FC8 _080A9FB8: adds r0, r4, #0 bl sub_080AA2E0 cmp r0, #0 beq _080A9FC8 adds r0, r4, #0 bl sub_080AA320 _080A9FC8: adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} thumb_func_start sub_080A9FD0 sub_080A9FD0: @ 0x080A9FD0 push {r4, r5, lr} adds r5, r0, #0 bl sub_080042B8 adds r2, r5, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _080A9FF2 movs r0, #0xbf ands r0, r1 strb r0, [r2] ldr r0, _080AA038 @ =0x0000015D bl sub_08004488 _080A9FF2: movs r0, #0x2e ldrsh r1, [r5, r0] ldr r2, _080AA03C @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r4, #0x32 ldrsh r0, [r5, r4] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r4, r5, #0 adds r4, #0x78 strh r1, [r4] ldrh r0, [r4] adds r5, #0x38 ldrb r1, [r5] bl sub_080002B0 movs r1, #0x80 lsls r1, r1, #7 cmp r0, r1 bne _080AA034 ldr r0, _080AA040 @ =0x00004005 ldrh r1, [r4] ldrb r2, [r5] bl sub_0800015E _080AA034: pop {r4, r5, pc} .align 2, 0 _080AA038: .4byte 0x0000015D _080AA03C: .4byte gUnk_03000BF0 _080AA040: .4byte 0x00004005 thumb_func_start sub_080AA044 sub_080AA044: @ 0x080AA044 push {r4, r5, lr} adds r4, r0, #0 ldr r5, [r4, #0x54] cmp r5, #0 bne _080AA052 bl sub_0805E780 _080AA052: ldr r0, [r5, #4] cmp r0, #0 bne _080AA05E bl sub_0805E780 b _080AA0A2 _080AA05E: ldrh r0, [r5, #0x12] ldrb r1, [r5, #0x1e] bl sub_080700C8 adds r3, r0, #0 ldrb r1, [r5, #0x14] movs r0, #4 ands r0, r1 cmp r0, #0 beq _080AA08C movs r2, #0 ldrsb r2, [r3, r2] rsbs r2, r2, #0 lsls r2, r2, #0x10 ldrb r3, [r3, #1] lsls r3, r3, #0x18 asrs r3, r3, #0x18 lsls r3, r3, #0x10 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA48 b _080AA0A2 _080AA08C: movs r2, #0 ldrsb r2, [r3, r2] lsls r2, r2, #0x10 ldrb r3, [r3, #1] lsls r3, r3, #0x18 asrs r3, r3, #0x18 lsls r3, r3, #0x10 adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA48 _080AA0A2: adds r0, r5, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 bne _080AA108 ldrb r0, [r4, #0xf] cmp r0, #0 beq _080AA0B8 subs r0, #1 strb r0, [r4, #0xf] b _080AA108 _080AA0B8: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080AA108 movs r0, #4 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x82 movs r0, #3 strb r0, [r1] movs r0, #0x40 strb r0, [r4, #0xf] ldrb r0, [r5, #0x14] lsls r1, r0, #2 strb r1, [r4, #0x15] lsls r0, r0, #0x1a lsrs r0, r0, #0x1a strb r0, [r4, #0x14] ldr r0, _080AA10C @ =gUnk_080FD150 str r0, [r4, #0x48] bl sub_08052660 cmp r0, #0 beq _080AA100 ldrb r0, [r4, #0x1b] movs r1, #0x3f ands r1, r0 movs r0, #0x40 orrs r1, r0 strb r1, [r4, #0x1b] _080AA100: adds r0, r4, #0 movs r1, #0 bl sub_080AA3E0 _080AA108: pop {r4, r5, pc} .align 2, 0 _080AA10C: .4byte gUnk_080FD150 thumb_func_start sub_080AA110 sub_080AA110: @ 0x080AA110 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r6, r0, #0 ldr r7, [r6, #0x54] cmp r7, #0 beq _080AA1B6 ldr r0, [r7, #4] cmp r0, #0 bne _080AA128 str r0, [r6, #0x54] _080AA128: ldrb r0, [r6, #0xf] adds r5, r0, #0 cmp r5, #0 beq _080AA136 subs r0, #1 strb r0, [r6, #0xf] b _080AA1C4 _080AA136: adds r0, r6, #0 bl sub_080AA374 cmp r0, #0 beq _080AA1C4 adds r0, r7, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _080AA14E bl sub_0805E780 _080AA14E: movs r0, #0xf2 bl sub_08004488 movs r4, #1 strb r4, [r6, #0xc] movs r0, #0xff strb r0, [r6, #0x14] adds r0, r6, #0 adds r0, #0x82 strb r5, [r0] strb r5, [r6, #0xe] subs r0, #2 movs r1, #0 mov sb, r1 movs r1, #0x20 mov r8, r1 mov r1, r8 strh r1, [r0] ldrb r1, [r6, #0x1b] movs r0, #0x3f ands r0, r1 movs r1, #0x80 orrs r0, r1 strb r0, [r6, #0x1b] ldr r0, [r6, #0x54] str r0, [r6, #0x50] str r5, [r6, #0x54] adds r0, r6, #0 bl sub_080AA270 ldr r7, [r6, #0x50] strb r4, [r7, #0xc] ldrb r0, [r7, #0x14] lsls r0, r0, #2 strb r0, [r7, #0x15] strh r5, [r7, #0x24] adds r0, r7, #0 adds r0, #0x82 strb r4, [r0] mov r0, sb strb r0, [r7, #0xe] movs r0, #0x78 strb r0, [r7, #0xf] adds r0, r7, #0 adds r0, #0x80 mov r1, r8 strh r1, [r0] adds r0, r7, #0 movs r1, #1 bl sub_080AA3E0 b _080AA1C4 _080AA1B6: adds r0, r6, #0 bl sub_080040A8 cmp r0, #0 bne _080AA1C4 bl sub_0805E780 _080AA1C4: adds r0, r6, #0 bl sub_0806F69C adds r0, r6, #0 bl sub_080042B8 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} thumb_func_start sub_080AA1D8 sub_080AA1D8: @ 0x080AA1D8 push {r4, r5, lr} adds r5, r0, #0 ldr r4, [r5, #0x50] cmp r4, #0 beq _080AA268 ldr r0, [r4, #4] cmp r0, #0 bne _080AA1EC bl sub_0805E780 _080AA1EC: ldrb r1, [r4, #0x1e] movs r0, #0x20 ands r0, r1 cmp r0, #0 bne _080AA26C ldrh r0, [r4, #0x12] ldrb r1, [r4, #0x1e] bl sub_080700C8 adds r3, r0, #0 ldrb r1, [r4, #0x14] movs r0, #4 ands r0, r1 cmp r0, #0 beq _080AA224 movs r2, #0 ldrsb r2, [r3, r2] rsbs r2, r2, #0 lsls r2, r2, #0x10 ldrb r3, [r3, #1] lsls r3, r3, #0x18 asrs r3, r3, #0x18 lsls r3, r3, #0x10 adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA48 b _080AA23A _080AA224: movs r2, #0 ldrsb r2, [r3, r2] lsls r2, r2, #0x10 ldrb r3, [r3, #1] lsls r3, r3, #0x18 asrs r3, r3, #0x18 lsls r3, r3, #0x10 adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA48 _080AA23A: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _080AA256 ldrb r1, [r5, #0x10] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080AA26C movs r0, #0x7f ands r0, r1 strb r0, [r5, #0x10] b _080AA26C _080AA256: ldrb r1, [r5, #0x10] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080AA26C movs r0, #0x80 orrs r0, r1 strb r0, [r5, #0x10] b _080AA26C _080AA268: bl sub_0805E780 _080AA26C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080AA270 sub_080AA270: @ 0x080AA270 push {r4, r5, r6, lr} adds r5, r0, #0 ldr r4, [r5, #0x50] bl sub_08000E50 ldr r1, _080AA2A4 @ =gUnk_08129CA4 movs r6, #7 ands r0, r6 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r5, #0xf] ldrb r4, [r4, #0x14] ldrb r0, [r5, #0x14] cmp r0, #0xff bne _080AA2AC strb r4, [r5, #0x14] ldr r0, _080AA2A8 @ =gUnk_08129CF4 lsls r1, r4, #2 adds r1, r1, r0 ldr r0, [r1] str r0, [r5, #0x48] adds r0, r5, #0 movs r1, #0 bl sub_080AA3E0 b _080AA2D6 .align 2, 0 _080AA2A4: .4byte gUnk_08129CA4 _080AA2A8: .4byte gUnk_08129CF4 _080AA2AC: bl sub_08000E50 ldr r1, _080AA2D8 @ =gUnk_08129CAC ands r0, r6 adds r0, r0, r1 ldrb r0, [r0] adds r4, r0, r4 ands r4, r6 ldrb r0, [r5, #0x14] cmp r4, r0 beq _080AA2D6 strb r4, [r5, #0x14] ldr r0, _080AA2DC @ =gUnk_08129CF4 lsls r1, r4, #2 adds r1, r1, r0 ldr r0, [r1] str r0, [r5, #0x48] adds r0, r5, #0 movs r1, #0 bl sub_080AA3E0 _080AA2D6: pop {r4, r5, r6, pc} .align 2, 0 _080AA2D8: .4byte gUnk_08129CAC _080AA2DC: .4byte gUnk_08129CF4 thumb_func_start sub_080AA2E0 sub_080AA2E0: @ 0x080AA2E0 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0 bl sub_08049DF4 adds r4, r0, #0 cmp r4, #0 beq _080AA31C adds r0, r5, #0 adds r1, r4, #0 bl sub_080045C4 ldrb r1, [r5, #0x14] lsls r1, r1, #2 adds r0, #4 movs r2, #0x1c ands r0, r2 adds r1, #4 ands r1, r2 cmp r0, r1 bne _080AA31C adds r0, r5, #0 adds r1, r4, #0 movs r2, #0x40 bl sub_08049F1C cmp r0, #0 beq _080AA31C movs r0, #1 b _080AA31E _080AA31C: movs r0, #0 _080AA31E: pop {r4, r5, pc} thumb_func_start sub_080AA320 sub_080AA320: @ 0x080AA320 push {r4, r5, lr} adds r5, r0, #0 ldr r4, [r5, #0x50] movs r2, #0 movs r1, #2 strb r1, [r5, #0xc] adds r3, r5, #0 adds r3, #0x82 movs r0, #1 strb r0, [r3] strb r2, [r5, #0xf] strb r1, [r4, #0xc] movs r0, #0x30 strb r0, [r4, #0xf] adds r1, r4, #0 adds r1, #0x80 movs r0, #0x50 strh r0, [r1] strh r2, [r4, #0x24] adds r0, r4, #0 movs r1, #0 bl sub_08049F84 strb r0, [r4, #0x15] ldrb r0, [r4, #0x15] adds r0, #4 movs r1, #0x1c ands r0, r1 lsrs r1, r0, #2 strb r1, [r5, #0x14] movs r1, #0x18 ands r0, r1 lsrs r0, r0, #2 strb r0, [r4, #0x14] adds r0, r4, #0 movs r1, #1 bl sub_080AA3E0 adds r0, r5, #0 bl sub_080AA1D8 pop {r4, r5, pc} thumb_func_start sub_080AA374 sub_080AA374: @ 0x080AA374 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 movs r0, #0 mov r8, r0 ldr r5, [r6, #0x54] cmp r5, #0 beq _080AA3D8 ldr r0, [r5, #4] cmp r0, #0 beq _080AA3D8 ldrb r4, [r5, #0x14] ldr r0, _080AA3CC @ =gUnk_08129D14 adds r4, r4, r0 movs r2, #0 ldrsb r2, [r4, r2] movs r3, #1 ldrsb r3, [r4, r3] adds r0, r6, #0 adds r1, r5, #0 bl sub_0806F824 adds r7, r0, #0 movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0 ldrsb r0, [r4, r0] adds r1, r1, r0 movs r0, #0x32 ldrsh r2, [r5, r0] movs r0, #1 ldrsb r0, [r4, r0] adds r2, r2, r0 adds r0, r6, #0 movs r3, #8 bl sub_0806FCB8 cmp r0, #0 beq _080AA3D0 movs r0, #1 mov r8, r0 b _080AA3D8 .align 2, 0 _080AA3CC: .4byte gUnk_08129D14 _080AA3D0: adds r0, r6, #0 adds r1, r7, #0 bl sub_08004596 _080AA3D8: mov r0, r8 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_080AA3E0 sub_080AA3E0: @ 0x080AA3E0 push {lr} adds r3, r0, #0 ldrb r2, [r3, #0x14] adds r0, #0x82 ldrb r0, [r0] lsls r0, r0, #3 orrs r2, r0 cmp r1, #0 beq _080AA3F4 lsrs r2, r2, #1 _080AA3F4: adds r0, r3, #0 adds r1, r2, #0 bl sub_080042AC pop {pc} .align 2, 0 thumb_func_start sub_080AA400 sub_080AA400: @ 0x080AA400 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080AA418 @ =gUnk_08129FB8 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080AA418: .4byte gUnk_08129FB8 thumb_func_start sub_080AA41C sub_080AA41C: @ 0x080AA41C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _080AA44C movs r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0xa] strb r1, [r2, #0x1e] strb r0, [r2, #0x1c] adds r0, r2, #0 adds r0, #0x86 ldrh r0, [r0] strh r0, [r2, #0x24] lsls r1, r1, #0x18 cmp r1, #0 bne _080AA446 adds r0, r2, #0 bl sub_080AA494 b _080AA44C _080AA446: adds r0, r2, #0 bl sub_080AA534 _080AA44C: pop {pc} .align 2, 0 thumb_func_start sub_080AA450 sub_080AA450: @ 0x080AA450 push {lr} adds r1, r0, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x96 bne _080AA462 adds r0, r1, #0 bl sub_080AA464 _080AA462: pop {pc} thumb_func_start sub_080AA464 sub_080AA464: @ 0x080AA464 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 bne _080AA474 adds r0, r4, #0 bl sub_080AA544 _080AA474: movs r0, #0x21 movs r1, #3 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _080AA48A adds r0, r4, #0 bl sub_0806FA24 _080AA48A: adds r0, r4, #0 bl sub_0805E7BC pop {r4, pc} .align 2, 0 thumb_func_start sub_080AA494 sub_080AA494: @ 0x080AA494 push {r4, r5, r6, lr} adds r5, r0, #0 movs r4, #0 bl sub_080002A0 adds r2, r0, #0 ldr r1, _080AA4A4 @ =gUnk_08129FD0 b _080AA4AA .align 2, 0 _080AA4A4: .4byte gUnk_08129FD0 _080AA4A8: adds r4, #1 _080AA4AA: ldrh r0, [r1] cmp r0, #0 beq _080AA4B6 adds r1, #2 cmp r0, r2 bne _080AA4A8 _080AA4B6: ldrh r0, [r5, #0x24] bl sub_0807CBE4 cmp r0, #0 beq _080AA4EE cmp r4, #4 bne _080AA4EA movs r0, #0x2e ldrsh r1, [r5, r0] ldr r2, _080AA52C @ =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, [r5, 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, r5, #0 bl sub_080AA654 _080AA4EA: bl sub_0805E780 _080AA4EE: strb r4, [r5, #0xb] adds r2, r5, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] ldr r0, _080AA530 @ =0x00004068 movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _080AA52C @ =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 pop {r4, r5, r6, pc} .align 2, 0 _080AA52C: .4byte gUnk_03000BF0 _080AA530: .4byte 0x00004068 thumb_func_start sub_080AA534 sub_080AA534: @ 0x080AA534 push {lr} adds r2, r0, #0 adds r2, #0x38 movs r1, #3 strb r1, [r2] bl sub_08016A04 pop {pc} thumb_func_start sub_080AA544 sub_080AA544: @ 0x080AA544 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r6, r0, #0 ldrb r0, [r6, #0xb] cmp r0, #8 bhi _080AA618 ldr r0, _080AA5E8 @ =gUnk_08129FF8 mov sb, r0 movs r1, #0x2e ldrsh r2, [r6, r1] ldr r1, _080AA5EC @ =gUnk_03000BF0 ldrh r0, [r1, #6] subs r2, r2, r0 asrs r2, r2, #4 movs r3, #0x3f ands r2, r3 movs r4, #0x32 ldrsh r0, [r6, r4] ldrh r1, [r1, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r2, r0 ldrb r0, [r6, #0xb] add r0, sb ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r7, r2, r0 movs r4, #0 movs r5, #0 movs r0, #0x38 adds r0, r0, r6 mov r8, r0 _080AA58E: mov r1, sb adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, r7, r0 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r2, r8 ldrb r1, [r2] bl sub_080002C8 cmp r0, #0x3e bne _080AA5AC adds r5, #1 _080AA5AC: adds r4, #1 cmp r4, #8 bls _080AA58E cmp r5, #8 bne _080AA5F4 movs r4, #0 ldr r5, _080AA5F0 @ =gUnk_08129FD0 _080AA5BA: ldrh r0, [r5] mov r3, sb adds r1, r3, r4 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 subs r1, r7, r1 mov r3, r8 ldrb r2, [r3] bl sub_0807B7D8 adds r5, #2 adds r4, #1 cmp r4, #8 bls _080AA5BA adds r0, r6, #0 adds r1, r7, #0 bl sub_080AA654 ldrh r0, [r6, #0x24] bl sub_0807CCC8 b _080AA648 .align 2, 0 _080AA5E8: .4byte gUnk_08129FF8 _080AA5EC: .4byte gUnk_03000BF0 _080AA5F0: .4byte gUnk_08129FD0 _080AA5F4: ldr r2, _080AA614 @ =gUnk_08129FE4 ldrb r1, [r6, #0xb] lsls r0, r1, #1 adds r0, r0, r2 ldrh r0, [r0] add r1, sb ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 subs r1, r7, r1 mov r4, r8 ldrb r2, [r4] bl sub_0807B7D8 b _080AA648 .align 2, 0 _080AA614: .4byte gUnk_08129FE4 _080AA618: movs r1, #0x2e ldrsh r0, [r6, r1] ldr r2, _080AA650 @ =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, [r6, r4] 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_0807BA8C ldrh r0, [r6, #0x24] bl sub_0807CCC8 _080AA648: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _080AA650: .4byte gUnk_03000BF0 thumb_func_start sub_080AA654 sub_080AA654: @ 0x080AA654 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 adds r4, #0x68 ldr r0, _080AA688 @ =gUnk_0812A004 adds r1, r4, #0 movs r2, #0x10 bl sub_0801D66C movs r1, #0x3f adds r0, r5, #0 ands r0, r1 lsls r0, r0, #4 adds r0, #8 strh r0, [r4, #8] movs r0, #0xfc lsls r0, r0, #4 ands r0, r5 lsrs r0, r0, #2 adds r0, #8 strh r0, [r4, #0xa] adds r0, r4, #0 bl sub_0804ADF8 pop {r4, r5, pc} .align 2, 0 _080AA688: .4byte gUnk_0812A004 thumb_func_start sub_080AA68C sub_080AA68C: @ 0x080AA68C push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080AA6A4 @ =gUnk_0812A014 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080AA6A4: .4byte gUnk_0812A014 thumb_func_start sub_080AA6A8 sub_080AA6A8: @ 0x080AA6A8 push {lr} ldr r2, _080AA6BC @ =gUnk_0812A02C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080AA6BC: .4byte gUnk_0812A02C thumb_func_start sub_080AA6C0 sub_080AA6C0: @ 0x080AA6C0 push {r4, r5, r6, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x87 bne _080AA774 movs r6, #3 movs r0, #3 strb r0, [r4, #0xc] movs r5, #0x5a strb r5, [r4, #0xe] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0xa] adds r1, #0x10 adds r0, r4, #0 bl sub_080042AC movs r0, #0x2a movs r1, #3 movs r2, #0 bl sub_080A2960 adds r3, r0, #0 cmp r3, #0 beq _080AA72A strb r5, [r3, #0xb] adds r2, r3, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 orrs r0, r6 strb r0, [r2] ldr r1, _080AA770 @ =gUnk_0812A03C ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 ldrb r0, [r0] adds r2, #0x39 strb r0, [r2] ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, #1 adds r0, r0, r1 ldrb r0, [r0] adds r1, r3, #0 adds r1, #0x63 strb r0, [r1] str r4, [r3, #0x50] _080AA72A: movs r0, #0x2a movs r1, #3 movs r2, #0 bl sub_080A2960 adds r3, r0, #0 cmp r3, #0 beq _080AA784 strb r5, [r3, #0xb] adds r2, r3, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 orrs r0, r6 strb r0, [r2] ldr r1, _080AA770 @ =gUnk_0812A03C ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, #2 adds r0, r0, r1 ldrb r0, [r0] adds r2, #0x39 strb r0, [r2] ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, #3 adds r0, r0, r1 ldrb r0, [r0] adds r1, r3, #0 adds r1, #0x63 strb r0, [r1] str r4, [r3, #0x50] b _080AA784 .align 2, 0 _080AA770: .4byte gUnk_0812A03C _080AA774: ldrb r1, [r4, #0xa] adds r1, #0x10 adds r0, r4, #0 bl sub_080042AC ldr r0, _080AA788 @ =0x00000101 bl sub_08004488 _080AA784: pop {r4, r5, r6, pc} .align 2, 0 _080AA788: .4byte 0x00000101 thumb_func_start sub_080AA78C sub_080AA78C: @ 0x080AA78C push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] cmp r0, #0 bne _080AA7DA ldr r0, _080AA7C8 @ =gUnk_03001160 ldrb r0, [r0, #0x14] lsrs r2, r0, #1 ldrb r0, [r4, #0xa] cmp r2, r0 beq _080AA7CC adds r3, r4, #0 adds r3, #0x3a ldrb r0, [r3] movs r1, #0xfb ands r1, r0 strb r1, [r3] movs r0, #2 eors r2, r0 ldrb r0, [r4, #0xa] cmp r2, r0 bne _080AA832 adds r1, r4, #0 adds r1, #0x3d movs r0, #0xe2 strb r0, [r1] adds r0, r4, #0 bl sub_080AA6C0 b _080AA832 .align 2, 0 _080AA7C8: .4byte gUnk_03001160 _080AA7CC: movs r0, #1 strb r0, [r4, #0xd] adds r1, r2, #0 adds r1, #8 adds r0, r4, #0 bl sub_080042AC _080AA7DA: adds r0, r4, #0 bl sub_0806F520 cmp r0, #0 beq _080AA812 adds r0, r4, #0 bl sub_080042B8 adds r5, r4, #0 adds r5, #0x5a ldrb r1, [r5] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _080AA806 movs r0, #0xef ands r0, r1 strb r0, [r5] movs r0, #0x80 lsls r0, r0, #1 bl sub_08004488 _080AA806: ldrb r1, [r5] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080AA832 b _080AA820 _080AA812: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080AA828 _080AA820: adds r0, r4, #0 bl sub_080AAAA8 b _080AA832 _080AA828: ldrb r1, [r4, #0xa] adds r1, #0x10 adds r0, r4, #0 bl sub_080042AC _080AA832: pop {r4, r5, pc} thumb_func_start sub_080AA834 sub_080AA834: @ 0x080AA834 push {r4, lr} adds r4, r0, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CBE4 cmp r0, #0 beq _080AA848 bl sub_0805E780 _080AA848: movs r2, #0 movs r0, #1 strb r0, [r4, #0xc] strb r0, [r4, #0x1c] strb r0, [r4, #0x16] ldr r1, _080AA874 @ =gUnk_0812A04C ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [r4, #0x48] adds r0, r4, #0 adds r0, #0x84 strb r2, [r0] ldrb r1, [r4, #0xa] adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 bl sub_080AAA68 pop {r4, pc} .align 2, 0 _080AA874: .4byte gUnk_0812A04C thumb_func_start sub_080AA878 sub_080AA878: @ 0x080AA878 push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080AA88E adds r0, r4, #0 bl sub_080042B8 _080AA88E: adds r0, r4, #0 bl sub_080AA9E0 pop {r4, pc} .align 2, 0 thumb_func_start sub_080AA898 sub_080AA898: @ 0x080AA898 push {r4, lr} adds r4, r0, #0 bl sub_0806FBB4 ldr r1, _080AA8B4 @ =gUnk_0812A05C ldrb r0, [r4, #0xd] subs r0, #5 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 _080AA8B4: .4byte gUnk_0812A05C thumb_func_start sub_080AA8B8 sub_080AA8B8: @ 0x080AA8B8 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldr r7, _080AA99C @ =gUnk_03001160 adds r0, #0x84 ldrb r0, [r0] cmp r0, #0 bne _080AA920 ldrb r0, [r4, #0xa] lsls r2, r0, #1 ldrb r0, [r7, #0x14] cmp r2, r0 bne _080AA90A ldr r1, _080AA9A0 @ =gUnk_0812A064 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r3, [r4, #0x2e] adds r0, r0, r3 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 adds r0, r2, #1 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r4, #0x32] adds r0, r0, r1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 adds r0, r7, #0 adds r0, #0x38 ldrb r2, [r0] adds r0, r6, #0 adds r1, r5, #0 bl sub_080002D4 cmp r0, #0 bne _080AA90A strh r6, [r7, #0x2e] strh r5, [r7, #0x32] _080AA90A: adds r1, r4, #0 adds r1, #0x84 movs r0, #1 strb r0, [r1] movs r0, #2 strb r0, [r4, #0xf] ldrb r1, [r4, #0xa] adds r1, #4 adds r0, r4, #0 bl sub_080042AC _080AA920: ldrb r0, [r7, #0x14] lsrs r0, r0, #1 ldrb r2, [r4, #0xa] cmp r0, r2 bne _080AA99A ldr r1, _080AA9A4 @ =gUnk_03003F80 adds r0, r1, #0 adds r0, #0xa8 ldrb r0, [r0] cmp r0, #0x1a bne _080AA99A ldrb r1, [r1, #5] movs r2, #2 adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _080AA99A ldr r0, _080AA99C @ =gUnk_03001160 adds r0, #0x5a ldrb r1, [r0] adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _080AA99A adds r5, r4, #0 adds r5, #0x5a ldrb r1, [r5] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080AA99A adds r0, r4, #0 bl sub_080042B8 ldrb r1, [r5] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080AA99A ldr r1, _080AA9A8 @ =gUnk_0812A06C ldrb r0, [r7, #0x14] adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r3, [r7, #0x2e] adds r0, r0, r3 strh r0, [r7, #0x2e] ldrb r0, [r7, #0x14] adds r0, #1 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r7, #0x32] adds r0, r0, r1 strh r0, [r7, #0x32] movs r0, #0x80 lsls r0, r0, #1 bl sub_08004488 _080AA99A: pop {r4, r5, r6, r7, pc} .align 2, 0 _080AA99C: .4byte gUnk_03001160 _080AA9A0: .4byte gUnk_0812A064 _080AA9A4: .4byte gUnk_03003F80 _080AA9A8: .4byte gUnk_0812A06C thumb_func_start sub_080AA9AC sub_080AA9AC: @ 0x080AA9AC push {lr} movs r2, #0 movs r1, #1 strb r1, [r0, #0xc] adds r1, r0, #0 adds r1, #0x84 strb r2, [r1] ldrb r1, [r0, #0xa] adds r1, #0xc bl sub_080042AC pop {pc} thumb_func_start sub_080AA9C4 sub_080AA9C4: @ 0x080AA9C4 push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080AA9DE adds r0, r4, #0 bl sub_080AAAA8 _080AA9DE: pop {r4, pc} thumb_func_start sub_080AA9E0 sub_080AA9E0: @ 0x080AA9E0 push {r4, r5, lr} adds r5, r0, #0 ldrb r1, [r5, #0xa] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080AAA00 ldr r0, _080AA9FC @ =gUnk_03001160 movs r2, #0x2e ldrsh r1, [r0, r2] movs r2, #0x2e ldrsh r0, [r5, r2] b _080AAA0A .align 2, 0 _080AA9FC: .4byte gUnk_03001160 _080AAA00: ldr r0, _080AAA24 @ =gUnk_03001160 movs r2, #0x32 ldrsh r1, [r0, r2] movs r2, #0x32 ldrsh r0, [r5, r2] _080AAA0A: subs r4, r1, r0 ldrb r2, [r5, #0xa] lsls r1, r2, #2 ldr r0, _080AAA28 @ =gUnk_0812A074 adds r3, r1, r0 cmp r2, #2 bgt _080AAA2C cmp r2, #1 bge _080AAA36 cmp r2, #0 beq _080AAA30 b _080AAA40 .align 2, 0 _080AAA24: .4byte gUnk_03001160 _080AAA28: .4byte gUnk_0812A074 _080AAA2C: cmp r2, #3 bne _080AAA40 _080AAA30: cmp r4, #4 ble _080AAA40 b _080AAA3E _080AAA36: movs r0, #4 rsbs r0, r0, #0 cmp r4, r0 bge _080AAA40 _080AAA3E: adds r3, #2 _080AAA40: ldrb r0, [r3] adds r4, r5, #0 adds r4, #0x29 movs r1, #7 ands r1, r0 ldrb r2, [r4] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4] ldrb r0, [r3, #1] strb r0, [r5, #0x15] ldrb r0, [r3] cmp r0, #5 bne _080AAA66 adds r0, r5, #0 bl sub_08078930 _080AAA66: pop {r4, r5, pc} thumb_func_start sub_080AAA68 sub_080AAA68: @ 0x080AAA68 push {r4, r5, r6, lr} ldr r2, _080AAAA0 @ =gUnk_0812A084 ldrb r1, [r0, #0xa] lsls r1, r1, #1 adds r1, r1, r2 ldrh r5, [r1] movs r2, #0x2e ldrsh r1, [r0, r2] ldr r3, _080AAAA4 @ =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, [r0, r6] ldrh r3, [r3, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r4 lsls r2, r2, #6 orrs r1, r2 adds r0, #0x38 ldrb r2, [r0] adds r0, r5, #0 bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 _080AAAA0: .4byte gUnk_0812A084 _080AAAA4: .4byte gUnk_03000BF0 thumb_func_start sub_080AAAA8 sub_080AAAA8: @ 0x080AAAA8 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x86 ldrh r0, [r0] bl sub_0807CCC8 movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _080AAAE4 @ =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 r4, #0x38 ldrb r1, [r4] bl sub_0807BA8C bl sub_0805E780 pop {r4, r5, pc} .align 2, 0 _080AAAE4: .4byte gUnk_03000BF0 thumb_func_start sub_080AAAE8 sub_080AAAE8: @ 0x080AAAE8 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080AAB00 @ =gUnk_0812A3C0 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080AAB00: .4byte gUnk_0812A3C0 thumb_func_start sub_080AAB04 sub_080AAB04: @ 0x080AAB04 push {lr} ldr r2, _080AAB18 @ =gUnk_0812A3D4 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080AAB18: .4byte gUnk_0812A3D4 thumb_func_start sub_080AAB1C sub_080AAB1C: @ 0x080AAB1C push {lr} bl sub_0805E780 pop {pc} thumb_func_start sub_080AAB24 sub_080AAB24: @ 0x080AAB24 push {lr} movs r1, #1 strb r1, [r0, #0xc] movs r1, #0x1e strb r1, [r0, #0xe] movs r1, #0 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_080AAB38 sub_080AAB38: @ 0x080AAB38 push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xe] cmp r0, #0 beq _080AAB4C subs r0, #1 strb r0, [r4, #0xe] b _080AAB62 _080AAB4C: adds r0, r4, #0 bl sub_080AF090 cmp r0, #0 bne _080AAB5E adds r0, r4, #0 bl sub_0806F69C b _080AAB62 _080AAB5E: movs r0, #2 strb r0, [r4, #0xc] _080AAB62: pop {r4, pc} thumb_func_start sub_080AAB64 sub_080AAB64: @ 0x080AAB64 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080AF090 ldrh r0, [r4, #0x2a] cmp r0, #0 beq _080AAB7C bl sub_0805E780 _080AAB7C: adds r0, r4, #0 bl sub_080A7EB0 cmp r0, #0 beq _080AAB8A bl sub_0805E780 _080AAB8A: pop {r4, pc} thumb_func_start sub_080AAB8C sub_080AAB8C: @ 0x080AAB8C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080AABA2 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0 bl sub_08004260 _080AABA2: adds r0, r4, #0 bl sub_080AABB0 adds r0, r4, #0 bl sub_08004274 pop {r4, pc} thumb_func_start sub_080AABB0 sub_080AABB0: @ 0x080AABB0 push {r4, r5, lr} adds r4, r0, #0 ldr r5, [r4, #0x50] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA24 ldrb r1, [r5, #0x14] lsls r1, r1, #1 ldr r0, _080AABEC @ =gUnk_080C9160 adds r1, r1, r0 ldrb r2, [r4, #0xe] lsls r2, r2, #8 movs r3, #0 ldrsh r0, [r1, r3] adds r3, r0, #0 muls r3, r2, r3 ldr r0, [r4, #0x2c] adds r0, r0, r3 str r0, [r4, #0x2c] adds r1, #0x80 movs r3, #0 ldrsh r0, [r1, r3] adds r1, r0, #0 muls r1, r2, r1 ldr r0, [r4, #0x30] subs r0, r0, r1 str r0, [r4, #0x30] pop {r4, r5, pc} .align 2, 0 _080AABEC: .4byte gUnk_080C9160 thumb_func_start sub_080AABF0 sub_080AABF0: @ 0x080AABF0 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080AAC08 @ =gUnk_0812A418 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080AAC08: .4byte gUnk_0812A418 thumb_func_start sub_080AAC0C sub_080AAC0C: @ 0x080AAC0C push {r4, lr} adds r4, r0, #0 ldr r1, _080AAC40 @ =gUnk_0812A430 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldrb r0, [r4, #0xb] cmp r0, #0 bne _080AAC3C adds r1, r4, #0 adds r1, #0x84 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _080AAC3C subs r1, #0x3f movs r0, #0 strb r0, [r1] _080AAC3C: pop {r4, pc} .align 2, 0 _080AAC40: .4byte gUnk_0812A430 thumb_func_start sub_080AAC44 sub_080AAC44: @ 0x080AAC44 push {r4, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080AACCA ldrb r0, [r4, #0xb] cmp r0, #0 bne _080AACBC movs r0, #0x3f ands r0, r1 cmp r0, #0 bne _080AACA0 movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrb r0, [r4, #0xa] cmp r0, #0 bne _080AAC84 ldr r0, _080AAC80 @ =gUnk_03001160 adds r1, r4, #0 bl sub_0806FAB0 b _080AAC8C .align 2, 0 _080AAC80: .4byte gUnk_03001160 _080AAC84: ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FAB0 _080AAC8C: bl sub_08077B2C ldr r2, _080AACB4 @ =gUnk_03003F80 ldrb r1, [r2, #0x1a] movs r0, #0x80 orrs r1, r0 strb r1, [r2, #0x1a] ldrb r1, [r2, #0xa] orrs r0, r1 strb r0, [r2, #0xa] _080AACA0: ldr r0, _080AACB8 @ =gUnk_03001160 adds r0, #0x45 ldrb r1, [r0] cmp r1, #0 bne _080AACCA adds r0, r4, #0 adds r0, #0x45 strb r1, [r0] b _080AACCA .align 2, 0 _080AACB4: .4byte gUnk_03003F80 _080AACB8: .4byte gUnk_03001160 _080AACBC: ldr r0, _080AACDC @ =0x00000119 bl sub_080A3268 ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA24 _080AACCA: adds r1, r4, #0 adds r1, #0x42 ldrb r0, [r1] cmp r0, #0 beq _080AACD8 movs r0, #0 strb r0, [r1] _080AACD8: pop {r4, pc} .align 2, 0 _080AACDC: .4byte 0x00000119 thumb_func_start sub_080AACE0 sub_080AACE0: @ 0x080AACE0 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 beq _080AACF4 ldrb r0, [r4, #0xb] cmp r0, #0 beq _080AACF4 bl sub_0805E780 _080AACF4: ldrb r1, [r4, #0x18] lsls r0, r1, #0x1e lsrs r2, r0, #0x1e adds r5, r4, #0 adds r5, #0x86 cmp r2, #1 bne _080AAD16 movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] strb r2, [r5] adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC _080AAD16: ldr r2, [r4, #0x50] ldrb r0, [r4, #0xb] cmp r0, #0 bne _080AAD4A adds r1, r2, #0 adds r1, #0x74 movs r0, #3 strb r0, [r1] adds r1, #0xc adds r0, r4, #0 adds r0, #0x81 ldrb r0, [r0] lsrs r0, r0, #1 ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #8 bls _080AAD42 movs r0, #8 b _080AAD56 _080AAD42: cmp r0, #0 bne _080AAD58 movs r0, #1 b _080AAD56 _080AAD4A: adds r1, r2, #0 adds r1, #0x84 movs r0, #0 strb r0, [r1] subs r1, #0x45 movs r0, #0x2b _080AAD56: strb r0, [r1] _080AAD58: ldrb r0, [r5] cmp r0, #0 bne _080AAD68 adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC _080AAD68: bl sub_0805E780 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080AAD70 sub_080AAD70: @ 0x080AAD70 push {r4, lr} adds r4, r0, #0 bl sub_0806F520 cmp r0, #0 bne _080AAD82 adds r1, r4, #0 adds r1, #0x45 strb r0, [r1] _080AAD82: ldr r0, _080AAD94 @ =gUnk_0812A440 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _080AAD94: .4byte gUnk_0812A440 thumb_func_start sub_080AAD98 sub_080AAD98: @ 0x080AAD98 movs r1, #2 strb r1, [r0, #0xd] bx lr .align 2, 0 thumb_func_start nullsub_541 nullsub_541: @ 0x080AADA0 bx lr .align 2, 0 thumb_func_start sub_080AADA4 sub_080AADA4: @ 0x080AADA4 push {r4, lr} adds r4, r0, #0 bl sub_0806F3E4 cmp r0, #0 beq _080AADB8 adds r1, r4, #0 adds r1, #0x45 movs r0, #0 strb r0, [r1] _080AADB8: pop {r4, pc} .align 2, 0 thumb_func_start sub_080AADBC sub_080AADBC: @ 0x080AADBC push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xb] cmp r0, #0 bne _080AADCC movs r0, #1 strb r0, [r5, #0xc] b _080AADE0 _080AADCC: movs r0, #3 strb r0, [r5, #0xc] adds r1, r5, #0 adds r1, #0x3f movs r0, #0x2c strb r0, [r1] ldr r0, [r5, #0x50] adds r1, r5, #0 bl sub_0806FAB0 _080AADE0: ldrb r1, [r5, #0xa] cmp r1, #0 bne _080AAE64 strb r1, [r5, #0xe] movs r3, #4 movs r0, #4 strb r0, [r5, #0xf] adds r0, r5, #0 adds r0, #0x80 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r1, r5, #0 adds r1, #0x45 movs r0, #0x10 strb r0, [r1] ldrh r0, [r5, #0x36] adds r0, #4 movs r4, #0 strh r0, [r5, #0x36] ldrb r2, [r5, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 movs r2, #0x40 orrs r0, r2 strb r0, [r5, #0x1b] ldrb r0, [r5, #0x19] ands r1, r0 orrs r1, r2 strb r1, [r5, #0x19] adds r2, r5, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 orrs r0, r3 strb r0, [r2] ldr r1, _080AAE60 @ =gUnk_03001160 adds r0, r5, #0 bl sub_080045C4 strb r0, [r5, #0x15] adds r0, r5, #0 adds r0, #0x86 strb r4, [r0] adds r1, r5, #0 adds r1, #0x84 movs r0, #0x96 lsls r0, r0, #1 strh r0, [r1] movs r0, #0x18 bl sub_080A7EE0 adds r1, r0, #0 cmp r1, #0 beq _080AAE7C movs r0, #1 strb r0, [r1, #0xa] ldrb r0, [r5, #0xb] strb r0, [r1, #0xb] str r5, [r1, #0x50] b _080AAE7C .align 2, 0 _080AAE60: .4byte gUnk_03001160 _080AAE64: ldr r0, [r5, #0x50] adds r1, r5, #0 bl sub_0806FAB0 ldrb r1, [r5, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r5, #0x10] ldr r0, [r5, #0x50] adds r1, r5, #0 bl sub_0806FA24 _080AAE7C: ldrb r1, [r5, #0xa] adds r0, r5, #0 bl sub_08004260 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080AAE88 sub_080AAE88: @ 0x080AAE88 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #1 beq _080AAED0 cmp r0, #1 bgt _080AAE9C cmp r0, #0 beq _080AAEA2 b _080AAEF6 _080AAE9C: cmp r0, #2 beq _080AAEE0 b _080AAEF6 _080AAEA2: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _080AAEC2 movs r0, #4 strb r0, [r4, #0xf] ldr r1, _080AAECC @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 _080AAEC2: adds r0, r4, #0 bl sub_0806F69C b _080AAEF6 .align 2, 0 _080AAECC: .4byte gUnk_03001160 _080AAED0: ldr r0, [r4, #0x50] cmp r0, #0 beq _080AAEDC ldr r0, [r0, #4] cmp r0, #0 bne _080AAEE0 _080AAEDC: bl sub_0805E780 _080AAEE0: ldr r0, [r4, #0x50] ldrb r0, [r0, #0x18] lsls r0, r0, #0x1e cmp r0, #0 bne _080AAEEE bl sub_0805E780 _080AAEEE: ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA24 _080AAEF6: adds r0, r4, #0 bl sub_080AB034 pop {r4, pc} .align 2, 0 thumb_func_start sub_080AAF00 sub_080AAF00: @ 0x080AAF00 push {r4, lr} adds r4, r0, #0 bl sub_080AAF74 adds r0, r4, #0 bl sub_080AB034 pop {r4, pc} thumb_func_start sub_080AAF10 sub_080AAF10: @ 0x080AAF10 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA24 adds r0, r4, #0 bl sub_080AB034 ldr r3, [r4, #0x50] ldrb r1, [r3, #0x18] lsls r1, r1, #0x1e lsrs r1, r1, #0x1e ldrb r2, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] ldrb r0, [r4, #0xa] cmp r0, #0 beq _080AAF48 adds r0, r3, #0 adds r0, #0x45 ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x45 strb r0, [r1] _080AAF48: ldr r0, [r4, #0x50] ldrb r0, [r0, #0xc] cmp r0, #2 bne _080AAF60 ldrb r1, [r4, #0x10] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080AAF70 movs r0, #0x7f ands r0, r1 b _080AAF6E _080AAF60: ldrb r1, [r4, #0x10] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080AAF70 movs r0, #0x80 orrs r0, r1 _080AAF6E: strb r0, [r4, #0x10] _080AAF70: pop {r4, pc} .align 2, 0 thumb_func_start sub_080AAF74 sub_080AAF74: @ 0x080AAF74 push {r4, r5, lr} adds r5, r0, #0 bl sub_0807953C cmp r0, #0 beq _080AAF94 bl sub_08000E50 adds r3, r5, #0 adds r3, #0x80 ldrb r1, [r3] adds r1, #1 movs r2, #1 ands r0, r2 adds r1, r1, r0 strb r1, [r3] _080AAF94: ldrb r0, [r5, #0xe] adds r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x3c bne _080AAFCC movs r0, #0x1e strb r0, [r5, #0xe] ldr r4, _080AAFFC @ =gUnk_03001160 adds r1, r4, #0 adds r1, #0x3d movs r0, #8 strb r0, [r1] subs r0, #0xc bl sub_080526A0 adds r0, r4, #0 movs r1, #0x7a bl sub_0800449C adds r4, #0x45 ldrb r1, [r4] cmp r1, #0 bne _080AAFCC adds r0, r5, #0 adds r0, #0x45 strb r1, [r0] _080AAFCC: adds r1, r5, #0 adds r1, #0x80 ldrb r0, [r1] cmp r0, #0x30 bhi _080AAFE0 adds r0, r5, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #0x10 bne _080AB004 _080AAFE0: movs r2, #0 movs r0, #1 strb r0, [r5, #0xc] strb r2, [r1] ldr r0, _080AAFFC @ =gUnk_03001160 adds r0, #0x3d movs r1, #0xf0 strb r1, [r0] ldr r0, _080AB000 @ =gUnk_03003F80 strb r2, [r0, #0x1a] adds r0, r5, #0 adds r0, #0x45 strb r2, [r0] b _080AB028 .align 2, 0 _080AAFFC: .4byte gUnk_03001160 _080AB000: .4byte gUnk_03003F80 _080AB004: bl sub_08077B2C ldr r2, _080AB02C @ =gUnk_03003F80 ldrb r1, [r2, #0x1a] movs r0, #0x80 orrs r1, r0 strb r1, [r2, #0x1a] ldrb r1, [r2, #0xa] orrs r0, r1 strb r0, [r2, #0xa] ldr r4, _080AB030 @ =gUnk_03001160 adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA24 ldrh r0, [r4, #0x36] subs r0, #4 strh r0, [r5, #0x36] _080AB028: pop {r4, r5, pc} .align 2, 0 _080AB02C: .4byte gUnk_03003F80 _080AB030: .4byte gUnk_03001160 thumb_func_start sub_080AB034 sub_080AB034: @ 0x080AB034 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5b ldrb r1, [r0] movs r0, #1 ands r0, r1 ldr r1, _080AB058 @ =0x00000139 cmp r0, #0 beq _080AB04E movs r1, #0 _080AB04E: adds r0, r4, #0 bl sub_0801D2B4 pop {r4, pc} .align 2, 0 _080AB058: .4byte 0x00000139 thumb_func_start sub_080AB05C sub_080AB05C: @ 0x080AB05C push {lr} ldr r2, _080AB070 @ =gUnk_0812A494 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080AB070: .4byte gUnk_0812A494 thumb_func_start sub_080AB074 sub_080AB074: @ 0x080AB074 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldr r5, [r4, #0x50] ldr r0, [r5, #4] cmp r0, #0 bne _080AB084 bl sub_0805E780 _080AB084: ldrb r6, [r4, #0xc] cmp r6, #0 bne _080AB0AA adds r0, r4, #0 bl sub_080AB12C cmp r0, #0 beq _080AB124 movs r0, #1 strb r0, [r4, #0xc] strb r6, [r4, #0x1e] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #9 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r2] _080AB0AA: ldr r0, [r4, #0x50] adds r7, r5, #0 adds r7, #0x7f movs r3, #0 ldrsb r3, [r7, r3] rsbs r3, r3, #0 subs r3, #0xa adds r1, r4, #0 movs r2, #0 bl sub_0806FA90 ldr r3, _080AB128 @ =gUnk_080C9160 adds r2, r5, #0 adds r2, #0x7c ldrb r0, [r2] lsls r0, r0, #1 adds r0, r0, r3 movs r6, #0 ldrsh r1, [r0, r6] adds r6, r5, #0 adds r6, #0x7e ldrb r0, [r6] lsls r0, r0, #8 muls r1, r0, r1 ldr r0, [r4, #0x2c] adds r0, r0, r1 str r0, [r4, #0x2c] ldrb r0, [r2] adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r3 movs r2, #0 ldrsh r1, [r0, r2] ldrb r0, [r6] lsls r0, r0, #8 muls r1, r0, r1 ldr r0, [r4, #0x30] subs r0, r0, r1 str r0, [r4, #0x30] movs r0, #0 ldrsb r0, [r7, r0] ldrh r6, [r4, #0x36] adds r0, r0, r6 strh r0, [r4, #0x36] adds r0, r5, #0 adds r0, #0x7b ldrb r0, [r0] cmp r0, #0 beq _080AB124 movs r0, #0x19 bl sub_080A7EE0 adds r5, r0, #0 cmp r5, #0 beq _080AB124 movs r0, #4 strb r0, [r5, #0xa] adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA6C _080AB124: pop {r4, r5, r6, r7, pc} .align 2, 0 _080AB128: .4byte gUnk_080C9160 thumb_func_start sub_080AB12C sub_080AB12C: @ 0x080AB12C push {r4, lr} adds r4, r0, #0 ldr r0, _080AB168 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x44 bhi _080AB16C movs r0, #0x19 bl sub_080A7EE0 adds r1, r0, #0 movs r0, #1 strb r0, [r1, #0xa] str r4, [r1, #0x50] movs r0, #0x19 bl sub_080A7EE0 adds r1, r0, #0 movs r0, #2 strb r0, [r1, #0xa] str r4, [r1, #0x50] movs r0, #0x19 bl sub_080A7EE0 adds r1, r0, #0 movs r0, #3 strb r0, [r1, #0xa] str r4, [r1, #0x50] movs r0, #1 b _080AB16E .align 2, 0 _080AB168: .4byte gUnk_03003DBC _080AB16C: movs r0, #0 _080AB16E: pop {r4, pc} thumb_func_start sub_080AB170 sub_080AB170: @ 0x080AB170 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r6, [r4, #0x50] ldr r0, [r6, #4] cmp r0, #0 bne _080AB180 bl sub_0805E780 _080AB180: ldrb r0, [r4, #0xc] cmp r0, #0 bne _080AB1AA movs r0, #1 strb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #0x3a ands r0, r1 strb r0, [r2] movs r0, #5 strb r0, [r4, #0x1e] ldrb r1, [r2] subs r0, #0xd ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r2] ldr r0, _080AB1C8 @ =gUnk_080FD460 str r0, [r4, #0x48] _080AB1AA: ldr r5, [r6, #0x50] adds r0, r4, #0 adds r0, #0x7c adds r2, r5, #0 adds r2, #0x7c ldrb r1, [r0] adds r3, r0, #0 ldrb r2, [r2] cmp r1, r2 beq _080AB1CC ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 b _080AB1D2 .align 2, 0 _080AB1C8: .4byte gUnk_080FD460 _080AB1CC: ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 _080AB1D2: strb r0, [r4, #0x10] adds r0, r5, #0 adds r0, #0x7c ldrb r0, [r0] strb r0, [r3] adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x20 ands r0, r1 cmp r0, #0 bne _080AB208 movs r0, #0x1f ands r0, r1 ldr r1, _080AB204 @ =gUnk_0812A4A8 adds r0, r0, r1 movs r2, #0 ldrsb r2, [r0, r2] movs r3, #1 ldrsb r3, [r0, r3] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FA90 b _080AB216 .align 2, 0 _080AB204: .4byte gUnk_0812A4A8 _080AB208: movs r3, #0xa rsbs r3, r3, #0 adds r0, r5, #0 adds r1, r4, #0 movs r2, #0 bl sub_0806FA90 _080AB216: movs r1, #0x2e ldrsh r0, [r6, r1] movs r2, #0x2e ldrsh r1, [r4, r2] subs r0, r0, r1 ldrb r2, [r4, #0xa] muls r0, r2, r0 adds r3, r2, #0 cmp r0, #0 bge _080AB22C adds r0, #3 _080AB22C: asrs r0, r0, #2 ldrh r5, [r4, #0x2e] adds r0, r0, r5 strh r0, [r4, #0x2e] movs r1, #0x32 ldrsh r0, [r6, r1] movs r5, #0x32 ldrsh r1, [r4, r5] subs r0, r0, r1 muls r0, r3, r0 cmp r0, #0 bge _080AB246 adds r0, #3 _080AB246: asrs r0, r0, #2 ldrh r1, [r4, #0x32] adds r0, r0, r1 strh r0, [r4, #0x32] movs r3, #0x36 ldrsh r0, [r6, r3] movs r5, #0x36 ldrsh r1, [r4, r5] subs r0, r0, r1 muls r0, r2, r0 cmp r0, #0 bge _080AB260 adds r0, #3 _080AB260: asrs r0, r0, #2 ldrh r1, [r4, #0x36] adds r0, r0, r1 strh r0, [r4, #0x36] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080AB26C sub_080AB26C: @ 0x080AB26C push {lr} adds r2, r0, #0 ldrb r1, [r2, #0xc] cmp r1, #0 bne _080AB28C movs r0, #1 strb r0, [r2, #0xc] movs r0, #5 strb r0, [r2, #0xe] strb r1, [r2, #0x1e] adds r3, r2, #0 adds r3, #0x29 ldrb r1, [r3] subs r0, #0x3e ands r0, r1 strb r0, [r3] _080AB28C: ldrb r0, [r2, #0xe] subs r0, #1 strb r0, [r2, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080AB29E bl sub_0805E780 b _080AB2A4 _080AB29E: ldrb r0, [r2, #0x1e] adds r0, #1 strb r0, [r2, #0x1e] _080AB2A4: pop {pc} .align 2, 0 thumb_func_start sub_080AB2A8 sub_080AB2A8: @ 0x080AB2A8 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080AB2C0 @ =gUnk_0812A4C8 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080AB2C0: .4byte gUnk_0812A4C8 thumb_func_start sub_080AB2C4 sub_080AB2C4: @ 0x080AB2C4 push {lr} ldr r2, _080AB2D8 @ =gUnk_0812A4DC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080AB2D8: .4byte gUnk_0812A4DC thumb_func_start sub_080AB2DC sub_080AB2DC: @ 0x080AB2DC push {r4, r5, lr} adds r2, r0, #0 adds r5, r2, #0 adds r5, #0x41 ldrb r1, [r5] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080AB314 movs r0, #3 strb r0, [r2, #0xc] ldrb r1, [r2, #0x10] movs r4, #0x7f adds r0, r4, #0 ands r0, r1 strb r0, [r2, #0x10] adds r0, r2, #0 movs r1, #0x53 bl sub_08004260 ldrb r0, [r5] ands r4, r0 cmp r4, #0 bne _080AB314 movs r0, #4 rsbs r0, r0, #0 bl sub_080526A0 _080AB314: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080AB318 sub_080AB318: @ 0x080AB318 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 movs r4, #1 movs r0, #1 mov r8, r0 mov r1, r8 strb r1, [r6, #0xc] ldr r0, _080AB3D8 @ =0xFFFF0000 str r0, [r6, #0x20] movs r2, #0x2e ldrsh r1, [r6, r2] ldr r2, _080AB3DC @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r6, r5] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r0, r6, #0 adds r0, #0x76 strh r1, [r0] ldr r0, [r6, #0x50] adds r1, r6, #0 bl sub_0806FA24 movs r1, #0x80 lsls r1, r1, #5 ldrb r2, [r6, #0x15] adds r0, r6, #0 bl sub_0806F5BC adds r2, r6, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 orrs r0, r4 strb r0, [r2] ldr r0, [r6, #0x50] ldr r0, [r0, #0x34] str r0, [r6, #0x34] adds r0, r6, #0 movs r1, #0x51 bl sub_08004260 ldr r0, _080AB3E0 @ =0x000001B5 bl sub_080A3268 adds r0, r6, #0 bl sub_080AB4F8 movs r1, #0x2e ldrsh r2, [r6, r1] movs r1, #0 ldrsb r1, [r0, r1] adds r5, r2, r1 movs r2, #0x32 ldrsh r1, [r6, r2] ldrb r0, [r0, #1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r7, r1, r0 adds r0, r6, #0 adds r1, r5, #0 adds r2, r7, #0 bl sub_080041DC adds r4, r0, #0 bl sub_08000E50 adds r1, r0, #0 ldr r0, _080AB3E4 @ =0x000001FF ands r1, r0 ldr r0, _080AB3E8 @ =gUnk_030010A0 ldr r0, [r0] mov r2, r8 ands r0, r2 cmp r0, #0 beq _080AB3EC adds r4, r4, r1 movs r0, #0x80 lsls r0, r0, #3 cmp r4, r0 ble _080AB3F4 adds r4, r0, #0 b _080AB3F4 .align 2, 0 _080AB3D8: .4byte 0xFFFF0000 _080AB3DC: .4byte gUnk_03000BF0 _080AB3E0: .4byte 0x000001B5 _080AB3E4: .4byte 0x000001FF _080AB3E8: .4byte gUnk_030010A0 _080AB3EC: subs r4, r4, r1 cmp r4, #0x1f bgt _080AB3F4 movs r4, #0x20 _080AB3F4: lsls r1, r4, #8 ldr r0, [r6, #0x34] bl __divsi3 lsls r0, r0, #0xd str r0, [r6, #0x20] adds r0, r6, #0 adds r1, r5, #0 adds r2, r7, #0 bl sub_080045B4 strb r0, [r6, #0x15] pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080AB414 sub_080AB414: @ 0x080AB414 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 movs r1, #0 bl sub_08003FC4 cmp r0, #0 bne _080AB446 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0xf strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0x54 bl sub_08004260 adds r0, r4, #0 bl sub_080AB4A4 b _080AB458 _080AB446: ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xe0 bls _080AB458 bl sub_0805E780 _080AB458: pop {r4, pc} .align 2, 0 thumb_func_start sub_080AB45C sub_080AB45C: @ 0x080AB45C push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080AB486 movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #0x53 bl sub_08004260 _080AB486: pop {r4, pc} thumb_func_start sub_080AB488 sub_080AB488: @ 0x080AB488 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 _080AB4A0 bl sub_0805E780 _080AB4A0: pop {r4, pc} .align 2, 0 thumb_func_start sub_080AB4A4 sub_080AB4A4: @ 0x080AB4A4 push {r4, r5, r6, r7, lr} adds r6, r0, #0 adds r7, r6, #0 adds r7, #0x76 ldrh r4, [r7] movs r1, #0x2e ldrsh r0, [r6, r1] ldr r3, _080AB4F4 @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r0, r0, r1 asrs r5, r0, #4 movs r2, #0x3f ands r5, r2 movs r1, #0x32 ldrsh r0, [r6, r1] ldrh r1, [r3, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r5, r0 cmp r4, r5 beq _080AB4F2 strh r5, [r7] adds r0, r6, #0 bl sub_080002A0 cmp r0, #0x13 beq _080AB4E2 cmp r0, #0x34 bne _080AB4F2 _080AB4E2: movs r0, #0xd3 lsls r0, r0, #2 ldrh r1, [r7] adds r2, r6, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0807B7D8 _080AB4F2: pop {r4, r5, r6, r7, pc} .align 2, 0 _080AB4F4: .4byte gUnk_03000BF0 thumb_func_start sub_080AB4F8 sub_080AB4F8: @ 0x080AB4F8 adds r1, r0, #0 ldrb r0, [r1, #0xa] lsls r0, r0, #5 ldrb r1, [r1, #0xf] lsls r1, r1, #1 orrs r0, r1 ldr r1, _080AB50C @ =gUnk_0812A4EC adds r0, r0, r1 bx lr .align 2, 0 _080AB50C: .4byte gUnk_0812A4EC thumb_func_start sub_080AB510 sub_080AB510: @ 0x080AB510 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080AB528 @ =gUnk_0812A58C bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080AB528: .4byte gUnk_0812A58C thumb_func_start sub_080AB52C sub_080AB52C: @ 0x080AB52C push {lr} ldr r2, _080AB540 @ =gUnk_0812A5A0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080AB540: .4byte gUnk_0812A5A0 thumb_func_start sub_080AB544 sub_080AB544: @ 0x080AB544 push {lr} adds r2, r0, #0 adds r0, #0x3d movs r1, #0 ldrsb r1, [r0, r1] movs r0, #4 rsbs r0, r0, #0 cmp r1, r0 bge _080AB57C movs r1, #2 movs r0, #2 strb r0, [r2, #0xc] adds r0, r2, #0 adds r0, #0x3e ldrb r0, [r0] strb r0, [r2, #0x15] ldrb r0, [r2, #0xa] eors r1, r0 lsls r1, r1, #3 ldrb r0, [r2, #0x15] subs r0, r0, r1 adds r0, #1 cmp r0, #2 bhi _080AB576 strb r1, [r2, #0x15] _080AB576: movs r0, #0xa0 lsls r0, r0, #2 strh r0, [r2, #0x24] _080AB57C: pop {pc} .align 2, 0 thumb_func_start sub_080AB580 sub_080AB580: @ 0x080AB580 push {lr} movs r1, #1 strb r1, [r0, #0xc] ldrb r1, [r0, #0xa] lsls r1, r1, #3 strb r1, [r0, #0x15] ldr r1, _080AB598 @ =0x0000FFFC strh r1, [r0, #0x36] ldrb r1, [r0, #0xa] bl sub_08004260 pop {pc} .align 2, 0 _080AB598: .4byte 0x0000FFFC thumb_func_start sub_080AB59C sub_080AB59C: @ 0x080AB59C push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080AF090 cmp r0, #0 bne _080AB5BC adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC bl sub_0805E780 _080AB5BC: adds r0, r4, #0 bl sub_080AB5F4 pop {r4, pc} thumb_func_start sub_080AB5C4 sub_080AB5C4: @ 0x080AB5C4 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080AF090 adds r0, r4, #0 bl sub_080AB634 cmp r0, #0 bne _080AB5F0 ldrh r0, [r4, #0x2a] cmp r0, #0 beq _080AB5F0 adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC bl sub_0805E780 _080AB5F0: pop {r4, pc} .align 2, 0 thumb_func_start sub_080AB5F4 sub_080AB5F4: @ 0x080AB5F4 push {r4, lr} adds r4, r0, #0 bl sub_080043E8 cmp r0, #2 beq _080AB61A cmp r0, #2 bhi _080AB60A cmp r0, #1 beq _080AB610 b _080AB62E _080AB60A: cmp r0, #3 beq _080AB624 b _080AB62E _080AB610: adds r0, r4, #0 bl sub_080043B4 movs r0, #1 b _080AB630 _080AB61A: adds r0, r4, #0 bl sub_080043A8 movs r0, #1 b _080AB630 _080AB624: adds r0, r4, #0 bl sub_080043AC movs r0, #1 b _080AB630 _080AB62E: movs r0, #0 _080AB630: pop {r4, pc} .align 2, 0 thumb_func_start sub_080AB634 sub_080AB634: @ 0x080AB634 push {r4, r5, r6, lr} adds r6, r0, #0 ldr r0, [r6, #0x50] movs r5, #0 adds r4, r0, #0 adds r4, #0x20 _080AB640: ldr r1, [r4] cmp r1, #0 beq _080AB684 adds r0, r6, #0 bl sub_080177A0 cmp r0, #0 beq _080AB684 ldr r1, [r4] ldrb r0, [r1, #0xc] cmp r0, #2 bhi _080AB67A movs r0, #3 strb r0, [r1, #0xc] ldr r1, [r4] movs r0, #0x1e strb r0, [r1, #0xe] ldr r2, [r4] ldrb r0, [r2, #0x18] movs r3, #4 rsbs r3, r3, #0 adds r1, r3, #0 ands r0, r1 strb r0, [r2, #0x18] ldr r0, [r4] movs r1, #0x45 movs r2, #0 bl sub_080A29AC _080AB67A: adds r0, r6, #0 bl sub_0805E7BC movs r0, #1 b _080AB68E _080AB684: adds r4, #4 adds r5, #1 cmp r5, #3 bls _080AB640 movs r0, #0 _080AB68E: pop {r4, r5, r6, pc} thumb_func_start sub_080AB690 sub_080AB690: @ 0x080AB690 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldrb r0, [r0, #0x18] lsls r0, r0, #0x1e cmp r0, #0 bne _080AB6A2 bl sub_0805E780 _080AB6A2: ldr r0, _080AB6B4 @ =gUnk_0812A5E8 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _080AB6B4: .4byte gUnk_0812A5E8 thumb_func_start sub_080AB6B8 sub_080AB6B8: @ 0x080AB6B8 push {lr} adds r2, r0, #0 ldr r0, [r2, #0x50] ldr r0, [r0, #0x2c] str r0, [r2, #0x74] ldrb r0, [r2, #0xa] cmp r0, #0 bne _080AB6E8 movs r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0x10] ldr r0, _080AB6E4 @ =gUnk_0812A614 str r0, [r2, #0x48] adds r0, r2, #0 movs r1, #0 bl sub_08004260 b _080AB6F8 .align 2, 0 _080AB6E4: .4byte gUnk_0812A614 _080AB6E8: movs r0, #2 strb r0, [r2, #0xc] movs r0, #4 strb r0, [r2, #0xf] ldrb r1, [r2, #0xe] adds r0, r2, #0 bl sub_08004260 _080AB6F8: pop {pc} .align 2, 0 thumb_func_start sub_080AB6FC sub_080AB6FC: @ 0x080AB6FC push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080AB724 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_08004260 adds r0, r4, #0 bl sub_080AB758 _080AB724: pop {r4, pc} .align 2, 0 thumb_func_start sub_080AB728 sub_080AB728: @ 0x080AB728 push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldr r2, [r4, #0x50] ldr r1, [r2, #0x2c] ldr r0, [r4, #0x74] subs r1, r1, r0 ldr r0, [r4, #0x2c] adds r0, r0, r1 str r0, [r4, #0x2c] ldr r0, [r2, #0x2c] str r0, [r4, #0x74] adds r0, r4, #0 bl sub_080AB888 ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] cmp r0, #0 bne _080AB754 bl sub_0805E780 _080AB754: pop {r4, pc} .align 2, 0 thumb_func_start sub_080AB758 sub_080AB758: @ 0x080AB758 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #4 adds r5, r0, #0 movs r6, #6 movs r7, #0 movs r4, #0 movs r0, #0x32 ldrsh r2, [r5, r0] ldr r1, _080AB818 @ =gUnk_03000BF0 ldrh r0, [r1, #8] adds r0, #0xd4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r8, r1 cmp r2, r0 bhi _080AB7B4 movs r3, #7 _080AB77E: adds r0, r4, #0 ands r0, r3 cmp r0, #7 bne _080AB798 adds r0, r5, #0 movs r1, #4 adds r2, r6, #0 str r3, [sp] bl sub_080AB844 adds r6, #0x3e adds r7, #0x3e ldr r3, [sp] _080AB798: adds r4, #1 ands r4, r3 movs r1, #0x32 ldrsh r0, [r5, r1] adds r0, r0, r7 lsls r1, r4, #3 adds r2, r0, r1 ldr r0, _080AB818 @ =gUnk_03000BF0 ldrh r0, [r0, #8] adds r0, #0xd4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r2, r0 bls _080AB77E _080AB7B4: movs r4, #0 movs r1, #0x32 ldrsh r0, [r5, r1] adds r2, r0, r7 mov r1, r8 ldrh r0, [r1, #8] adds r0, #0xd4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r2, r0 bhi _080AB802 movs r3, #3 _080AB7CC: adds r0, r4, #0 ands r0, r3 cmp r0, #3 bne _080AB7E6 adds r0, r5, #0 movs r1, #3 adds r2, r6, #0 str r3, [sp] bl sub_080AB844 adds r6, #0x1e adds r7, #0x1e ldr r3, [sp] _080AB7E6: adds r4, #1 ands r4, r3 movs r1, #0x32 ldrsh r0, [r5, r1] adds r0, r0, r7 lsls r1, r4, #3 adds r2, r0, r1 ldr r0, _080AB818 @ =gUnk_03000BF0 ldrh r0, [r0, #8] adds r0, #0xd4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r2, r0 bls _080AB7CC _080AB802: movs r0, #2 ands r0, r4 cmp r0, #0 beq _080AB81C adds r0, r5, #0 movs r1, #2 adds r2, r6, #0 bl sub_080AB844 adds r6, #0xe b _080AB830 .align 2, 0 _080AB818: .4byte gUnk_03000BF0 _080AB81C: movs r0, #1 ands r4, r0 cmp r4, #0 beq _080AB830 adds r0, r5, #0 movs r1, #1 adds r2, r6, #0 bl sub_080AB844 adds r6, #6 _080AB830: adds r0, r5, #0 movs r1, #6 adds r2, r6, #0 bl sub_080AB844 add sp, #4 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080AB844 sub_080AB844: @ 0x080AB844 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r7, r1, #0 adds r6, r2, #0 movs r0, #0x1c bl sub_080A7EE0 adds r4, r0, #0 cmp r4, #0 beq _080AB880 movs r0, #1 strb r0, [r4, #0xa] strb r7, [r4, #0xe] ldr r0, [r5, #0x50] str r0, [r4, #0x50] lsls r3, r6, #0x10 adds r0, r5, #0 adds r1, r4, #0 movs r2, #0 bl sub_0806FA48 cmp r7, #1 beq _080AB87C ldr r0, _080AB878 @ =gUnk_0812A61C b _080AB87E .align 2, 0 _080AB878: .4byte gUnk_0812A61C _080AB87C: ldr r0, _080AB884 @ =gUnk_0812A614 _080AB87E: str r0, [r4, #0x48] _080AB880: pop {r4, r5, r6, r7, pc} .align 2, 0 _080AB884: .4byte gUnk_0812A614 thumb_func_start sub_080AB888 sub_080AB888: @ 0x080AB888 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xf] subs r0, #1 strb r0, [r2, #0xf] movs r3, #0 ldrb r0, [r2, #0xe] cmp r0, #3 beq _080AB8A4 cmp r0, #3 ble _080AB8B6 cmp r0, #4 beq _080AB8A6 b _080AB8B6 _080AB8A4: movs r3, #1 _080AB8A6: ldr r0, _080AB8C4 @ =gUnk_0812A5F4 ldrb r1, [r2, #0xf] lsls r1, r1, #1 adds r1, r1, r3 lsls r1, r1, #2 adds r1, r1, r0 ldr r0, [r1] str r0, [r2, #0x48] _080AB8B6: ldrb r0, [r2, #0xf] cmp r0, #0 bne _080AB8C0 movs r0, #4 strb r0, [r2, #0xf] _080AB8C0: pop {pc} .align 2, 0 _080AB8C4: .4byte gUnk_0812A5F4 thumb_func_start sub_080AB8C8 sub_080AB8C8: @ 0x080AB8C8 push {r4, lr} adds r4, r0, #0 ldr r1, _080AB8E4 @ =gUnk_0812A6B4 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 bl sub_080AB9DC pop {r4, pc} .align 2, 0 _080AB8E4: .4byte gUnk_0812A6B4 thumb_func_start sub_080AB8E8 sub_080AB8E8: @ 0x080AB8E8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r0, #1 movs r1, #0 strb r0, [r4, #0xc] movs r0, #0xa0 lsls r0, r0, #1 strh r0, [r4, #0x24] str r1, [r4, #0x34] ldrb r0, [r4, #0xa] cmp r0, #0 bne _080AB90E bl sub_08000E50 movs r1, #0x18 ands r0, r1 strb r0, [r4, #0x15] str r4, [r4, #0x50] _080AB90E: adds r0, r4, #0 movs r1, #0 bl sub_08004260 ldrb r0, [r4, #0xa] cmp r0, #3 bhi _080AB936 movs r0, #0x1d bl sub_080A7EE0 adds r1, r0, #0 ldrb r0, [r4, #0xa] adds r0, #1 strb r0, [r1, #0xa] ldr r0, [r4, #0x50] str r0, [r1, #0x50] str r4, [r1, #0x54] adds r0, r4, #0 bl sub_0806FA24 _080AB936: adds r1, r4, #0 adds r1, #0x68 movs r2, #7 _080AB93C: ldrh r0, [r4, #0x2e] strh r0, [r1] adds r1, #2 ldrh r0, [r4, #0x32] strh r0, [r1] adds r1, #2 subs r2, #1 cmp r2, #0 bge _080AB93C pop {r4, pc} thumb_func_start sub_080AB950 sub_080AB950: @ 0x080AB950 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 bne _080AB99C adds r0, r4, #0 bl sub_080AEF88 ldrb r0, [r4, #0x15] lsrs r0, r0, #3 ldr r1, _080AB994 @ =gUnk_0812A6C4 lsls r5, r0, #1 adds r1, r5, r1 ldrh r1, [r1] ldrh r0, [r4, #0x2a] ands r0, r1 cmp r0, #0 bne _080AB980 ldrb r1, [r4, #0x15] adds r0, r4, #0 bl sub_080AB9FC cmp r0, #0 beq _080AB9D4 _080AB980: bl sub_08000E50 ldr r2, _080AB998 @ =gUnk_0812A6BC movs r1, #1 ands r1, r0 adds r1, r1, r5 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r4, #0x15] b _080AB9D4 .align 2, 0 _080AB994: .4byte gUnk_0812A6C4 _080AB998: .4byte gUnk_0812A6BC _080AB99C: ldr r0, [r4, #0x50] cmp r0, #0 bne _080AB9A6 bl sub_0805E780 _080AB9A6: ldr r0, [r4, #0x50] ldr r0, [r0, #4] cmp r0, #0 bne _080AB9B2 bl sub_0805E780 _080AB9B2: ldr r1, [r4, #0x54] cmp r1, #0 beq _080AB9D0 ldr r0, [r1, #4] cmp r0, #0 beq _080AB9D0 adds r0, r1, #0 adds r0, #0x68 ldrh r0, [r0] strh r0, [r4, #0x2e] adds r0, r1, #0 adds r0, #0x6a ldrh r0, [r0] strh r0, [r4, #0x32] b _080AB9D4 _080AB9D0: bl sub_0805E780 _080AB9D4: adds r0, r4, #0 bl sub_08004274 pop {r4, r5, pc} thumb_func_start sub_080AB9DC sub_080AB9DC: @ 0x080AB9DC push {r4, lr} adds r4, r0, #0 adds r0, #0x6c adds r1, r4, #0 adds r1, #0x68 movs r2, #0x1c bl sub_0801D66C ldrh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x84 strh r1, [r0] ldrh r1, [r4, #0x32] adds r0, #2 strh r1, [r0] pop {r4, pc} thumb_func_start sub_080AB9FC sub_080AB9FC: @ 0x080AB9FC push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r4, r1, #0 adds r0, #0x38 ldrb r0, [r0] bl sub_0808094C movs r1, #0x2e ldrsh r3, [r5, r1] ldr r2, _080ABA4C @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r3, r3, r1 asrs r3, r3, #4 movs r6, #0x3f ands r3, r6 movs r7, #0x32 ldrsh r1, [r5, r7] ldrh r2, [r2, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r6 lsls r1, r1, #6 orrs r3, r1 ldr r1, _080ABA50 @ =gUnk_080B4488 lsrs r4, r4, #3 lsls r4, r4, #1 adds r4, r4, r1 movs r2, #0 ldrsh r1, [r4, r2] adds r3, r3, r1 ldr r7, _080ABA54 @ =0x00002004 adds r0, r0, r7 adds r0, r0, r3 ldrb r0, [r0] cmp r0, #0x1f bls _080ABA58 cmp r0, #0x3f bhi _080ABA58 movs r0, #1 b _080ABA5A .align 2, 0 _080ABA4C: .4byte gUnk_03000BF0 _080ABA50: .4byte gUnk_080B4488 _080ABA54: .4byte 0x00002004 _080ABA58: movs r0, #0 _080ABA5A: pop {r4, r5, r6, r7, pc} thumb_func_start sub_080ABA5C sub_080ABA5C: @ 0x080ABA5C push {lr} ldr r2, _080ABA70 @ =gUnk_0812A6CC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080ABA70: .4byte gUnk_0812A6CC thumb_func_start sub_080ABA74 sub_080ABA74: @ 0x080ABA74 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] adds r0, #1 strb r0, [r2, #0xc] adds r0, r2, #0 adds r0, #0x86 ldrh r0, [r0] strh r0, [r2, #0x24] ldrh r1, [r2, #0x2e] adds r0, r2, #0 adds r0, #0x68 strh r1, [r0] ldrh r0, [r2, #0x32] adds r1, r2, #0 adds r1, #0x6a strh r0, [r1] adds r0, r2, #0 adds r0, #0x84 ldrh r1, [r0] subs r0, #0x18 strh r1, [r0] ldrb r0, [r2, #0xa] cmp r0, #6 bhi _080ABAAA movs r0, #0 b _080ABAAC _080ABAAA: movs r0, #1 _080ABAAC: strb r0, [r2, #0xb] ldr r0, _080ABAC8 @ =gUnk_0812A6D4 ldrb r1, [r2, #0xa] adds r0, r1, r0 ldrb r3, [r0] ldrb r0, [r2, #0xb] cmp r0, #0 bne _080ABACC movs r0, #8 strb r0, [r2, #0x15] ldrh r0, [r2, #0x32] adds r0, r0, r3 strh r0, [r2, #0x32] b _080ABAD6 .align 2, 0 _080ABAC8: .4byte gUnk_0812A6D4 _080ABACC: movs r0, #0x10 strb r0, [r2, #0x15] ldrh r0, [r2, #0x2e] adds r0, r0, r3 strh r0, [r2, #0x2e] _080ABAD6: adds r0, r2, #0 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_080ABAE0 sub_080ABAE0: @ 0x080ABAE0 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_080AF090 ldrb r0, [r4, #0xb] cmp r0, #0 bne _080ABAFE movs r1, #0x2e ldrsh r0, [r4, r1] adds r1, r4, #0 adds r1, #0x68 movs r2, #0 ldrsh r1, [r1, r2] subs r3, r0, r1 b _080ABB0C _080ABAFE: movs r0, #0x32 ldrsh r1, [r4, r0] adds r0, r4, #0 adds r0, #0x6a movs r2, #0 ldrsh r0, [r0, r2] subs r3, r1, r0 _080ABB0C: adds r0, r4, #0 adds r0, #0x6c movs r1, #0 ldrsh r2, [r0, r1] adds r6, r0, #0 cmp r2, #0 bge _080ABB1E rsbs r3, r3, #0 rsbs r2, r2, #0 _080ABB1E: lsls r1, r3, #0x10 lsls r0, r2, #0x10 cmp r1, r0 bls _080ABB84 ldrb r0, [r4, #0x15] movs r1, #0x10 eors r0, r1 strb r0, [r4, #0x15] ldrb r0, [r4, #0xb] adds r5, r0, #0 cmp r5, #0 bne _080ABB4E adds r0, r4, #0 adds r0, #0x68 ldrh r0, [r0] strh r0, [r4, #0x2e] ldrb r2, [r4, #0x18] lsls r1, r2, #0x19 lsrs r1, r1, #0x1f movs r0, #1 eors r1, r0 lsls r1, r1, #6 subs r0, #0x42 b _080ABB62 _080ABB4E: adds r0, r4, #0 adds r0, #0x6a ldrh r0, [r0] strh r0, [r4, #0x32] ldrb r2, [r4, #0x18] lsrs r1, r2, #7 movs r0, #1 eors r1, r0 lsls r1, r1, #7 movs r0, #0x7f _080ABB62: ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] cmp r3, #0 ble _080ABB84 lsls r0, r5, #0x18 cmp r0, #0 bne _080ABB7C ldrh r0, [r6] ldrh r2, [r4, #0x2e] adds r0, r0, r2 strh r0, [r4, #0x2e] b _080ABB84 _080ABB7C: ldrh r0, [r6] ldrh r1, [r4, #0x32] adds r0, r0, r1 strh r0, [r4, #0x32] _080ABB84: adds r0, r4, #0 bl sub_08004274 pop {r4, r5, r6, pc} thumb_func_start sub_080ABB8C sub_080ABB8C: @ 0x080ABB8C push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080ABBA4 @ =gUnk_0812A7D4 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080ABBA4: .4byte gUnk_0812A7D4 thumb_func_start sub_080ABBA8 sub_080ABBA8: @ 0x080ABBA8 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xa] cmp r0, #1 beq _080ABBC4 cmp r0, #1 bgt _080ABBDC cmp r0, #0 bne _080ABBDC ldr r0, _080ABBC0 @ =gUnk_0812A7EC b _080ABBC6 .align 2, 0 _080ABBC0: .4byte gUnk_0812A7EC _080ABBC4: ldr r0, _080ABBD8 @ =gUnk_0812A7F8 _080ABBC6: ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 b _080ABBEC .align 2, 0 _080ABBD8: .4byte gUnk_0812A7F8 _080ABBDC: ldr r0, _080ABBF0 @ =gUnk_0812A800 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 _080ABBEC: pop {pc} .align 2, 0 _080ABBF0: .4byte gUnk_0812A800 thumb_func_start sub_080ABBF4 sub_080ABBF4: @ 0x080ABBF4 push {r4, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080ABC52 ldrb r0, [r4, #0xa] cmp r0, #0 blt _080ABC52 cmp r0, #1 ble _080ABC3E cmp r0, #2 bne _080ABC52 movs r0, #0x3f ands r0, r1 cmp r0, #3 beq _080ABC32 cmp r0, #3 bgt _080ABC24 cmp r0, #0 beq _080ABC2A b _080ABC52 _080ABC24: cmp r0, #0x14 beq _080ABC32 b _080ABC52 _080ABC2A: movs r0, #4 rsbs r0, r0, #0 bl sub_080526A0 _080ABC32: adds r0, r4, #0 bl sub_080A29BC bl sub_0805E780 b _080ABC52 _080ABC3E: movs r0, #0x3f ands r0, r1 cmp r0, #0 bne _080ABC52 movs r0, #2 rsbs r0, r0, #0 bl sub_080526A0 bl sub_0805E780 _080ABC52: pop {r4, pc} thumb_func_start sub_080ABC54 sub_080ABC54: @ 0x080ABC54 push {r4, lr} adds r4, r0, #0 bl sub_0806F520 cmp r0, #0 bne _080ABC6E adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC bl sub_0805E780 _080ABC6E: ldr r0, _080ABC80 @ =gUnk_0812A808 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _080ABC80: .4byte gUnk_0812A808 thumb_func_start sub_080ABC84 sub_080ABC84: @ 0x080ABC84 movs r1, #2 strb r1, [r0, #0xd] bx lr .align 2, 0 thumb_func_start nullsub_542 nullsub_542: @ 0x080ABC8C bx lr .align 2, 0 thumb_func_start sub_080ABC90 sub_080ABC90: @ 0x080ABC90 push {r4, lr} adds r4, r0, #0 bl sub_0806F3E4 cmp r0, #0 beq _080ABCBE movs r0, #2 rsbs r0, r0, #0 bl sub_080526A0 ldr r0, _080ABCC0 @ =gUnk_03001160 movs r1, #0x7a bl sub_0800449C bl sub_08079D84 adds r0, r4, #0 movs r1, #2 movs r2, #0 bl sub_080A29AC bl sub_0805E780 _080ABCBE: pop {r4, pc} .align 2, 0 _080ABCC0: .4byte gUnk_03001160 thumb_func_start sub_080ABCC4 sub_080ABCC4: @ 0x080ABCC4 push {r4, r5, lr} adds r5, r0, #0 movs r4, #0 movs r0, #1 strb r0, [r5, #0xc] bl sub_08000E50 movs r1, #0x3f ands r0, r1 adds r0, #0x30 strb r0, [r5, #0xe] strb r4, [r5, #0xf] bl sub_08000E50 movs r1, #0x1f ands r0, r1 strb r0, [r5, #0x15] movs r0, #0x2e ldrsh r1, [r5, r0] ldr r2, _080ABD3C @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r4, #0x32 ldrsh r0, [r5, r4] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r0, r5, #0 adds r0, #0x74 strh r1, [r0] ldrh r0, [r0] movs r1, #2 bl sub_080002B0 adds r1, r5, #0 adds r1, #0x76 strh r0, [r1] adds r2, r5, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 movs r1, #0 bl sub_08004260 ldr r0, _080ABD40 @ =0x0000014B bl sub_080A3268 pop {r4, r5, pc} .align 2, 0 _080ABD3C: .4byte gUnk_03000BF0 _080ABD40: .4byte 0x0000014B thumb_func_start sub_080ABD44 sub_080ABD44: @ 0x080ABD44 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080ABD60 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _080ABD60: adds r0, r4, #0 bl sub_080AF090 adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 thumb_func_start sub_080ABD70 sub_080ABD70: @ 0x080ABD70 push {r4, r5, lr} adds r5, r0, #0 bl sub_08004274 adds r2, r5, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _080ABDEE movs r0, #0xef ands r0, r1 movs r1, #0 strb r0, [r2] strh r1, [r5, #0x24] movs r0, #0x2e ldrsh r1, [r5, r0] ldr r2, _080ABDDC @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r4, #0x32 ldrsh r0, [r5, r4] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r4, r5, #0 adds r4, #0x74 strh r1, [r4] ldrh r0, [r4] movs r1, #2 bl sub_080002B0 adds r1, r5, #0 adds r1, #0x76 strh r0, [r1] ldrh r1, [r1] cmp r1, #0x13 beq _080ABDE4 ldr r0, _080ABDE0 @ =0x00000315 cmp r1, r0 bne _080ABDEE ldrh r1, [r4] movs r0, #0x6e movs r2, #2 bl sub_0807B314 b _080ABDEE .align 2, 0 _080ABDDC: .4byte gUnk_03000BF0 _080ABDE0: .4byte 0x00000315 _080ABDE4: ldrh r1, [r4] movs r0, #0x6d movs r2, #2 bl sub_0807B314 _080ABDEE: adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080ABE00 bl sub_0805E780 _080ABE00: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080ABE04 sub_080ABE04: @ 0x080ABE04 push {r4, r5, lr} adds r4, r0, #0 bl sub_08000E50 adds r5, r0, #0 movs r0, #0xff ands r5, r0 movs r0, #1 strb r0, [r4, #0xc] ldr r0, _080ABE48 @ =0xFFFF0000 str r0, [r4, #0x20] ldrh r0, [r4, #0x36] subs r0, #0xa0 strh r0, [r4, #0x36] ldr r3, _080ABE4C @ =gUnk_03000BF0 ldrh r2, [r3, #6] ldr r1, _080ABE50 @ =0x00007FF0 adds r0, r1, #0 ands r0, r2 movs r2, #8 orrs r0, r2 strh r0, [r4, #0x2e] ldrh r0, [r3, #8] ands r1, r0 orrs r1, r2 strh r1, [r4, #0x32] movs r0, #0x2e ldrsh r1, [r4, r0] movs r0, #0x10 ands r0, r5 cmp r0, #0 beq _080ABE54 adds r1, #0x10 b _080ABE56 .align 2, 0 _080ABE48: .4byte 0xFFFF0000 _080ABE4C: .4byte gUnk_03000BF0 _080ABE50: .4byte 0x00007FF0 _080ABE54: adds r1, #0xc0 _080ABE56: movs r0, #0xe0 ands r0, r5 lsrs r0, r0, #1 adds r0, r1, r0 strh r0, [r4, #0x2e] movs r0, #0xf ands r5, r0 lsls r0, r5, #4 ldrh r1, [r4, #0x32] adds r0, r0, r1 strh r0, [r4, #0x32] adds r0, r4, #0 bl sub_08004168 adds r0, r4, #0 movs r1, #0 bl sub_08004260 ldr r0, _080ABE84 @ =0x0000012D bl sub_080A3268 pop {r4, r5, pc} .align 2, 0 _080ABE84: .4byte 0x0000012D thumb_func_start sub_080ABE88 sub_080ABE88: @ 0x080ABE88 push {r4, lr} adds r4, r0, #0 movs r1, #0xc0 lsls r1, r1, #5 bl sub_08003FC4 cmp r0, #0 bne _080ABEA6 adds r0, r4, #0 movs r1, #4 movs r2, #0 bl sub_080A29AC bl sub_0805E780 _080ABEA6: pop {r4, pc} thumb_func_start sub_080ABEA8 sub_080ABEA8: @ 0x080ABEA8 push {r4, lr} adds r4, r0, #0 movs r2, #1 strb r2, [r4, #0xc] movs r0, #0x60 strb r0, [r4, #0xe] adds r3, r4, #0 adds r3, #0x29 ldrb r1, [r3] subs r0, #0x68 ands r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r3] strb r2, [r4, #0x1c] ldrb r0, [r4, #0xb] cmp r0, #0 bne _080ABEDA bl sub_08000E50 movs r1, #0xf ands r0, r1 lsls r0, r0, #1 strb r0, [r4, #0x15] b _080ABEEC _080ABEDA: adds r0, r4, #0 movs r1, #0 bl sub_08049F84 strb r0, [r4, #0x15] ldr r1, _080ABEFC @ =0x0000013F adds r0, r4, #0 bl sub_0801D2B4 _080ABEEC: adds r0, r4, #0 movs r1, #0 bl sub_08004260 ldr r0, _080ABF00 @ =0x00000193 bl sub_080A3268 pop {r4, pc} .align 2, 0 _080ABEFC: .4byte 0x0000013F _080ABF00: .4byte 0x00000193 thumb_func_start sub_080ABF04 sub_080ABF04: @ 0x080ABF04 push {r4, lr} adds r4, r0, #0 bl sub_080040A8 cmp r0, #0 bne _080ABF14 bl sub_0805E780 _080ABF14: adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_08004274 pop {r4, pc} .align 2, 0 thumb_func_start sub_080ABF24 sub_080ABF24: @ 0x080ABF24 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080ABF3C @ =gUnk_0812A84C bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080ABF3C: .4byte gUnk_0812A84C thumb_func_start sub_080ABF40 sub_080ABF40: @ 0x080ABF40 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080ABF66 movs r0, #1 strb r0, [r4, #0xc] ldr r1, _080ABFA0 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #0 bl sub_08004260 ldr r0, _080ABFA4 @ =0x00000199 bl sub_080A3268 _080ABF66: ldrh r2, [r4, #0x36] movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #6 rsbs r0, r0, #0 cmp r1, r0 bge _080ABF78 adds r0, r2, #2 strh r0, [r4, #0x36] _080ABF78: adds r0, r4, #0 bl sub_080AF090 ldrh r0, [r4, #0x2a] cmp r0, #0 beq _080ABF88 bl sub_0805E780 _080ABF88: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080A7EB0 cmp r0, #0 beq _080ABF9C bl sub_0805E780 _080ABF9C: pop {r4, pc} .align 2, 0 _080ABFA0: .4byte gUnk_03001160 _080ABFA4: .4byte 0x00000199 thumb_func_start sub_080ABFA8 sub_080ABFA8: @ 0x080ABFA8 push {lr} bl sub_0805E780 pop {pc} thumb_func_start sub_080ABFB0 sub_080ABFB0: @ 0x080ABFB0 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080ABFC8 @ =gUnk_0812A954 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080ABFC8: .4byte gUnk_0812A954 thumb_func_start sub_080ABFCC sub_080ABFCC: @ 0x080ABFCC push {lr} ldr r2, _080ABFE0 @ =gUnk_0812A968 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080ABFE0: .4byte gUnk_0812A968 thumb_func_start sub_080ABFE4 sub_080ABFE4: @ 0x080ABFE4 push {lr} bl sub_0805E780 pop {pc} thumb_func_start sub_080ABFEC sub_080ABFEC: @ 0x080ABFEC push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xa] adds r1, #1 bl sub_08004260 ldrb r1, [r4, #0xa] cmp r1, #0 beq _080AC030 cmp r1, #1 beq _080AC048 movs r1, #0 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r4, #0xe] movs r0, #0xff strb r0, [r4, #0xf] ldr r1, _080AC028 @ =gUnk_0812A97C ldrb r0, [r4, #0xb] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r4, #0x24] adds r1, r4, #0 adds r1, #0x44 movs r0, #0x88 strb r0, [r1] ldr r0, _080AC02C @ =0x00000193 b _080AC06A .align 2, 0 _080AC028: .4byte gUnk_0812A97C _080AC02C: .4byte 0x00000193 _080AC030: movs r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0xe] movs r0, #7 strb r0, [r4, #0xf] adds r1, r4, #0 adds r1, #0x85 movs r0, #0x18 strb r0, [r1] subs r1, #0x41 movs r0, #0x88 b _080AC058 _080AC048: strb r1, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x85 movs r0, #0x18 _080AC058: strb r0, [r1] ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA6C ldrh r0, [r4, #0x36] subs r0, #0x14 strh r0, [r4, #0x36] ldr r0, _080AC070 @ =0x00000149 _080AC06A: bl sub_080A3268 pop {r4, pc} .align 2, 0 _080AC070: .4byte 0x00000149 thumb_func_start sub_080AC074 sub_080AC074: @ 0x080AC074 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldr r0, [r0, #4] cmp r0, #0 bne _080AC084 bl sub_0805E780 _080AC084: ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA6C ldrh r0, [r4, #0x36] subs r0, #0x14 strh r0, [r4, #0x36] adds r1, r4, #0 adds r1, #0x85 ldrb r0, [r1] cmp r0, #0 beq _080AC0B2 subs r0, #1 strb r0, [r1] movs r1, #0xff ands r0, r1 movs r1, #7 ands r0, r1 cmp r0, #0 bne _080AC0B2 ldr r0, _080AC0E8 @ =0x00000149 bl sub_080A3268 _080AC0B2: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080AC0FE ldrb r0, [r4, #0xa] cmp r0, #0 bne _080AC0F0 movs r0, #2 strb r0, [r4, #0xc] ldr r1, _080AC0EC @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r4, #0x24] adds r0, #0x13 bl sub_080A3268 b _080AC0F8 .align 2, 0 _080AC0E8: .4byte 0x00000149 _080AC0EC: .4byte gUnk_03001160 _080AC0F0: movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x10 strb r0, [r4, #0xe] _080AC0F8: ldrh r0, [r4, #0x36] subs r0, #0x28 strh r0, [r4, #0x36] _080AC0FE: pop {r4, pc} thumb_func_start sub_080AC100 sub_080AC100: @ 0x080AC100 push {r4, lr} adds r4, r0, #0 ldrh r2, [r4, #0x36] movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #6 rsbs r0, r0, #0 cmp r1, r0 bge _080AC116 adds r0, r2, #3 strh r0, [r4, #0x36] _080AC116: adds r0, r4, #0 bl sub_080AF090 ldrh r0, [r4, #0x2a] cmp r0, #0 beq _080AC126 bl sub_0805E780 _080AC126: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080A7EB0 cmp r0, #0 beq _080AC13A bl sub_0805E780 _080AC13A: ldrb r0, [r4, #0xe] cmp r0, #0x1d bhi _080AC160 adds r0, #1 strb r0, [r4, #0xe] movs r1, #0xff ands r0, r1 ldrb r1, [r4, #0xf] ands r0, r1 cmp r0, #0 bne _080AC160 ldr r1, _080AC164 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 _080AC160: pop {r4, pc} .align 2, 0 _080AC164: .4byte gUnk_03001160 thumb_func_start sub_080AC168 sub_080AC168: @ 0x080AC168 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_08004274 ldr r0, [r4, #0x34] ldr r1, _080AC1C0 @ =0xFFFF8000 adds r0, r0, r1 str r0, [r4, #0x34] ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r6, r0, #0x18 cmp r6, #0 bne _080AC1F8 movs r0, #4 strb r0, [r4, #0xc] strb r0, [r4, #0xe] bl sub_08000E50 adds r5, r0, #0 movs r0, #7 ands r5, r0 ldr r0, _080AC1C4 @ =gUnk_0812A982 adds r0, r5, r0 ldrb r0, [r0] strb r0, [r4, #0xf] ldr r1, _080AC1C8 @ =gUnk_03001160 adds r0, r4, #0 bl sub_080045C4 adds r1, r0, #0 ldr r0, [r4, #0x50] adds r0, #0x84 ldrb r0, [r0] cmp r0, #3 bne _080AC1D0 ldr r0, _080AC1CC @ =gUnk_0812A98A adds r0, r5, r0 ldrb r0, [r0] subs r1, r1, r0 strb r6, [r4, #0xb] b _080AC1F2 .align 2, 0 _080AC1C0: .4byte 0xFFFF8000 _080AC1C4: .4byte gUnk_0812A982 _080AC1C8: .4byte gUnk_03001160 _080AC1CC: .4byte gUnk_0812A98A _080AC1D0: cmp r0, #2 bne _080AC1E4 ldr r0, _080AC1E0 @ =gUnk_0812A98A adds r0, r5, r0 ldrb r0, [r0] subs r1, r1, r0 movs r0, #1 b _080AC1F0 .align 2, 0 _080AC1E0: .4byte gUnk_0812A98A _080AC1E4: ldr r0, _080AC1FC @ =gUnk_0812A98A adds r0, r5, r0 ldrb r0, [r0] lsrs r0, r0, #1 subs r1, r1, r0 movs r0, #2 _080AC1F0: strb r0, [r4, #0xb] _080AC1F2: movs r0, #0x1f ands r1, r0 strb r1, [r4, #0x15] _080AC1F8: pop {r4, r5, r6, pc} .align 2, 0 _080AC1FC: .4byte gUnk_0812A98A thumb_func_start sub_080AC200 sub_080AC200: @ 0x080AC200 push {r4, r5, lr} adds r4, r0, #0 bl sub_08004274 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] movs r5, #0xff lsls r0, r0, #0x18 cmp r0, #0 bne _080AC270 movs r0, #0x10 strb r0, [r4, #0xe] movs r0, #0x21 bl sub_080A7EE0 adds r1, r0, #0 cmp r1, #0 beq _080AC23C movs r0, #2 strb r0, [r1, #0xa] ldrb r0, [r4, #0xb] strb r0, [r1, #0xb] ldrb r0, [r4, #0x15] strb r0, [r1, #0x15] ldr r0, [r4, #0x50] str r0, [r1, #0x50] adds r0, r4, #0 bl sub_0806FA24 _080AC23C: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] ands r0, r5 cmp r0, #0 bne _080AC24C bl sub_0805E780 _080AC24C: ldr r0, [r4, #0x50] adds r0, #0x84 ldrb r0, [r0] cmp r0, #3 bne _080AC25C ldrb r0, [r4, #0x15] adds r0, #3 b _080AC26A _080AC25C: cmp r0, #2 bne _080AC266 ldrb r0, [r4, #0x15] adds r0, #3 b _080AC26A _080AC266: ldrb r0, [r4, #0x15] adds r0, #2 _080AC26A: movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] _080AC270: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080AC274 sub_080AC274: @ 0x080AC274 push {r4, r5, lr} adds r4, r0, #0 ldr r0, [r4, #0x50] ldr r0, [r0, #4] cmp r0, #0 bne _080AC284 bl sub_0805E780 _080AC284: ldr r1, _080AC2BC @ =gUnk_0812A994 ldrb r0, [r4, #0xb] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldrb r0, [r4, #0xa] cmp r0, #0 bne _080AC2C0 ldrb r0, [r4, #0x1b] movs r1, #0xc0 orrs r0, r1 strb r0, [r4, #0x1b] ldrb r0, [r4, #0x19] orrs r0, r1 strb r0, [r4, #0x19] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2] b _080AC324 .align 2, 0 _080AC2BC: .4byte gUnk_0812A994 _080AC2C0: ldr r5, [r4, #0x50] ldrb r2, [r5, #0x1b] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r3, [r4, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r3 orrs r0, r2 strb r0, [r4, #0x1b] ldrb r0, [r5, #0x19] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r4, #0x19] ands r1, r2 orrs r1, r0 strb r1, [r4, #0x19] adds r0, r5, #0 adds r0, #0x29 ldrb r1, [r0] lsls r1, r1, #0x1d lsrs r1, r1, #0x1d subs r1, #2 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] ldrb r0, [r5, #0x19] lsrs r0, r0, #6 cmp r0, #3 bne _080AC31C adds r0, r5, #0 adds r0, #0x7c ldrb r0, [r0] cmp r0, #0 bne _080AC31C ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 b _080AC322 _080AC31C: ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 _080AC322: strb r0, [r4, #0x10] _080AC324: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080AC328 sub_080AC328: @ 0x080AC328 push {lr} ldr r2, _080AC33C @ =gUnk_0812A9A8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080AC33C: .4byte gUnk_0812A9A8 thumb_func_start sub_080AC340 sub_080AC340: @ 0x080AC340 push {r4, r5, lr} adds r5, r0, #0 bl sub_080AC5E4 cmp r0, #0 beq _080AC380 movs r2, #1 movs r4, #1 strb r4, [r5, #0xc] movs r0, #0xc strb r0, [r5, #0x1e] ldrb r1, [r5, #0x18] subs r0, #0x10 ands r0, r1 orrs r0, r2 strb r0, [r5, #0x18] bl sub_08000E50 ldr r1, _080AC384 @ =gUnk_0812A9B4 ands r0, r4 lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] adds r1, r5, #0 adds r1, #0x7a strh r0, [r1] subs r1, #0x42 movs r0, #2 strb r0, [r1] adds r0, r5, #0 bl sub_080AC388 _080AC380: pop {r4, r5, pc} .align 2, 0 _080AC384: .4byte gUnk_0812A9B4 thumb_func_start sub_080AC388 sub_080AC388: @ 0x080AC388 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r5, r0, #0 ldr r1, _080AC3E4 @ =gUnk_0812A9B8 ldrb r0, [r5, #0xa] adds r0, r0, r1 ldrb r3, [r0] ldr r0, [r5, #0x50] mov sl, r0 ldrb r0, [r0, #0x14] movs r1, #0x80 mov sb, r1 mov r1, sb eors r1, r0 adds r6, r5, #0 adds r6, #0x7c ldrh r4, [r6] lsrs r0, r4, #8 subs r1, r1, r0 adds r2, r5, #0 adds r2, #0x7a ldrh r7, [r2] mov ip, r7 movs r7, #0 ldrsh r0, [r2, r7] cmp r0, #0 bge _080AC404 subs r0, r1, r3 movs r7, #0xff mov r8, r7 ands r0, r7 cmp r0, #0x7f bhi _080AC3E8 movs r1, #0 ldrsh r0, [r2, r1] rsbs r0, r0, #0 strh r0, [r2] mov r2, sl ldrb r0, [r2, #0x14] mov r7, sb eors r0, r7 subs r0, r0, r3 b _080AC422 .align 2, 0 _080AC3E4: .4byte gUnk_0812A9B8 _080AC3E8: mov r2, ip adds r0, r4, r2 strh r0, [r6] adds r0, r1, r3 mov r7, r8 ands r0, r7 cmp r0, #0x80 bls _080AC45A mov r1, sl ldrb r0, [r1, #0x14] mov r2, sb eors r0, r2 adds r0, r0, r3 b _080AC44E _080AC404: adds r0, r1, r3 movs r7, #0xff mov r8, r7 ands r0, r7 cmp r0, #0x80 bls _080AC432 movs r1, #0 ldrsh r0, [r2, r1] rsbs r0, r0, #0 strh r0, [r2] mov r2, sl ldrb r0, [r2, #0x14] mov r7, sb eors r0, r7 adds r0, r0, r3 _080AC422: movs r1, #0xff ands r0, r1 lsls r0, r0, #8 strh r0, [r6] adds r0, r5, #0 bl sub_080AC884 b _080AC45A _080AC432: mov r2, ip adds r0, r4, r2 strh r0, [r6] subs r0, r1, r3 mov r7, r8 ands r0, r7 subs r0, #1 cmp r0, #0x7e bhi _080AC45A mov r1, sl ldrb r0, [r1, #0x14] mov r2, sb eors r0, r2 subs r0, r0, r3 _080AC44E: movs r1, #0xff ands r0, r1 lsls r0, r0, #8 movs r1, #0x80 orrs r0, r1 strh r0, [r6] _080AC45A: adds r0, r5, #0 adds r0, #0x7c ldrh r0, [r0] lsrs r0, r0, #8 strb r0, [r5, #0x15] adds r0, r5, #0 bl sub_080AC6F0 adds r0, r5, #0 bl sub_080AC760 adds r0, r5, #0 bl sub_080AC7C4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} thumb_func_start sub_080AC480 sub_080AC480: @ 0x080AC480 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xe] cmp r1, #0 beq _080AC4BE ldr r0, [r4, #0x50] adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _080AC4A2 movs r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x1d strb r0, [r1] b _080AC50A _080AC4A2: subs r0, r1, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080AC50A adds r0, r4, #0 adds r0, #0x3f movs r1, #0x1c strb r1, [r0] movs r0, #0x8b lsls r0, r0, #1 bl sub_080A3268 b _080AC50A _080AC4BE: ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _080AC4D6 movs r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x1d strb r0, [r1] _080AC4D6: adds r1, r4, #0 adds r1, #0x7c ldrh r2, [r1] adds r0, r4, #0 adds r0, #0x7a movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0 ble _080AC4EE movs r3, #0xc0 lsls r3, r3, #2 b _080AC4F0 _080AC4EE: ldr r3, _080AC50C @ =0xFFFFFD00 _080AC4F0: adds r0, r2, r3 strh r0, [r1] lsrs r0, r0, #8 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_080AC6F0 adds r0, r4, #0 bl sub_080AC760 adds r0, r4, #0 bl sub_080AC7C4 _080AC50A: pop {r4, pc} .align 2, 0 _080AC50C: .4byte 0xFFFFFD00 thumb_func_start sub_080AC510 sub_080AC510: @ 0x080AC510 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080AC556 movs r3, #1 movs r0, #1 strb r0, [r4, #0xc] ldr r2, _080AC558 @ =gUnk_0812A9BA ldrb r1, [r4, #0xa] lsls r0, r1, #1 adds r0, r0, r1 ldrb r1, [r4, #0xb] adds r0, r0, r1 subs r0, #1 adds r0, r0, r2 ldrb r0, [r0] strb r0, [r4, #0x1e] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 orrs r0, r3 strb r0, [r4, #0x18] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] ldrh r1, [r4, #0xa] movs r0, #0xc0 lsls r0, r0, #2 cmp r1, r0 bne _080AC556 ldr r0, _080AC55C @ =gUnk_080FD458 str r0, [r4, #0x48] _080AC556: pop {r4, pc} .align 2, 0 _080AC558: .4byte gUnk_0812A9BA _080AC55C: .4byte gUnk_080FD458 thumb_func_start sub_080AC560 sub_080AC560: @ 0x080AC560 push {r4, r5, lr} adds r4, r0, #0 ldr r5, [r4, #0x54] ldr r0, [r5, #4] cmp r0, #0 bne _080AC570 bl sub_0805E780 _080AC570: ldrb r0, [r4, #0xc] cmp r0, #0 bne _080AC5A6 movs r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] ldrb r0, [r4, #0xa] cmp r0, #0 bne _080AC590 ldr r0, _080AC58C @ =gUnk_080FD168 b _080AC592 .align 2, 0 _080AC58C: .4byte gUnk_080FD168 _080AC590: ldr r0, _080AC5DC @ =gUnk_080FD448 _080AC592: str r0, [r4, #0x48] movs r0, #0xff strb r0, [r4, #0x1e] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] _080AC5A6: adds r0, r4, #0 adds r0, #0x79 ldrb r2, [r0] lsls r2, r2, #8 ldr r3, _080AC5E0 @ =gUnk_080C9160 ldrb r0, [r5, #0x15] lsls r0, r0, #1 adds r0, r0, r3 movs r1, #0 ldrsh r0, [r0, r1] adds r1, r0, #0 muls r1, r2, r1 ldr r0, [r5, #0x2c] adds r0, r0, r1 str r0, [r4, #0x2c] ldrb r0, [r5, #0x15] adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r3 movs r1, #0 ldrsh r0, [r0, r1] adds r1, r0, #0 muls r1, r2, r1 ldr r0, [r5, #0x30] subs r0, r0, r1 str r0, [r4, #0x30] pop {r4, r5, pc} .align 2, 0 _080AC5DC: .4byte gUnk_080FD448 _080AC5E0: .4byte gUnk_080C9160 thumb_func_start sub_080AC5E4 sub_080AC5E4: @ 0x080AC5E4 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 ldrb r4, [r5, #0xa] cmp r4, #0 bne _080AC668 ldr r0, _080AC664 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x43 bhi _080AC670 adds r1, r5, #0 adds r1, #0x79 movs r0, #0x11 strb r0, [r1] movs r0, #0x22 bl sub_080A7EE0 adds r6, r0, #0 ldrb r0, [r5, #0xa] strb r0, [r6, #0xa] movs r0, #1 strb r0, [r6, #0xb] ldr r0, [r5, #0x50] str r0, [r6, #0x50] adds r1, r6, #0 adds r1, #0x79 movs r0, #0x12 strb r0, [r1] str r6, [r5, #0x54] movs r0, #0x22 bl sub_080A7EE0 adds r7, r0, #0 ldrb r0, [r5, #0xa] strb r0, [r7, #0xa] movs r0, #2 strb r0, [r7, #0xb] ldr r0, [r5, #0x50] str r0, [r7, #0x50] adds r0, r7, #0 adds r0, #0x79 movs r1, #0x14 mov r8, r1 mov r1, r8 strb r1, [r0] str r7, [r6, #0x54] movs r0, #0x22 bl sub_080A7EE0 ldrb r1, [r5, #0xa] strb r1, [r0, #0xa] movs r1, #3 strb r1, [r0, #0xb] ldr r1, [r5, #0x50] str r1, [r0, #0x50] str r4, [r0, #0x54] adds r1, r0, #0 adds r1, #0x79 strb r4, [r1] str r0, [r7, #0x54] b _080AC6C8 .align 2, 0 _080AC664: .4byte gUnk_03003DBC _080AC668: ldr r0, _080AC674 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x44 bls _080AC678 _080AC670: movs r0, #0 b _080AC6E8 .align 2, 0 _080AC674: .4byte gUnk_03003DBC _080AC678: adds r1, r5, #0 adds r1, #0x79 movs r0, #0 mov sb, r0 movs r0, #0xf strb r0, [r1] movs r0, #0x22 bl sub_080A7EE0 adds r6, r0, #0 ldrb r0, [r5, #0xa] strb r0, [r6, #0xa] movs r0, #1 strb r0, [r6, #0xb] ldr r0, [r5, #0x50] str r0, [r6, #0x50] adds r0, r6, #0 adds r0, #0x79 movs r1, #0x10 mov r8, r1 mov r1, r8 strb r1, [r0] str r6, [r5, #0x54] movs r0, #0x22 bl sub_080A7EE0 adds r7, r0, #0 ldrb r0, [r5, #0xa] strb r0, [r7, #0xa] movs r0, #2 strb r0, [r7, #0xb] ldr r0, [r5, #0x50] str r0, [r7, #0x50] mov r0, sb str r0, [r7, #0x54] adds r1, r7, #0 adds r1, #0x79 movs r0, #0x20 strb r0, [r1] str r7, [r6, #0x54] _080AC6C8: movs r0, #0x22 bl sub_080A7EE0 adds r6, r0, #0 ldrb r0, [r5, #0xa] strb r0, [r6, #0xa] movs r0, #4 strb r0, [r6, #0xb] ldr r0, [r5, #0x50] str r0, [r6, #0x50] str r5, [r6, #0x54] adds r0, r6, #0 adds r0, #0x79 mov r1, r8 strb r1, [r0] movs r0, #1 _080AC6E8: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} thumb_func_start sub_080AC6F0 sub_080AC6F0: @ 0x080AC6F0 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0x15] movs r2, #0x1f ands r2, r0 lsrs r0, r0, #5 lsls r1, r0, #1 adds r3, r1, r0 ldr r1, _080AC724 @ =gUnk_0812A9C0 ldrb r0, [r4, #0x14] adds r0, r0, r1 ldrb r0, [r0] subs r0, r0, r3 adds r5, r1, #0 cmp r0, #3 bhi _080AC73A cmp r0, #1 beq _080AC72E cmp r0, #1 blo _080AC728 cmp r0, #2 beq _080AC732 cmp r2, #0x19 bhi _080AC75C b _080AC73A .align 2, 0 _080AC724: .4byte gUnk_0812A9C0 _080AC728: cmp r2, #6 bls _080AC75C b _080AC73A _080AC72E: subs r0, r2, #5 b _080AC736 _080AC732: adds r0, r2, #0 subs r0, #0xf _080AC736: cmp r0, #0xc bls _080AC75C _080AC73A: adds r0, r3, #3 cmp r2, #0x1a bhi _080AC74E adds r0, r3, #2 cmp r2, #0x10 bhi _080AC74E adds r0, r3, #0 cmp r2, #5 bls _080AC74E adds r0, #1 _080AC74E: movs r1, #0x18 bl __modsi3 strb r0, [r4, #0x14] adds r0, r0, r5 ldrb r0, [r0] strb r0, [r4, #0x1e] _080AC75C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080AC760 sub_080AC760: @ 0x080AC760 push {r4, r5, r6, lr} adds r6, r0, #0 ldr r4, [r6, #0x54] ldrb r0, [r4, #0x15] ldrb r3, [r6, #0x15] subs r2, r0, r3 movs r1, #0xff ands r2, r1 adds r0, r2, #0 adds r0, #8 ands r0, r1 cmp r0, #0x10 ble _080AC78A cmp r2, #0x80 ble _080AC784 adds r0, r3, #0 subs r0, #8 b _080AC788 _080AC784: adds r0, r3, #0 adds r0, #8 _080AC788: strb r0, [r4, #0x15] _080AC78A: ldr r5, [r4, #0x54] ldr r0, [r5, #0x54] cmp r0, #0 bne _080AC79C ldr r0, [r6, #0x50] ldrb r0, [r0, #0x14] movs r1, #0x80 eors r0, r1 b _080AC7BE _080AC79C: ldrb r0, [r5, #0x15] ldrb r3, [r4, #0x15] subs r2, r0, r3 movs r1, #0xff ands r2, r1 adds r0, r2, #0 adds r0, #8 ands r0, r1 cmp r0, #0x10 ble _080AC7C0 cmp r2, #0x80 ble _080AC7BA adds r0, r3, #0 subs r0, #8 b _080AC7BE _080AC7BA: adds r0, r3, #0 adds r0, #8 _080AC7BE: strb r0, [r5, #0x15] _080AC7C0: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080AC7C4 sub_080AC7C4: @ 0x080AC7C4 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r4, r0, #0 ldr r0, [r4, #0x54] mov r8, r0 ldr r7, [r0, #0x54] ldr r5, [r7, #0x54] cmp r5, #0 beq _080AC7E4 ldr r0, [r4, #0x50] adds r1, r5, #0 bl sub_0806FA24 b _080AC7E6 _080AC7E4: ldr r5, [r4, #0x50] _080AC7E6: adds r0, r7, #0 adds r0, #0x79 ldrb r2, [r0] lsls r2, r2, #8 ldr r3, _080AC880 @ =gUnk_080C9160 mov sb, r3 ldrb r1, [r7, #0x15] lsls r0, r1, #1 add r0, sb movs r3, #0 ldrsh r0, [r0, r3] adds r6, r0, #0 muls r6, r2, r6 adds r1, #0x40 lsls r1, r1, #1 add r1, sb movs r3, #0 ldrsh r0, [r1, r3] muls r0, r2, r0 rsbs r3, r0, #0 adds r0, r5, #0 adds r1, r7, #0 adds r2, r6, #0 bl sub_0806FA48 mov r0, r8 adds r0, #0x79 ldrb r2, [r0] lsls r2, r2, #8 mov r0, r8 ldrb r1, [r0, #0x15] lsls r0, r1, #1 add r0, sb movs r3, #0 ldrsh r0, [r0, r3] adds r6, r0, #0 muls r6, r2, r6 adds r1, #0x40 lsls r1, r1, #1 add r1, sb movs r3, #0 ldrsh r0, [r1, r3] muls r0, r2, r0 rsbs r3, r0, #0 adds r0, r7, #0 mov r1, r8 adds r2, r6, #0 bl sub_0806FA48 adds r0, r4, #0 adds r0, #0x79 ldrb r2, [r0] lsls r2, r2, #8 ldrb r1, [r4, #0x15] lsls r0, r1, #1 add r0, sb movs r3, #0 ldrsh r0, [r0, r3] adds r6, r0, #0 muls r6, r2, r6 adds r1, #0x40 lsls r1, r1, #1 add r1, sb movs r3, #0 ldrsh r0, [r1, r3] muls r0, r2, r0 rsbs r3, r0, #0 mov r0, r8 adds r1, r4, #0 adds r2, r6, #0 bl sub_0806FA48 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _080AC880: .4byte gUnk_080C9160 thumb_func_start sub_080AC884 sub_080AC884: @ 0x080AC884 push {lr} adds r1, r0, #0 ldr r0, [r1, #0x50] adds r2, r0, #0 adds r2, #0x72 ldrh r0, [r2] cmp r0, #0 beq _080AC8A4 movs r0, #0 strh r0, [r2] movs r0, #2 strb r0, [r1, #0xc] movs r0, #0x3c strb r0, [r1, #0xe] movs r0, #0x56 strb r0, [r1, #0xf] _080AC8A4: pop {pc} .align 2, 0 thumb_func_start sub_080AC8A8 sub_080AC8A8: @ 0x080AC8A8 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080AC8C0 @ =gUnk_0812A9D8 bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080AC8C0: .4byte gUnk_0812A9D8 thumb_func_start sub_080AC8C4 sub_080AC8C4: @ 0x080AC8C4 push {lr} ldr r2, _080AC8D8 @ =gUnk_0812A9EC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080AC8D8: .4byte gUnk_0812A9EC thumb_func_start sub_080AC8DC sub_080AC8DC: @ 0x080AC8DC push {r4, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r0, [r0] movs r1, #0x7f ands r1, r0 cmp r1, #0 blt _080AC8FE cmp r1, #3 ble _080AC8F8 cmp r1, #0x1f bgt _080AC8FE cmp r1, #0x1e blt _080AC8FE _080AC8F8: bl sub_0805E780 b _080AC920 _080AC8FE: ldrb r0, [r4, #0xc] cmp r0, #3 beq _080AC920 movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrh r0, [r4, #0x24] lsls r0, r0, #0x10 asrs r0, r0, #0x11 strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _080AC920: adds r0, r4, #0 bl sub_080AC8C4 pop {r4, pc} thumb_func_start sub_080AC928 sub_080AC928: @ 0x080AC928 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x38 movs r0, #2 strb r0, [r1] adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_080AC954 pop {r4, pc} .align 2, 0 thumb_func_start sub_080AC954 sub_080AC954: @ 0x080AC954 push {r4, r5, lr} adds r5, r0, #0 ldr r0, [r5, #0x50] ldr r0, [r0, #4] cmp r0, #0 bne _080AC964 bl sub_0805E780 _080AC964: ldr r0, [r5, #0x50] ldrb r3, [r0, #0x14] ldr r4, _080AC9C4 @ =gUnk_080C9160 lsls r1, r3, #1 adds r1, r1, r4 movs r2, #0 ldrsh r1, [r1, r2] lsls r2, r1, #2 adds r2, r2, r1 lsls r2, r2, #0xb adds r3, #0x40 lsls r3, r3, #1 adds r3, r3, r4 movs r4, #0 ldrsh r1, [r3, r4] lsls r3, r1, #2 adds r3, r3, r1 lsls r3, r3, #0xb rsbs r3, r3, #0 adds r1, r5, #0 bl sub_0806FA48 adds r0, r5, #0 bl sub_08004274 ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080AC9C0 movs r0, #2 strb r0, [r5, #0xc] ldrb r0, [r5, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r5, #0x10] ldr r1, _080AC9C8 @ =gUnk_03001160 adds r0, r5, #0 bl sub_080045C4 strb r0, [r5, #0x15] movs r0, #0x97 lsls r0, r0, #1 bl sub_080A3268 _080AC9C0: pop {r4, r5, pc} .align 2, 0 _080AC9C4: .4byte gUnk_080C9160 _080AC9C8: .4byte gUnk_03001160 thumb_func_start sub_080AC9CC sub_080AC9CC: @ 0x080AC9CC push {r4, lr} adds r4, r0, #0 bl sub_080AF090 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080A7EB0 cmp r0, #0 beq _080AC9E8 bl sub_0805E780 _080AC9E8: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080ACA10 movs r0, #3 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrh r0, [r4, #0x24] lsls r0, r0, #0x10 asrs r0, r0, #0x11 strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #1 bl sub_08004260 _080ACA10: pop {r4, pc} .align 2, 0 thumb_func_start sub_080ACA14 sub_080ACA14: @ 0x080ACA14 push {r4, lr} adds r4, r0, #0 bl sub_080AF090 adds r0, r4, #0 bl sub_08004274 adds r4, #0x5a ldrb r1, [r4] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080ACA32 bl sub_0805E780 _080ACA32: pop {r4, pc} thumb_func_start sub_080ACA34 sub_080ACA34: @ 0x080ACA34 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080ACA4C @ =gUnk_0812AA5C bl sub_0800279C lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _080ACA4C: .4byte gUnk_0812AA5C thumb_func_start sub_080ACA50 sub_080ACA50: @ 0x080ACA50 push {lr} ldr r2, _080ACA64 @ =gUnk_0812AA74 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080ACA64: .4byte gUnk_0812AA74 thumb_func_start sub_080ACA68 sub_080ACA68: @ 0x080ACA68 push {r4, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r0, [r0] movs r1, #0x7f ands r1, r0 cmp r1, #0xc bgt _080ACA82 cmp r1, #0xa bge _080ACA86 cmp r1, #6 beq _080ACA86 b _080ACAC0 _080ACA82: cmp r1, #0x1a bne _080ACAC0 _080ACA86: movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r1, #0x80 lsls r1, r1, #1 adds r0, r1, #0 ldrh r1, [r4, #0x24] adds r0, r0, r1 strh r0, [r4, #0x24] ldr r0, [r4, #0x4c] str r0, [r4, #0x54] adds r0, r4, #0 bl sub_080ACB40 cmp r0, #0 beq _080ACAB0 movs r0, #0 b _080ACAB6 _080ACAB0: adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] _080ACAB6: strb r0, [r4, #0x15] movs r0, #0xd8 bl sub_080A3268 b _080ACAC4 _080ACAC0: bl sub_0805E780 _080ACAC4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080ACAC8 sub_080ACAC8: @ 0x080ACAC8 push {lr} movs r2, #0 movs r1, #1 strb r1, [r0, #0xc] movs r1, #0x10 strb r1, [r0, #0x15] ldr r1, _080ACAE8 @ =0x0000FFFC strh r1, [r0, #0x36] str r2, [r0, #0x54] movs r1, #7 bl sub_08004260 ldr r0, _080ACAEC @ =0x00000199 bl sub_080A3268 pop {pc} .align 2, 0 _080ACAE8: .4byte 0x0000FFFC _080ACAEC: .4byte 0x00000199 thumb_func_start sub_080ACAF0 sub_080ACAF0: @ 0x080ACAF0 push {r4, lr} adds r4, r0, #0 bl sub_080AF090 adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080A7EB0 cmp r0, #0 beq _080ACB0C bl sub_0805E780 _080ACB0C: pop {r4, pc} .align 2, 0 thumb_func_start sub_080ACB10 sub_080ACB10: @ 0x080ACB10 push {r4, lr} adds r4, r0, #0 bl sub_080AF090 ldrh r0, [r4, #0x2a] cmp r0, #0 beq _080ACB22 bl sub_0805E780 _080ACB22: adds r0, r4, #0 bl sub_08004274 adds r0, r4, #0 bl sub_080ACB90 adds r0, r4, #0 bl sub_080A7EB0 cmp r0, #0 beq _080ACB3C bl sub_0805E780 _080ACB3C: pop {r4, pc} .align 2, 0 thumb_func_start sub_080ACB40 sub_080ACB40: @ 0x080ACB40 push {lr} adds r2, r0, #0 ldr r0, [r2, #0x50] ldr r1, [r0, #0x50] ldr r3, [r2, #0x54] ldr r0, [r1, #0x64] ldr r0, [r0, #0x1c] ldr r0, [r0, #0x54] cmp r0, r2 beq _080ACB5A ldr r0, [r0, #0x54] cmp r3, r0 beq _080ACB86 _080ACB5A: ldr r1, [r1, #0x64] ldr r0, [r1, #0x20] ldr r0, [r0, #0x54] cmp r0, r2 beq _080ACB6A ldr r0, [r0, #0x54] cmp r3, r0 beq _080ACB86 _080ACB6A: ldr r0, [r1, #0x24] ldr r0, [r0, #0x54] cmp r0, r2 beq _080ACB78 ldr r0, [r0, #0x54] cmp r3, r0 beq _080ACB86 _080ACB78: ldr r0, [r1, #0x28] ldr r0, [r0, #0x54] cmp r0, r2 beq _080ACB8A ldr r0, [r0, #0x54] cmp r3, r0 bne _080ACB8A _080ACB86: movs r0, #0 b _080ACB8C _080ACB8A: movs r0, #1 _080ACB8C: pop {pc} .align 2, 0 thumb_func_start sub_080ACB90 sub_080ACB90: @ 0x080ACB90 push {r4, lr} adds r2, r0, #0 ldr r3, [r2, #0x50] movs r0, #0x2e ldrsh r1, [r2, r0] movs r4, #0x2e ldrsh r0, [r3, r4] cmp r1, r0 bne _080ACBC6 movs r0, #0x32 ldrsh r1, [r2, r0] movs r4, #0x32 ldrsh r0, [r3, r4] cmp r1, r0 bgt _080ACBC6 movs r0, #1 strb r0, [r3, #0xf] adds r0, r2, #0 movs r1, #0x1f movs r2, #0x40 bl sub_080A29AC ldr r0, _080ACBC8 @ =0x00000119 bl sub_08004488 bl sub_0805E780 _080ACBC6: pop {r4, pc} .align 2, 0 _080ACBC8: .4byte 0x00000119 thumb_func_start sub_080ACBCC sub_080ACBCC: @ 0x080ACBCC push {r4, lr} adds r4, r0, #0 ldr r0, _080ACBFC @ =gUnk_03003F80 ldrb r1, [r0, #0x1c] movs r0, #0x7f ands r0, r1 cmp r0, #1 beq _080ACBE0 bl sub_0805E780 _080ACBE0: ldr r1, _080ACC00 @ =gUnk_0812AA80 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r1, r4, #0 adds r1, #0x3d movs r0, #0 strb r0, [r1] pop {r4, pc} .align 2, 0 _080ACBFC: .4byte gUnk_03003F80 _080ACC00: .4byte gUnk_0812AA80 thumb_func_start sub_080ACC04 sub_080ACC04: @ 0x080ACC04 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] ldr r0, _080ACC54 @ =gUnk_03001160 adds r0, #0x3b ldrb r0, [r0] adds r1, r4, #0 adds r1, #0x3b strb r0, [r1] ldrb r0, [r4, #0x14] lsls r0, r0, #2 strb r0, [r4, #0x15] movs r0, #0x80 lsls r0, r0, #2 strh r0, [r4, #0x24] ldrb r1, [r4, #0x10] movs r0, #0xa0 orrs r0, r1 strb r0, [r4, #0x10] adds r1, r4, #0 adds r1, #0x3c movs r0, #2 strb r0, [r1] ldr r1, _080ACC58 @ =gUnk_0812AAD8 ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [r4, #0x48] movs r0, #0x10 str r0, [r4, #0x70] adds r0, r4, #0 bl sub_080ACDB0 adds r0, r4, #0 bl sub_0801766C pop {r4, pc} .align 2, 0 _080ACC54: .4byte gUnk_03001160 _080ACC58: .4byte gUnk_0812AAD8 thumb_func_start sub_080ACC5C sub_080ACC5C: @ 0x080ACC5C push {r4, lr} adds r4, r0, #0 bl sub_080ACDB0 cmp r0, #0 bne _080ACC74 adds r0, r4, #0 bl sub_080ACC78 adds r0, r4, #0 bl sub_080ACECC _080ACC74: pop {r4, pc} .align 2, 0 thumb_func_start sub_080ACC78 sub_080ACC78: @ 0x080ACC78 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r2, [r4, #0xa] ldr r0, _080ACD20 @ =gUnk_030010A0 ldr r0, [r0] adds r0, r2, r0 movs r1, #1 ands r0, r1 cmp r0, #0 beq _080ACCF8 ldr r0, _080ACD24 @ =gUnk_0812AAAC lsls r1, r2, #2 adds r1, r1, r0 ldr r7, [r1] ldr r0, [r4, #0x74] adds r0, r7, r0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080ACCA4 str r0, [r4, #0x74] _080ACCA4: ldr r0, [r4, #0x74] adds r0, r7, r0 movs r2, #0 ldrsb r2, [r0, r2] movs r3, #1 ldrsb r3, [r0, r3] adds r0, r4, #0 movs r1, #0xe bl sub_08008782 adds r5, r0, #0 cmp r5, #0 beq _080ACCF2 ldrb r1, [r5, #5] ldrb r2, [r5, #2] movs r0, #0x11 bl sub_080A2960 adds r6, r0, #0 cmp r6, #0 beq _080ACCF2 ldrb r0, [r5, #3] strb r0, [r6, #0xe] ldr r0, [r4, #0x74] adds r0, r7, r0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r4, #0x2e] adds r0, r0, r1 strh r0, [r6, #0x2e] ldr r0, [r4, #0x74] adds r0, r0, r7 ldrb r0, [r0, #1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r4, #0x32] adds r0, r0, r1 strh r0, [r6, #0x32] _080ACCF2: ldr r0, [r4, #0x74] adds r0, #2 str r0, [r4, #0x74] _080ACCF8: ldr r2, [r4, #0x54] cmp r2, #0 bne _080ACD08 ldr r0, [r4, #0x70] cmp r0, #2 bls _080ACD08 movs r0, #1 str r0, [r4, #0x70] _080ACD08: ldr r0, [r4, #0x70] subs r0, #1 str r0, [r4, #0x70] movs r1, #1 rsbs r1, r1, #0 cmp r0, r1 bne _080ACDAE cmp r2, #0 bne _080ACD28 movs r0, #2 b _080ACD32 .align 2, 0 _080ACD20: .4byte gUnk_030010A0 _080ACD24: .4byte gUnk_0812AAAC _080ACD28: ldr r0, _080ACD74 @ =gUnk_0812AABC ldrb r1, [r4, #0xa] adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] _080ACD32: str r0, [r4, #0x70] movs r0, #0x17 movs r1, #0 movs r2, #0 bl sub_080A2960 adds r6, r0, #0 cmp r6, #0 beq _080ACDAE bl sub_08000E50 adds r2, r0, #0 movs r0, #0xf ands r2, r0 ldr r3, [r4, #0x48] ldrb r1, [r3, #6] cmp r1, r2 bge _080ACD58 adds r2, r1, #0 _080ACD58: movs r0, #1 ands r0, r2 cmp r0, #0 beq _080ACD62 rsbs r2, r2, #0 _080ACD62: ldrb r0, [r4, #0x14] lsrs r0, r0, #1 cmp r0, #1 beq _080ACD9C cmp r0, #1 bgt _080ACD78 cmp r0, #0 beq _080ACD82 b _080ACDAE .align 2, 0 _080ACD74: .4byte gUnk_0812AABC _080ACD78: cmp r0, #2 beq _080ACD8C cmp r0, #3 beq _080ACDA2 b _080ACDAE _080ACD82: ldrb r0, [r3, #7] ldrh r1, [r4, #0x32] subs r1, r1, r0 strh r1, [r6, #0x32] b _080ACD94 _080ACD8C: ldrh r0, [r4, #0x32] ldrb r3, [r3, #7] adds r0, r0, r3 strh r0, [r6, #0x32] _080ACD94: ldrh r0, [r4, #0x2e] adds r0, r0, r2 strh r0, [r6, #0x2e] b _080ACDAE _080ACD9C: ldrh r0, [r4, #0x2e] adds r0, r0, r1 b _080ACDA6 _080ACDA2: ldrh r0, [r4, #0x2e] subs r0, r0, r1 _080ACDA6: strh r0, [r6, #0x2e] ldrh r0, [r4, #0x32] adds r0, r0, r2 strh r0, [r6, #0x32] _080ACDAE: pop {r4, r5, r6, r7, pc} thumb_func_start sub_080ACDB0 sub_080ACDB0: @ 0x080ACDB0 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0 bne _080ACDE8 ldr r2, _080ACDE0 @ =gUnk_03001160 ldr r1, _080ACDE4 @ =gUnk_08126EE4 ldrb r0, [r4, #0x14] adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r3, [r2, #0x2e] adds r0, r0, r3 strh r0, [r4, #0x2e] ldrb r0, [r4, #0x14] adds r0, #1 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r2, [r2, #0x32] adds r0, r0, r2 b _080ACEB4 .align 2, 0 _080ACDE0: .4byte gUnk_03001160 _080ACDE4: .4byte gUnk_08126EE4 _080ACDE8: ldrb r2, [r4, #0x14] movs r0, #2 ands r0, r2 cmp r0, #0 beq _080ACE48 ldr r0, [r4, #0x50] ldrh r1, [r0, #0x32] subs r1, #3 strh r1, [r4, #0x32] movs r1, #4 ands r1, r2 adds r3, r0, #0 cmp r1, #0 beq _080ACE20 movs r0, #0x2e ldrsh r7, [r3, r0] movs r0, #0x2e ldrsh r6, [r4, r0] ldr r1, _080ACE1C @ =gUnk_0812AAE8 ldrb r2, [r4, #0xa] adds r0, r2, r1 ldrb r0, [r0] rsbs r5, r0, #0 adds r0, r1, #0 b _080ACE30 .align 2, 0 _080ACE1C: .4byte gUnk_0812AAE8 _080ACE20: movs r0, #0x2e ldrsh r6, [r3, r0] movs r0, #0x2e ldrsh r7, [r4, r0] ldr r0, _080ACE44 @ =gUnk_0812AAE8 ldrb r2, [r4, #0xa] adds r1, r2, r0 ldrb r5, [r1] _080ACE30: subs r1, r7, r6 str r1, [r4, #0x78] adds r0, r2, r0 ldrb r0, [r0] cmp r0, r1 bhi _080ACE90 ldrh r0, [r3, #0x2e] adds r0, r0, r5 strh r0, [r4, #0x2e] b _080ACEB6 .align 2, 0 _080ACE44: .4byte gUnk_0812AAE8 _080ACE48: ldr r1, [r4, #0x50] ldrh r0, [r1, #0x2e] strh r0, [r4, #0x2e] movs r0, #4 ands r0, r2 adds r3, r1, #0 cmp r0, #0 beq _080ACE70 movs r0, #0x32 ldrsh r6, [r3, r0] movs r0, #0x32 ldrsh r7, [r4, r0] ldr r0, _080ACE6C @ =gUnk_0812AAE8 ldrb r2, [r4, #0xa] adds r1, r2, r0 ldrb r5, [r1] b _080ACE84 .align 2, 0 _080ACE6C: .4byte gUnk_0812AAE8 _080ACE70: movs r0, #0x32 ldrsh r7, [r3, r0] movs r0, #0x32 ldrsh r6, [r4, r0] ldr r1, _080ACEAC @ =gUnk_0812AAE8 ldrb r2, [r4, #0xa] adds r0, r2, r1 ldrb r0, [r0] rsbs r5, r0, #0 adds r0, r1, #0 _080ACE84: subs r1, r7, r6 str r1, [r4, #0x78] adds r0, r2, r0 ldrb r0, [r0] cmp r0, r1 bls _080ACEB0 _080ACE90: subs r0, r0, r1 lsls r1, r0, #8 strh r1, [r4, #0x24] lsls r0, r0, #0x18 asrs r0, r0, #0x10 movs r1, #0x80 lsls r1, r1, #2 cmp r0, r1 ble _080ACEA4 strh r1, [r4, #0x24] _080ACEA4: adds r0, r4, #0 bl sub_080AEFB4 b _080ACEB6 .align 2, 0 _080ACEAC: .4byte gUnk_0812AAE8 _080ACEB0: ldrh r0, [r3, #0x32] adds r0, r0, r5 _080ACEB4: strh r0, [r4, #0x32] _080ACEB6: ldr r0, _080ACEC8 @ =gUnk_03001160 adds r0, #0x38 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] movs r0, #0 pop {r4, r5, r6, r7, pc} .align 2, 0 _080ACEC8: .4byte gUnk_03001160 thumb_func_start sub_080ACECC sub_080ACECC: @ 0x080ACECC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #2 bhi _080ACF0C ldr r0, [r4, #0x54] cmp r0, #0 bne _080ACF0C ldr r2, [r4, #0x78] cmp r2, #0 blt _080ACF0C ldr r0, _080ACF10 @ =gUnk_0812AAE8 ldrb r1, [r4, #0xa] adds r0, r1, r0 ldrb r0, [r0] cmp r0, r2 bhi _080ACF0C adds r1, #1 movs r0, #0x10 movs r2, #0 movs r3, #0 bl sub_08077CB8 adds r1, r0, #0 cmp r1, #0 beq _080ACF0C str r4, [r1, #0x50] str r1, [r4, #0x54] ldrh r0, [r4, #0x2e] strh r0, [r1, #0x2e] ldrh r0, [r4, #0x32] strh r0, [r1, #0x32] _080ACF0C: pop {r4, pc} .align 2, 0 _080ACF10: .4byte gUnk_0812AAE8 thumb_func_start sub_080ACF14 sub_080ACF14: @ 0x080ACF14 push {lr} ldr r2, _080ACF28 @ =gUnk_081320A8 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080ACF28: .4byte gUnk_081320A8 thumb_func_start sub_080ACF2C sub_080ACF2C: @ 0x080ACF2C push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] ldr r0, _080ACF60 @ =gUnk_081320E4 str r0, [r4, #0x48] ldr r5, [r4, #0x54] adds r6, r5, #0 cmp r5, #0 beq _080ACF64 ldr r0, [r5, #0x2c] str r0, [r4, #0x2c] ldr r0, [r5, #0x30] str r0, [r4, #0x30] ldr r0, [r5, #0x34] str r0, [r4, #0x34] adds r0, r5, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] ldrb r0, [r5, #0x16] strb r0, [r4, #0x16] b _080ACFB6 .align 2, 0 _080ACF60: .4byte gUnk_081320E4 _080ACF64: adds r5, r4, #0 str r4, [r4, #0x54] movs r0, #2 strb r0, [r4, #0xc] ldr r3, _080ACFC8 @ =gUnk_081320B8 ldrb r0, [r4, #0xf] lsls r0, r0, #2 adds r0, r0, r3 ldrb r1, [r0, #1] movs r0, #0xf ands r1, r0 ldrb r2, [r4, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x1a] 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 r6, [r4, #0x16] ldrb r0, [r4, #0xf] lsls r0, r0, #2 adds r0, r0, r3 ldrb r1, [r0, #2] adds r0, r4, #0 adds r0, #0x60 strh r1, [r0] ldrb r0, [r4, #0xf] lsls r0, r0, #2 adds r0, r0, r3 ldrb r1, [r0] adds r0, r4, #0 bl sub_08004260 bl sub_08078D60 _080ACFB6: ldrb r1, [r5, #8] adds r0, r4, #0 adds r0, #0x6c strh r1, [r0] ldrb r1, [r5, #9] adds r0, #2 strh r1, [r0] pop {r4, r5, r6, pc} .align 2, 0 _080ACFC8: .4byte gUnk_081320B8 thumb_func_start sub_080ACFCC sub_080ACFCC: @ 0x080ACFCC push {r4, lr} adds r4, r0, #0 ldr r1, [r4, #0x54] adds r0, #0x6c ldrh r0, [r0] ldrb r2, [r1, #8] cmp r0, r2 beq _080ACFE8 adds r0, r4, #0 adds r0, #0x6e ldrh r0, [r0] ldrb r2, [r1, #9] cmp r0, r2 bne _080AD034 _080ACFE8: ldrb r0, [r1, #0xc] cmp r0, #2 beq _080ACFF8 bl sub_08079184 bl sub_0805E780 b _080AD03C _080ACFF8: ldr r0, _080AD02C @ =gUnk_03003F80 ldrb r0, [r0, #5] cmp r0, #0 beq _080AD00E ldr r0, _080AD030 @ =gUnk_03001160 adds r0, #0x79 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 beq _080AD03C _080AD00E: adds r0, r4, #0 bl sub_080AD27C ldrb r0, [r4, #0xd] adds r0, #1 movs r2, #0 strb r0, [r4, #0xd] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r0, #0xff strb r0, [r4, #0x15] str r2, [r4, #0x20] b _080AD03C .align 2, 0 _080AD02C: .4byte gUnk_03003F80 _080AD030: .4byte gUnk_03001160 _080AD034: bl sub_08079184 bl sub_0805E780 _080AD03C: pop {r4, pc} .align 2, 0 thumb_func_start sub_080AD040 sub_080AD040: @ 0x080AD040 push {r4, r5, lr} adds r4, r0, #0 ldr r5, [r4, #0x54] ldrb r0, [r5, #0xc] cmp r0, #2 beq _080AD050 bl sub_0805E780 _080AD050: adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r3, #0x80 adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _080AD064 movs r0, #0 str r0, [r4, #0x34] _080AD064: movs r1, #0x24 ldrsh r0, [r4, r1] cmp r0, #0 bne _080AD06E b _080AD220 _080AD06E: adds r2, r4, #0 adds r2, #0x42 ldrb r1, [r2] adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _080AD088 adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] movs r1, #0 strb r0, [r4, #0x15] strb r1, [r2] _080AD088: ldr r2, _080AD0B0 @ =gUnk_081320C4 ldrb r0, [r4, #0x15] lsrs r0, r0, #2 adds r1, r0, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r0, #1 adds r0, r0, r2 movs r2, #0 ldrsb r2, [r0, r2] adds r0, r4, #0 bl sub_080002B4 cmp r0, #0x74 bne _080AD0B4 adds r0, r4, #0 bl sub_0806F69C b _080AD0C8 .align 2, 0 _080AD0B0: .4byte gUnk_081320C4 _080AD0B4: adds r0, r4, #0 bl sub_080002D0 cmp r0, #0x24 beq _080AD0C8 cmp r0, #0x26 beq _080AD0C8 adds r0, r4, #0 bl sub_080AF00C _080AD0C8: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 beq _080AD0D8 b _080AD202 _080AD0D8: ldr r0, [r4, #0x20] str r0, [r5, #0x20] ldr r0, [r4, #0x2c] str r0, [r5, #0x2c] ldr r0, [r4, #0x30] str r0, [r5, #0x30] ldr r0, [r4, #0x34] str r0, [r5, #0x34] adds r0, r4, #0 bl sub_080002B8 cmp r0, #0x11 bhi _080AD0FC cmp r0, #0x10 bhs _080AD104 cmp r0, #0xd beq _080AD104 b _080AD14E _080AD0FC: cmp r0, #0x13 beq _080AD104 cmp r0, #0x5a bne _080AD14E _080AD104: cmp r5, r4 bne _080AD146 cmp r0, #0x11 bhi _080AD116 cmp r0, #0x10 bhs _080AD12C cmp r0, #0xd beq _080AD120 b _080AD142 _080AD116: cmp r0, #0x13 beq _080AD138 cmp r0, #0x5a beq _080AD126 b _080AD142 _080AD120: adds r0, r4, #0 movs r1, #0 b _080AD130 _080AD126: adds r0, r4, #0 movs r1, #0xc b _080AD130 _080AD12C: adds r0, r4, #0 movs r1, #0xb _080AD130: movs r2, #0 bl sub_080A29AC b _080AD142 _080AD138: adds r0, r4, #0 movs r1, #0x52 movs r2, #0 bl sub_080A29AC _080AD142: movs r0, #4 b _080AD148 _080AD146: movs r0, #3 _080AD148: strb r0, [r5, #0xd] bl sub_0805E780 _080AD14E: ldr r0, [r4, #0x54] cmp r0, r4 bne _080AD178 ldrb r0, [r4, #0xb] cmp r0, #0xff beq _080AD1DA cmp r0, #0xf bne _080AD16A ldrb r1, [r4, #0xe] adds r0, r4, #0 movs r2, #0x80 bl sub_080A29AC b _080AD1DA _080AD16A: ldrb r1, [r4, #0xb] ldrb r2, [r4, #0xe] adds r0, r4, #0 movs r3, #0 bl sub_080A2988 b _080AD1DA _080AD178: ldrb r0, [r4, #0xe] cmp r0, #0 bne _080AD188 adds r0, r5, #0 bl sub_080AD32C cmp r0, #0 beq _080AD1E0 _080AD188: ldrb r0, [r4, #0xe] cmp r0, #1 bne _080AD196 movs r0, #0x82 lsls r0, r0, #1 bl sub_080A3268 _080AD196: adds r0, r4, #0 bl sub_08016A04 movs r0, #3 strb r0, [r5, #0xd] ldrb r2, [r4, #0x19] lsrs r2, r2, #6 lsls r2, r2, #6 ldrb r3, [r5, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r3 orrs r0, r2 strb r0, [r5, #0x19] ldrb r0, [r4, #0x1b] lsrs r0, r0, #6 lsls r0, r0, #6 ldrb r2, [r5, #0x1b] ands r1, r2 orrs r1, r0 strb r1, [r5, #0x1b] adds r0, r4, #0 adds r0, #0x29 ldrb r1, [r0] lsls r1, r1, #0x1d adds r3, r5, #0 adds r3, #0x29 lsrs r1, r1, #0x1d ldrb r2, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080AD1DA: bl sub_0805E780 b _080AD26E _080AD1E0: movs r0, #0x82 lsls r0, r0, #1 bl sub_080A3268 ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] movs r0, #0x80 lsls r0, r0, #9 str r0, [r4, #0x20] movs r1, #0x24 ldrsh r0, [r4, r1] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 strh r0, [r4, #0x24] b _080AD26E _080AD202: adds r0, r4, #0 bl sub_0800451C adds r0, r4, #0 bl sub_0806F8DC adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA24 ldr r0, [r4, #0x20] str r0, [r5, #0x20] ldrb r0, [r4, #0x15] strb r0, [r5, #0x15] b _080AD26E _080AD220: ldr r1, _080AD240 @ =gUnk_03001160 adds r0, r1, #0 adds r0, #0x5a ldrb r0, [r0] movs r5, #1 ands r5, r0 cmp r5, #0 beq _080AD244 movs r0, #0x79 bl sub_080A3268 adds r0, r4, #0 bl sub_080AD27C b _080AD26E .align 2, 0 _080AD240: .4byte gUnk_03001160 _080AD244: ldr r0, _080AD270 @ =gUnk_03003F80 ldrb r0, [r0, #5] cmp r0, #0 beq _080AD25A adds r0, r1, #0 adds r0, #0x79 ldrb r1, [r0] adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _080AD26E _080AD25A: adds r0, r4, #0 bl sub_080AD27C ldrb r0, [r4, #0x10] movs r1, #0x7f ands r1, r0 strb r1, [r4, #0x10] movs r0, #0xff strb r0, [r4, #0x15] str r5, [r4, #0x20] _080AD26E: pop {r4, r5, pc} .align 2, 0 _080AD270: .4byte gUnk_03003F80 thumb_func_start sub_080AD274 sub_080AD274: @ 0x080AD274 push {lr} bl sub_0805E780 pop {pc} thumb_func_start sub_080AD27C sub_080AD27C: @ 0x080AD27C push {r4, r5, lr} adds r3, r0, #0 ldr r4, [r3, #0x54] ldr r1, _080AD2AC @ =gUnk_03001160 movs r0, #0 str r0, [r1, #0x74] adds r0, r3, #0 adds r0, #0x6c ldrh r0, [r0] adds r5, r1, #0 ldrb r1, [r4, #8] cmp r0, r1 bne _080AD320 adds r0, r3, #0 adds r0, #0x6e ldrh r0, [r0] ldrb r1, [r4, #9] cmp r0, r1 bne _080AD320 cmp r4, r3 beq _080AD2B0 movs r0, #2 strb r0, [r4, #0xd] b _080AD2C2 .align 2, 0 _080AD2AC: .4byte gUnk_03001160 _080AD2B0: adds r2, r3, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #0x39 rsbs r1, r1, #0 ands r1, r0 movs r0, #0x18 orrs r1, r0 strb r1, [r2] _080AD2C2: ldr r0, [r4, #0x48] str r0, [r3, #0x48] ldrb r1, [r3, #0x16] lsrs r1, r1, #4 ldr r2, _080AD318 @ =gUnk_081320CC lsls r0, r1, #1 adds r0, r0, r2 ldrh r0, [r0] strh r0, [r3, #0x24] ldr r0, _080AD31C @ =gUnk_081320D4 lsls r1, r1, #2 adds r1, r1, r0 ldr r0, [r1] str r0, [r3, #0x20] ldrh r0, [r4, #0x36] adds r0, #8 strh r0, [r4, #0x36] strh r0, [r3, #0x36] adds r0, r4, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r3, #0 adds r0, #0x38 strb r1, [r0] ldrh r0, [r5, #0x32] strh r0, [r3, #0x32] ldrh r0, [r5, #0x2e] strh r0, [r3, #0x2e] adds r0, r5, #0 adds r0, #0x3c ldrb r1, [r0] adds r0, r3, #0 adds r0, #0x3c strb r1, [r0] ldrb r1, [r3, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r3, #0x10] adds r0, r3, #0 bl sub_0801766C b _080AD328 .align 2, 0 _080AD318: .4byte gUnk_081320CC _080AD31C: .4byte gUnk_081320D4 _080AD320: bl sub_08079184 bl sub_0805E780 _080AD328: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080AD32C sub_080AD32C: @ 0x080AD32C push {lr} adds r2, r0, #0 movs r3, #0 ldrb r1, [r2, #0x16] movs r0, #0xf0 ands r0, r1 cmp r0, #0x10 beq _080AD34C ldrb r0, [r2, #8] cmp r0, #6 bne _080AD34E ldrb r0, [r2, #9] cmp r0, #5 beq _080AD34C cmp r0, #0x7d bne _080AD34E _080AD34C: movs r3, #1 _080AD34E: adds r0, r3, #0 pop {pc} .align 2, 0 thumb_func_start sub_080AD354 sub_080AD354: @ 0x080AD354 push {lr} ldr r1, _080AD374 @ =gUnk_02032EC0 strb r0, [r1, #2] ldr r1, _080AD378 @ =gUnk_03001000 movs r0, #2 strb r0, [r1, #3] ldr r0, _080AD37C @ =gUnk_02000080 movs r1, #0x30 bl sub_0801D630 movs r0, #7 movs r1, #8 bl sub_08050054 pop {pc} .align 2, 0 _080AD374: .4byte gUnk_02032EC0 _080AD378: .4byte gUnk_03001000 _080AD37C: .4byte gUnk_02000080 thumb_func_start sub_080AD380 sub_080AD380: @ 0x080AD380 push {r4, lr} bl sub_080AD90C ldr r4, _080AD398 @ =gUnk_03001000 ldrb r0, [r4, #3] cmp r0, #1 beq _080AD3BC cmp r0, #1 bgt _080AD39C cmp r0, #0 beq _080AD3A2 b _080AD3EA .align 2, 0 _080AD398: .4byte gUnk_03001000 _080AD39C: cmp r0, #2 beq _080AD3D8 b _080AD3EA _080AD3A2: bl sub_08056418 ldr r0, _080AD3B8 @ =gUnk_02032EC0 movs r1, #0xed lsls r1, r1, #2 bl sub_0801D630 movs r0, #0 bl sub_080AD354 b _080AD3EA .align 2, 0 _080AD3B8: .4byte gUnk_02032EC0 _080AD3BC: ldr r1, _080AD3D0 @ =gUnk_081320F0 ldr r0, _080AD3D4 @ =gUnk_02032EC0 ldrb r0, [r0, #2] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 b _080AD3EA .align 2, 0 _080AD3D0: .4byte gUnk_081320F0 _080AD3D4: .4byte gUnk_02032EC0 _080AD3D8: ldr r0, _080AD3F0 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080AD3EE movs r0, #1 bl sub_0801DA90 movs r0, #1 strb r0, [r4, #3] _080AD3EA: bl sub_080AD918 _080AD3EE: pop {r4, pc} .align 2, 0 _080AD3F0: .4byte gUnk_03000FD0 thumb_func_start sub_080AD3F4 sub_080AD3F4: @ 0x080AD3F4 push {r4, r5, lr} bl sub_080AD84C adds r1, r0, #0 ldr r4, _080AD450 @ =gUnk_02000080 ldrb r0, [r4, #5] cmp r0, #0 bne _080AD458 movs r0, #1 bl sub_0801DA90 movs r5, #1 strb r5, [r4, #5] movs r0, #0x78 strh r0, [r4, #8] movs r0, #0x10 bl sub_0801D7EC movs r0, #1 bl sub_0801D7EC movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] movs r1, #2 cmp r0, #0 bne _080AD42C movs r1, #1 _080AD42C: adds r0, r1, #0 bl sub_0801D714 ldr r0, _080AD454 @ =gUnk_03000F50 ldrh r1, [r0] movs r3, #0x80 lsls r3, r3, #3 adds r2, r3, #0 orrs r1, r2 strh r1, [r0] strh r5, [r0, #0x1a] movs r0, #6 movs r1, #8 bl sub_08050054 movs r1, #0 b _080AD45E .align 2, 0 _080AD450: .4byte gUnk_02000080 _080AD454: .4byte gUnk_03000F50 _080AD458: cmp r1, #1 bne _080AD45E movs r1, #2 _080AD45E: cmp r1, #2 bne _080AD46C ldr r1, _080AD470 @ =gUnk_02000010 movs r0, #1 strb r0, [r1, #5] bl sub_080AD354 _080AD46C: pop {r4, r5, pc} .align 2, 0 _080AD470: .4byte gUnk_02000010 thumb_func_start sub_080AD474 sub_080AD474: @ 0x080AD474 push {r4, r5, r6, lr} ldr r5, _080AD490 @ =gUnk_02000080 ldrb r0, [r5, #0x12] adds r0, #1 strb r0, [r5, #0x12] ldrb r0, [r5, #5] cmp r0, #1 bne _080AD486 b _080AD588 _080AD486: cmp r0, #1 bgt _080AD494 cmp r0, #0 beq _080AD49C b _080AD5C8 .align 2, 0 _080AD490: .4byte gUnk_02000080 _080AD494: cmp r0, #2 bne _080AD49A b _080AD5AA _080AD49A: b _080AD5C8 _080AD49C: movs r4, #1 strb r4, [r5, #5] strb r0, [r5, #6] movs r6, #0 movs r0, #0x1e strh r0, [r5, #8] movs r0, #7 strb r0, [r5, #4] bl sub_0805E60C movs r0, #0 bl sub_0801CFA8 bl sub_080ADD30 ldr r0, _080AD50C @ =gUnk_02024490 strb r4, [r0] movs r0, #2 bl sub_0801D7EC movs r4, #0x80 lsls r4, r4, #0x12 ldrb r0, [r4, #7] movs r1, #4 cmp r0, #0 bne _080AD4D2 movs r1, #3 _080AD4D2: adds r0, r1, #0 bl sub_0801D714 ldrb r0, [r4, #7] cmp r0, #0 bne _080AD524 ldr r2, _080AD510 @ =gUnk_03000F50 adds r1, r2, #0 adds r1, #0x66 ldr r0, _080AD514 @ =0x00000844 strh r0, [r1] adds r1, #2 adds r0, #0xc5 strh r0, [r1] ldr r0, _080AD518 @ =0x00001C09 strh r0, [r2, #0x14] adds r0, #0xf9 strh r0, [r2, #0x20] ldr r0, _080AD51C @ =0x00001E03 strh r0, [r2, #0x2c] ldrh r0, [r2] movs r3, #0xf0 lsls r3, r3, #5 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r0, _080AD520 @ =0x0000FF60 strh r0, [r2, #0x18] b _080AD55A .align 2, 0 _080AD50C: .4byte gUnk_02024490 _080AD510: .4byte gUnk_03000F50 _080AD514: .4byte 0x00000844 _080AD518: .4byte 0x00001C09 _080AD51C: .4byte 0x00001E03 _080AD520: .4byte 0x0000FF60 _080AD524: ldr r2, _080AD570 @ =gUnk_03000F50 adds r1, r2, #0 adds r1, #0x66 ldr r0, _080AD574 @ =0x00000241 strh r0, [r1] adds r1, #2 ldr r0, _080AD578 @ =0x00000909 strh r0, [r1] ldr r0, _080AD57C @ =0x00001D02 strh r0, [r2, #8] ldr r0, _080AD580 @ =0x00001E03 strh r0, [r2, #0x14] ldr r0, _080AD584 @ =0x00007C89 strh r0, [r2, #0x20] ldrh r0, [r2] movs r1, #1 orrs r0, r1 orrs r0, r6 movs r3, #0x98 lsls r3, r3, #5 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] movs r0, #0x10 str r0, [r5, #0x2c] bl sub_080AD670 _080AD55A: bl sub_080A3210 movs r0, #3 bl sub_080A3268 movs r0, #6 movs r1, #8 bl sub_08050054 b _080AD610 .align 2, 0 _080AD570: .4byte gUnk_03000F50 _080AD574: .4byte 0x00000241 _080AD578: .4byte 0x00000909 _080AD57C: .4byte 0x00001D02 _080AD580: .4byte 0x00001E03 _080AD584: .4byte 0x00007C89 _080AD588: ldr r0, _080AD5A0 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080AD632 movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] cmp r0, #0 bne _080AD5A4 bl sub_080AD6AC b _080AD610 .align 2, 0 _080AD5A0: .4byte gUnk_03000FD0 _080AD5A4: bl sub_080AD76C b _080AD610 _080AD5AA: ldrh r0, [r5, #8] subs r0, #1 strh r0, [r5, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _080AD5C2 movs r0, #0xe1 lsls r0, r0, #4 strh r0, [r5, #8] ldrb r0, [r5, #5] adds r0, #1 strb r0, [r5, #5] _080AD5C2: bl sub_080AD644 b _080AD610 _080AD5C8: bl sub_080AD84C adds r4, r0, #0 cmp r4, #0 beq _080AD5EC cmp r4, #2 bne _080AD5DE movs r0, #0x6a bl sub_080A3268 b _080AD5E0 _080AD5DE: movs r4, #0 _080AD5E0: adds r0, r4, #0 bl sub_080AD354 ldr r0, _080AD634 @ =0x80080000 bl sub_080A3268 _080AD5EC: bl sub_080AD644 ldr r0, _080AD638 @ =gUnk_02000080 ldrh r1, [r0, #8] movs r0, #0x20 ands r0, r1 cmp r0, #0 bne _080AD610 ldr r1, _080AD63C @ =gUnk_03001010 movs r0, #0xe0 lsls r0, r0, #8 strh r0, [r1, #8] movs r0, #0x84 strh r0, [r1, #2] ldr r0, _080AD640 @ =0x000001FF movs r1, #0 bl sub_080ADA14 _080AD610: ldr r2, _080AD638 @ =gUnk_02000080 movs r0, #0x80 lsls r0, r0, #0x12 ldrb r1, [r0, #7] ldrb r0, [r2, #4] cmp r0, r1 beq _080AD626 strb r1, [r2, #4] movs r0, #3 bl sub_0801D7EC _080AD626: bl sub_080AD89C bl sub_0805E5C0 bl sub_080AD9B0 _080AD632: pop {r4, r5, r6, pc} .align 2, 0 _080AD634: .4byte 0x80080000 _080AD638: .4byte gUnk_02000080 _080AD63C: .4byte gUnk_03001010 _080AD640: .4byte 0x000001FF thumb_func_start sub_080AD644 sub_080AD644: @ 0x080AD644 push {lr} ldr r1, _080AD664 @ =gUnk_03001010 movs r0, #0 strh r0, [r1, #4] strh r0, [r1, #6] ldr r0, _080AD668 @ =0x0000E020 strh r0, [r1, #8] movs r0, #0x78 strh r0, [r1] movs r0, #0x98 strh r0, [r1, #2] ldr r0, _080AD66C @ =0x000001FF movs r1, #1 bl sub_080ADA14 pop {pc} .align 2, 0 _080AD664: .4byte gUnk_03001010 _080AD668: .4byte 0x0000E020 _080AD66C: .4byte 0x000001FF thumb_func_start sub_080AD670 sub_080AD670: @ 0x080AD670 push {lr} sub sp, #0x14 movs r0, #0x80 lsls r0, r0, #8 str r0, [sp, #4] str r0, [sp] mov r1, sp movs r2, #0 movs r0, #0x78 strh r0, [r1, #8] movs r0, #0x48 strh r0, [r1, #0xa] mov r0, sp strh r2, [r0, #0x10] mov r2, sp ldr r0, _080AD6A4 @ =gUnk_02000080 ldr r0, [r0, #0x2c] strh r0, [r1, #0xc] strh r0, [r2, #0xe] ldr r1, _080AD6A8 @ =gUnk_03000F88 mov r0, sp movs r2, #1 bl BgAffineSet add sp, #0x14 pop {pc} .align 2, 0 _080AD6A4: .4byte gUnk_02000080 _080AD6A8: .4byte gUnk_03000F88 thumb_func_start sub_080AD6AC sub_080AD6AC: @ 0x080AD6AC push {r4, r5, r6, lr} ldr r4, _080AD6C0 @ =gUnk_02000080 ldrb r0, [r4, #6] cmp r0, #1 beq _080AD724 cmp r0, #1 bgt _080AD6C4 cmp r0, #0 beq _080AD6CA b _080AD76A .align 2, 0 _080AD6C0: .4byte gUnk_02000080 _080AD6C4: cmp r0, #2 beq _080AD758 b _080AD76A _080AD6CA: ldr r6, _080AD718 @ =gUnk_03000FD0 ldrb r5, [r6] cmp r5, #0 bne _080AD76A ldrb r1, [r4, #0x12] movs r0, #1 ands r0, r1 cmp r0, #0 bne _080AD6E4 ldr r1, _080AD71C @ =gUnk_03000F50 ldrh r0, [r1, #0x18] adds r0, #1 strh r0, [r1, #0x18] _080AD6E4: bl sub_080AD84C cmp r0, #2 beq _080AD6F4 ldr r0, _080AD71C @ =gUnk_03000F50 ldrh r0, [r0, #0x18] cmp r0, #0 bne _080AD76A _080AD6F4: ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] ldr r1, _080AD71C @ =gUnk_03000F50 strh r5, [r1, #0x18] ldr r0, _080AD720 @ =0x00000C09 strh r0, [r1, #0x14] movs r0, #0x40 str r0, [r6, #4] movs r0, #6 movs r1, #0x10 bl sub_08050054 movs r0, #0xf8 bl sub_080A3268 b _080AD76A .align 2, 0 _080AD718: .4byte gUnk_03000FD0 _080AD71C: .4byte gUnk_03000F50 _080AD720: .4byte 0x00000C09 _080AD724: ldr r1, _080AD754 @ =gUnk_03000FD0 ldrb r5, [r1] cmp r5, #0 bne _080AD76A movs r0, #1 rsbs r0, r0, #0 str r0, [r1, #4] ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] movs r0, #0x5a strh r0, [r4, #8] movs r0, #0xb4 movs r1, #0 movs r2, #0 bl sub_080A2960 adds r1, r0, #0 cmp r1, #0 beq _080AD76A strh r5, [r1, #0x2e] movs r0, #0x48 strh r0, [r1, #0x32] b _080AD76A .align 2, 0 _080AD754: .4byte gUnk_03000FD0 _080AD758: bl sub_080AD84C cmp r0, #0 beq _080AD76A ldrb r0, [r4, #5] adds r0, #1 strb r0, [r4, #5] movs r0, #0x3c strh r0, [r4, #8] _080AD76A: pop {r4, r5, r6, pc} thumb_func_start sub_080AD76C sub_080AD76C: @ 0x080AD76C push {lr} ldr r1, _080AD780 @ =gUnk_02000080 ldrb r0, [r1, #6] cmp r0, #1 beq _080AD7B4 cmp r0, #1 bgt _080AD784 cmp r0, #0 beq _080AD78A b _080AD80E .align 2, 0 _080AD780: .4byte gUnk_02000080 _080AD784: cmp r0, #2 beq _080AD7DC b _080AD80E _080AD78A: ldr r0, _080AD7AC @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080AD82A movs r0, #1 strb r0, [r1, #6] ldr r2, _080AD7B0 @ =gUnk_03000F50 ldrh r1, [r2] movs r3, #0x80 lsls r3, r3, #3 adds r0, r3, #0 orrs r0, r1 strh r0, [r2] movs r0, #0xf6 bl sub_080A3268 b _080AD82A .align 2, 0 _080AD7AC: .4byte gUnk_03000FD0 _080AD7B0: .4byte gUnk_03000F50 _080AD7B4: ldr r0, [r1, #0x2c] adds r0, #0x10 str r0, [r1, #0x2c] movs r2, #0x80 lsls r2, r2, #1 cmp r0, r2 ble _080AD7D6 str r2, [r1, #0x2c] movs r0, #0x28 strh r0, [r1, #8] ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] movs r0, #6 movs r1, #0x10 bl sub_08050054 _080AD7D6: bl sub_080AD670 b _080AD82A _080AD7DC: ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _080AD82A movs r0, #0x96 lsls r0, r0, #1 strh r0, [r1, #8] ldrb r0, [r1, #6] adds r0, #1 strb r0, [r1, #6] movs r0, #0xbd movs r1, #0 movs r2, #0 bl sub_080A2960 movs r0, #6 movs r1, #0x10 bl sub_08050054 movs r0, #0xf8 bl sub_080A3268 b _080AD82A _080AD80E: ldr r0, _080AD82C @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080AD82A bl sub_080AD84C cmp r0, #0 beq _080AD82A ldr r0, _080AD830 @ =gUnk_02000080 ldrb r1, [r0, #5] adds r1, #1 strb r1, [r0, #5] movs r1, #0x3c strh r1, [r0, #8] _080AD82A: pop {pc} .align 2, 0 _080AD82C: .4byte gUnk_03000FD0 _080AD830: .4byte gUnk_02000080 thumb_func_start sub_080AD834 sub_080AD834: @ 0x080AD834 push {lr} ldr r0, _080AD848 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080AD844 movs r0, #1 bl sub_08056010 _080AD844: pop {pc} .align 2, 0 _080AD848: .4byte gUnk_03000FD0 thumb_func_start sub_080AD84C sub_080AD84C: @ 0x080AD84C push {lr} ldr r0, _080AD864 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080AD894 ldr r0, _080AD868 @ =gUnk_02000010 ldrb r0, [r0, #5] cmp r0, #0 bne _080AD86C movs r2, #0 b _080AD874 .align 2, 0 _080AD864: .4byte gUnk_03000FD0 _080AD868: .4byte gUnk_02000010 _080AD86C: ldr r0, _080AD888 @ =gUnk_03000FF0 ldrh r0, [r0, #2] movs r2, #9 ands r2, r0 _080AD874: ldr r1, _080AD88C @ =gUnk_02000080 ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] lsls r0, r0, #0x10 cmp r0, #0 bne _080AD890 movs r0, #1 b _080AD89A .align 2, 0 _080AD888: .4byte gUnk_03000FF0 _080AD88C: .4byte gUnk_02000080 _080AD890: cmp r2, #0 bne _080AD898 _080AD894: movs r0, #0 b _080AD89A _080AD898: movs r0, #2 _080AD89A: pop {pc} thumb_func_start sub_080AD89C sub_080AD89C: @ 0x080AD89C push {r4, lr} ldr r4, _080AD8E4 @ =gUnk_02000080 ldrb r1, [r4, #0x12] movs r0, #7 ands r0, r1 cmp r0, #0 bne _080AD8BC ldrb r0, [r4, #0x10] adds r0, #1 movs r1, #3 ands r0, r1 strb r0, [r4, #0x10] ldrb r0, [r4, #0x10] adds r0, #5 bl sub_0801D714 _080AD8BC: ldrb r1, [r4, #0x12] movs r0, #0x1f ands r0, r1 cmp r0, #0 bne _080AD8E0 ldrb r0, [r4, #0x11] adds r0, #1 movs r1, #7 ands r0, r1 strb r0, [r4, #0x11] ldr r1, _080AD8E8 @ =gUnk_03000F50 ldr r2, _080AD8EC @ =gUnk_081320FC ldrb r0, [r4, #0x11] lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] adds r1, #0x68 strh r0, [r1] _080AD8E0: pop {r4, pc} .align 2, 0 _080AD8E4: .4byte gUnk_02000080 _080AD8E8: .4byte gUnk_03000F50 _080AD8EC: .4byte gUnk_081320FC thumb_func_start sub_080AD8F0 sub_080AD8F0: @ 0x080AD8F0 ldr r2, _080AD908 @ =gUnk_082F3D74 lsls r0, r0, #2 adds r0, r0, r2 ldr r0, [r0] lsls r1, r1, #2 adds r0, r0, r2 adds r1, r1, r0 ldr r0, [r1] adds r2, r0, r2 adds r0, r2, #0 bx lr .align 2, 0 _080AD908: .4byte gUnk_082F3D74 thumb_func_start sub_080AD90C sub_080AD90C: @ 0x080AD90C ldr r1, _080AD914 @ =gUnk_03000000 movs r0, #0 strb r0, [r1, #3] bx lr .align 2, 0 _080AD914: .4byte gUnk_03000000 thumb_func_start sub_080AD918 sub_080AD918: @ 0x080AD918 push {r4, lr} ldr r1, _080AD948 @ =gUnk_03001000 ldrb r0, [r1, #0xb] adds r2, r0, #0 cmp r2, #0 bne _080AD958 ldr r1, _080AD94C @ =gUnk_03000000 movs r3, #0xa4 lsls r3, r3, #3 adds r0, r1, r3 strb r2, [r0] ldr r3, _080AD950 @ =0x00000664 adds r0, r1, r3 strb r2, [r0] movs r3, #0xf5 lsls r3, r3, #3 adds r0, r1, r3 strb r2, [r0] ldr r3, _080AD954 @ =0x000008EC adds r0, r1, r3 strb r2, [r0] adds r4, r1, #0 b _080AD95E .align 2, 0 _080AD948: .4byte gUnk_03001000 _080AD94C: .4byte gUnk_03000000 _080AD950: .4byte 0x00000664 _080AD954: .4byte 0x000008EC _080AD958: subs r0, #1 strb r0, [r1, #0xb] ldr r4, _080AD9A8 @ =gUnk_03000000 _080AD95E: ldrb r1, [r4, #3] movs r0, #0x80 subs r2, r0, r1 cmp r2, #0 ble _080AD980 lsls r1, r1, #3 adds r0, r4, #0 adds r0, #0x20 adds r1, r1, r0 movs r3, #0xa8 lsls r3, r3, #2 adds r0, r3, #0 _080AD976: strh r0, [r1] adds r1, #8 subs r2, #1 cmp r2, #0 bne _080AD976 _080AD980: adds r1, r4, #0 ldr r0, _080AD9AC @ =0x00000427 adds r2, r1, r0 ldrb r0, [r2] cmp r0, #0 beq _080AD9A0 movs r0, #0 strb r0, [r2] movs r2, #0x84 lsls r2, r2, #3 adds r0, r1, r2 adds r1, #0x26 movs r2, #0x20 movs r3, #8 bl ObjAffineSet _080AD9A0: movs r0, #1 strb r0, [r4] pop {r4, pc} .align 2, 0 _080AD9A8: .4byte gUnk_03000000 _080AD9AC: .4byte 0x00000427 thumb_func_start sub_080AD9B0 sub_080AD9B0: @ 0x080AD9B0 push {lr} ldr r2, _080AD9F4 @ =gUnk_03000000 ldr r0, _080AD9F8 @ =gUnk_030010A0 adds r0, #0x2f ldrb r0, [r0] movs r1, #0 cmp r0, #0 beq _080AD9C2 movs r1, #0xf _080AD9C2: strb r1, [r2, #0xe] ldr r1, _080AD9FC @ =gUnk_03000BF0 adds r0, r1, #0 adds r0, #0x24 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r3, [r1, #0xa] adds r0, r0, r3 strh r0, [r2, #4] adds r0, r1, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r1, #0xc] adds r0, r0, r1 strh r0, [r2, #6] ldrb r0, [r2, #1] adds r0, #1 strb r0, [r2, #1] ldr r0, _080ADA00 @ =gUnk_03006164 bl _call_via_r0 pop {pc} .align 2, 0 _080AD9F4: .4byte gUnk_03000000 _080AD9F8: .4byte gUnk_030010A0 _080AD9FC: .4byte gUnk_03000BF0 _080ADA00: .4byte gUnk_03006164 thumb_func_start sub_080ADA04 sub_080ADA04: @ 0x080ADA04 push {lr} ldr r2, _080ADA10 @ =gUnk_0300659C bl _call_via_r2 pop {pc} .align 2, 0 _080ADA10: .4byte gUnk_0300659C thumb_func_start sub_080ADA14 sub_080ADA14: @ 0x080ADA14 push {r4, lr} adds r3, r0, #0 adds r2, r1, #0 ldr r4, _080ADA28 @ =gUnk_03006580 ldr r0, _080ADA2C @ =gUnk_03001010 adds r1, r3, #0 bl _call_via_r4 pop {r4, pc} .align 2, 0 _080ADA28: .4byte gUnk_03006580 _080ADA2C: .4byte gUnk_03001010 thumb_func_start sub_080ADA30 sub_080ADA30: @ 0x080ADA30 push {r4, lr} adds r4, r0, #0 ldr r1, _080ADA60 @ =gUnk_03003F80 ldr r0, [r1, #0x2c] cmp r0, r4 bne _080ADA42 ldrb r0, [r1, #0x1c] cmp r0, #0 bne _080ADA46 _080ADA42: bl sub_0805E780 _080ADA46: ldr r1, _080ADA64 @ =gUnk_08132700 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldr r1, _080ADA68 @ =gUnk_03001160 adds r0, r4, #0 bl sub_08078E84 pop {r4, pc} .align 2, 0 _080ADA60: .4byte gUnk_03003F80 _080ADA64: .4byte gUnk_08132700 _080ADA68: .4byte gUnk_03001160 thumb_func_start sub_080ADA6C sub_080ADA6C: @ 0x080ADA6C push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0xf strb r0, [r4, #0xf] ldr r0, _080ADAA4 @ =gUnk_08132B28 str r0, [r4, #0x48] movs r1, #3 strb r1, [r0, #4] strb r1, [r0, #3] movs r1, #6 strb r1, [r0, #5] strb r1, [r0, #2] adds r0, r4, #0 bl sub_080ADC84 adds r0, r4, #0 movs r1, #1 movs r2, #3 bl sub_080AE008 ldrb r1, [r4, #0x14] lsrs r1, r1, #1 adds r0, r4, #0 bl sub_080042AC pop {r4, pc} .align 2, 0 _080ADAA4: .4byte gUnk_08132B28 thumb_func_start sub_080ADAA8 sub_080ADAA8: @ 0x080ADAA8 push {r4, lr} adds r4, r0, #0 bl sub_080ADC84 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080ADACC movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0 bl sub_080ADCA0 b _080ADAD2 _080ADACC: adds r0, r4, #0 bl sub_080042B8 _080ADAD2: pop {r4, pc} thumb_func_start sub_080ADAD4 sub_080ADAD4: @ 0x080ADAD4 push {r4, r5, lr} adds r4, r0, #0 ldr r3, _080ADAF4 @ =gUnk_03003F80 ldrb r1, [r3, #0x1c] adds r0, r1, #0 cmp r0, #3 bne _080ADAFC ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldr r0, _080ADAF8 @ =gUnk_03001160 ldrb r1, [r0, #0x14] lsrs r1, r1, #1 adds r1, #8 b _080ADB0C .align 2, 0 _080ADAF4: .4byte gUnk_03003F80 _080ADAF8: .4byte gUnk_03001160 _080ADAFC: cmp r0, #6 bne _080ADB18 movs r0, #4 strb r0, [r4, #0xc] ldr r0, _080ADB14 @ =gUnk_03001160 ldrb r1, [r0, #0x14] lsrs r1, r1, #1 adds r1, #4 _080ADB0C: adds r0, r4, #0 bl sub_080042AC b _080ADC08 .align 2, 0 _080ADB14: .4byte gUnk_03001160 _080ADB18: movs r5, #0 ldrb r0, [r4, #0xa] cmp r0, #0 beq _080ADB58 cmp r0, #1 bne _080ADB36 adds r0, r4, #0 movs r1, #4 bl sub_080ADCA0 movs r0, #0x18 strb r0, [r4, #0xe] movs r0, #2 strb r0, [r4, #0xa] b _080ADBE0 _080ADB36: adds r0, r4, #0 movs r1, #1 bl sub_080ADCDC ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _080ADBE0 adds r0, r4, #0 movs r1, #0 bl sub_080ADCA0 strb r5, [r4, #0xa] b _080ADBE0 _080ADB58: movs r0, #0xf ands r0, r1 cmp r0, #7 bne _080ADB68 adds r1, r4, #0 adds r1, #0x59 movs r0, #0x7f strb r0, [r1] _080ADB68: ldrb r0, [r3, #0x1d] cmp r0, #2 beq _080ADB94 cmp r0, #2 bgt _080ADB78 cmp r0, #1 beq _080ADBB0 b _080ADBCA _080ADB78: cmp r0, #3 bne _080ADBCA adds r0, r4, #0 movs r1, #3 bl sub_080ADCDC ldrb r1, [r4, #0x1a] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x1a] movs r2, #3 movs r5, #0xe9 b _080ADBCA _080ADB94: adds r0, r4, #0 movs r1, #2 bl sub_080ADCDC ldrb r0, [r4, #0x1a] movs r1, #0x10 rsbs r1, r1, #0 ands r1, r0 movs r0, #4 orrs r1, r0 strb r1, [r4, #0x1a] movs r2, #2 movs r5, #0xe8 b _080ADBCA _080ADBB0: adds r0, r4, #0 movs r1, #1 bl sub_080ADCDC ldrb r0, [r4, #0x1a] movs r1, #0x10 rsbs r1, r1, #0 ands r1, r0 movs r0, #1 orrs r1, r0 strb r1, [r4, #0x1a] movs r2, #1 movs r5, #0xe7 _080ADBCA: ldr r0, _080ADC0C @ =gUnk_03003F80 ldrb r1, [r0, #0x1c] movs r0, #0xf ands r0, r1 cmp r0, #7 bne _080ADBDA movs r5, #0xee movs r2, #1 _080ADBDA: ldrb r0, [r4, #0xf] subs r0, r0, r2 strb r0, [r4, #0xf] _080ADBE0: movs r0, #0xf ldrsb r0, [r4, r0] cmp r0, #0 bge _080ADBF6 cmp r5, #0 beq _080ADBF2 adds r0, r5, #0 bl sub_080A3268 _080ADBF2: movs r0, #0xf strb r0, [r4, #0xf] _080ADBF6: ldr r2, _080ADC10 @ =gUnk_03001160 adds r0, r2, #0 adds r0, #0x5a ldrb r0, [r0] movs r1, #0x7f ands r1, r0 ldrb r0, [r2, #0x1e] subs r0, r0, r1 strb r0, [r4, #0x1e] _080ADC08: pop {r4, r5, pc} .align 2, 0 _080ADC0C: .4byte gUnk_03003F80 _080ADC10: .4byte gUnk_03001160 thumb_func_start sub_080ADC14 sub_080ADC14: @ 0x080ADC14 push {r4, lr} adds r4, r0, #0 ldr r0, _080ADC40 @ =gUnk_03003F80 ldrb r0, [r0, #0x1c] movs r1, #0xf ands r1, r0 cmp r1, #1 beq _080ADC48 cmp r1, #6 bne _080ADC56 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldr r0, _080ADC44 @ =gUnk_03001160 ldrb r1, [r0, #0x14] lsrs r1, r1, #1 adds r1, #4 adds r0, r4, #0 bl sub_080042AC b _080ADC5C .align 2, 0 _080ADC40: .4byte gUnk_03003F80 _080ADC44: .4byte gUnk_03001160 _080ADC48: adds r0, r4, #0 movs r1, #0 bl sub_080ADCA0 movs r0, #2 strb r0, [r4, #0xc] b _080ADC5C _080ADC56: adds r0, r4, #0 bl sub_080042B8 _080ADC5C: pop {r4, pc} .align 2, 0 thumb_func_start sub_080ADC60 sub_080ADC60: @ 0x080ADC60 push {lr} adds r2, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080ADC7C ldrb r1, [r2, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2, #0x18] b _080ADC82 _080ADC7C: adds r0, r2, #0 bl sub_080042B8 _080ADC82: pop {pc} thumb_func_start sub_080ADC84 sub_080ADC84: @ 0x080ADC84 ldr r1, _080ADC9C @ =gUnk_03001160 ldrb r1, [r1, #0x18] movs r2, #0x40 ands r2, r1 ldrb r3, [r0, #0x18] movs r1, #0x41 rsbs r1, r1, #0 ands r1, r3 orrs r1, r2 strb r1, [r0, #0x18] bx lr .align 2, 0 _080ADC9C: .4byte gUnk_03001160 thumb_func_start sub_080ADCA0 sub_080ADCA0: @ 0x080ADCA0 push {r4, lr} ldr r3, _080ADCD4 @ =gUnk_08132714 ldr r2, _080ADCD8 @ =gUnk_03001160 ldrb r2, [r2, #0x14] lsrs r2, r2, #1 adds r1, r1, r2 lsls r1, r1, #2 adds r1, r1, r3 ldr r2, [r1] str r2, [r0, #0x5c] ldrb r1, [r2] adds r3, r0, #0 adds r3, #0x58 strb r1, [r3] adds r1, r2, #1 str r1, [r0, #0x5c] ldrb r2, [r2, #1] movs r4, #0x59 strb r2, [r4, r0] adds r1, #1 str r1, [r0, #0x5c] ldrb r1, [r3] ldrh r2, [r0, #0x12] bl sub_080042D0 pop {r4, pc} .align 2, 0 _080ADCD4: .4byte gUnk_08132714 _080ADCD8: .4byte gUnk_03001160 thumb_func_start sub_080ADCDC sub_080ADCDC: @ 0x080ADCDC push {r4, r5, lr} adds r3, r0, #0 movs r0, #0x59 adds r0, r0, r3 mov ip, r0 ldrb r0, [r0] subs r0, r0, r1 mov r1, ip strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 bgt _080ADD2E ldr r1, [r3, #0x5c] ldrb r0, [r1] cmp r0, #0xff bne _080ADD06 adds r0, r1, #1 str r0, [r3, #0x5c] ldrb r1, [r1, #1] subs r0, r0, r1 str r0, [r3, #0x5c] _080ADD06: ldr r1, [r3, #0x5c] ldrb r0, [r1] adds r2, r3, #0 adds r2, #0x58 strb r0, [r2] adds r1, #1 str r1, [r3, #0x5c] ldrb r0, [r1] mov r4, ip ldrb r4, [r4] adds r0, r0, r4 mov r5, ip strb r0, [r5] adds r1, #1 str r1, [r3, #0x5c] ldrb r1, [r2] ldrh r2, [r3, #0x12] adds r0, r3, #0 bl sub_080042D0 _080ADD2E: pop {r4, r5, pc} thumb_func_start sub_080ADD30 sub_080ADD30: @ 0x080ADD30 push {r4, r5, r6, lr} ldr r4, _080ADD6C @ =gUnk_02024490 movs r1, #0x85 lsls r1, r1, #2 adds r0, r4, #0 bl sub_0801D630 movs r5, #0 adds r4, #4 movs r0, #0x10 rsbs r0, r0, #0 adds r6, r0, #0 _080ADD48: adds r0, r5, #0 movs r1, #0 movs r2, #1 bl sub_080AE104 ldrb r0, [r4] ands r0, r6 movs r1, #6 orrs r0, r1 strb r0, [r4] movs r0, #0x80 strb r0, [r4, #2] adds r4, #0xc adds r5, #1 cmp r5, #3 bls _080ADD48 pop {r4, r5, r6, pc} .align 2, 0 _080ADD6C: .4byte gUnk_02024490 thumb_func_start sub_080ADD70 sub_080ADD70: @ 0x080ADD70 push {r4, r5, lr} ldr r1, _080ADD88 @ =gUnk_02024490 ldrb r0, [r1] cmp r0, #0 beq _080ADDD6 ldrb r0, [r1, #3] cmp r0, #0 beq _080ADD8C bl sub_080ADE24 b _080ADDD6 .align 2, 0 _080ADD88: .4byte gUnk_02024490 _080ADD8C: movs r4, #0 movs r5, #0 _080ADD90: ldr r0, _080ADDB0 @ =gUnk_02024494 adds r2, r5, r0 ldrb r1, [r2] lsls r0, r1, #0x1c lsrs r0, r0, #0x1c cmp r0, #2 bne _080ADDB4 movs r3, #0x10 rsbs r3, r3, #0 adds r0, r3, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2] b _080ADDCE .align 2, 0 _080ADDB0: .4byte gUnk_02024494 _080ADDB4: cmp r0, #2 blt _080ADDCE cmp r0, #6 bgt _080ADDCE cmp r0, #4 blt _080ADDCE movs r0, #0xf0 ands r0, r1 cmp r0, #0x30 bne _080ADDCE adds r0, r4, #0 bl sub_080ADE74 _080ADDCE: adds r5, #0xc adds r4, #1 cmp r4, #0x2b bls _080ADD90 _080ADDD6: pop {r4, r5, pc} thumb_func_start sub_080ADDD8 sub_080ADDD8: @ 0x080ADDD8 push {lr} adds r2, r1, #0 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #2 ldr r0, _080ADDFC @ =gUnk_02024494 adds r3, r1, r0 ldr r0, _080ADE00 @ =0x00FFFFFC ands r0, r2 ldr r1, _080ADE04 @ =gUnk_085A2E80 adds r0, r0, r1 str r0, [r3, #8] movs r0, #1 ands r0, r2 cmp r0, #0 beq _080ADE0C ldr r0, _080ADE08 @ =0x0000FFFF b _080ADE14 .align 2, 0 _080ADDFC: .4byte gUnk_02024494 _080ADE00: .4byte 0x00FFFFFC _080ADE04: .4byte gUnk_085A2E80 _080ADE08: .4byte 0x0000FFFF _080ADE0C: movs r0, #0xfe lsls r0, r0, #0x17 ands r0, r2 lsrs r0, r0, #0x14 _080ADE14: strh r0, [r3, #6] ldrb r0, [r3] movs r1, #0xf ands r1, r0 movs r0, #0x30 orrs r1, r0 strb r1, [r3] pop {pc} thumb_func_start sub_080ADE24 sub_080ADE24: @ 0x080ADE24 push {r4, r5, lr} ldr r1, _080ADE50 @ =gUnk_02024490 movs r0, #1 strb r0, [r1, #3] movs r4, #0 movs r5, #0 _080ADE30: ldr r0, _080ADE54 @ =gUnk_02024494 adds r1, r5, r0 ldrb r0, [r1] lsls r0, r0, #0x1c lsrs r0, r0, #0x1c cmp r0, #3 beq _080ADE60 cmp r0, #3 blt _080ADE58 cmp r0, #6 bgt _080ADE58 adds r0, r4, #0 bl sub_080ADE74 b _080ADE60 .align 2, 0 _080ADE50: .4byte gUnk_02024490 _080ADE54: .4byte gUnk_02024494 _080ADE58: adds r0, r1, #0 movs r1, #0xc bl sub_0801D630 _080ADE60: adds r5, #0xc adds r4, #1 cmp r4, #0x2b bls _080ADE30 movs r1, #0 ldr r0, _080ADE70 @ =gUnk_02024490 strb r1, [r0, #3] pop {r4, r5, pc} .align 2, 0 _080ADE70: .4byte gUnk_02024490 thumb_func_start sub_080ADE74 sub_080ADE74: @ 0x080ADE74 push {r4, r5, r6, lr} adds r2, r0, #0 lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #2 ldr r1, _080ADF00 @ =gUnk_02024494 adds r3, r0, r1 ldrb r1, [r3] movs r0, #0xf0 ands r0, r1 cmp r0, #0 beq _080ADF7C movs r0, #0xf ands r0, r1 movs r1, #0x10 orrs r0, r1 strb r0, [r3] ldrh r1, [r3, #6] ldr r0, _080ADF04 @ =0x0000FFFF cmp r1, r0 beq _080ADF18 ldrb r0, [r3, #3] cmp r0, #0 beq _080ADF18 lsls r0, r0, #6 ldr r1, _080ADF08 @ =gUnk_020000C0 adds r4, r0, r1 movs r5, #4 movs r6, #9 rsbs r6, r6, #0 _080ADEB0: ldrb r1, [r4] movs r0, #4 ands r0, r1 cmp r0, #0 beq _080ADEF6 ldr r0, _080ADF0C @ =gUnk_02024490 ldrb r0, [r0, #3] cmp r0, #0 bne _080ADECA movs r0, #8 ands r0, r1 cmp r0, #0 beq _080ADEF6 _080ADECA: adds r0, r6, #0 ands r0, r1 strb r0, [r4] ldrb r0, [r4, #9] lsls r2, r0, #5 cmp r2, #0 beq _080ADEF6 ldrh r0, [r4, #0xa] lsls r0, r0, #5 ldr r3, _080ADF10 @ =0x06010000 adds r1, r0, r3 ldr r3, _080ADF14 @ =0x040000D4 ldr r0, [r4, #0xc] str r0, [r3] str r1, [r3, #4] adds r0, r2, #0 asrs r0, r0, #2 movs r1, #0x84 lsls r1, r1, #0x18 orrs r0, r1 str r0, [r3, #8] ldr r0, [r3, #8] _080ADEF6: adds r4, #0x10 subs r5, #1 cmp r5, #0 bgt _080ADEB0 b _080ADF7C .align 2, 0 _080ADF00: .4byte gUnk_02024494 _080ADF04: .4byte 0x0000FFFF _080ADF08: .4byte gUnk_020000C0 _080ADF0C: .4byte gUnk_02024490 _080ADF10: .4byte 0x06010000 _080ADF14: .4byte 0x040000D4 _080ADF18: lsls r0, r2, #9 ldr r2, _080ADF4C @ =0x06012800 adds r1, r0, r2 ldrh r2, [r3, #6] cmp r2, #0 beq _080ADF58 ldr r0, _080ADF50 @ =0x0000FFFF cmp r2, r0 beq _080ADF62 ldr r2, _080ADF54 @ =0x040000D4 ldr r0, [r3, #8] str r0, [r2] str r1, [r2, #4] ldrh r0, [r3, #6] lsls r0, r0, #3 movs r1, #0x84 lsls r1, r1, #0x18 orrs r0, r1 str r0, [r2, #8] ldr r0, [r2, #8] ldrh r2, [r3, #6] subs r2, #0x10 cmp r2, #0 ble _080ADF7C b _080ADF70 .align 2, 0 _080ADF4C: .4byte 0x06012800 _080ADF50: .4byte 0x0000FFFF _080ADF54: .4byte 0x040000D4 _080ADF58: ldrb r1, [r3] movs r0, #0xf ands r0, r1 strb r0, [r3] b _080ADF7C _080ADF62: ldrb r0, [r3, #3] cmp r0, #0 bne _080ADF7C ldr r0, [r3, #8] bl LZ77UnCompVram b _080ADF7C _080ADF70: adds r3, #0xc movs r0, #0 strh r0, [r3, #6] subs r2, #0x10 cmp r2, #0 bgt _080ADF70 _080ADF7C: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080ADF80 sub_080ADF80: @ 0x080ADF80 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} mov r8, r0 adds r7, r1, #0 cmp r7, #0 beq _080ADFFC movs r5, #4 ldr r0, _080ADFD4 @ =gUnk_02024490 adds r0, #0x30 _080ADF94: ldrh r1, [r0, #8] cmp r7, r1 beq _080ADFF2 adds r0, #0xc adds r5, #1 cmp r5, #0x2b bls _080ADF94 ldr r0, _080ADFD8 @ =gUnk_08132B30 lsls r4, r7, #2 adds r0, r4, r0 ldr r0, [r0] movs r1, #0xfe lsls r1, r1, #0x17 ands r0, r1 lsrs r6, r0, #0x18 adds r0, r6, #0 bl sub_080AE174 adds r5, r0, #0 cmp r5, #0 bne _080ADFDC bl sub_080AE1D8 adds r0, r6, #0 bl sub_080AE174 adds r5, r0, #0 cmp r5, #0 bne _080ADFDC movs r0, #0 b _080ADFFE .align 2, 0 _080ADFD4: .4byte gUnk_02024490 _080ADFD8: .4byte gUnk_08132B30 _080ADFDC: adds r0, r5, #0 adds r1, r7, #0 adds r2, r6, #0 bl sub_080AE104 ldr r0, _080AE004 @ =gUnk_08132B30 adds r0, r4, r0 ldr r1, [r0] adds r0, r5, #0 bl sub_080ADDD8 _080ADFF2: adds r0, r5, #0 mov r1, r8 movs r2, #4 bl sub_080AE0C8 _080ADFFC: movs r0, #1 _080ADFFE: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _080AE004: .4byte gUnk_08132B30 thumb_func_start sub_080AE008 sub_080AE008: @ 0x080AE008 push {r4, r5, r6, lr} adds r6, r0, #0 adds r5, r1, #0 adds r4, r2, #0 cmp r4, #0 bne _080AE030 adds r0, r5, #0 bl sub_080AE174 adds r4, r0, #0 cmp r4, #0 bne _080AE030 bl sub_080AE1D8 adds r0, r5, #0 bl sub_080AE174 adds r4, r0, #0 cmp r4, #0 beq _080AE058 _080AE030: ldr r0, _080AE064 @ =gUnk_02024490 lsls r1, r4, #1 adds r1, r1, r4 lsls r1, r1, #2 adds r1, r1, r0 ldrb r0, [r1, #4] lsls r0, r0, #0x1c lsrs r2, r0, #0x1c cmp r2, #6 beq _080AE050 adds r0, r4, #0 movs r1, #0 adds r2, r5, #0 bl sub_080AE104 movs r2, #5 _080AE050: adds r0, r4, #0 adds r1, r6, #0 bl sub_080AE0C8 _080AE058: adds r0, r4, #0 cmp r0, #0 beq _080AE060 movs r0, #1 _080AE060: pop {r4, r5, r6, pc} .align 2, 0 _080AE064: .4byte gUnk_02024490 thumb_func_start sub_080AE068 sub_080AE068: @ 0x080AE068 push {r4, r5, lr} adds r0, #0x26 ldrb r2, [r0] movs r1, #0 strb r1, [r0] cmp r2, #0 beq _080AE0C2 lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #2 ldr r1, _080AE0C4 @ =gUnk_02024494 adds r3, r0, r1 ldrb r0, [r3] lsls r0, r0, #0x1c lsrs r0, r0, #0x1c cmp r0, #5 bgt _080AE0C2 cmp r0, #4 blt _080AE0C2 ldrb r0, [r3, #2] cmp r0, #0 beq _080AE0C2 subs r0, #1 strb r0, [r3, #2] lsls r0, r0, #0x18 cmp r0, #0 bne _080AE0C2 ldrb r2, [r3, #1] adds r0, r2, #0 subs r2, #1 cmp r0, #0 ble _080AE0C2 movs r5, #0x10 rsbs r5, r5, #0 movs r4, #1 _080AE0AE: ldrb r0, [r3] adds r1, r5, #0 ands r1, r0 orrs r1, r4 strb r1, [r3] adds r3, #0xc adds r0, r2, #0 subs r2, #1 cmp r0, #0 bgt _080AE0AE _080AE0C2: pop {r4, r5, pc} .align 2, 0 _080AE0C4: .4byte gUnk_02024494 thumb_func_start sub_080AE0C8 sub_080AE0C8: @ 0x080AE0C8 push {r4, lr} adds r4, r2, #0 lsls r2, r0, #4 movs r3, #0xa0 lsls r3, r3, #1 adds r2, r2, r3 adds r3, r1, #0 adds r3, #0x60 strh r2, [r3] adds r1, #0x26 strb r0, [r1] lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #2 ldr r0, _080AE100 @ =gUnk_02024494 adds r1, r1, r0 ldrb r2, [r1, #2] movs r0, #2 ldrsb r0, [r1, r0] cmp r0, #0 blt _080AE0F6 adds r0, r2, #1 strb r0, [r1, #2] _080AE0F6: adds r0, r1, #0 adds r1, r4, #0 bl sub_080AE134 pop {r4, pc} .align 2, 0 _080AE100: .4byte gUnk_02024494 thumb_func_start sub_080AE104 sub_080AE104: @ 0x080AE104 push {r4, r5, r6, lr} adds r6, r1, #0 adds r5, r2, #0 lsls r4, r0, #1 adds r4, r4, r0 lsls r4, r4, #2 ldr r0, _080AE130 @ =gUnk_02024494 adds r4, r4, r0 lsls r1, r5, #1 adds r1, r1, r5 lsls r1, r1, #2 adds r0, r4, #0 bl sub_0801D630 strb r5, [r4, #1] strh r6, [r4, #4] adds r0, r4, #0 movs r1, #4 bl sub_080AE134 pop {r4, r5, r6, pc} .align 2, 0 _080AE130: .4byte gUnk_02024494 thumb_func_start sub_080AE134 sub_080AE134: @ 0x080AE134 push {r4, r5, r6, lr} adds r3, r0, #0 adds r4, r1, #0 movs r6, #0xf adds r0, r4, #0 ands r0, r6 ldrb r2, [r3] movs r5, #0x10 rsbs r5, r5, #0 adds r1, r5, #0 ands r1, r2 orrs r1, r0 strb r1, [r3] ldrb r2, [r3, #1] cmp r4, #6 beq _080AE156 movs r4, #3 _080AE156: subs r2, #1 cmp r2, #0 ble _080AE170 ands r4, r6 _080AE15E: adds r3, #0xc ldrb r1, [r3] adds r0, r5, #0 ands r0, r1 orrs r0, r4 strb r0, [r3] subs r2, #1 cmp r2, #0 bgt _080AE15E _080AE170: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080AE174 sub_080AE174: @ 0x080AE174 push {r4, lr} adds r4, r0, #0 movs r1, #0 movs r2, #4 ldr r0, _080AE194 @ =gUnk_02024490 adds r3, r0, #0 adds r3, #0x30 _080AE182: ldrb r0, [r3, #4] lsls r0, r0, #0x1c cmp r0, #0 bne _080AE198 adds r1, #1 cmp r4, r1 bhi _080AE19A b _080AE1BC .align 2, 0 _080AE194: .4byte gUnk_02024490 _080AE198: movs r1, #0 _080AE19A: adds r3, #0xc adds r2, #1 cmp r2, #0x2b bls _080AE182 movs r1, #0 movs r2, #4 ldr r0, _080AE1C4 @ =gUnk_02024490 adds r3, r0, #0 adds r3, #0x30 _080AE1AC: ldrb r0, [r3, #4] lsls r0, r0, #0x1c lsrs r0, r0, #0x1c cmp r0, #1 bhi _080AE1C8 adds r1, #1 cmp r4, r1 bhi _080AE1CA _080AE1BC: subs r0, r2, r1 adds r0, #1 b _080AE1D4 .align 2, 0 _080AE1C4: .4byte gUnk_02024490 _080AE1C8: movs r1, #0 _080AE1CA: adds r3, #0xc adds r2, #1 cmp r2, #0x2b bls _080AE1AC movs r0, #0 _080AE1D4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080AE1D8 sub_080AE1D8: @ 0x080AE1D8 push {r4, r5, lr} ldr r0, _080AE1E8 @ =gUnk_02024490 ldrb r0, [r0] cmp r0, #0 beq _080AE216 movs r5, #4 b _080AE20A .align 2, 0 _080AE1E8: .4byte gUnk_02024490 _080AE1EC: bl sub_080AE3B8 adds r4, r0, #0 cmp r4, r5 bhi _080AE208 adds r0, r5, #0 adds r1, r4, #0 bl sub_080AE218 adds r0, r5, #0 adds r1, r4, #0 bl sub_080AE324 adds r5, r4, #0 _080AE208: adds r5, #1 _080AE20A: adds r0, r5, #0 bl sub_080AE384 adds r5, r0, #0 cmp r5, #0 bne _080AE1EC _080AE216: pop {r4, r5, pc} thumb_func_start sub_080AE218 sub_080AE218: @ 0x080AE218 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} mov sl, r0 mov r8, r1 lsls r0, r1, #4 movs r1, #0xa0 lsls r1, r1, #1 adds r0, r0, r1 mov ip, r0 mov r2, sl lsls r0, r2, #4 adds r3, r0, r1 ldr r1, _080AE30C @ =gUnk_02024490 lsls r0, r2, #1 add r0, sl lsls r0, r0, #2 adds r0, r0, r1 ldrb r0, [r0, #5] lsls r0, r0, #4 adds r7, r3, r0 movs r4, #0 ldr r6, _080AE310 @ =gUnk_020000C0 mov sb, r6 ldr r0, _080AE314 @ =gUnk_03001160 adds r2, r0, #0 adds r2, #0x26 adds r5, r0, #0 _080AE254: ldr r0, [r5, #4] cmp r0, #0 beq _080AE276 ldrb r0, [r2] cmp sl, r0 bne _080AE264 mov r1, r8 strb r1, [r2] _080AE264: ldrh r0, [r2, #0x3a] cmp r3, r0 bhi _080AE276 cmp r7, r0 bls _080AE276 subs r0, r0, r3 mov r6, ip adds r1, r0, r6 strh r1, [r2, #0x3a] _080AE276: adds r2, #0x88 adds r5, #0x88 adds r4, #1 cmp r4, #0x4f bls _080AE254 movs r0, #0 _080AE282: movs r4, #0 adds r1, r0, #1 mov r8, r1 lsls r5, r0, #6 _080AE28A: lsls r0, r4, #4 add r0, sb adds r2, r5, r0 ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080AE2B4 movs r0, #2 ands r0, r1 cmp r0, #0 bne _080AE2B4 ldrh r1, [r2, #0xa] cmp r3, r1 bhi _080AE2B4 cmp r7, r1 bls _080AE2B4 subs r0, r1, r3 mov r6, ip adds r1, r0, r6 strh r1, [r2, #0xa] _080AE2B4: adds r4, #1 cmp r4, #3 bls _080AE28A mov r0, r8 cmp r0, #0x2f bls _080AE282 movs r4, #0 ldr r0, _080AE318 @ =0xFFFFFC00 mov sl, r0 ldr r5, _080AE31C @ =gUnk_03000000 adds r5, #0x24 ldr r1, _080AE320 @ =0x000003FF mov sb, r1 movs r2, #1 mov r8, r2 _080AE2D2: ldrh r2, [r5] lsls r0, r2, #0x16 lsrs r1, r0, #0x16 cmp r3, r1 bhi _080AE2F8 cmp r7, r1 bls _080AE2F8 subs r0, r1, r3 mov r6, ip adds r1, r0, r6 mov r0, sb ands r1, r0 mov r0, sl ands r0, r2 orrs r0, r1 strh r0, [r5] mov r2, r8 ldr r1, _080AE31C @ =gUnk_03000000 strb r2, [r1] _080AE2F8: adds r5, #8 adds r4, #1 cmp r4, #0x7f bls _080AE2D2 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _080AE30C: .4byte gUnk_02024490 _080AE310: .4byte gUnk_020000C0 _080AE314: .4byte gUnk_03001160 _080AE318: .4byte 0xFFFFFC00 _080AE31C: .4byte gUnk_03000000 _080AE320: .4byte 0x000003FF thumb_func_start sub_080AE324 sub_080AE324: @ 0x080AE324 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r3, r1, #0 ldr r2, _080AE380 @ =gUnk_02024490 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #2 adds r5, r1, r2 ldrb r4, [r5, #5] subs r4, #1 movs r0, #1 rsbs r0, r0, #0 cmp r4, r0 beq _080AE372 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #2 adds r0, r0, r2 mov r8, r0 adds r0, r1, #4 adds r6, r0, r2 _080AE350: mov r0, r8 adds r0, #4 adds r1, r5, #4 ldm r1!, {r2, r3, r7} stm r0!, {r2, r3, r7} adds r0, r6, #0 movs r1, #0xc bl sub_0801D630 adds r6, #0xc adds r5, #0xc movs r0, #0xc add r8, r0 subs r4, #1 subs r0, #0xd cmp r4, r0 bne _080AE350 _080AE372: ldr r1, _080AE380 @ =gUnk_02024490 movs r0, #1 strb r0, [r1, #3] pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _080AE380: .4byte gUnk_02024490 thumb_func_start sub_080AE384 sub_080AE384: @ 0x080AE384 push {lr} adds r2, r0, #0 cmp r2, #0x2a bhi _080AE3B4 ldr r1, _080AE3A8 @ =gUnk_02024490 lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #2 adds r1, r0, r1 _080AE396: ldrb r0, [r1, #4] lsls r0, r0, #0x1c lsrs r0, r0, #0x1c cmp r0, #5 bgt _080AE3AC cmp r0, #4 blt _080AE3AC adds r0, r2, #0 b _080AE3B6 .align 2, 0 _080AE3A8: .4byte gUnk_02024490 _080AE3AC: adds r1, #0xc adds r2, #1 cmp r2, #0x2a bls _080AE396 _080AE3B4: movs r0, #0 _080AE3B6: pop {pc} thumb_func_start sub_080AE3B8 sub_080AE3B8: @ 0x080AE3B8 push {lr} movs r1, #4 ldr r0, _080AE3D4 @ =gUnk_02024490 adds r2, r0, #0 adds r2, #0x30 _080AE3C2: ldrb r0, [r2, #4] lsls r0, r0, #0x1c lsrs r0, r0, #0x1c cmp r0, #1 bgt _080AE3D8 cmp r0, #0 blt _080AE3D8 adds r0, r1, #0 b _080AE3E2 .align 2, 0 _080AE3D4: .4byte gUnk_02024490 _080AE3D8: adds r2, #0xc adds r1, #1 cmp r1, #0x2b bls _080AE3C2 movs r0, #0 _080AE3E2: pop {pc} thumb_func_start sub_080AE3E4 sub_080AE3E4: @ 0x080AE3E4 movs r0, #0 bx lr thumb_func_start sub_080AE3E8 sub_080AE3E8: @ 0x080AE3E8 movs r0, #1 bx lr thumb_func_start sub_080AE3EC sub_080AE3EC: @ 0x080AE3EC adds r2, r0, #0 ldr r0, _080AE404 @ =gUnk_08133918 movs r3, #0xf ands r1, r3 lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] ands r2, r3 asrs r0, r2 movs r1, #1 ands r0, r1 bx lr .align 2, 0 _080AE404: .4byte gUnk_08133918 thumb_func_start sub_080AE408 sub_080AE408: @ 0x080AE408 adds r2, r0, #0 ldr r0, _080AE420 @ =gUnk_08133938 movs r3, #0xf ands r1, r3 lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] ands r2, r3 asrs r0, r2 movs r1, #1 ands r0, r1 bx lr .align 2, 0 _080AE420: .4byte gUnk_08133938 thumb_func_start sub_080AE424 sub_080AE424: @ 0x080AE424 adds r2, r0, #0 ldr r0, _080AE43C @ =gUnk_08133958 movs r3, #0xf ands r1, r3 lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] ands r2, r3 asrs r0, r2 movs r1, #1 ands r0, r1 bx lr .align 2, 0 _080AE43C: .4byte gUnk_08133958 thumb_func_start sub_080AE440 sub_080AE440: @ 0x080AE440 adds r2, r0, #0 ldr r0, _080AE458 @ =gUnk_08133978 movs r3, #0xf ands r1, r3 lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] ands r2, r3 asrs r0, r2 movs r1, #1 ands r0, r1 bx lr .align 2, 0 _080AE458: .4byte gUnk_08133978 thumb_func_start sub_080AE45C sub_080AE45C: @ 0x080AE45C adds r2, r0, #0 ldr r0, _080AE474 @ =gUnk_08133998 movs r3, #0xf ands r1, r3 lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] ands r2, r3 asrs r0, r2 movs r1, #1 ands r0, r1 bx lr .align 2, 0 _080AE474: .4byte gUnk_08133998 thumb_func_start sub_080AE478 sub_080AE478: @ 0x080AE478 adds r2, r0, #0 ldr r0, _080AE490 @ =gUnk_081339B8 movs r3, #0xf ands r1, r3 lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] ands r2, r3 asrs r0, r2 movs r1, #1 ands r0, r1 bx lr .align 2, 0 _080AE490: .4byte gUnk_081339B8 thumb_func_start sub_080AE494 sub_080AE494: @ 0x080AE494 adds r2, r0, #0 ldr r0, _080AE4AC @ =gUnk_081339D8 movs r3, #0xf ands r1, r3 lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] ands r2, r3 asrs r0, r2 movs r1, #1 ands r0, r1 bx lr .align 2, 0 _080AE4AC: .4byte gUnk_081339D8 thumb_func_start sub_080AE4B0 sub_080AE4B0: @ 0x080AE4B0 adds r2, r0, #0 ldr r0, _080AE4C8 @ =gUnk_081339F8 movs r3, #0xf ands r1, r3 lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] ands r2, r3 asrs r0, r2 movs r1, #1 ands r0, r1 bx lr .align 2, 0 _080AE4C8: .4byte gUnk_081339F8 thumb_func_start sub_080AE4CC sub_080AE4CC: @ 0x080AE4CC push {r4, r5, r6, lr} adds r6, r1, #0 adds r5, r2, #0 adds r4, r3, #0 ldr r1, _080AE4FC @ =gUnk_03000BF0 ldrh r2, [r1, #6] subs r2, r6, r2 asrs r2, r2, #4 movs r3, #0x3f ands r2, r3 ldrh r1, [r1, #8] subs r1, r5, r1 asrs r1, r1, #4 ands r1, r3 lsls r1, r1, #6 orrs r2, r1 adds r0, r0, r2 ldrb r3, [r0] cmp r3, #0 bne _080AE500 cmp r4, #4 beq _080AE588 b _080AE516 .align 2, 0 _080AE4FC: .4byte gUnk_03000BF0 _080AE500: cmp r3, #0xf bhi _080AE53E ldr r2, _080AE51C @ =gUnk_08133A40 lsls r1, r4, #1 adds r0, r3, #1 lsrs r0, r0, #4 adds r1, r1, r0 adds r1, r1, r2 ldrb r0, [r1] cmp r0, #0 bne _080AE520 _080AE516: movs r0, #0 b _080AE58A .align 2, 0 _080AE51C: .4byte gUnk_08133A40 _080AE520: cmp r0, #1 beq _080AE588 movs r0, #8 ands r5, r0 cmp r5, #0 bne _080AE52E lsrs r3, r3, #2 _080AE52E: ands r6, r0 cmp r6, #0 bne _080AE536 lsrs r3, r3, #1 _080AE536: movs r0, #1 ands r3, r0 adds r0, r3, #0 b _080AE58A _080AE53E: cmp r3, #0xff bne _080AE558 ldr r1, _080AE550 @ =gUnk_08133A18 ldr r0, _080AE554 @ =gUnk_08133A5A adds r0, r4, r0 ldrb r0, [r0] lsls r0, r0, #2 adds r0, r0, r1 b _080AE572 .align 2, 0 _080AE550: .4byte gUnk_08133A18 _080AE554: .4byte gUnk_08133A5A _080AE558: cmp r3, #0x6f bhi _080AE588 ldr r2, _080AE580 @ =gUnk_08133A18 ldr r1, _080AE584 @ =gUnk_08133A67 lsls r0, r4, #1 adds r0, r0, r4 lsls r0, r0, #5 adds r0, r0, r3 subs r0, #0x10 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #2 adds r0, r0, r2 _080AE572: ldr r2, [r0] adds r0, r6, #0 adds r1, r5, #0 bl _call_via_r2 b _080AE58A .align 2, 0 _080AE580: .4byte gUnk_08133A18 _080AE584: .4byte gUnk_08133A67 _080AE588: movs r0, #1 _080AE58A: pop {r4, r5, r6, pc} thumb_func_start sub_080AE58C sub_080AE58C: @ 0x080AE58C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x18 str r0, [sp] str r1, [sp, #4] adds r4, r2, #0 adds r0, #0x38 ldrb r0, [r0] bl sub_0808094C ldr r1, _080AE624 @ =0x00002004 adds r5, r0, r1 ldr r2, [sp] ldr r2, [r2, #0x48] str r2, [sp, #8] ldr r0, [sp] movs r2, #0x2e ldrsh r1, [r0, r2] ldr r2, [sp, #8] movs r0, #0 ldrsb r0, [r2, r0] adds r1, r1, r0 str r1, [sp, #0xc] ldr r0, [sp] movs r2, #0x32 ldrsh r1, [r0, r2] ldr r2, [sp, #8] movs r0, #1 ldrsb r0, [r2, r0] adds r1, r1, r0 mov sl, r1 ldrb r0, [r2, #2] mov sb, r0 ldrb r1, [r2, #3] mov r8, r1 movs r0, #0xf ldr r2, [sp, #4] ands r0, r2 cmp r0, #0 beq _080AE65C cmp r2, #0xf bhi _080AE628 ldr r7, [sp, #0xc] add r7, sb adds r0, r5, #0 adds r1, r7, #0 mov r2, sl adds r3, r4, #0 bl sub_080AE4CC adds r6, r0, #0 lsls r6, r6, #1 mov r2, sl add r2, r8 adds r0, r5, #0 adds r1, r7, #0 adds r3, r4, #0 bl sub_080AE4CC orrs r6, r0 lsls r6, r6, #1 mov r0, sl mov r1, r8 subs r2, r0, r1 adds r0, r5, #0 adds r1, r7, #0 adds r3, r4, #0 bl sub_080AE4CC orrs r6, r0 lsls r6, r6, #6 b _080AE6D2 .align 2, 0 _080AE624: .4byte 0x00002004 _080AE628: ldr r2, [sp, #0xc] mov r0, sb subs r7, r2, r0 adds r0, r5, #0 adds r1, r7, #0 mov r2, sl adds r3, r4, #0 bl sub_080AE4CC adds r6, r0, #0 lsls r6, r6, #1 mov r2, sl add r2, r8 adds r0, r5, #0 adds r1, r7, #0 adds r3, r4, #0 bl sub_080AE4CC orrs r6, r0 lsls r6, r6, #1 mov r1, sl mov r0, r8 subs r2, r1, r0 adds r0, r5, #0 adds r1, r7, #0 b _080AE6C8 _080AE65C: ldr r7, [sp, #0xc] add r7, sb adds r0, r5, #0 adds r1, r7, #0 mov r2, sl adds r3, r4, #0 bl sub_080AE4CC adds r6, r0, #0 lsls r6, r6, #1 mov r1, sl add r1, r8 str r1, [sp, #0x10] adds r0, r5, #0 adds r1, r7, #0 ldr r2, [sp, #0x10] adds r3, r4, #0 bl sub_080AE4CC orrs r6, r0 lsls r6, r6, #1 mov r2, sl mov r0, r8 subs r2, r2, r0 mov r8, r2 adds r0, r5, #0 adds r1, r7, #0 adds r3, r4, #0 bl sub_080AE4CC orrs r6, r0 lsls r6, r6, #2 ldr r1, [sp, #0xc] mov r2, sb subs r7, r1, r2 adds r0, r5, #0 adds r1, r7, #0 mov r2, sl adds r3, r4, #0 bl sub_080AE4CC orrs r6, r0 lsls r6, r6, #1 adds r0, r5, #0 adds r1, r7, #0 ldr r2, [sp, #0x10] adds r3, r4, #0 bl sub_080AE4CC orrs r6, r0 lsls r6, r6, #1 adds r0, r5, #0 adds r1, r7, #0 mov r2, r8 _080AE6C8: adds r3, r4, #0 bl sub_080AE4CC orrs r6, r0 lsls r6, r6, #2 _080AE6D2: ldr r0, [sp, #8] ldrb r0, [r0, #4] mov sb, r0 ldr r1, [sp, #8] ldrb r1, [r1, #5] mov r8, r1 ldr r2, [sp, #4] subs r2, #8 str r2, [sp, #4] movs r0, #0xf ands r0, r2 cmp r0, #0 beq _080AE760 cmp r2, #0xf bhi _080AE72C mov r7, sl add r7, r8 adds r0, r5, #0 ldr r1, [sp, #0xc] adds r2, r7, #0 adds r3, r4, #0 bl sub_080AE4CC orrs r6, r0 lsls r6, r6, #1 ldr r1, [sp, #0xc] add r1, sb adds r0, r5, #0 adds r2, r7, #0 adds r3, r4, #0 bl sub_080AE4CC orrs r6, r0 lsls r6, r6, #1 ldr r0, [sp, #0xc] mov r2, sb subs r1, r0, r2 adds r0, r5, #0 adds r2, r7, #0 adds r3, r4, #0 bl sub_080AE4CC orrs r6, r0 lsls r6, r6, #5 b _080AE7D6 _080AE72C: mov r0, sl mov r1, r8 subs r7, r0, r1 lsls r6, r6, #4 adds r0, r5, #0 ldr r1, [sp, #0xc] adds r2, r7, #0 adds r3, r4, #0 bl sub_080AE4CC orrs r6, r0 lsls r6, r6, #1 ldr r1, [sp, #0xc] add r1, sb adds r0, r5, #0 adds r2, r7, #0 adds r3, r4, #0 bl sub_080AE4CC orrs r6, r0 lsls r6, r6, #1 ldr r2, [sp, #0xc] mov r0, sb subs r1, r2, r0 adds r0, r5, #0 b _080AE7CA _080AE760: mov r7, sl add r7, r8 adds r0, r5, #0 ldr r1, [sp, #0xc] adds r2, r7, #0 adds r3, r4, #0 bl sub_080AE4CC orrs r6, r0 lsls r6, r6, #1 ldr r1, [sp, #0xc] add r1, sb str r1, [sp, #0x14] adds r0, r5, #0 adds r2, r7, #0 adds r3, r4, #0 bl sub_080AE4CC orrs r6, r0 lsls r6, r6, #1 ldr r2, [sp, #0xc] mov r0, sb subs r2, r2, r0 mov sb, r2 adds r0, r5, #0 mov r1, sb adds r2, r7, #0 adds r3, r4, #0 bl sub_080AE4CC orrs r6, r0 lsls r6, r6, #2 mov r1, sl mov r2, r8 subs r7, r1, r2 adds r0, r5, #0 ldr r1, [sp, #0xc] adds r2, r7, #0 adds r3, r4, #0 bl sub_080AE4CC orrs r6, r0 lsls r6, r6, #1 adds r0, r5, #0 ldr r1, [sp, #0x14] adds r2, r7, #0 adds r3, r4, #0 bl sub_080AE4CC orrs r6, r0 lsls r6, r6, #1 adds r0, r5, #0 mov r1, sb _080AE7CA: adds r2, r7, #0 adds r3, r4, #0 bl sub_080AE4CC orrs r6, r0 lsls r6, r6, #1 _080AE7D6: ldr r0, [sp] strh r6, [r0, #0x2a] add sp, #0x18 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080AE7E8 sub_080AE7E8: @ 0x080AE7E8 push {r4, r5, lr} ldr r5, _080AE7FC @ =gUnk_08133F48 lsls r4, r2, #2 adds r4, r4, r5 lsls r2, r2, #3 ldr r4, [r4] bl _call_via_r4 pop {r4, r5, pc} .align 2, 0 _080AE7FC: .4byte gUnk_08133F48 thumb_func_start sub_080AE800 sub_080AE800: @ 0x080AE800 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 adds r5, r1, #0 adds r2, r3, #0 movs r6, #0 mov r8, r6 ldrh r1, [r4, #0x2a] movs r7, #0xe adds r0, r7, #0 ands r0, r1 cmp r0, #0 beq _080AE89C cmp r0, #2 bne _080AE85C movs r0, #0xe0 lsls r0, r0, #8 ands r0, r1 cmp r0, #0 bne _080AE8AE lsls r6, r5, #8 ldr r0, [r4, #0x2c] adds r0, r0, r6 str r0, [r4, #0x2c] adds r0, r4, #0 movs r1, #4 bl sub_080AE58C ldrh r1, [r4, #0x2a] adds r0, r7, #0 ands r0, r1 cmp r0, #0 bne _080AE8AE ldr r0, _080AE858 @ =gUnk_080C9160 adds r0, #0x80 movs r1, #0 ldrsh r0, [r0, r1] adds r1, r0, #0 muls r1, r5, r1 mov r8, r1 ldr r0, [r4, #0x30] subs r0, r0, r1 b _080AE8AC .align 2, 0 _080AE858: .4byte gUnk_080C9160 _080AE85C: cmp r0, #4 bne _080AE8AE movs r0, #0xe0 lsls r0, r0, #4 ands r0, r1 cmp r0, #0 bne _080AE8AE lsls r6, r5, #8 ldr r0, [r4, #0x2c] subs r0, r0, r6 str r0, [r4, #0x2c] adds r0, r4, #0 movs r1, #0x1c bl sub_080AE58C ldrh r1, [r4, #0x2a] adds r0, r7, #0 ands r0, r1 cmp r0, #0 bne _080AE8AE ldr r0, _080AE898 @ =gUnk_080C9160 adds r0, #0x80 movs r1, #0 ldrsh r0, [r0, r1] adds r1, r0, #0 muls r1, r5, r1 mov r8, r1 ldr r0, [r4, #0x30] subs r0, r0, r1 b _080AE8AC .align 2, 0 _080AE898: .4byte gUnk_080C9160 _080AE89C: ldr r0, _080AE8C4 @ =gUnk_080C9160 adds r0, #0x80 movs r1, #0 ldrsh r0, [r0, r1] adds r6, r0, #0 muls r6, r5, r6 ldr r0, [r4, #0x30] subs r0, r0, r6 _080AE8AC: str r0, [r4, #0x30] _080AE8AE: ldr r1, _080AE8C8 @ =0x00003333 adds r0, r6, r1 ldr r1, _080AE8CC @ =0x00006665 cmp r0, r1 bhi _080AE8D0 ldr r0, _080AE8C8 @ =0x00003333 add r0, r8 cmp r0, r1 bhi _080AE8D0 movs r0, #0 b _080AE8D2 .align 2, 0 _080AE8C4: .4byte gUnk_080C9160 _080AE8C8: .4byte 0x00003333 _080AE8CC: .4byte 0x00006665 _080AE8D0: movs r0, #1 _080AE8D2: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_080AE8D8 sub_080AE8D8: @ 0x080AE8D8 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r4, r0, #0 adds r5, r1, #0 mov r8, r2 mov sb, r3 movs r7, #0 movs r6, #0 ldrh r0, [r4, #0x2a] movs r1, #0xe ands r1, r0 mov ip, r1 movs r2, #0xe0 lsls r2, r2, #8 ands r2, r0 adds r3, r2, #0 cmp r1, #0 beq _080AE904 cmp r2, #0 bne _080AE99E _080AE904: orrs r1, r2 cmp r1, #0 bne _080AE928 ldr r1, _080AE924 @ =gUnk_080C9160 mov r0, r8 adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] adds r7, r0, #0 muls r7, r5, r7 ldr r0, [r4, #0x30] subs r0, r0, r7 str r0, [r4, #0x30] b _080AE98A .align 2, 0 _080AE924: .4byte gUnk_080C9160 _080AE928: mov r2, ip cmp r2, #2 bne _080AE942 lsls r7, r5, #8 ldr r0, [r4, #0x2c] adds r0, r0, r7 str r0, [r4, #0x2c] adds r0, r4, #0 movs r1, #4 mov r2, sb bl sub_080AE58C b _080AE95C _080AE942: movs r0, #0x80 lsls r0, r0, #7 cmp r3, r0 bne _080AE95C lsls r7, r5, #8 ldr r0, [r4, #0x30] subs r0, r0, r7 str r0, [r4, #0x30] adds r0, r4, #0 movs r1, #4 mov r2, sb bl sub_080AE58C _080AE95C: ldrh r2, [r4, #0x2a] movs r0, #0xe ands r0, r2 cmp r0, #0 bne _080AE97E ldr r1, _080AE9B4 @ =gUnk_080C9160 mov r0, r8 adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] adds r6, r0, #0 muls r6, r5, r6 ldr r0, [r4, #0x30] subs r0, r0, r6 str r0, [r4, #0x30] _080AE97E: movs r0, #0xe0 lsls r0, r0, #8 ands r0, r2 cmp r0, #0 bne _080AE99E ldr r1, _080AE9B4 @ =gUnk_080C9160 _080AE98A: mov r2, r8 lsls r0, r2, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] adds r6, r0, #0 muls r6, r5, r6 ldr r0, [r4, #0x2c] adds r0, r0, r6 str r0, [r4, #0x2c] _080AE99E: ldr r2, _080AE9B8 @ =0x00003333 adds r0, r7, r2 ldr r1, _080AE9BC @ =0x00006665 cmp r0, r1 bhi _080AE9C0 ldr r2, _080AE9B8 @ =0x00003333 adds r0, r6, r2 cmp r0, r1 bhi _080AE9C0 movs r0, #0 b _080AE9C2 .align 2, 0 _080AE9B4: .4byte gUnk_080C9160 _080AE9B8: .4byte 0x00003333 _080AE9BC: .4byte 0x00006665 _080AE9C0: movs r0, #1 _080AE9C2: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080AE9CC sub_080AE9CC: @ 0x080AE9CC push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r4, r0, #0 adds r5, r1, #0 adds r7, r2, #0 movs r6, #0 mov sb, r6 ldrh r2, [r4, #0x2a] movs r0, #0xe0 lsls r0, r0, #8 mov r8, r0 mov r1, r8 ands r1, r2 cmp r1, #0 beq _080AEA7C movs r0, #0x80 lsls r0, r0, #6 cmp r1, r0 bne _080AEA34 movs r0, #0xe0 ands r0, r2 cmp r0, #0 bne _080AEA90 lsls r6, r5, #8 ldr r0, [r4, #0x30] adds r0, r0, r6 str r0, [r4, #0x30] adds r0, r4, #0 movs r1, #0xc adds r2, r3, #0 bl sub_080AE58C ldrh r1, [r4, #0x2a] mov r0, r8 ands r0, r1 cmp r0, #0 bne _080AEA90 ldr r1, _080AEA30 @ =gUnk_080C9160 lsls r0, r7, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] adds r1, r0, #0 muls r1, r5, r1 mov sb, r1 ldr r0, [r4, #0x2c] add r0, sb b _080AEA8E .align 2, 0 _080AEA30: .4byte gUnk_080C9160 _080AEA34: movs r0, #0x80 lsls r0, r0, #7 cmp r1, r0 bne _080AEA90 movs r0, #0xe ands r0, r2 cmp r0, #0 bne _080AEA90 lsls r6, r5, #8 ldr r0, [r4, #0x30] subs r0, r0, r6 str r0, [r4, #0x30] adds r0, r4, #0 movs r1, #4 adds r2, r3, #0 bl sub_080AE58C ldrh r1, [r4, #0x2a] mov r0, r8 ands r0, r1 cmp r0, #0 bne _080AEA90 ldr r1, _080AEA78 @ =gUnk_080C9160 lsls r0, r7, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] adds r1, r0, #0 muls r1, r5, r1 mov sb, r1 ldr r0, [r4, #0x2c] add r0, sb b _080AEA8E .align 2, 0 _080AEA78: .4byte gUnk_080C9160 _080AEA7C: ldr r1, _080AEAA8 @ =gUnk_080C9160 lsls r0, r7, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] adds r6, r0, #0 muls r6, r5, r6 ldr r0, [r4, #0x2c] adds r0, r0, r6 _080AEA8E: str r0, [r4, #0x2c] _080AEA90: ldr r1, _080AEAAC @ =0x00003333 adds r0, r6, r1 ldr r1, _080AEAB0 @ =0x00006665 cmp r0, r1 bhi _080AEAB4 ldr r0, _080AEAAC @ =0x00003333 add r0, sb cmp r0, r1 bhi _080AEAB4 movs r0, #0 b _080AEAB6 .align 2, 0 _080AEAA8: .4byte gUnk_080C9160 _080AEAAC: .4byte 0x00003333 _080AEAB0: .4byte 0x00006665 _080AEAB4: movs r0, #1 _080AEAB6: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080AEAC0 sub_080AEAC0: @ 0x080AEAC0 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r4, r0, #0 adds r5, r1, #0 mov r8, r2 mov sb, r3 movs r7, #0 movs r6, #0 ldrh r0, [r4, #0x2a] movs r1, #0xe0 ands r1, r0 mov ip, r1 movs r2, #0xe0 lsls r2, r2, #8 ands r2, r0 adds r3, r2, #0 cmp r1, #0 beq _080AEAEC cmp r2, #0 bne _080AEB86 _080AEAEC: orrs r1, r2 cmp r1, #0 bne _080AEB10 ldr r1, _080AEB0C @ =gUnk_080C9160 mov r0, r8 adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] adds r7, r0, #0 muls r7, r5, r7 ldr r0, [r4, #0x30] subs r0, r0, r7 str r0, [r4, #0x30] b _080AEB72 .align 2, 0 _080AEB0C: .4byte gUnk_080C9160 _080AEB10: mov r2, ip cmp r2, #0x20 bne _080AEB2A lsls r7, r5, #8 ldr r0, [r4, #0x2c] adds r0, r0, r7 str r0, [r4, #0x2c] adds r0, r4, #0 movs r1, #0xc mov r2, sb bl sub_080AE58C b _080AEB44 _080AEB2A: movs r0, #0x80 lsls r0, r0, #6 cmp r3, r0 bne _080AEB44 lsls r7, r5, #8 ldr r0, [r4, #0x30] adds r0, r0, r7 str r0, [r4, #0x30] adds r0, r4, #0 movs r1, #0xc mov r2, sb bl sub_080AE58C _080AEB44: ldrh r2, [r4, #0x2a] movs r0, #0xe0 ands r0, r2 cmp r0, #0 bne _080AEB66 ldr r1, _080AEB9C @ =gUnk_080C9160 mov r0, r8 adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] adds r6, r0, #0 muls r6, r5, r6 ldr r0, [r4, #0x30] subs r0, r0, r6 str r0, [r4, #0x30] _080AEB66: movs r0, #0xe0 lsls r0, r0, #8 ands r0, r2 cmp r0, #0 bne _080AEB86 ldr r1, _080AEB9C @ =gUnk_080C9160 _080AEB72: mov r2, r8 lsls r0, r2, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] adds r6, r0, #0 muls r6, r5, r6 ldr r0, [r4, #0x2c] adds r0, r0, r6 str r0, [r4, #0x2c] _080AEB86: ldr r2, _080AEBA0 @ =0x00003333 adds r0, r7, r2 ldr r1, _080AEBA4 @ =0x00006665 cmp r0, r1 bhi _080AEBA8 ldr r2, _080AEBA0 @ =0x00003333 adds r0, r6, r2 cmp r0, r1 bhi _080AEBA8 movs r0, #0 b _080AEBAA .align 2, 0 _080AEB9C: .4byte gUnk_080C9160 _080AEBA0: .4byte 0x00003333 _080AEBA4: .4byte 0x00006665 _080AEBA8: movs r0, #1 _080AEBAA: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080AEBB4 sub_080AEBB4: @ 0x080AEBB4 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r4, r0, #0 adds r5, r1, #0 adds r7, r2, #0 adds r2, r3, #0 movs r6, #0 mov sb, r6 ldrh r1, [r4, #0x2a] movs r0, #0xe0 mov r8, r0 ands r0, r1 cmp r0, #0 beq _080AEC64 cmp r0, #0x20 bne _080AEC1C movs r0, #0xe0 lsls r0, r0, #8 ands r0, r1 cmp r0, #0 bne _080AEC7C lsls r6, r5, #8 ldr r0, [r4, #0x2c] adds r0, r0, r6 str r0, [r4, #0x2c] adds r0, r4, #0 movs r1, #0xc bl sub_080AE58C ldrh r1, [r4, #0x2a] mov r0, r8 ands r0, r1 cmp r0, #0 bne _080AEC7C ldr r1, _080AEC18 @ =gUnk_080C9160 adds r0, r7, #0 adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] adds r1, r0, #0 muls r1, r5, r1 mov sb, r1 ldr r0, [r4, #0x30] subs r0, r0, r1 b _080AEC7A .align 2, 0 _080AEC18: .4byte gUnk_080C9160 _080AEC1C: cmp r0, #0x40 bne _080AEC7C movs r0, #0xe0 lsls r0, r0, #4 ands r0, r1 cmp r0, #0 bne _080AEC7C lsls r6, r5, #8 ldr r0, [r4, #0x2c] subs r0, r0, r6 str r0, [r4, #0x2c] adds r0, r4, #0 movs r1, #0x14 bl sub_080AE58C ldrh r1, [r4, #0x2a] mov r0, r8 ands r0, r1 cmp r0, #0 bne _080AEC7C ldr r1, _080AEC60 @ =gUnk_080C9160 adds r0, r7, #0 adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] adds r1, r0, #0 muls r1, r5, r1 mov sb, r1 ldr r0, [r4, #0x30] subs r0, r0, r1 b _080AEC7A .align 2, 0 _080AEC60: .4byte gUnk_080C9160 _080AEC64: ldr r1, _080AEC94 @ =gUnk_080C9160 adds r0, r7, #0 adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] adds r6, r0, #0 muls r6, r5, r6 ldr r0, [r4, #0x30] subs r0, r0, r6 _080AEC7A: str r0, [r4, #0x30] _080AEC7C: ldr r1, _080AEC98 @ =0x00003333 adds r0, r6, r1 ldr r1, _080AEC9C @ =0x00006665 cmp r0, r1 bhi _080AECA0 ldr r0, _080AEC98 @ =0x00003333 add r0, sb cmp r0, r1 bhi _080AECA0 movs r0, #0 b _080AECA2 .align 2, 0 _080AEC94: .4byte gUnk_080C9160 _080AEC98: .4byte 0x00003333 _080AEC9C: .4byte 0x00006665 _080AECA0: movs r0, #1 _080AECA2: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080AECAC sub_080AECAC: @ 0x080AECAC push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r4, r0, #0 adds r5, r1, #0 mov r8, r2 mov sb, r3 movs r7, #0 movs r6, #0 ldrh r0, [r4, #0x2a] movs r1, #0xe0 ands r1, r0 mov ip, r1 movs r2, #0xe0 lsls r2, r2, #4 ands r2, r0 adds r3, r2, #0 cmp r1, #0 beq _080AECD8 cmp r2, #0 bne _080AED72 _080AECD8: orrs r1, r2 cmp r1, #0 bne _080AECFC ldr r1, _080AECF8 @ =gUnk_080C9160 mov r0, r8 adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] adds r7, r0, #0 muls r7, r5, r7 ldr r0, [r4, #0x30] subs r0, r0, r7 str r0, [r4, #0x30] b _080AED5E .align 2, 0 _080AECF8: .4byte gUnk_080C9160 _080AECFC: mov r2, ip cmp r2, #0x40 bne _080AED16 lsls r7, r5, #8 ldr r0, [r4, #0x2c] subs r0, r0, r7 str r0, [r4, #0x2c] adds r0, r4, #0 movs r1, #0x14 mov r2, sb bl sub_080AE58C b _080AED30 _080AED16: movs r0, #0x80 lsls r0, r0, #2 cmp r3, r0 bne _080AED30 lsls r7, r5, #8 ldr r0, [r4, #0x30] adds r0, r0, r7 str r0, [r4, #0x30] adds r0, r4, #0 movs r1, #0x14 mov r2, sb bl sub_080AE58C _080AED30: ldrh r2, [r4, #0x2a] movs r0, #0xe0 ands r0, r2 cmp r0, #0 bne _080AED52 ldr r1, _080AED88 @ =gUnk_080C9160 mov r0, r8 adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] adds r6, r0, #0 muls r6, r5, r6 ldr r0, [r4, #0x30] subs r0, r0, r6 str r0, [r4, #0x30] _080AED52: movs r0, #0xe0 lsls r0, r0, #4 ands r0, r2 cmp r0, #0 bne _080AED72 ldr r1, _080AED88 @ =gUnk_080C9160 _080AED5E: mov r2, r8 lsls r0, r2, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] adds r6, r0, #0 muls r6, r5, r6 ldr r0, [r4, #0x2c] adds r0, r0, r6 str r0, [r4, #0x2c] _080AED72: ldr r2, _080AED8C @ =0x00003333 adds r0, r7, r2 ldr r1, _080AED90 @ =0x00006665 cmp r0, r1 bhi _080AED94 ldr r2, _080AED8C @ =0x00003333 adds r0, r6, r2 cmp r0, r1 bhi _080AED94 movs r0, #0 b _080AED96 .align 2, 0 _080AED88: .4byte gUnk_080C9160 _080AED8C: .4byte 0x00003333 _080AED90: .4byte 0x00006665 _080AED94: movs r0, #1 _080AED96: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080AEDA0 sub_080AEDA0: @ 0x080AEDA0 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r4, r0, #0 adds r5, r1, #0 adds r7, r2, #0 movs r6, #0 mov sb, r6 ldrh r2, [r4, #0x2a] movs r0, #0xe0 lsls r0, r0, #4 mov r8, r0 mov r1, r8 ands r1, r2 cmp r1, #0 beq _080AEE50 movs r0, #0x80 lsls r0, r0, #2 cmp r1, r0 bne _080AEE08 movs r0, #0xe0 ands r0, r2 cmp r0, #0 bne _080AEE64 lsls r6, r5, #8 ldr r0, [r4, #0x30] adds r0, r0, r6 str r0, [r4, #0x30] adds r0, r4, #0 movs r1, #0x1c adds r2, r3, #0 bl sub_080AE58C ldrh r1, [r4, #0x2a] mov r0, r8 ands r0, r1 cmp r0, #0 bne _080AEE64 ldr r1, _080AEE04 @ =gUnk_080C9160 lsls r0, r7, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] adds r1, r0, #0 muls r1, r5, r1 mov sb, r1 ldr r0, [r4, #0x2c] add r0, sb b _080AEE62 .align 2, 0 _080AEE04: .4byte gUnk_080C9160 _080AEE08: movs r0, #0x80 lsls r0, r0, #3 cmp r1, r0 bne _080AEE64 movs r0, #0xe ands r0, r2 cmp r0, #0 bne _080AEE64 lsls r6, r5, #8 ldr r0, [r4, #0x30] subs r0, r0, r6 str r0, [r4, #0x30] adds r0, r4, #0 movs r1, #0x1c adds r2, r3, #0 bl sub_080AE58C ldrh r1, [r4, #0x2a] mov r0, r8 ands r0, r1 cmp r0, #0 bne _080AEE64 ldr r1, _080AEE4C @ =gUnk_080C9160 lsls r0, r7, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] adds r1, r0, #0 muls r1, r5, r1 mov sb, r1 ldr r0, [r4, #0x2c] add r0, sb b _080AEE62 .align 2, 0 _080AEE4C: .4byte gUnk_080C9160 _080AEE50: ldr r1, _080AEE7C @ =gUnk_080C9160 lsls r0, r7, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] adds r6, r0, #0 muls r6, r5, r6 ldr r0, [r4, #0x2c] adds r0, r0, r6 _080AEE62: str r0, [r4, #0x2c] _080AEE64: ldr r1, _080AEE80 @ =0x00003333 adds r0, r6, r1 ldr r1, _080AEE84 @ =0x00006665 cmp r0, r1 bhi _080AEE88 ldr r0, _080AEE80 @ =0x00003333 add r0, sb cmp r0, r1 bhi _080AEE88 movs r0, #0 b _080AEE8A .align 2, 0 _080AEE7C: .4byte gUnk_080C9160 _080AEE80: .4byte 0x00003333 _080AEE84: .4byte 0x00006665 _080AEE88: movs r0, #1 _080AEE8A: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080AEE94 sub_080AEE94: @ 0x080AEE94 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r4, r0, #0 adds r5, r1, #0 mov r8, r2 mov sb, r3 movs r7, #0 movs r6, #0 ldrh r0, [r4, #0x2a] movs r1, #0xe ands r1, r0 mov ip, r1 movs r2, #0xe0 lsls r2, r2, #4 ands r2, r0 adds r3, r2, #0 cmp r1, #0 beq _080AEEC0 cmp r2, #0 bne _080AEF5A _080AEEC0: orrs r1, r2 cmp r1, #0 bne _080AEEE4 ldr r1, _080AEEE0 @ =gUnk_080C9160 mov r0, r8 adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] adds r7, r0, #0 muls r7, r5, r7 ldr r0, [r4, #0x30] subs r0, r0, r7 str r0, [r4, #0x30] b _080AEF46 .align 2, 0 _080AEEE0: .4byte gUnk_080C9160 _080AEEE4: mov r2, ip cmp r2, #4 bne _080AEEFE lsls r7, r5, #8 ldr r0, [r4, #0x2c] subs r0, r0, r7 str r0, [r4, #0x2c] adds r0, r4, #0 movs r1, #0x1c mov r2, sb bl sub_080AE58C b _080AEF18 _080AEEFE: movs r0, #0x80 lsls r0, r0, #3 cmp r3, r0 bne _080AEF18 lsls r7, r5, #8 ldr r0, [r4, #0x30] subs r0, r0, r7 str r0, [r4, #0x30] adds r0, r4, #0 movs r1, #0x1c mov r2, sb bl sub_080AE58C _080AEF18: ldrh r2, [r4, #0x2a] movs r0, #0xe ands r0, r2 cmp r0, #0 bne _080AEF3A ldr r1, _080AEF70 @ =gUnk_080C9160 mov r0, r8 adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] adds r6, r0, #0 muls r6, r5, r6 ldr r0, [r4, #0x30] subs r0, r0, r6 str r0, [r4, #0x30] _080AEF3A: movs r0, #0xe0 lsls r0, r0, #4 ands r0, r2 cmp r0, #0 bne _080AEF5A ldr r1, _080AEF70 @ =gUnk_080C9160 _080AEF46: mov r2, r8 lsls r0, r2, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] adds r6, r0, #0 muls r6, r5, r6 ldr r0, [r4, #0x2c] adds r0, r0, r6 str r0, [r4, #0x2c] _080AEF5A: ldr r2, _080AEF74 @ =0x00003333 adds r0, r7, r2 ldr r1, _080AEF78 @ =0x00006665 cmp r0, r1 bhi _080AEF7C ldr r2, _080AEF74 @ =0x00003333 adds r0, r6, r2 cmp r0, r1 bhi _080AEF7C movs r0, #0 b _080AEF7E .align 2, 0 _080AEF70: .4byte gUnk_080C9160 _080AEF74: .4byte 0x00003333 _080AEF78: .4byte 0x00006665 _080AEF7C: movs r0, #1 _080AEF7E: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080AEF88 sub_080AEF88: @ 0x080AEF88 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x15] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080AEFB0 ldrb r1, [r4, #0x15] adds r0, r4, #0 movs r2, #0 bl sub_080AE58C movs r0, #0x24 ldrsh r1, [r4, r0] ldrb r2, [r4, #0x15] adds r0, r4, #0 movs r3, #0 bl sub_080AE7E8 b _080AEFB2 _080AEFB0: movs r0, #0 _080AEFB2: pop {r4, pc} thumb_func_start sub_080AEFB4 sub_080AEFB4: @ 0x080AEFB4 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x15] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080AEFDC ldrb r1, [r4, #0x15] adds r0, r4, #0 movs r2, #1 bl sub_080AE58C movs r0, #0x24 ldrsh r1, [r4, r0] ldrb r2, [r4, #0x15] adds r0, r4, #0 movs r3, #1 bl sub_080AE7E8 b _080AEFDE _080AEFDC: movs r0, #0 _080AEFDE: pop {r4, pc} thumb_func_start sub_080AEFE0 sub_080AEFE0: @ 0x080AEFE0 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x15] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080AF008 ldrb r1, [r4, #0x15] adds r0, r4, #0 movs r2, #2 bl sub_080AE58C movs r0, #0x24 ldrsh r1, [r4, r0] ldrb r2, [r4, #0x15] adds r0, r4, #0 movs r3, #2 bl sub_080AE7E8 b _080AF00A _080AF008: movs r0, #0 _080AF00A: pop {r4, pc} thumb_func_start sub_080AF00C sub_080AF00C: @ 0x080AF00C push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x15] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080AF034 ldrb r1, [r4, #0x15] adds r0, r4, #0 movs r2, #0xa bl sub_080AE58C movs r0, #0x24 ldrsh r1, [r4, r0] ldrb r2, [r4, #0x15] adds r0, r4, #0 movs r3, #0xa bl sub_080AE7E8 b _080AF036 _080AF034: movs r0, #0 _080AF036: pop {r4, pc} thumb_func_start sub_080AF038 sub_080AF038: @ 0x080AF038 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x15] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080AF060 ldrb r1, [r4, #0x15] adds r0, r4, #0 movs r2, #0xc bl sub_080AE58C movs r0, #0x24 ldrsh r1, [r4, r0] ldrb r2, [r4, #0x15] adds r0, r4, #0 movs r3, #0xc bl sub_080AE7E8 b _080AF062 _080AF060: movs r0, #0 _080AF062: pop {r4, pc} thumb_func_start sub_080AF064 sub_080AF064: @ 0x080AF064 push {r4, r5, r6, lr} adds r5, r0, #0 adds r4, r1, #0 adds r6, r2, #0 movs r0, #0x80 ands r0, r4 cmp r0, #0 bne _080AF08A adds r0, r5, #0 movs r2, #0 bl sub_080AE58C adds r0, r5, #0 adds r1, r6, #0 adds r2, r4, #0 movs r3, #0 bl sub_080AE7E8 b _080AF08C _080AF08A: movs r0, #0 _080AF08C: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080AF090 sub_080AF090: @ 0x080AF090 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x15] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080AF0C2 adds r0, r4, #0 bl sub_080AF0C8 cmp r0, #0 bne _080AF0C2 ldrb r1, [r4, #0x15] adds r0, r4, #0 movs r2, #3 bl sub_080AE58C movs r0, #0x24 ldrsh r1, [r4, r0] ldrb r2, [r4, #0x15] adds r0, r4, #0 movs r3, #3 bl sub_080AE7E8 b _080AF0C4 _080AF0C2: movs r0, #0 _080AF0C4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080AF0C8 sub_080AF0C8: @ 0x080AF0C8 push {r4, lr} adds r4, r0, #0 bl sub_080002A0 cmp r0, #0x88 beq _080AF10A cmp r0, #0x88 bhi _080AF0DE cmp r0, #0x87 beq _080AF0E8 b _080AF130 _080AF0DE: cmp r0, #0x89 beq _080AF11A cmp r0, #0x8a beq _080AF0F8 b _080AF130 _080AF0E8: ldrb r0, [r4, #0x15] adds r0, #7 movs r1, #0x1f ands r0, r1 cmp r0, #0xf bgt _080AF130 movs r0, #0xe b _080AF12A _080AF0F8: ldrb r0, [r4, #0x15] subs r0, #1 movs r1, #0x1f ands r0, r1 cmp r0, #0xf bgt _080AF130 movs r0, #0xe0 lsls r0, r0, #8 b _080AF12A _080AF10A: ldrb r0, [r4, #0x15] subs r0, #9 movs r1, #0x1f ands r0, r1 cmp r0, #0xf bgt _080AF130 movs r0, #0xe0 b _080AF12A _080AF11A: ldrb r0, [r4, #0x15] subs r0, #0x11 movs r1, #0x1f ands r0, r1 cmp r0, #0xf bgt _080AF130 movs r0, #0xe0 lsls r0, r0, #4 _080AF12A: strh r0, [r4, #0x2a] movs r0, #1 b _080AF132 _080AF130: movs r0, #0 _080AF132: pop {r4, pc} thumb_func_start sub_080AF134 sub_080AF134: @ 0x080AF134 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x15] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080AF15C ldrb r1, [r4, #0x15] adds r0, r4, #0 movs r2, #4 bl sub_080AE58C movs r0, #0x24 ldrsh r1, [r4, r0] ldrb r2, [r4, #0x15] adds r0, r4, #0 movs r3, #4 bl sub_080AE7E8 b _080AF15E _080AF15C: movs r0, #0 _080AF15E: pop {r4, pc} thumb_func_start sub_080AF160 sub_080AF160: @ 0x080AF160 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x15] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080AF188 ldrb r1, [r4, #0x15] adds r0, r4, #0 movs r2, #5 bl sub_080AE58C movs r0, #0x24 ldrsh r1, [r4, r0] ldrb r2, [r4, #0x15] adds r0, r4, #0 movs r3, #5 bl sub_080AE7E8 b _080AF18A _080AF188: movs r0, #0 _080AF18A: pop {r4, pc} thumb_func_start sub_080AF18C sub_080AF18C: @ 0x080AF18C push {r4, r5, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x42 ldrb r0, [r1] subs r0, #1 strb r0, [r1] adds r5, r4, #0 adds r5, #0x3e ldrb r1, [r5] adds r0, r4, #0 movs r2, #2 bl sub_080AE58C adds r0, r4, #0 adds r0, #0x46 ldrh r1, [r0] ldrb r2, [r5] adds r0, r4, #0 movs r3, #2 bl sub_080AE7E8 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080AF1BC sub_080AF1BC: @ 0x080AF1BC push {r4, r5, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x42 ldrb r0, [r1] subs r0, #1 strb r0, [r1] adds r5, r4, #0 adds r5, #0x3e ldrb r1, [r5] adds r0, r4, #0 movs r2, #1 bl sub_080AE58C adds r0, r4, #0 adds r0, #0x46 ldrh r1, [r0] ldrb r2, [r5] adds r0, r4, #0 movs r3, #1 bl sub_080AE7E8 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080AF1EC sub_080AF1EC: @ 0x080AF1EC push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x15] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080AF214 ldrb r1, [r4, #0x15] adds r0, r4, #0 movs r2, #6 bl sub_080AE58C movs r0, #0x24 ldrsh r1, [r4, r0] ldrb r2, [r4, #0x15] adds r0, r4, #0 movs r3, #6 bl sub_080AE7E8 b _080AF216 _080AF214: movs r0, #0 _080AF216: pop {r4, pc} thumb_func_start sub_080AF218 sub_080AF218: @ 0x080AF218 push {r4, r5, r6, lr} adds r5, r0, #0 adds r4, r1, #0 adds r6, r2, #0 movs r0, #0x80 ands r0, r4 cmp r0, #0 bne _080AF23E adds r0, r5, #0 movs r2, #6 bl sub_080AE58C adds r0, r5, #0 adds r1, r6, #0 adds r2, r4, #0 movs r3, #6 bl sub_080AE7E8 b _080AF240 _080AF23E: movs r0, #0 _080AF240: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080AF244 sub_080AF244: @ 0x080AF244 push {lr} movs r3, #2 bl sub_080AE7E8 pop {pc} .align 2, 0 thumb_func_start sub_080AF250 sub_080AF250: @ 0x080AF250 push {r4, lr} adds r4, r0, #0 bl sub_08052E8C adds r1, r0, #0 ldr r0, _080AF26C @ =gUnk_02033A90 ldr r2, _080AF270 @ =0x0000085C adds r0, r0, r2 str r1, [r0] cmp r4, #0 beq _080AF278 ldr r0, _080AF274 @ =gUnk_08135190 b _080AF27A .align 2, 0 _080AF26C: .4byte gUnk_02033A90 _080AF270: .4byte 0x0000085C _080AF274: .4byte gUnk_08135190 _080AF278: ldr r0, _080AF280 @ =gUnk_08135168 _080AF27A: str r0, [r1, #0x18] pop {r4, pc} .align 2, 0 _080AF280: .4byte gUnk_08135168 thumb_func_start sub_080AF284 sub_080AF284: @ 0x080AF284 push {lr} ldr r0, _080AF2AC @ =gUnk_03000BF0 ldrh r1, [r0, #0x20] subs r1, #0x50 movs r0, #0x78 movs r2, #0x78 movs r3, #0x50 bl sub_0800293E cmp r0, #0 beq _080AF2BC bl sub_08052E8C ldr r1, _080AF2B0 @ =gUnk_02033A90 ldr r2, _080AF2B4 @ =0x0000085C adds r1, r1, r2 str r0, [r1] ldr r1, _080AF2B8 @ =gUnk_08135048 b _080AF2D4 .align 2, 0 _080AF2AC: .4byte gUnk_03000BF0 _080AF2B0: .4byte gUnk_02033A90 _080AF2B4: .4byte 0x0000085C _080AF2B8: .4byte gUnk_08135048 _080AF2BC: movs r0, #6 bl sub_0807CA84 cmp r0, #0 beq _080AF2D6 bl sub_08052E8C ldr r1, _080AF2D8 @ =gUnk_02033A90 ldr r2, _080AF2DC @ =0x0000085C adds r1, r1, r2 str r0, [r1] ldr r1, _080AF2E0 @ =gUnk_08134FBC _080AF2D4: str r1, [r0, #0x18] _080AF2D6: pop {pc} .align 2, 0 _080AF2D8: .4byte gUnk_02033A90 _080AF2DC: .4byte 0x0000085C _080AF2E0: .4byte gUnk_08134FBC thumb_func_start sub_080AF2E4 sub_080AF2E4: @ 0x080AF2E4 push {lr} movs r0, #6 bl sub_0807CA84 cmp r0, #0 beq _080AF300 bl sub_08052E8C ldr r1, _080AF304 @ =gUnk_02033A90 ldr r2, _080AF308 @ =0x0000085C adds r1, r1, r2 str r0, [r1] ldr r1, _080AF30C @ =gUnk_0813A76C str r1, [r0, #0x18] _080AF300: pop {pc} .align 2, 0 _080AF304: .4byte gUnk_02033A90 _080AF308: .4byte 0x0000085C _080AF30C: .4byte gUnk_0813A76C