.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start nullsub_17 nullsub_17: @ 8035A78 bx lr thumb_func_end nullsub_17 thumb_func_start sub_8035A7C sub_8035A7C: @ 8035A7C ldr r1, _08035A8C @ =gUnknown_3004FE0 ldr r0, _08035A90 @ =gUnknown_2023BC4 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _08035A94 @ =sub_8035A98 str r1, [r0] bx lr .align 2, 0 _08035A8C: .4byte gUnknown_3004FE0 _08035A90: .4byte gUnknown_2023BC4 _08035A94: .4byte sub_8035A98 thumb_func_end sub_8035A7C thumb_func_start sub_8035A98 sub_8035A98: @ 8035A98 push {lr} ldr r2, _08035ACC @ =gUnknown_2023BC8 ldr r1, _08035AD0 @ =gUnknown_825E45C ldr r0, _08035AD4 @ =gUnknown_2023BC4 ldrb r3, [r0] lsls r0, r3, 2 adds r0, r1 ldr r1, [r2] ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08035AE4 ldr r0, _08035AD8 @ =gUnknown_2022BC4 lsls r1, r3, 9 adds r1, r0 ldrb r0, [r1] cmp r0, 0x38 bhi _08035AE0 ldr r0, _08035ADC @ =gUnknown_8250A34 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldr r0, [r1] bl _call_via_r0 b _08035AE4 .align 2, 0 _08035ACC: .4byte gUnknown_2023BC8 _08035AD0: .4byte gUnknown_825E45C _08035AD4: .4byte gUnknown_2023BC4 _08035AD8: .4byte gUnknown_2022BC4 _08035ADC: .4byte gUnknown_8250A34 _08035AE0: bl sub_8036530 _08035AE4: pop {r0} bx r0 thumb_func_end sub_8035A98 thumb_func_start sub_8035AE8 sub_8035AE8: @ 8035AE8 push {lr} ldr r2, _08035B10 @ =gUnknown_202063C ldr r1, _08035B14 @ =gUnknown_2023D44 ldr r0, _08035B18 @ =gUnknown_2023BC4 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _08035B1C @ =nullsub_8 cmp r1, r0 bne _08035B0C bl sub_8036530 _08035B0C: pop {r0} bx r0 .align 2, 0 _08035B10: .4byte gUnknown_202063C _08035B14: .4byte gUnknown_2023D44 _08035B18: .4byte gUnknown_2023BC4 _08035B1C: .4byte nullsub_8 thumb_func_end sub_8035AE8 thumb_func_start sub_8035B20 sub_8035B20: @ 8035B20 push {lr} ldr r2, _08035B48 @ =gUnknown_202063C ldr r1, _08035B4C @ =gUnknown_2023D44 ldr r0, _08035B50 @ =gUnknown_2023BC4 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _08035B54 @ =nullsub_8 cmp r1, r0 bne _08035B44 bl sub_8036530 _08035B44: pop {r0} bx r0 .align 2, 0 _08035B48: .4byte gUnknown_202063C _08035B4C: .4byte gUnknown_2023D44 _08035B50: .4byte gUnknown_2023BC4 _08035B54: .4byte nullsub_8 thumb_func_end sub_8035B20 thumb_func_start sub_8035B58 sub_8035B58: @ 8035B58 push {r4-r6,lr} ldr r4, _08035BD0 @ =gUnknown_202063C ldr r6, _08035BD4 @ =gUnknown_2023D44 ldr r5, _08035BD8 @ =gUnknown_2023BC4 ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r2, r0, 2 adds r0, r4, 0 adds r0, 0x1C adds r0, r2, r0 ldr r1, [r0] ldr r0, _08035BDC @ =nullsub_8 cmp r1, r0 bne _08035BC8 adds r0, r2, r4 ldrh r0, [r0, 0x6] bl sub_803477C ldrb r0, [r5] adds r0, r6 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r0, [r1, 0x38] ldr r2, _08035BE0 @ =0x000003ff ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, _08035BE4 @ =0xfffffc00 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl sub_80077D8 ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl sub_8007280 bl sub_8036530 _08035BC8: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08035BD0: .4byte gUnknown_202063C _08035BD4: .4byte gUnknown_2023D44 _08035BD8: .4byte gUnknown_2023BC4 _08035BDC: .4byte nullsub_8 _08035BE0: .4byte 0x000003ff _08035BE4: .4byte 0xfffffc00 thumb_func_end sub_8035B58 thumb_func_start sub_8035BE8 sub_8035BE8: @ 8035BE8 push {r4,lr} ldr r4, _08035C28 @ =gUnknown_2024018 ldr r1, [r4] ldr r3, _08035C2C @ =gUnknown_2023BC4 ldrb r0, [r3] ldr r2, [r1, 0x4] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x9] subs r0, 0x1 strb r0, [r1, 0x9] lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _08035C20 ldr r0, [r4] ldrb r1, [r3] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strb r1, [r0, 0x9] bl sub_8036530 _08035C20: pop {r4} pop {r0} bx r0 .align 2, 0 _08035C28: .4byte gUnknown_2024018 _08035C2C: .4byte gUnknown_2023BC4 thumb_func_end sub_8035BE8 thumb_func_start sub_8035C30 sub_8035C30: @ 8035C30 push {r4-r7,lr} movs r6, 0 bl sub_8075290 lsls r0, 24 cmp r0, 0 beq _08035C54 bl sub_8075290 lsls r0, 24 cmp r0, 0 beq _08035C88 ldr r0, _08035C74 @ =gUnknown_2022B4C ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _08035C88 _08035C54: ldr r2, _08035C78 @ =gUnknown_202063C ldr r1, _08035C7C @ =gUnknown_3004FF0 ldr r0, _08035C80 @ =gUnknown_2023BC4 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _08035C84 @ =nullsub_8 cmp r1, r0 bne _08035CBE b _08035CBC .align 2, 0 _08035C74: .4byte gUnknown_2022B4C _08035C78: .4byte gUnknown_202063C _08035C7C: .4byte gUnknown_3004FF0 _08035C80: .4byte gUnknown_2023BC4 _08035C84: .4byte nullsub_8 _08035C88: ldr r2, _08035D84 @ =gUnknown_202063C ldr r5, _08035D88 @ =gUnknown_3004FF0 ldr r0, _08035D8C @ =gUnknown_2023BC4 ldrb r3, [r0] adds r0, r3, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r4, [r0] ldr r0, _08035D90 @ =nullsub_8 cmp r4, r0 bne _08035CBE movs r0, 0x2 eors r3, r0 adds r0, r3, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r0, [r0] cmp r0, r4 bne _08035CBE _08035CBC: movs r6, 0x1 _08035CBE: bl sub_80721F0 lsls r0, 24 cmp r0, 0 beq _08035CCA movs r6, 0 _08035CCA: cmp r6, 0 bne _08035CD0 b _08035DD2 _08035CD0: ldr r0, _08035D94 @ =gUnknown_2024018 mov r12, r0 ldr r0, [r0] ldr r7, _08035D8C @ =gUnknown_2023BC4 ldrb r2, [r7] ldr r3, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r4, r0, r3 ldrb r1, [r4, 0x1] movs r5, 0x1 adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _08035DD2 movs r6, 0x2 adds r1, r6, 0 eors r1, r2 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x1] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _08035DD2 ldrb r1, [r4] movs r3, 0x7F adds r0, r3, 0 ands r0, r1 strb r0, [r4] mov r1, r12 ldr r0, [r1] ldrb r2, [r7] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x1] movs r4, 0x2 negs r4, r4 adds r0, r4, 0 ands r0, r2 strb r0, [r1, 0x1] mov r0, r12 ldr r2, [r0] ldrb r0, [r7] adds r1, r6, 0 eors r1, r0 ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] ands r3, r1 strb r3, [r0] mov r1, r12 ldr r2, [r1] ldrb r0, [r7] adds r1, r6, 0 eors r1, r0 ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x1] ands r4, r1 strb r4, [r0, 0x1] ldr r4, _08035D98 @ =0x000027f9 adds r0, r4, 0 bl sub_800874C adds r0, r4, 0 bl sub_8008A30 ldr r0, _08035D9C @ =gUnknown_2022B4C ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _08035DA4 ldr r0, _08035DA0 @ =gMPlay_BGM bl m4aMPlayContinue b _08035DB0 .align 2, 0 _08035D84: .4byte gUnknown_202063C _08035D88: .4byte gUnknown_3004FF0 _08035D8C: .4byte gUnknown_2023BC4 _08035D90: .4byte nullsub_8 _08035D94: .4byte gUnknown_2024018 _08035D98: .4byte 0x000027f9 _08035D9C: .4byte gUnknown_2022B4C _08035DA0: .4byte gMPlay_BGM _08035DA4: ldr r0, _08035DD8 @ =gMPlay_BGM ldr r1, _08035DDC @ =0x0000ffff movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl _08035DB0: ldr r0, _08035DE0 @ =gUnknown_2024018 ldr r0, [r0] ldr r3, _08035DE4 @ =gUnknown_2023BC4 ldrb r1, [r3] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x3 strb r1, [r0, 0x9] ldr r1, _08035DE8 @ =gUnknown_3004FE0 ldrb r0, [r3] lsls r0, 2 adds r0, r1 ldr r1, _08035DEC @ =sub_8035BE8 str r1, [r0] _08035DD2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08035DD8: .4byte gMPlay_BGM _08035DDC: .4byte 0x0000ffff _08035DE0: .4byte gUnknown_2024018 _08035DE4: .4byte gUnknown_2023BC4 _08035DE8: .4byte gUnknown_3004FE0 _08035DEC: .4byte sub_8035BE8 thumb_func_end sub_8035C30 thumb_func_start sub_8035DF0 sub_8035DF0: @ 8035DF0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r4, _08035FC0 @ =gUnknown_2024018 ldr r0, [r4] ldr r1, _08035FC4 @ =gUnknown_2023BC4 mov r9, r1 ldrb r2, [r1] ldr r1, [r0, 0x4] lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r5, 0x88 adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _08035E2C ldr r0, _08035FC8 @ =gUnknown_2023BCE adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08035FCC @ =gUnknown_202402C adds r1, r0 adds r0, r2, 0 bl sub_80F1720 _08035E2C: ldr r1, [r4] mov r2, r9 ldrb r0, [r2] movs r7, 0x2 adds r2, r7, 0 eors r2, r0 ldr r1, [r1, 0x4] lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _08035E60 ldr r0, _08035FC8 @ =gUnknown_2023BCE adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08035FCC @ =gUnknown_202402C adds r1, r0 adds r0, r2, 0 bl sub_80F1720 _08035E60: ldr r0, [r4] mov r1, r9 ldrb r2, [r1] ldr r3, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r3 ldrb r1, [r0] movs r4, 0x8 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08035E7E b _08035FB4 _08035E7E: adds r1, r7, 0 eors r1, r2 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r1, [r0] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08035E96 b _08035FB4 _08035E96: bl sub_8075290 lsls r0, 24 cmp r0, 0 beq _08035F28 ldr r0, _08035FD0 @ =gUnknown_2022B4C ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 bne _08035F28 ldr r1, _08035FD4 @ =gUnknown_3004FFC mov r2, r9 ldrb r0, [r2] eors r0, r7 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08035FD8 @ =gUnknown_202063C adds r0, r1 bl sub_8007280 ldr r4, _08035FDC @ =gUnknown_3004FF0 mov r1, r9 ldrb r0, [r1] adds r1, r7, 0 eors r1, r0 adds r0, r1, r4 ldrb r0, [r0] ldr r2, _08035FC8 @ =gUnknown_2023BCE mov r8, r2 lsls r1, 1 add r1, r8 ldrh r1, [r1] movs r6, 0x64 muls r1, r6 ldr r5, _08035FCC @ =gUnknown_202402C adds r1, r5 movs r2, 0 bl sub_8049D98 mov r1, r9 ldrb r0, [r1] eors r0, r7 bl sub_804BD94 mov r2, r9 ldrb r0, [r2] eors r0, r7 adds r0, r4 ldrb r0, [r0] bl sub_80481D4 mov r1, r9 ldrb r0, [r1] adds r4, r7, 0 eors r4, r0 lsls r0, r4, 1 add r0, r8 ldrh r0, [r0] muls r0, r6 adds r0, r5 movs r1, 0xB bl sub_803FBE8 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_8035708 _08035F28: ldr r1, _08035FD4 @ =gUnknown_3004FFC ldr r5, _08035FC4 @ =gUnknown_2023BC4 ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08035FD8 @ =gUnknown_202063C adds r0, r1 bl sub_8007280 ldr r4, _08035FDC @ =gUnknown_3004FF0 ldrb r1, [r5] adds r0, r1, r4 ldrb r0, [r0] ldr r2, _08035FC8 @ =gUnknown_2023BCE mov r9, r2 lsls r1, 1 add r1, r9 ldrh r1, [r1] movs r2, 0x64 mov r8, r2 mov r2, r8 muls r2, r1 adds r1, r2, 0 ldr r6, _08035FCC @ =gUnknown_202402C adds r1, r6 movs r2, 0 bl sub_8049D98 ldrb r0, [r5] bl sub_804BD94 ldrb r0, [r5] adds r0, r4 ldrb r0, [r0] bl sub_80481D4 ldrb r4, [r5] lsls r0, r4, 1 add r0, r9 ldrh r0, [r0] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r6 movs r1, 0xB bl sub_803FBE8 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_8035708 ldr r0, _08035FC0 @ =gUnknown_2024018 ldr r0, [r0] ldr r2, [r0, 0x8] ldrb r1, [r2, 0x9] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2, 0x9] ldr r1, _08035FE0 @ =gUnknown_3004FE0 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _08035FE4 @ =sub_8035C30 str r1, [r0] _08035FB4: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08035FC0: .4byte gUnknown_2024018 _08035FC4: .4byte gUnknown_2023BC4 _08035FC8: .4byte gUnknown_2023BCE _08035FCC: .4byte gUnknown_202402C _08035FD0: .4byte gUnknown_2022B4C _08035FD4: .4byte gUnknown_3004FFC _08035FD8: .4byte gUnknown_202063C _08035FDC: .4byte gUnknown_3004FF0 _08035FE0: .4byte gUnknown_3004FE0 _08035FE4: .4byte sub_8035C30 thumb_func_end sub_8035DF0 thumb_func_start sub_8035FE8 sub_8035FE8: @ 8035FE8 push {r4-r7,lr} ldr r2, _08036044 @ =gUnknown_202063C ldr r0, _08036048 @ =gUnknown_2023D44 ldr r7, _0803604C @ =gUnknown_2023BC4 ldrb r3, [r7] adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x3F ldrb r0, [r0] lsls r0, 27 lsrs r2, r0, 31 cmp r2, 0x1 bne _08036094 movs r4, 0x24 ldrsh r0, [r1, r4] cmp r0, 0 bne _08036094 ldr r6, _08036050 @ =gUnknown_2024018 ldr r0, [r6] ldr r1, [r0, 0x4] lsls r4, r3, 1 adds r0, r4, r3 lsls r0, 2 adds r1, r0, r1 ldrb r5, [r1] movs r0, 0x80 ands r0, r5 cmp r0, 0 bne _0803605C ldr r0, _08036054 @ =gUnknown_2023BCE adds r0, r4, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08036058 @ =gUnknown_202402C adds r1, r0 adds r0, r3, 0 bl sub_80F1720 b _08036094 .align 2, 0 _08036044: .4byte gUnknown_202063C _08036048: .4byte gUnknown_2023D44 _0803604C: .4byte gUnknown_2023BC4 _08036050: .4byte gUnknown_2024018 _08036054: .4byte gUnknown_2023BCE _08036058: .4byte gUnknown_202402C _0803605C: ldrb r0, [r1, 0x1] ands r2, r0 cmp r2, 0 beq _08036094 movs r0, 0x7F ands r0, r5 strb r0, [r1] ldr r0, [r6] ldrb r2, [r7] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldr r4, _0803609C @ =0x000027f9 adds r0, r4, 0 bl sub_800874C adds r0, r4, 0 bl sub_8008A30 bl sub_8036530 _08036094: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803609C: .4byte 0x000027f9 thumb_func_end sub_8035FE8 thumb_func_start sub_80360A0 sub_80360A0: @ 80360A0 push {r4-r6,lr} ldr r6, _080360E0 @ =gUnknown_2023BC4 ldrb r0, [r6] ldr r5, _080360E4 @ =gUnknown_3004FF0 adds r1, r0, r5 ldrb r1, [r1] movs r2, 0 movs r3, 0 bl sub_8049FD8 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrb r0, [r6] adds r0, r5 ldrb r0, [r0] bl sub_80481D4 lsls r4, 16 asrs r1, r4, 16 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080360E8 ldrb r0, [r6] adds r0, r5 ldrb r0, [r0] movs r2, 0 bl sub_8048440 b _08036124 .align 2, 0 _080360E0: .4byte gUnknown_2023BC4 _080360E4: .4byte gUnknown_3004FF0 _080360E8: movs r0, 0x1 bl sub_80EB2E0 lsls r0, 24 cmp r0, 0 bne _08036120 ldr r0, _08036114 @ =gUnknown_2022B4C ldr r0, [r0] movs r1, 0x10 ands r0, r1 cmp r0, 0 beq _08036120 movs r0, 0x1 bl sub_80EB2F4 ldr r0, _08036118 @ =gUnknown_3004FE0 ldrb r1, [r6] lsls r1, 2 adds r1, r0 ldr r0, _0803611C @ =sub_80E8570 str r0, [r1] b _08036124 .align 2, 0 _08036114: .4byte gUnknown_2022B4C _08036118: .4byte gUnknown_3004FE0 _0803611C: .4byte sub_80E8570 _08036120: bl sub_8036530 _08036124: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80360A0 thumb_func_start sub_803612C sub_803612C: @ 803612C push {lr} ldr r2, _08036160 @ =gUnknown_202063C ldr r0, _08036164 @ =gUnknown_2023D44 ldr r1, _08036168 @ =gUnknown_2023BC4 ldrb r3, [r1] adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r0, [r0] lsls r0, 31 cmp r0, 0 bne _0803615A ldr r0, _0803616C @ =gUnknown_3004FF0 adds r0, r3, r0 ldrb r0, [r0] bl sub_8048188 bl sub_8036530 _0803615A: pop {r0} bx r0 .align 2, 0 _08036160: .4byte gUnknown_202063C _08036164: .4byte gUnknown_2023D44 _08036168: .4byte gUnknown_2023BC4 _0803616C: .4byte gUnknown_3004FF0 thumb_func_end sub_803612C thumb_func_start sub_8036170 sub_8036170: @ 8036170 push {r4-r6,lr} ldr r0, _080361D0 @ =gUnknown_2024018 ldr r0, [r0] ldr r6, _080361D4 @ =gUnknown_2023BC4 ldrb r2, [r6] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080361CA ldr r5, _080361D8 @ =gUnknown_2023D44 adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _080361DC @ =gUnknown_202063C adds r0, r4 bl sub_80077D8 ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl sub_8007280 ldrb r0, [r6] bl sub_8035794 ldr r1, _080361E0 @ =gUnknown_3004FF0 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8048188 bl sub_8036530 _080361CA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080361D0: .4byte gUnknown_2024018 _080361D4: .4byte gUnknown_2023BC4 _080361D8: .4byte gUnknown_2023D44 _080361DC: .4byte gUnknown_202063C _080361E0: .4byte gUnknown_3004FF0 thumb_func_end sub_8036170 thumb_func_start sub_80361E4 sub_80361E4: @ 80361E4 push {lr} movs r0, 0 bl sub_8002E64 lsls r0, 16 cmp r0, 0 bne _080361F6 bl sub_8036530 _080361F6: pop {r0} bx r0 thumb_func_end sub_80361E4 thumb_func_start sub_80361FC sub_80361FC: @ 80361FC push {r4,lr} ldr r1, _08036238 @ =gUnknown_2023D44 ldr r0, _0803623C @ =gUnknown_2023BC4 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] ldr r2, _08036240 @ =gUnknown_202063C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, r0, r2 movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x20 bne _08036248 movs r3, 0 movs r0, 0 strh r0, [r4, 0x30] adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] subs r0, 0x5 ands r0, r1 strb r0, [r2] ldr r0, _08036244 @ =gUnknown_2024005 strb r3, [r0] bl sub_8036530 b _08036272 .align 2, 0 _08036238: .4byte gUnknown_2023D44 _0803623C: .4byte gUnknown_2023BC4 _08036240: .4byte gUnknown_202063C _08036244: .4byte gUnknown_2024005 _08036248: ldrh r0, [r4, 0x30] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _0803626C adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _0803626C: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] _08036272: pop {r4} pop {r0} bx r0 thumb_func_end sub_80361FC thumb_func_start sub_8036278 sub_8036278: @ 8036278 push {r4,lr} ldr r2, _080362CC @ =gUnknown_202063C ldr r0, _080362D0 @ =gUnknown_3004FF0 ldr r4, _080362D4 @ =gUnknown_2023BC4 ldrb r3, [r4] adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _080362D8 @ =nullsub_8 cmp r1, r0 bne _080362C4 ldr r0, _080362DC @ =gUnknown_2024018 ldr r0, [r0] ldr r1, [r0] lsls r0, r3, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080362B8 adds r0, r3, 0 adds r1, r3, 0 adds r2, r3, 0 movs r3, 0x6 bl sub_80341D8 _080362B8: ldr r0, _080362E0 @ =gUnknown_3004FE0 ldrb r1, [r4] lsls r1, 2 adds r1, r0 ldr r0, _080362E4 @ =sub_80362E8 str r0, [r1] _080362C4: pop {r4} pop {r0} bx r0 .align 2, 0 _080362CC: .4byte gUnknown_202063C _080362D0: .4byte gUnknown_3004FF0 _080362D4: .4byte gUnknown_2023BC4 _080362D8: .4byte nullsub_8 _080362DC: .4byte gUnknown_2024018 _080362E0: .4byte gUnknown_3004FE0 _080362E4: .4byte sub_80362E8 thumb_func_end sub_8036278 thumb_func_start sub_80362E8 sub_80362E8: @ 80362E8 push {lr} ldr r0, _08036324 @ =gUnknown_2024018 ldr r2, [r0] ldr r0, _08036328 @ =gUnknown_2023BC4 ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08036320 bl sub_80721F0 lsls r0, 24 cmp r0, 0 bne _08036320 ldr r0, _0803632C @ =gMPlay_BGM ldr r1, _08036330 @ =0x0000ffff movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl bl sub_8036530 _08036320: pop {r0} bx r0 .align 2, 0 _08036324: .4byte gUnknown_2024018 _08036328: .4byte gUnknown_2023BC4 _0803632C: .4byte gMPlay_BGM _08036330: .4byte 0x0000ffff thumb_func_end sub_80362E8 thumb_func_start sub_8036334 sub_8036334: @ 8036334 push {r4,r5,lr} ldr r3, _080363E0 @ =gUnknown_2024018 ldr r0, [r3] ldr r5, _080363E4 @ =gUnknown_2023BC4 ldrb r1, [r5] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r2, r0, r2 ldrb r1, [r2, 0x1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080363D8 ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] ldr r0, [r3] ldrb r2, [r5] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldr r4, _080363E8 @ =0x000027f9 adds r0, r4, 0 bl sub_800874C adds r0, r4, 0 bl sub_8008A30 ldr r1, _080363EC @ =gUnknown_2023D44 ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080363F0 @ =gUnknown_202063C adds r0, r1 movs r1, 0 bl sub_800838C ldr r4, _080363F4 @ =gUnknown_3004FF0 ldrb r1, [r5] adds r0, r1, r4 ldrb r0, [r0] ldr r2, _080363F8 @ =gUnknown_2023BCE lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _080363FC @ =gUnknown_202402C adds r1, r2 movs r2, 0 bl sub_8049D98 ldrb r0, [r5] bl sub_804BD94 ldrb r0, [r5] adds r0, r4 ldrb r0, [r0] bl sub_80481D4 ldrb r0, [r5] bl sub_8034BB4 ldr r1, _08036400 @ =gUnknown_3004FE0 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _08036404 @ =sub_8036278 str r1, [r0] _080363D8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080363E0: .4byte gUnknown_2024018 _080363E4: .4byte gUnknown_2023BC4 _080363E8: .4byte 0x000027f9 _080363EC: .4byte gUnknown_2023D44 _080363F0: .4byte gUnknown_202063C _080363F4: .4byte gUnknown_3004FF0 _080363F8: .4byte gUnknown_2023BCE _080363FC: .4byte gUnknown_202402C _08036400: .4byte gUnknown_3004FE0 _08036404: .4byte sub_8036278 thumb_func_end sub_8036334 thumb_func_start sub_8036408 sub_8036408: @ 8036408 push {r4-r6,lr} ldr r6, _080364AC @ =gUnknown_2024018 ldr r0, [r6] ldr r5, _080364B0 @ =gUnknown_2023BC4 ldrb r2, [r5] ldr r1, [r0, 0x4] lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x88 ands r0, r1 cmp r0, 0 bne _0803643A ldr r0, _080364B4 @ =gUnknown_2023BCE adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _080364B8 @ =gUnknown_202402C adds r1, r0 adds r0, r2, 0 bl sub_80F1720 _0803643A: ldr r4, _080364BC @ =gUnknown_202063C ldr r0, _080364C0 @ =gUnknown_3004FFC ldrb r2, [r5] adds r0, r2, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r3, r0, 2 adds r0, r4, 0 adds r0, 0x1C adds r0, r3, r0 ldr r1, [r0] ldr r0, _080364C4 @ =nullsub_8 cmp r1, r0 bne _080364A4 ldr r0, [r6] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _080364A4 adds r0, r3, r4 bl sub_8007280 ldrb r4, [r5] ldr r1, _080364B4 @ =gUnknown_2023BCE lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080364B8 @ =gUnknown_202402C adds r0, r1 movs r1, 0xB bl sub_803FBE8 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_8035708 ldr r1, _080364C8 @ =gUnknown_3004FE0 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _080364CC @ =sub_8036334 str r1, [r0] _080364A4: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080364AC: .4byte gUnknown_2024018 _080364B0: .4byte gUnknown_2023BC4 _080364B4: .4byte gUnknown_2023BCE _080364B8: .4byte gUnknown_202402C _080364BC: .4byte gUnknown_202063C _080364C0: .4byte gUnknown_3004FFC _080364C4: .4byte nullsub_8 _080364C8: .4byte gUnknown_3004FE0 _080364CC: .4byte sub_8036334 thumb_func_end sub_8036408 thumb_func_start sub_80364D0 sub_80364D0: @ 80364D0 push {lr} ldr r0, _080364F8 @ =gUnknown_2024018 ldr r2, [r0] ldr r0, _080364FC @ =gUnknown_2023BC4 ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _080364F2 bl sub_8036530 _080364F2: pop {r0} bx r0 .align 2, 0 _080364F8: .4byte gUnknown_2024018 _080364FC: .4byte gUnknown_2023BC4 thumb_func_end sub_80364D0 thumb_func_start sub_8036500 sub_8036500: @ 8036500 push {lr} ldr r0, _08036528 @ =gUnknown_2024018 ldr r2, [r0] ldr r0, _0803652C @ =gUnknown_2023BC4 ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08036522 bl sub_8036530 _08036522: pop {r0} bx r0 .align 2, 0 _08036528: .4byte gUnknown_2024018 _0803652C: .4byte gUnknown_2023BC4 thumb_func_end sub_8036500 thumb_func_start sub_8036530 sub_8036530: @ 8036530 ldr r1, _08036554 @ =gUnknown_3004FE0 ldr r2, _08036558 @ =gUnknown_2023BC4 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _0803655C @ =sub_8035A98 str r1, [r0] ldr r3, _08036560 @ =gUnknown_2023BC8 ldr r1, _08036564 @ =gUnknown_825E45C ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r0, [r3] bics r0, r1 str r0, [r3] bx lr .align 2, 0 _08036554: .4byte gUnknown_3004FE0 _08036558: .4byte gUnknown_2023BC4 _0803655C: .4byte sub_8035A98 _08036560: .4byte gUnknown_2023BC8 _08036564: .4byte gUnknown_825E45C thumb_func_end sub_8036530 thumb_func_start sub_8036568 sub_8036568: @ 8036568 push {r4-r6,lr} sub sp, 0x100 movs r6, 0 ldr r1, _08036594 @ =gUnknown_2022BC4 ldr r0, _08036598 @ =gUnknown_2023BC4 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _080365A0 ldr r0, _0803659C @ =gUnknown_2023BCE lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] mov r1, sp bl sub_80365DC adds r6, r0, 0 b _080365C2 .align 2, 0 _08036594: .4byte gUnknown_2022BC4 _08036598: .4byte gUnknown_2023BC4 _0803659C: .4byte gUnknown_2023BCE _080365A0: ldrb r4, [r1] movs r5, 0 _080365A4: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _080365BA lsls r0, r5, 24 lsrs r0, 24 mov r2, sp adds r1, r2, r6 bl sub_80365DC adds r6, r0 _080365BA: lsrs r4, 1 adds r5, 0x1 cmp r5, 0x5 ble _080365A4 _080365C2: lsls r1, r6, 16 lsrs r1, 16 movs r0, 0x1 mov r2, sp bl sub_800E708 bl sub_8036530 add sp, 0x100 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8036568 thumb_func_start sub_80365DC sub_80365DC: @ 80365DC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x90 adds r7, r1, 0 lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 ldr r2, _08036610 @ =gUnknown_2022BC4 ldr r3, _08036614 @ =gUnknown_2023BC4 ldrb r0, [r3] lsls r0, 9 adds r1, r2, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0x3B bls _08036606 bl _08036D72 _08036606: lsls r0, 2 ldr r1, _08036618 @ =_0803661C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08036610: .4byte gUnknown_2022BC4 _08036614: .4byte gUnknown_2023BC4 _08036618: .4byte _0803661C .align 2, 0 _0803661C: .4byte _0803670C .4byte _08036930 .4byte _08036940 .4byte _08036950 .4byte _080369B8 .4byte _080369B8 .4byte _080369B8 .4byte _080369B8 .4byte _080369D4 .4byte _08036A10 .4byte _08036A10 .4byte _08036A10 .4byte _08036A10 .4byte _08036D72 .4byte _08036D72 .4byte _08036D72 .4byte _08036D72 .4byte _08036A2C .4byte _08036A3C .4byte _08036A6C .4byte _08036A7C .4byte _08036A8C .4byte _08036A9C .4byte _08036AAC .4byte _08036ABC .4byte _08036ACC .4byte _08036ADC .4byte _08036AEC .4byte _08036AFC .4byte _08036B0C .4byte _08036B1C .4byte _08036B2C .4byte _08036B7C .4byte _08036B8C .4byte _08036B9C .4byte _08036BAC .4byte _08036BBC .4byte _08036BCC .4byte _08036BDC .4byte _08036BEC .4byte _08036BFC .4byte _08036C30 .4byte _08036C40 .4byte _08036C50 .4byte _08036C60 .4byte _08036C70 .4byte _08036C80 .4byte _08036C90 .4byte _08036CA0 .4byte _08036CC0 .4byte _08036CD0 .4byte _08036CE0 .4byte _08036CF0 .4byte _08036D00 .4byte _08036D10 .4byte _08036D20 .4byte _08036D30 .4byte _08036D40 .4byte _08036D50 .4byte _08036D60 _0803670C: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08036920 @ =gUnknown_202402C adds r4, r0 adds r0, r4, 0 movs r1, 0xB bl sub_803FBE8 mov r1, sp strh r0, [r1] adds r0, r4, 0 movs r1, 0xC bl sub_803FBE8 mov r1, sp strh r0, [r1, 0x2E] movs r6, 0 add r0, sp, 0x24 mov r9, r0 movs r1, 0x3B add r1, sp mov r10, r1 mov r2, sp adds r2, 0x2B str r2, [sp, 0x80] mov r0, sp adds r0, 0x2A str r0, [sp, 0x7C] mov r1, sp adds r1, 0x68 str r1, [sp, 0x8C] adds r2, 0x5 str r2, [sp, 0x84] adds r0, 0x12 str r0, [sp, 0x88] mov r8, r4 add r4, sp, 0xC _08036758: adds r1, r6, 0 adds r1, 0xD mov r0, r8 bl sub_803FBE8 strh r0, [r4] adds r1, r6, 0 adds r1, 0x11 mov r0, r8 bl sub_803FBE8 mov r2, r9 adds r1, r2, r6 strb r0, [r1] adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _08036758 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08036920 @ =gUnknown_202402C adds r4, r0 adds r0, r4, 0 movs r1, 0x15 bl sub_803FBE8 mov r1, r10 strb r0, [r1] adds r0, r4, 0 movs r1, 0x20 bl sub_803FBE8 ldr r2, [sp, 0x80] strb r0, [r2] adds r0, r4, 0 movs r1, 0x19 bl sub_803FBE8 str r0, [sp, 0x44] adds r0, r4, 0 movs r1, 0x27 bl sub_803FBE8 mov r3, sp movs r5, 0x1F ands r0, r5 ldrb r2, [r3, 0x14] movs r1, 0x20 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x14] adds r0, r4, 0 movs r1, 0x28 bl sub_803FBE8 mov r3, sp movs r6, 0x1F ands r0, r6 lsls r0, 5 ldrh r2, [r3, 0x14] ldr r1, _08036924 @ =0xfffffc1f ands r1, r2 orrs r1, r0 strh r1, [r3, 0x14] adds r0, r4, 0 movs r1, 0x29 bl sub_803FBE8 mov r3, sp ands r0, r5 lsls r0, 2 ldrb r2, [r3, 0x15] movs r1, 0x7D negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x15] adds r0, r4, 0 movs r1, 0x2A bl sub_803FBE8 movs r1, 0x1F ands r1, r0 lsls r1, 15 ldr r0, [sp, 0x14] ldr r2, _08036928 @ =0xfff07fff ands r0, r2 orrs r0, r1 str r0, [sp, 0x14] adds r0, r4, 0 movs r1, 0x2B bl sub_803FBE8 mov r3, sp ands r0, r6 lsls r0, 4 ldrh r2, [r3, 0x16] ldr r1, _0803692C @ =0xfffffe0f ands r1, r2 orrs r1, r0 strh r1, [r3, 0x16] adds r0, r4, 0 movs r1, 0x2C bl sub_803FBE8 mov r3, sp ands r0, r5 lsls r0, 1 ldrb r2, [r3, 0x17] movs r1, 0x3F negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0 bl sub_803FBE8 str r0, [sp, 0x48] adds r0, r4, 0 movs r1, 0x37 bl sub_803FBE8 str r0, [sp, 0x4C] adds r0, r4, 0 movs r1, 0x38 bl sub_803FBE8 ldr r1, [sp, 0x7C] strb r0, [r1] adds r0, r4, 0 movs r1, 0x39 bl sub_803FBE8 mov r1, sp strh r0, [r1, 0x28] adds r0, r4, 0 movs r1, 0x3A bl sub_803FBE8 mov r1, sp strh r0, [r1, 0x2C] adds r0, r4, 0 movs r1, 0x3B bl sub_803FBE8 mov r1, sp strh r0, [r1, 0x2] adds r0, r4, 0 movs r1, 0x3C bl sub_803FBE8 mov r1, sp strh r0, [r1, 0x4] adds r0, r4, 0 movs r1, 0x3D bl sub_803FBE8 mov r1, sp strh r0, [r1, 0x6] adds r0, r4, 0 movs r1, 0x3E bl sub_803FBE8 mov r1, sp strh r0, [r1, 0x8] adds r0, r4, 0 movs r1, 0x3F bl sub_803FBE8 mov r1, sp strh r0, [r1, 0xA] adds r0, r4, 0 movs r1, 0x2D bl sub_803FBE8 mov r3, sp movs r1, 0x1 ands r0, r1 lsls r0, 6 ldrb r2, [r3, 0x17] movs r1, 0x41 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0x2E bl sub_803FBE8 mov r3, sp lsls r0, 7 ldrb r2, [r3, 0x17] movs r1, 0x7F ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0x1 bl sub_803FBE8 str r0, [sp, 0x54] adds r0, r4, 0 movs r1, 0x2 ldr r2, [sp, 0x8C] bl sub_803FBE8 ldr r0, [sp, 0x84] ldr r1, [sp, 0x8C] bl sub_8008CF4 adds r0, r4, 0 movs r1, 0x7 ldr r2, [sp, 0x88] bl sub_803FBE8 mov r2, sp movs r6, 0 _08036910: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0x57 bls _08036910 b _08036D72 .align 2, 0 _08036920: .4byte gUnknown_202402C _08036924: .4byte 0xfffffc1f _08036928: .4byte 0xfff07fff _0803692C: .4byte 0xfffffe0f _08036930: movs r0, 0x64 muls r0, r5 ldr r1, _0803693C @ =gUnknown_202402C adds r0, r1 movs r1, 0xB b _08036CAA .align 2, 0 _0803693C: .4byte gUnknown_202402C _08036940: movs r0, 0x64 muls r0, r5 ldr r1, _0803694C @ =gUnknown_202402C adds r0, r1 movs r1, 0xC b _08036CAA .align 2, 0 _0803694C: .4byte gUnknown_202402C _08036950: movs r6, 0 add r2, sp, 0x58 mov r9, r2 add r0, sp, 0x60 mov r10, r0 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _080369B4 @ =gUnknown_202402C adds r4, r1, r0 mov r8, r9 _08036966: adds r1, r6, 0 adds r1, 0xD adds r0, r4, 0 bl sub_803FBE8 mov r1, r8 strh r0, [r1] adds r1, r6, 0 adds r1, 0x11 adds r0, r4, 0 bl sub_803FBE8 mov r2, r10 adds r1, r2, r6 strb r0, [r1] movs r0, 0x2 add r8, r0 adds r6, 0x1 cmp r6, 0x3 ble _08036966 movs r0, 0x64 muls r0, r5 ldr r1, _080369B4 @ =gUnknown_202402C adds r0, r1 movs r1, 0x15 bl sub_803FBE8 mov r1, r9 strb r0, [r1, 0xC] mov r2, r9 movs r6, 0 _080369A4: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0xF bls _080369A4 b _08036D72 .align 2, 0 _080369B4: .4byte gUnknown_202402C _080369B8: movs r0, 0x64 muls r0, r5 ldr r1, _080369D0 @ =gUnknown_202402C adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x9 b _08036CAA .align 2, 0 _080369D0: .4byte gUnknown_202402C _080369D4: movs r6, 0 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r2, _08036A0C @ =gUnknown_202402C mov r8, r2 _080369E0: adds r1, r6, 0 adds r1, 0x11 mov r2, r8 adds r0, r4, r2 bl sub_803FBE8 adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 cmp r6, 0x3 ble _080369E0 movs r0, 0x64 muls r0, r5 ldr r1, _08036A0C @ =gUnknown_202402C adds r0, r1 movs r1, 0x15 bl sub_803FBE8 adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 b _08036D72 .align 2, 0 _08036A0C: .4byte gUnknown_202402C _08036A10: movs r0, 0x64 muls r0, r5 ldr r1, _08036A28 @ =gUnknown_202402C adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x8 b _08036D6A .align 2, 0 _08036A28: .4byte gUnknown_202402C _08036A2C: movs r0, 0x64 muls r0, r5 ldr r1, _08036A38 @ =gUnknown_202402C adds r0, r1 movs r1, 0x1 b _08036A46 .align 2, 0 _08036A38: .4byte gUnknown_202402C _08036A3C: movs r0, 0x64 muls r0, r5 ldr r1, _08036A68 @ =gUnknown_202402C adds r0, r1 movs r1, 0x19 _08036A46: bl sub_803FBE8 adds r1, r0, 0 strb r1, [r7] movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r0, 8 strb r0, [r7, 0x1] movs r0, 0xFF lsls r0, 16 ands r0, r1 lsrs r0, 16 strb r0, [r7, 0x2] movs r6, 0x3 b _08036D72 .align 2, 0 _08036A68: .4byte gUnknown_202402C _08036A6C: movs r0, 0x64 muls r0, r5 ldr r1, _08036A78 @ =gUnknown_202402C adds r0, r1 movs r1, 0x1A b _08036D6A .align 2, 0 _08036A78: .4byte gUnknown_202402C _08036A7C: movs r0, 0x64 muls r0, r5 ldr r1, _08036A88 @ =gUnknown_202402C adds r0, r1 movs r1, 0x1B b _08036D6A .align 2, 0 _08036A88: .4byte gUnknown_202402C _08036A8C: movs r0, 0x64 muls r0, r5 ldr r1, _08036A98 @ =gUnknown_202402C adds r0, r1 movs r1, 0x1C b _08036D6A .align 2, 0 _08036A98: .4byte gUnknown_202402C _08036A9C: movs r0, 0x64 muls r0, r5 ldr r1, _08036AA8 @ =gUnknown_202402C adds r0, r1 movs r1, 0x1D b _08036D6A .align 2, 0 _08036AA8: .4byte gUnknown_202402C _08036AAC: movs r0, 0x64 muls r0, r5 ldr r1, _08036AB8 @ =gUnknown_202402C adds r0, r1 movs r1, 0x1E b _08036D6A .align 2, 0 _08036AB8: .4byte gUnknown_202402C _08036ABC: movs r0, 0x64 muls r0, r5 ldr r1, _08036AC8 @ =gUnknown_202402C adds r0, r1 movs r1, 0x1F b _08036D6A .align 2, 0 _08036AC8: .4byte gUnknown_202402C _08036ACC: movs r0, 0x64 muls r0, r5 ldr r1, _08036AD8 @ =gUnknown_202402C adds r0, r1 movs r1, 0x20 b _08036D6A .align 2, 0 _08036AD8: .4byte gUnknown_202402C _08036ADC: movs r0, 0x64 muls r0, r5 ldr r1, _08036AE8 @ =gUnknown_202402C adds r0, r1 movs r1, 0x22 b _08036D6A .align 2, 0 _08036AE8: .4byte gUnknown_202402C _08036AEC: movs r0, 0x64 muls r0, r5 ldr r1, _08036AF8 @ =gUnknown_202402C adds r0, r1 movs r1, 0x23 b _08036D6A .align 2, 0 _08036AF8: .4byte gUnknown_202402C _08036AFC: movs r0, 0x64 muls r0, r5 ldr r1, _08036B08 @ =gUnknown_202402C adds r0, r1 movs r1, 0x24 b _08036D6A .align 2, 0 _08036B08: .4byte gUnknown_202402C _08036B0C: movs r0, 0x64 muls r0, r5 ldr r1, _08036B18 @ =gUnknown_202402C adds r0, r1 movs r1, 0x25 b _08036D6A .align 2, 0 _08036B18: .4byte gUnknown_202402C _08036B1C: movs r0, 0x64 muls r0, r5 ldr r1, _08036B28 @ =gUnknown_202402C adds r0, r1 movs r1, 0x26 b _08036D6A .align 2, 0 _08036B28: .4byte gUnknown_202402C _08036B2C: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08036B78 @ =gUnknown_202402C adds r4, r0 adds r0, r4, 0 movs r1, 0x27 bl sub_803FBE8 strb r0, [r7] adds r0, r4, 0 movs r1, 0x28 bl sub_803FBE8 strb r0, [r7, 0x1] adds r0, r4, 0 movs r1, 0x29 bl sub_803FBE8 strb r0, [r7, 0x2] adds r0, r4, 0 movs r1, 0x2A bl sub_803FBE8 strb r0, [r7, 0x3] adds r0, r4, 0 movs r1, 0x2B bl sub_803FBE8 strb r0, [r7, 0x4] adds r0, r4, 0 movs r1, 0x2C bl sub_803FBE8 strb r0, [r7, 0x5] movs r6, 0x6 b _08036D72 .align 2, 0 _08036B78: .4byte gUnknown_202402C _08036B7C: movs r0, 0x64 muls r0, r5 ldr r1, _08036B88 @ =gUnknown_202402C adds r0, r1 movs r1, 0x27 b _08036D6A .align 2, 0 _08036B88: .4byte gUnknown_202402C _08036B8C: movs r0, 0x64 muls r0, r5 ldr r1, _08036B98 @ =gUnknown_202402C adds r0, r1 movs r1, 0x28 b _08036D6A .align 2, 0 _08036B98: .4byte gUnknown_202402C _08036B9C: movs r0, 0x64 muls r0, r5 ldr r1, _08036BA8 @ =gUnknown_202402C adds r0, r1 movs r1, 0x29 b _08036D6A .align 2, 0 _08036BA8: .4byte gUnknown_202402C _08036BAC: movs r0, 0x64 muls r0, r5 ldr r1, _08036BB8 @ =gUnknown_202402C adds r0, r1 movs r1, 0x2A b _08036D6A .align 2, 0 _08036BB8: .4byte gUnknown_202402C _08036BBC: movs r0, 0x64 muls r0, r5 ldr r1, _08036BC8 @ =gUnknown_202402C adds r0, r1 movs r1, 0x2B b _08036D6A .align 2, 0 _08036BC8: .4byte gUnknown_202402C _08036BCC: movs r0, 0x64 muls r0, r5 ldr r1, _08036BD8 @ =gUnknown_202402C adds r0, r1 movs r1, 0x2C b _08036D6A .align 2, 0 _08036BD8: .4byte gUnknown_202402C _08036BDC: movs r0, 0x64 muls r0, r5 ldr r1, _08036BE8 @ =gUnknown_202402C adds r0, r1 movs r1, 0 b _08036C06 .align 2, 0 _08036BE8: .4byte gUnknown_202402C _08036BEC: movs r0, 0x64 muls r0, r5 ldr r1, _08036BF8 @ =gUnknown_202402C adds r0, r1 movs r1, 0x9 b _08036CAA .align 2, 0 _08036BF8: .4byte gUnknown_202402C _08036BFC: movs r0, 0x64 muls r0, r5 ldr r1, _08036C2C @ =gUnknown_202402C adds r0, r1 movs r1, 0x37 _08036C06: bl sub_803FBE8 adds r1, r0, 0 strb r1, [r7] movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r0, 8 strb r0, [r7, 0x1] movs r0, 0xFF lsls r0, 16 ands r0, r1 lsrs r0, 16 strb r0, [r7, 0x2] lsrs r0, r1, 24 strb r0, [r7, 0x3] movs r6, 0x4 b _08036D72 .align 2, 0 _08036C2C: .4byte gUnknown_202402C _08036C30: movs r0, 0x64 muls r0, r5 ldr r1, _08036C3C @ =gUnknown_202402C adds r0, r1 movs r1, 0x38 b _08036D6A .align 2, 0 _08036C3C: .4byte gUnknown_202402C _08036C40: movs r0, 0x64 muls r0, r5 ldr r1, _08036C4C @ =gUnknown_202402C adds r0, r1 movs r1, 0x39 b _08036CAA .align 2, 0 _08036C4C: .4byte gUnknown_202402C _08036C50: movs r0, 0x64 muls r0, r5 ldr r1, _08036C5C @ =gUnknown_202402C adds r0, r1 movs r1, 0x3A b _08036CAA .align 2, 0 _08036C5C: .4byte gUnknown_202402C _08036C60: movs r0, 0x64 muls r0, r5 ldr r1, _08036C6C @ =gUnknown_202402C adds r0, r1 movs r1, 0x3B b _08036CAA .align 2, 0 _08036C6C: .4byte gUnknown_202402C _08036C70: movs r0, 0x64 muls r0, r5 ldr r1, _08036C7C @ =gUnknown_202402C adds r0, r1 movs r1, 0x3C b _08036CAA .align 2, 0 _08036C7C: .4byte gUnknown_202402C _08036C80: movs r0, 0x64 muls r0, r5 ldr r1, _08036C8C @ =gUnknown_202402C adds r0, r1 movs r1, 0x3D b _08036CAA .align 2, 0 _08036C8C: .4byte gUnknown_202402C _08036C90: movs r0, 0x64 muls r0, r5 ldr r1, _08036C9C @ =gUnknown_202402C adds r0, r1 movs r1, 0x3E b _08036CAA .align 2, 0 _08036C9C: .4byte gUnknown_202402C _08036CA0: movs r0, 0x64 muls r0, r5 ldr r1, _08036CBC @ =gUnknown_202402C adds r0, r1 movs r1, 0x3F _08036CAA: bl sub_803FBE8 lsls r0, 16 lsrs r0, 16 strb r0, [r7] lsrs r0, 8 strb r0, [r7, 0x1] movs r6, 0x2 b _08036D72 .align 2, 0 _08036CBC: .4byte gUnknown_202402C _08036CC0: movs r0, 0x64 muls r0, r5 ldr r1, _08036CCC @ =gUnknown_202402C adds r0, r1 movs r1, 0x16 b _08036D6A .align 2, 0 _08036CCC: .4byte gUnknown_202402C _08036CD0: movs r0, 0x64 muls r0, r5 ldr r1, _08036CDC @ =gUnknown_202402C adds r0, r1 movs r1, 0x17 b _08036D6A .align 2, 0 _08036CDC: .4byte gUnknown_202402C _08036CE0: movs r0, 0x64 muls r0, r5 ldr r1, _08036CEC @ =gUnknown_202402C adds r0, r1 movs r1, 0x18 b _08036D6A .align 2, 0 _08036CEC: .4byte gUnknown_202402C _08036CF0: movs r0, 0x64 muls r0, r5 ldr r1, _08036CFC @ =gUnknown_202402C adds r0, r1 movs r1, 0x21 b _08036D6A .align 2, 0 _08036CFC: .4byte gUnknown_202402C _08036D00: movs r0, 0x64 muls r0, r5 ldr r1, _08036D0C @ =gUnknown_202402C adds r0, r1 movs r1, 0x2F b _08036D6A .align 2, 0 _08036D0C: .4byte gUnknown_202402C _08036D10: movs r0, 0x64 muls r0, r5 ldr r1, _08036D1C @ =gUnknown_202402C adds r0, r1 movs r1, 0x30 b _08036D6A .align 2, 0 _08036D1C: .4byte gUnknown_202402C _08036D20: movs r0, 0x64 muls r0, r5 ldr r1, _08036D2C @ =gUnknown_202402C adds r0, r1 movs r1, 0x32 b _08036D6A .align 2, 0 _08036D2C: .4byte gUnknown_202402C _08036D30: movs r0, 0x64 muls r0, r5 ldr r1, _08036D3C @ =gUnknown_202402C adds r0, r1 movs r1, 0x33 b _08036D6A .align 2, 0 _08036D3C: .4byte gUnknown_202402C _08036D40: movs r0, 0x64 muls r0, r5 ldr r1, _08036D4C @ =gUnknown_202402C adds r0, r1 movs r1, 0x34 b _08036D6A .align 2, 0 _08036D4C: .4byte gUnknown_202402C _08036D50: movs r0, 0x64 muls r0, r5 ldr r1, _08036D5C @ =gUnknown_202402C adds r0, r1 movs r1, 0x35 b _08036D6A .align 2, 0 _08036D5C: .4byte gUnknown_202402C _08036D60: movs r0, 0x64 muls r0, r5 ldr r1, _08036D84 @ =gUnknown_202402C adds r0, r1 movs r1, 0x36 _08036D6A: bl sub_803FBE8 strb r0, [r7] movs r6, 0x1 _08036D72: adds r0, r6, 0 add sp, 0x90 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08036D84: .4byte gUnknown_202402C thumb_func_end sub_80365DC thumb_func_start sub_8036D88 sub_8036D88: @ 8036D88 push {r4-r7,lr} sub sp, 0x58 ldr r2, _08036E00 @ =gUnknown_2023BCE ldr r5, _08036E04 @ =gUnknown_2023BC4 ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 adds r4, r2, 0 muls r4, r0 ldr r3, _08036E08 @ =gUnknown_2022BC4 lsls r1, 9 adds r0, r3, 0x1 adds r0, r1, r0 ldrb r2, [r0] ldr r0, _08036E0C @ =gUnknown_202402C adds r0, r2, r0 adds r6, r4, r0 mov r0, sp adds r4, r0, r2 movs r2, 0 adds r0, r3, 0x2 adds r1, r0 adds r7, r5, 0 mov r12, r3 ldrb r1, [r1] cmp r2, r1 bcs _08036DDE adds r3, r0, 0 _08036DC4: adds r1, r4, r2 adds r0, r6, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 ldrb r0, [r5] lsls r0, 9 adds r0, r3 ldrb r0, [r0] cmp r2, r0 bcc _08036DC4 _08036DDE: ldrb r0, [r7] lsls r0, 9 mov r1, r12 adds r1, 0x2 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 adds r2, r4, 0 bl sub_800E708 bl sub_8036530 add sp, 0x58 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08036E00: .4byte gUnknown_2023BCE _08036E04: .4byte gUnknown_2023BC4 _08036E08: .4byte gUnknown_2022BC4 _08036E0C: .4byte gUnknown_202402C thumb_func_end sub_8036D88 thumb_func_start sub_8036E10 sub_8036E10: @ 8036E10 push {r4,r5,lr} ldr r1, _08036E34 @ =gUnknown_2022BC4 ldr r0, _08036E38 @ =gUnknown_2023BC4 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _08036E40 ldr r0, _08036E3C @ =gUnknown_2023BCE lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] bl sub_8036E68 b _08036E5E .align 2, 0 _08036E34: .4byte gUnknown_2022BC4 _08036E38: .4byte gUnknown_2023BC4 _08036E3C: .4byte gUnknown_2023BCE _08036E40: ldrb r4, [r1] movs r5, 0 _08036E44: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _08036E52 adds r0, r5, 0 bl sub_8036E68 _08036E52: lsrs r4, 1 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _08036E44 _08036E5E: bl sub_8036530 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8036E10 thumb_func_start sub_8036E68 sub_8036E68: @ 8036E68 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x38 lsls r0, 24 lsrs r5, r0, 24 ldr r3, _08036EA0 @ =gUnknown_2023BC4 ldrb r0, [r3] lsls r0, 9 ldr r2, _08036EA4 @ =gUnknown_2022BC7 adds r4, r0, r2 adds r7, r4, 0 subs r1, r2, 0x2 adds r0, r1 ldrb r0, [r0] adds r6, r3, 0 adds r3, r2, 0 cmp r0, 0x3B bls _08036E96 bl _08037774 _08036E96: lsls r0, 2 ldr r1, _08036EA8 @ =_08036EAC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08036EA0: .4byte gUnknown_2023BC4 _08036EA4: .4byte gUnknown_2022BC7 _08036EA8: .4byte _08036EAC .align 2, 0 _08036EAC: .4byte _08036F9C .4byte _08037134 .4byte _08037150 .4byte _0803716C .4byte _080371C0 .4byte _080371C0 .4byte _080371C0 .4byte _080371C0 .4byte _080371E0 .4byte _08037248 .4byte _08037248 .4byte _08037248 .4byte _08037248 .4byte _08037774 .4byte _08037774 .4byte _08037774 .4byte _08037774 .4byte _08037270 .4byte _0803728C .4byte _080372A8 .4byte _080372C4 .4byte _080372E0 .4byte _080372FC .4byte _08037318 .4byte _08037334 .4byte _08037350 .4byte _0803736C .4byte _08037388 .4byte _080373A4 .4byte _080373C0 .4byte _080373DC .4byte _080373F8 .4byte _0803746C .4byte _08037488 .4byte _080374A4 .4byte _080374C0 .4byte _080374DC .4byte _080374F8 .4byte _08037514 .4byte _08037530 .4byte _0803754C .4byte _08037568 .4byte _08037584 .4byte _080375A0 .4byte _080375BC .4byte _080375D8 .4byte _080375F4 .4byte _08037610 .4byte _0803762C .4byte _08037648 .4byte _08037664 .4byte _08037680 .4byte _0803769C .4byte _080376B8 .4byte _080376D4 .4byte _080376F0 .4byte _0803770C .4byte _08037728 .4byte _08037744 .4byte _08037760 _08036F9C: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08037130 @ =gUnknown_202402C adds r4, r0 adds r0, r4, 0 movs r1, 0xB adds r2, r7, 0 bl sub_804037C adds r2, r7, 0 adds r2, 0x2E adds r0, r4, 0 movs r1, 0xC bl sub_804037C movs r0, 0 mov r8, r0 movs r0, 0x3B adds r0, r7 mov r10, r0 adds r0, r7, 0 adds r0, 0x2B str r0, [sp, 0x20] adds r0, 0x19 str r0, [sp, 0x28] adds r0, 0x4 str r0, [sp, 0x2C] adds r0, 0x4 str r0, [sp, 0x30] subs r0, 0x22 str r0, [sp, 0x1C] subs r0, 0x2 str r0, [sp, 0x18] adds r0, 0x4 str r0, [sp, 0x24] adds r0, r7, 0x2 str r0, [sp, 0x4] adds r0, r7, 0x4 str r0, [sp, 0x8] adds r0, r7, 0x6 str r0, [sp, 0xC] adds r0, 0x2 str r0, [sp, 0x10] adds r0, 0x2 str r0, [sp, 0x14] mov r9, r4 adds r6, r7, 0 adds r6, 0x24 adds r4, r7, 0 adds r4, 0xC _08037002: mov r1, r8 adds r1, 0xD mov r0, r9 adds r2, r4, 0 bl sub_804037C mov r1, r8 adds r1, 0x11 mov r0, r9 adds r2, r6, 0 bl sub_804037C adds r6, 0x1 adds r4, 0x2 movs r0, 0x1 add r8, r0 mov r0, r8 cmp r0, 0x3 ble _08037002 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08037130 @ =gUnknown_202402C adds r4, r0 adds r0, r4, 0 movs r1, 0x15 mov r2, r10 bl sub_804037C adds r0, r4, 0 movs r1, 0x20 ldr r2, [sp, 0x20] bl sub_804037C adds r0, r4, 0 movs r1, 0x19 ldr r2, [sp, 0x28] bl sub_804037C ldrb r0, [r7, 0x14] lsls r0, 27 lsrs r0, 27 mov r1, sp strb r0, [r1] adds r0, r4, 0 movs r1, 0x27 mov r2, sp bl sub_804037C mov r1, sp ldrh r0, [r7, 0x14] lsls r0, 22 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x28 mov r2, sp bl sub_804037C mov r1, sp ldrb r0, [r7, 0x15] lsls r0, 25 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x29 mov r2, sp bl sub_804037C mov r1, sp ldr r0, [r7, 0x14] lsls r0, 12 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2A mov r2, sp bl sub_804037C mov r1, sp ldrh r0, [r7, 0x16] lsls r0, 23 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2B mov r2, sp bl sub_804037C mov r1, sp ldrb r0, [r7, 0x17] lsls r0, 26 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2C mov r2, sp bl sub_804037C adds r0, r4, 0 movs r1, 0 ldr r2, [sp, 0x2C] bl sub_804037C adds r0, r4, 0 movs r1, 0x37 ldr r2, [sp, 0x30] bl sub_804037C adds r0, r4, 0 movs r1, 0x38 ldr r2, [sp, 0x1C] bl sub_804037C adds r0, r4, 0 movs r1, 0x39 ldr r2, [sp, 0x18] bl sub_804037C adds r0, r4, 0 movs r1, 0x3A ldr r2, [sp, 0x24] bl sub_804037C adds r0, r4, 0 movs r1, 0x3B ldr r2, [sp, 0x4] bl sub_804037C adds r0, r4, 0 movs r1, 0x3C ldr r2, [sp, 0x8] bl sub_804037C adds r0, r4, 0 movs r1, 0x3D ldr r2, [sp, 0xC] bl sub_804037C adds r0, r4, 0 movs r1, 0x3E ldr r2, [sp, 0x10] bl sub_804037C adds r0, r4, 0 movs r1, 0x3F ldr r2, [sp, 0x14] bl sub_804037C b _08037774 .align 2, 0 _08037130: .4byte gUnknown_202402C _08037134: movs r0, 0x64 muls r0, r5 ldr r1, _0803714C @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0xB bl sub_804037C b _08037774 .align 2, 0 _0803714C: .4byte gUnknown_202402C _08037150: movs r0, 0x64 muls r0, r5 ldr r1, _08037168 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0xC bl sub_804037C b _08037774 .align 2, 0 _08037168: .4byte gUnknown_202402C _0803716C: movs r0, 0 mov r8, r0 movs r0, 0xC adds r0, r4 mov r9, r0 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _080371BC @ =gUnknown_202402C adds r7, r1, r0 adds r6, r4, 0 adds r6, 0x8 _08037184: mov r1, r8 adds r1, 0xD adds r0, r7, 0 adds r2, r4, 0 bl sub_804037C mov r1, r8 adds r1, 0x11 adds r0, r7, 0 adds r2, r6, 0 bl sub_804037C adds r6, 0x1 adds r4, 0x2 movs r0, 0x1 add r8, r0 mov r0, r8 cmp r0, 0x3 ble _08037184 movs r0, 0x64 muls r0, r5 ldr r1, _080371BC @ =gUnknown_202402C adds r0, r1 movs r1, 0x15 mov r2, r9 bl sub_804037C b _08037774 .align 2, 0 _080371BC: .4byte gUnknown_202402C _080371C0: movs r0, 0x64 muls r0, r5 ldr r1, _080371D8 @ =gUnknown_202402C adds r0, r1 ldr r3, _080371DC @ =gUnknown_2022BC4 ldrb r2, [r6] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x9 b _0803725E .align 2, 0 _080371D8: .4byte gUnknown_202402C _080371DC: .4byte gUnknown_2022BC4 _080371E0: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08037244 @ =gUnknown_202402C adds r4, r0 ldrb r2, [r6] lsls r2, 9 adds r2, r3 adds r0, r4, 0 movs r1, 0x11 str r3, [sp, 0x34] bl sub_804037C ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x1 adds r2, r0 adds r0, r4, 0 movs r1, 0x12 bl sub_804037C ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x2 adds r2, r0 adds r0, r4, 0 movs r1, 0x13 bl sub_804037C ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x3 adds r2, r0 adds r0, r4, 0 movs r1, 0x14 bl sub_804037C ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x4 adds r2, r0 adds r0, r4, 0 movs r1, 0x15 bl sub_804037C b _08037774 .align 2, 0 _08037244: .4byte gUnknown_202402C _08037248: movs r0, 0x64 muls r0, r5 ldr r1, _08037268 @ =gUnknown_202402C adds r0, r1 ldr r3, _0803726C @ =gUnknown_2022BC4 ldrb r2, [r6] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x8 _0803725E: adds r3, 0x3 adds r2, r3 bl sub_804037C b _08037774 .align 2, 0 _08037268: .4byte gUnknown_202402C _0803726C: .4byte gUnknown_2022BC4 _08037270: movs r0, 0x64 muls r0, r5 ldr r1, _08037288 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1 bl sub_804037C b _08037774 .align 2, 0 _08037288: .4byte gUnknown_202402C _0803728C: movs r0, 0x64 muls r0, r5 ldr r1, _080372A4 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x19 bl sub_804037C b _08037774 .align 2, 0 _080372A4: .4byte gUnknown_202402C _080372A8: movs r0, 0x64 muls r0, r5 ldr r1, _080372C0 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1A bl sub_804037C b _08037774 .align 2, 0 _080372C0: .4byte gUnknown_202402C _080372C4: movs r0, 0x64 muls r0, r5 ldr r1, _080372DC @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1B bl sub_804037C b _08037774 .align 2, 0 _080372DC: .4byte gUnknown_202402C _080372E0: movs r0, 0x64 muls r0, r5 ldr r1, _080372F8 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1C bl sub_804037C b _08037774 .align 2, 0 _080372F8: .4byte gUnknown_202402C _080372FC: movs r0, 0x64 muls r0, r5 ldr r1, _08037314 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1D bl sub_804037C b _08037774 .align 2, 0 _08037314: .4byte gUnknown_202402C _08037318: movs r0, 0x64 muls r0, r5 ldr r1, _08037330 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1E bl sub_804037C b _08037774 .align 2, 0 _08037330: .4byte gUnknown_202402C _08037334: movs r0, 0x64 muls r0, r5 ldr r1, _0803734C @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1F bl sub_804037C b _08037774 .align 2, 0 _0803734C: .4byte gUnknown_202402C _08037350: movs r0, 0x64 muls r0, r5 ldr r1, _08037368 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x20 bl sub_804037C b _08037774 .align 2, 0 _08037368: .4byte gUnknown_202402C _0803736C: movs r0, 0x64 muls r0, r5 ldr r1, _08037384 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x22 bl sub_804037C b _08037774 .align 2, 0 _08037384: .4byte gUnknown_202402C _08037388: movs r0, 0x64 muls r0, r5 ldr r1, _080373A0 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x23 bl sub_804037C b _08037774 .align 2, 0 _080373A0: .4byte gUnknown_202402C _080373A4: movs r0, 0x64 muls r0, r5 ldr r1, _080373BC @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x24 bl sub_804037C b _08037774 .align 2, 0 _080373BC: .4byte gUnknown_202402C _080373C0: movs r0, 0x64 muls r0, r5 ldr r1, _080373D8 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x25 bl sub_804037C b _08037774 .align 2, 0 _080373D8: .4byte gUnknown_202402C _080373DC: movs r0, 0x64 muls r0, r5 ldr r1, _080373F4 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x26 bl sub_804037C b _08037774 .align 2, 0 _080373F4: .4byte gUnknown_202402C _080373F8: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08037468 @ =gUnknown_202402C adds r4, r0 ldrb r2, [r6] lsls r2, 9 adds r2, r3 adds r0, r4, 0 movs r1, 0x27 str r3, [sp, 0x34] bl sub_804037C ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x1 adds r2, r0 adds r0, r4, 0 movs r1, 0x28 bl sub_804037C ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x2 adds r2, r0 adds r0, r4, 0 movs r1, 0x29 bl sub_804037C ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x3 adds r2, r0 adds r0, r4, 0 movs r1, 0x2A bl sub_804037C ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x4 adds r2, r0 adds r0, r4, 0 movs r1, 0x2B bl sub_804037C ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x5 adds r2, r0 adds r0, r4, 0 b _08037506 .align 2, 0 _08037468: .4byte gUnknown_202402C _0803746C: movs r0, 0x64 muls r0, r5 ldr r1, _08037484 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x27 bl sub_804037C b _08037774 .align 2, 0 _08037484: .4byte gUnknown_202402C _08037488: movs r0, 0x64 muls r0, r5 ldr r1, _080374A0 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x28 bl sub_804037C b _08037774 .align 2, 0 _080374A0: .4byte gUnknown_202402C _080374A4: movs r0, 0x64 muls r0, r5 ldr r1, _080374BC @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x29 bl sub_804037C b _08037774 .align 2, 0 _080374BC: .4byte gUnknown_202402C _080374C0: movs r0, 0x64 muls r0, r5 ldr r1, _080374D8 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x2A bl sub_804037C b _08037774 .align 2, 0 _080374D8: .4byte gUnknown_202402C _080374DC: movs r0, 0x64 muls r0, r5 ldr r1, _080374F4 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x2B bl sub_804037C b _08037774 .align 2, 0 _080374F4: .4byte gUnknown_202402C _080374F8: movs r0, 0x64 muls r0, r5 ldr r1, _08037510 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 _08037506: movs r1, 0x2C bl sub_804037C b _08037774 .align 2, 0 _08037510: .4byte gUnknown_202402C _08037514: movs r0, 0x64 muls r0, r5 ldr r1, _0803752C @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0 bl sub_804037C b _08037774 .align 2, 0 _0803752C: .4byte gUnknown_202402C _08037530: movs r0, 0x64 muls r0, r5 ldr r1, _08037548 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x9 bl sub_804037C b _08037774 .align 2, 0 _08037548: .4byte gUnknown_202402C _0803754C: movs r0, 0x64 muls r0, r5 ldr r1, _08037564 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x37 bl sub_804037C b _08037774 .align 2, 0 _08037564: .4byte gUnknown_202402C _08037568: movs r0, 0x64 muls r0, r5 ldr r1, _08037580 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x38 bl sub_804037C b _08037774 .align 2, 0 _08037580: .4byte gUnknown_202402C _08037584: movs r0, 0x64 muls r0, r5 ldr r1, _0803759C @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x39 bl sub_804037C b _08037774 .align 2, 0 _0803759C: .4byte gUnknown_202402C _080375A0: movs r0, 0x64 muls r0, r5 ldr r1, _080375B8 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3A bl sub_804037C b _08037774 .align 2, 0 _080375B8: .4byte gUnknown_202402C _080375BC: movs r0, 0x64 muls r0, r5 ldr r1, _080375D4 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3B bl sub_804037C b _08037774 .align 2, 0 _080375D4: .4byte gUnknown_202402C _080375D8: movs r0, 0x64 muls r0, r5 ldr r1, _080375F0 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3C bl sub_804037C b _08037774 .align 2, 0 _080375F0: .4byte gUnknown_202402C _080375F4: movs r0, 0x64 muls r0, r5 ldr r1, _0803760C @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3D bl sub_804037C b _08037774 .align 2, 0 _0803760C: .4byte gUnknown_202402C _08037610: movs r0, 0x64 muls r0, r5 ldr r1, _08037628 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3E bl sub_804037C b _08037774 .align 2, 0 _08037628: .4byte gUnknown_202402C _0803762C: movs r0, 0x64 muls r0, r5 ldr r1, _08037644 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3F bl sub_804037C b _08037774 .align 2, 0 _08037644: .4byte gUnknown_202402C _08037648: movs r0, 0x64 muls r0, r5 ldr r1, _08037660 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x16 bl sub_804037C b _08037774 .align 2, 0 _08037660: .4byte gUnknown_202402C _08037664: movs r0, 0x64 muls r0, r5 ldr r1, _0803767C @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x17 bl sub_804037C b _08037774 .align 2, 0 _0803767C: .4byte gUnknown_202402C _08037680: movs r0, 0x64 muls r0, r5 ldr r1, _08037698 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x18 bl sub_804037C b _08037774 .align 2, 0 _08037698: .4byte gUnknown_202402C _0803769C: movs r0, 0x64 muls r0, r5 ldr r1, _080376B4 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x21 bl sub_804037C b _08037774 .align 2, 0 _080376B4: .4byte gUnknown_202402C _080376B8: movs r0, 0x64 muls r0, r5 ldr r1, _080376D0 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x2F bl sub_804037C b _08037774 .align 2, 0 _080376D0: .4byte gUnknown_202402C _080376D4: movs r0, 0x64 muls r0, r5 ldr r1, _080376EC @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x30 bl sub_804037C b _08037774 .align 2, 0 _080376EC: .4byte gUnknown_202402C _080376F0: movs r0, 0x64 muls r0, r5 ldr r1, _08037708 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x32 bl sub_804037C b _08037774 .align 2, 0 _08037708: .4byte gUnknown_202402C _0803770C: movs r0, 0x64 muls r0, r5 ldr r1, _08037724 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x33 bl sub_804037C b _08037774 .align 2, 0 _08037724: .4byte gUnknown_202402C _08037728: movs r0, 0x64 muls r0, r5 ldr r1, _08037740 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x34 bl sub_804037C b _08037774 .align 2, 0 _08037740: .4byte gUnknown_202402C _08037744: movs r0, 0x64 muls r0, r5 ldr r1, _0803775C @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x35 bl sub_804037C b _08037774 .align 2, 0 _0803775C: .4byte gUnknown_202402C _08037760: movs r0, 0x64 muls r0, r5 ldr r1, _08037784 @ =gUnknown_202402C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x36 bl sub_804037C _08037774: add sp, 0x38 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08037784: .4byte gUnknown_202402C thumb_func_end sub_8036E68 thumb_func_start sub_8037788 sub_8037788: @ 8037788 push {r4-r7,lr} ldr r1, _080377EC @ =gUnknown_2023BCE ldr r7, _080377F0 @ =gUnknown_2023BC4 ldrb r2, [r7] lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 adds r3, r1, 0 muls r3, r0 ldr r4, _080377F4 @ =gUnknown_2022BC4 lsls r2, 9 adds r0, r4, 0x1 adds r0, r2, r0 ldrb r0, [r0] ldr r1, _080377F8 @ =gUnknown_202402C adds r0, r1 adds r5, r3, r0 movs r3, 0 adds r0, r4, 0x2 adds r2, r0 ldrb r2, [r2] cmp r3, r2 bcs _080377E0 adds r6, r4, 0 adds r2, r7, 0 adds r4, r0, 0 _080377BE: adds r1, r5, r3 ldrb r0, [r2] lsls r0, 9 adds r0, 0x3 adds r0, r3, r0 adds r0, r6 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 ldrb r0, [r2] lsls r0, 9 adds r0, r4 ldrb r0, [r0] cmp r3, r0 bcc _080377BE _080377E0: bl sub_8036530 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080377EC: .4byte gUnknown_2023BCE _080377F0: .4byte gUnknown_2023BC4 _080377F4: .4byte gUnknown_2022BC4 _080377F8: .4byte gUnknown_202402C thumb_func_end sub_8037788 thumb_func_start sub_80377FC sub_80377FC: @ 80377FC push {r4-r7,lr} mov r7, r8 push {r7} ldr r7, _0803787C @ =gUnknown_2023BCE ldr r4, _08037880 @ =gUnknown_2023BC4 ldrb r0, [r4] lsls r0, 1 adds r0, r7 ldrh r0, [r0] movs r5, 0x64 muls r0, r5 ldr r6, _08037884 @ =gUnknown_202402C adds r0, r6 movs r1, 0xB bl sub_803FBE8 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r0, _08037888 @ =gUnknown_2022B4C ldr r0, [r0] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _08037890 ldrb r1, [r4] lsls r0, r1, 1 adds r0, r7 ldrh r0, [r0] muls r0, r5 adds r0, r6 bl sub_8034658 ldrb r0, [r4] bl sub_8074900 lsls r0, 24 lsrs r5, r0, 24 ldr r3, _0803788C @ =gUnknown_2024018 ldr r0, [r3] ldrb r1, [r4] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 strb r1, [r0] ldr r0, [r3] ldrb r1, [r4] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x1] movs r2, 0x1 orrs r1, r2 strb r1, [r0, 0x1] b _080378AA .align 2, 0 _0803787C: .4byte gUnknown_2023BCE _08037880: .4byte gUnknown_2023BC4 _08037884: .4byte gUnknown_202402C _08037888: .4byte gUnknown_2022B4C _0803788C: .4byte gUnknown_2024018 _08037890: ldrb r1, [r4] lsls r0, r1, 1 adds r0, r7 ldrh r0, [r0] muls r0, r5 adds r0, r6 bl sub_8034320 ldrb r0, [r4] bl sub_80748A8 lsls r0, 24 lsrs r5, r0, 24 _080378AA: ldr r7, _0803799C @ =gUnknown_2023BC4 ldrb r0, [r7] bl sub_80751D8 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r8 bl sub_803F7D4 ldr r6, _080379A0 @ =gUnknown_20244DC ldrb r0, [r7] movs r1, 0x2 bl sub_8074480 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r7] bl sub_807685C adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r6, 0 adds r1, r4, 0 adds r2, r5, 0 bl sub_8006F8C ldr r4, _080379A4 @ =gUnknown_2023D44 ldrb r1, [r7] adds r1, r4 strb r0, [r1] ldr r5, _080379A8 @ =gUnknown_202063C ldrb r0, [r7] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _080379AC @ =0x0000ff10 strh r1, [r0, 0x24] ldrb r2, [r7] adds r0, r2, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x2E] ldrb r0, [r7] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x32] ldrb r3, [r7] adds r0, r3, r4 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 lsls r3, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r2, [r7] adds r4, r2, r4 ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _080379B0 @ =gUnknown_2024024 adds r2, r1 ldrb r1, [r2] bl sub_800838C ldr r0, _080379B4 @ =gUnknown_2022B4C ldr r0, [r0] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 bne _08037986 ldrb r4, [r7] ldr r1, _080379B8 @ =gUnknown_2023BCE lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080379BC @ =gUnknown_202402C adds r0, r1 movs r1, 0xB bl sub_803FBE8 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_8035708 _08037986: ldr r0, _080379C0 @ =gUnknown_3004FE0 ldrb r1, [r7] lsls r1, 2 adds r1, r0 ldr r0, _080379C4 @ =sub_8035FE8 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803799C: .4byte gUnknown_2023BC4 _080379A0: .4byte gUnknown_20244DC _080379A4: .4byte gUnknown_2023D44 _080379A8: .4byte gUnknown_202063C _080379AC: .4byte 0x0000ff10 _080379B0: .4byte gUnknown_2024024 _080379B4: .4byte gUnknown_2022B4C _080379B8: .4byte gUnknown_2023BCE _080379BC: .4byte gUnknown_202402C _080379C0: .4byte gUnknown_3004FE0 _080379C4: .4byte sub_8035FE8 thumb_func_end sub_80377FC thumb_func_start sub_80379C8 sub_80379C8: @ 80379C8 push {r4,lr} ldr r4, _08037A10 @ =gUnknown_2023BC4 ldrb r0, [r4] ldr r1, _08037A14 @ =gUnknown_2023FE8 ldr r1, [r1] adds r0, r1 adds r0, 0x5C movs r1, 0x6 strb r1, [r0] ldr r1, _08037A18 @ =gUnknown_2023BCE ldrb r0, [r4] lsls r2, r0, 1 adds r2, r1 ldr r3, _08037A1C @ =gUnknown_2022BC4 lsls r0, 9 adds r1, r3, 0x1 adds r0, r1 ldrb r0, [r0] strh r0, [r2] ldrb r0, [r4] lsls r1, r0, 9 adds r3, 0x2 adds r1, r3 ldrb r1, [r1] bl sub_8037A28 ldr r1, _08037A20 @ =gUnknown_3004FE0 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08037A24 @ =sub_8036408 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08037A10: .4byte gUnknown_2023BC4 _08037A14: .4byte gUnknown_2023FE8 _08037A18: .4byte gUnknown_2023BCE _08037A1C: .4byte gUnknown_2022BC4 _08037A20: .4byte gUnknown_3004FE0 _08037A24: .4byte sub_8036408 thumb_func_end sub_80379C8 thumb_func_start sub_8037A28 sub_8037A28: @ 8037A28 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_803589C ldr r0, _08037B84 @ =gUnknown_2023BCE lsls r4, r6, 1 adds r4, r0 ldr r0, _08037B88 @ =gUnknown_2022BC4 lsls r1, r6, 9 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] strh r0, [r4] ldrh r0, [r4] movs r1, 0x64 mov r9, r1 mov r1, r9 muls r1, r0 adds r0, r1, 0 ldr r5, _08037B8C @ =gUnknown_202402C adds r0, r5 movs r1, 0xB bl sub_803FBE8 mov r8, r0 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r0, _08037B90 @ =sub_8033E3C bl sub_8044EF8 ldr r1, _08037B94 @ =gUnknown_3004FFC mov r10, r1 add r10, r6 mov r1, r10 strb r0, [r1] ldrh r0, [r4] mov r1, r9 muls r1, r0 adds r0, r1, 0 adds r0, r5 adds r1, r6, 0 bl sub_8034320 adds r0, r6, 0 bl sub_80751D8 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r8 bl sub_803F7D4 ldr r0, _08037B98 @ =gUnknown_20244DC mov r9, r0 adds r0, r6, 0 movs r1, 0x2 bl sub_8074480 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r6, 0 bl sub_80748A8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 bl sub_807685C adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r9 adds r1, r5, 0 adds r2, r4, 0 bl sub_8006F8C ldr r4, _08037B9C @ =gUnknown_2023D44 adds r4, r6, r4 strb r0, [r4] ldr r5, _08037BA0 @ =gUnknown_202063C ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x2E] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x32] mov r0, r10 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r4] strh r1, [r0, 0x30] ldrb r0, [r4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 lsls r3, r6, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08037BA4 @ =gUnknown_2024024 adds r6, r1 ldrb r1, [r6] bl sub_800838C ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08037BA8 @ =nullsub_8 str r1, [r0] movs r0, 0 movs r1, 0xFE bl sub_804A938 mov r1, r10 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r5 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x2E] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08037B84: .4byte gUnknown_2023BCE _08037B88: .4byte gUnknown_2022BC4 _08037B8C: .4byte gUnknown_202402C _08037B90: .4byte sub_8033E3C _08037B94: .4byte gUnknown_3004FFC _08037B98: .4byte gUnknown_20244DC _08037B9C: .4byte gUnknown_2023D44 _08037BA0: .4byte gUnknown_202063C _08037BA4: .4byte gUnknown_2024024 _08037BA8: .4byte nullsub_8 thumb_func_end sub_8037A28 thumb_func_start sub_8037BAC sub_8037BAC: @ 8037BAC push {r4-r6,lr} ldr r1, _08037BE0 @ =gUnknown_2022BC4 ldr r6, _08037BE4 @ =gUnknown_2023BC4 ldrb r2, [r6] lsls r0, r2, 9 adds r1, 0x1 adds r0, r1 ldrb r3, [r0] cmp r3, 0 bne _08037BF4 ldr r0, _08037BE8 @ =gUnknown_2024018 ldr r0, [r0] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 strb r3, [r0, 0x4] ldr r1, _08037BEC @ =gUnknown_3004FE0 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _08037BF0 @ =sub_8037C44 str r1, [r0] b _08037C30 .align 2, 0 _08037BE0: .4byte gUnknown_2022BC4 _08037BE4: .4byte gUnknown_2023BC4 _08037BE8: .4byte gUnknown_2024018 _08037BEC: .4byte gUnknown_3004FE0 _08037BF0: .4byte sub_8037C44 _08037BF4: ldr r5, _08037C38 @ =gUnknown_2023D44 adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08037C3C @ =gUnknown_202063C adds r0, r4 bl sub_80077D8 ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl sub_8007280 ldrb r0, [r6] bl sub_8035794 ldr r1, _08037C40 @ =gUnknown_3004FF0 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8048188 bl sub_8036530 _08037C30: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08037C38: .4byte gUnknown_2023D44 _08037C3C: .4byte gUnknown_202063C _08037C40: .4byte gUnknown_3004FF0 thumb_func_end sub_8037BAC thumb_func_start sub_8037C44 sub_8037C44: @ 8037C44 push {r4-r6,lr} ldr r6, _08037C64 @ =gUnknown_2024018 ldr r4, [r6] ldr r5, _08037C68 @ =gUnknown_2023BC4 ldrb r2, [r5] ldr r1, [r4, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r3, r0, r1 ldrb r0, [r3, 0x4] cmp r0, 0 beq _08037C6C cmp r0, 0x1 beq _08037C9A b _08037CC2 .align 2, 0 _08037C64: .4byte gUnknown_2024018 _08037C68: .4byte gUnknown_2023BC4 _08037C6C: ldr r1, [r4] lsls r0, r2, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08037C86 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl sub_80341D8 _08037C86: ldr r0, [r6] ldrb r1, [r5] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x1 strb r1, [r0, 0x4] b _08037CC2 _08037C9A: ldrb r1, [r3] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08037CC2 strb r0, [r3, 0x4] ldrb r2, [r5] adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x2 bl sub_80341D8 ldr r1, _08037CC8 @ =gUnknown_3004FE0 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _08037CCC @ =sub_8036170 str r1, [r0] _08037CC2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08037CC8: .4byte gUnknown_3004FE0 _08037CCC: .4byte sub_8036170 thumb_func_end sub_8037C44 thumb_func_start sub_8037CD0 sub_8037CD0: @ 8037CD0 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} ldr r3, _08037CEC @ =gUnknown_20386AE ldrh r1, [r3] movs r0, 0x80 lsls r0, 3 cmp r1, r0 bne _08037CF0 bl sub_8040EEC b _08037D26 .align 2, 0 _08037CEC: .4byte gUnknown_20386AE _08037CF0: ldr r0, _08037D04 @ =gUnknown_2022B4C ldr r1, [r0] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _08037D08 bl sub_80E6078 b _08037D26 .align 2, 0 _08037D04: .4byte gUnknown_2022B4C _08037D08: movs r0, 0x80 lsls r0, 12 ands r0, r1 cmp r0, 0 beq _08037D18 bl sub_815DA3C b _08037D26 _08037D18: movs r0, 0x80 lsls r0, 4 ands r1, r0 cmp r1, 0 beq _08037D2C bl sub_80E7420 _08037D26: lsls r0, 24 lsrs r0, 24 b _08037D3A _08037D2C: ldr r2, _08037E6C @ =gUnknown_823EAC8 ldrh r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x3] _08037D3A: mov r9, r0 ldr r0, _08037E70 @ =gUnknown_2023BC4 mov r8, r0 ldrb r1, [r0] mov r0, r9 bl sub_80346C4 mov r1, r8 ldrb r0, [r1] bl sub_80751D8 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r9 bl sub_803F864 ldr r5, _08037E74 @ =gUnknown_20244DC ldr r1, _08037E78 @ =gUnknown_823932C mov r2, r9 lsls r0, r2, 2 adds r0, r1 ldrb r0, [r0] movs r4, 0x8 subs r4, r0 lsls r4, 18 movs r0, 0xA0 lsls r0, 14 adds r4, r0 asrs r4, 16 mov r1, r8 ldrb r0, [r1] bl sub_807685C adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r5, 0 movs r1, 0xB0 adds r2, r4, 0 bl sub_8006F8C ldr r5, _08037E7C @ =gUnknown_2023D44 mov r2, r8 ldrb r1, [r2] adds r1, r5 strb r0, [r1] ldr r4, _08037E80 @ =gUnknown_202063C ldrb r0, [r2] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _08037E84 @ =0x0000ff10 strh r1, [r0, 0x24] ldrb r0, [r2] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x2E] ldr r0, _08037E88 @ =gUnknown_8239A1C mov r1, r9 lsls r6, r1, 3 adds r0, r6, r0 ldrh r0, [r0, 0x4] bl sub_80089E8 mov r2, r8 ldrb r1, [r2] adds r1, r5 ldrb r1, [r1] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r4 lsls r0, 4 ldrb r3, [r2, 0x5] movs r1, 0xF ands r1, r3 orrs r1, r0 strb r1, [r2, 0x5] mov r1, r8 ldrb r0, [r1] adds r0, r5 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r0, [r1, 0x4] lsls r0, 22 lsrs r0, 22 strh r0, [r1, 0x38] ldr r0, _08037E8C @ =gUnknown_823957C adds r6, r0 ldrh r0, [r6, 0x6] bl sub_8008804 mov r2, r8 ldrb r1, [r2] adds r1, r5 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldr r2, _08037E90 @ =0x000003ff ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, _08037E94 @ =0xfffffc00 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] mov r1, r8 ldrb r0, [r1] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 mov r2, r9 strh r2, [r0, 0x6] mov r1, r8 ldrb r0, [r1] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, 0x1C adds r0, r4 ldr r1, _08037E98 @ =sub_8033EEC str r1, [r0] ldr r1, _08037E9C @ =gUnknown_3004FE0 mov r2, r8 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _08037EA0 @ =sub_8035AE8 str r1, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08037E6C: .4byte gUnknown_823EAC8 _08037E70: .4byte gUnknown_2023BC4 _08037E74: .4byte gUnknown_20244DC _08037E78: .4byte gUnknown_823932C _08037E7C: .4byte gUnknown_2023D44 _08037E80: .4byte gUnknown_202063C _08037E84: .4byte 0x0000ff10 _08037E88: .4byte gUnknown_8239A1C _08037E8C: .4byte gUnknown_823957C _08037E90: .4byte 0x000003ff _08037E94: .4byte 0xfffffc00 _08037E98: .4byte sub_8033EEC _08037E9C: .4byte gUnknown_3004FE0 _08037EA0: .4byte sub_8035AE8 thumb_func_end sub_8037CD0 thumb_func_start sub_8037EA4 sub_8037EA4: @ 8037EA4 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} ldr r3, _08037EC0 @ =gUnknown_20386AE ldrh r1, [r3] movs r0, 0x80 lsls r0, 3 cmp r1, r0 bne _08037EC4 bl sub_8040EEC b _08037EFA .align 2, 0 _08037EC0: .4byte gUnknown_20386AE _08037EC4: ldr r0, _08037ED8 @ =gUnknown_2022B4C ldr r1, [r0] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _08037EDC bl sub_80E6078 b _08037EFA .align 2, 0 _08037ED8: .4byte gUnknown_2022B4C _08037EDC: movs r0, 0x80 lsls r0, 12 ands r0, r1 cmp r0, 0 beq _08037EEC bl sub_815DA3C b _08037EFA _08037EEC: movs r0, 0x80 lsls r0, 4 ands r1, r0 cmp r1, 0 beq _08037F00 bl sub_80E7420 _08037EFA: lsls r0, 24 lsrs r0, 24 b _08037F0E _08037F00: ldr r2, _08038040 @ =gUnknown_823EAC8 ldrh r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x3] _08037F0E: mov r9, r0 ldr r0, _08038044 @ =gUnknown_2023BC4 mov r8, r0 ldrb r1, [r0] mov r0, r9 bl sub_80346C4 mov r1, r8 ldrb r0, [r1] bl sub_80751D8 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r9 bl sub_803F864 ldr r0, _08038048 @ =gUnknown_20244DC ldr r2, _0803804C @ =gUnknown_823932C mov r3, r9 lsls r1, r3, 2 adds r1, r2 ldrb r1, [r1] movs r2, 0x8 subs r2, r1 lsls r2, 18 movs r1, 0xA0 lsls r1, 14 adds r2, r1 asrs r2, 16 movs r1, 0xB0 movs r3, 0x1E bl sub_8006F8C ldr r5, _08038050 @ =gUnknown_2023D44 mov r2, r8 ldrb r1, [r2] adds r1, r5 strb r0, [r1] ldr r4, _08038054 @ =gUnknown_202063C ldrb r0, [r2] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x60 strh r1, [r0, 0x24] ldrb r0, [r2] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x20] adds r1, 0x20 strh r1, [r0, 0x20] ldrb r0, [r2] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _08038058 @ =0x0000fffe strh r1, [r0, 0x2E] ldr r0, _0803805C @ =gUnknown_8239A1C mov r3, r9 lsls r6, r3, 3 adds r0, r6, r0 ldrh r0, [r0, 0x4] bl sub_80089E8 mov r2, r8 ldrb r1, [r2] adds r1, r5 ldrb r1, [r1] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r4 lsls r0, 4 ldrb r3, [r2, 0x5] movs r1, 0xF ands r1, r3 orrs r1, r0 strb r1, [r2, 0x5] mov r3, r8 ldrb r0, [r3] adds r0, r5 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r0, [r1, 0x4] lsls r0, 22 lsrs r0, 22 strh r0, [r1, 0x38] ldr r0, _08038060 @ =gUnknown_823957C adds r6, r0 ldrh r0, [r6, 0x6] bl sub_8008804 mov r2, r8 ldrb r1, [r2] adds r1, r5 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldr r2, _08038064 @ =0x000003ff ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, _08038068 @ =0xfffffc00 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] mov r3, r8 ldrb r0, [r3] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 mov r1, r9 strh r1, [r0, 0x6] ldrb r0, [r3] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, 0x1C adds r0, r4 ldr r1, _0803806C @ =sub_8033EEC str r1, [r0] ldr r1, _08038070 @ =gUnknown_3004FE0 ldrb r0, [r3] lsls r0, 2 adds r0, r1 ldr r1, _08038074 @ =sub_8035B20 str r1, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08038040: .4byte gUnknown_823EAC8 _08038044: .4byte gUnknown_2023BC4 _08038048: .4byte gUnknown_20244DC _0803804C: .4byte gUnknown_823932C _08038050: .4byte gUnknown_2023D44 _08038054: .4byte gUnknown_202063C _08038058: .4byte 0x0000fffe _0803805C: .4byte gUnknown_8239A1C _08038060: .4byte gUnknown_823957C _08038064: .4byte 0x000003ff _08038068: .4byte 0xfffffc00 _0803806C: .4byte sub_8033EEC _08038070: .4byte gUnknown_3004FE0 _08038074: .4byte sub_8035B20 thumb_func_end sub_8037EA4 thumb_func_start sub_8038078 sub_8038078: @ 8038078 push {r4-r6,lr} ldr r6, _08038108 @ =gUnknown_2023D44 ldr r4, _0803810C @ =gUnknown_2023BC4 ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _08038110 @ =gUnknown_202063C adds r0, r5 bl sub_80750FC ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x23 strh r1, [r0, 0x2E] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x8C lsls r1, 1 strh r1, [r0, 0x32] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r0, 0x22] strh r1, [r0, 0x36] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08038114 @ =sub_8075590 str r1, [r0] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08038118 @ =nullsub_8 bl sub_8074A68 ldr r1, _0803811C @ =gUnknown_3004FE0 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08038120 @ =sub_8035B58 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08038108: .4byte gUnknown_2023D44 _0803810C: .4byte gUnknown_2023BC4 _08038110: .4byte gUnknown_202063C _08038114: .4byte sub_8075590 _08038118: .4byte nullsub_8 _0803811C: .4byte gUnknown_3004FE0 _08038120: .4byte sub_8035B58 thumb_func_end sub_8038078 thumb_func_start sub_8038124 sub_8038124: @ 8038124 push {r4-r6,lr} ldr r6, _08038170 @ =gUnknown_2024018 ldr r4, [r6] ldr r5, _08038174 @ =gUnknown_2023BC4 ldrb r2, [r5] ldr r0, [r4, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r3, r1, r0 ldrb r0, [r3, 0x4] cmp r0, 0 bne _08038178 ldr r1, [r4] lsls r0, r2, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08038158 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl sub_80341D8 _08038158: ldr r0, [r6] ldrb r1, [r5] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x4] adds r1, 0x1 strb r1, [r0, 0x4] b _080381B4 .align 2, 0 _08038170: .4byte gUnknown_2024018 _08038174: .4byte gUnknown_2023BC4 _08038178: ldrb r1, [r3] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080381B4 strb r0, [r3, 0x4] movs r0, 0x10 movs r1, 0x3F bl sub_80722F4 ldr r2, _080381BC @ =gUnknown_202063C ldr r1, _080381C0 @ =gUnknown_2023D44 ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _080381C4 @ =sub_8011EA0 str r1, [r0] ldr r1, _080381C8 @ =gUnknown_3004FE0 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _080381CC @ =sub_803612C str r1, [r0] _080381B4: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080381BC: .4byte gUnknown_202063C _080381C0: .4byte gUnknown_2023D44 _080381C4: .4byte sub_8011EA0 _080381C8: .4byte gUnknown_3004FE0 _080381CC: .4byte sub_803612C thumb_func_end sub_8038124 thumb_func_start sub_80381D0 sub_80381D0: @ 80381D0 push {lr} bl sub_8036530 pop {r0} bx r0 thumb_func_end sub_80381D0 thumb_func_start sub_80381DC sub_80381DC: @ 80381DC push {lr} bl sub_8036530 pop {r0} bx r0 thumb_func_end sub_80381DC thumb_func_start sub_80381E8 sub_80381E8: @ 80381E8 push {lr} bl sub_8036530 pop {r0} bx r0 thumb_func_end sub_80381E8 thumb_func_start sub_80381F4 sub_80381F4: @ 80381F4 push {lr} bl sub_8036530 pop {r0} bx r0 thumb_func_end sub_80381F4 thumb_func_start sub_8038200 sub_8038200: @ 8038200 push {r4-r6,lr} ldr r6, _080382E4 @ =gUnknown_2023BC4 ldrb r0, [r6] bl sub_80342A4 lsls r0, 24 cmp r0, 0 beq _08038212 b _08038326 _08038212: ldr r0, _080382E8 @ =gUnknown_2022BC4 mov r12, r0 ldrb r2, [r6] lsls r2, 9 adds r0, 0x1 adds r0, r2, r0 ldrb r0, [r0] mov r1, r12 adds r1, 0x2 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 ldr r5, _080382EC @ =gUnknown_2037F16 mov r1, r12 adds r1, 0x3 adds r2, r1 ldrb r1, [r2] strb r1, [r5] ldr r4, _080382F0 @ =gUnknown_2037EEC ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x4 adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0x5 adds r2, r1 ldrb r1, [r2] lsls r1, 8 orrs r3, r1 strh r3, [r4] ldr r4, _080382F4 @ =gUnknown_2037EE8 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x6 adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0x7 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 8 orrs r3, r1 mov r1, r12 adds r1, 0x8 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 16 orrs r3, r1 mov r1, r12 adds r1, 0x9 adds r2, r1 ldrb r1, [r2] lsls r1, 24 orrs r3, r1 str r3, [r4] ldr r3, _080382F8 @ =gUnknown_2037EFE ldrb r1, [r6] lsls r1, 9 mov r2, r12 adds r2, 0xA adds r1, r2 ldrb r1, [r1] strb r1, [r3] ldr r4, _080382FC @ =gUnknown_2037F00 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0xC adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0xD adds r2, r1 ldrb r1, [r2] lsls r1, 8 orrs r3, r1 strh r3, [r4] ldr r3, _08038300 @ =gUnknown_2037EE4 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x10 adds r2, r1 str r2, [r3] ldr r3, _08038304 @ =gUnknown_2024008 ldrb r1, [r6] lsls r1, 2 adds r1, r3 ldr r2, [r2] str r2, [r1] ldrb r1, [r5] bl sub_80342A0 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _08038308 bl sub_8036530 b _08038326 .align 2, 0 _080382E4: .4byte gUnknown_2023BC4 _080382E8: .4byte gUnknown_2022BC4 _080382EC: .4byte gUnknown_2037F16 _080382F0: .4byte gUnknown_2037EEC _080382F4: .4byte gUnknown_2037EE8 _080382F8: .4byte gUnknown_2037EFE _080382FC: .4byte gUnknown_2037F00 _08038300: .4byte gUnknown_2037EE4 _08038304: .4byte gUnknown_2024008 _08038308: ldr r0, _0803832C @ =gUnknown_2024018 ldr r0, [r0] ldrb r1, [r6] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 strb r3, [r0, 0x4] ldr r1, _08038330 @ =gUnknown_3004FE0 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _08038334 @ =sub_8038338 str r1, [r0] _08038326: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803832C: .4byte gUnknown_2024018 _08038330: .4byte gUnknown_3004FE0 _08038334: .4byte sub_8038338 thumb_func_end sub_8038200 thumb_func_start sub_8038338 sub_8038338: @ 8038338 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r2, _08038384 @ =gUnknown_2022BC4 ldr r6, _08038388 @ =gUnknown_2023BC4 ldrb r3, [r6] lsls r1, r3, 9 adds r0, r2, 0x1 mov r10, r0 adds r0, r1, r0 ldrb r4, [r0] adds r5, r2, 0x2 mov r9, r5 adds r0, r1, r5 ldrb r0, [r0] lsls r0, 8 orrs r4, r0 adds r2, 0xB adds r1, r2 ldrb r1, [r1] mov r8, r1 ldr r7, _0803838C @ =gUnknown_2024018 ldr r5, [r7] ldr r1, [r5, 0x4] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r0, r1 ldrb r2, [r0, 0x4] cmp r2, 0x1 beq _080383D0 cmp r2, 0x1 bgt _08038390 cmp r2, 0 beq _0803839A b _080384AC .align 2, 0 _08038384: .4byte gUnknown_2022BC4 _08038388: .4byte gUnknown_2023BC4 _0803838C: .4byte gUnknown_2024018 _08038390: cmp r2, 0x2 beq _080383FA cmp r2, 0x3 beq _08038470 b _080384AC _0803839A: ldr r1, [r5] lsls r0, r3, 2 adds r1, r0, r1 ldrb r2, [r1] movs r0, 0xC ands r0, r2 cmp r0, 0x4 bne _080383BC movs r0, 0x8 orrs r0, r2 strb r0, [r1] ldrb r2, [r6] adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl sub_80341D8 _080383BC: ldr r0, [r7] ldrb r1, [r6] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x1 strb r1, [r0, 0x4] b _080384AC _080383D0: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080384AC movs r0, 0 bl sub_8035450 adds r0, r4, 0 bl sub_807259C ldr r0, [r7] ldrb r1, [r6] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x2 strb r1, [r0, 0x4] b _080384AC _080383FA: ldr r0, _08038460 @ =gUnknown_2037EDC ldr r0, [r0] bl _call_via_r0 ldr r0, _08038464 @ =gUnknown_2037EE1 ldrb r0, [r0] cmp r0, 0 bne _080384AC movs r0, 0x1 bl sub_8035450 ldr r0, [r7] ldrb r2, [r6] ldr r1, [r0] lsls r0, r2, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08038448 mov r0, r8 cmp r0, 0x1 bhi _08038448 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 bl sub_80341D8 ldr r0, [r7] ldrb r1, [r6] ldr r0, [r0] lsls r1, 2 adds r1, r0 ldrb r2, [r1] movs r0, 0x9 negs r0, r0 ands r0, r2 strb r0, [r1] _08038448: ldr r0, _08038468 @ =gUnknown_2024018 ldr r2, [r0] ldr r0, _0803846C @ =gUnknown_2023BC4 ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x3 strb r1, [r0, 0x4] b _080384AC .align 2, 0 _08038460: .4byte gUnknown_2037EDC _08038464: .4byte gUnknown_2037EE1 _08038468: .4byte gUnknown_2024018 _0803846C: .4byte gUnknown_2023BC4 _08038470: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080384AC bl sub_8034B40 ldrb r0, [r6] lsls r2, r0, 9 mov r3, r10 adds r1, r2, r3 ldrb r1, [r1] add r2, r9 ldrb r2, [r2] lsls r2, 8 orrs r1, r2 bl sub_8035200 ldr r0, [r7] ldrb r1, [r6] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 strb r4, [r0, 0x4] bl sub_8036530 _080384AC: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8038338 thumb_func_start sub_80384BC sub_80384BC: @ 80384BC push {r4,lr} ldr r0, _080384F0 @ =gUnknown_2022974 movs r1, 0 strh r1, [r0] ldr r0, _080384F4 @ =gUnknown_2022976 strh r1, [r0] ldr r0, _080384F8 @ =gUnknown_2023BC4 ldrb r0, [r0] lsls r0, 9 ldr r1, _080384FC @ =gUnknown_2022BC6 adds r4, r0, r1 ldrh r0, [r4] bl sub_80D7274 ldrh r0, [r4] bl sub_80D89B0 lsls r0, 24 cmp r0, 0 beq _08038504 ldr r0, _08038500 @ =gUnknown_202298C movs r1, 0x40 bl sub_80D87BC b _0803850C .align 2, 0 _080384F0: .4byte gUnknown_2022974 _080384F4: .4byte gUnknown_2022976 _080384F8: .4byte gUnknown_2023BC4 _080384FC: .4byte gUnknown_2022BC6 _08038500: .4byte gUnknown_202298C _08038504: ldr r0, _08038534 @ =gUnknown_202298C movs r1, 0 bl sub_80D87BC _0803850C: ldr r0, _08038538 @ =gUnknown_2022B4C ldr r0, [r0] movs r1, 0x10 ands r0, r1 cmp r0, 0 beq _08038568 ldrh r1, [r4] cmp r1, 0xE3 beq _0803854C ldr r0, _0803853C @ =0x0000017f cmp r1, r0 bne _08038568 ldr r1, _08038540 @ =gUnknown_3004FE0 ldr r0, _08038544 @ =gUnknown_2023BC4 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _08038548 @ =sub_80E85C0 b _08038574 .align 2, 0 _08038534: .4byte gUnknown_202298C _08038538: .4byte gUnknown_2022B4C _0803853C: .4byte 0x0000017f _08038540: .4byte gUnknown_3004FE0 _08038544: .4byte gUnknown_2023BC4 _08038548: .4byte sub_80E85C0 _0803854C: ldr r1, _0803855C @ =gUnknown_3004FE0 ldr r0, _08038560 @ =gUnknown_2023BC4 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _08038564 @ =sub_80E8598 b _08038574 .align 2, 0 _0803855C: .4byte gUnknown_3004FE0 _08038560: .4byte gUnknown_2023BC4 _08038564: .4byte sub_80E8598 _08038568: ldr r1, _0803857C @ =gUnknown_3004FE0 ldr r0, _08038580 @ =gUnknown_2023BC4 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _08038584 @ =sub_80361E4 _08038574: str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0803857C: .4byte gUnknown_3004FE0 _08038580: .4byte gUnknown_2023BC4 _08038584: .4byte sub_80361E4 thumb_func_end sub_80384BC thumb_func_start sub_8038588 sub_8038588: @ 8038588 push {lr} bl sub_8036530 pop {r0} bx r0 thumb_func_end sub_8038588 thumb_func_start sub_8038594 sub_8038594: @ 8038594 push {lr} bl sub_8039C84 bl sub_8036530 pop {r0} bx r0 thumb_func_end sub_8038594 thumb_func_start sub_80385A4 sub_80385A4: @ 80385A4 push {lr} bl sub_8036530 pop {r0} bx r0 thumb_func_end sub_80385A4 thumb_func_start sub_80385B0 sub_80385B0: @ 80385B0 push {r4-r6,lr} ldr r6, _080385E4 @ =gUnknown_2023BC4 ldrb r0, [r6] lsls r0, 9 ldr r1, _080385E8 @ =gUnknown_2022BC8 adds r5, r0, r1 ldr r0, _080385EC @ =gUnknown_2022B4C ldr r0, [r0] movs r1, 0x93 lsls r1, 3 ands r0, r1 cmp r0, 0 beq _08038680 bl sub_80C6DA0 bl sub_80C6F44 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 beq _080385F0 cmp r4, 0x5 bne _080385FC movs r0, 0x1 movs r1, 0x4 b _080385F4 .align 2, 0 _080385E4: .4byte gUnknown_2023BC4 _080385E8: .4byte gUnknown_2022BC8 _080385EC: .4byte gUnknown_2022B4C _080385F0: movs r0, 0x1 movs r1, 0x3 _080385F4: movs r2, 0 bl sub_800E848 b _08038668 _080385FC: ldr r3, _08038670 @ =gUnknown_8250C04 lsls r0, r4, 1 adds r2, r5, r0 ldrh r1, [r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x6] movs r0, 0x12 ands r0, r1 cmp r0, 0 beq _0803861C ldr r1, _08038674 @ =gUnknown_2023D6C ldrb r0, [r6] strb r0, [r1] _0803861C: ldrh r1, [r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x6] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08038656 movs r0, 0 bl sub_80751E8 ldr r5, _08038674 @ =gUnknown_2023D6C strb r0, [r5] ldr r0, _08038678 @ =gUnknown_2023D70 ldrb r1, [r0] ldr r2, _0803867C @ =gUnknown_825E45C ldrb r0, [r5] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08038656 movs r0, 0x2 bl sub_80751E8 strb r0, [r5] _08038656: ldr r0, _08038674 @ =gUnknown_2023D6C ldrb r0, [r0] lsls r0, 8 orrs r4, r0 movs r0, 0x1 movs r1, 0xA adds r2, r4, 0 bl sub_800E848 _08038668: bl sub_8036530 b _08038712 .align 2, 0 _08038670: .4byte gUnknown_8250C04 _08038674: .4byte gUnknown_2023D6C _08038678: .4byte gUnknown_2023D70 _0803867C: .4byte gUnknown_825E45C _08038680: movs r6, 0x3 _08038682: bl sub_8044EC8 adds r4, r0, 0 ands r4, r6 lsls r0, r4, 1 adds r0, r5, r0 ldrh r2, [r0] cmp r2, 0 beq _08038682 ldr r1, _080386BC @ =gUnknown_8250C04 lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x6] movs r0, 0x12 ands r0, r1 cmp r0, 0 beq _080386C4 ldr r0, _080386C0 @ =gUnknown_2023BC4 ldrb r0, [r0] lsls r0, 8 orrs r4, r0 movs r0, 0x1 movs r1, 0xA adds r2, r4, 0 bl sub_800E848 b _0803870E .align 2, 0 _080386BC: .4byte gUnknown_8250C04 _080386C0: .4byte gUnknown_2023BC4 _080386C4: ldr r0, _080386F4 @ =gUnknown_2022B4C ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080386F8 bl sub_8044EC8 movs r1, 0x2 ands r1, r0 lsls r1, 24 lsrs r1, 24 adds r0, r1, 0 bl sub_80751E8 adds r2, r0, 0 lsls r2, 24 lsrs r2, 16 orrs r2, r4 movs r0, 0x1 movs r1, 0xA bl sub_800E848 b _0803870E .align 2, 0 _080386F4: .4byte gUnknown_2022B4C _080386F8: movs r0, 0 bl sub_80751E8 adds r2, r0, 0 lsls r2, 24 lsrs r2, 16 orrs r2, r4 movs r0, 0x1 movs r1, 0xA bl sub_800E848 _0803870E: bl sub_8036530 _08038712: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80385B0 thumb_func_start sub_8038718 sub_8038718: @ 8038718 push {lr} ldr r0, _0803873C @ =gUnknown_2023BC4 ldrb r0, [r0] lsrs r0, 1 ldr r1, _08038740 @ =gUnknown_2023FE8 ldr r1, [r1] lsls r0, 1 adds r0, r1 adds r0, 0xC0 ldrb r1, [r0] movs r0, 0x1 bl sub_800E8AC bl sub_8036530 pop {r0} bx r0 .align 2, 0 _0803873C: .4byte gUnknown_2023BC4 _08038740: .4byte gUnknown_2023FE8 thumb_func_end sub_8038718 thumb_func_start sub_8038744 sub_8038744: @ 8038744 push {r4-r6,lr} ldr r6, _08038788 @ =gUnknown_2023BC4 ldrb r0, [r6] bl sub_80751D8 lsls r0, 24 lsrs r0, 25 ldr r5, _0803878C @ =gUnknown_2023FE8 ldr r1, [r5] adds r0, r1 adds r0, 0x92 ldrb r0, [r0] cmp r0, 0x6 bne _080387E4 bl sub_8039E3C lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 bne _0803880A ldr r0, _08038790 @ =gUnknown_2022B4C ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _08038794 movs r0, 0x1 bl sub_80751E8 lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 b _080387A8 .align 2, 0 _08038788: .4byte gUnknown_2023BC4 _0803878C: .4byte gUnknown_2023FE8 _08038790: .4byte gUnknown_2022B4C _08038794: movs r0, 0x1 bl sub_80751E8 lsls r0, 24 lsrs r6, r0, 24 movs r0, 0x3 bl sub_80751E8 lsls r0, 24 lsrs r5, r0, 24 _080387A8: movs r4, 0 b _080387AE _080387AC: adds r4, 0x1 _080387AE: cmp r4, 0x5 bgt _0803880A movs r0, 0x64 muls r0, r4 ldr r1, _080387DC @ =gUnknown_202402C adds r0, r1 movs r1, 0x39 bl sub_803FBE8 cmp r0, 0 beq _080387AC ldr r1, _080387E0 @ =gUnknown_2023BCE lsls r0, r6, 1 adds r0, r1 ldrh r0, [r0] cmp r4, r0 beq _080387AC lsls r0, r5, 1 adds r0, r1 ldrh r0, [r0] cmp r4, r0 beq _080387AC b _0803880A .align 2, 0 _080387DC: .4byte gUnknown_202402C _080387E0: .4byte gUnknown_2023BCE _080387E4: ldrb r0, [r6] bl sub_80751D8 lsls r0, 24 lsrs r0, 25 ldr r1, [r5] adds r0, r1 adds r0, 0x92 ldrb r4, [r0] ldrb r0, [r6] bl sub_80751D8 lsls r0, 24 lsrs r0, 25 ldr r1, [r5] adds r0, r1 adds r0, 0x92 movs r1, 0x6 strb r1, [r0] _0803880A: ldr r0, _08038830 @ =gUnknown_2023BC4 ldrb r0, [r0] ldr r1, _08038834 @ =gUnknown_2023FE8 ldr r1, [r1] adds r0, r1 adds r0, 0x5C strb r4, [r0] lsls r1, r4, 24 lsrs r1, 24 movs r0, 0x1 movs r2, 0 bl sub_800E874 bl sub_8036530 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08038830: .4byte gUnknown_2023BC4 _08038834: .4byte gUnknown_2023FE8 thumb_func_end sub_8038744 thumb_func_start sub_8038838 sub_8038838: @ 8038838 push {lr} bl sub_8036530 pop {r0} bx r0 thumb_func_end sub_8038838 thumb_func_start sub_8038844 sub_8038844: @ 8038844 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 movs r0, 0 bl sub_8034964 ldr r3, _080388BC @ =gUnknown_2022BC4 ldr r0, _080388C0 @ =gUnknown_2023BC4 mov r9, r0 ldrb r4, [r0] lsls r2, r4, 9 adds r0, r3, 0x3 adds r0, r2, r0 ldrb r1, [r0] lsls r1, 8 adds r3, 0x2 adds r2, r3 ldrb r0, [r2] orrs r0, r1 lsls r0, 16 asrs r7, r0, 16 ldr r0, _080388C4 @ =0x00007fff cmp r7, r0 beq _080388D4 ldr r6, _080388C8 @ =gUnknown_2023BCE lsls r0, r4, 1 adds r0, r6 ldrh r0, [r0] movs r5, 0x64 muls r0, r5 ldr r4, _080388CC @ =gUnknown_202402C adds r0, r4 movs r1, 0x3A bl sub_803FBE8 mov r8, r0 mov r1, r9 ldrb r0, [r1] lsls r0, 1 adds r0, r6 ldrh r0, [r0] muls r0, r5 adds r0, r4 movs r1, 0x39 bl sub_803FBE8 adds r3, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r1, _080388D0 @ =gUnknown_3004FF0 adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] mov r2, r8 bl sub_8048150 b _080388FE .align 2, 0 _080388BC: .4byte gUnknown_2022BC4 _080388C0: .4byte gUnknown_2023BC4 _080388C4: .4byte 0x00007fff _080388C8: .4byte gUnknown_2023BCE _080388CC: .4byte gUnknown_202402C _080388D0: .4byte gUnknown_3004FF0 _080388D4: ldr r1, _0803891C @ =gUnknown_2023BCE lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08038920 @ =gUnknown_202402C adds r0, r1 movs r1, 0x3A bl sub_803FBE8 adds r2, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r1, _08038924 @ =gUnknown_3004FF0 adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] movs r3, 0 bl sub_8048150 _080388FE: ldr r1, _08038928 @ =gUnknown_3004FE0 ldr r0, _0803892C @ =gUnknown_2023BC4 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _08038930 @ =sub_80360A0 str r1, [r0] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803891C: .4byte gUnknown_2023BCE _08038920: .4byte gUnknown_202402C _08038924: .4byte gUnknown_3004FF0 _08038928: .4byte gUnknown_3004FE0 _0803892C: .4byte gUnknown_2023BC4 _08038930: .4byte sub_80360A0 thumb_func_end sub_8038844 thumb_func_start sub_8038934 sub_8038934: @ 8038934 push {lr} bl sub_8036530 pop {r0} bx r0 thumb_func_end sub_8038934 thumb_func_start sub_8038940 sub_8038940: @ 8038940 push {r4,lr} ldr r4, _0803899C @ =gUnknown_2023BC4 ldrb r0, [r4] bl sub_80342A4 lsls r0, 24 cmp r0, 0 bne _08038994 ldr r0, _080389A0 @ =gUnknown_3004FF0 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] ldr r2, _080389A4 @ =gUnknown_2023BCE lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _080389A8 @ =gUnknown_202402C adds r1, r2 movs r2, 0x9 bl sub_8049D98 ldrb r2, [r4] ldr r0, _080389AC @ =gUnknown_2024018 ldr r0, [r0] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1] movs r0, 0x11 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r1, _080389B0 @ =gUnknown_3004FE0 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _080389B4 @ =sub_80364D0 str r1, [r0] _08038994: pop {r4} pop {r0} bx r0 .align 2, 0 _0803899C: .4byte gUnknown_2023BC4 _080389A0: .4byte gUnknown_3004FF0 _080389A4: .4byte gUnknown_2023BCE _080389A8: .4byte gUnknown_202402C _080389AC: .4byte gUnknown_2024018 _080389B0: .4byte gUnknown_3004FE0 _080389B4: .4byte sub_80364D0 thumb_func_end sub_8038940 thumb_func_start sub_80389B8 sub_80389B8: @ 80389B8 push {r4,r5,lr} ldr r5, _08038A10 @ =gUnknown_2023BC4 ldrb r0, [r5] bl sub_80342A4 lsls r0, 24 cmp r0, 0 bne _08038A08 ldr r4, _08038A14 @ =gUnknown_2022BC4 ldrb r3, [r5] lsls r3, 9 adds r0, r4, 0x1 adds r0, r3, r0 ldrb r0, [r0] adds r1, r4, 0x2 adds r1, r3, r1 ldrb r1, [r1] adds r2, r4, 0x3 adds r2, r3, r2 ldrb r2, [r2] lsls r2, 8 orrs r1, r2 adds r2, r4, 0x4 adds r2, r3, r2 ldrb r2, [r2] lsls r2, 16 orrs r1, r2 adds r4, 0x5 adds r3, r4 ldrb r2, [r3] lsls r2, 24 orrs r1, r2 bl sub_8033F1C ldr r1, _08038A18 @ =gUnknown_3004FE0 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _08038A1C @ =sub_80364D0 str r1, [r0] _08038A08: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08038A10: .4byte gUnknown_2023BC4 _08038A14: .4byte gUnknown_2022BC4 _08038A18: .4byte gUnknown_3004FE0 _08038A1C: .4byte sub_80364D0 thumb_func_end sub_80389B8 thumb_func_start sub_8038A20 sub_8038A20: @ 8038A20 push {lr} bl sub_8036530 pop {r0} bx r0 thumb_func_end sub_8038A20 thumb_func_start sub_8038A2C sub_8038A2C: @ 8038A2C push {lr} bl sub_8036530 pop {r0} bx r0 thumb_func_end sub_8038A2C thumb_func_start sub_8038A38 sub_8038A38: @ 8038A38 push {lr} bl sub_8036530 pop {r0} bx r0 thumb_func_end sub_8038A38 thumb_func_start sub_8038A44 sub_8038A44: @ 8038A44 push {lr} bl sub_8036530 pop {r0} bx r0 thumb_func_end sub_8038A44 thumb_func_start sub_8038A50 sub_8038A50: @ 8038A50 push {lr} bl sub_8036530 pop {r0} bx r0 thumb_func_end sub_8038A50 thumb_func_start sub_8038A5C sub_8038A5C: @ 8038A5C push {lr} bl sub_8036530 pop {r0} bx r0 thumb_func_end sub_8038A5C thumb_func_start sub_8038A68 sub_8038A68: @ 8038A68 push {lr} bl sub_8036530 pop {r0} bx r0 thumb_func_end sub_8038A68 thumb_func_start sub_8038A74 sub_8038A74: @ 8038A74 push {lr} bl sub_8036530 pop {r0} bx r0 thumb_func_end sub_8038A74 thumb_func_start sub_8038A80 sub_8038A80: @ 8038A80 push {lr} bl sub_8036530 pop {r0} bx r0 thumb_func_end sub_8038A80 thumb_func_start sub_8038A8C sub_8038A8C: @ 8038A8C push {lr} ldr r2, _08038AA4 @ =gUnknown_2022870 ldrb r1, [r2] movs r0, 0x80 negs r0, r0 ands r0, r1 strb r0, [r2] bl sub_8036530 pop {r0} bx r0 .align 2, 0 _08038AA4: .4byte gUnknown_2022870 thumb_func_end sub_8038A8C thumb_func_start sub_8038AA8 sub_8038AA8: @ 8038AA8 push {lr} ldr r3, _08038AD4 @ =gUnknown_2022870 ldr r1, _08038AD8 @ =gUnknown_2022BC4 ldr r0, _08038ADC @ =gUnknown_2023BC4 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] movs r1, 0x7F ands r1, r0 ldrb r2, [r3] movs r0, 0x80 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] bl sub_8036530 pop {r0} bx r0 .align 2, 0 _08038AD4: .4byte gUnknown_2022870 _08038AD8: .4byte gUnknown_2022BC4 _08038ADC: .4byte gUnknown_2023BC4 thumb_func_end sub_8038AA8 thumb_func_start sub_8038AE0 sub_8038AE0: @ 8038AE0 push {lr} ldr r2, _08038AF4 @ =gUnknown_2022870 ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] bl sub_8036530 pop {r0} bx r0 .align 2, 0 _08038AF4: .4byte gUnknown_2022870 thumb_func_end sub_8038AE0 thumb_func_start sub_8038AF8 sub_8038AF8: @ 8038AF8 push {lr} ldr r3, _08038B1C @ =gUnknown_2022870 ldr r1, [r3] lsls r1, 24 lsrs r1, 31 movs r0, 0x1 eors r1, r0 lsls r1, 7 ldrb r2, [r3] movs r0, 0x7F ands r0, r2 orrs r0, r1 strb r0, [r3] bl sub_8036530 pop {r0} bx r0 .align 2, 0 _08038B1C: .4byte gUnknown_2022870 thumb_func_end sub_8038AF8 thumb_func_start sub_8038B20 sub_8038B20: @ 8038B20 push {r4,lr} ldr r3, _08038B48 @ =gUnknown_202063C ldr r2, _08038B4C @ =gUnknown_2023D44 ldr r4, _08038B50 @ =gUnknown_2023BC4 ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 bge _08038B54 bl sub_8036530 b _08038B7E .align 2, 0 _08038B48: .4byte gUnknown_202063C _08038B4C: .4byte gUnknown_2023D44 _08038B50: .4byte gUnknown_2023BC4 _08038B54: ldr r1, _08038B84 @ =gUnknown_2024005 movs r0, 0x1 strb r0, [r1] ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0 strh r1, [r0, 0x30] ldrb r0, [r4] bl sub_804BE70 ldr r1, _08038B88 @ =gUnknown_3004FE0 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08038B8C @ =sub_80361FC str r1, [r0] _08038B7E: pop {r4} pop {r0} bx r0 .align 2, 0 _08038B84: .4byte gUnknown_2024005 _08038B88: .4byte gUnknown_3004FE0 _08038B8C: .4byte sub_80361FC thumb_func_end sub_8038B20 thumb_func_start sub_8038B90 sub_8038B90: @ 8038B90 push {lr} bl sub_8036530 pop {r0} bx r0 thumb_func_end sub_8038B90 thumb_func_start sub_8038B9C sub_8038B9C: @ 8038B9C push {r4,lr} ldr r4, _08038BD8 @ =gUnknown_2023BC4 ldrb r0, [r4] bl sub_80751C4 lsls r0, 24 movs r3, 0x3F cmp r0, 0 bne _08038BB0 movs r3, 0xC0 _08038BB0: ldr r2, _08038BDC @ =gUnknown_2022BC4 ldrb r1, [r4] lsls r1, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 lsls r1, r3, 24 asrs r1, 24 bl sub_80722F4 bl sub_8036530 pop {r4} pop {r0} bx r0 .align 2, 0 _08038BD8: .4byte gUnknown_2023BC4 _08038BDC: .4byte gUnknown_2022BC4 thumb_func_end sub_8038B9C thumb_func_start sub_8038BE0 sub_8038BE0: @ 8038BE0 push {lr} ldr r2, _08038C08 @ =gUnknown_2022BC4 ldr r0, _08038C0C @ =gUnknown_2023BC4 ldrb r1, [r0] lsls r1, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 bl sub_8071C60 bl sub_8036530 pop {r0} bx r0 .align 2, 0 _08038C08: .4byte gUnknown_2022BC4 _08038C0C: .4byte gUnknown_2023BC4 thumb_func_end sub_8038BE0 thumb_func_start sub_8038C10 sub_8038C10: @ 8038C10 push {lr} ldr r1, _08038C40 @ =gUnknown_2023BCE ldr r0, _08038C44 @ =gUnknown_2023BC4 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08038C48 @ =gUnknown_202402C adds r0, r1 movs r1, 0xB bl sub_803FBE8 lsls r0, 16 lsrs r0, 16 movs r1, 0x19 movs r2, 0x5 bl sub_8071E60 bl sub_8036530 pop {r0} bx r0 .align 2, 0 _08038C40: .4byte gUnknown_2023BCE _08038C44: .4byte gUnknown_2023BC4 _08038C48: .4byte gUnknown_202402C thumb_func_end sub_8038C10 thumb_func_start sub_8038C4C sub_8038C4C: @ 8038C4C push {lr} ldr r1, _08038C74 @ =gUnknown_2022BC4 ldr r0, _08038C78 @ =gUnknown_2023BC4 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] bl sub_80BC3A0 ldr r2, _08038C7C @ =gUnknown_2023F4C ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] bl sub_8036530 pop {r0} bx r0 .align 2, 0 _08038C74: .4byte gUnknown_2022BC4 _08038C78: .4byte gUnknown_2023BC4 _08038C7C: .4byte gUnknown_2023F4C thumb_func_end sub_8038C4C thumb_func_start sub_8038C80 sub_8038C80: @ 8038C80 push {r4-r6,lr} ldr r5, _08038D60 @ =gUnknown_2023D44 ldr r6, _08038D64 @ =gUnknown_2023BC4 ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08038D68 @ =gUnknown_202063C adds r0, r4 bl sub_80750FC ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x23 strh r1, [r0, 0x2E] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x8C lsls r1, 1 strh r1, [r0, 0x32] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x22] strh r1, [r0, 0x36] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r4, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08038D6C @ =sub_8075590 str r1, [r0] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _08038D70 @ =sub_8038D90 bl sub_8074A68 ldr r0, _08038D74 @ =sub_8038DC4 movs r1, 0x5 bl sub_807741C lsls r0, 24 lsrs r0, 24 ldr r4, _08038D78 @ =gUnknown_3005090 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 ldrb r0, [r6] strh r0, [r1, 0x8] ldr r3, _08038D7C @ =gUnknown_2024018 ldr r0, [r3] ldrb r2, [r6] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08038D42 ldr r0, _08038D80 @ =gUnknown_2024000 adds r0, r2, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 ldr r1, _08038D84 @ =sub_80491B0 str r1, [r0] _08038D42: ldr r0, [r3] ldr r2, [r0, 0x8] ldrb r0, [r2, 0x9] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x9] ldr r1, _08038D88 @ =gUnknown_3004FE0 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _08038D8C @ =nullsub_17 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08038D60: .4byte gUnknown_2023D44 _08038D64: .4byte gUnknown_2023BC4 _08038D68: .4byte gUnknown_202063C _08038D6C: .4byte sub_8075590 _08038D70: .4byte sub_8038D90 _08038D74: .4byte sub_8038DC4 _08038D78: .4byte gUnknown_3005090 _08038D7C: .4byte gUnknown_2024018 _08038D80: .4byte gUnknown_2024000 _08038D84: .4byte sub_80491B0 _08038D88: .4byte gUnknown_3004FE0 _08038D8C: .4byte nullsub_17 thumb_func_end sub_8038C80 thumb_func_start sub_8038D90 sub_8038D90: @ 8038D90 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x6] bl sub_803477C ldrh r0, [r4, 0x38] ldr r1, _08038DBC @ =0x000003ff ands r1, r0 ldrh r2, [r4, 0x4] ldr r0, _08038DC0 @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] adds r0, r4, 0 bl sub_80077D8 adds r0, r4, 0 bl sub_8007280 pop {r4} pop {r0} bx r0 .align 2, 0 _08038DBC: .4byte 0x000003ff _08038DC0: .4byte 0xfffffc00 thumb_func_end sub_8038D90 thumb_func_start sub_8038DC4 sub_8038DC4: @ 8038DC4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r7, _08038E1C @ =gUnknown_2023BC4 ldrb r0, [r7] mov r9, r0 ldr r1, _08038E20 @ =gUnknown_3005090 mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x8] strb r0, [r7] bl sub_8075290 lsls r0, 24 cmp r0, 0 beq _08038DFE ldr r0, _08038E24 @ =gUnknown_2022B4C ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _08038E30 _08038DFE: ldr r0, _08038E28 @ =gUnknown_2022BC4 ldrb r1, [r7] lsls r2, r1, 9 adds r0, 0x1 adds r2, r0 ldr r0, _08038E2C @ =gUnknown_2023BCE lsls r1, 1 adds r1, r0 ldrh r0, [r1] strb r0, [r2] ldrb r0, [r7] movs r1, 0 bl sub_8037A28 b _08038E70 .align 2, 0 _08038E1C: .4byte gUnknown_2023BC4 _08038E20: .4byte gUnknown_3005090 _08038E24: .4byte gUnknown_2022B4C _08038E28: .4byte gUnknown_2022BC4 _08038E2C: .4byte gUnknown_2023BCE _08038E30: ldr r4, _08038E94 @ =gUnknown_2022BC4 ldrb r0, [r7] lsls r1, r0, 9 adds r4, 0x1 adds r1, r4 ldr r6, _08038E98 @ =gUnknown_2023BCE lsls r0, 1 adds r0, r6 ldrh r0, [r0] strb r0, [r1] ldrb r0, [r7] movs r1, 0 bl sub_8037A28 ldrb r0, [r7] movs r5, 0x2 eors r0, r5 strb r0, [r7] ldrb r0, [r7] lsls r1, r0, 9 adds r1, r4 lsls r0, 1 adds r0, r6 ldrh r0, [r0] strb r0, [r1] ldrb r0, [r7] movs r1, 0 bl sub_8037A28 ldrb r0, [r7] eors r0, r5 strb r0, [r7] _08038E70: ldr r1, _08038E9C @ =gUnknown_3004FE0 ldr r2, _08038EA0 @ =gUnknown_2023BC4 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _08038EA4 @ =sub_8035DF0 str r1, [r0] mov r0, r9 strb r0, [r2] mov r0, r8 bl sub_8077508 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08038E94: .4byte gUnknown_2022BC4 _08038E98: .4byte gUnknown_2023BCE _08038E9C: .4byte gUnknown_3004FE0 _08038EA0: .4byte gUnknown_2023BC4 _08038EA4: .4byte sub_8035DF0 thumb_func_end sub_8038DC4 thumb_func_start sub_8038EA8 sub_8038EA8: @ 8038EA8 push {r4-r7,lr} ldr r1, _08038ED0 @ =gUnknown_2022BC4 ldr r0, _08038ED4 @ =gUnknown_2023BC4 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08038ED8 adds r0, r2, 0 bl sub_80751C4 lsls r0, 24 cmp r0, 0 bne _08038ED8 bl sub_8036530 b _08038FA2 .align 2, 0 _08038ED0: .4byte gUnknown_2022BC4 _08038ED4: .4byte gUnknown_2023BC4 _08038ED8: ldr r4, _08038F30 @ =gUnknown_2024018 ldr r0, [r4] ldr r3, _08038F34 @ =gUnknown_2023BC4 ldrb r1, [r3] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] ldr r1, _08038F38 @ =gUnknown_2022BC4 ldrb r2, [r3] lsls r0, r2, 9 adds r1, 0x2 adds r0, r1 ldrb r0, [r0] adds r7, r3, 0 cmp r0, 0 beq _08038F44 ldr r0, [r4] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r3, r0, r1 ldrb r2, [r3, 0x1] lsls r1, r2, 26 lsrs r0, r1, 27 cmp r0, 0x1 bhi _08038F3C adds r0, 0x1 movs r1, 0x1F ands r0, r1 lsls r0, 1 movs r1, 0x3F negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x1] b _08038FA2 .align 2, 0 _08038F30: .4byte gUnknown_2024018 _08038F34: .4byte gUnknown_2023BC4 _08038F38: .4byte gUnknown_2022BC4 _08038F3C: movs r0, 0x3F negs r0, r0 ands r0, r2 strb r0, [r3, 0x1] _08038F44: adds r5, r7, 0 ldrb r0, [r5] lsls r3, r0, 9 ldr r4, _08038FA8 @ =gUnknown_2022BC8 adds r1, r3, r4 subs r2, r4, 0x3 adds r2, r3, r2 ldrb r2, [r2] subs r4, 0x2 adds r3, r4 ldrb r3, [r3] bl sub_8048D14 ldr r2, _08038FAC @ =gUnknown_2024000 ldrb r1, [r5] adds r1, r2 movs r3, 0 strb r0, [r1] ldr r6, _08038FB0 @ =gUnknown_2024018 ldr r0, [r6] ldrb r1, [r5] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 strb r3, [r0, 0x5] ldrb r2, [r5] lsls r0, r2, 9 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _08038F96 ldr r0, [r6] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 movs r1, 0x5D strb r1, [r0, 0x5] _08038F96: ldr r0, _08038FB4 @ =gUnknown_3004FE0 ldrb r1, [r7] lsls r1, 2 adds r1, r0 ldr r0, _08038FB8 @ =sub_8038FBC str r0, [r1] _08038FA2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08038FA8: .4byte gUnknown_2022BC8 _08038FAC: .4byte gUnknown_2024000 _08038FB0: .4byte gUnknown_2024018 _08038FB4: .4byte gUnknown_3004FE0 _08038FB8: .4byte sub_8038FBC thumb_func_end sub_8038EA8 thumb_func_start sub_8038FBC sub_8038FBC: @ 8038FBC push {r4,lr} ldr r4, _08038FFC @ =gUnknown_2024018 ldr r0, [r4] ldr r3, _08039000 @ =gUnknown_2023BC4 ldrb r1, [r3] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x5] adds r2, r1, 0x1 strb r2, [r0, 0x5] lsls r1, 24 lsrs r1, 24 cmp r1, 0x5C bls _08038FF4 ldr r0, [r4] ldrb r1, [r3] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strb r1, [r0, 0x5] bl sub_8036530 _08038FF4: pop {r4} pop {r0} bx r0 .align 2, 0 _08038FFC: .4byte gUnknown_2024018 _08039000: .4byte gUnknown_2023BC4 thumb_func_end sub_8038FBC thumb_func_start sub_8039004 sub_8039004: @ 8039004 push {lr} ldr r0, _08039040 @ =gUnknown_2024018 ldr r1, [r0] ldr r0, _08039044 @ =gUnknown_2023BC4 ldrb r3, [r0] ldr r1, [r1, 0x4] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08039036 ldr r2, _08039048 @ =gUnknown_3005090 ldr r0, _0803904C @ =gUnknown_2024000 adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, _08039050 @ =sub_80491B0 str r1, [r0] _08039036: bl sub_8036530 pop {r0} bx r0 .align 2, 0 _08039040: .4byte gUnknown_2024018 _08039044: .4byte gUnknown_2023BC4 _08039048: .4byte gUnknown_3005090 _0803904C: .4byte gUnknown_2024000 _08039050: .4byte sub_80491B0 thumb_func_end sub_8039004 thumb_func_start sub_8039054 sub_8039054: @ 8039054 push {lr} bl sub_8036530 pop {r0} bx r0 thumb_func_end sub_8039054 thumb_func_start sub_8039060 sub_8039060: @ 8039060 push {r4,lr} ldr r4, _080390B0 @ =gUnknown_2023BC4 ldrb r0, [r4] bl sub_8075224 lsls r0, 24 cmp r0, 0 beq _080390A6 ldr r3, _080390B4 @ =gUnknown_202063C ldr r0, _080390B8 @ =gUnknown_2023D44 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 ldr r0, _080390BC @ =gUnknown_2022BC4 lsls r1, 9 adds r0, 0x1 adds r1, r0 adds r2, 0x3E movs r0, 0x1 ldrb r1, [r1] ands r1, r0 lsls r1, 2 ldrb r3, [r2] movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] ldrb r0, [r4] bl sub_8034BB4 _080390A6: bl sub_8036530 pop {r4} pop {r0} bx r0 .align 2, 0 _080390B0: .4byte gUnknown_2023BC4 _080390B4: .4byte gUnknown_202063C _080390B8: .4byte gUnknown_2023D44 _080390BC: .4byte gUnknown_2022BC4 thumb_func_end sub_8039060 thumb_func_start sub_80390C0 sub_80390C0: @ 80390C0 push {r4-r6,lr} sub sp, 0x4 ldr r6, _08039104 @ =gUnknown_2023BC4 ldrb r0, [r6] bl sub_80342A4 lsls r0, 24 cmp r0, 0 bne _08039118 ldr r5, _08039108 @ =gUnknown_2022BC4 ldrb r2, [r6] lsls r1, r2, 9 adds r0, r5, 0x1 adds r0, r1, r0 ldrb r3, [r0] adds r0, r5, 0x2 adds r0, r1, r0 ldrb r4, [r0] adds r5, 0x3 adds r1, r5 ldrb r0, [r1] lsls r0, 8 orrs r4, r0 str r4, [sp] adds r0, r2, 0 adds r1, r2, 0 bl sub_803401C lsls r0, 24 cmp r0, 0 beq _0803910C bl sub_8036530 b _08039118 .align 2, 0 _08039104: .4byte gUnknown_2023BC4 _08039108: .4byte gUnknown_2022BC4 _0803910C: ldr r0, _08039120 @ =gUnknown_3004FE0 ldrb r1, [r6] lsls r1, 2 adds r1, r0 ldr r0, _08039124 @ =sub_8036500 str r0, [r1] _08039118: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08039120: .4byte gUnknown_3004FE0 _08039124: .4byte sub_8036500 thumb_func_end sub_80390C0 thumb_func_start sub_8039128 sub_8039128: @ 8039128 push {lr} bl sub_8036530 pop {r0} bx r0 thumb_func_end sub_8039128 thumb_func_start sub_8039134 sub_8039134: @ 8039134 push {lr} bl sub_8036530 pop {r0} bx r0 thumb_func_end sub_8039134 thumb_func_start sub_8039140 sub_8039140: @ 8039140 push {lr} ldr r0, _08039174 @ =gUnknown_2022B4C ldr r0, [r0] movs r1, 0x6 ands r0, r1 cmp r0, 0x2 bne _0803916A ldr r2, _08039178 @ =gUnknown_30030F0 ldr r0, _0803917C @ =0x00000439 adds r3, r2, r0 ldrb r1, [r3] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r3] ldr r0, _08039180 @ =gUnknown_3004F80 ldr r0, [r0] str r0, [r2] ldr r0, [r2, 0x8] bl sub_8000544 _0803916A: bl sub_8036530 pop {r0} bx r0 .align 2, 0 _08039174: .4byte gUnknown_2022B4C _08039178: .4byte gUnknown_30030F0 _0803917C: .4byte 0x00000439 _08039180: .4byte gUnknown_3004F80 thumb_func_end sub_8039140 thumb_func_start nullsub_18 nullsub_18: @ 8039184 bx lr thumb_func_end nullsub_18 .align 2, 0 @ Don't pad with nop.