diff options
Diffstat (limited to 'asm/menu.s')
-rw-r--r-- | asm/menu.s | 3455 |
1 files changed, 3455 insertions, 0 deletions
diff --git a/asm/menu.s b/asm/menu.s new file mode 100644 index 000000000..4ac8d7eb9 --- /dev/null +++ b/asm/menu.s @@ -0,0 +1,3455 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_810EDC4 +sub_810EDC4: @ 810EDC4 + push {r4,r5,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0810EE00 @ =gUnknown_203ADF0 + strh r2, [r0] + ldr r0, _0810EE04 @ =gUnknown_203ADF2 + strb r3, [r0] + ldr r1, _0810EE08 @ =sub_810EE5C + adds r0, r5, 0 + bl sub_800486C + adds r0, r5, 0 + movs r1, 0x11 + bl sub_800445C + adds r0, r5, 0 + bl sub_8003FA0 + cmp r4, 0x1 + bne _0810EDFA + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8003F20 +_0810EDFA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810EE00: .4byte gUnknown_203ADF0 +_0810EE04: .4byte gUnknown_203ADF2 +_0810EE08: .4byte sub_810EE5C + thumb_func_end sub_810EDC4 + + thumb_func_start sub_810EE0C +sub_810EE0C: @ 810EE0C + push {r4-r6,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0810EE50 @ =gUnknown_203ADF0 + strh r2, [r0] + ldr r5, _0810EE54 @ =gUnknown_203ADF2 + adds r0, r6, 0 + movs r1, 0x5 + bl sub_8004950 + strb r0, [r5] + ldr r1, _0810EE58 @ =sub_810EE5C + adds r0, r6, 0 + bl sub_800486C + adds r0, r6, 0 + movs r1, 0x11 + bl sub_800445C + adds r0, r6, 0 + bl sub_8003FA0 + cmp r4, 0x1 + bne _0810EE4A + adds r0, r6, 0 + movs r1, 0x3 + bl sub_8003F20 +_0810EE4A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810EE50: .4byte gUnknown_203ADF0 +_0810EE54: .4byte gUnknown_203ADF2 +_0810EE58: .4byte sub_810EE5C + thumb_func_end sub_810EE0C + + thumb_func_start sub_810EE5C +sub_810EE5C: @ 810EE5C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + adds r6, r0, 0 + adds r5, r2, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r0, r1, 24 + lsls r5, 24 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x10] + ldr r1, _0810F228 @ =gUnknown_203ADF0 + mov r9, r1 + ldrh r1, [r1] + lsrs r2, r0, 24 + str r2, [sp, 0xC] + movs r3, 0xFE + lsls r3, 24 + adds r2, r0, r3 + lsrs r2, 24 + str r2, [sp, 0x14] + lsrs r0, r5, 24 + mov r10, r0 + movs r2, 0xFF + lsls r2, 24 + adds r5, r2 + lsrs r5, 24 + movs r4, 0x1 + str r4, [sp] + str r4, [sp, 0x4] + ldr r3, _0810F22C @ =gUnknown_203ADF2 + mov r8, r3 + ldrb r0, [r3] + str r0, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x14] + adds r3, r5, 0 + bl sub_8002554 + mov r0, r9 + ldrh r1, [r0] + adds r1, 0x1 + lsls r1, 16 + lsrs r1, 16 + ldr r0, [sp, 0xC] + subs r0, 0x1 + lsls r2, r0, 24 + lsrs r2, 24 + str r2, [sp, 0x18] + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r8 + ldrb r0, [r2] + str r0, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x18] + adds r3, r5, 0 + bl sub_8002554 + mov r3, r9 + ldrh r1, [r3] + adds r1, 0x2 + lsls r1, 16 + lsrs r1, 16 + ldr r0, [sp, 0x10] + str r0, [sp] + str r4, [sp, 0x4] + mov r2, r8 + ldrb r0, [r2] + str r0, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0xC] + adds r3, r5, 0 + bl sub_8002554 + mov r3, r9 + ldrh r1, [r3] + adds r1, 0x3 + lsls r1, 16 + lsrs r1, 16 + ldr r0, [sp, 0xC] + ldr r2, [sp, 0x10] + adds r7, r0, r2 + lsls r2, r7, 24 + lsrs r2, 24 + str r2, [sp, 0x1C] + str r4, [sp] + str r4, [sp, 0x4] + mov r3, r8 + ldrb r0, [r3] + str r0, [sp, 0x8] + adds r0, r6, 0 + adds r3, r5, 0 + bl sub_8002554 + mov r0, r9 + ldrh r1, [r0] + adds r1, 0x4 + lsls r1, 16 + lsrs r1, 16 + adds r0, r7, 0x1 + lsls r2, r0, 24 + lsrs r7, r2, 24 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r8 + ldrb r0, [r2] + str r0, [sp, 0x8] + adds r0, r6, 0 + adds r2, r7, 0 + adds r3, r5, 0 + bl sub_8002554 + mov r3, r9 + ldrh r1, [r3] + adds r1, 0x5 + lsls r1, 16 + lsrs r1, 16 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r8 + ldrb r0, [r2] + str r0, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x14] + mov r3, r10 + bl sub_8002554 + mov r3, r9 + ldrh r1, [r3] + adds r1, 0x6 + lsls r1, 16 + lsrs r1, 16 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r8 + ldrb r0, [r2] + str r0, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x18] + mov r3, r10 + bl sub_8002554 + mov r3, r9 + ldrh r1, [r3] + adds r1, 0x8 + lsls r1, 16 + lsrs r1, 16 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r8 + ldrb r0, [r2] + str r0, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x1C] + mov r3, r10 + bl sub_8002554 + mov r3, r9 + ldrh r1, [r3] + adds r1, 0x9 + lsls r1, 16 + lsrs r1, 16 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r8 + ldrb r0, [r2] + str r0, [sp, 0x8] + adds r0, r6, 0 + adds r2, r7, 0 + mov r3, r10 + bl sub_8002554 + mov r3, r9 + ldrh r1, [r3] + adds r1, 0xA + lsls r1, 16 + lsrs r1, 16 + mov r5, r10 + adds r5, 0x1 + lsls r5, 24 + lsrs r5, 24 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r8 + ldrb r0, [r2] + str r0, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x14] + adds r3, r5, 0 + bl sub_8002554 + mov r3, r9 + ldrh r1, [r3] + adds r1, 0xB + lsls r1, 16 + lsrs r1, 16 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r8 + ldrb r0, [r2] + str r0, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x18] + adds r3, r5, 0 + bl sub_8002554 + mov r3, r9 + ldrh r1, [r3] + adds r1, 0xC + lsls r1, 16 + lsrs r1, 16 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r8 + ldrb r0, [r2] + str r0, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x1C] + adds r3, r5, 0 + bl sub_8002554 + mov r3, r9 + ldrh r1, [r3] + adds r1, 0xD + lsls r1, 16 + lsrs r1, 16 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r8 + ldrb r0, [r2] + str r0, [sp, 0x8] + adds r0, r6, 0 + adds r2, r7, 0 + adds r3, r5, 0 + bl sub_8002554 + ldr r3, _0810F230 @ =0x0000080a + adds r1, r3, 0 + mov r0, r9 + ldrh r0, [r0] + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + mov r5, r10 + adds r5, 0x2 + lsls r5, 24 + lsrs r5, 24 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r8 + ldrb r0, [r2] + str r0, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x14] + adds r3, r5, 0 + bl sub_8002554 + ldr r3, _0810F234 @ =0x0000080b + adds r1, r3, 0 + mov r0, r9 + ldrh r0, [r0] + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r8 + ldrb r0, [r2] + str r0, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x18] + adds r3, r5, 0 + bl sub_8002554 + ldr r3, _0810F238 @ =0x0000080c + adds r1, r3, 0 + mov r0, r9 + ldrh r0, [r0] + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r8 + ldrb r0, [r2] + str r0, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x1C] + adds r3, r5, 0 + bl sub_8002554 + ldr r3, _0810F23C @ =0x0000080d + adds r1, r3, 0 + mov r0, r9 + ldrh r0, [r0] + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r8 + ldrb r0, [r2] + str r0, [sp, 0x8] + adds r0, r6, 0 + adds r2, r7, 0 + adds r3, r5, 0 + bl sub_8002554 + ldr r3, _0810F240 @ =0x00000805 + adds r1, r3, 0 + mov r0, r9 + ldrh r0, [r0] + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + mov r5, r10 + adds r5, 0x3 + lsls r5, 24 + lsrs r5, 24 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r8 + ldrb r0, [r2] + str r0, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x14] + adds r3, r5, 0 + bl sub_8002554 + ldr r3, _0810F244 @ =0x00000806 + adds r1, r3, 0 + mov r0, r9 + ldrh r0, [r0] + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r8 + ldrb r0, [r2] + str r0, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x18] + adds r3, r5, 0 + bl sub_8002554 + ldr r3, _0810F248 @ =0x00000808 + adds r1, r3, 0 + mov r0, r9 + ldrh r0, [r0] + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r8 + ldrb r0, [r2] + str r0, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x1C] + adds r3, r5, 0 + bl sub_8002554 + ldr r3, _0810F24C @ =0x00000809 + adds r1, r3, 0 + mov r0, r9 + ldrh r0, [r0] + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r8 + ldrb r0, [r2] + str r0, [sp, 0x8] + adds r0, r6, 0 + adds r2, r7, 0 + adds r3, r5, 0 + bl sub_8002554 + movs r3, 0x80 + lsls r3, 4 + adds r1, r3, 0 + mov r0, r9 + ldrh r0, [r0] + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r2, 0x4 + add r10, r2 + mov r3, r10 + lsls r3, 24 + lsrs r3, 24 + mov r10, r3 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r8 + ldrb r0, [r2] + str r0, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x14] + bl sub_8002554 + ldr r3, _0810F250 @ =0x00000801 + adds r1, r3, 0 + mov r0, r9 + ldrh r0, [r0] + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r8 + ldrb r0, [r2] + str r0, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x18] + mov r3, r10 + bl sub_8002554 + ldr r3, _0810F254 @ =0x00000802 + adds r1, r3, 0 + mov r0, r9 + ldrh r0, [r0] + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + ldr r2, [sp, 0x10] + str r2, [sp] + str r4, [sp, 0x4] + mov r3, r8 + ldrb r0, [r3] + str r0, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0xC] + mov r3, r10 + bl sub_8002554 + ldr r0, _0810F258 @ =0x00000803 + adds r1, r0, 0 + mov r2, r9 + ldrh r2, [r2] + adds r1, r2 + lsls r1, 16 + lsrs r1, 16 + str r4, [sp] + str r4, [sp, 0x4] + mov r3, r8 + ldrb r0, [r3] + str r0, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x1C] + mov r3, r10 + bl sub_8002554 + ldr r0, _0810F25C @ =0x00000804 + adds r1, r0, 0 + mov r2, r9 + ldrh r2, [r2] + adds r1, r2 + lsls r1, 16 + lsrs r1, 16 + str r4, [sp] + str r4, [sp, 0x4] + mov r3, r8 + ldrb r0, [r3] + str r0, [sp, 0x8] + adds r0, r6, 0 + adds r2, r7, 0 + mov r3, r10 + bl sub_8002554 + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810F228: .4byte gUnknown_203ADF0 +_0810F22C: .4byte gUnknown_203ADF2 +_0810F230: .4byte 0x0000080a +_0810F234: .4byte 0x0000080b +_0810F238: .4byte 0x0000080c +_0810F23C: .4byte 0x0000080d +_0810F240: .4byte 0x00000805 +_0810F244: .4byte 0x00000806 +_0810F248: .4byte 0x00000808 +_0810F24C: .4byte 0x00000809 +_0810F250: .4byte 0x00000801 +_0810F254: .4byte 0x00000802 +_0810F258: .4byte 0x00000803 +_0810F25C: .4byte 0x00000804 + thumb_func_end sub_810EE5C + + thumb_func_start sub_810F260 +sub_810F260: @ 810F260 + push {r4,r5,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _0810F294 @ =sub_810F298 + adds r0, r5, 0 + bl sub_800486C + adds r0, r5, 0 + movs r1, 0 + bl sub_800445C + adds r0, r5, 0 + bl sub_80040B8 + cmp r4, 0x1 + bne _0810F28E + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8003F20 +_0810F28E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810F294: .4byte sub_810F298 + thumb_func_end sub_810F260 + + thumb_func_start sub_810F298 +sub_810F298: @ 810F298 + push {r4,r5,lr} + sub sp, 0xC + adds r4, r1, 0 + adds r5, r2, 0 + ldr r1, [sp, 0x18] + lsls r0, 24 + lsrs r0, 24 + lsls r4, 24 + lsls r5, 24 + lsls r3, 24 + lsls r1, 24 + movs r2, 0xFE + lsls r2, 24 + adds r4, r2 + lsrs r4, 24 + movs r2, 0xFF + lsls r2, 24 + adds r5, r2 + lsrs r5, 24 + movs r2, 0x80 + lsls r2, 19 + adds r3, r2 + lsrs r3, 24 + str r3, [sp] + movs r2, 0x80 + lsls r2, 18 + adds r1, r2 + lsrs r1, 24 + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_8002554 + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_810F298 + + thumb_func_start sub_810F2E8 +sub_810F2E8: @ 810F2E8 + push {r4,r5,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0810F324 @ =gUnknown_203ADF0 + strh r2, [r0] + ldr r0, _0810F328 @ =gUnknown_203ADF2 + strb r3, [r0] + ldr r1, _0810F32C @ =sub_810F380 + adds r0, r5, 0 + bl sub_800486C + adds r0, r5, 0 + movs r1, 0x11 + bl sub_800445C + adds r0, r5, 0 + bl sub_8003FA0 + cmp r4, 0x1 + bne _0810F31E + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8003F20 +_0810F31E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810F324: .4byte gUnknown_203ADF0 +_0810F328: .4byte gUnknown_203ADF2 +_0810F32C: .4byte sub_810F380 + thumb_func_end sub_810F2E8 + + thumb_func_start sub_810F330 +sub_810F330: @ 810F330 + push {r4-r6,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0810F374 @ =gUnknown_203ADF0 + strh r2, [r0] + ldr r5, _0810F378 @ =gUnknown_203ADF2 + adds r0, r6, 0 + movs r1, 0x5 + bl sub_8004950 + strb r0, [r5] + ldr r1, _0810F37C @ =sub_810F380 + adds r0, r6, 0 + bl sub_800486C + adds r0, r6, 0 + movs r1, 0x11 + bl sub_800445C + adds r0, r6, 0 + bl sub_8003FA0 + cmp r4, 0x1 + bne _0810F36E + adds r0, r6, 0 + movs r1, 0x3 + bl sub_8003F20 +_0810F36E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810F374: .4byte gUnknown_203ADF0 +_0810F378: .4byte gUnknown_203ADF2 +_0810F37C: .4byte sub_810F380 + thumb_func_end sub_810F330 + + thumb_func_start sub_810F380 +sub_810F380: @ 810F380 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + mov r9, r0 + adds r6, r1, 0 + adds r4, r2, 0 + ldr r0, [sp, 0x38] + mov r1, r9 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r6, 24 + lsls r4, 24 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x10] + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x14] + ldr r2, _0810F4D0 @ =gUnknown_203ADF0 + ldrh r1, [r2] + lsrs r0, r6, 24 + str r0, [sp, 0xC] + movs r2, 0xFF + lsls r2, 24 + adds r6, r2 + lsrs r6, 24 + lsrs r0, r4, 24 + mov r8, r0 + adds r4, r2 + lsrs r4, 24 + movs r5, 0x1 + str r5, [sp] + str r5, [sp, 0x4] + ldr r7, _0810F4D4 @ =gUnknown_203ADF2 + ldrb r0, [r7] + str r0, [sp, 0x8] + mov r0, r9 + adds r2, r6, 0 + adds r3, r4, 0 + bl sub_8002554 + ldr r2, _0810F4D0 @ =gUnknown_203ADF0 + ldrh r1, [r2] + adds r1, 0x1 + lsls r1, 16 + lsrs r1, 16 + ldr r0, [sp, 0x10] + str r0, [sp] + str r5, [sp, 0x4] + ldrb r0, [r7] + str r0, [sp, 0x8] + mov r0, r9 + ldr r2, [sp, 0xC] + adds r3, r4, 0 + bl sub_8002554 + ldr r2, _0810F4D0 @ =gUnknown_203ADF0 + ldrh r1, [r2] + adds r1, 0x2 + lsls r1, 16 + lsrs r1, 16 + ldr r0, [sp, 0xC] + ldr r2, [sp, 0x10] + adds r0, r2 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + str r5, [sp] + str r5, [sp, 0x4] + ldrb r0, [r7] + str r0, [sp, 0x8] + mov r0, r9 + mov r2, r10 + adds r3, r4, 0 + bl sub_8002554 + ldr r0, _0810F4D0 @ =gUnknown_203ADF0 + ldrh r1, [r0] + adds r1, 0x3 + lsls r1, 16 + lsrs r1, 16 + str r5, [sp] + ldr r2, [sp, 0x14] + str r2, [sp, 0x4] + ldrb r0, [r7] + str r0, [sp, 0x8] + mov r0, r9 + adds r2, r6, 0 + mov r3, r8 + bl sub_8002554 + ldr r0, _0810F4D0 @ =gUnknown_203ADF0 + ldrh r1, [r0] + adds r1, 0x5 + lsls r1, 16 + lsrs r1, 16 + str r5, [sp] + ldr r2, [sp, 0x14] + str r2, [sp, 0x4] + ldrb r0, [r7] + str r0, [sp, 0x8] + mov r0, r9 + mov r2, r10 + mov r3, r8 + bl sub_8002554 + ldr r0, _0810F4D0 @ =gUnknown_203ADF0 + ldrh r1, [r0] + adds r1, 0x6 + lsls r1, 16 + lsrs r1, 16 + ldr r2, [sp, 0x14] + add r8, r2 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + str r5, [sp] + str r5, [sp, 0x4] + ldrb r0, [r7] + str r0, [sp, 0x8] + mov r0, r9 + adds r2, r6, 0 + mov r3, r8 + bl sub_8002554 + ldr r2, _0810F4D0 @ =gUnknown_203ADF0 + ldrh r1, [r2] + adds r1, 0x7 + lsls r1, 16 + lsrs r1, 16 + ldr r0, [sp, 0x10] + str r0, [sp] + str r5, [sp, 0x4] + ldrb r0, [r7] + str r0, [sp, 0x8] + mov r0, r9 + ldr r2, [sp, 0xC] + mov r3, r8 + bl sub_8002554 + ldr r2, _0810F4D0 @ =gUnknown_203ADF0 + ldrh r1, [r2] + adds r1, 0x8 + lsls r1, 16 + lsrs r1, 16 + str r5, [sp] + str r5, [sp, 0x4] + ldrb r0, [r7] + str r0, [sp, 0x8] + mov r0, r9 + mov r2, r10 + mov r3, r8 + bl sub_8002554 + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810F4D0: .4byte gUnknown_203ADF0 +_0810F4D4: .4byte gUnknown_203ADF2 + thumb_func_end sub_810F380 + + thumb_func_start sub_810F4D8 +sub_810F4D8: @ 810F4D8 + push {r4,r5,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _0810F50C @ =sub_810F510 + adds r0, r5, 0 + bl sub_800486C + adds r0, r5, 0 + movs r1, 0 + bl sub_800445C + adds r0, r5, 0 + bl sub_80040B8 + cmp r4, 0x1 + bne _0810F506 + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8003F20 +_0810F506: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810F50C: .4byte sub_810F510 + thumb_func_end sub_810F4D8 + + thumb_func_start sub_810F510 +sub_810F510: @ 810F510 + push {r4,r5,lr} + sub sp, 0xC + adds r4, r1, 0 + adds r5, r2, 0 + ldr r1, [sp, 0x18] + lsls r0, 24 + lsrs r0, 24 + lsls r4, 24 + lsls r5, 24 + lsls r3, 24 + lsls r1, 24 + movs r2, 0xFF + lsls r2, 24 + adds r4, r2 + lsrs r4, 24 + adds r5, r2 + lsrs r5, 24 + movs r2, 0x80 + lsls r2, 18 + adds r3, r2 + lsrs r3, 24 + str r3, [sp] + adds r1, r2 + lsrs r1, 24 + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_8002554 + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_810F510 + + thumb_func_start sub_810F558 +sub_810F558: @ 810F558 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + ldr r4, [sp, 0x20] + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + lsls r3, 24 + lsrs r5, r3, 24 + lsls r4, 16 + lsrs r4, 16 + mov r0, sp + movs r1, 0 + movs r2, 0x8 + bl memset + cmp r6, 0x3 + bls _0810F58E + movs r1, 0 + mov r0, sp + strb r1, [r0] + b _0810F592 +_0810F58E: + mov r0, sp + strb r6, [r0] +_0810F592: + mov r1, sp + mov r0, r8 + strb r0, [r1, 0x2] + movs r0, 0x2 + strb r0, [r1, 0x4] + movs r0, 0x1E + subs r0, r7 + strb r0, [r1, 0x1] + strb r7, [r1, 0x3] + strb r5, [r1, 0x5] + strh r4, [r1, 0x6] + ldr r4, _0810F5BC @ =gUnknown_203ADF4 + mov r0, sp + bl sub_8003CE4 + strb r0, [r4] + cmp r5, 0xF + bls _0810F5C0 + movs r5, 0xF0 + b _0810F5C4 + .align 2, 0 +_0810F5BC: .4byte gUnknown_203ADF4 +_0810F5C0: + lsls r0, r5, 28 + lsrs r5, r0, 24 +_0810F5C4: + movs r0, 0x2 + bl sub_8150408 + adds r1, r5, 0 + movs r2, 0x20 + bl sub_80703EC + ldr r0, _0810F5E4 @ =gUnknown_203ADF4 + ldrb r0, [r0] + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0810F5E4: .4byte gUnknown_203ADF4 + thumb_func_end sub_810F558 + + thumb_func_start sub_810F5E8 +sub_810F5E8: @ 810F5E8 + push {r4-r6,lr} + sub sp, 0xC + adds r5, r0, 0 + lsls r2, 24 + lsrs r6, r2, 24 + ldr r4, _0810F648 @ =gUnknown_203ADF4 + ldrb r0, [r4] + cmp r0, 0xFF + beq _0810F63E + bl sub_8003FA0 + ldrb r0, [r4] + movs r1, 0xFF + bl sub_800445C + movs r0, 0 + adds r1, r5, 0 + movs r2, 0 + bl sub_8005ED4 + ldrb r1, [r4] + movs r3, 0x14 + negs r3, r3 + adds r2, r3, 0 + subs r2, r0 + lsls r2, 24 + lsrs r2, 24 + ldr r0, _0810F64C @ =gUnknown_8456618 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r5, [sp, 0x8] + adds r0, r1, 0 + movs r1, 0 + movs r3, 0x1 + bl sub_812E51C + cmp r6, 0 + beq _0810F63E + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8003F20 +_0810F63E: + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810F648: .4byte gUnknown_203ADF4 +_0810F64C: .4byte gUnknown_8456618 + thumb_func_end sub_810F5E8 + + thumb_func_start sub_810F650 +sub_810F650: @ 810F650 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x18 + mov r8, r0 + adds r5, r1, 0 + ldr r0, [sp, 0x30] + lsls r2, 24 + lsrs r2, 24 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _0810F67C @ =gUnknown_203ADF4 + ldrb r1, [r0] + adds r6, r0, 0 + cmp r1, 0xFF + beq _0810F6F6 + cmp r2, 0 + beq _0810F680 + add r1, sp, 0x14 + movs r0, 0 + b _0810F684 + .align 2, 0 +_0810F67C: .4byte gUnknown_203ADF4 +_0810F680: + add r1, sp, 0x14 + movs r0, 0xF +_0810F684: + strb r0, [r1] + movs r0, 0x1 + strb r0, [r1, 0x1] + movs r0, 0x2 + strb r0, [r1, 0x2] + adds r4, r6, 0 + ldrb r0, [r4] + bl sub_8003FA0 + ldrb r0, [r4] + movs r1, 0xFF + bl sub_800445C + cmp r5, 0 + beq _0810F6CE + movs r0, 0 + adds r1, r5, 0 + movs r2, 0 + bl sub_8005ED4 + ldrb r1, [r4] + movs r3, 0x14 + negs r3, r3 + adds r2, r3, 0 + subs r2, r0 + lsls r2, 24 + lsrs r2, 24 + add r0, sp, 0x14 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r5, [sp, 0x8] + adds r0, r1, 0 + movs r1, 0 + movs r3, 0x1 + bl sub_812E51C +_0810F6CE: + ldrb r0, [r6] + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + add r2, sp, 0x14 + str r2, [sp, 0x8] + str r1, [sp, 0xC] + mov r3, r8 + str r3, [sp, 0x10] + movs r1, 0x1 + movs r2, 0x4 + movs r3, 0x1 + bl sub_812E5A4 + cmp r7, 0 + beq _0810F6F6 + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8003F20 +_0810F6F6: + add sp, 0x18 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_810F650 + + thumb_func_start sub_810F704 +sub_810F704: @ 810F704 + push {lr} + ldr r1, _0810F718 @ =gUnknown_203ADF4 + ldrb r0, [r1] + cmp r0, 0xFF + beq _0810F714 + movs r1, 0x3 + bl sub_8003F20 +_0810F714: + pop {r0} + bx r0 + .align 2, 0 +_0810F718: .4byte gUnknown_203ADF4 + thumb_func_end sub_810F704 + + thumb_func_start sub_810F71C +sub_810F71C: @ 810F71C + push {r4,lr} + ldr r4, _0810F73C @ =gUnknown_203ADF4 + ldrb r0, [r4] + cmp r0, 0xFF + beq _0810F734 + movs r1, 0xFF + bl sub_800445C + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8003F20 +_0810F734: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810F73C: .4byte gUnknown_203ADF4 + thumb_func_end sub_810F71C + + thumb_func_start sub_810F740 +sub_810F740: @ 810F740 + push {r4,lr} + ldr r4, _0810F770 @ =gUnknown_203ADF4 + ldrb r0, [r4] + cmp r0, 0xFF + beq _0810F768 + movs r1, 0 + bl sub_800445C + ldrb r0, [r4] + bl sub_80040B8 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8003F20 + ldrb r0, [r4] + bl sub_8003E3C + movs r0, 0xFF + strb r0, [r4] +_0810F768: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810F770: .4byte gUnknown_203ADF4 + thumb_func_end sub_810F740 + + thumb_func_start sub_810F774 +sub_810F774: @ 810F774 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, [sp, 0x18] + mov r8, r4 + ldr r4, [sp, 0x1C] + ldr r5, [sp, 0x20] + ldr r6, [sp, 0x24] + mov r12, r6 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r7, r5, 24 + ldr r5, _0810F7B8 @ =gUnknown_203ADE4 + movs r6, 0 + strb r2, [r5] + strb r3, [r5, 0x1] + strb r6, [r5, 0x3] + subs r4, 0x1 + strb r4, [r5, 0x4] + strb r0, [r5, 0x5] + strb r1, [r5, 0x6] + mov r0, r8 + strb r0, [r5, 0x8] + mov r4, r12 + strb r4, [r5, 0xB] + cmp r7, 0 + blt _0810F7B4 + movs r0, 0x4 + ldrsb r0, [r5, r0] + cmp r7, r0 + ble _0810F7BC +_0810F7B4: + strb r6, [r5, 0x2] + b _0810F7BE + .align 2, 0 +_0810F7B8: .4byte gUnknown_203ADE4 +_0810F7BC: + strb r7, [r5, 0x2] +_0810F7BE: + movs r0, 0 + bl sub_810F904 + ldr r0, _0810F7D4 @ =gUnknown_203ADE4 + ldrb r0, [r0, 0x2] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0810F7D4: .4byte gUnknown_203ADE4 + thumb_func_end sub_810F774 + + thumb_func_start sub_810F7D8 +sub_810F7D8: @ 810F7D8 + push {r4-r6,lr} + sub sp, 0x10 + ldr r4, [sp, 0x20] + ldr r5, [sp, 0x24] + ldr r6, [sp, 0x28] + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + str r4, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + movs r4, 0 + str r4, [sp, 0xC] + bl sub_810F774 + lsls r0, 24 + lsrs r0, 24 + add sp, 0x10 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_810F7D8 + + thumb_func_start sub_810F818 +sub_810F818: @ 810F818 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x14 + mov r8, r0 + adds r6, r1, 0 + ldr r4, [sp, 0x28] + ldr r5, [sp, 0x2C] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r6, 24 + lsrs r6, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + adds r0, r6, 0 + movs r1, 0x1 + str r2, [sp, 0xC] + str r3, [sp, 0x10] + bl sub_80F7AC0 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + mov r0, r8 + adds r1, r6, 0 + ldr r2, [sp, 0xC] + ldr r3, [sp, 0x10] + bl sub_810F7D8 + lsls r0, 24 + lsrs r0, 24 + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_810F818 + + thumb_func_start sub_810F874 +sub_810F874: @ 810F874 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0xC + adds r6, r0, 0 + mov r8, r1 + lsls r6, 24 + lsrs r6, 24 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r5, _0810F8FC @ =gUnknown_203ADE4 + ldrb r0, [r5, 0x6] + movs r1, 0 + bl sub_80F7AC0 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r5, 0x6] + movs r1, 0x1 + bl sub_80F7AC0 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r5, 0x5] + mov r9, r1 + ldrb r2, [r5] + ldrb r1, [r5, 0x8] + adds r3, r1, 0 + muls r3, r6 + ldrb r6, [r5, 0x1] + adds r3, r6 + lsls r3, 16 + lsrs r3, 16 + str r4, [sp] + str r0, [sp, 0x4] + mov r0, r9 + movs r1, 0x1 + bl sub_8004378 + ldrb r0, [r5, 0x5] + ldrb r1, [r5, 0x6] + ldr r2, _0810F900 @ =gUnknown_841623B + ldrb r3, [r5] + ldrb r4, [r5, 0x8] + mov r6, r8 + muls r6, r4 + adds r4, r6, 0 + ldrb r5, [r5, 0x1] + adds r4, r5 + lsls r4, 24 + lsrs r4, 24 + str r4, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + bl sub_8002C48 + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810F8FC: .4byte gUnknown_203ADE4 +_0810F900: .4byte gUnknown_841623B + thumb_func_end sub_810F874 + + thumb_func_start sub_810F904 +sub_810F904: @ 810F904 + push {r4,r5,lr} + ldr r1, _0810F924 @ =gUnknown_203ADE4 + ldrb r5, [r1, 0x2] + movs r2, 0x2 + ldrsb r2, [r1, r2] + lsls r0, 24 + asrs r3, r0, 24 + adds r2, r3 + movs r0, 0x3 + ldrsb r0, [r1, r0] + adds r4, r1, 0 + cmp r2, r0 + bge _0810F928 + ldrb r0, [r4, 0x4] + b _0810F936 + .align 2, 0 +_0810F924: .4byte gUnknown_203ADE4 +_0810F928: + movs r0, 0x4 + ldrsb r0, [r4, r0] + cmp r2, r0 + ble _0810F934 + ldrb r0, [r4, 0x3] + b _0810F936 +_0810F934: + adds r0, r3, r5 +_0810F936: + strb r0, [r4, 0x2] + ldrb r1, [r4, 0x2] + adds r0, r5, 0 + bl sub_810F874 + ldrb r0, [r4, 0x2] + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_810F904 + + thumb_func_start sub_810F948 +sub_810F948: @ 810F948 + push {r4,r5,lr} + ldr r1, _0810F968 @ =gUnknown_203ADE4 + ldrb r5, [r1, 0x2] + movs r2, 0x2 + ldrsb r2, [r1, r2] + lsls r0, 24 + asrs r3, r0, 24 + adds r2, r3 + movs r0, 0x3 + ldrsb r0, [r1, r0] + adds r4, r1, 0 + cmp r2, r0 + bge _0810F96C + ldrb r0, [r4, 0x3] + b _0810F97A + .align 2, 0 +_0810F968: .4byte gUnknown_203ADE4 +_0810F96C: + movs r0, 0x4 + ldrsb r0, [r4, r0] + cmp r2, r0 + ble _0810F978 + ldrb r0, [r4, 0x4] + b _0810F97A +_0810F978: + adds r0, r3, r5 +_0810F97A: + strb r0, [r4, 0x2] + ldrb r1, [r4, 0x2] + adds r0, r5, 0 + bl sub_810F874 + ldrb r0, [r4, 0x2] + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_810F948 + + thumb_func_start sub_810F98C +sub_810F98C: @ 810F98C + ldr r0, _0810F994 @ =gUnknown_203ADE4 + ldrb r0, [r0, 0x2] + bx lr + .align 2, 0 +_0810F994: .4byte gUnknown_203ADE4 + thumb_func_end sub_810F98C + + thumb_func_start sub_810F998 +sub_810F998: @ 810F998 + push {r4,lr} + ldr r0, _0810F9BC @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0810F9C4 + ldr r4, _0810F9C0 @ =gUnknown_203ADE4 + ldrb r0, [r4, 0xB] + cmp r0, 0 + bne _0810F9B4 + movs r0, 0x5 + bl sub_80722CC +_0810F9B4: + movs r0, 0x2 + ldrsb r0, [r4, r0] + b _0810F9FE + .align 2, 0 +_0810F9BC: .4byte gUnknown_30030F0 +_0810F9C0: .4byte gUnknown_203ADE4 +_0810F9C4: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0810F9D2 + movs r0, 0x1 + negs r0, r0 + b _0810F9FE +_0810F9D2: + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0810F9E6 + movs r0, 0x5 + bl sub_80722CC + movs r0, 0x1 + negs r0, r0 + b _0810F9F6 +_0810F9E6: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0810F9FA + movs r0, 0x5 + bl sub_80722CC + movs r0, 0x1 +_0810F9F6: + bl sub_810F904 +_0810F9FA: + movs r0, 0x2 + negs r0, r0 +_0810F9FE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_810F998 + + thumb_func_start sub_810FA04 +sub_810FA04: @ 810FA04 + push {r4-r6,lr} + ldr r4, _0810FA2C @ =gUnknown_203ADE4 + ldrb r5, [r4, 0x2] + adds r6, r5, 0 + ldr r0, _0810FA30 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0810FA34 + ldrb r0, [r4, 0xB] + cmp r0, 0 + bne _0810FA24 + movs r0, 0x5 + bl sub_80722CC +_0810FA24: + movs r0, 0x2 + ldrsb r0, [r4, r0] + b _0810FA7C + .align 2, 0 +_0810FA2C: .4byte gUnknown_203ADE4 +_0810FA30: .4byte gUnknown_30030F0 +_0810FA34: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0810FA42 + movs r0, 0x1 + negs r0, r0 + b _0810FA7C +_0810FA42: + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0810FA5C + movs r0, 0x1 + negs r0, r0 + bl sub_810F948 + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + beq _0810FA78 + b _0810FA72 +_0810FA5C: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0810FA78 + movs r0, 0x1 + bl sub_810F948 + lsls r0, 24 + lsrs r0, 24 + cmp r6, r0 + beq _0810FA78 +_0810FA72: + movs r0, 0x5 + bl sub_80722CC +_0810FA78: + movs r0, 0x2 + negs r0, r0 +_0810FA7C: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_810FA04 + + thumb_func_start sub_810FA84 +sub_810FA84: @ 810FA84 + push {r4,lr} + ldr r2, _0810FAA8 @ =gUnknown_30030F0 + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0810FAB0 + ldr r4, _0810FAAC @ =gUnknown_203ADE4 + ldrb r0, [r4, 0xB] + cmp r0, 0 + bne _0810FAA0 + movs r0, 0x5 + bl sub_80722CC +_0810FAA0: + movs r0, 0x2 + ldrsb r0, [r4, r0] + b _0810FAE8 + .align 2, 0 +_0810FAA8: .4byte gUnknown_30030F0 +_0810FAAC: .4byte gUnknown_203ADE4 +_0810FAB0: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0810FABE + movs r0, 0x1 + negs r0, r0 + b _0810FAE8 +_0810FABE: + ldrh r0, [r2, 0x30] + movs r1, 0xF0 + ands r1, r0 + cmp r1, 0x40 + bne _0810FAD4 + movs r0, 0x5 + bl sub_80722CC + movs r0, 0x1 + negs r0, r0 + b _0810FAE0 +_0810FAD4: + cmp r1, 0x80 + bne _0810FAE4 + movs r0, 0x5 + bl sub_80722CC + movs r0, 0x1 +_0810FAE0: + bl sub_810F904 +_0810FAE4: + movs r0, 0x2 + negs r0, r0 +_0810FAE8: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_810FA84 + + thumb_func_start sub_810FAF0 +sub_810FAF0: @ 810FAF0 + push {r4-r6,lr} + ldr r4, _0810FB18 @ =gUnknown_203ADE4 + ldrb r5, [r4, 0x2] + adds r6, r5, 0 + ldr r2, _0810FB1C @ =gUnknown_30030F0 + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0810FB20 + ldrb r0, [r4, 0xB] + cmp r0, 0 + bne _0810FB10 + movs r0, 0x5 + bl sub_80722CC +_0810FB10: + movs r0, 0x2 + ldrsb r0, [r4, r0] + b _0810FB66 + .align 2, 0 +_0810FB18: .4byte gUnknown_203ADE4 +_0810FB1C: .4byte gUnknown_30030F0 +_0810FB20: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0810FB2E + movs r0, 0x1 + negs r0, r0 + b _0810FB66 +_0810FB2E: + ldrh r0, [r2, 0x30] + movs r1, 0xF0 + ands r1, r0 + cmp r1, 0x40 + bne _0810FB4A + movs r0, 0x1 + negs r0, r0 + bl sub_810F948 + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + beq _0810FB62 + b _0810FB5C +_0810FB4A: + cmp r1, 0x80 + bne _0810FB62 + movs r0, 0x1 + bl sub_810F948 + lsls r0, 24 + lsrs r0, 24 + cmp r6, r0 + beq _0810FB62 +_0810FB5C: + movs r0, 0x5 + bl sub_80722CC +_0810FB62: + movs r0, 0x2 + negs r0, r0 +_0810FB66: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_810FAF0 + + thumb_func_start sub_810FB6C +sub_810FB6C: @ 810FB6C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + ldr r4, [sp, 0x2C] + ldr r5, [sp, 0x30] + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + lsls r4, 24 + lsrs r7, r4, 24 + lsls r5, 24 + lsrs r5, 24 + movs r4, 0 + cmp r4, r5 + bcs _0810FBD0 +_0810FBA0: + lsls r0, r4, 3 + ldr r1, [sp, 0x34] + adds r0, r1 + ldr r2, [r0] + adds r0, r7, 0 + muls r0, r4 + add r0, r8 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + adds r0, r6, 0 + mov r1, r10 + mov r3, r9 + bl sub_8002C48 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _0810FBA0 +_0810FBD0: + adds r0, r6, 0 + movs r1, 0x2 + bl sub_8003F20 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_810FB6C + + thumb_func_start sub_810FBE8 +sub_810FBE8: @ 810FBE8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + ldr r4, [sp, 0x40] + ldr r5, [sp, 0x44] + ldr r6, [sp, 0x4C] + ldr r7, [sp, 0x50] + mov r8, r7 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x14] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x18] + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x1C] + lsls r4, 24 + lsrs r4, 24 + mov r10, r4 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + mov r9, r6 + mov r0, r8 + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0 + cmp r4, r5 + bcs _0810FC68 +_0810FC30: + lsls r0, r4, 3 + ldr r1, [sp, 0x48] + adds r0, r1 + ldr r2, [r0] + mov r0, r10 + muls r0, r4 + ldr r1, [sp, 0x1C] + adds r0, r1, r0 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + mov r0, r9 + str r0, [sp, 0xC] + str r6, [sp, 0x10] + adds r0, r7, 0 + ldr r1, [sp, 0x14] + ldr r3, [sp, 0x18] + bl sub_812E62C + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _0810FC30 +_0810FC68: + adds r0, r7, 0 + movs r1, 0x2 + bl sub_8003F20 + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_810FBE8 + + thumb_func_start sub_810FC80 +sub_810FC80: @ 810FC80 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + mov r8, r0 + adds r6, r1, 0 + adds r4, r2, 0 + adds r5, r3, 0 + ldr r7, [sp, 0x24] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r6, 24 + lsrs r6, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + adds r0, r6, 0 + movs r1, 0 + bl sub_80F7AC0 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + str r4, [sp] + str r5, [sp, 0x4] + str r7, [sp, 0x8] + mov r0, r8 + adds r1, r6, 0 + movs r3, 0 + bl sub_810FB6C + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_810FC80 + + thumb_func_start sub_810FCD0 +sub_810FCD0: @ 810FCD0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + adds r6, r1, 0 + mov r8, r2 + ldr r1, [sp, 0x38] + mov r9, r1 + ldr r1, [sp, 0x3C] + ldr r2, [sp, 0x40] + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x10] + lsls r6, 24 + lsrs r6, 24 + mov r4, r8 + lsls r4, 24 + lsrs r4, 24 + mov r8, r4 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x14] + mov r0, r9 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r2, 24 + lsrs r7, r2, 24 + mov r0, sp + ldrb r1, [r0, 0x10] + strb r1, [r0, 0x4] + strb r6, [r0, 0x5] + adds r0, r6, 0 + movs r1, 0x5 + bl sub_80F79D8 + mov r3, sp + lsls r0, 4 + ldrb r2, [r3, 0xC] + movs r5, 0xF + adds r1, r5, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xC] + adds r0, r6, 0 + movs r1, 0x6 + bl sub_80F79D8 + mov r3, sp + adds r1, r5, 0 + ands r1, r0 + ldrb r2, [r3, 0xD] + movs r4, 0x10 + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0xD] + adds r0, r6, 0 + movs r1, 0x7 + bl sub_80F79D8 + mov r3, sp + lsls r0, 4 + ldrb r2, [r3, 0xD] + adds r1, r5, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xD] + adds r0, r6, 0 + movs r1, 0x4 + bl sub_80F79D8 + mov r1, sp + ands r5, r0 + ldrb r0, [r1, 0xC] + ands r4, r0 + orrs r4, r5 + strb r4, [r1, 0xC] + mov r0, sp + mov r2, r9 + strb r2, [r0, 0xA] + adds r0, r6, 0 + movs r1, 0x3 + bl sub_80F79D8 + mov r1, sp + strb r0, [r1, 0xB] + mov r0, sp + mov r4, r8 + strb r4, [r0, 0x6] + strb r4, [r0, 0x8] + movs r4, 0 + cmp r4, r7 + bcs _0810FDCA + mov r5, sp +_0810FD9A: + ldr r1, [sp, 0x48] + adds r0, r1, r4 + ldrb r0, [r0] + lsls r0, 3 + ldr r2, [sp, 0x44] + adds r0, r2 + ldr r0, [r0] + str r0, [sp] + mov r0, r10 + muls r0, r4 + ldr r1, [sp, 0x14] + adds r0, r1, r0 + strb r0, [r5, 0x7] + strb r0, [r5, 0x9] + mov r0, sp + movs r1, 0xFF + movs r2, 0 + bl sub_8002CF4 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r7 + bcc _0810FD9A +_0810FDCA: + ldr r0, [sp, 0x10] + movs r1, 0x2 + bl sub_8003F20 + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_810FCD0 + + thumb_func_start sub_810FDE4 +sub_810FDE4: @ 810FDE4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + mov r9, r0 + adds r4, r1, 0 + adds r6, r2, 0 + mov r8, r3 + ldr r7, [sp, 0x30] + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r4, 24 + lsrs r4, 24 + lsls r6, 24 + lsrs r6, 24 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + adds r0, r4, 0 + movs r1, 0 + bl sub_80F79D8 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r4, 0 + movs r1, 0x2 + bl sub_80F79D8 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + str r6, [sp, 0x4] + mov r0, r8 + str r0, [sp, 0x8] + str r7, [sp, 0xC] + ldr r0, [sp, 0x34] + str r0, [sp, 0x10] + mov r0, r9 + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0 + bl sub_810FCD0 + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_810FDE4 + + thumb_func_start sub_810FE50 +sub_810FE50: @ 810FE50 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r4, [sp, 0x28] + mov r12, r4 + ldr r4, [sp, 0x2C] + mov r9, r4 + ldr r4, [sp, 0x30] + mov r10, r4 + ldr r7, [sp, 0x34] + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsls r3, 24 + mov r4, r9 + lsls r4, 24 + lsrs r4, 24 + mov r9, r4 + mov r4, r10 + lsls r4, 24 + mov r10, r4 + ldr r4, _0810FEF0 @ =0xffffff00 + mov r8, r4 + mov r5, r8 + ldr r4, [sp] + ands r5, r4 + orrs r5, r1 + str r5, [sp] + lsrs r2, 16 + ldr r6, _0810FEF4 @ =0xffff00ff + adds r4, r6, 0 + ands r4, r5 + orrs r4, r2 + str r4, [sp] + lsrs r3, 8 + ldr r1, _0810FEF8 @ =0xff00ffff + ands r1, r4 + orrs r1, r3 + str r1, [sp] + mov r2, r12 + lsls r2, 24 + mov r12, r2 + ldr r2, _0810FEFC @ =0x00ffffff + ands r1, r2 + mov r4, r12 + orrs r4, r1 + str r4, [sp] + ldr r1, [sp, 0x4] + mov r2, r8 + ands r1, r2 + mov r4, r9 + orrs r1, r4 + mov r8, r1 + str r1, [sp, 0x4] + mov r1, r10 + lsrs r1, 16 + mov r2, r8 + ands r6, r2 + orrs r6, r1 + str r6, [sp, 0x4] + lsls r2, r7, 16 + ldr r1, _0810FF00 @ =0x0000ffff + ands r6, r1 + orrs r6, r2 + str r6, [sp, 0x4] + ldr r1, [sp] + ldr r2, [sp, 0x4] + str r1, [r0] + str r2, [r0, 0x4] + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r2} + bx r2 + .align 2, 0 +_0810FEF0: .4byte 0xffffff00 +_0810FEF4: .4byte 0xffff00ff +_0810FEF8: .4byte 0xff00ffff +_0810FEFC: .4byte 0x00ffffff +_0810FF00: .4byte 0x0000ffff + thumb_func_end sub_810FE50 + + thumb_func_start sub_810FF04 +sub_810FF04: @ 810FF04 + push {r4-r6,lr} + sub sp, 0x20 + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + ldr r0, [sp, 0x30] + ldr r1, [sp, 0x34] + ldr r2, [sp, 0x38] + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 16 + lsrs r2, 16 + str r3, [sp] + str r0, [sp, 0x4] + str r1, [sp, 0x8] + str r2, [sp, 0xC] + add r0, sp, 0x10 + adds r1, r4, 0 + adds r2, r5, 0 + adds r3, r6, 0 + bl sub_810FE50 + ldr r0, [sp, 0x10] + ldr r1, [sp, 0x14] + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + add r0, sp, 0x18 + bl sub_8003CE4 + lsls r0, 16 + lsrs r0, 16 + add sp, 0x20 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_810FF04 + + thumb_func_start sub_810FF60 +sub_810FF60: @ 810FF60 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + adds r6, r1, 0 + mov r8, r2 + mov r9, r3 + ldr r4, [sp, 0x3C] + ldr r5, [sp, 0x40] + ldr r1, [sp, 0x44] + mov r10, r1 + lsls r6, 24 + lsrs r6, 24 + mov r1, r8 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + mov r1, r9 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 24 + lsrs r5, 24 + mov r1, r10 + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + ldr r7, _0811009C @ =gUnknown_203ADF3 + bl sub_8003CE4 + strb r0, [r7] + ldrb r0, [r7] + movs r1, 0x1 + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_810F2E8 + ldr r0, _081100A0 @ =gUnknown_841623D + str r0, [sp, 0xC] + add r1, sp, 0xC + ldrb r0, [r7] + strb r0, [r1, 0x4] + adds r0, r1, 0 + strb r6, [r0, 0x5] + adds r0, r6, 0 + movs r1, 0 + bl sub_80F7AC0 + add r1, sp, 0xC + add r0, r8 + strb r0, [r1, 0x6] + adds r0, r1, 0 + mov r1, r9 + strb r1, [r0, 0x7] + adds r1, r0, 0 + ldrb r0, [r0, 0x6] + strb r0, [r1, 0x8] + adds r0, r1, 0 + ldrb r0, [r0, 0x7] + strb r0, [r1, 0x9] + adds r0, r6, 0 + movs r1, 0x5 + bl sub_80F79D8 + add r3, sp, 0xC + lsls r0, 4 + ldrb r2, [r3, 0xC] + movs r5, 0xF + adds r1, r5, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xC] + adds r0, r6, 0 + movs r1, 0x6 + bl sub_80F79D8 + add r3, sp, 0xC + adds r1, r5, 0 + ands r1, r0 + ldrb r2, [r3, 0xD] + movs r4, 0x10 + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0xD] + adds r0, r6, 0 + movs r1, 0x7 + bl sub_80F79D8 + add r3, sp, 0xC + lsls r0, 4 + ldrb r2, [r3, 0xD] + adds r1, r5, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xD] + adds r0, r6, 0 + movs r1, 0x4 + bl sub_80F79D8 + add r1, sp, 0xC + ands r5, r0 + ldrb r0, [r1, 0xC] + ands r4, r0 + orrs r4, r5 + strb r4, [r1, 0xC] + adds r0, r6, 0 + movs r1, 0x2 + bl sub_80F79D8 + add r1, sp, 0xC + strb r0, [r1, 0xA] + adds r0, r6, 0 + movs r1, 0x3 + bl sub_80F79D8 + add r1, sp, 0xC + strb r0, [r1, 0xB] + adds r0, r1, 0 + movs r1, 0xFF + movs r2, 0 + bl sub_8002CF4 + adds r0, r6, 0 + movs r1, 0x1 + bl sub_80F79D8 + add r1, sp, 0xC + ldrb r1, [r1, 0xB] + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r7] + str r0, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + mov r0, r10 + str r0, [sp, 0x8] + adds r0, r1, 0 + adds r1, r6, 0 + mov r2, r8 + mov r3, r9 + bl sub_810F7D8 + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0811009C: .4byte gUnknown_203ADF3 +_081100A0: .4byte gUnknown_841623D + thumb_func_end sub_810FF60 + + thumb_func_start sub_81100A4 +sub_81100A4: @ 81100A4 + push {lr} + sub sp, 0xC + lsls r1, 24 + lsrs r1, 24 + lsls r2, 16 + lsrs r2, 16 + lsls r3, 24 + lsrs r3, 24 + str r2, [sp] + str r3, [sp, 0x4] + movs r2, 0 + str r2, [sp, 0x8] + movs r3, 0 + bl sub_810FF60 + add sp, 0xC + pop {r0} + bx r0 + thumb_func_end sub_81100A4 + + thumb_func_start sub_81100C8 +sub_81100C8: @ 81100C8 + push {r4,lr} + bl sub_810FA04 + lsls r0, 24 + asrs r4, r0, 24 + movs r0, 0x2 + negs r0, r0 + cmp r4, r0 + beq _081100DE + bl sub_81100E8 +_081100DE: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81100C8 + + thumb_func_start sub_81100E8 +sub_81100E8: @ 81100E8 + push {r4,lr} + ldr r4, _08110100 @ =gUnknown_203ADF3 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_810F4D8 + ldrb r0, [r4] + bl sub_8003E3C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08110100: .4byte gUnknown_203ADF3 + thumb_func_end sub_81100E8 + + thumb_func_start sub_8110104 +sub_8110104: @ 8110104 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + ldr r4, [sp, 0x40] + ldr r5, [sp, 0x44] + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0xC] + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x10] + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x14] + lsls r4, 24 + lsrs r6, r4, 24 + lsls r5, 24 + lsrs r5, 24 + str r5, [sp, 0x18] + mov r0, r9 + movs r1, 0 + bl sub_80F79D8 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + mov r0, r9 + movs r1, 0x1 + bl sub_80F79D8 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x10 + subs r1, r0 + lsrs r0, r1, 31 + adds r1, r0 + asrs r1, 1 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x1C] + movs r5, 0 + b _081101B8 +_08110164: + movs r4, 0 + adds r1, r5, 0x1 + mov r8, r1 + cmp r4, r6 + bcs _081101B2 + ldr r1, [sp, 0x14] + adds r0, r1, 0 + muls r0, r5 + ldr r1, [sp, 0x1C] + adds r0, r1, r0 + lsls r0, 24 + lsrs r7, r0, 24 +_0811017C: + adds r0, r5, 0 + muls r0, r6 + adds r0, r4 + lsls r0, 3 + ldr r1, [sp, 0x48] + adds r0, r1 + ldr r2, [r0] + ldr r0, [sp, 0x10] + adds r3, r0, 0 + muls r3, r4 + add r3, r10 + lsls r3, 24 + lsrs r3, 24 + str r7, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + ldr r0, [sp, 0xC] + mov r1, r9 + bl sub_8002C48 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r6 + bcc _0811017C +_081101B2: + mov r1, r8 + lsls r0, r1, 24 + lsrs r5, r0, 24 +_081101B8: + ldr r0, [sp, 0x18] + cmp r5, r0 + bcc _08110164 + ldr r0, [sp, 0xC] + movs r1, 0x2 + bl sub_8003F20 + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8110104 + + thumb_func_start sub_81101D8 +sub_81101D8: @ 81101D8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + ldr r4, [sp, 0x3C] + ldr r5, [sp, 0x40] + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0xC] + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x10] + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x14] + lsls r4, 24 + lsrs r6, r4, 24 + lsls r5, 24 + lsrs r5, 24 + str r5, [sp, 0x18] + mov r0, r10 + movs r1, 0 + bl sub_80F79D8 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r5, 0 + b _08110272 +_0811021C: + movs r4, 0 + adds r1, r5, 0x1 + mov r8, r1 + cmp r4, r6 + bcs _0811026C + ldr r1, [sp, 0x14] + adds r0, r1, 0 + muls r0, r5 + lsls r0, 24 + lsrs r7, r0, 24 +_08110230: + adds r0, r5, 0 + muls r0, r6 + adds r0, r4 + ldr r1, [sp, 0x48] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, 3 + ldr r1, [sp, 0x44] + adds r0, r1 + ldr r2, [r0] + ldr r0, [sp, 0x10] + adds r3, r0, 0 + muls r3, r4 + add r3, r9 + lsls r3, 24 + lsrs r3, 24 + str r7, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + ldr r0, [sp, 0xC] + mov r1, r10 + bl sub_8002C48 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r6 + bcc _08110230 +_0811026C: + mov r1, r8 + lsls r0, r1, 24 + lsrs r5, r0, 24 +_08110272: + ldr r0, [sp, 0x18] + cmp r5, r0 + bcc _0811021C + ldr r0, [sp, 0xC] + movs r1, 0x2 + bl sub_8003F20 + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81101D8 + + thumb_func_start sub_8110290 +sub_8110290: @ 8110290 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, [sp, 0x20] + mov r12, r4 + ldr r4, [sp, 0x24] + mov r8, r4 + ldr r4, [sp, 0x28] + mov r9, r4 + ldr r4, [sp, 0x2C] + mov r10, r4 + ldr r4, [sp, 0x30] + ldr r5, [sp, 0x34] + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r7, r5, 24 + ldr r5, _081102E8 @ =gUnknown_203ADE4 + movs r6, 0 + strb r2, [r5] + strb r3, [r5, 0x1] + strb r6, [r5, 0x3] + subs r4, 0x1 + strb r4, [r5, 0x4] + strb r0, [r5, 0x5] + strb r1, [r5, 0x6] + mov r0, r12 + strb r0, [r5, 0x7] + mov r4, r8 + strb r4, [r5, 0x8] + mov r0, r9 + strb r0, [r5, 0x9] + mov r4, r10 + strb r4, [r5, 0xA] + cmp r7, 0 + blt _081102E4 + movs r0, 0x4 + ldrsb r0, [r5, r0] + cmp r7, r0 + ble _081102EC +_081102E4: + strb r6, [r5, 0x2] + b _081102EE + .align 2, 0 +_081102E8: .4byte gUnknown_203ADE4 +_081102EC: + strb r7, [r5, 0x2] +_081102EE: + movs r0, 0 + movs r1, 0 + bl sub_8110450 + ldr r0, _08110308 @ =gUnknown_203ADE4 + ldrb r0, [r0, 0x2] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08110308: .4byte gUnknown_203ADE4 + thumb_func_end sub_8110290 + + thumb_func_start sub_811030C +sub_811030C: @ 811030C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + ldr r4, [sp, 0x38] + ldr r5, [sp, 0x3C] + ldr r6, [sp, 0x40] + ldr r7, [sp, 0x44] + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + mov r8, r4 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r7, 24 + adds r4, r7, 0 + lsrs r4, 24 + mov r9, r4 + movs r7, 0x10 + mov r10, r7 + adds r4, r5, 0 + muls r4, r6 + lsls r4, 24 + lsrs r4, 24 + mov r7, r8 + str r7, [sp] + mov r7, r10 + str r7, [sp, 0x4] + str r5, [sp, 0x8] + str r6, [sp, 0xC] + str r4, [sp, 0x10] + mov r4, r9 + str r4, [sp, 0x14] + bl sub_8110290 + lsls r0, 24 + lsrs r0, 24 + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_811030C + + thumb_func_start sub_811037C +sub_811037C: @ 811037C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + mov r8, r0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r0, r1, 24 + lsrs r7, r0, 24 + ldr r5, _08110448 @ =gUnknown_203ADE4 + ldrb r0, [r5, 0x6] + movs r1, 0 + bl sub_80F7AC0 + mov r9, r0 + mov r1, r9 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + ldrb r0, [r5, 0x6] + movs r1, 0x1 + bl sub_80F7AC0 + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + ldrb r0, [r5, 0x9] + mov r10, r0 + mov r0, r8 + mov r1, r10 + bl __umodsi3 + ldrb r1, [r5, 0x7] + adds r4, r1, 0 + muls r4, r0 + ldrb r1, [r5] + adds r4, r1 + lsls r4, 24 + lsrs r4, 24 + mov r0, r8 + mov r1, r10 + bl __udivsi3 + ldrb r1, [r5, 0x8] + adds r3, r1, 0 + muls r3, r0 + ldrb r0, [r5, 0x1] + adds r3, r0 + lsls r3, 24 + lsrs r3, 24 + ldrb r0, [r5, 0x5] + mov r1, r9 + str r1, [sp] + str r6, [sp, 0x4] + movs r1, 0x11 + adds r2, r4, 0 + bl sub_8004378 + ldrb r6, [r5, 0x9] + adds r0, r7, 0 + adds r1, r6, 0 + bl __umodsi3 + ldrb r1, [r5, 0x7] + adds r4, r1, 0 + muls r4, r0 + ldrb r0, [r5] + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r7, 0 + adds r1, r6, 0 + bl __udivsi3 + ldrb r1, [r5, 0x8] + adds r3, r1, 0 + muls r3, r0 + ldrb r1, [r5, 0x1] + adds r3, r1 + lsls r3, 24 + lsrs r3, 24 + ldrb r0, [r5, 0x5] + ldrb r1, [r5, 0x6] + ldr r2, _0811044C @ =gUnknown_841623B + str r3, [sp] + movs r3, 0 + str r3, [sp, 0x4] + str r3, [sp, 0x8] + adds r3, r4, 0 + bl sub_8002C48 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08110448: .4byte gUnknown_203ADE4 +_0811044C: .4byte gUnknown_841623B + thumb_func_end sub_811037C + + thumb_func_start sub_8110450 +sub_8110450: @ 8110450 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + ldr r1, _0811048C @ =gUnknown_203ADE4 + ldrb r2, [r1, 0x2] + mov r8, r2 + lsls r0, 24 + asrs r6, r0, 24 + adds r5, r1, 0 + cmp r6, 0 + beq _081104A6 + movs r7, 0x2 + ldrsb r7, [r5, r7] + ldrb r4, [r5, 0x9] + adds r0, r7, 0 + adds r1, r4, 0 + bl __modsi3 + adds r0, r6 + cmp r0, 0 + bge _08110490 + adds r0, r4, 0 + adds r0, 0xFF + add r0, r8 + b _081104A4 + .align 2, 0 +_0811048C: .4byte gUnknown_203ADE4 +_08110490: + cmp r0, r4 + blt _081104A0 + adds r0, r7, 0 + adds r1, r4, 0 + bl __divsi3 + muls r0, r4 + b _081104A4 +_081104A0: + mov r1, r8 + adds r0, r6, r1 +_081104A4: + strb r0, [r5, 0x2] +_081104A6: + mov r2, r9 + lsls r0, r2, 24 + asrs r6, r0, 24 + cmp r6, 0 + beq _081104EA + movs r0, 0x2 + ldrsb r0, [r5, r0] + ldrb r4, [r5, 0x9] + adds r1, r4, 0 + bl __divsi3 + adds r1, r0, r6 + cmp r1, 0 + bge _081104CE + ldrb r0, [r5, 0xA] + subs r0, 0x1 + muls r0, r4 + ldrb r1, [r5, 0x2] + adds r0, r1 + b _081104E8 +_081104CE: + ldrb r0, [r5, 0xA] + cmp r1, r0 + blt _081104E0 + subs r0, 0x1 + adds r1, r4, 0 + muls r1, r0 + ldrb r0, [r5, 0x2] + subs r0, r1 + b _081104E8 +_081104E0: + adds r0, r4, 0 + muls r0, r6 + ldrb r2, [r5, 0x2] + adds r0, r2 +_081104E8: + strb r0, [r5, 0x2] +_081104EA: + movs r1, 0x2 + ldrsb r1, [r5, r1] + movs r0, 0x4 + ldrsb r0, [r5, r0] + cmp r1, r0 + bgt _08110500 + ldrb r1, [r5, 0x2] + mov r0, r8 + bl sub_811037C + b _08110504 +_08110500: + mov r0, r8 + strb r0, [r5, 0x2] +_08110504: + ldrb r0, [r5, 0x2] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8110450 + + thumb_func_start sub_8110514 +sub_8110514: @ 8110514 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + ldr r1, _0811058C @ =gUnknown_203ADE4 + ldrb r7, [r1, 0x2] + lsls r0, 24 + asrs r4, r0, 24 + adds r5, r1, 0 + cmp r4, 0 + beq _08110548 + movs r0, 0x2 + ldrsb r0, [r5, r0] + ldrb r6, [r5, 0x9] + adds r1, r6, 0 + bl __modsi3 + adds r0, r4 + cmp r0, 0 + blt _08110548 + cmp r0, r6 + bge _08110548 + adds r0, r4, r7 + strb r0, [r5, 0x2] +_08110548: + mov r1, r8 + lsls r0, r1, 24 + asrs r4, r0, 24 + cmp r4, 0 + beq _08110574 + movs r0, 0x2 + ldrsb r0, [r5, r0] + ldrb r6, [r5, 0x9] + adds r1, r6, 0 + bl __divsi3 + adds r0, r4 + cmp r0, 0 + blt _08110574 + ldrb r1, [r5, 0xA] + cmp r0, r1 + bge _08110574 + adds r0, r6, 0 + muls r0, r4 + ldrb r1, [r5, 0x2] + adds r0, r1 + strb r0, [r5, 0x2] +_08110574: + movs r1, 0x2 + ldrsb r1, [r5, r1] + movs r0, 0x4 + ldrsb r0, [r5, r0] + cmp r1, r0 + bgt _08110590 + ldrb r1, [r5, 0x2] + adds r0, r7, 0 + bl sub_811037C + b _08110592 + .align 2, 0 +_0811058C: .4byte gUnknown_203ADE4 +_08110590: + strb r7, [r5, 0x2] +_08110592: + ldrb r0, [r5, 0x2] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8110514 + + thumb_func_start sub_81105A0 +sub_81105A0: @ 81105A0 + push {r4,lr} + ldr r4, _081105C0 @ =gUnknown_30030F0 + ldrh r1, [r4, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081105C8 + movs r0, 0x5 + bl sub_80722CC + ldr r0, _081105C4 @ =gUnknown_203ADE4 + ldrb r0, [r0, 0x2] + lsls r0, 24 + asrs r0, 24 + b _08110648 + .align 2, 0 +_081105C0: .4byte gUnknown_30030F0 +_081105C4: .4byte gUnknown_203ADE4 +_081105C8: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081105D6 + movs r0, 0x1 + negs r0, r0 + b _08110648 +_081105D6: + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081105EC + movs r0, 0x5 + bl sub_80722CC + movs r1, 0x1 + negs r1, r1 + movs r0, 0 + b _08110640 +_081105EC: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08110600 + movs r0, 0x5 + bl sub_80722CC + movs r0, 0 + movs r1, 0x1 + b _08110640 +_08110600: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _08110614 + bl sub_80BF630 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08110620 +_08110614: + movs r0, 0x5 + bl sub_80722CC + movs r0, 0x1 + negs r0, r0 + b _0811063E +_08110620: + ldrh r1, [r4, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _08110636 + bl sub_80BF630 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _08110644 +_08110636: + movs r0, 0x5 + bl sub_80722CC + movs r0, 0x1 +_0811063E: + movs r1, 0 +_08110640: + bl sub_8110450 +_08110644: + movs r0, 0x2 + negs r0, r0 +_08110648: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81105A0 + + thumb_func_start sub_8110650 +sub_8110650: @ 8110650 + push {r4-r6,lr} + ldr r5, _08110670 @ =gUnknown_203ADE4 + ldrb r4, [r5, 0x2] + ldr r6, _08110674 @ =gUnknown_30030F0 + ldrh r1, [r6, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08110678 + movs r0, 0x5 + bl sub_80722CC + movs r0, 0x2 + ldrsb r0, [r5, r0] + b _081106EE + .align 2, 0 +_08110670: .4byte gUnknown_203ADE4 +_08110674: .4byte gUnknown_30030F0 +_08110678: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08110686 + movs r0, 0x1 + negs r0, r0 + b _081106EE +_08110686: + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08110696 + movs r1, 0x1 + negs r1, r1 + movs r0, 0 + b _081106D8 +_08110696: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081106A4 + movs r0, 0 + movs r1, 0x1 + b _081106D8 +_081106A4: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _081106B8 + bl sub_80BF630 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081106BE +_081106B8: + movs r0, 0x1 + negs r0, r0 + b _081106D6 +_081106BE: + ldrh r1, [r6, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _081106D4 + bl sub_80BF630 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _081106EA +_081106D4: + movs r0, 0x1 +_081106D6: + movs r1, 0 +_081106D8: + bl sub_8110514 + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + beq _081106EA + movs r0, 0x5 + bl sub_80722CC +_081106EA: + movs r0, 0x2 + negs r0, r0 +_081106EE: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8110650 + + thumb_func_start sub_81106F4 +sub_81106F4: @ 81106F4 + push {r4,r5,lr} + ldr r4, _08110714 @ =gUnknown_30030F0 + ldrh r1, [r4, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0811071C + movs r0, 0x5 + bl sub_80722CC + ldr r0, _08110718 @ =gUnknown_203ADE4 + ldrb r0, [r0, 0x2] + lsls r0, 24 + asrs r0, 24 + b _08110798 + .align 2, 0 +_08110714: .4byte gUnknown_30030F0 +_08110718: .4byte gUnknown_203ADE4 +_0811071C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0811072A + movs r0, 0x1 + negs r0, r0 + b _08110798 +_0811072A: + ldrh r0, [r4, 0x30] + movs r5, 0xF0 + adds r1, r5, 0 + ands r1, r0 + cmp r1, 0x40 + bne _08110744 + movs r0, 0x5 + bl sub_80722CC + movs r1, 0x1 + negs r1, r1 + movs r0, 0 + b _08110790 +_08110744: + cmp r1, 0x80 + bne _08110754 + movs r0, 0x5 + bl sub_80722CC + movs r0, 0 + movs r1, 0x1 + b _08110790 +_08110754: + cmp r1, 0x20 + beq _08110764 + bl sub_80BF66C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08110770 +_08110764: + movs r0, 0x5 + bl sub_80722CC + movs r0, 0x1 + negs r0, r0 + b _0811078E +_08110770: + ldrh r1, [r4, 0x30] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0x10 + beq _08110786 + bl sub_80BF66C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _08110794 +_08110786: + movs r0, 0x5 + bl sub_80722CC + movs r0, 0x1 +_0811078E: + movs r1, 0 +_08110790: + bl sub_8110450 +_08110794: + movs r0, 0x2 + negs r0, r0 +_08110798: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81106F4 + + thumb_func_start sub_81107A0 +sub_81107A0: @ 81107A0 + push {r4-r6,lr} + ldr r6, _081107C0 @ =gUnknown_203ADE4 + ldrb r4, [r6, 0x2] + ldr r5, _081107C4 @ =gUnknown_30030F0 + ldrh r1, [r5, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081107C8 + movs r0, 0x5 + bl sub_80722CC + movs r0, 0x2 + ldrsb r0, [r6, r0] + b _0811083A + .align 2, 0 +_081107C0: .4byte gUnknown_203ADE4 +_081107C4: .4byte gUnknown_30030F0 +_081107C8: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081107D6 + movs r0, 0x1 + negs r0, r0 + b _0811083A +_081107D6: + ldrh r0, [r5, 0x30] + movs r6, 0xF0 + adds r1, r6, 0 + ands r1, r0 + cmp r1, 0x40 + bne _081107EA + movs r1, 0x1 + negs r1, r1 + movs r0, 0 + b _08110824 +_081107EA: + cmp r1, 0x80 + bne _081107F4 + movs r0, 0 + movs r1, 0x1 + b _08110824 +_081107F4: + cmp r1, 0x20 + beq _08110804 + bl sub_80BF66C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0811080A +_08110804: + movs r0, 0x1 + negs r0, r0 + b _08110822 +_0811080A: + ldrh r1, [r5, 0x30] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0x10 + beq _08110820 + bl sub_80BF66C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _08110836 +_08110820: + movs r0, 0x1 +_08110822: + movs r1, 0 +_08110824: + bl sub_8110514 + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + beq _08110836 + movs r0, 0x5 + bl sub_80722CC +_08110836: + movs r0, 0x2 + negs r0, r0 +_0811083A: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81107A0 + + .align 2, 0 @ Don't pad with nop. |