diff options
Diffstat (limited to 'asm/fldeff_cut.s')
-rw-r--r-- | asm/fldeff_cut.s | 535 |
1 files changed, 535 insertions, 0 deletions
diff --git a/asm/fldeff_cut.s b/asm/fldeff_cut.s new file mode 100644 index 000000000..a5dc8c9c6 --- /dev/null +++ b/asm/fldeff_cut.s @@ -0,0 +1,535 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_8097874 +sub_8097874: @ 8097874 + push {lr} + lsls r0, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + movs r2, 0x1 + bl sub_8058F48 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + bl sub_805A2BC + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_8097874 + + thumb_func_start sub_8097898 +sub_8097898: @ 8097898 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + ldr r4, _080978CC @ =gUnknown_2039874 + movs r0, 0 + strb r0, [r4] + bl sub_80CCD84 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080978E0 + movs r0, 0x5F + bl sub_80C97A8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08097904 + ldr r1, _080978D0 @ =gUnknown_3005024 + ldr r0, _080978D4 @ =sub_81248B0 + str r0, [r1] + ldr r1, _080978D8 @ =gUnknown_203B0C4 + ldr r0, _080978DC @ =sub_80979D0 + b _080978EC + .align 2, 0 +_080978CC: .4byte gUnknown_2039874 +_080978D0: .4byte gUnknown_3005024 +_080978D4: .4byte sub_81248B0 +_080978D8: .4byte gUnknown_203B0C4 +_080978DC: .4byte sub_80979D0 +_080978E0: + strb r0, [r4] +_080978E2: + ldr r1, _080978F4 @ =gUnknown_3005024 + ldr r0, _080978F8 @ =sub_81248B0 + str r0, [r1] + ldr r1, _080978FC @ =gUnknown_203B0C4 + ldr r0, _08097900 @ =sub_8097984 +_080978EC: + str r0, [r1] + movs r0, 0x1 + b _08097970 + .align 2, 0 +_080978F4: .4byte gUnknown_3005024 +_080978F8: .4byte sub_81248B0 +_080978FC: .4byte gUnknown_203B0C4 +_08097900: .4byte sub_8097984 +_08097904: + ldr r4, _0809797C @ =gUnknown_2039A04 + adds r1, r4, 0x2 + adds r0, r4, 0 + bl sub_805C538 + movs r7, 0 + adds r2, r4, 0 + ldr r0, _08097980 @ =0x0000ffff + mov r8, r0 +_08097916: + mov r1, r8 + adds r0, r1, r7 + ldrh r1, [r2, 0x2] + adds r0, r1 + movs r6, 0 + lsls r0, 16 + asrs r5, r0, 16 +_08097924: + mov r1, r8 + adds r0, r1, r6 + ldrh r1, [r2] + adds r0, r1 + lsls r0, 16 + asrs r4, r0, 16 + adds r0, r4, 0 + adds r1, r5, 0 + str r2, [sp] + bl sub_8058D44 + lsls r0, 24 + lsrs r0, 24 + ldr r2, [sp] + movs r1, 0x4 + ldrsb r1, [r2, r1] + cmp r0, r1 + bne _0809795A + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8097874 + lsls r0, 24 + lsrs r0, 24 + ldr r2, [sp] + cmp r0, 0x1 + beq _080978E2 +_0809795A: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x2 + bls _08097924 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x2 + bls _08097916 + movs r0, 0 +_08097970: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0809797C: .4byte gUnknown_2039A04 +_08097980: .4byte 0x0000ffff + thumb_func_end sub_8097898 + + thumb_func_start sub_8097984 +sub_8097984: @ 8097984 + push {lr} + movs r0, 0x1 + bl sub_8083444 + bl sub_811FB0C + ldr r1, _0809799C @ =gUnknown_20386E0 + lsls r0, 24 + lsrs r0, 24 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0809799C: .4byte gUnknown_20386E0 + thumb_func_end sub_8097984 + + thumb_func_start sub_80979A0 +sub_80979A0: @ 80979A0 + push {lr} + bl sub_80C97FC + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080979C8 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _080979CC @ =sub_8097A20 + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + movs r0, 0x12 + bl sub_8054E90 + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080979C8: .4byte gUnknown_3005090 +_080979CC: .4byte sub_8097A20 + thumb_func_end sub_80979A0 + + thumb_func_start sub_80979D0 +sub_80979D0: @ 80979D0 + push {lr} + bl sub_811FB0C + ldr r1, _080979E8 @ =gUnknown_20386E0 + lsls r0, 24 + lsrs r0, 24 + str r0, [r1] + ldr r0, _080979EC @ =gUnknown_81BDF6B + bl sub_8069AE4 + pop {r0} + bx r0 + .align 2, 0 +_080979E8: .4byte gUnknown_20386E0 +_080979EC: .4byte gUnknown_81BDF6B + thumb_func_end sub_80979D0 + + thumb_func_start sub_80979F0 +sub_80979F0: @ 80979F0 + push {lr} + bl sub_80C97FC + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08097A18 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _08097A1C @ =sub_8097C6C + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + movs r0, 0x12 + bl sub_8054E90 + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08097A18: .4byte gUnknown_3005090 +_08097A1C: .4byte sub_8097C6C + thumb_func_end sub_80979F0 + + thumb_func_start sub_8097A20 +sub_8097A20: @ 8097A20 + push {lr} + movs r0, 0x1 + bl sub_80837FC + ldr r0, _08097A38 @ =gUnknown_2039874 + ldrb r0, [r0] + cmp r0, 0x1 + bne _08097A3C + bl sub_80CCDD0 + b _08097A42 + .align 2, 0 +_08097A38: .4byte gUnknown_2039874 +_08097A3C: + movs r0, 0x3A + bl sub_8083444 +_08097A42: + pop {r0} + bx r0 + thumb_func_end sub_8097A20 + + thumb_func_start sub_8097A48 +sub_8097A48: @ 8097A48 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r7, 0 + movs r0, 0x79 + bl sub_80722CC + ldr r4, _08097B38 @ =gUnknown_2039A04 + adds r1, r4, 0x2 + adds r0, r4, 0 + bl sub_805C538 + mov r8, r4 + ldr r0, _08097B3C @ =0x0000ffff + mov r9, r0 +_08097A68: + mov r1, r9 + adds r0, r1, r7 + mov r2, r8 + ldrh r2, [r2, 0x2] + adds r0, r2 + movs r6, 0 + lsls r0, 16 + asrs r5, r0, 16 +_08097A78: + mov r1, r9 + adds r0, r1, r6 + mov r2, r8 + ldrh r2, [r2] + adds r0, r2 + lsls r0, 16 + asrs r4, r0, 16 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8058D44 + lsls r0, 24 + lsrs r0, 24 + mov r2, r8 + movs r1, 0x4 + ldrsb r1, [r2, r1] + cmp r0, r1 + bne _08097ABC + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8097874 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08097ABC + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8097B50 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_805F378 +_08097ABC: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x2 + bls _08097A78 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x2 + bls _08097A68 + bl sub_805A684 + ldr r4, _08097B40 @ =gUnknown_2039870 + movs r0, 0x8 + bl sub_8002B9C + str r0, [r4] + movs r7, 0 + ldr r5, _08097B44 @ =gUnknown_202063C +_08097AE2: + ldr r0, _08097B48 @ =gUnknown_2037078 + ldrb r1, [r0, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r0, 0x2] + lsls r1, 23 + lsrs r1, 7 + movs r2, 0x80 + lsls r2, 12 + adds r1, r2 + asrs r1, 16 + ldrb r2, [r0] + adds r2, 0x14 + ldr r0, _08097B4C @ =gUnknown_83D414C + movs r3, 0 + bl sub_8006F8C + ldr r1, [r4] + adds r1, r7 + strb r0, [r1] + ldr r0, [r4] + adds r0, r7 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + lsls r1, r7, 5 + strh r1, [r0, 0x32] + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x7 + bls _08097AE2 + movs r0, 0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08097B38: .4byte gUnknown_2039A04 +_08097B3C: .4byte 0x0000ffff +_08097B40: .4byte gUnknown_2039870 +_08097B44: .4byte gUnknown_202063C +_08097B48: .4byte gUnknown_2037078 +_08097B4C: .4byte gUnknown_83D414C + thumb_func_end sub_8097A48 + + thumb_func_start sub_8097B50 +sub_8097B50: @ 8097B50 + push {r4-r7,lr} + lsls r0, 16 + lsls r1, 16 + movs r4, 0 + lsrs r6, r0, 16 + asrs r0, 16 + lsrs r7, r1, 16 + asrs r1, 16 + bl sub_8058E48 + lsls r0, 16 + lsrs r2, r0, 16 + ldr r1, _08097B84 @ =gUnknown_83D4100 + ldr r5, _08097B88 @ =0x0000ffff + mov r12, r1 +_08097B6E: + lsls r3, r4, 2 + adds r0, r3, r1 + ldrh r0, [r0] + cmp r0, r5 + beq _08097BA0 + cmp r0, r2 + beq _08097B8C + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + b _08097B6E + .align 2, 0 +_08097B84: .4byte gUnknown_83D4100 +_08097B88: .4byte 0x0000ffff +_08097B8C: + lsls r0, r6, 16 + asrs r0, 16 + lsls r1, r7, 16 + asrs r1, 16 + mov r2, r12 + adds r2, 0x2 + adds r2, r3, r2 + ldrh r2, [r2] + bl sub_8058FA4 +_08097BA0: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8097B50 + + thumb_func_start sub_8097BA8 +sub_8097BA8: @ 8097BA8 + movs r2, 0 + movs r1, 0x8 + strh r1, [r0, 0x2E] + strh r2, [r0, 0x30] + strh r2, [r0, 0x34] + ldr r1, _08097BB8 @ =sub_8097BBC + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_08097BB8: .4byte sub_8097BBC + thumb_func_end sub_8097BA8 + + thumb_func_start sub_8097BBC +sub_8097BBC: @ 8097BBC + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r2, 0x2E + ldrsh r1, [r4, r2] + bl sub_8044E30 + strh r0, [r4, 0x24] + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r2, 0x2E + ldrsh r1, [r4, r2] + bl sub_8044E4C + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x8 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x2E] + adds r1, 0x1 + ldrh r2, [r4, 0x34] + lsls r0, r2, 16 + asrs r0, 18 + adds r1, r0 + strh r1, [r4, 0x2E] + adds r2, 0x1 + strh r2, [r4, 0x34] + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0x1C + beq _08097C08 + adds r0, r1, 0x1 + strh r0, [r4, 0x30] + b _08097C0C +_08097C08: + ldr r0, _08097C14 @ =sub_8097C18 + str r0, [r4, 0x1C] +_08097C0C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097C14: .4byte sub_8097C18 + thumb_func_end sub_8097BBC + + thumb_func_start sub_8097C18 +sub_8097C18: @ 8097C18 + push {r4-r6,lr} + movs r4, 0x1 +_08097C1C: + ldr r6, _08097C64 @ =gUnknown_2039870 + ldr r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, _08097C68 @ =gUnknown_202063C + adds r0, r5 + bl sub_8007280 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _08097C1C + ldr r0, [r6] + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x3A + bl sub_80836D8 + ldr r0, [r6] + bl sub_8002BC4 + bl sub_80696C0 + bl sub_806994C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08097C64: .4byte gUnknown_2039870 +_08097C68: .4byte gUnknown_202063C + thumb_func_end sub_8097C18 + + thumb_func_start sub_8097C6C +sub_8097C6C: @ 8097C6C + push {lr} + movs r0, 0x79 + bl sub_80722CC + movs r0, 0x2 + bl sub_80837FC + bl sub_8069B34 + pop {r0} + bx r0 + thumb_func_end sub_8097C6C + + .align 2, 0 @ Don't pad with nop. |