.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global MATHi_CRC8InitTable MATHi_CRC8InitTable: /* 802EE638 002EA298 38 00 01 00 */ li r0, 0x100 /* 802EE63C 002EA29C 38 C0 00 00 */ li r6, 0 /* 802EE640 002EA2A0 7C 09 03 A6 */ mtctr r0 lbl_802EE644: /* 802EE644 002EA2A4 54 C0 06 31 */ rlwinm. r0, r6, 0, 0x18, 0x18 /* 802EE648 002EA2A8 54 C5 08 3C */ slwi r5, r6, 1 /* 802EE64C 002EA2AC 41 82 00 08 */ beq lbl_802EE654 /* 802EE650 002EA2B0 7C A5 22 78 */ xor r5, r5, r4 lbl_802EE654: /* 802EE654 002EA2B4 54 A0 06 31 */ rlwinm. r0, r5, 0, 0x18, 0x18 /* 802EE658 002EA2B8 54 A5 08 3C */ slwi r5, r5, 1 /* 802EE65C 002EA2BC 41 82 00 08 */ beq lbl_802EE664 /* 802EE660 002EA2C0 7C A5 22 78 */ xor r5, r5, r4 lbl_802EE664: /* 802EE664 002EA2C4 54 A0 06 31 */ rlwinm. r0, r5, 0, 0x18, 0x18 /* 802EE668 002EA2C8 54 A5 08 3C */ slwi r5, r5, 1 /* 802EE66C 002EA2CC 41 82 00 08 */ beq lbl_802EE674 /* 802EE670 002EA2D0 7C A5 22 78 */ xor r5, r5, r4 lbl_802EE674: /* 802EE674 002EA2D4 54 A0 06 31 */ rlwinm. r0, r5, 0, 0x18, 0x18 /* 802EE678 002EA2D8 54 A5 08 3C */ slwi r5, r5, 1 /* 802EE67C 002EA2DC 41 82 00 08 */ beq lbl_802EE684 /* 802EE680 002EA2E0 7C A5 22 78 */ xor r5, r5, r4 lbl_802EE684: /* 802EE684 002EA2E4 54 A0 06 31 */ rlwinm. r0, r5, 0, 0x18, 0x18 /* 802EE688 002EA2E8 54 A5 08 3C */ slwi r5, r5, 1 /* 802EE68C 002EA2EC 41 82 00 08 */ beq lbl_802EE694 /* 802EE690 002EA2F0 7C A5 22 78 */ xor r5, r5, r4 lbl_802EE694: /* 802EE694 002EA2F4 54 A0 06 31 */ rlwinm. r0, r5, 0, 0x18, 0x18 /* 802EE698 002EA2F8 54 A5 08 3C */ slwi r5, r5, 1 /* 802EE69C 002EA2FC 41 82 00 08 */ beq lbl_802EE6A4 /* 802EE6A0 002EA300 7C A5 22 78 */ xor r5, r5, r4 lbl_802EE6A4: /* 802EE6A4 002EA304 54 A0 06 31 */ rlwinm. r0, r5, 0, 0x18, 0x18 /* 802EE6A8 002EA308 54 A5 08 3C */ slwi r5, r5, 1 /* 802EE6AC 002EA30C 41 82 00 08 */ beq lbl_802EE6B4 /* 802EE6B0 002EA310 7C A5 22 78 */ xor r5, r5, r4 lbl_802EE6B4: /* 802EE6B4 002EA314 54 A0 06 31 */ rlwinm. r0, r5, 0, 0x18, 0x18 /* 802EE6B8 002EA318 54 A5 08 3C */ slwi r5, r5, 1 /* 802EE6BC 002EA31C 41 82 00 08 */ beq lbl_802EE6C4 /* 802EE6C0 002EA320 7C A5 22 78 */ xor r5, r5, r4 lbl_802EE6C4: /* 802EE6C4 002EA324 98 A3 00 00 */ stb r5, 0(r3) /* 802EE6C8 002EA328 38 C6 00 01 */ addi r6, r6, 1 /* 802EE6CC 002EA32C 38 63 00 01 */ addi r3, r3, 1 /* 802EE6D0 002EA330 42 00 FF 74 */ bdnz lbl_802EE644 /* 802EE6D4 002EA334 4E 80 00 20 */ blr .global MATHi_CRC32InitTableRev MATHi_CRC32InitTableRev: /* 802EE6D8 002EA338 38 00 01 00 */ li r0, 0x100 /* 802EE6DC 002EA33C 38 C0 00 00 */ li r6, 0 /* 802EE6E0 002EA340 7C 09 03 A6 */ mtctr r0 lbl_802EE6E4: /* 802EE6E4 002EA344 54 C0 07 FF */ clrlwi. r0, r6, 0x1f /* 802EE6E8 002EA348 54 C5 F8 7E */ srwi r5, r6, 1 /* 802EE6EC 002EA34C 41 82 00 08 */ beq lbl_802EE6F4 /* 802EE6F0 002EA350 7C A5 22 78 */ xor r5, r5, r4 lbl_802EE6F4: /* 802EE6F4 002EA354 54 A0 07 FF */ clrlwi. r0, r5, 0x1f /* 802EE6F8 002EA358 54 A5 F8 7E */ srwi r5, r5, 1 /* 802EE6FC 002EA35C 41 82 00 08 */ beq lbl_802EE704 /* 802EE700 002EA360 7C A5 22 78 */ xor r5, r5, r4 lbl_802EE704: /* 802EE704 002EA364 54 A0 07 FF */ clrlwi. r0, r5, 0x1f /* 802EE708 002EA368 54 A5 F8 7E */ srwi r5, r5, 1 /* 802EE70C 002EA36C 41 82 00 08 */ beq lbl_802EE714 /* 802EE710 002EA370 7C A5 22 78 */ xor r5, r5, r4 lbl_802EE714: /* 802EE714 002EA374 54 A0 07 FF */ clrlwi. r0, r5, 0x1f /* 802EE718 002EA378 54 A5 F8 7E */ srwi r5, r5, 1 /* 802EE71C 002EA37C 41 82 00 08 */ beq lbl_802EE724 /* 802EE720 002EA380 7C A5 22 78 */ xor r5, r5, r4 lbl_802EE724: /* 802EE724 002EA384 54 A0 07 FF */ clrlwi. r0, r5, 0x1f /* 802EE728 002EA388 54 A5 F8 7E */ srwi r5, r5, 1 /* 802EE72C 002EA38C 41 82 00 08 */ beq lbl_802EE734 /* 802EE730 002EA390 7C A5 22 78 */ xor r5, r5, r4 lbl_802EE734: /* 802EE734 002EA394 54 A0 07 FF */ clrlwi. r0, r5, 0x1f /* 802EE738 002EA398 54 A5 F8 7E */ srwi r5, r5, 1 /* 802EE73C 002EA39C 41 82 00 08 */ beq lbl_802EE744 /* 802EE740 002EA3A0 7C A5 22 78 */ xor r5, r5, r4 lbl_802EE744: /* 802EE744 002EA3A4 54 A0 07 FF */ clrlwi. r0, r5, 0x1f /* 802EE748 002EA3A8 54 A5 F8 7E */ srwi r5, r5, 1 /* 802EE74C 002EA3AC 41 82 00 08 */ beq lbl_802EE754 /* 802EE750 002EA3B0 7C A5 22 78 */ xor r5, r5, r4 lbl_802EE754: /* 802EE754 002EA3B4 54 A0 07 FF */ clrlwi. r0, r5, 0x1f /* 802EE758 002EA3B8 54 A5 F8 7E */ srwi r5, r5, 1 /* 802EE75C 002EA3BC 41 82 00 08 */ beq lbl_802EE764 /* 802EE760 002EA3C0 7C A5 22 78 */ xor r5, r5, r4 lbl_802EE764: /* 802EE764 002EA3C4 90 A3 00 00 */ stw r5, 0(r3) /* 802EE768 002EA3C8 38 63 00 04 */ addi r3, r3, 4 /* 802EE76C 002EA3CC 38 C6 00 01 */ addi r6, r6, 1 /* 802EE770 002EA3D0 42 00 FF 74 */ bdnz lbl_802EE6E4 /* 802EE774 002EA3D4 4E 80 00 20 */ blr .global MATH_CalcCRC8 MATH_CalcCRC8: /* 802EE778 002EA3D8 2C 05 00 00 */ cmpwi r5, 0 /* 802EE77C 002EA3DC 38 E0 00 00 */ li r7, 0 /* 802EE780 002EA3E0 39 60 00 00 */ li r11, 0 /* 802EE784 002EA3E4 41 82 00 BC */ beq lbl_802EE840 /* 802EE788 002EA3E8 28 05 00 08 */ cmplwi r5, 8 /* 802EE78C 002EA3EC 38 C5 FF F8 */ addi r6, r5, -8 /* 802EE790 002EA3F0 40 81 00 88 */ ble lbl_802EE818 /* 802EE794 002EA3F4 38 06 00 07 */ addi r0, r6, 7 /* 802EE798 002EA3F8 54 00 E8 FE */ srwi r0, r0, 3 /* 802EE79C 002EA3FC 7C 09 03 A6 */ mtctr r0 /* 802EE7A0 002EA400 28 06 00 00 */ cmplwi r6, 0 /* 802EE7A4 002EA404 40 81 00 74 */ ble lbl_802EE818 lbl_802EE7A8: /* 802EE7A8 002EA408 88 04 00 00 */ lbz r0, 0(r4) /* 802EE7AC 002EA40C 39 6B 00 08 */ addi r11, r11, 8 /* 802EE7B0 002EA410 88 C4 00 01 */ lbz r6, 1(r4) /* 802EE7B4 002EA414 7C E7 02 78 */ xor r7, r7, r0 /* 802EE7B8 002EA418 88 04 00 02 */ lbz r0, 2(r4) /* 802EE7BC 002EA41C 54 E7 06 3E */ clrlwi r7, r7, 0x18 /* 802EE7C0 002EA420 89 24 00 03 */ lbz r9, 3(r4) /* 802EE7C4 002EA424 7C E3 38 AE */ lbzx r7, r3, r7 /* 802EE7C8 002EA428 89 04 00 04 */ lbz r8, 4(r4) /* 802EE7CC 002EA42C 7C E6 32 78 */ xor r6, r7, r6 /* 802EE7D0 002EA430 88 E4 00 05 */ lbz r7, 5(r4) /* 802EE7D4 002EA434 7D 43 30 AE */ lbzx r10, r3, r6 /* 802EE7D8 002EA438 88 C4 00 06 */ lbz r6, 6(r4) /* 802EE7DC 002EA43C 7D 4A 02 78 */ xor r10, r10, r0 /* 802EE7E0 002EA440 88 04 00 07 */ lbz r0, 7(r4) /* 802EE7E4 002EA444 7D 43 50 AE */ lbzx r10, r3, r10 /* 802EE7E8 002EA448 38 84 00 08 */ addi r4, r4, 8 /* 802EE7EC 002EA44C 7D 49 4A 78 */ xor r9, r10, r9 /* 802EE7F0 002EA450 7D 23 48 AE */ lbzx r9, r3, r9 /* 802EE7F4 002EA454 7D 28 42 78 */ xor r8, r9, r8 /* 802EE7F8 002EA458 7D 03 40 AE */ lbzx r8, r3, r8 /* 802EE7FC 002EA45C 7D 07 3A 78 */ xor r7, r8, r7 /* 802EE800 002EA460 7C E3 38 AE */ lbzx r7, r3, r7 /* 802EE804 002EA464 7C E6 32 78 */ xor r6, r7, r6 /* 802EE808 002EA468 7C C3 30 AE */ lbzx r6, r3, r6 /* 802EE80C 002EA46C 7C C0 02 78 */ xor r0, r6, r0 /* 802EE810 002EA470 7C E3 00 AE */ lbzx r7, r3, r0 /* 802EE814 002EA474 42 00 FF 94 */ bdnz lbl_802EE7A8 lbl_802EE818: /* 802EE818 002EA478 7C 0B 28 50 */ subf r0, r11, r5 /* 802EE81C 002EA47C 7C 09 03 A6 */ mtctr r0 /* 802EE820 002EA480 7C 0B 28 40 */ cmplw r11, r5 /* 802EE824 002EA484 40 80 00 1C */ bge lbl_802EE840 lbl_802EE828: /* 802EE828 002EA488 88 04 00 00 */ lbz r0, 0(r4) /* 802EE82C 002EA48C 38 84 00 01 */ addi r4, r4, 1 /* 802EE830 002EA490 7C E0 02 78 */ xor r0, r7, r0 /* 802EE834 002EA494 54 00 06 3E */ clrlwi r0, r0, 0x18 /* 802EE838 002EA498 7C E3 00 AE */ lbzx r7, r3, r0 /* 802EE83C 002EA49C 42 00 FF EC */ bdnz lbl_802EE828 lbl_802EE840: /* 802EE840 002EA4A0 7C E3 3B 78 */ mr r3, r7 /* 802EE844 002EA4A4 4E 80 00 20 */ blr .global MATH_CalcCRC32 MATH_CalcCRC32: /* 802EE848 002EA4A8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802EE84C 002EA4AC 2C 05 00 00 */ cmpwi r5, 0 /* 802EE850 002EA4B0 39 20 FF FF */ li r9, -1 /* 802EE854 002EA4B4 38 C0 00 00 */ li r6, 0 /* 802EE858 002EA4B8 93 E1 00 0C */ stw r31, 0xc(r1) /* 802EE85C 002EA4BC 41 82 01 20 */ beq lbl_802EE97C /* 802EE860 002EA4C0 28 05 00 08 */ cmplwi r5, 8 /* 802EE864 002EA4C4 38 E5 FF F8 */ addi r7, r5, -8 /* 802EE868 002EA4C8 40 81 00 E4 */ ble lbl_802EE94C /* 802EE86C 002EA4CC 38 07 00 07 */ addi r0, r7, 7 /* 802EE870 002EA4D0 54 00 E8 FE */ srwi r0, r0, 3 /* 802EE874 002EA4D4 7C 09 03 A6 */ mtctr r0 /* 802EE878 002EA4D8 28 07 00 00 */ cmplwi r7, 0 /* 802EE87C 002EA4DC 40 81 00 D0 */ ble lbl_802EE94C lbl_802EE880: /* 802EE880 002EA4E0 88 E4 00 00 */ lbz r7, 0(r4) /* 802EE884 002EA4E4 55 28 C2 3E */ srwi r8, r9, 8 /* 802EE888 002EA4E8 88 04 00 01 */ lbz r0, 1(r4) /* 802EE88C 002EA4EC 38 C6 00 08 */ addi r6, r6, 8 /* 802EE890 002EA4F0 7D 27 3A 78 */ xor r7, r9, r7 /* 802EE894 002EA4F4 89 64 00 02 */ lbz r11, 2(r4) /* 802EE898 002EA4F8 54 E7 15 BA */ rlwinm r7, r7, 2, 0x16, 0x1d /* 802EE89C 002EA4FC 89 44 00 03 */ lbz r10, 3(r4) /* 802EE8A0 002EA500 7C E3 38 2E */ lwzx r7, r3, r7 /* 802EE8A4 002EA504 89 24 00 04 */ lbz r9, 4(r4) /* 802EE8A8 002EA508 7D 1F 3A 78 */ xor r31, r8, r7 /* 802EE8AC 002EA50C 89 04 00 05 */ lbz r8, 5(r4) /* 802EE8B0 002EA510 7F E0 02 78 */ xor r0, r31, r0 /* 802EE8B4 002EA514 88 E4 00 06 */ lbz r7, 6(r4) /* 802EE8B8 002EA518 54 0C 15 BA */ rlwinm r12, r0, 2, 0x16, 0x1d /* 802EE8BC 002EA51C 88 04 00 07 */ lbz r0, 7(r4) /* 802EE8C0 002EA520 7D 83 60 2E */ lwzx r12, r3, r12 /* 802EE8C4 002EA524 57 FF C2 3E */ srwi r31, r31, 8 /* 802EE8C8 002EA528 38 84 00 08 */ addi r4, r4, 8 /* 802EE8CC 002EA52C 7F EC 62 78 */ xor r12, r31, r12 /* 802EE8D0 002EA530 7D 8B 5A 78 */ xor r11, r12, r11 /* 802EE8D4 002EA534 55 6B 15 BA */ rlwinm r11, r11, 2, 0x16, 0x1d /* 802EE8D8 002EA538 55 8C C2 3E */ srwi r12, r12, 8 /* 802EE8DC 002EA53C 7D 63 58 2E */ lwzx r11, r3, r11 /* 802EE8E0 002EA540 7D 8B 5A 78 */ xor r11, r12, r11 /* 802EE8E4 002EA544 7D 6A 52 78 */ xor r10, r11, r10 /* 802EE8E8 002EA548 55 4A 15 BA */ rlwinm r10, r10, 2, 0x16, 0x1d /* 802EE8EC 002EA54C 55 6B C2 3E */ srwi r11, r11, 8 /* 802EE8F0 002EA550 7D 43 50 2E */ lwzx r10, r3, r10 /* 802EE8F4 002EA554 7D 6A 52 78 */ xor r10, r11, r10 /* 802EE8F8 002EA558 7D 49 4A 78 */ xor r9, r10, r9 /* 802EE8FC 002EA55C 55 29 15 BA */ rlwinm r9, r9, 2, 0x16, 0x1d /* 802EE900 002EA560 55 4A C2 3E */ srwi r10, r10, 8 /* 802EE904 002EA564 7D 23 48 2E */ lwzx r9, r3, r9 /* 802EE908 002EA568 7D 49 4A 78 */ xor r9, r10, r9 /* 802EE90C 002EA56C 7D 28 42 78 */ xor r8, r9, r8 /* 802EE910 002EA570 55 08 15 BA */ rlwinm r8, r8, 2, 0x16, 0x1d /* 802EE914 002EA574 55 29 C2 3E */ srwi r9, r9, 8 /* 802EE918 002EA578 7D 03 40 2E */ lwzx r8, r3, r8 /* 802EE91C 002EA57C 7D 28 42 78 */ xor r8, r9, r8 /* 802EE920 002EA580 7D 07 3A 78 */ xor r7, r8, r7 /* 802EE924 002EA584 54 E7 15 BA */ rlwinm r7, r7, 2, 0x16, 0x1d /* 802EE928 002EA588 55 08 C2 3E */ srwi r8, r8, 8 /* 802EE92C 002EA58C 7C E3 38 2E */ lwzx r7, r3, r7 /* 802EE930 002EA590 7D 07 3A 78 */ xor r7, r8, r7 /* 802EE934 002EA594 7C E0 02 78 */ xor r0, r7, r0 /* 802EE938 002EA598 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d /* 802EE93C 002EA59C 54 E7 C2 3E */ srwi r7, r7, 8 /* 802EE940 002EA5A0 7C 03 00 2E */ lwzx r0, r3, r0 /* 802EE944 002EA5A4 7C E9 02 78 */ xor r9, r7, r0 /* 802EE948 002EA5A8 42 00 FF 38 */ bdnz lbl_802EE880 lbl_802EE94C: /* 802EE94C 002EA5AC 7C 06 28 50 */ subf r0, r6, r5 /* 802EE950 002EA5B0 7C 09 03 A6 */ mtctr r0 /* 802EE954 002EA5B4 7C 06 28 40 */ cmplw r6, r5 /* 802EE958 002EA5B8 40 80 00 24 */ bge lbl_802EE97C lbl_802EE95C: /* 802EE95C 002EA5BC 88 04 00 00 */ lbz r0, 0(r4) /* 802EE960 002EA5C0 55 25 C2 3E */ srwi r5, r9, 8 /* 802EE964 002EA5C4 38 84 00 01 */ addi r4, r4, 1 /* 802EE968 002EA5C8 7D 20 02 78 */ xor r0, r9, r0 /* 802EE96C 002EA5CC 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d /* 802EE970 002EA5D0 7C 03 00 2E */ lwzx r0, r3, r0 /* 802EE974 002EA5D4 7C A9 02 78 */ xor r9, r5, r0 /* 802EE978 002EA5D8 42 00 FF E4 */ bdnz lbl_802EE95C lbl_802EE97C: /* 802EE97C 002EA5DC 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802EE980 002EA5E0 7D 23 48 F8 */ nor r3, r9, r9 /* 802EE984 002EA5E4 38 21 00 10 */ addi r1, r1, 0x10 /* 802EE988 002EA5E8 4E 80 00 20 */ blr