diff options
Diffstat (limited to 'asm/list_menu.s')
-rw-r--r-- | asm/list_menu.s | 2019 |
1 files changed, 2019 insertions, 0 deletions
diff --git a/asm/list_menu.s b/asm/list_menu.s new file mode 100644 index 000000000..d5fdd40f7 --- /dev/null +++ b/asm/list_menu.s @@ -0,0 +1,2019 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start nullsub_90 +nullsub_90: @ 8106ECC + bx lr + thumb_func_end nullsub_90 + + thumb_func_start sub_8106ED0 +sub_8106ED0: @ 8106ED0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + mov r12, r0 + str r1, [sp] + ldr r0, [sp, 0x28] + lsls r2, 24 + lsrs r6, r2, 24 + mov r10, r6 + lsls r3, 16 + lsrs r7, r3, 16 + str r7, [sp, 0x4] + lsls r0, 16 + mov r8, r0 + lsrs r0, 16 + mov r9, r0 + ldr r5, _08106F60 @ =gUnknown_203ACF4 + ldrb r4, [r5, 0x4] + cmp r4, 0x1 + beq _08106F68 + cmp r4, 0x1 + ble _08106F06 + cmp r4, 0x2 + beq _08106FCC +_08106F06: + mov r0, r12 + bl sub_8003CE4 + strb r0, [r5, 0x5] + cmp r6, 0x1 + beq _08106F24 + cmp r6, 0x2 + bne _08106F34 + ldrb r0, [r5, 0x5] + mov r1, r9 + lsls r2, r1, 24 + lsrs r2, 24 + adds r1, r7, 0 + bl sub_815001C +_08106F24: + ldrb r0, [r5, 0x5] + mov r3, r8 + lsrs r2, r3, 20 + lsls r2, 24 + lsrs r2, 24 + ldr r1, [sp, 0x4] + bl sub_8150048 +_08106F34: + ldr r0, _08106F64 @ =gUnknown_3005E70 + adds r2, r0, 0 + ldr r1, [sp] + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + ldr r4, _08106F60 @ =gUnknown_203ACF4 + ldrb r1, [r4, 0x5] + strb r1, [r0, 0x10] + movs r1, 0 + movs r2, 0 + bl sub_8106FF8 + strb r0, [r4, 0x6] + ldrb r0, [r4, 0x5] + movs r1, 0x1 + bl sub_8003F20 + movs r0, 0x1 + strb r0, [r4, 0x4] + b _08106FE4 + .align 2, 0 +_08106F60: .4byte gUnknown_203ACF4 +_08106F64: .4byte gUnknown_3005E70 +_08106F68: + ldrb r0, [r5, 0x6] + bl sub_8107078 + str r0, [r5] + ldr r1, _08106FA4 @ =gUnknown_30030F0 + ldrh r0, [r1, 0x2E] + ands r4, r0 + cmp r4, 0 + beq _08106F7E + movs r0, 0x2 + strb r0, [r5, 0x4] +_08106F7E: + ldrh r1, [r1, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08106F92 + movs r0, 0x2 + negs r0, r0 + str r0, [r5] + movs r0, 0x2 + strb r0, [r5, 0x4] +_08106F92: + ldrb r0, [r5, 0x4] + cmp r0, 0x2 + bne _08106FE4 + cmp r6, 0 + bne _08106FA8 + ldrb r0, [r5, 0x5] + bl sub_80040B8 + b _08106FBA + .align 2, 0 +_08106FA4: .4byte gUnknown_30030F0 +_08106FA8: + mov r4, r10 + cmp r4, 0 + blt _08106FBA + cmp r4, 0x2 + bgt _08106FBA + ldrb r0, [r5, 0x5] + movs r1, 0 + bl sub_80F6F9C +_08106FBA: + ldr r0, _08106FC8 @ =gUnknown_203ACF4 + ldrb r0, [r0, 0x5] + movs r1, 0x1 + bl sub_8003F20 + b _08106FE4 + .align 2, 0 +_08106FC8: .4byte gUnknown_203ACF4 +_08106FCC: + ldrb r0, [r5, 0x6] + movs r1, 0 + movs r2, 0 + bl sub_810713C + ldrb r0, [r5, 0x5] + bl sub_8003E3C + movs r0, 0 + strb r0, [r5, 0x4] + ldr r0, [r5] + b _08106FE8 +_08106FE4: + movs r0, 0x1 + negs r0, r0 +_08106FE8: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8106ED0 + + thumb_func_start sub_8106FF8 +sub_8106FF8: @ 8106FF8 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + bl sub_8107348 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r5, 0x10] + bl sub_8003FA0 + ldrb r0, [r5, 0x10] + movs r1, 0x2 + bl sub_8003F20 + adds r0, r4, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8106FF8 + + thumb_func_start sub_8107024 +sub_8107024: @ 8107024 + push {r4-r7,lr} + sub sp, 0x8 + adds r6, r0, 0 + adds r4, r1, 0 + adds r1, r2, 0 + adds r2, r3, 0 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + bl sub_8107348 + lsls r0, 24 + lsrs r7, r0, 24 + ldrb r0, [r4, 0x4] + cmp r0, 0xFF + beq _08107064 + adds r5, r4, 0 +_08107048: + ldrb r0, [r6, 0x10] + ldrb r1, [r5] + ldrb r2, [r5, 0x1] + ldrb r3, [r5, 0x2] + ldrb r4, [r5, 0x3] + str r4, [sp] + ldrb r4, [r5, 0x4] + str r4, [sp, 0x4] + bl sub_8004000 + adds r5, 0x8 + ldrb r0, [r5, 0x4] + cmp r0, 0xFF + bne _08107048 +_08107064: + ldrb r0, [r6, 0x10] + movs r1, 0x2 + bl sub_8003F20 + adds r0, r7, 0 + add sp, 0x8 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8107024 + + thumb_func_start sub_8107078 +sub_8107078: @ 8107078 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _081070A4 @ =gUnknown_3005098 + adds r3, r1, r0 + ldr r2, _081070A8 @ =gUnknown_30030F0 + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081070AC + ldrh r0, [r3, 0x18] + ldrh r1, [r3, 0x1A] + adds r0, r1 + ldr r1, [r3] + lsls r0, 3 + adds r0, r1 + ldr r0, [r0, 0x4] + b _08107136 + .align 2, 0 +_081070A4: .4byte gUnknown_3005098 +_081070A8: .4byte gUnknown_30030F0 +_081070AC: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081070BA + movs r0, 0x2 + negs r0, r0 + b _08107136 +_081070BA: + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081070CE + adds r0, r3, 0 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0 + b _0810712E +_081070CE: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081070DE + adds r0, r3, 0 + movs r1, 0x1 + movs r2, 0x1 + b _0810712C +_081070DE: + ldrb r0, [r3, 0x16] + lsrs r0, 6 + cmp r0, 0x1 + beq _081070F4 + cmp r0, 0x1 + ble _081070EE + cmp r0, 0x2 + beq _08107100 +_081070EE: + movs r2, 0 + movs r0, 0 + b _08107114 +_081070F4: + movs r0, 0x20 + ands r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 + movs r0, 0x10 + b _0810710E +_08107100: + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 + movs r0, 0x80 + lsls r0, 1 +_0810710E: + ands r0, r1 + lsls r0, 16 + lsrs r0, 16 +_08107114: + cmp r2, 0 + beq _08107122 + ldrb r2, [r3, 0xE] + adds r0, r3, 0 + movs r1, 0x1 + movs r3, 0 + b _0810712E +_08107122: + cmp r0, 0 + beq _08107132 + ldrb r2, [r3, 0xE] + adds r0, r3, 0 + movs r1, 0x1 +_0810712C: + movs r3, 0x1 +_0810712E: + bl sub_810799C +_08107132: + movs r0, 0x1 + negs r0, r0 +_08107136: + pop {r1} + bx r1 + thumb_func_end sub_8107078 + + thumb_func_start sub_810713C +sub_810713C: @ 810713C + push {r4,lr} + adds r3, r1, 0 + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _0810717C @ =gUnknown_3005098 + adds r1, r0, r1 + cmp r3, 0 + beq _08107158 + ldrh r0, [r1, 0x18] + strh r0, [r3] +_08107158: + cmp r2, 0 + beq _08107160 + ldrh r0, [r1, 0x1A] + strh r0, [r2] +_08107160: + ldrb r0, [r1, 0x1E] + cmp r0, 0xFF + beq _08107170 + ldrb r1, [r1, 0x17] + lsrs r1, 6 + subs r1, 0x2 + bl sub_8133CD4 +_08107170: + adds r0, r4, 0 + bl sub_8077508 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810717C: .4byte gUnknown_3005098 + thumb_func_end sub_810713C + + thumb_func_start sub_8107180 +sub_8107180: @ 8107180 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _081071C0 @ =gUnknown_3005098 + adds r4, r0 + ldrb r0, [r4, 0x10] + ldrb r2, [r4, 0x15] + lsls r2, 28 + lsrs r1, r2, 4 + orrs r1, r2 + lsrs r1, 24 + bl sub_800445C + ldrh r1, [r4, 0x18] + ldrh r3, [r4, 0xE] + adds r0, r4, 0 + movs r2, 0 + bl sub_81074DC + adds r0, r4, 0 + bl sub_8107594 + ldrb r0, [r4, 0x10] + movs r1, 0x2 + bl sub_8003F20 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081071C0: .4byte gUnknown_3005098 + thumb_func_end sub_8107180 + + thumb_func_start sub_81071C4 +sub_81071C4: @ 81071C4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _08107204 @ =gUnknown_3005098 + adds r4, r0 + lsrs r1, 20 + ldrb r6, [r4, 0x14] + movs r5, 0xF + adds r0, r5, 0 + ands r0, r6 + orrs r0, r1 + strb r0, [r4, 0x14] + ands r2, r5 + ldrb r1, [r4, 0x15] + movs r0, 0x10 + negs r0, r0 + ands r0, r1 + orrs r0, r2 + lsrs r3, 20 + ands r0, r5 + orrs r0, r3 + strb r0, [r4, 0x15] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08107204: .4byte gUnknown_3005098 + thumb_func_end sub_81071C4 + + thumb_func_start sub_8107208 +sub_8107208: @ 8107208 + push {r4,r5,lr} + adds r3, r1, 0 + adds r5, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _08107240 @ =gUnknown_3005098 + adds r4, r0 + ldrb r0, [r4, 0x10] + movs r1, 0x1 + adds r2, r3, 0 + bl sub_80048BC + ldrb r0, [r4, 0x10] + movs r1, 0x2 + adds r2, r5, 0 + bl sub_80048BC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08107240: .4byte gUnknown_3005098 + thumb_func_end sub_8107208 + + thumb_func_start sub_8107244 +sub_8107244: @ 8107244 + push {r4-r7,lr} + sub sp, 0x20 + mov r12, r2 + ldr r5, [sp, 0x34] + lsls r3, 16 + lsrs r3, 16 + adds r4, r3, 0 + mov r3, sp + ldm r0!, {r2,r6,r7} + stm r3!, {r2,r6,r7} + ldm r0!, {r2,r6,r7} + stm r3!, {r2,r6,r7} + mov r0, sp + movs r3, 0 + strh r1, [r0, 0x18] + mov r1, r12 + strh r1, [r0, 0x1A] + strb r3, [r0, 0x1C] + strb r3, [r0, 0x1D] + cmp r4, 0x40 + bne _08107278 + movs r1, 0 + movs r2, 0x1 + movs r3, 0 + bl sub_810799C +_08107278: + cmp r4, 0x80 + bne _08107288 + mov r0, sp + movs r1, 0 + movs r2, 0x1 + movs r3, 0x1 + bl sub_810799C +_08107288: + cmp r5, 0 + beq _08107292 + mov r0, sp + ldrh r0, [r0, 0x18] + strh r0, [r5] +_08107292: + ldr r2, [sp, 0x38] + cmp r2, 0 + beq _0810729E + mov r0, sp + ldrh r0, [r0, 0x1A] + strh r0, [r2] +_0810729E: + movs r0, 0x1 + negs r0, r0 + add sp, 0x20 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8107244 + + thumb_func_start sub_81072AC +sub_81072AC: @ 81072AC + push {lr} + adds r2, r1, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _081072D0 @ =gUnknown_3005098 + adds r1, r0 + cmp r2, 0 + beq _081072CA + ldrh r0, [r1, 0x1A] + ldrh r1, [r1, 0x18] + adds r0, r1 + strh r0, [r2] +_081072CA: + pop {r0} + bx r0 + .align 2, 0 +_081072D0: .4byte gUnknown_3005098 + thumb_func_end sub_81072AC + + thumb_func_start sub_81072D4 +sub_81072D4: @ 81072D4 + push {lr} + adds r3, r1, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _081072FC @ =gUnknown_3005098 + adds r1, r0 + cmp r3, 0 + beq _081072EE + ldrh r0, [r1, 0x18] + strh r0, [r3] +_081072EE: + cmp r2, 0 + beq _081072F6 + ldrh r0, [r1, 0x1A] + strh r0, [r2] +_081072F6: + pop {r0} + bx r0 + .align 2, 0 +_081072FC: .4byte gUnknown_3005098 + thumb_func_end sub_81072D4 + + thumb_func_start sub_8107300 +sub_8107300: @ 8107300 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _08107344 @ =gUnknown_3005098 + adds r4, r0 + ldrb r0, [r4, 0x17] + lsls r0, 26 + lsrs r0, 26 + movs r1, 0x1 + bl sub_80F79D8 + ldrb r1, [r4, 0x16] + lsls r1, 26 + lsrs r1, 29 + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x1A] + adds r2, r1, 0 + muls r2, r0 + adds r1, r2, 0 + ldrb r0, [r4, 0x14] + lsls r0, 28 + lsrs r0, 28 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08107344: .4byte gUnknown_3005098 + thumb_func_end sub_8107300 + + thumb_func_start sub_8107348 +sub_8107348: @ 8107348 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r6, 16 + lsrs r6, 16 + ldr r0, _08107418 @ =nullsub_90 + movs r1, 0 + bl sub_807741C + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r0, 2 + add r0, r8 + lsls r0, 3 + ldr r1, _0810741C @ =gUnknown_3005098 + adds r7, r0, r1 + adds r0, r7, 0 + ldm r4!, {r1-r3} + stm r0!, {r1-r3} + ldm r4!, {r1-r3} + stm r0!, {r1-r3} + movs r1, 0 + strh r5, [r7, 0x18] + strh r6, [r7, 0x1A] + strb r1, [r7, 0x1C] + strb r1, [r7, 0x1D] + movs r0, 0xFF + strb r0, [r7, 0x1E] + strb r1, [r7, 0x1F] + ldr r3, _08107420 @ =gUnknown_3005E60 + ldrb r1, [r7, 0x14] + movs r5, 0xF + lsrs r1, 4 + ldrb r4, [r3] + movs r2, 0x10 + negs r2, r2 + adds r0, r2, 0 + ands r0, r4 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r7, 0x15] + lsls r1, 28 + lsrs r1, 24 + ands r0, r5 + orrs r0, r1 + strb r0, [r3] + ldrb r0, [r7, 0x15] + lsrs r0, 4 + ands r5, r0 + ldrb r0, [r3, 0x1] + ands r2, r0 + orrs r2, r5 + strb r2, [r3, 0x1] + ldrb r1, [r7, 0x16] + lsls r1, 29 + lsrs r1, 17 + ldr r0, [r3] + ldr r2, _08107424 @ =0xfffc0fff + ands r0, r2 + orrs r0, r1 + str r0, [r3] + ldrb r0, [r7, 0x17] + lsls r0, 26 + lsrs r0, 26 + strb r0, [r3, 0x3] + ldrh r0, [r7, 0xC] + ldrh r1, [r7, 0xE] + cmp r0, r1 + bcs _081073E0 + strh r0, [r7, 0xE] +_081073E0: + ldrb r0, [r7, 0x10] + ldrb r2, [r7, 0x15] + lsls r2, 28 + lsrs r1, r2, 4 + orrs r1, r2 + lsrs r1, 24 + bl sub_800445C + ldrh r1, [r7, 0x18] + ldrh r3, [r7, 0xE] + adds r0, r7, 0 + movs r2, 0 + bl sub_81074DC + adds r0, r7, 0 + bl sub_8107594 + adds r0, r7, 0 + movs r1, 0x1 + bl sub_8107A74 + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08107418: .4byte nullsub_90 +_0810741C: .4byte gUnknown_3005098 +_08107420: .4byte gUnknown_3005E60 +_08107424: .4byte 0xfffc0fff + thumb_func_end sub_8107348 + + thumb_func_start sub_8107428 +sub_8107428: @ 8107428 + push {r4-r7,lr} + sub sp, 0x18 + adds r4, r0, 0 + adds r6, r1, 0 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 24 + lsrs r3, 24 + mov r12, r3 + ldr r5, _08107490 @ =gUnknown_3005E60 + ldrb r1, [r5, 0x3] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _08107494 + add r1, sp, 0x14 + ldr r2, [r5] + lsls r0, r2, 24 + lsrs r0, 28 + movs r3, 0 + strb r0, [r1] + lsls r0, r2, 28 + lsrs r0, 28 + strb r0, [r1, 0x1] + lsls r0, r2, 20 + lsrs r0, 28 + strb r0, [r1, 0x2] + ldrb r0, [r4, 0x10] + lsls r1, r2, 1 + lsrs r1, 25 + lsls r2, 14 + lsrs r2, 26 + str r2, [sp] + str r3, [sp, 0x4] + add r2, sp, 0x14 + str r2, [sp, 0x8] + movs r2, 0x1 + negs r2, r2 + str r2, [sp, 0xC] + str r6, [sp, 0x10] + adds r2, r7, 0 + mov r3, r12 + bl sub_812E5A4 + ldrb r1, [r5, 0x3] + movs r0, 0x7F + ands r0, r1 + strb r0, [r5, 0x3] + b _081074D2 + .align 2, 0 +_08107490: .4byte gUnknown_3005E60 +_08107494: + add r2, sp, 0x14 + ldrb r1, [r4, 0x15] + lsls r0, r1, 28 + lsrs r0, 28 + strb r0, [r2] + ldrb r0, [r4, 0x14] + lsrs r0, 4 + strb r0, [r2, 0x1] + adds r0, r2, 0 + lsls r1, 24 + lsrs r1, 28 + strb r1, [r0, 0x2] + ldrb r0, [r4, 0x10] + ldrb r1, [r4, 0x17] + lsls r1, 26 + lsrs r1, 26 + ldrb r2, [r4, 0x16] + lsls r2, 29 + lsrs r2, 29 + str r2, [sp] + str r3, [sp, 0x4] + add r2, sp, 0x14 + str r2, [sp, 0x8] + movs r2, 0x1 + negs r2, r2 + str r2, [sp, 0xC] + str r6, [sp, 0x10] + adds r2, r7, 0 + mov r3, r12 + bl sub_812E5A4 +_081074D2: + add sp, 0x18 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8107428 + + thumb_func_start sub_81074DC +sub_81074DC: @ 81074DC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r4, r0, 0 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + lsls r2, 16 + lsrs r2, 16 + str r2, [sp] + lsls r3, 16 + lsrs r3, 16 + mov r10, r3 + ldrb r0, [r4, 0x17] + lsls r0, 26 + lsrs r0, 26 + movs r1, 0x1 + bl sub_80F79D8 + ldrb r1, [r4, 0x16] + lsls r1, 26 + lsrs r1, 29 + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + movs r0, 0 + mov r8, r0 + cmp r8, r10 + bge _08107584 +_0810751E: + ldr r0, [r4] + mov r2, r9 + lsls r1, r2, 3 + adds r0, r1, r0 + ldr r2, [r0, 0x4] + movs r0, 0x3 + negs r0, r0 + adds r5, r1, 0 + cmp r2, r0 + beq _08107536 + ldrb r6, [r4, 0x12] + b _08107538 +_08107536: + ldrb r6, [r4, 0x11] +_08107538: + ldr r0, [sp] + add r0, r8 + ldr r2, [sp, 0x4] + adds r1, r0, 0 + muls r1, r2 + ldrb r0, [r4, 0x14] + lsls r0, 28 + lsrs r0, 28 + adds r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + adds r7, r2, 0 + ldr r3, [r4, 0x8] + cmp r3, 0 + beq _08107562 + ldrb r0, [r4, 0x10] + ldr r1, [r4] + adds r1, r5, r1 + ldr r1, [r1, 0x4] + bl _call_via_r3 +_08107562: + ldr r0, [r4] + adds r0, r5, r0 + ldr r1, [r0] + adds r0, r4, 0 + adds r2, r6, 0 + adds r3, r7, 0 + bl sub_8107428 + mov r0, r9 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + movs r0, 0x1 + add r8, r0 + cmp r8, r10 + blt _0810751E +_08107584: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81074DC + + thumb_func_start sub_8107594 +sub_8107594: @ 8107594 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + ldrb r0, [r6, 0x17] + lsls r0, 26 + lsrs r0, 26 + movs r1, 0x1 + bl sub_80F79D8 + ldrb r1, [r6, 0x16] + lsls r1, 26 + lsrs r1, 29 + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r6, 0x13] + mov r8, r1 + ldrh r1, [r6, 0x1A] + muls r1, r0 + ldrb r0, [r6, 0x14] + lsls r0, 28 + lsrs r0, 28 + adds r0, r1 + lsls r0, 24 + lsrs r7, r0, 24 + ldrb r0, [r6, 0x17] + lsrs r0, 6 + cmp r0, 0x1 + beq _08107680 + cmp r0, 0x1 + bgt _081075DA + cmp r0, 0 + beq _081075E4 + b _08107680 +_081075DA: + cmp r0, 0x2 + beq _081075F8 + cmp r0, 0x3 + beq _08107640 + b _08107680 +_081075E4: + ldr r1, _081075F4 @ =gUnknown_841623B + adds r0, r6, 0 + mov r2, r8 + adds r3, r7, 0 + bl sub_8107428 + b _08107680 + .align 2, 0 +_081075F4: .4byte gUnknown_841623B +_081075F8: + ldrb r0, [r6, 0x1E] + cmp r0, 0xFF + bne _08107608 + adds r0, r6, 0 + movs r1, 0 + bl sub_810768C + strb r0, [r6, 0x1E] +_08107608: + ldrb r5, [r6, 0x1E] + ldrb r0, [r6, 0x10] + movs r1, 0x1 + bl sub_8004950 + adds r4, r0, 0 + lsls r4, 19 + ldr r0, _0810763C @ =0xffff0000 + adds r4, r0 + lsrs r4, 16 + ldrb r0, [r6, 0x10] + movs r1, 0x2 + bl sub_8004950 + adds r2, r0, 0 + lsls r2, 3 + adds r2, r7 + subs r2, 0x1 + lsls r2, 16 + lsrs r2, 16 + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0 + bl sub_8133CAC + b _08107680 + .align 2, 0 +_0810763C: .4byte 0xffff0000 +_08107640: + ldrb r0, [r6, 0x1E] + cmp r0, 0xFF + bne _08107650 + adds r0, r6, 0 + movs r1, 0x1 + bl sub_810768C + strb r0, [r6, 0x1E] +_08107650: + ldrb r5, [r6, 0x1E] + ldrb r0, [r6, 0x10] + movs r1, 0x1 + bl sub_8004950 + adds r4, r0, 0 + lsls r4, 3 + add r4, r8 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r6, 0x10] + movs r1, 0x2 + bl sub_8004950 + adds r2, r0, 0 + lsls r2, 3 + adds r2, r7 + lsls r2, 16 + lsrs r2, 16 + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8133CAC +_08107680: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8107594 + + thumb_func_start sub_810768C +sub_810768C: @ 810768C + push {r4,r5,lr} + sub sp, 0xC + adds r4, r0, 0 + adds r5, r1, 0 + mov r1, sp + movs r0, 0 + strb r0, [r1] + movs r0, 0xA0 + strb r0, [r1, 0x1] + ldrb r0, [r4, 0x10] + movs r1, 0x3 + bl sub_8004950 + mov r1, sp + lsls r0, 3 + adds r0, 0x2 + strh r0, [r1, 0x2] + ldrb r0, [r4, 0x17] + lsls r0, 26 + lsrs r0, 26 + movs r1, 0x1 + bl sub_80F79D8 + mov r1, sp + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x2 + strh r0, [r1, 0x4] + movs r0, 0x80 + lsls r0, 7 + strh r0, [r1, 0x6] + ldr r0, _081076E8 @ =0x0000ffff + strh r0, [r1, 0x8] + movs r0, 0xF + strb r0, [r1, 0xA] + mov r0, sp + adds r1, r5, 0 + bl sub_8133C90 + lsls r0, 24 + lsrs r0, 24 + add sp, 0xC + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_081076E8: .4byte 0x0000ffff + thumb_func_end sub_810768C + + thumb_func_start sub_81076EC +sub_81076EC: @ 81076EC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + adds r7, r0, 0 + lsls r1, 16 + lsrs r1, 16 + mov r8, r1 + ldrb r1, [r7, 0x17] + lsrs r0, r1, 6 + cmp r0, 0 + bne _08107768 + lsls r0, r1, 26 + lsrs r0, 26 + movs r1, 0x1 + bl sub_80F79D8 + adds r4, r0, 0 + ldrb r0, [r7, 0x16] + lsls r0, 26 + lsrs r0, 29 + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r7, 0x17] + lsls r0, 26 + lsrs r0, 26 + movs r1, 0 + bl sub_80F7AC0 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldrb r0, [r7, 0x17] + lsls r0, 26 + lsrs r0, 26 + movs r1, 0x1 + bl sub_80F7AC0 + lsls r0, 24 + lsrs r0, 24 + ldrb r6, [r7, 0x10] + ldrb r2, [r7, 0x15] + lsls r2, 28 + lsrs r1, r2, 4 + orrs r1, r2 + lsrs r1, 24 + ldrb r2, [r7, 0x13] + mov r3, r8 + muls r3, r4 + adds r4, r3, 0 + ldrb r3, [r7, 0x14] + lsls r3, 28 + lsrs r3, 28 + adds r3, r4 + lsls r3, 16 + lsrs r3, 16 + str r5, [sp] + str r0, [sp, 0x4] + adds r0, r6, 0 + bl sub_8004378 +_08107768: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81076EC + + thumb_func_start sub_8107774 +sub_8107774: @ 8107774 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r1, 24 + ldrh r3, [r4, 0x1A] + ldrh r5, [r4, 0x18] + cmp r1, 0 + bne _081077E8 + ldrh r0, [r4, 0xE] + cmp r0, 0x1 + bne _0810778C + movs r2, 0 + b _0810779E +_0810778C: + ldrh r0, [r4, 0xE] + lsrs r2, r0, 1 + movs r1, 0x1 + ands r1, r0 + adds r2, r1 + subs r0, r2 + subs r0, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 +_0810779E: + cmp r5, 0 + bne _081077C4 + cmp r3, 0 + beq _0810782A + ldr r1, [r4] + movs r2, 0x3 + negs r2, r2 +_081077AC: + subs r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + adds r0, r5, r3 + lsls r0, 3 + adds r0, r1 + ldr r0, [r0, 0x4] + cmp r0, r2 + bne _0810782E + cmp r3, 0 + bne _081077AC + b _0810782A +_081077C4: + cmp r3, r2 + bls _081077E4 + ldr r1, [r4] + movs r6, 0x3 + negs r6, r6 +_081077CE: + subs r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + adds r0, r5, r3 + lsls r0, 3 + adds r0, r1 + ldr r0, [r0, 0x4] + cmp r0, r6 + bne _0810782E + cmp r3, r2 + bhi _081077CE +_081077E4: + subs r0, r5, 0x1 + b _08107856 +_081077E8: + ldrh r0, [r4, 0xE] + cmp r0, 0x1 + bne _081077F2 + movs r2, 0 + b _081077FC +_081077F2: + ldrh r0, [r4, 0xE] + lsrs r2, r0, 1 + movs r1, 0x1 + ands r1, r0 + adds r2, r1 +_081077FC: + adds r1, r0, 0 + ldrh r0, [r4, 0xC] + subs r0, r1 + cmp r5, r0 + bne _08107834 + subs r0, r1, 0x1 + cmp r3, r0 + bge _0810782A + ldr r2, [r4] + movs r6, 0x3 + negs r6, r6 + adds r1, r0, 0 +_08107814: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + adds r0, r5, r3 + lsls r0, 3 + adds r0, r2 + ldr r0, [r0, 0x4] + cmp r0, r6 + bne _0810782E + cmp r3, r1 + blt _08107814 +_0810782A: + movs r0, 0 + b _0810785C +_0810782E: + strh r3, [r4, 0x1A] + movs r0, 0x1 + b _0810785C +_08107834: + cmp r3, r2 + bcs _08107854 + ldr r1, [r4] + movs r6, 0x3 + negs r6, r6 +_0810783E: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + adds r0, r5, r3 + lsls r0, 3 + adds r0, r1 + ldr r0, [r0, 0x4] + cmp r0, r6 + bne _0810782E + cmp r3, r2 + bcc _0810783E +_08107854: + adds r0, r5, 0x1 +_08107856: + strh r2, [r4, 0x1A] + strh r0, [r4, 0x18] + movs r0, 0x2 +_0810785C: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8107774 + + thumb_func_start sub_8107864 +sub_8107864: @ 8107864 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + adds r6, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + adds r7, r5, 0 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + ldrh r0, [r6, 0xE] + cmp r5, r0 + bcc _0810789E + ldrb r0, [r6, 0x10] + ldrb r2, [r6, 0x15] + lsls r2, 28 + lsrs r1, r2, 4 + orrs r1, r2 + lsrs r1, 24 + bl sub_800445C + ldrh r1, [r6, 0x18] + ldrh r3, [r6, 0xE] + adds r0, r6, 0 + movs r2, 0 + bl sub_81074DC + b _0810798E +_0810789E: + ldrb r0, [r6, 0x17] + lsls r0, 26 + lsrs r0, 26 + movs r1, 0x1 + bl sub_80F79D8 + ldrb r1, [r6, 0x16] + lsls r1, 26 + lsrs r1, 29 + adds r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + mov r1, r8 + cmp r1, 0 + bne _08107930 + ldrb r0, [r6, 0x10] + adds r2, r5, 0 + muls r2, r4 + lsls r2, 24 + lsrs r2, 24 + ldrb r1, [r6, 0x15] + lsls r1, 28 + lsrs r3, r1, 4 + orrs r3, r1 + lsrs r3, 24 + movs r1, 0x1 + bl sub_80044A8 + ldrh r1, [r6, 0x18] + adds r0, r6, 0 + movs r2, 0 + adds r3, r5, 0 + bl sub_81074DC + ldrh r0, [r6, 0xE] + adds r1, r0, 0 + muls r1, r4 + adds r0, r1, 0 + ldrb r4, [r6, 0x14] + lsls r4, 28 + lsrs r4, 28 + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r6, 0x10] + movs r1, 0x3 + bl sub_8004950 + adds r5, r0, 0 + lsls r5, 19 + lsrs r5, 16 + ldrb r0, [r6, 0x10] + movs r1, 0x4 + bl sub_8004950 + lsls r0, 3 + subs r0, r4 + lsls r0, 16 + lsrs r0, 16 + ldrb r3, [r6, 0x10] + ldrb r2, [r6, 0x15] + lsls r2, 28 + lsrs r1, r2, 4 + orrs r1, r2 + lsrs r1, 24 + str r5, [sp] + str r0, [sp, 0x4] + adds r0, r3, 0 + movs r2, 0 + adds r3, r4, 0 + bl sub_8004378 + b _0810798E +_08107930: + ldrb r0, [r6, 0x10] + adds r2, r7, 0 + muls r2, r4 + lsls r2, 24 + lsrs r2, 24 + ldrb r1, [r6, 0x15] + lsls r1, 28 + lsrs r3, r1, 4 + orrs r3, r1 + lsrs r3, 24 + movs r1, 0 + bl sub_80044A8 + ldrh r2, [r6, 0xE] + subs r2, r7 + ldrh r1, [r6, 0x18] + adds r1, r2 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + adds r0, r6, 0 + adds r3, r7, 0 + bl sub_81074DC + ldrb r0, [r6, 0x10] + movs r1, 0x3 + bl sub_8004950 + lsls r0, 19 + lsrs r0, 16 + ldrb r3, [r6, 0x10] + ldrb r2, [r6, 0x15] + lsls r2, 28 + lsrs r1, r2, 4 + orrs r1, r2 + lsrs r1, 24 + str r0, [sp] + ldrb r0, [r6, 0x14] + lsls r0, 28 + lsrs r0, 28 + str r0, [sp, 0x4] + adds r0, r3, 0 + movs r2, 0 + movs r3, 0 + bl sub_8004378 +_0810798E: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8107864 + + thumb_func_start sub_810799C +sub_810799C: @ 810799C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r4, r0, 0 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp] + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + lsls r3, 24 + lsrs r3, 24 + mov r9, r3 + ldrh r0, [r4, 0x1A] + mov r10, r0 + movs r7, 0 + movs r5, 0 + movs r0, 0 + cmp r7, r8 + bcs _08107A04 +_081079CA: + adds r6, r0, 0x1 + b _081079EA +_081079CE: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + ldrh r0, [r4, 0x18] + ldrh r1, [r4, 0x1A] + adds r0, r1 + ldr r1, [r4] + lsls r0, 3 + adds r0, r1 + ldr r1, [r0, 0x4] + movs r0, 0x3 + negs r0, r0 + cmp r1, r0 + bne _081079FC +_081079EA: + adds r0, r4, 0 + mov r1, r9 + bl sub_8107774 + lsls r0, 24 + lsrs r0, 24 + orrs r5, r0 + cmp r0, 0x2 + beq _081079CE +_081079FC: + lsls r0, r6, 24 + lsrs r0, 24 + cmp r0, r8 + bcc _081079CA +_08107A04: + ldr r0, [sp] + cmp r0, 0 + beq _08107A62 + cmp r5, 0x1 + beq _08107A1A + cmp r5, 0x1 + ble _08107A16 + cmp r5, 0x3 + ble _08107A3A +_08107A16: + movs r0, 0x1 + b _08107A64 +_08107A1A: + adds r0, r4, 0 + mov r1, r10 + bl sub_81076EC + adds r0, r4, 0 + bl sub_8107594 + adds r0, r4, 0 + movs r1, 0 + bl sub_8107A74 + ldrb r0, [r4, 0x10] + movs r1, 0x2 + bl sub_8003F20 + b _08107A62 +_08107A3A: + adds r0, r4, 0 + mov r1, r10 + bl sub_81076EC + adds r0, r4, 0 + adds r1, r7, 0 + mov r2, r9 + bl sub_8107864 + adds r0, r4, 0 + bl sub_8107594 + adds r0, r4, 0 + movs r1, 0 + bl sub_8107A74 + ldrb r0, [r4, 0x10] + movs r1, 0x2 + bl sub_8003F20 +_08107A62: + movs r0, 0 +_08107A64: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_810799C + + thumb_func_start sub_8107A74 +sub_8107A74: @ 8107A74 + push {r4,lr} + adds r2, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + ldr r3, [r2, 0x4] + cmp r3, 0 + beq _08107A96 + ldrh r0, [r2, 0x18] + ldrh r1, [r2, 0x1A] + adds r0, r1 + ldr r1, [r2] + lsls r0, 3 + adds r0, r1 + ldr r0, [r0, 0x4] + adds r1, r4, 0 + bl _call_via_r3 +_08107A96: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8107A74 + + thumb_func_start sub_8107A9C +sub_8107A9C: @ 8107A9C + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsls r2, 24 + lsrs r2, 24 + ldr r6, _08107AE8 @ =gUnknown_3005E60 + movs r5, 0xF + ands r0, r5 + ldrb r3, [r6] + mov r8, r3 + movs r4, 0x10 + negs r4, r4 + adds r3, r4, 0 + mov r7, r8 + ands r3, r7 + orrs r3, r0 + lsrs r1, 20 + ands r3, r5 + orrs r3, r1 + strb r3, [r6] + ands r2, r5 + ldrb r0, [r6, 0x1] + ands r4, r0 + orrs r4, r2 + strb r4, [r6, 0x1] + ldrb r0, [r6, 0x3] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r6, 0x3] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08107AE8: .4byte gUnknown_3005E60 + thumb_func_end sub_8107A9C + + thumb_func_start sub_8107AEC +sub_8107AEC: @ 8107AEC + push {lr} + lsls r1, 24 + cmp r1, 0 + bne _08107AFA + movs r0, 0x5 + bl sub_80722CC +_08107AFA: + pop {r0} + bx r0 + thumb_func_end sub_8107AEC + + thumb_func_start sub_8107B00 +sub_8107B00: @ 8107B00 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r3, r1, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _08107B24 @ =gUnknown_3005098 + adds r2, r1, r0 + cmp r3, 0x10 + bhi _08107BC8 + lsls r0, r3, 2 + ldr r1, _08107B28 @ =_08107B2C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08107B24: .4byte gUnknown_3005098 +_08107B28: .4byte _08107B2C + .align 2, 0 +_08107B2C: + .4byte _08107B70 + .4byte _08107B70 + .4byte _08107B74 + .4byte _08107B78 + .4byte _08107B7C + .4byte _08107B80 + .4byte _08107B84 + .4byte _08107B88 + .4byte _08107B8C + .4byte _08107B90 + .4byte _08107B96 + .4byte _08107B9E + .4byte _08107BA4 + .4byte _08107BAC + .4byte _08107BB4 + .4byte _08107BBA + .4byte _08107BC2 +_08107B70: + ldr r0, [r2, 0x4] + b _08107BCC +_08107B74: + ldrh r0, [r2, 0xC] + b _08107BCC +_08107B78: + ldrh r0, [r2, 0xE] + b _08107BCC +_08107B7C: + ldrb r0, [r2, 0x10] + b _08107BCC +_08107B80: + ldrb r0, [r2, 0x11] + b _08107BCC +_08107B84: + ldrb r0, [r2, 0x12] + b _08107BCC +_08107B88: + ldrb r0, [r2, 0x13] + b _08107BCC +_08107B8C: + ldrb r0, [r2, 0x14] + b _08107B98 +_08107B90: + ldrb r0, [r2, 0x14] + lsrs r0, 4 + b _08107BCC +_08107B96: + ldrb r0, [r2, 0x15] +_08107B98: + lsls r0, 28 + lsrs r0, 28 + b _08107BCC +_08107B9E: + ldrb r0, [r2, 0x15] + lsrs r0, 4 + b _08107BCC +_08107BA4: + ldrb r0, [r2, 0x16] + lsls r0, 29 + lsrs r0, 29 + b _08107BCC +_08107BAC: + ldrb r0, [r2, 0x16] + lsls r0, 26 + lsrs r0, 29 + b _08107BCC +_08107BB4: + ldrb r0, [r2, 0x16] + lsrs r0, 6 + b _08107BCC +_08107BBA: + ldrb r0, [r2, 0x17] + lsls r0, 26 + lsrs r0, 26 + b _08107BCC +_08107BC2: + ldrb r0, [r2, 0x17] + lsrs r0, 6 + b _08107BCC +_08107BC8: + movs r0, 0x1 + negs r0, r0 +_08107BCC: + pop {r1} + bx r1 + thumb_func_end sub_8107B00 + + thumb_func_start sub_8107BD0 +sub_8107BD0: @ 8107BD0 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _08107BF4 @ =gUnknown_3005098 + adds r3, r1, r0 + cmp r4, 0x10 + bhi _08107CD0 + lsls r0, r4, 2 + ldr r1, _08107BF8 @ =_08107BFC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08107BF4: .4byte gUnknown_3005098 +_08107BF8: .4byte _08107BFC + .align 2, 0 +_08107BFC: + .4byte _08107C40 + .4byte _08107C40 + .4byte _08107C44 + .4byte _08107C48 + .4byte _08107C4C + .4byte _08107C50 + .4byte _08107C54 + .4byte _08107C58 + .4byte _08107C5C + .4byte _08107C68 + .4byte _08107C76 + .4byte _08107C82 + .4byte _08107C90 + .4byte _08107C9C + .4byte _08107CAA + .4byte _08107CB8 + .4byte _08107CC4 +_08107C40: + str r2, [r3, 0x4] + b _08107CD0 +_08107C44: + strh r2, [r3, 0xC] + b _08107CD0 +_08107C48: + strh r2, [r3, 0xE] + b _08107CD0 +_08107C4C: + strb r2, [r3, 0x10] + b _08107CD0 +_08107C50: + strb r2, [r3, 0x11] + b _08107CD0 +_08107C54: + strb r2, [r3, 0x12] + b _08107CD0 +_08107C58: + strb r2, [r3, 0x13] + b _08107CD0 +_08107C5C: + movs r0, 0xF + ands r2, r0 + ldrb r1, [r3, 0x14] + movs r0, 0x10 + negs r0, r0 + b _08107C6E +_08107C68: + lsls r2, 4 + ldrb r1, [r3, 0x14] + movs r0, 0xF +_08107C6E: + ands r0, r1 + orrs r0, r2 + strb r0, [r3, 0x14] + b _08107CD0 +_08107C76: + movs r0, 0xF + ands r2, r0 + ldrb r1, [r3, 0x15] + movs r0, 0x10 + negs r0, r0 + b _08107C88 +_08107C82: + lsls r2, 4 + ldrb r1, [r3, 0x15] + movs r0, 0xF +_08107C88: + ands r0, r1 + orrs r0, r2 + strb r0, [r3, 0x15] + b _08107CD0 +_08107C90: + movs r0, 0x7 + ands r2, r0 + ldrb r1, [r3, 0x16] + movs r0, 0x8 + negs r0, r0 + b _08107CB0 +_08107C9C: + movs r0, 0x7 + ands r2, r0 + lsls r2, 3 + ldrb r1, [r3, 0x16] + movs r0, 0x39 + negs r0, r0 + b _08107CB0 +_08107CAA: + lsls r2, 6 + ldrb r1, [r3, 0x16] + movs r0, 0x3F +_08107CB0: + ands r0, r1 + orrs r0, r2 + strb r0, [r3, 0x16] + b _08107CD0 +_08107CB8: + movs r0, 0x3F + ands r2, r0 + ldrb r1, [r3, 0x17] + movs r0, 0x40 + negs r0, r0 + b _08107CCA +_08107CC4: + lsls r2, 6 + ldrb r1, [r3, 0x17] + movs r0, 0x3F +_08107CCA: + ands r0, r1 + orrs r0, r2 + strb r0, [r3, 0x17] +_08107CD0: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8107BD0 + + thumb_func_start sub_8107CD8 +sub_8107CD8: @ 8107CD8 + push {r4,lr} + adds r4, r0, 0 + adds r0, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, 16 + lsrs r0, 16 + bl sub_80971CC + adds r1, r4, 0 + movs r2, 0x20 + bl sub_80703EC + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8107CD8 + + thumb_func_start sub_8107CF8 +sub_8107CF8: @ 8107CF8 + push {r4-r6,lr} + sub sp, 0x8 + adds r6, r0, 0 + adds r0, r1, 0 + adds r1, r2, 0 + adds r4, r3, 0 + ldr r5, [sp, 0x18] + lsls r6, 24 + lsrs r6, 24 + lsls r0, 16 + lsrs r0, 16 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + movs r2, 0x1 + bl sub_8097054 + adds r1, r0, 0 + movs r0, 0x20 + str r0, [sp] + str r0, [sp, 0x4] + adds r0, r6, 0 + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_80041B8 + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8107CF8 + + thumb_func_start sub_8107D38 +sub_8107D38: @ 8107D38 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0 + beq _08107D4A + cmp r1, 0x1 + beq _08107D54 +_08107D4A: + ldr r0, _08107D50 @ =gUnknown_8E95D9C + b _08107D56 + .align 2, 0 +_08107D50: .4byte gUnknown_8E95D9C +_08107D54: + ldr r0, _08107D64 @ =gUnknown_8E95DBC +_08107D56: + adds r1, r2, 0 + movs r2, 0x20 + bl sub_80703EC + pop {r0} + bx r0 + .align 2, 0 +_08107D64: .4byte gUnknown_8E95DBC + thumb_func_end sub_8107D38 + + thumb_func_start sub_8107D68 +sub_8107D68: @ 8107D68 + push {r4,r5,lr} + sub sp, 0x18 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsls r2, 16 + lsrs r2, 16 + lsls r3, 16 + lsrs r3, 16 + ldr r4, _08107DAC @ =gUnknown_8452C94 + lsrs r1, 22 + adds r1, r4 + ldrh r5, [r1, 0x2] + lsls r5, 5 + ldr r4, _08107DB0 @ =gUnknown_8E95DDC + adds r5, r4 + movs r4, 0x80 + str r4, [sp] + str r4, [sp, 0x4] + str r2, [sp, 0x8] + str r3, [sp, 0xC] + ldrb r2, [r1] + str r2, [sp, 0x10] + ldrb r1, [r1, 0x1] + str r1, [sp, 0x14] + adds r1, r5, 0 + movs r2, 0 + movs r3, 0 + bl sub_80041F0 + add sp, 0x18 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08107DAC: .4byte gUnknown_8452C94 +_08107DB0: .4byte gUnknown_8E95DDC + thumb_func_end sub_8107D68 + + .align 2, 0 @ Don't pad with nop. |