donut-decomp/asm/wpad/lint.s

626 lines
29 KiB
ArmAsm
Raw Normal View History

2022-10-16 16:05:58 +00:00
.include "macros.inc"
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
2022-10-16 16:31:36 +00:00
.global LINTCmp
LINTCmp:
2022-10-16 16:05:58 +00:00
/* 80064ED0 00060D10 80 A3 00 00 */ lwz r5, 0x0(r3)
/* 80064ED4 00060D14 38 C3 00 04 */ addi r6, r3, 0x4
/* 80064ED8 00060D18 80 04 00 00 */ lwz r0, 0x0(r4)
/* 80064EDC 00060D1C 38 64 00 04 */ addi r3, r4, 0x4
/* 80064EE0 00060D20 7C 05 00 40 */ cmplw r5, r0
/* 80064EE4 00060D24 40 81 00 0C */ ble lbl_80064EF0
/* 80064EE8 00060D28 38 60 00 01 */ li r3, 0x1
/* 80064EEC 00060D2C 4E 80 00 20 */ blr
.global lbl_80064EF0
lbl_80064EF0:
/* 80064EF0 00060D30 40 80 00 0C */ bge lbl_80064EFC
/* 80064EF4 00060D34 38 60 FF FF */ li r3, -0x1
/* 80064EF8 00060D38 4E 80 00 20 */ blr
.global lbl_80064EFC
lbl_80064EFC:
/* 80064EFC 00060D3C 34 A5 FF FF */ addic. r5, r5, -0x1
/* 80064F00 00060D40 54 A4 10 3A */ slwi r4, r5, 2
/* 80064F04 00060D44 38 05 00 01 */ addi r0, r5, 0x1
/* 80064F08 00060D48 7C 63 22 14 */ add r3, r3, r4
/* 80064F0C 00060D4C 7C 86 22 14 */ add r4, r6, r4
/* 80064F10 00060D50 7C 09 03 A6 */ mtctr r0
/* 80064F14 00060D54 41 80 00 34 */ blt lbl_80064F48
.global lbl_80064F18
lbl_80064F18:
/* 80064F18 00060D58 80 03 00 00 */ lwz r0, 0x0(r3)
/* 80064F1C 00060D5C 80 A4 00 00 */ lwz r5, 0x0(r4)
/* 80064F20 00060D60 7C 05 00 40 */ cmplw r5, r0
/* 80064F24 00060D64 40 81 00 0C */ ble lbl_80064F30
/* 80064F28 00060D68 38 60 00 01 */ li r3, 0x1
/* 80064F2C 00060D6C 4E 80 00 20 */ blr
.global lbl_80064F30
lbl_80064F30:
/* 80064F30 00060D70 40 80 00 0C */ bge lbl_80064F3C
/* 80064F34 00060D74 38 60 FF FF */ li r3, -0x1
/* 80064F38 00060D78 4E 80 00 20 */ blr
.global lbl_80064F3C
lbl_80064F3C:
/* 80064F3C 00060D7C 38 63 FF FC */ addi r3, r3, -0x4
/* 80064F40 00060D80 38 84 FF FC */ addi r4, r4, -0x4
/* 80064F44 00060D84 42 00 FF D4 */ bdnz lbl_80064F18
.global lbl_80064F48
lbl_80064F48:
/* 80064F48 00060D88 38 60 00 00 */ li r3, 0x0
/* 80064F4C 00060D8C 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global LINTLshift
LINTLshift:
2022-10-16 16:05:58 +00:00
/* 80064F50 00060D90 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80064F54 00060D94 7C 08 02 A6 */ mflr r0
/* 80064F58 00060D98 90 01 00 44 */ stw r0, 0x44(r1)
/* 80064F5C 00060D9C 39 61 00 40 */ addi r11, r1, 0x40
/* 80064F60 00060DA0 4B FA 23 BD */ bl lbl_8000731C
/* 80064F64 00060DA4 54 B5 D9 7F */ srwi. r21, r5, 5
/* 80064F68 00060DA8 83 04 00 00 */ lwz r24, 0x0(r4)
/* 80064F6C 00060DAC 7C 73 1B 78 */ mr r19, r3
/* 80064F70 00060DB0 3A E4 00 04 */ addi r23, r4, 0x4
/* 80064F74 00060DB4 3A C3 00 04 */ addi r22, r3, 0x4
/* 80064F78 00060DB8 54 B4 06 FE */ clrlwi r20, r5, 27
/* 80064F7C 00060DBC 38 C0 00 00 */ li r6, 0x0
/* 80064F80 00060DC0 41 82 00 80 */ beq lbl_80065000
/* 80064F84 00060DC4 28 15 00 08 */ cmplwi r21, 0x8
/* 80064F88 00060DC8 38 95 FF F8 */ addi r4, r21, -0x8
/* 80064F8C 00060DCC 40 81 00 4C */ ble lbl_80064FD8
/* 80064F90 00060DD0 38 04 00 07 */ addi r0, r4, 0x7
/* 80064F94 00060DD4 7E C5 B3 78 */ mr r5, r22
/* 80064F98 00060DD8 54 00 E8 FE */ srwi r0, r0, 3
/* 80064F9C 00060DDC 38 60 00 00 */ li r3, 0x0
/* 80064FA0 00060DE0 7C 09 03 A6 */ mtctr r0
/* 80064FA4 00060DE4 28 04 00 00 */ cmplwi r4, 0x0
/* 80064FA8 00060DE8 40 81 00 30 */ ble lbl_80064FD8
.global lbl_80064FAC
lbl_80064FAC:
/* 80064FAC 00060DEC 90 65 00 00 */ stw r3, 0x0(r5)
/* 80064FB0 00060DF0 38 C6 00 08 */ addi r6, r6, 0x8
/* 80064FB4 00060DF4 90 65 00 04 */ stw r3, 0x4(r5)
/* 80064FB8 00060DF8 90 65 00 08 */ stw r3, 0x8(r5)
/* 80064FBC 00060DFC 90 65 00 0C */ stw r3, 0xc(r5)
/* 80064FC0 00060E00 90 65 00 10 */ stw r3, 0x10(r5)
/* 80064FC4 00060E04 90 65 00 14 */ stw r3, 0x14(r5)
/* 80064FC8 00060E08 90 65 00 18 */ stw r3, 0x18(r5)
/* 80064FCC 00060E0C 90 65 00 1C */ stw r3, 0x1c(r5)
/* 80064FD0 00060E10 38 A5 00 20 */ addi r5, r5, 0x20
/* 80064FD4 00060E14 42 00 FF D8 */ bdnz lbl_80064FAC
.global lbl_80064FD8
lbl_80064FD8:
/* 80064FD8 00060E18 54 C3 10 3A */ slwi r3, r6, 2
/* 80064FDC 00060E1C 7C 06 A8 50 */ subf r0, r6, r21
/* 80064FE0 00060E20 7C 96 1A 14 */ add r4, r22, r3
/* 80064FE4 00060E24 38 60 00 00 */ li r3, 0x0
/* 80064FE8 00060E28 7C 09 03 A6 */ mtctr r0
/* 80064FEC 00060E2C 7C 06 A8 40 */ cmplw r6, r21
/* 80064FF0 00060E30 40 80 00 10 */ bge lbl_80065000
.global lbl_80064FF4
lbl_80064FF4:
/* 80064FF4 00060E34 90 64 00 00 */ stw r3, 0x0(r4)
/* 80064FF8 00060E38 38 84 00 04 */ addi r4, r4, 0x4
/* 80064FFC 00060E3C 42 00 FF F8 */ bdnz lbl_80064FF4
.global lbl_80065000
lbl_80065000:
/* 80065000 00060E40 2C 18 00 00 */ cmpwi r24, 0x0
/* 80065004 00060E44 3B 20 00 00 */ li r25, 0x0
/* 80065008 00060E48 3B 40 00 00 */ li r26, 0x0
/* 8006500C 00060E4C 3B 60 00 00 */ li r27, 0x0
/* 80065010 00060E50 41 82 01 D0 */ beq lbl_800651E0
/* 80065014 00060E54 28 18 00 08 */ cmplwi r24, 0x8
/* 80065018 00060E58 3B D8 FF F8 */ addi r30, r24, -0x8
/* 8006501C 00060E5C 40 81 01 6C */ ble lbl_80065188
/* 80065020 00060E60 56 A0 10 3A */ slwi r0, r21, 2
/* 80065024 00060E64 7E FD BB 78 */ mr r29, r23
/* 80065028 00060E68 7F 96 02 14 */ add r28, r22, r0
/* 8006502C 00060E6C 3B E0 FF FF */ li r31, -0x1
/* 80065030 00060E70 48 00 01 50 */ b lbl_80065180
.global lbl_80065034
lbl_80065034:
/* 80065034 00060E74 80 9D 00 00 */ lwz r4, 0x0(r29)
/* 80065038 00060E78 7E 85 A3 78 */ mr r5, r20
/* 8006503C 00060E7C 38 60 00 00 */ li r3, 0x0
2022-10-16 16:31:36 +00:00
/* 80065040 00060E80 4B FA 27 75 */ bl __shl2i
2022-10-16 16:05:58 +00:00
/* 80065044 00060E84 7C 19 20 14 */ addc r0, r25, r4
/* 80065048 00060E88 7E 85 A3 78 */ mr r5, r20
/* 8006504C 00060E8C 7C 00 F8 38 */ and r0, r0, r31
/* 80065050 00060E90 90 1C 00 00 */ stw r0, 0x0(r28)
/* 80065054 00060E94 7F 5A 19 14 */ adde r26, r26, r3
/* 80065058 00060E98 3B 20 00 00 */ li r25, 0x0
/* 8006505C 00060E9C 80 9D 00 04 */ lwz r4, 0x4(r29)
/* 80065060 00060EA0 7F 5A F8 38 */ and r26, r26, r31
/* 80065064 00060EA4 38 60 00 00 */ li r3, 0x0
2022-10-16 16:31:36 +00:00
/* 80065068 00060EA8 4B FA 27 4D */ bl __shl2i
2022-10-16 16:05:58 +00:00
/* 8006506C 00060EAC 7C 1A 20 14 */ addc r0, r26, r4
/* 80065070 00060EB0 7E 85 A3 78 */ mr r5, r20
/* 80065074 00060EB4 7C 00 F8 38 */ and r0, r0, r31
/* 80065078 00060EB8 90 1C 00 04 */ stw r0, 0x4(r28)
/* 8006507C 00060EBC 7F 39 19 14 */ adde r25, r25, r3
/* 80065080 00060EC0 3B 40 00 00 */ li r26, 0x0
/* 80065084 00060EC4 80 9D 00 08 */ lwz r4, 0x8(r29)
/* 80065088 00060EC8 7F 39 F8 38 */ and r25, r25, r31
/* 8006508C 00060ECC 38 60 00 00 */ li r3, 0x0
2022-10-16 16:31:36 +00:00
/* 80065090 00060ED0 4B FA 27 25 */ bl __shl2i
2022-10-16 16:05:58 +00:00
/* 80065094 00060ED4 7C 19 20 14 */ addc r0, r25, r4
/* 80065098 00060ED8 7E 85 A3 78 */ mr r5, r20
/* 8006509C 00060EDC 7C 00 F8 38 */ and r0, r0, r31
/* 800650A0 00060EE0 90 1C 00 08 */ stw r0, 0x8(r28)
/* 800650A4 00060EE4 7F 5A 19 14 */ adde r26, r26, r3
/* 800650A8 00060EE8 3B 20 00 00 */ li r25, 0x0
/* 800650AC 00060EEC 80 9D 00 0C */ lwz r4, 0xc(r29)
/* 800650B0 00060EF0 7F 5A F8 38 */ and r26, r26, r31
/* 800650B4 00060EF4 38 60 00 00 */ li r3, 0x0
2022-10-16 16:31:36 +00:00
/* 800650B8 00060EF8 4B FA 26 FD */ bl __shl2i
2022-10-16 16:05:58 +00:00
/* 800650BC 00060EFC 7C 1A 20 14 */ addc r0, r26, r4
/* 800650C0 00060F00 7E 85 A3 78 */ mr r5, r20
/* 800650C4 00060F04 7C 00 F8 38 */ and r0, r0, r31
/* 800650C8 00060F08 90 1C 00 0C */ stw r0, 0xc(r28)
/* 800650CC 00060F0C 7F 39 19 14 */ adde r25, r25, r3
/* 800650D0 00060F10 3B 40 00 00 */ li r26, 0x0
/* 800650D4 00060F14 80 9D 00 10 */ lwz r4, 0x10(r29)
/* 800650D8 00060F18 7F 39 F8 38 */ and r25, r25, r31
/* 800650DC 00060F1C 38 60 00 00 */ li r3, 0x0
2022-10-16 16:31:36 +00:00
/* 800650E0 00060F20 4B FA 26 D5 */ bl __shl2i
2022-10-16 16:05:58 +00:00
/* 800650E4 00060F24 7C 19 20 14 */ addc r0, r25, r4
/* 800650E8 00060F28 7E 85 A3 78 */ mr r5, r20
/* 800650EC 00060F2C 7C 00 F8 38 */ and r0, r0, r31
/* 800650F0 00060F30 90 1C 00 10 */ stw r0, 0x10(r28)
/* 800650F4 00060F34 7F 5A 19 14 */ adde r26, r26, r3
/* 800650F8 00060F38 3B 20 00 00 */ li r25, 0x0
/* 800650FC 00060F3C 80 9D 00 14 */ lwz r4, 0x14(r29)
/* 80065100 00060F40 7F 5A F8 38 */ and r26, r26, r31
/* 80065104 00060F44 38 60 00 00 */ li r3, 0x0
2022-10-16 16:31:36 +00:00
/* 80065108 00060F48 4B FA 26 AD */ bl __shl2i
2022-10-16 16:05:58 +00:00
/* 8006510C 00060F4C 7C 1A 20 14 */ addc r0, r26, r4
/* 80065110 00060F50 7E 85 A3 78 */ mr r5, r20
/* 80065114 00060F54 7C 00 F8 38 */ and r0, r0, r31
/* 80065118 00060F58 90 1C 00 14 */ stw r0, 0x14(r28)
/* 8006511C 00060F5C 7F 39 19 14 */ adde r25, r25, r3
/* 80065120 00060F60 3B 40 00 00 */ li r26, 0x0
/* 80065124 00060F64 80 9D 00 18 */ lwz r4, 0x18(r29)
/* 80065128 00060F68 7F 39 F8 38 */ and r25, r25, r31
/* 8006512C 00060F6C 38 60 00 00 */ li r3, 0x0
2022-10-16 16:31:36 +00:00
/* 80065130 00060F70 4B FA 26 85 */ bl __shl2i
2022-10-16 16:05:58 +00:00
/* 80065134 00060F74 7C 19 20 14 */ addc r0, r25, r4
/* 80065138 00060F78 7E 85 A3 78 */ mr r5, r20
/* 8006513C 00060F7C 7C 00 F8 38 */ and r0, r0, r31
/* 80065140 00060F80 90 1C 00 18 */ stw r0, 0x18(r28)
/* 80065144 00060F84 7F 5A 19 14 */ adde r26, r26, r3
/* 80065148 00060F88 3B 20 00 00 */ li r25, 0x0
/* 8006514C 00060F8C 80 9D 00 1C */ lwz r4, 0x1c(r29)
/* 80065150 00060F90 7F 5A F8 38 */ and r26, r26, r31
/* 80065154 00060F94 38 60 00 00 */ li r3, 0x0
2022-10-16 16:31:36 +00:00
/* 80065158 00060F98 4B FA 26 5D */ bl __shl2i
2022-10-16 16:05:58 +00:00
/* 8006515C 00060F9C 7C 1A 20 14 */ addc r0, r26, r4
/* 80065160 00060FA0 3B 40 00 00 */ li r26, 0x0
/* 80065164 00060FA4 7F 39 19 14 */ adde r25, r25, r3
/* 80065168 00060FA8 3B BD 00 20 */ addi r29, r29, 0x20
/* 8006516C 00060FAC 7C 00 F8 38 */ and r0, r0, r31
/* 80065170 00060FB0 90 1C 00 1C */ stw r0, 0x1c(r28)
/* 80065174 00060FB4 7F 39 F8 38 */ and r25, r25, r31
/* 80065178 00060FB8 3B 7B 00 08 */ addi r27, r27, 0x8
/* 8006517C 00060FBC 3B 9C 00 20 */ addi r28, r28, 0x20
.global lbl_80065180
lbl_80065180:
/* 80065180 00060FC0 7C 1B F0 40 */ cmplw r27, r30
/* 80065184 00060FC4 41 80 FE B0 */ blt lbl_80065034
.global lbl_80065188
lbl_80065188:
/* 80065188 00060FC8 57 64 10 3A */ slwi r4, r27, 2
/* 8006518C 00060FCC 56 A3 10 3A */ slwi r3, r21, 2
/* 80065190 00060FD0 7C 04 B2 14 */ add r0, r4, r22
/* 80065194 00060FD4 3B 80 FF FF */ li r28, -0x1
/* 80065198 00060FD8 7E F7 22 14 */ add r23, r23, r4
/* 8006519C 00060FDC 7F A3 02 14 */ add r29, r3, r0
/* 800651A0 00060FE0 48 00 00 38 */ b lbl_800651D8
.global lbl_800651A4
lbl_800651A4:
/* 800651A4 00060FE4 80 97 00 00 */ lwz r4, 0x0(r23)
/* 800651A8 00060FE8 7E 85 A3 78 */ mr r5, r20
/* 800651AC 00060FEC 38 60 00 00 */ li r3, 0x0
2022-10-16 16:31:36 +00:00
/* 800651B0 00060FF0 4B FA 26 05 */ bl __shl2i
2022-10-16 16:05:58 +00:00
/* 800651B4 00060FF4 7C 19 20 14 */ addc r0, r25, r4
/* 800651B8 00060FF8 3A F7 00 04 */ addi r23, r23, 0x4
/* 800651BC 00060FFC 7F 5A 19 14 */ adde r26, r26, r3
/* 800651C0 00061000 3B 7B 00 01 */ addi r27, r27, 0x1
/* 800651C4 00061004 7C 00 E0 38 */ and r0, r0, r28
/* 800651C8 00061008 90 1D 00 00 */ stw r0, 0x0(r29)
/* 800651CC 0006100C 7F 59 E0 38 */ and r25, r26, r28
/* 800651D0 00061010 3B 40 00 00 */ li r26, 0x0
/* 800651D4 00061014 3B BD 00 04 */ addi r29, r29, 0x4
.global lbl_800651D8
lbl_800651D8:
/* 800651D8 00061018 7C 1B C0 40 */ cmplw r27, r24
/* 800651DC 0006101C 41 80 FF C8 */ blt lbl_800651A4
.global lbl_800651E0
lbl_800651E0:
/* 800651E0 00061020 7F 20 D3 79 */ or. r0, r25, r26
/* 800651E4 00061024 7C 7B AA 14 */ add r3, r27, r21
/* 800651E8 00061028 54 60 10 3A */ slwi r0, r3, 2
/* 800651EC 0006102C 7C 78 AA 14 */ add r3, r24, r21
/* 800651F0 00061030 7F 36 01 2E */ stwx r25, r22, r0
/* 800651F4 00061034 90 73 00 00 */ stw r3, 0x0(r19)
/* 800651F8 00061038 41 82 00 0C */ beq lbl_80065204
/* 800651FC 0006103C 38 03 00 01 */ addi r0, r3, 0x1
/* 80065200 00061040 90 13 00 00 */ stw r0, 0x0(r19)
.global lbl_80065204
lbl_80065204:
/* 80065204 00061044 39 61 00 40 */ addi r11, r1, 0x40
/* 80065208 00061048 4B FA 21 61 */ bl lbl_80007368
/* 8006520C 0006104C 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80065210 00061050 7C 08 03 A6 */ mtlr r0
/* 80065214 00061054 38 21 00 40 */ addi r1, r1, 0x40
/* 80065218 00061058 4E 80 00 20 */ blr
/* 8006521C 0006105C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global LINTMsb
LINTMsb:
2022-10-16 16:05:58 +00:00
/* 80065220 00061060 80 E3 00 00 */ lwz r7, 0x0(r3)
/* 80065224 00061064 38 00 00 04 */ li r0, 0x4
/* 80065228 00061068 39 00 00 20 */ li r8, 0x20
/* 8006522C 0006106C 38 C0 00 00 */ li r6, 0x0
/* 80065230 00061070 54 E5 10 3A */ slwi r5, r7, 2
/* 80065234 00061074 3C 80 80 00 */ lis r4, 0x80000000@ha
/* 80065238 00061078 7C 63 28 2E */ lwzx r3, r3, r5
/* 8006523C 0006107C 7C 09 03 A6 */ mtctr r0
.global lbl_80065240
lbl_80065240:
/* 80065240 00061080 7C 80 34 30 */ srw r0, r4, r6
/* 80065244 00061084 7C 00 18 39 */ and. r0, r0, r3
/* 80065248 00061088 40 82 00 9C */ bne lbl_800652E4
/* 8006524C 0006108C 38 C6 00 01 */ addi r6, r6, 0x1
/* 80065250 00061090 39 08 FF FF */ addi r8, r8, -0x1
/* 80065254 00061094 7C 80 34 30 */ srw r0, r4, r6
/* 80065258 00061098 7C 00 18 39 */ and. r0, r0, r3
/* 8006525C 0006109C 40 82 00 88 */ bne lbl_800652E4
/* 80065260 000610A0 38 C6 00 01 */ addi r6, r6, 0x1
/* 80065264 000610A4 39 08 FF FF */ addi r8, r8, -0x1
/* 80065268 000610A8 7C 80 34 30 */ srw r0, r4, r6
/* 8006526C 000610AC 7C 00 18 39 */ and. r0, r0, r3
/* 80065270 000610B0 40 82 00 74 */ bne lbl_800652E4
/* 80065274 000610B4 38 C6 00 01 */ addi r6, r6, 0x1
/* 80065278 000610B8 39 08 FF FF */ addi r8, r8, -0x1
/* 8006527C 000610BC 7C 80 34 30 */ srw r0, r4, r6
/* 80065280 000610C0 7C 00 18 39 */ and. r0, r0, r3
/* 80065284 000610C4 40 82 00 60 */ bne lbl_800652E4
/* 80065288 000610C8 38 C6 00 01 */ addi r6, r6, 0x1
/* 8006528C 000610CC 39 08 FF FF */ addi r8, r8, -0x1
/* 80065290 000610D0 7C 80 34 30 */ srw r0, r4, r6
/* 80065294 000610D4 7C 00 18 39 */ and. r0, r0, r3
/* 80065298 000610D8 40 82 00 4C */ bne lbl_800652E4
/* 8006529C 000610DC 38 C6 00 01 */ addi r6, r6, 0x1
/* 800652A0 000610E0 39 08 FF FF */ addi r8, r8, -0x1
/* 800652A4 000610E4 7C 80 34 30 */ srw r0, r4, r6
/* 800652A8 000610E8 7C 00 18 39 */ and. r0, r0, r3
/* 800652AC 000610EC 40 82 00 38 */ bne lbl_800652E4
/* 800652B0 000610F0 38 C6 00 01 */ addi r6, r6, 0x1
/* 800652B4 000610F4 39 08 FF FF */ addi r8, r8, -0x1
/* 800652B8 000610F8 7C 80 34 30 */ srw r0, r4, r6
/* 800652BC 000610FC 7C 00 18 39 */ and. r0, r0, r3
/* 800652C0 00061100 40 82 00 24 */ bne lbl_800652E4
/* 800652C4 00061104 38 C6 00 01 */ addi r6, r6, 0x1
/* 800652C8 00061108 39 08 FF FF */ addi r8, r8, -0x1
/* 800652CC 0006110C 7C 80 34 30 */ srw r0, r4, r6
/* 800652D0 00061110 7C 00 18 39 */ and. r0, r0, r3
/* 800652D4 00061114 40 82 00 10 */ bne lbl_800652E4
/* 800652D8 00061118 38 C6 00 01 */ addi r6, r6, 0x1
/* 800652DC 0006111C 39 08 FF FF */ addi r8, r8, -0x1
/* 800652E0 00061120 42 00 FF 60 */ bdnz lbl_80065240
.global lbl_800652E4
lbl_800652E4:
/* 800652E4 00061124 38 07 FF FF */ addi r0, r7, -0x1
/* 800652E8 00061128 54 00 28 34 */ slwi r0, r0, 5
/* 800652EC 0006112C 7C 68 02 14 */ add r3, r8, r0
/* 800652F0 00061130 4E 80 00 20 */ blr
/* 800652F4 00061134 00 00 00 00 */ .4byte 0x00000000
/* 800652F8 00061138 00 00 00 00 */ .4byte 0x00000000
/* 800652FC 0006113C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global LINTSub
LINTSub:
2022-10-16 16:05:58 +00:00
/* 80065300 00061140 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80065304 00061144 7C 08 02 A6 */ mflr r0
/* 80065308 00061148 90 01 00 24 */ stw r0, 0x24(r1)
/* 8006530C 0006114C 39 61 00 20 */ addi r11, r1, 0x20
/* 80065310 00061150 4B FA 20 2D */ bl lbl_8000733C
/* 80065314 00061154 83 E4 00 00 */ lwz r31, 0x80000000@l(r4)
/* 80065318 00061158 3B A3 00 04 */ addi r29, r3, 0x4
/* 8006531C 0006115C 7F AA EB 78 */ mr r10, r29
/* 80065320 00061160 39 24 00 04 */ addi r9, r4, 0x4
/* 80065324 00061164 39 65 00 04 */ addi r11, r5, 0x4
/* 80065328 00061168 83 C5 00 00 */ lwz r30, 0x0(r5)
/* 8006532C 0006116C 3B 60 00 00 */ li r27, 0x0
/* 80065330 00061170 3B 80 00 00 */ li r28, 0x0
/* 80065334 00061174 39 80 00 00 */ li r12, 0x0
/* 80065338 00061178 39 00 00 00 */ li r8, 0x0
/* 8006533C 0006117C 38 E0 FF FF */ li r7, -0x1
/* 80065340 00061180 38 00 00 01 */ li r0, 0x1
/* 80065344 00061184 7F E9 03 A6 */ mtctr r31
/* 80065348 00061188 28 1F 00 00 */ cmplwi r31, 0x0
/* 8006534C 0006118C 40 81 00 74 */ ble lbl_800653C0
.global lbl_80065350
lbl_80065350:
/* 80065350 00061190 80 89 00 00 */ lwz r4, 0x0(r9)
/* 80065354 00061194 7C DB 38 10 */ subfc r6, r27, r7
/* 80065358 00061198 7C BC 41 10 */ subfe r5, r28, r8
/* 8006535C 0006119C 7C 0C F0 40 */ cmplw r12, r30
/* 80065360 000611A0 7C 9B 20 50 */ subf r4, r27, r4
/* 80065364 000611A4 90 8A 00 00 */ stw r4, 0x0(r10)
/* 80065368 000611A8 7C 84 30 10 */ subfc r4, r4, r6
/* 8006536C 000611AC 7F 68 29 10 */ subfe r27, r8, r5
/* 80065370 000611B0 7F 66 31 10 */ subfe r27, r6, r6
/* 80065374 000611B4 7F 7B 00 D0 */ neg r27, r27
/* 80065378 000611B8 7F 7C FE 70 */ srawi r28, r27, 31
/* 8006537C 000611BC 40 80 00 14 */ bge lbl_80065390
/* 80065380 000611C0 80 AB 00 00 */ lwz r5, 0x0(r11)
/* 80065384 000611C4 80 8A 00 00 */ lwz r4, 0x0(r10)
/* 80065388 000611C8 7C 85 20 50 */ subf r4, r5, r4
/* 8006538C 000611CC 90 8A 00 00 */ stw r4, 0x0(r10)
.global lbl_80065390
lbl_80065390:
/* 80065390 000611D0 80 8B 00 00 */ lwz r4, 0x0(r11)
/* 80065394 000611D4 80 AA 00 00 */ lwz r5, 0x0(r10)
/* 80065398 000611D8 20 84 FF FF */ subfic r4, r4, -0x1
/* 8006539C 000611DC 7C 05 20 40 */ cmplw r5, r4
/* 800653A0 000611E0 40 81 00 0C */ ble lbl_800653AC
/* 800653A4 000611E4 7F 7B 00 14 */ addc r27, r27, r0
/* 800653A8 000611E8 7F 9C 41 14 */ adde r28, r28, r8
.global lbl_800653AC
lbl_800653AC:
/* 800653AC 000611EC 39 29 00 04 */ addi r9, r9, 0x4
/* 800653B0 000611F0 39 4A 00 04 */ addi r10, r10, 0x4
/* 800653B4 000611F4 39 6B 00 04 */ addi r11, r11, 0x4
/* 800653B8 000611F8 39 8C 00 01 */ addi r12, r12, 0x1
/* 800653BC 000611FC 42 00 FF 94 */ bdnz lbl_80065350
.global lbl_800653C0
lbl_800653C0:
/* 800653C0 00061200 57 E0 10 3A */ slwi r0, r31, 2
/* 800653C4 00061204 7C 9D 02 14 */ add r4, r29, r0
/* 800653C8 00061208 48 00 00 10 */ b lbl_800653D8
/* 800653CC 0006120C 60 00 00 00 */ nop
.global lbl_800653D0
lbl_800653D0:
/* 800653D0 00061210 38 84 FF FC */ addi r4, r4, -0x4
/* 800653D4 00061214 3B FF FF FF */ addi r31, r31, -0x1
.global lbl_800653D8
lbl_800653D8:
/* 800653D8 00061218 2C 1F 00 00 */ cmpwi r31, 0x0
/* 800653DC 0006121C 41 82 00 10 */ beq lbl_800653EC
/* 800653E0 00061220 80 04 00 00 */ lwz r0, 0x0(r4)
/* 800653E4 00061224 2C 00 00 00 */ cmpwi r0, 0x0
/* 800653E8 00061228 41 82 FF E8 */ beq lbl_800653D0
.global lbl_800653EC
lbl_800653EC:
/* 800653EC 0006122C 38 1F 00 01 */ addi r0, r31, 0x1
/* 800653F0 00061230 90 03 00 00 */ stw r0, 0x0(r3)
/* 800653F4 00061234 39 61 00 20 */ addi r11, r1, 0x20
/* 800653F8 00061238 4B FA 1F 91 */ bl lbl_80007388
/* 800653FC 0006123C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80065400 00061240 7C 08 03 A6 */ mtlr r0
/* 80065404 00061244 38 21 00 20 */ addi r1, r1, 0x20
/* 80065408 00061248 4E 80 00 20 */ blr
/* 8006540C 0006124C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global LINTMul
LINTMul:
2022-10-16 16:05:58 +00:00
/* 80065410 00061250 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80065414 00061254 7C 08 02 A6 */ mflr r0
/* 80065418 00061258 90 01 00 34 */ stw r0, 0x34(r1)
/* 8006541C 0006125C 39 61 00 30 */ addi r11, r1, 0x30
/* 80065420 00061260 4B FA 1F 09 */ bl lbl_80007328
/* 80065424 00061264 83 A4 00 00 */ lwz r29, 0x0(r4)
/* 80065428 00061268 3B 23 00 04 */ addi r25, r3, 0x4
/* 8006542C 0006126C 83 85 00 00 */ lwz r28, 0x0(r5)
/* 80065430 00061270 38 00 00 01 */ li r0, 0x1
/* 80065434 00061274 7C 78 1B 78 */ mr r24, r3
/* 80065438 00061278 7C 97 23 78 */ mr r23, r4
/* 8006543C 0006127C 90 03 00 00 */ stw r0, 0x0(r3)
/* 80065440 00061280 3B 64 00 04 */ addi r27, r4, 0x4
/* 80065444 00061284 7C B6 2B 78 */ mr r22, r5
/* 80065448 00061288 3B 45 00 04 */ addi r26, r5, 0x4
/* 8006544C 0006128C 7F 23 CB 78 */ mr r3, r25
/* 80065450 00061290 3B C0 00 00 */ li r30, 0x0
/* 80065454 00061294 3B E0 00 00 */ li r31, 0x0
/* 80065458 00061298 38 80 00 00 */ li r4, 0x0
/* 8006545C 0006129C 38 A0 00 80 */ li r5, 0x80
2022-10-16 16:31:36 +00:00
/* 80065460 000612A0 4B F9 EE F1 */ bl memset
2022-10-16 16:05:58 +00:00
/* 80065464 000612A4 80 17 00 00 */ lwz r0, 0x0(r23)
/* 80065468 000612A8 28 00 00 01 */ cmplwi r0, 0x1
/* 8006546C 000612AC 40 82 00 10 */ bne lbl_8006547C
/* 80065470 000612B0 80 17 00 04 */ lwz r0, 0x4(r23)
/* 80065474 000612B4 2C 00 00 00 */ cmpwi r0, 0x0
/* 80065478 000612B8 41 82 02 AC */ beq lbl_80065724
.global lbl_8006547C
lbl_8006547C:
/* 8006547C 000612BC 80 16 00 00 */ lwz r0, 0x0(r22)
/* 80065480 000612C0 28 00 00 01 */ cmplwi r0, 0x1
/* 80065484 000612C4 40 82 00 14 */ bne lbl_80065498
/* 80065488 000612C8 80 16 00 04 */ lwz r0, 0x4(r22)
/* 8006548C 000612CC 2C 00 00 00 */ cmpwi r0, 0x0
/* 80065490 000612D0 40 82 00 08 */ bne lbl_80065498
/* 80065494 000612D4 48 00 02 90 */ b lbl_80065724
.global lbl_80065498
lbl_80065498:
/* 80065498 000612D8 38 C0 00 00 */ li r6, 0x0
/* 8006549C 000612DC 39 20 00 00 */ li r9, 0x0
/* 800654A0 000612E0 7C C3 33 78 */ mr r3, r6
/* 800654A4 000612E4 39 40 FF FF */ li r10, -0x1
/* 800654A8 000612E8 7C C0 33 78 */ mr r0, r6
/* 800654AC 000612EC 48 00 02 50 */ b lbl_800656FC
.global lbl_800654B0
lbl_800654B0:
/* 800654B0 000612F0 2C 1D 00 00 */ cmpwi r29, 0x0
/* 800654B4 000612F4 3B C0 00 00 */ li r30, 0x0
/* 800654B8 000612F8 3B E0 00 00 */ li r31, 0x0
/* 800654BC 000612FC 38 E0 00 00 */ li r7, 0x0
/* 800654C0 00061300 41 82 02 24 */ beq lbl_800656E4
/* 800654C4 00061304 28 1D 00 08 */ cmplwi r29, 0x8
/* 800654C8 00061308 39 7D FF F8 */ addi r11, r29, -0x8
/* 800654CC 0006130C 40 81 01 B4 */ ble lbl_80065680
/* 800654D0 00061310 39 0B 00 07 */ addi r8, r11, 0x7
/* 800654D4 00061314 7F 64 DB 78 */ mr r4, r27
/* 800654D8 00061318 55 08 E8 FE */ srwi r8, r8, 3
/* 800654DC 0006131C 7C B9 4A 14 */ add r5, r25, r9
/* 800654E0 00061320 7D 09 03 A6 */ mtctr r8
/* 800654E4 00061324 28 0B 00 00 */ cmplwi r11, 0x0
/* 800654E8 00061328 40 81 01 98 */ ble lbl_80065680
.global lbl_800654EC
lbl_800654EC:
/* 800654EC 0006132C 81 84 00 00 */ lwz r12, 0x0(r4)
/* 800654F0 00061330 38 E7 00 08 */ addi r7, r7, 0x8
/* 800654F4 00061334 81 7A 00 00 */ lwz r11, 0x0(r26)
/* 800654F8 00061338 82 E5 00 00 */ lwz r23, 0x0(r5)
/* 800654FC 0006133C 7D 0C 59 D6 */ mullw r8, r12, r11
/* 80065500 00061340 7E FE B8 14 */ addc r23, r30, r23
/* 80065504 00061344 7F DF 01 94 */ addze r30, r31
/* 80065508 00061348 7D 17 40 14 */ addc r8, r23, r8
/* 8006550C 0006134C 7E EC 58 16 */ mulhwu r23, r12, r11
/* 80065510 00061350 7D 08 50 38 */ and r8, r8, r10
/* 80065514 00061354 91 05 00 00 */ stw r8, 0x0(r5)
/* 80065518 00061358 81 84 00 04 */ lwz r12, 0x4(r4)
/* 8006551C 0006135C 81 7A 00 00 */ lwz r11, 0x0(r26)
/* 80065520 00061360 81 05 00 04 */ lwz r8, 0x4(r5)
/* 80065524 00061364 7F FE B9 14 */ adde r31, r30, r23
/* 80065528 00061368 7F F7 50 38 */ and r23, r31, r10
/* 8006552C 0006136C 7E F7 40 14 */ addc r23, r23, r8
/* 80065530 00061370 3B E0 00 00 */ li r31, 0x0
/* 80065534 00061374 7D 0C 59 D6 */ mullw r8, r12, r11
/* 80065538 00061378 7F C3 01 94 */ addze r30, r3
/* 8006553C 0006137C 7D 17 40 14 */ addc r8, r23, r8
/* 80065540 00061380 7E EC 58 16 */ mulhwu r23, r12, r11
/* 80065544 00061384 7D 08 50 38 */ and r8, r8, r10
/* 80065548 00061388 91 05 00 04 */ stw r8, 0x4(r5)
/* 8006554C 0006138C 81 84 00 08 */ lwz r12, 0x8(r4)
/* 80065550 00061390 81 7A 00 00 */ lwz r11, 0x0(r26)
/* 80065554 00061394 81 05 00 08 */ lwz r8, 0x8(r5)
/* 80065558 00061398 7E DE B9 14 */ adde r22, r30, r23
/* 8006555C 0006139C 7E D7 50 38 */ and r23, r22, r10
/* 80065560 000613A0 7E F7 40 14 */ addc r23, r23, r8
/* 80065564 000613A4 7D 0C 59 D6 */ mullw r8, r12, r11
/* 80065568 000613A8 7F C3 01 94 */ addze r30, r3
/* 8006556C 000613AC 7D 17 40 14 */ addc r8, r23, r8
/* 80065570 000613B0 7E EC 58 16 */ mulhwu r23, r12, r11
/* 80065574 000613B4 7D 08 50 38 */ and r8, r8, r10
/* 80065578 000613B8 91 05 00 08 */ stw r8, 0x8(r5)
/* 8006557C 000613BC 81 84 00 0C */ lwz r12, 0xc(r4)
/* 80065580 000613C0 81 7A 00 00 */ lwz r11, 0x0(r26)
/* 80065584 000613C4 81 05 00 0C */ lwz r8, 0xc(r5)
/* 80065588 000613C8 7E DE B9 14 */ adde r22, r30, r23
/* 8006558C 000613CC 7E D7 50 38 */ and r23, r22, r10
/* 80065590 000613D0 7E F7 40 14 */ addc r23, r23, r8
/* 80065594 000613D4 7D 0C 59 D6 */ mullw r8, r12, r11
/* 80065598 000613D8 7F C3 01 94 */ addze r30, r3
/* 8006559C 000613DC 7D 17 40 14 */ addc r8, r23, r8
/* 800655A0 000613E0 7E EC 58 16 */ mulhwu r23, r12, r11
/* 800655A4 000613E4 7D 08 50 38 */ and r8, r8, r10
/* 800655A8 000613E8 91 05 00 0C */ stw r8, 0xc(r5)
/* 800655AC 000613EC 81 84 00 10 */ lwz r12, 0x10(r4)
/* 800655B0 000613F0 81 7A 00 00 */ lwz r11, 0x0(r26)
/* 800655B4 000613F4 81 05 00 10 */ lwz r8, 0x10(r5)
/* 800655B8 000613F8 7E DE B9 14 */ adde r22, r30, r23
/* 800655BC 000613FC 7E D7 50 38 */ and r23, r22, r10
/* 800655C0 00061400 7E F7 40 14 */ addc r23, r23, r8
/* 800655C4 00061404 7D 0C 59 D6 */ mullw r8, r12, r11
/* 800655C8 00061408 7F C3 01 94 */ addze r30, r3
/* 800655CC 0006140C 7D 17 40 14 */ addc r8, r23, r8
/* 800655D0 00061410 7E EC 58 16 */ mulhwu r23, r12, r11
/* 800655D4 00061414 7D 08 50 38 */ and r8, r8, r10
/* 800655D8 00061418 91 05 00 10 */ stw r8, 0x10(r5)
/* 800655DC 0006141C 81 84 00 14 */ lwz r12, 0x14(r4)
/* 800655E0 00061420 81 7A 00 00 */ lwz r11, 0x0(r26)
/* 800655E4 00061424 81 05 00 14 */ lwz r8, 0x14(r5)
/* 800655E8 00061428 7E DE B9 14 */ adde r22, r30, r23
/* 800655EC 0006142C 7E D7 50 38 */ and r23, r22, r10
/* 800655F0 00061430 7E F7 40 14 */ addc r23, r23, r8
/* 800655F4 00061434 7D 0C 59 D6 */ mullw r8, r12, r11
/* 800655F8 00061438 7F C0 01 94 */ addze r30, r0
/* 800655FC 0006143C 7D 17 40 14 */ addc r8, r23, r8
/* 80065600 00061440 7E EC 58 16 */ mulhwu r23, r12, r11
/* 80065604 00061444 7D 08 50 38 */ and r8, r8, r10
/* 80065608 00061448 91 05 00 14 */ stw r8, 0x14(r5)
/* 8006560C 0006144C 81 84 00 18 */ lwz r12, 0x18(r4)
/* 80065610 00061450 81 7A 00 00 */ lwz r11, 0x0(r26)
/* 80065614 00061454 81 05 00 18 */ lwz r8, 0x18(r5)
/* 80065618 00061458 7E DE B9 14 */ adde r22, r30, r23
/* 8006561C 0006145C 7E D7 50 38 */ and r23, r22, r10
/* 80065620 00061460 7E F7 40 14 */ addc r23, r23, r8
/* 80065624 00061464 7D 0C 59 D6 */ mullw r8, r12, r11
/* 80065628 00061468 7F C0 01 94 */ addze r30, r0
/* 8006562C 0006146C 7D 17 40 14 */ addc r8, r23, r8
/* 80065630 00061470 7E EC 58 16 */ mulhwu r23, r12, r11
/* 80065634 00061474 7D 08 50 38 */ and r8, r8, r10
/* 80065638 00061478 91 05 00 18 */ stw r8, 0x18(r5)
/* 8006563C 0006147C 81 84 00 1C */ lwz r12, 0x1c(r4)
/* 80065640 00061480 38 84 00 20 */ addi r4, r4, 0x20
/* 80065644 00061484 81 7A 00 00 */ lwz r11, 0x0(r26)
/* 80065648 00061488 7E DE B9 14 */ adde r22, r30, r23
/* 8006564C 0006148C 81 05 00 1C */ lwz r8, 0x1c(r5)
/* 80065650 00061490 7E D7 50 38 */ and r23, r22, r10
/* 80065654 00061494 7E F7 40 14 */ addc r23, r23, r8
/* 80065658 00061498 7D 0C 59 D6 */ mullw r8, r12, r11
/* 8006565C 0006149C 7F C0 01 94 */ addze r30, r0
/* 80065660 000614A0 7D 17 40 14 */ addc r8, r23, r8
/* 80065664 000614A4 7D 08 50 38 */ and r8, r8, r10
/* 80065668 000614A8 91 05 00 1C */ stw r8, 0x1c(r5)
/* 8006566C 000614AC 7D 6C 58 16 */ mulhwu r11, r12, r11
/* 80065670 000614B0 38 A5 00 20 */ addi r5, r5, 0x20
/* 80065674 000614B4 7D 1E 59 14 */ adde r8, r30, r11
/* 80065678 000614B8 7D 1E 50 38 */ and r30, r8, r10
/* 8006567C 000614BC 42 00 FE 70 */ bdnz lbl_800654EC
.global lbl_80065680
lbl_80065680:
/* 80065680 000614C0 54 E8 10 3A */ slwi r8, r7, 2
/* 80065684 000614C4 7C 87 E8 50 */ subf r4, r7, r29
/* 80065688 000614C8 7C A8 CA 14 */ add r5, r8, r25
/* 8006568C 000614CC 7E FB 42 14 */ add r23, r27, r8
/* 80065690 000614D0 7E C9 2A 14 */ add r22, r9, r5
/* 80065694 000614D4 7C 89 03 A6 */ mtctr r4
/* 80065698 000614D8 7C 07 E8 40 */ cmplw r7, r29
/* 8006569C 000614DC 40 80 00 48 */ bge lbl_800656E4
.global lbl_800656A0
lbl_800656A0:
/* 800656A0 000614E0 81 17 00 00 */ lwz r8, 0x0(r23)
/* 800656A4 000614E4 3A F7 00 04 */ addi r23, r23, 0x4
/* 800656A8 000614E8 80 BA 00 00 */ lwz r5, 0x0(r26)
/* 800656AC 000614EC 38 E7 00 01 */ addi r7, r7, 0x1
/* 800656B0 000614F0 81 76 00 00 */ lwz r11, 0x0(r22)
/* 800656B4 000614F4 7C 88 29 D6 */ mullw r4, r8, r5
/* 800656B8 000614F8 7D 9E 58 14 */ addc r12, r30, r11
/* 800656BC 000614FC 7D 7F 01 94 */ addze r11, r31
/* 800656C0 00061500 7C 8C 20 14 */ addc r4, r12, r4
/* 800656C4 00061504 7C A8 28 16 */ mulhwu r5, r8, r5
/* 800656C8 00061508 7C 84 50 38 */ and r4, r4, r10
/* 800656CC 0006150C 90 96 00 00 */ stw r4, 0x0(r22)
/* 800656D0 00061510 3A D6 00 04 */ addi r22, r22, 0x4
/* 800656D4 00061514 7F EB 29 14 */ adde r31, r11, r5
/* 800656D8 00061518 7F FE 50 38 */ and r30, r31, r10
/* 800656DC 0006151C 3B E0 00 00 */ li r31, 0x0
/* 800656E0 00061520 42 00 FF C0 */ bdnz lbl_800656A0
.global lbl_800656E4
lbl_800656E4:
/* 800656E4 00061524 7C 86 3A 14 */ add r4, r6, r7
/* 800656E8 00061528 39 29 00 04 */ addi r9, r9, 0x4
/* 800656EC 0006152C 54 84 10 3A */ slwi r4, r4, 2
/* 800656F0 00061530 3B 5A 00 04 */ addi r26, r26, 0x4
/* 800656F4 00061534 7F D9 21 2E */ stwx r30, r25, r4
/* 800656F8 00061538 38 C6 00 01 */ addi r6, r6, 0x1
.global lbl_800656FC
lbl_800656FC:
/* 800656FC 0006153C 7C 06 E0 40 */ cmplw r6, r28
/* 80065700 00061540 41 80 FD B0 */ blt lbl_800654B0
/* 80065704 00061544 7F C0 FB 79 */ or. r0, r30, r31
/* 80065708 00061548 40 82 00 14 */ bne lbl_8006571C
/* 8006570C 0006154C 7C 7D E2 14 */ add r3, r29, r28
/* 80065710 00061550 38 03 FF FF */ addi r0, r3, -0x1
/* 80065714 00061554 90 18 00 00 */ stw r0, 0x0(r24)
/* 80065718 00061558 48 00 00 0C */ b lbl_80065724
.global lbl_8006571C
lbl_8006571C:
/* 8006571C 0006155C 7C 1D E2 14 */ add r0, r29, r28
/* 80065720 00061560 90 18 00 00 */ stw r0, 0x0(r24)
.global lbl_80065724
lbl_80065724:
/* 80065724 00061564 39 61 00 30 */ addi r11, r1, 0x30
/* 80065728 00061568 4B FA 1C 4D */ bl lbl_80007374
/* 8006572C 0006156C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80065730 00061570 7C 08 03 A6 */ mtlr r0
/* 80065734 00061574 38 21 00 30 */ addi r1, r1, 0x30
/* 80065738 00061578 4E 80 00 20 */ blr
/* 8006573C 0006157C 00 00 00 00 */ .4byte 0x00000000