donut-decomp/asm/wpad/WPADEncrypt_80063f00.s

966 lines
51 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 WPADiCreateKey
WPADiCreateKey:
2022-10-16 16:05:58 +00:00
/* 80063F00 0005FD40 94 21 FF 70 */ stwu r1, -0x90(r1)
/* 80063F04 0005FD44 7C 08 02 A6 */ mflr r0
/* 80063F08 0005FD48 90 01 00 94 */ stw r0, 0x94(r1)
/* 80063F0C 0005FD4C 39 61 00 90 */ addi r11, r1, 0x90
2022-10-16 16:31:36 +00:00
/* 80063F10 0005FD50 4B FA 33 F9 */ bl __save_gpr
/* 80063F14 0005FD54 3C 80 80 4C */ lis r4, __rvl_p_wpadcb@ha
2022-10-16 16:05:58 +00:00
/* 80063F18 0005FD58 54 60 10 3A */ slwi r0, r3, 2
2022-10-16 16:31:36 +00:00
/* 80063F1C 0005FD5C 38 84 1A 50 */ addi r4, r4, __rvl_p_wpadcb@l
2022-10-16 16:05:58 +00:00
/* 80063F20 0005FD60 7F E4 00 2E */ lwzx r31, r4, r0
2022-10-16 16:31:36 +00:00
/* 80063F24 0005FD64 4B FC 1C 3D */ bl OSGetTick
2022-10-16 16:05:58 +00:00
/* 80063F28 0005FD68 54 60 C6 3E */ extrwi r0, r3, 8, 16
2022-10-16 16:31:36 +00:00
/* 80063F2C 0005FD6C 98 0D EA 03 */ stb r0, SEED@sda21(r13)
/* 80063F30 0005FD70 4B FC 1C 31 */ bl OSGetTick
2022-10-16 16:05:58 +00:00
/* 80063F34 0005FD74 54 60 86 BE */ extrwi r0, r3, 6, 10
2022-10-16 16:31:36 +00:00
/* 80063F38 0005FD78 98 0D EA 02 */ stb r0, NUM_A@sda21(r13)
/* 80063F3C 0005FD7C 4B FC 1C 25 */ bl OSGetTick
/* 80063F40 0005FD80 88 CD EA 02 */ lbz r6, NUM_A@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80063F44 0005FD84 54 63 46 3E */ srwi r3, r3, 24
2022-10-16 16:31:36 +00:00
/* 80063F48 0005FD88 88 0D EA 03 */ lbz r0, SEED@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80063F4C 0005FD8C 70 64 00 4C */ andi. r4, r3, 0x4c
/* 80063F50 0005FD90 3C A0 92 49 */ lis r5, 0x92492493@ha
2022-10-16 16:31:36 +00:00
/* 80063F54 0005FD94 3C 60 80 44 */ lis r3, tb@ha
2022-10-16 16:05:58 +00:00
/* 80063F58 0005FD98 7D 20 31 D6 */ mullw r9, r0, r6
/* 80063F5C 0005FD9C 3C E0 80 81 */ lis r7, 0x80808081@ha
/* 80063F60 0005FDA0 39 05 24 93 */ addi r8, r5, 0x92492493@l
2022-10-16 16:31:36 +00:00
/* 80063F64 0005FDA4 98 8D EA 01 */ stb r4, NUM_B@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80063F68 0005FDA8 38 07 80 81 */ addi r0, r7, 0x80808081@l
/* 80063F6C 0005FDAC 39 60 00 FF */ li r11, 0xff
/* 80063F70 0005FDB0 7D 44 4A 14 */ add r10, r4, r9
/* 80063F74 0005FDB4 38 A0 00 02 */ li r5, 0x2
/* 80063F78 0005FDB8 7D 20 50 16 */ mulhwu r9, r0, r10
2022-10-16 16:31:36 +00:00
/* 80063F7C 0005FDBC 99 6D EA 00 */ stb r11, NUM_C@sda21(r13)
/* 80063F80 0005FDC0 38 63 89 48 */ addi r3, r3, tb@l
2022-10-16 16:05:58 +00:00
/* 80063F84 0005FDC4 38 E0 00 00 */ li r7, 0x0
/* 80063F88 0005FDC8 55 29 C9 FE */ srwi r9, r9, 7
/* 80063F8C 0005FDCC 1D 29 00 FF */ mulli r9, r9, 0xff
/* 80063F90 0005FDD0 7D 29 50 50 */ subf r9, r9, r10
/* 80063F94 0005FDD4 55 2A 06 3E */ clrlwi r10, r9, 24
/* 80063F98 0005FDD8 7D 08 50 96 */ mulhw r8, r8, r10
/* 80063F9C 0005FDDC 7D 08 52 14 */ add r8, r8, r10
/* 80063FA0 0005FDE0 7D 08 16 70 */ srawi r8, r8, 2
/* 80063FA4 0005FDE4 55 09 0F FE */ srwi r9, r8, 31
/* 80063FA8 0005FDE8 7D 08 4A 14 */ add r8, r8, r9
/* 80063FAC 0005FDEC 1D 08 00 07 */ mulli r8, r8, 0x7
/* 80063FB0 0005FDF0 7D 08 50 50 */ subf r8, r8, r10
/* 80063FB4 0005FDF4 55 1E 06 3E */ clrlwi r30, r8, 24
/* 80063FB8 0005FDF8 1D 1E 00 06 */ mulli r8, r30, 0x6
/* 80063FBC 0005FDFC 55 0E 06 3E */ clrlwi r14, r8, 24
/* 80063FC0 0005FE00 7C A9 03 A6 */ mtctr r5
.global lbl_80063FC4
lbl_80063FC4:
/* 80063FC4 0005FE04 55 45 06 3E */ clrlwi r5, r10, 24
/* 80063FC8 0005FE08 54 E8 06 3E */ clrlwi r8, r7, 24
/* 80063FCC 0005FE0C 7D 25 31 D6 */ mullw r9, r5, r6
/* 80063FD0 0005FE10 38 E7 00 05 */ addi r7, r7, 0x5
/* 80063FD4 0005FE14 38 A1 00 18 */ addi r5, r1, 0x18
/* 80063FD8 0005FE18 7C A5 42 14 */ add r5, r5, r8
/* 80063FDC 0005FE1C 7D 24 4A 14 */ add r9, r4, r9
/* 80063FE0 0005FE20 7D 00 48 16 */ mulhwu r8, r0, r9
/* 80063FE4 0005FE24 55 08 C9 FE */ srwi r8, r8, 7
/* 80063FE8 0005FE28 1D 08 00 FF */ mulli r8, r8, 0xff
/* 80063FEC 0005FE2C 7D 08 48 50 */ subf r8, r8, r9
/* 80063FF0 0005FE30 55 09 06 3E */ clrlwi r9, r8, 24
/* 80063FF4 0005FE34 7D 09 31 D6 */ mullw r8, r9, r6
/* 80063FF8 0005FE38 7D 23 48 AE */ lbzx r9, r3, r9
/* 80063FFC 0005FE3C 99 25 00 00 */ stb r9, 0x0(r5)
/* 80064000 0005FE40 7D 24 42 14 */ add r9, r4, r8
/* 80064004 0005FE44 7D 00 48 16 */ mulhwu r8, r0, r9
/* 80064008 0005FE48 55 08 C9 FE */ srwi r8, r8, 7
/* 8006400C 0005FE4C 1D 08 00 FF */ mulli r8, r8, 0xff
/* 80064010 0005FE50 7D 08 48 50 */ subf r8, r8, r9
/* 80064014 0005FE54 55 09 06 3E */ clrlwi r9, r8, 24
/* 80064018 0005FE58 7D 09 31 D6 */ mullw r8, r9, r6
/* 8006401C 0005FE5C 7D 23 48 AE */ lbzx r9, r3, r9
/* 80064020 0005FE60 99 25 00 01 */ stb r9, 0x1(r5)
/* 80064024 0005FE64 7D 24 42 14 */ add r9, r4, r8
/* 80064028 0005FE68 7D 00 48 16 */ mulhwu r8, r0, r9
/* 8006402C 0005FE6C 55 08 C9 FE */ srwi r8, r8, 7
/* 80064030 0005FE70 1D 08 00 FF */ mulli r8, r8, 0xff
/* 80064034 0005FE74 7D 08 48 50 */ subf r8, r8, r9
/* 80064038 0005FE78 55 09 06 3E */ clrlwi r9, r8, 24
/* 8006403C 0005FE7C 7D 09 31 D6 */ mullw r8, r9, r6
/* 80064040 0005FE80 7D 23 48 AE */ lbzx r9, r3, r9
/* 80064044 0005FE84 99 25 00 02 */ stb r9, 0x2(r5)
/* 80064048 0005FE88 7D 24 42 14 */ add r9, r4, r8
/* 8006404C 0005FE8C 7D 00 48 16 */ mulhwu r8, r0, r9
/* 80064050 0005FE90 55 08 C9 FE */ srwi r8, r8, 7
/* 80064054 0005FE94 1D 08 00 FF */ mulli r8, r8, 0xff
/* 80064058 0005FE98 7D 08 48 50 */ subf r8, r8, r9
/* 8006405C 0005FE9C 55 09 06 3E */ clrlwi r9, r8, 24
/* 80064060 0005FEA0 7D 09 31 D6 */ mullw r8, r9, r6
/* 80064064 0005FEA4 7D 23 48 AE */ lbzx r9, r3, r9
/* 80064068 0005FEA8 99 25 00 03 */ stb r9, 0x3(r5)
/* 8006406C 0005FEAC 7D 24 42 14 */ add r9, r4, r8
/* 80064070 0005FEB0 7D 00 48 16 */ mulhwu r8, r0, r9
/* 80064074 0005FEB4 55 08 C9 FE */ srwi r8, r8, 7
/* 80064078 0005FEB8 1D 08 00 FF */ mulli r8, r8, 0xff
/* 8006407C 0005FEBC 7D 08 48 50 */ subf r8, r8, r9
/* 80064080 0005FEC0 55 0A 06 3E */ clrlwi r10, r8, 24
/* 80064084 0005FEC4 7D 03 50 AE */ lbzx r8, r3, r10
/* 80064088 0005FEC8 99 05 00 04 */ stb r8, 0x4(r5)
/* 8006408C 0005FECC 42 00 FF 38 */ bdnz lbl_80063FC4
2022-10-16 16:31:36 +00:00
/* 80064090 0005FED0 99 4D EA 03 */ stb r10, SEED@sda21(r13)
/* 80064094 0005FED4 4B FB D7 8D */ bl OSDisableInterrupts
/* 80064098 0005FED8 3C A0 80 44 */ lis r5, tb@ha
2022-10-16 16:05:58 +00:00
/* 8006409C 0005FEDC 88 E1 00 1A */ lbz r7, 0x1a(r1)
2022-10-16 16:31:36 +00:00
/* 800640A0 0005FEE0 38 A5 89 48 */ addi r5, r5, tb@l
2022-10-16 16:05:58 +00:00
/* 800640A4 0005FEE4 8A 81 00 18 */ lbz r20, 0x18(r1)
/* 800640A8 0005FEE8 7D 05 38 AE */ lbzx r8, r5, r7
2022-10-16 16:31:36 +00:00
/* 800640AC 0005FEEC 3E 00 80 44 */ lis r16, base@ha
2022-10-16 16:05:58 +00:00
/* 800640B0 0005FEF0 7D 25 A0 AE */ lbzx r9, r5, r20
2022-10-16 16:31:36 +00:00
/* 800640B4 0005FEF4 3A 10 89 18 */ addi r16, r16, base@l
2022-10-16 16:05:58 +00:00
/* 800640B8 0005FEF8 88 01 00 1D */ lbz r0, 0x1d(r1)
/* 800640BC 0005FEFC 55 06 E8 04 */ slwi r6, r8, 29
/* 800640C0 0005FF00 55 0F 0F FE */ srwi r15, r8, 31
/* 800640C4 0005FF04 7C 8E 82 14 */ add r4, r14, r16
/* 800640C8 0005FF08 7C CF 30 50 */ subf r6, r15, r6
/* 800640CC 0005FF0C 8B 81 00 19 */ lbz r28, 0x19(r1)
/* 800640D0 0005FF10 54 CC 18 3E */ rotlwi r12, r6, 3
/* 800640D4 0005FF14 7E 10 70 AE */ lbzx r16, r16, r14
/* 800640D8 0005FF18 7C C5 00 AE */ lbzx r6, r5, r0
/* 800640DC 0005FF1C 7D 8C 7A 14 */ add r12, r12, r15
/* 800640E0 0005FF20 55 8F 06 3E */ clrlwi r15, r12, 24
/* 800640E4 0005FF24 55 2A E8 04 */ slwi r10, r9, 29
/* 800640E8 0005FF28 55 2B 0F FE */ srwi r11, r9, 31
/* 800640EC 0005FF2C 7E 12 32 78 */ xor r18, r16, r6
/* 800640F0 0005FF30 7D 4B 50 50 */ subf r10, r11, r10
/* 800640F4 0005FF34 7F 65 E0 AE */ lbzx r27, r5, r28
/* 800640F8 0005FF38 55 4A 18 3E */ rotlwi r10, r10, 3
/* 800640FC 0005FF3C 89 C4 00 01 */ lbz r14, 0x1(r4)
/* 80064100 0005FF40 7D 6A 5A 14 */ add r11, r10, r11
/* 80064104 0005FF44 7E 51 7E 30 */ sraw r17, r18, r15
/* 80064108 0005FF48 22 0F 00 08 */ subfic r16, r15, 0x8
/* 8006410C 0005FF4C 8B 01 00 21 */ lbz r24, 0x21(r1)
/* 80064110 0005FF50 89 81 00 1F */ lbz r12, 0x1f(r1)
/* 80064114 0005FF54 7E 50 80 30 */ slw r16, r18, r16
/* 80064118 0005FF58 8B 41 00 1E */ lbz r26, 0x1e(r1)
/* 8006411C 0005FF5C 7E 30 83 78 */ or r16, r17, r16
/* 80064120 0005FF60 7D D3 DA 78 */ xor r19, r14, r27
/* 80064124 0005FF64 55 6B 06 3E */ clrlwi r11, r11, 24
/* 80064128 0005FF68 7E 6F 5E 30 */ sraw r15, r19, r11
/* 8006412C 0005FF6C 89 41 00 1C */ lbz r10, 0x1c(r1)
/* 80064130 0005FF70 21 CB 00 08 */ subfic r14, r11, 0x8
/* 80064134 0005FF74 7E E5 C0 AE */ lbzx r23, r5, r24
/* 80064138 0005FF78 7E 6E 70 30 */ slw r14, r19, r14
/* 8006413C 0005FF7C 56 11 06 3E */ clrlwi r17, r16, 24
/* 80064140 0005FF80 7D EE 73 78 */ or r14, r15, r14
/* 80064144 0005FF84 7D 65 50 AE */ lbzx r11, r5, r10
/* 80064148 0005FF88 55 D0 06 3E */ clrlwi r16, r14, 24
/* 8006414C 0005FF8C 89 C1 00 20 */ lbz r14, 0x20(r1)
/* 80064150 0005FF90 99 C1 00 28 */ stb r14, 0x28(r1)
/* 80064154 0005FF94 7E 37 88 50 */ subf r17, r23, r17
/* 80064158 0005FF98 7D C6 80 50 */ subf r14, r6, r16
/* 8006415C 0005FF9C 7F A5 60 AE */ lbzx r29, r5, r12
/* 80064160 0005FFA0 7D 70 8A 78 */ xor r16, r11, r17
/* 80064164 0005FFA4 7F 25 D0 AE */ lbzx r25, r5, r26
/* 80064168 0005FFA8 7F AE 72 78 */ xor r14, r29, r14
/* 8006416C 0005FFAC 89 E4 00 02 */ lbz r15, 0x2(r4)
/* 80064170 0005FFB0 90 61 00 24 */ stw r3, 0x24(r1)
/* 80064174 0005FFB4 56 16 06 3E */ clrlwi r22, r16, 24
/* 80064178 0005FFB8 7D E3 CA 78 */ xor r3, r15, r25
/* 8006417C 0005FFBC 55 D5 06 3E */ clrlwi r21, r14, 24
/* 80064180 0005FFC0 89 C1 00 28 */ lbz r14, 0x28(r1)
/* 80064184 0005FFC4 57 AF E8 04 */ slwi r15, r29, 29
/* 80064188 0005FFC8 57 B2 0F FE */ srwi r18, r29, 31
/* 8006418C 0005FFCC 8A 24 00 03 */ lbz r17, 0x3(r4)
/* 80064190 0005FFD0 7E 05 70 AE */ lbzx r16, r5, r14
/* 80064194 0005FFD4 39 DE 00 02 */ addi r14, r30, 0x2
/* 80064198 0005FFD8 91 C1 00 30 */ stw r14, 0x30(r1)
/* 8006419C 0005FFDC 7D F2 78 50 */ subf r15, r18, r15
/* 800641A0 0005FFE0 56 0E E8 04 */ slwi r14, r16, 29
/* 800641A4 0005FFE4 56 10 0F FE */ srwi r16, r16, 31
/* 800641A8 0005FFE8 7D D0 70 50 */ subf r14, r16, r14
/* 800641AC 0005FFEC 7E 31 5A 78 */ xor r17, r17, r11
/* 800641B0 0005FFF0 55 CE 18 3E */ rotlwi r14, r14, 3
/* 800641B4 0005FFF4 55 F3 18 3E */ rotlwi r19, r15, 3
/* 800641B8 0005FFF8 7D CE 82 14 */ add r14, r14, r16
/* 800641BC 0005FFFC 54 70 06 3E */ clrlwi r16, r3, 24
/* 800641C0 00060000 55 CF 06 3E */ clrlwi r15, r14, 24
/* 800641C4 00060004 89 C4 00 04 */ lbz r14, 0x4(r4)
/* 800641C8 00060008 7E 03 7E 30 */ sraw r3, r16, r15
/* 800641CC 0006000C 90 61 00 2C */ stw r3, 0x2c(r1)
/* 800641D0 00060010 7C 73 92 14 */ add r3, r19, r18
/* 800641D4 00060014 22 4F 00 08 */ subfic r18, r15, 0x8
/* 800641D8 00060018 92 41 00 3C */ stw r18, 0x3c(r1)
/* 800641DC 0006001C 57 33 E8 04 */ slwi r19, r25, 29
/* 800641E0 00060020 57 32 0F FE */ srwi r18, r25, 31
/* 800641E4 00060024 88 84 00 05 */ lbz r4, 0x5(r4)
/* 800641E8 00060028 7F 32 98 50 */ subf r25, r18, r19
/* 800641EC 0006002C 54 73 06 3E */ clrlwi r19, r3, 24
/* 800641F0 00060030 7D CE DA 78 */ xor r14, r14, r27
/* 800641F4 00060034 56 31 06 3E */ clrlwi r17, r17, 24
/* 800641F8 00060038 57 39 18 3E */ rotlwi r25, r25, 3
/* 800641FC 0006003C 7C 9B EA 78 */ xor r27, r4, r29
/* 80064200 00060040 7E 59 92 14 */ add r18, r25, r18
/* 80064204 00060044 83 21 00 3C */ lwz r25, 0x3c(r1)
/* 80064208 00060048 7E 24 9E 30 */ sraw r4, r17, r19
/* 8006420C 0006004C 55 CE 06 3E */ clrlwi r14, r14, 24
/* 80064210 00060050 22 73 00 08 */ subfic r19, r19, 0x8
/* 80064214 00060054 7E 10 C8 30 */ slw r16, r16, r25
/* 80064218 00060058 83 21 00 2C */ lwz r25, 0x2c(r1)
/* 8006421C 0006005C 7E 33 98 30 */ slw r19, r17, r19
/* 80064220 00060060 56 52 06 3E */ clrlwi r18, r18, 24
/* 80064224 00060064 88 61 00 1B */ lbz r3, 0x1b(r1)
/* 80064228 00060068 7D D1 96 30 */ sraw r17, r14, r18
/* 8006422C 0006006C 7F 39 83 78 */ or r25, r25, r16
/* 80064230 00060070 22 12 00 08 */ subfic r16, r18, 0x8
/* 80064234 00060074 57 72 06 3E */ clrlwi r18, r27, 24
/* 80064238 00060078 7E 5B 7E 30 */ sraw r27, r18, r15
/* 8006423C 0006007C 7C 84 9B 78 */ or r4, r4, r19
/* 80064240 00060080 7D D3 80 30 */ slw r19, r14, r16
/* 80064244 00060084 21 EF 00 08 */ subfic r15, r15, 0x8
/* 80064248 00060088 7E 50 78 30 */ slw r16, r18, r15
/* 8006424C 0006008C 7D E5 18 AE */ lbzx r15, r5, r3
/* 80064250 00060090 7E 31 9B 78 */ or r17, r17, r19
/* 80064254 00060094 57 2E 06 3E */ clrlwi r14, r25, 24
/* 80064258 00060098 7F 70 83 78 */ or r16, r27, r16
/* 8006425C 0006009C 54 92 06 3E */ clrlwi r18, r4, 24
/* 80064260 000600A0 56 04 06 3E */ clrlwi r4, r16, 24
/* 80064264 000600A4 56 31 06 3E */ clrlwi r17, r17, 24
/* 80064268 000600A8 7E 68 70 50 */ subf r19, r8, r14
/* 8006426C 000600AC 7E 0F 90 50 */ subf r16, r15, r18
/* 80064270 000600B0 7D CF 88 50 */ subf r14, r15, r17
/* 80064274 000600B4 7C 86 20 50 */ subf r4, r6, r4
/* 80064278 000600B8 7D 2F 9A 78 */ xor r15, r9, r19
/* 8006427C 000600BC 7D 08 82 78 */ xor r8, r8, r16
/* 80064280 000600C0 7D 69 72 78 */ xor r9, r11, r14
/* 80064284 000600C4 7E EB 22 78 */ xor r11, r23, r4
/* 80064288 000600C8 80 81 00 30 */ lwz r4, 0x30(r1)
/* 8006428C 000600CC 55 E6 06 3E */ clrlwi r6, r15, 24
/* 80064290 000600D0 55 08 06 3E */ clrlwi r8, r8, 24
/* 80064294 000600D4 55 29 06 3E */ clrlwi r9, r9, 24
/* 80064298 000600D8 54 97 40 2E */ slwi r23, r4, 8
/* 8006429C 000600DC 55 6B 06 3E */ clrlwi r11, r11, 24
/* 800642A0 000600E0 39 DE 00 01 */ addi r14, r30, 0x1
/* 800642A4 000600E4 7C 83 BA 14 */ add r4, r3, r23
/* 800642A8 000600E8 55 D9 40 2E */ slwi r25, r14, 8
/* 800642AC 000600EC 90 81 00 34 */ stw r4, 0x34(r1)
/* 800642B0 000600F0 7F C0 BA 14 */ add r30, r0, r23
/* 800642B4 000600F4 7C 07 BA 14 */ add r0, r7, r23
/* 800642B8 000600F8 90 01 00 38 */ stw r0, 0x38(r1)
/* 800642BC 000600FC 7F BA BA 14 */ add r29, r26, r23
/* 800642C0 00060100 7E 2C BA 14 */ add r17, r12, r23
/* 800642C4 00060104 7D CA BA 14 */ add r14, r10, r23
/* 800642C8 00060108 7D 58 BA 14 */ add r10, r24, r23
/* 800642CC 0006010C 7F 1C CA 14 */ add r24, r28, r25
/* 800642D0 00060110 88 01 00 28 */ lbz r0, 0x28(r1)
/* 800642D4 00060114 7E 0B CA 14 */ add r16, r11, r25
/* 800642D8 00060118 7D 95 CA 14 */ add r12, r21, r25
/* 800642DC 0006011C 7E 46 CA 14 */ add r18, r6, r25
/* 800642E0 00060120 7F 74 CA 14 */ add r27, r20, r25
/* 800642E4 00060124 7E 94 BA 14 */ add r20, r20, r23
/* 800642E8 00060128 7C 63 CA 14 */ add r3, r3, r25
/* 800642EC 0006012C 7E 69 CA 14 */ add r19, r9, r25
/* 800642F0 00060130 7F 40 BA 14 */ add r26, r0, r23
/* 800642F4 00060134 7C 13 28 AE */ lbzx r0, r19, r5
/* 800642F8 00060138 82 61 00 34 */ lwz r19, 0x34(r1)
/* 800642FC 0006013C 7F 9C BA 14 */ add r28, r28, r23
/* 80064300 00060140 7E E7 CA 14 */ add r23, r7, r25
/* 80064304 00060144 7D F6 CA 14 */ add r15, r22, r25
/* 80064308 00060148 7C 88 CA 14 */ add r4, r8, r25
/* 8006430C 0006014C 7E 73 28 AE */ lbzx r19, r19, r5
/* 80064310 00060150 7F 3A 28 AE */ lbzx r25, r26, r5
/* 80064314 00060154 38 E1 00 18 */ addi r7, r1, 0x18
/* 80064318 00060158 7F 18 28 AE */ lbzx r24, r24, r5
/* 8006431C 0006015C 7C 13 9A 78 */ xor r19, r0, r19
/* 80064320 00060160 7E 31 28 AE */ lbzx r17, r17, r5
/* 80064324 00060164 7F 18 CA 78 */ xor r24, r24, r25
/* 80064328 00060168 7E 10 28 AE */ lbzx r16, r16, r5
/* 8006432C 0006016C 7C 00 8A 78 */ xor r0, r0, r17
/* 80064330 00060170 7D CE 28 AE */ lbzx r14, r14, r5
/* 80064334 00060174 7E 11 8A 78 */ xor r17, r16, r17
/* 80064338 00060178 7D 8C 28 AE */ lbzx r12, r12, r5
/* 8006433C 0006017C 7E 10 72 78 */ xor r16, r16, r14
/* 80064340 00060180 7F 5E 28 AE */ lbzx r26, r30, r5
/* 80064344 00060184 7D 8E 72 78 */ xor r14, r12, r14
/* 80064348 00060188 7D 8C CA 78 */ xor r12, r12, r25
/* 8006434C 0006018C 7C 63 28 AE */ lbzx r3, r3, r5
/* 80064350 00060190 7E 52 28 AE */ lbzx r18, r18, r5
/* 80064354 00060194 7F 24 28 AE */ lbzx r25, r4, r5
/* 80064358 00060198 7C 63 D2 78 */ xor r3, r3, r26
/* 8006435C 0006019C 7E 44 D2 78 */ xor r4, r18, r26
/* 80064360 000601A0 7D 4A 28 AE */ lbzx r10, r10, r5
/* 80064364 000601A4 7E 94 28 AE */ lbzx r20, r20, r5
/* 80064368 000601A8 7E 52 52 78 */ xor r18, r18, r10
/* 8006436C 000601AC 7F 2A 52 78 */ xor r10, r25, r10
/* 80064370 000601B0 7F 34 A2 78 */ xor r20, r25, r20
/* 80064374 000601B4 7F 2F 28 AE */ lbzx r25, r15, r5
/* 80064378 000601B8 81 E1 00 38 */ lwz r15, 0x38(r1)
/* 8006437C 000601BC 7F 5C 28 AE */ lbzx r26, r28, r5
/* 80064380 000601C0 7D EF 28 AE */ lbzx r15, r15, r5
/* 80064384 000601C4 7F BD 28 AE */ lbzx r29, r29, r5
/* 80064388 000601C8 7F 3C 7A 78 */ xor r28, r25, r15
/* 8006438C 000601CC 7D FB 28 AE */ lbzx r15, r27, r5
/* 80064390 000601D0 7C B7 28 AE */ lbzx r5, r23, r5
/* 80064394 000601D4 7F 39 D2 78 */ xor r25, r25, r26
/* 80064398 000601D8 7D EF EA 78 */ xor r15, r15, r29
/* 8006439C 000601DC 9A 61 00 10 */ stb r19, 0x10(r1)
/* 800643A0 000601E0 7C A5 EA 78 */ xor r5, r5, r29
/* 800643A4 000601E4 98 81 00 11 */ stb r4, 0x11(r1)
/* 800643A8 000601E8 9A 21 00 12 */ stb r17, 0x12(r1)
/* 800643AC 000601EC 9B 81 00 13 */ stb r28, 0x13(r1)
/* 800643B0 000601F0 99 C1 00 14 */ stb r14, 0x14(r1)
/* 800643B4 000601F4 99 41 00 15 */ stb r10, 0x15(r1)
/* 800643B8 000601F8 99 E1 00 16 */ stb r15, 0x16(r1)
/* 800643BC 000601FC 9B 01 00 17 */ stb r24, 0x17(r1)
/* 800643C0 00060200 9B 21 00 08 */ stb r25, 0x8(r1)
/* 800643C4 00060204 9A 01 00 09 */ stb r16, 0x9(r1)
/* 800643C8 00060208 9A 81 00 0A */ stb r20, 0xa(r1)
/* 800643CC 0006020C 9A 41 00 0B */ stb r18, 0xb(r1)
/* 800643D0 00060210 98 01 00 0C */ stb r0, 0xc(r1)
/* 800643D4 00060214 99 81 00 0D */ stb r12, 0xd(r1)
/* 800643D8 00060218 98 61 00 0E */ stb r3, 0xe(r1)
/* 800643DC 0006021C 98 A1 00 0F */ stb r5, 0xf(r1)
/* 800643E0 00060220 38 A0 00 00 */ li r5, 0x0
/* 800643E4 00060224 38 60 00 01 */ li r3, 0x1
/* 800643E8 00060228 20 85 00 09 */ subfic r4, r5, 0x9
/* 800643EC 0006022C 38 00 00 02 */ li r0, 0x2
/* 800643F0 00060230 7C 87 20 AE */ lbzx r4, r7, r4
/* 800643F4 00060234 20 63 00 09 */ subfic r3, r3, 0x9
/* 800643F8 00060238 98 9F 0B 0C */ stb r4, 0xb0c(r31)
/* 800643FC 0006023C 20 80 00 09 */ subfic r4, r0, 0x9
/* 80064400 00060240 7C 67 18 AE */ lbzx r3, r7, r3
/* 80064404 00060244 38 00 00 03 */ li r0, 0x3
/* 80064408 00060248 98 7F 0B 0D */ stb r3, 0xb0d(r31)
/* 8006440C 0006024C 20 60 00 09 */ subfic r3, r0, 0x9
/* 80064410 00060250 7C 87 20 AE */ lbzx r4, r7, r4
/* 80064414 00060254 38 00 00 04 */ li r0, 0x4
/* 80064418 00060258 98 9F 0B 0E */ stb r4, 0xb0e(r31)
/* 8006441C 0006025C 20 00 00 09 */ subfic r0, r0, 0x9
/* 80064420 00060260 7C 87 18 AE */ lbzx r4, r7, r3
/* 80064424 00060264 38 A0 00 05 */ li r5, 0x5
/* 80064428 00060268 98 9F 0B 0F */ stb r4, 0xb0f(r31)
/* 8006442C 0006026C 20 85 00 09 */ subfic r4, r5, 0x9
/* 80064430 00060270 7C 07 00 AE */ lbzx r0, r7, r0
/* 80064434 00060274 38 60 00 06 */ li r3, 0x6
/* 80064438 00060278 98 1F 0B 10 */ stb r0, 0xb10(r31)
/* 8006443C 0006027C 20 63 00 09 */ subfic r3, r3, 0x9
/* 80064440 00060280 7C 87 20 AE */ lbzx r4, r7, r4
/* 80064444 00060284 38 00 00 07 */ li r0, 0x7
/* 80064448 00060288 98 9F 0B 11 */ stb r4, 0xb11(r31)
/* 8006444C 0006028C 20 80 00 09 */ subfic r4, r0, 0x9
/* 80064450 00060290 7C 67 18 AE */ lbzx r3, r7, r3
/* 80064454 00060294 38 00 00 08 */ li r0, 0x8
/* 80064458 00060298 98 7F 0B 12 */ stb r3, 0xb12(r31)
/* 8006445C 0006029C 20 60 00 09 */ subfic r3, r0, 0x9
/* 80064460 000602A0 7C 87 20 AE */ lbzx r4, r7, r4
/* 80064464 000602A4 38 00 00 09 */ li r0, 0x9
/* 80064468 000602A8 98 9F 0B 13 */ stb r4, 0xb13(r31)
/* 8006446C 000602AC 20 00 00 09 */ subfic r0, r0, 0x9
/* 80064470 000602B0 7C 87 18 AE */ lbzx r4, r7, r3
/* 80064474 000602B4 38 7F 0B 1C */ addi r3, r31, 0xb1c
/* 80064478 000602B8 98 9F 0B 14 */ stb r4, 0xb14(r31)
/* 8006447C 000602BC 38 81 00 10 */ addi r4, r1, 0x10
/* 80064480 000602C0 7C 07 00 AE */ lbzx r0, r7, r0
/* 80064484 000602C4 38 A0 00 08 */ li r5, 0x8
/* 80064488 000602C8 98 1F 0B 15 */ stb r0, 0xb15(r31)
/* 8006448C 000602CC 99 7F 0B 16 */ stb r11, 0xb16(r31)
/* 80064490 000602D0 99 3F 0B 17 */ stb r9, 0xb17(r31)
/* 80064494 000602D4 99 1F 0B 18 */ stb r8, 0xb18(r31)
/* 80064498 000602D8 98 DF 0B 19 */ stb r6, 0xb19(r31)
/* 8006449C 000602DC 9A BF 0B 1A */ stb r21, 0xb1a(r31)
/* 800644A0 000602E0 9A DF 0B 1B */ stb r22, 0xb1b(r31)
2022-10-16 16:31:36 +00:00
/* 800644A4 000602E4 4B F9 FB 5D */ bl memcpy
2022-10-16 16:05:58 +00:00
/* 800644A8 000602E8 38 7F 0B 24 */ addi r3, r31, 0xb24
/* 800644AC 000602EC 38 81 00 08 */ addi r4, r1, 0x8
/* 800644B0 000602F0 38 A0 00 08 */ li r5, 0x8
2022-10-16 16:31:36 +00:00
/* 800644B4 000602F4 4B F9 FB 4D */ bl memcpy
2022-10-16 16:05:58 +00:00
/* 800644B8 000602F8 80 61 00 24 */ lwz r3, 0x24(r1)
2022-10-16 16:31:36 +00:00
/* 800644BC 000602FC 4B FB D3 A5 */ bl OSRestoreInterrupts
2022-10-16 16:05:58 +00:00
/* 800644C0 00060300 39 61 00 90 */ addi r11, r1, 0x90
2022-10-16 16:31:36 +00:00
/* 800644C4 00060304 4B FA 2E 91 */ bl __restore_gpr
2022-10-16 16:05:58 +00:00
/* 800644C8 00060308 80 01 00 94 */ lwz r0, 0x94(r1)
/* 800644CC 0006030C 7C 08 03 A6 */ mtlr r0
/* 800644D0 00060310 38 21 00 90 */ addi r1, r1, 0x90
/* 800644D4 00060314 4E 80 00 20 */ blr
/* 800644D8 00060318 00 00 00 00 */ .4byte 0x00000000
/* 800644DC 0006031C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global WPADiCreateKeyFor3rd
WPADiCreateKeyFor3rd:
2022-10-16 16:05:58 +00:00
/* 800644E0 00060320 94 21 FF 70 */ stwu r1, -0x90(r1)
/* 800644E4 00060324 7C 08 02 A6 */ mflr r0
/* 800644E8 00060328 90 01 00 94 */ stw r0, 0x94(r1)
/* 800644EC 0006032C 39 61 00 90 */ addi r11, r1, 0x90
2022-10-16 16:31:36 +00:00
/* 800644F0 00060330 4B FA 2E 19 */ bl __save_gpr
/* 800644F4 00060334 3C 80 80 4C */ lis r4, __rvl_p_wpadcb@ha
2022-10-16 16:05:58 +00:00
/* 800644F8 00060338 54 60 10 3A */ slwi r0, r3, 2
2022-10-16 16:31:36 +00:00
/* 800644FC 0006033C 38 84 1A 50 */ addi r4, r4, __rvl_p_wpadcb@l
2022-10-16 16:05:58 +00:00
/* 80064500 00060340 7F E4 00 2E */ lwzx r31, r4, r0
2022-10-16 16:31:36 +00:00
/* 80064504 00060344 4B FC 16 5D */ bl OSGetTick
2022-10-16 16:05:58 +00:00
/* 80064508 00060348 54 60 C6 3E */ extrwi r0, r3, 8, 16
2022-10-16 16:31:36 +00:00
/* 8006450C 0006034C 98 0D EA 03 */ stb r0, SEED@sda21(r13)
/* 80064510 00060350 4B FC 16 51 */ bl OSGetTick
2022-10-16 16:05:58 +00:00
/* 80064514 00060354 54 60 86 BE */ extrwi r0, r3, 6, 10
2022-10-16 16:31:36 +00:00
/* 80064518 00060358 98 0D EA 02 */ stb r0, NUM_A@sda21(r13)
/* 8006451C 0006035C 4B FC 16 45 */ bl OSGetTick
/* 80064520 00060360 88 CD EA 02 */ lbz r6, NUM_A@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80064524 00060364 54 63 46 3E */ srwi r3, r3, 24
2022-10-16 16:31:36 +00:00
/* 80064528 00060368 88 0D EA 03 */ lbz r0, SEED@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8006452C 0006036C 70 64 00 4C */ andi. r4, r3, 0x4c
/* 80064530 00060370 3C A0 92 49 */ lis r5, 0x92492493@ha
2022-10-16 16:31:36 +00:00
/* 80064534 00060374 3C 60 80 44 */ lis r3, tb3@ha
2022-10-16 16:05:58 +00:00
/* 80064538 00060378 7D 20 31 D6 */ mullw r9, r0, r6
/* 8006453C 0006037C 3C E0 80 81 */ lis r7, 0x80808081@ha
/* 80064540 00060380 39 05 24 93 */ addi r8, r5, 0x92492493@l
2022-10-16 16:31:36 +00:00
/* 80064544 00060384 98 8D EA 01 */ stb r4, NUM_B@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80064548 00060388 38 07 80 81 */ addi r0, r7, 0x80808081@l
/* 8006454C 0006038C 39 60 00 FF */ li r11, 0xff
/* 80064550 00060390 7D 44 4A 14 */ add r10, r4, r9
/* 80064554 00060394 38 A0 00 02 */ li r5, 0x2
/* 80064558 00060398 7D 20 50 16 */ mulhwu r9, r0, r10
2022-10-16 16:31:36 +00:00
/* 8006455C 0006039C 99 6D EA 00 */ stb r11, NUM_C@sda21(r13)
/* 80064560 000603A0 38 63 92 78 */ addi r3, r3, tb3@l
2022-10-16 16:05:58 +00:00
/* 80064564 000603A4 38 E0 00 00 */ li r7, 0x0
/* 80064568 000603A8 55 29 C9 FE */ srwi r9, r9, 7
/* 8006456C 000603AC 1D 29 00 FF */ mulli r9, r9, 0xff
/* 80064570 000603B0 7D 29 50 50 */ subf r9, r9, r10
/* 80064574 000603B4 55 2A 06 3E */ clrlwi r10, r9, 24
/* 80064578 000603B8 7D 08 50 96 */ mulhw r8, r8, r10
/* 8006457C 000603BC 7D 08 52 14 */ add r8, r8, r10
/* 80064580 000603C0 7D 08 16 70 */ srawi r8, r8, 2
/* 80064584 000603C4 55 09 0F FE */ srwi r9, r8, 31
/* 80064588 000603C8 7D 08 4A 14 */ add r8, r8, r9
/* 8006458C 000603CC 1D 08 00 07 */ mulli r8, r8, 0x7
/* 80064590 000603D0 7D 08 50 50 */ subf r8, r8, r10
/* 80064594 000603D4 55 1E 06 3E */ clrlwi r30, r8, 24
/* 80064598 000603D8 1D 1E 00 06 */ mulli r8, r30, 0x6
/* 8006459C 000603DC 55 0E 06 3E */ clrlwi r14, r8, 24
/* 800645A0 000603E0 7C A9 03 A6 */ mtctr r5
.global lbl_800645A4
lbl_800645A4:
/* 800645A4 000603E4 55 45 06 3E */ clrlwi r5, r10, 24
/* 800645A8 000603E8 54 E8 06 3E */ clrlwi r8, r7, 24
/* 800645AC 000603EC 7D 25 31 D6 */ mullw r9, r5, r6
/* 800645B0 000603F0 38 E7 00 05 */ addi r7, r7, 0x5
/* 800645B4 000603F4 38 A1 00 18 */ addi r5, r1, 0x18
/* 800645B8 000603F8 7C A5 42 14 */ add r5, r5, r8
/* 800645BC 000603FC 7D 24 4A 14 */ add r9, r4, r9
/* 800645C0 00060400 7D 00 48 16 */ mulhwu r8, r0, r9
/* 800645C4 00060404 55 08 C9 FE */ srwi r8, r8, 7
/* 800645C8 00060408 1D 08 00 FF */ mulli r8, r8, 0xff
/* 800645CC 0006040C 7D 08 48 50 */ subf r8, r8, r9
/* 800645D0 00060410 55 09 06 3E */ clrlwi r9, r8, 24
/* 800645D4 00060414 7D 09 31 D6 */ mullw r8, r9, r6
/* 800645D8 00060418 7D 23 48 AE */ lbzx r9, r3, r9
/* 800645DC 0006041C 99 25 00 00 */ stb r9, 0x0(r5)
/* 800645E0 00060420 7D 24 42 14 */ add r9, r4, r8
/* 800645E4 00060424 7D 00 48 16 */ mulhwu r8, r0, r9
/* 800645E8 00060428 55 08 C9 FE */ srwi r8, r8, 7
/* 800645EC 0006042C 1D 08 00 FF */ mulli r8, r8, 0xff
/* 800645F0 00060430 7D 08 48 50 */ subf r8, r8, r9
/* 800645F4 00060434 55 09 06 3E */ clrlwi r9, r8, 24
/* 800645F8 00060438 7D 09 31 D6 */ mullw r8, r9, r6
/* 800645FC 0006043C 7D 23 48 AE */ lbzx r9, r3, r9
/* 80064600 00060440 99 25 00 01 */ stb r9, 0x1(r5)
/* 80064604 00060444 7D 24 42 14 */ add r9, r4, r8
/* 80064608 00060448 7D 00 48 16 */ mulhwu r8, r0, r9
/* 8006460C 0006044C 55 08 C9 FE */ srwi r8, r8, 7
/* 80064610 00060450 1D 08 00 FF */ mulli r8, r8, 0xff
/* 80064614 00060454 7D 08 48 50 */ subf r8, r8, r9
/* 80064618 00060458 55 09 06 3E */ clrlwi r9, r8, 24
/* 8006461C 0006045C 7D 09 31 D6 */ mullw r8, r9, r6
/* 80064620 00060460 7D 23 48 AE */ lbzx r9, r3, r9
/* 80064624 00060464 99 25 00 02 */ stb r9, 0x2(r5)
/* 80064628 00060468 7D 24 42 14 */ add r9, r4, r8
/* 8006462C 0006046C 7D 00 48 16 */ mulhwu r8, r0, r9
/* 80064630 00060470 55 08 C9 FE */ srwi r8, r8, 7
/* 80064634 00060474 1D 08 00 FF */ mulli r8, r8, 0xff
/* 80064638 00060478 7D 08 48 50 */ subf r8, r8, r9
/* 8006463C 0006047C 55 09 06 3E */ clrlwi r9, r8, 24
/* 80064640 00060480 7D 09 31 D6 */ mullw r8, r9, r6
/* 80064644 00060484 7D 23 48 AE */ lbzx r9, r3, r9
/* 80064648 00060488 99 25 00 03 */ stb r9, 0x3(r5)
/* 8006464C 0006048C 7D 24 42 14 */ add r9, r4, r8
/* 80064650 00060490 7D 00 48 16 */ mulhwu r8, r0, r9
/* 80064654 00060494 55 08 C9 FE */ srwi r8, r8, 7
/* 80064658 00060498 1D 08 00 FF */ mulli r8, r8, 0xff
/* 8006465C 0006049C 7D 08 48 50 */ subf r8, r8, r9
/* 80064660 000604A0 55 0A 06 3E */ clrlwi r10, r8, 24
/* 80064664 000604A4 7D 03 50 AE */ lbzx r8, r3, r10
/* 80064668 000604A8 99 05 00 04 */ stb r8, 0x4(r5)
/* 8006466C 000604AC 42 00 FF 38 */ bdnz lbl_800645A4
2022-10-16 16:31:36 +00:00
/* 80064670 000604B0 99 4D EA 03 */ stb r10, SEED@sda21(r13)
/* 80064674 000604B4 4B FB D1 AD */ bl OSDisableInterrupts
/* 80064678 000604B8 3F 60 80 44 */ lis r27, tb3@ha
2022-10-16 16:05:58 +00:00
/* 8006467C 000604BC 8A E1 00 19 */ lbz r23, 0x19(r1)
2022-10-16 16:31:36 +00:00
/* 80064680 000604C0 3B 7B 92 78 */ addi r27, r27, tb3@l
2022-10-16 16:05:58 +00:00
/* 80064684 000604C4 8A A1 00 1A */ lbz r21, 0x1a(r1)
/* 80064688 000604C8 7E DB B8 AE */ lbzx r22, r27, r23
2022-10-16 16:31:36 +00:00
/* 8006468C 000604CC 3C E0 80 44 */ lis r7, base3@ha
/* 80064690 000604D0 38 E7 92 48 */ addi r7, r7, base3@l
2022-10-16 16:05:58 +00:00
/* 80064694 000604D4 7D 9B A8 AE */ lbzx r12, r27, r21
/* 80064698 000604D8 56 C0 E8 04 */ slwi r0, r22, 29
/* 8006469C 000604DC 56 C5 0F FE */ srwi r5, r22, 31
/* 800646A0 000604E0 7C 05 00 50 */ subf r0, r5, r0
/* 800646A4 000604E4 89 01 00 18 */ lbz r8, 0x18(r1)
/* 800646A8 000604E8 54 04 18 3E */ rotlwi r4, r0, 3
/* 800646AC 000604EC 55 86 0F FE */ srwi r6, r12, 31
/* 800646B0 000604F0 7C 84 2A 14 */ add r4, r4, r5
/* 800646B4 000604F4 55 80 E8 04 */ slwi r0, r12, 29
/* 800646B8 000604F8 7C A6 00 50 */ subf r5, r6, r0
/* 800646BC 000604FC 7E 1B 40 AE */ lbzx r16, r27, r8
/* 800646C0 00060500 7D 27 70 AE */ lbzx r9, r7, r14
/* 800646C4 00060504 54 A5 18 3E */ rotlwi r5, r5, 3
/* 800646C8 00060508 8A 81 00 1C */ lbz r20, 0x1c(r1)
/* 800646CC 0006050C 7C C5 32 14 */ add r6, r5, r6
/* 800646D0 00060510 88 A1 00 1E */ lbz r5, 0x1e(r1)
/* 800646D4 00060514 7D 2A 82 78 */ xor r10, r9, r16
/* 800646D8 00060518 88 01 00 20 */ lbz r0, 0x20(r1)
/* 800646DC 0006051C 54 84 06 3E */ clrlwi r4, r4, 24
/* 800646E0 00060520 7F 8E 3A 14 */ add r28, r14, r7
/* 800646E4 00060524 98 A1 00 29 */ stb r5, 0x29(r1)
/* 800646E8 00060528 20 E4 00 08 */ subfic r7, r4, 0x8
/* 800646EC 0006052C 54 C9 06 3E */ clrlwi r9, r6, 24
/* 800646F0 00060530 7D 47 3E 30 */ sraw r7, r10, r7
/* 800646F4 00060534 7D 44 20 30 */ slw r4, r10, r4
/* 800646F8 00060538 7C 8E 3B 78 */ or r14, r4, r7
/* 800646FC 0006053C 98 01 00 28 */ stb r0, 0x28(r1)
/* 80064700 00060540 7C 1B 00 AE */ lbzx r0, r27, r0
/* 80064704 00060544 22 29 00 08 */ subfic r17, r9, 0x8
/* 80064708 00060548 88 C1 00 29 */ lbz r6, 0x29(r1)
/* 8006470C 0006054C 88 9C 00 02 */ lbz r4, 0x2(r28)
/* 80064710 00060550 54 0A E8 04 */ slwi r10, r0, 29
/* 80064714 00060554 7D 7B 30 AE */ lbzx r11, r27, r6
/* 80064718 00060558 55 C6 06 3E */ clrlwi r6, r14, 24
/* 8006471C 0006055C 54 0F 0F FE */ srwi r15, r0, 31
/* 80064720 00060560 7E 7B A0 AE */ lbzx r19, r27, r20
/* 80064724 00060564 88 FC 00 01 */ lbz r7, 0x1(r28)
/* 80064728 00060568 7D CF 50 50 */ subf r14, r15, r10
/* 8006472C 0006056C 88 A1 00 1B */ lbz r5, 0x1b(r1)
/* 80064730 00060570 7F 0B 32 14 */ add r24, r11, r6
/* 80064734 00060574 7C E7 9A 78 */ xor r7, r7, r19
/* 80064738 00060578 8A 41 00 1F */ lbz r18, 0x1f(r1)
/* 8006473C 0006057C 7C E9 48 30 */ slw r9, r7, r9
/* 80064740 00060580 7D 5B 28 AE */ lbzx r10, r27, r5
/* 80064744 00060584 7C E7 8E 30 */ sraw r7, r7, r17
/* 80064748 00060588 7E 3B 90 AE */ lbzx r17, r27, r18
/* 8006474C 0006058C 7D 27 3B 78 */ or r7, r9, r7
/* 80064750 00060590 55 CE 18 3E */ rotlwi r14, r14, 3
/* 80064754 00060594 7D 2E 7A 14 */ add r9, r14, r15
/* 80064758 00060598 90 61 00 24 */ stw r3, 0x24(r1)
/* 8006475C 0006059C 54 E6 06 3E */ clrlwi r6, r7, 24
/* 80064760 000605A0 7E 2E C2 78 */ xor r14, r17, r24
/* 80064764 000605A4 7C CA 32 14 */ add r6, r10, r6
/* 80064768 000605A8 7C 84 62 78 */ xor r4, r4, r12
/* 8006476C 000605AC 7E C7 32 78 */ xor r7, r22, r6
/* 80064770 000605B0 55 3A 06 3E */ clrlwi r26, r9, 24
/* 80064774 000605B4 55 C6 06 3E */ clrlwi r6, r14, 24
/* 80064778 000605B8 54 E7 06 3E */ clrlwi r7, r7, 24
/* 8006477C 000605BC 88 61 00 21 */ lbz r3, 0x21(r1)
/* 80064780 000605C0 54 9D 06 3E */ clrlwi r29, r4, 24
/* 80064784 000605C4 21 3A 00 08 */ subfic r9, r26, 0x8
/* 80064788 000605C8 89 DC 00 03 */ lbz r14, 0x3(r28)
/* 8006478C 000605CC 7C 9B 18 AE */ lbzx r4, r27, r3
/* 80064790 000605D0 39 9E 00 02 */ addi r12, r30, 0x2
/* 80064794 000605D4 7D D9 5A 78 */ xor r25, r14, r11
/* 80064798 000605D8 7F A9 4E 30 */ sraw r9, r29, r9
/* 8006479C 000605DC 54 8B E8 04 */ slwi r11, r4, 29
/* 800647A0 000605E0 54 98 0F FE */ srwi r24, r4, 31
/* 800647A4 000605E4 91 81 00 38 */ stw r12, 0x38(r1)
/* 800647A8 000605E8 7D 98 58 50 */ subf r12, r24, r11
/* 800647AC 000605EC 55 8E 18 3E */ rotlwi r14, r12, 3
/* 800647B0 000605F0 89 7C 00 05 */ lbz r11, 0x5(r28)
/* 800647B4 000605F4 7D CE C2 14 */ add r14, r14, r24
/* 800647B8 000605F8 91 21 00 2C */ stw r9, 0x2c(r1)
/* 800647BC 000605FC 55 49 E8 04 */ slwi r9, r10, 29
/* 800647C0 00060600 55 4A 0F FE */ srwi r10, r10, 31
/* 800647C4 00060604 55 D8 06 3E */ clrlwi r24, r14, 24
/* 800647C8 00060608 91 61 00 34 */ stw r11, 0x34(r1)
/* 800647CC 0006060C 7D CA 48 50 */ subf r14, r10, r9
/* 800647D0 00060610 56 6B E8 04 */ slwi r11, r19, 29
/* 800647D4 00060614 21 38 00 08 */ subfic r9, r24, 0x8
/* 800647D8 00060618 56 6C 0F FE */ srwi r12, r19, 31
/* 800647DC 0006061C 55 CE 18 3E */ rotlwi r14, r14, 3
/* 800647E0 00060620 57 39 06 3E */ clrlwi r25, r25, 24
/* 800647E4 00060624 7D 6C 58 50 */ subf r11, r12, r11
/* 800647E8 00060628 91 21 00 30 */ stw r9, 0x30(r1)
/* 800647EC 0006062C 7D 4E 52 14 */ add r10, r14, r10
/* 800647F0 00060630 89 E1 00 1D */ lbz r15, 0x1d(r1)
/* 800647F4 00060634 81 C1 00 30 */ lwz r14, 0x30(r1)
/* 800647F8 00060638 55 6B 18 3E */ rotlwi r11, r11, 3
/* 800647FC 0006063C 7D 6B 62 14 */ add r11, r11, r12
/* 80064800 00060640 89 9C 00 04 */ lbz r12, 0x4(r28)
/* 80064804 00060644 7D 3B 78 AE */ lbzx r9, r27, r15
/* 80064808 00060648 55 7C 06 3E */ clrlwi r28, r11, 24
/* 8006480C 0006064C 7F 2E 76 30 */ sraw r14, r25, r14
/* 80064810 00060650 7F 38 C0 30 */ slw r24, r25, r24
/* 80064814 00060654 7D 8B 4A 78 */ xor r11, r12, r9
/* 80064818 00060658 21 9C 00 08 */ subfic r12, r28, 0x8
/* 8006481C 0006065C 7D 6C 66 30 */ sraw r12, r11, r12
/* 80064820 00060660 83 21 00 2C */ lwz r25, 0x2c(r1)
/* 80064824 00060664 7F BA D0 30 */ slw r26, r29, r26
/* 80064828 00060668 7D 6B E0 30 */ slw r11, r11, r28
/* 8006482C 0006066C 7F 59 CB 78 */ or r25, r26, r25
/* 80064830 00060670 83 41 00 34 */ lwz r26, 0x34(r1)
/* 80064834 00060674 7F 0E 73 78 */ or r14, r24, r14
/* 80064838 00060678 7D 6B 63 78 */ or r11, r11, r12
/* 8006483C 0006067C 55 4A 06 3E */ clrlwi r10, r10, 24
/* 80064840 00060680 7F 44 22 78 */ xor r4, r26, r4
/* 80064844 00060684 23 4A 00 08 */ subfic r26, r10, 0x8
/* 80064848 00060688 55 CC 06 3E */ clrlwi r12, r14, 24
/* 8006484C 0006068C 7C 8A 50 30 */ slw r10, r4, r10
/* 80064850 00060690 57 38 06 3E */ clrlwi r24, r25, 24
/* 80064854 00060694 7C 84 D6 30 */ sraw r4, r4, r26
/* 80064858 00060698 7D 44 23 78 */ or r4, r10, r4
/* 8006485C 0006069C 55 6A 06 3E */ clrlwi r10, r11, 24
/* 80064860 000606A0 7D 71 62 14 */ add r11, r17, r12
/* 80064864 000606A4 7D D3 C2 14 */ add r14, r19, r24
/* 80064868 000606A8 7D 40 52 14 */ add r10, r0, r10
/* 8006486C 000606AC 54 84 06 3E */ clrlwi r4, r4, 24
/* 80064870 000606B0 7C 00 22 14 */ add r0, r0, r4
/* 80064874 000606B4 7E 0B 5A 78 */ xor r11, r16, r11
/* 80064878 000606B8 7E CA 52 78 */ xor r10, r22, r10
/* 8006487C 000606BC 7D 2C 72 78 */ xor r12, r9, r14
/* 80064880 000606C0 7D 24 02 78 */ xor r4, r9, r0
/* 80064884 000606C4 55 69 06 3E */ clrlwi r9, r11, 24
/* 80064888 000606C8 54 8B 06 3E */ clrlwi r11, r4, 24
/* 8006488C 000606CC 80 81 00 38 */ lwz r4, 0x38(r1)
/* 80064890 000606D0 55 80 06 3E */ clrlwi r0, r12, 24
/* 80064894 000606D4 55 4A 06 3E */ clrlwi r10, r10, 24
/* 80064898 000606D8 54 96 40 2E */ slwi r22, r4, 8
/* 8006489C 000606DC 7F 83 B2 14 */ add r28, r3, r22
/* 800648A0 000606E0 88 61 00 29 */ lbz r3, 0x29(r1)
/* 800648A4 000606E4 38 9E 00 01 */ addi r4, r30, 0x1
/* 800648A8 000606E8 7F AF B2 14 */ add r29, r15, r22
/* 800648AC 000606EC 7F 23 B2 14 */ add r25, r3, r22
/* 800648B0 000606F0 88 61 00 28 */ lbz r3, 0x28(r1)
/* 800648B4 000606F4 54 98 40 2E */ slwi r24, r4, 8
/* 800648B8 000606F8 7E 12 B2 14 */ add r16, r18, r22
/* 800648BC 000606FC 7C 95 B2 14 */ add r4, r21, r22
/* 800648C0 00060700 7D 94 B2 14 */ add r12, r20, r22
/* 800648C4 00060704 7E 43 B2 14 */ add r18, r3, r22
/* 800648C8 00060708 7C 77 C2 14 */ add r3, r23, r24
/* 800648CC 0006070C 7F C5 B2 14 */ add r30, r5, r22
/* 800648D0 00060710 7D EB C2 14 */ add r15, r11, r24
/* 800648D4 00060714 90 81 00 3C */ stw r4, 0x3c(r1)
/* 800648D8 00060718 7C 87 C2 14 */ add r4, r7, r24
/* 800648DC 0006071C 7E 20 C2 14 */ add r17, r0, r24
/* 800648E0 00060720 7D C6 C2 14 */ add r14, r6, r24
/* 800648E4 00060724 7E 88 C2 14 */ add r20, r8, r24
/* 800648E8 00060728 7E F7 B2 14 */ add r23, r23, r22
/* 800648EC 0006072C 7D 08 B2 14 */ add r8, r8, r22
/* 800648F0 00060730 7E 6A C2 14 */ add r19, r10, r24
/* 800648F4 00060734 7C A5 C2 14 */ add r5, r5, r24
/* 800648F8 00060738 7E D3 D8 AE */ lbzx r22, r19, r27
/* 800648FC 0006073C 7F 49 C2 14 */ add r26, r9, r24
/* 80064900 00060740 7E B5 C2 14 */ add r21, r21, r24
/* 80064904 00060744 7F 1E D8 AE */ lbzx r24, r30, r27
/* 80064908 00060748 3A 61 00 18 */ addi r19, r1, 0x18
/* 8006490C 0006074C 7E 10 D8 AE */ lbzx r16, r16, r27
/* 80064910 00060750 7E D8 C2 78 */ xor r24, r22, r24
/* 80064914 00060754 7D EF D8 AE */ lbzx r15, r15, r27
/* 80064918 00060758 7E D6 82 78 */ xor r22, r22, r16
/* 8006491C 0006075C 7D 8C D8 AE */ lbzx r12, r12, r27
/* 80064920 00060760 7D F0 82 78 */ xor r16, r15, r16
/* 80064924 00060764 7C 84 D8 AE */ lbzx r4, r4, r27
/* 80064928 00060768 7D EF 62 78 */ xor r15, r15, r12
/* 8006492C 0006076C 7E 52 D8 AE */ lbzx r18, r18, r27
/* 80064930 00060770 7C 8C 62 78 */ xor r12, r4, r12
/* 80064934 00060774 7C 63 D8 AE */ lbzx r3, r3, r27
/* 80064938 00060778 7C 84 92 78 */ xor r4, r4, r18
/* 8006493C 0006077C 7F BD D8 AE */ lbzx r29, r29, r27
/* 80064940 00060780 7C 72 92 78 */ xor r18, r3, r18
/* 80064944 00060784 7C 7C D8 AE */ lbzx r3, r28, r27
/* 80064948 00060788 7C A5 D8 AE */ lbzx r5, r5, r27
/* 8006494C 0006078C 7E 31 D8 AE */ lbzx r17, r17, r27
/* 80064950 00060790 7F 9A D8 AE */ lbzx r28, r26, r27
/* 80064954 00060794 7C A5 EA 78 */ xor r5, r5, r29
/* 80064958 00060798 7E 3A EA 78 */ xor r26, r17, r29
/* 8006495C 0006079C 7E 31 1A 78 */ xor r17, r17, r3
/* 80064960 000607A0 7F 83 1A 78 */ xor r3, r28, r3
/* 80064964 000607A4 7D 08 D8 AE */ lbzx r8, r8, r27
/* 80064968 000607A8 7D CE D8 AE */ lbzx r14, r14, r27
/* 8006496C 000607AC 7F 9C 42 78 */ xor r28, r28, r8
/* 80064970 000607B0 81 01 00 3C */ lwz r8, 0x3c(r1)
/* 80064974 000607B4 7E F7 D8 AE */ lbzx r23, r23, r27
/* 80064978 000607B8 7D 08 D8 AE */ lbzx r8, r8, r27
/* 8006497C 000607BC 7F 39 D8 AE */ lbzx r25, r25, r27
/* 80064980 000607C0 7D DD 42 78 */ xor r29, r14, r8
/* 80064984 000607C4 7D 14 D8 AE */ lbzx r8, r20, r27
/* 80064988 000607C8 7D D4 BA 78 */ xor r20, r14, r23
/* 8006498C 000607CC 7D D5 D8 AE */ lbzx r14, r21, r27
/* 80064990 000607D0 7D 15 CA 78 */ xor r21, r8, r25
/* 80064994 000607D4 9B 01 00 10 */ stb r24, 0x10(r1)
/* 80064998 000607D8 7D C8 CA 78 */ xor r8, r14, r25
/* 8006499C 000607DC 9B 41 00 11 */ stb r26, 0x11(r1)
/* 800649A0 000607E0 9A 01 00 12 */ stb r16, 0x12(r1)
/* 800649A4 000607E4 9B A1 00 13 */ stb r29, 0x13(r1)
/* 800649A8 000607E8 99 81 00 14 */ stb r12, 0x14(r1)
/* 800649AC 000607EC 98 61 00 15 */ stb r3, 0x15(r1)
/* 800649B0 000607F0 9A A1 00 16 */ stb r21, 0x16(r1)
/* 800649B4 000607F4 9A 41 00 17 */ stb r18, 0x17(r1)
/* 800649B8 000607F8 9A 81 00 08 */ stb r20, 0x8(r1)
/* 800649BC 000607FC 99 E1 00 09 */ stb r15, 0x9(r1)
/* 800649C0 00060800 9B 81 00 0A */ stb r28, 0xa(r1)
/* 800649C4 00060804 9A 21 00 0B */ stb r17, 0xb(r1)
/* 800649C8 00060808 9A C1 00 0C */ stb r22, 0xc(r1)
/* 800649CC 0006080C 98 81 00 0D */ stb r4, 0xd(r1)
/* 800649D0 00060810 98 A1 00 0E */ stb r5, 0xe(r1)
/* 800649D4 00060814 99 01 00 0F */ stb r8, 0xf(r1)
/* 800649D8 00060818 38 60 00 00 */ li r3, 0x0
/* 800649DC 0006081C 38 80 00 01 */ li r4, 0x1
/* 800649E0 00060820 21 83 00 09 */ subfic r12, r3, 0x9
/* 800649E4 00060824 7C B3 60 AE */ lbzx r5, r19, r12
/* 800649E8 00060828 20 84 00 09 */ subfic r4, r4, 0x9
/* 800649EC 0006082C 98 BF 0B 0C */ stb r5, 0xb0c(r31)
/* 800649F0 00060830 38 60 00 02 */ li r3, 0x2
/* 800649F4 00060834 7C 93 20 AE */ lbzx r4, r19, r4
/* 800649F8 00060838 20 A3 00 09 */ subfic r5, r3, 0x9
/* 800649FC 0006083C 98 9F 0B 0D */ stb r4, 0xb0d(r31)
/* 80064A00 00060840 38 60 00 03 */ li r3, 0x3
/* 80064A04 00060844 7C B3 28 AE */ lbzx r5, r19, r5
/* 80064A08 00060848 20 83 00 09 */ subfic r4, r3, 0x9
/* 80064A0C 0006084C 98 BF 0B 0E */ stb r5, 0xb0e(r31)
/* 80064A10 00060850 38 60 00 04 */ li r3, 0x4
/* 80064A14 00060854 7C 93 20 AE */ lbzx r4, r19, r4
/* 80064A18 00060858 20 A3 00 09 */ subfic r5, r3, 0x9
/* 80064A1C 0006085C 98 9F 0B 0F */ stb r4, 0xb0f(r31)
/* 80064A20 00060860 38 60 00 05 */ li r3, 0x5
/* 80064A24 00060864 7D 13 28 AE */ lbzx r8, r19, r5
/* 80064A28 00060868 21 83 00 09 */ subfic r12, r3, 0x9
/* 80064A2C 0006086C 99 1F 0B 10 */ stb r8, 0xb10(r31)
/* 80064A30 00060870 38 80 00 06 */ li r4, 0x6
/* 80064A34 00060874 7C B3 60 AE */ lbzx r5, r19, r12
/* 80064A38 00060878 20 84 00 09 */ subfic r4, r4, 0x9
/* 80064A3C 0006087C 98 BF 0B 11 */ stb r5, 0xb11(r31)
/* 80064A40 00060880 38 60 00 07 */ li r3, 0x7
/* 80064A44 00060884 7C 93 20 AE */ lbzx r4, r19, r4
/* 80064A48 00060888 20 A3 00 09 */ subfic r5, r3, 0x9
/* 80064A4C 0006088C 98 9F 0B 12 */ stb r4, 0xb12(r31)
/* 80064A50 00060890 38 60 00 08 */ li r3, 0x8
/* 80064A54 00060894 7C B3 28 AE */ lbzx r5, r19, r5
/* 80064A58 00060898 20 83 00 09 */ subfic r4, r3, 0x9
/* 80064A5C 0006089C 98 BF 0B 13 */ stb r5, 0xb13(r31)
/* 80064A60 000608A0 38 60 00 09 */ li r3, 0x9
/* 80064A64 000608A4 7C 93 20 AE */ lbzx r4, r19, r4
/* 80064A68 000608A8 20 A3 00 09 */ subfic r5, r3, 0x9
/* 80064A6C 000608AC 98 9F 0B 14 */ stb r4, 0xb14(r31)
/* 80064A70 000608B0 38 7F 0B 1C */ addi r3, r31, 0xb1c
/* 80064A74 000608B4 7D 13 28 AE */ lbzx r8, r19, r5
/* 80064A78 000608B8 38 81 00 10 */ addi r4, r1, 0x10
/* 80064A7C 000608BC 99 1F 0B 15 */ stb r8, 0xb15(r31)
/* 80064A80 000608C0 38 A0 00 08 */ li r5, 0x8
/* 80064A84 000608C4 99 7F 0B 16 */ stb r11, 0xb16(r31)
/* 80064A88 000608C8 99 5F 0B 17 */ stb r10, 0xb17(r31)
/* 80064A8C 000608CC 99 3F 0B 18 */ stb r9, 0xb18(r31)
/* 80064A90 000608D0 98 1F 0B 19 */ stb r0, 0xb19(r31)
/* 80064A94 000608D4 98 FF 0B 1A */ stb r7, 0xb1a(r31)
/* 80064A98 000608D8 98 DF 0B 1B */ stb r6, 0xb1b(r31)
2022-10-16 16:31:36 +00:00
/* 80064A9C 000608DC 4B F9 F5 65 */ bl memcpy
2022-10-16 16:05:58 +00:00
/* 80064AA0 000608E0 38 7F 0B 24 */ addi r3, r31, 0xb24
/* 80064AA4 000608E4 38 81 00 08 */ addi r4, r1, 0x8
/* 80064AA8 000608E8 38 A0 00 08 */ li r5, 0x8
2022-10-16 16:31:36 +00:00
/* 80064AAC 000608EC 4B F9 F5 55 */ bl memcpy
2022-10-16 16:05:58 +00:00
/* 80064AB0 000608F0 80 61 00 24 */ lwz r3, 0x24(r1)
2022-10-16 16:31:36 +00:00
/* 80064AB4 000608F4 4B FB CD AD */ bl OSRestoreInterrupts
2022-10-16 16:05:58 +00:00
/* 80064AB8 000608F8 39 61 00 90 */ addi r11, r1, 0x90
2022-10-16 16:31:36 +00:00
/* 80064ABC 000608FC 4B FA 28 99 */ bl __restore_gpr
2022-10-16 16:05:58 +00:00
/* 80064AC0 00060900 80 01 00 94 */ lwz r0, 0x94(r1)
/* 80064AC4 00060904 7C 08 03 A6 */ mtlr r0
/* 80064AC8 00060908 38 21 00 90 */ addi r1, r1, 0x90
/* 80064ACC 0006090C 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global WPADiDecode
WPADiDecode:
2022-10-16 16:05:58 +00:00
/* 80064AD0 00060910 94 21 FF E0 */ stwu r1, -0x20(r1)
2022-10-16 16:31:36 +00:00
/* 80064AD4 00060914 3C E0 80 4C */ lis r7, __rvl_p_wpadcb@ha
2022-10-16 16:05:58 +00:00
/* 80064AD8 00060918 54 60 10 3A */ slwi r0, r3, 2
/* 80064ADC 0006091C 93 E1 00 1C */ stw r31, 0x1c(r1)
2022-10-16 16:31:36 +00:00
/* 80064AE0 00060920 38 E7 1A 50 */ addi r7, r7, __rvl_p_wpadcb@l
2022-10-16 16:05:58 +00:00
/* 80064AE4 00060924 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80064AE8 00060928 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80064AEC 0006092C 93 81 00 10 */ stw r28, 0x10(r1)
/* 80064AF0 00060930 7C E7 00 2E */ lwzx r7, r7, r0
/* 80064AF4 00060934 88 67 0B 85 */ lbz r3, 0xb85(r7)
/* 80064AF8 00060938 38 03 00 FE */ addi r0, r3, 0xfe
/* 80064AFC 0006093C 54 00 06 3E */ clrlwi r0, r0, 24
/* 80064B00 00060940 28 00 00 01 */ cmplwi r0, 0x1
/* 80064B04 00060944 41 81 02 98 */ bgt lbl_80064D9C
/* 80064B08 00060948 2C 05 00 00 */ cmpwi r5, 0x0
/* 80064B0C 0006094C 39 00 00 00 */ li r8, 0x0
/* 80064B10 00060950 41 82 02 8C */ beq lbl_80064D9C
/* 80064B14 00060954 28 05 00 08 */ cmplwi r5, 0x8
/* 80064B18 00060958 3C 65 00 01 */ addis r3, r5, 0x1
/* 80064B1C 0006095C 38 63 FF F8 */ addi r3, r3, -0x8
/* 80064B20 00060960 40 81 02 24 */ ble lbl_80064D44
/* 80064B24 00060964 54 63 04 3E */ clrlwi r3, r3, 16
/* 80064B28 00060968 38 03 00 07 */ addi r0, r3, 0x7
/* 80064B2C 0006096C 54 00 E8 FE */ srwi r0, r0, 3
/* 80064B30 00060970 7C 09 03 A6 */ mtctr r0
/* 80064B34 00060974 28 03 00 00 */ cmplwi r3, 0x0
/* 80064B38 00060978 40 81 02 0C */ ble lbl_80064D44
.global lbl_80064B3C
lbl_80064B3C:
/* 80064B3C 0006097C 55 1D 04 3E */ clrlwi r29, r8, 16
/* 80064B40 00060980 38 68 00 01 */ addi r3, r8, 0x1
/* 80064B44 00060984 7D 66 EA 14 */ add r11, r6, r29
/* 80064B48 00060988 38 08 00 02 */ addi r0, r8, 0x2
/* 80064B4C 0006098C 55 6A E8 04 */ slwi r10, r11, 29
/* 80064B50 00060990 54 69 04 3E */ clrlwi r9, r3, 16
/* 80064B54 00060994 55 6C 0F FE */ srwi r12, r11, 31
/* 80064B58 00060998 7C 64 EA 14 */ add r3, r4, r29
/* 80064B5C 0006099C 7D 4C 50 50 */ subf r10, r12, r10
/* 80064B60 000609A0 7D 66 4A 14 */ add r11, r6, r9
/* 80064B64 000609A4 55 4A 18 3E */ rotlwi r10, r10, 3
/* 80064B68 000609A8 54 09 04 3E */ clrlwi r9, r0, 16
/* 80064B6C 000609AC 7D 4A 62 14 */ add r10, r10, r12
/* 80064B70 000609B0 38 08 00 03 */ addi r0, r8, 0x3
/* 80064B74 000609B4 55 4C 06 3E */ clrlwi r12, r10, 24
/* 80064B78 000609B8 8B E3 00 00 */ lbz r31, 0x0(r3)
/* 80064B7C 000609BC 7F A7 62 14 */ add r29, r7, r12
/* 80064B80 000609C0 55 6A E8 04 */ slwi r10, r11, 29
/* 80064B84 000609C4 8B DD 0B 24 */ lbz r30, 0xb24(r29)
/* 80064B88 000609C8 55 6C 0F FE */ srwi r12, r11, 31
/* 80064B8C 000609CC 7D 4C 50 50 */ subf r10, r12, r10
/* 80064B90 000609D0 8B BD 0B 1C */ lbz r29, 0xb1c(r29)
/* 80064B94 000609D4 55 4B 18 3E */ rotlwi r11, r10, 3
/* 80064B98 000609D8 7F FE F2 78 */ xor r30, r31, r30
/* 80064B9C 000609DC 7D 46 4A 14 */ add r10, r6, r9
/* 80064BA0 000609E0 54 00 04 3E */ clrlwi r0, r0, 16
/* 80064BA4 000609E4 7D 2B 62 14 */ add r9, r11, r12
/* 80064BA8 000609E8 7D 7D F2 14 */ add r11, r29, r30
/* 80064BAC 000609EC 99 63 00 00 */ stb r11, 0x0(r3)
/* 80064BB0 000609F0 55 2B 06 3E */ clrlwi r11, r9, 24
/* 80064BB4 000609F4 7F A7 5A 14 */ add r29, r7, r11
/* 80064BB8 000609F8 55 49 E8 04 */ slwi r9, r10, 29
/* 80064BBC 000609FC 55 4B 0F FE */ srwi r11, r10, 31
/* 80064BC0 00060A00 8B C3 00 01 */ lbz r30, 0x1(r3)
/* 80064BC4 00060A04 7D 4B 48 50 */ subf r10, r11, r9
/* 80064BC8 00060A08 7D 26 02 14 */ add r9, r6, r0
/* 80064BCC 00060A0C 55 40 18 3E */ rotlwi r0, r10, 3
/* 80064BD0 00060A10 89 9D 0B 24 */ lbz r12, 0xb24(r29)
/* 80064BD4 00060A14 7D 40 5A 14 */ add r10, r0, r11
/* 80064BD8 00060A18 8B FD 0B 1C */ lbz r31, 0xb1c(r29)
/* 80064BDC 00060A1C 38 08 00 04 */ addi r0, r8, 0x4
/* 80064BE0 00060A20 7F CB 62 78 */ xor r11, r30, r12
/* 80064BE4 00060A24 55 5C 06 3E */ clrlwi r28, r10, 24
/* 80064BE8 00060A28 54 00 04 3E */ clrlwi r0, r0, 16
/* 80064BEC 00060A2C 7D 46 02 14 */ add r10, r6, r0
/* 80064BF0 00060A30 7F A7 E2 14 */ add r29, r7, r28
/* 80064BF4 00060A34 7C 1F 5A 14 */ add r0, r31, r11
/* 80064BF8 00060A38 98 03 00 01 */ stb r0, 0x1(r3)
/* 80064BFC 00060A3C 55 20 E8 04 */ slwi r0, r9, 29
/* 80064C00 00060A40 55 2B 0F FE */ srwi r11, r9, 31
/* 80064C04 00060A44 7D 2B 00 50 */ subf r9, r11, r0
/* 80064C08 00060A48 8B C3 00 02 */ lbz r30, 0x2(r3)
/* 80064C0C 00060A4C 38 08 00 05 */ addi r0, r8, 0x5
/* 80064C10 00060A50 89 9D 0B 24 */ lbz r12, 0xb24(r29)
/* 80064C14 00060A54 55 29 18 3E */ rotlwi r9, r9, 3
/* 80064C18 00060A58 7D 29 5A 14 */ add r9, r9, r11
/* 80064C1C 00060A5C 54 00 04 3E */ clrlwi r0, r0, 16
/* 80064C20 00060A60 55 3F 06 3E */ clrlwi r31, r9, 24
/* 80064C24 00060A64 89 7D 0B 1C */ lbz r11, 0xb1c(r29)
/* 80064C28 00060A68 7D 26 02 14 */ add r9, r6, r0
/* 80064C2C 00060A6C 7F C0 62 78 */ xor r0, r30, r12
/* 80064C30 00060A70 7C 0B 02 14 */ add r0, r11, r0
/* 80064C34 00060A74 98 03 00 02 */ stb r0, 0x2(r3)
/* 80064C38 00060A78 7F A7 FA 14 */ add r29, r7, r31
/* 80064C3C 00060A7C 55 40 E8 04 */ slwi r0, r10, 29
/* 80064C40 00060A80 55 4A 0F FE */ srwi r10, r10, 31
/* 80064C44 00060A84 7C 0A 00 50 */ subf r0, r10, r0
/* 80064C48 00060A88 89 83 00 03 */ lbz r12, 0x3(r3)
/* 80064C4C 00060A8C 89 7D 0B 24 */ lbz r11, 0xb24(r29)
/* 80064C50 00060A90 54 00 18 3E */ rotlwi r0, r0, 3
/* 80064C54 00060A94 7D 40 52 14 */ add r10, r0, r10
/* 80064C58 00060A98 8B DD 0B 1C */ lbz r30, 0xb1c(r29)
/* 80064C5C 00060A9C 7D 8B 5A 78 */ xor r11, r12, r11
/* 80064C60 00060AA0 55 20 E8 04 */ slwi r0, r9, 29
/* 80064C64 00060AA4 7D 7E 5A 14 */ add r11, r30, r11
/* 80064C68 00060AA8 99 63 00 03 */ stb r11, 0x3(r3)
/* 80064C6C 00060AAC 55 4A 06 3E */ clrlwi r10, r10, 24
/* 80064C70 00060AB0 55 29 0F FE */ srwi r9, r9, 31
/* 80064C74 00060AB4 7D 87 52 14 */ add r12, r7, r10
/* 80064C78 00060AB8 89 63 00 04 */ lbz r11, 0x4(r3)
/* 80064C7C 00060ABC 89 4C 0B 24 */ lbz r10, 0xb24(r12)
/* 80064C80 00060AC0 7C 09 00 50 */ subf r0, r9, r0
/* 80064C84 00060AC4 54 00 18 3E */ rotlwi r0, r0, 3
/* 80064C88 00060AC8 89 8C 0B 1C */ lbz r12, 0xb1c(r12)
/* 80064C8C 00060ACC 7D 6A 52 78 */ xor r10, r11, r10
/* 80064C90 00060AD0 7D 4C 52 14 */ add r10, r12, r10
/* 80064C94 00060AD4 7C 00 4A 14 */ add r0, r0, r9
/* 80064C98 00060AD8 99 43 00 04 */ stb r10, 0x4(r3)
/* 80064C9C 00060ADC 54 09 06 3E */ clrlwi r9, r0, 24
/* 80064CA0 00060AE0 38 08 00 06 */ addi r0, r8, 0x6
/* 80064CA4 00060AE4 7F A7 4A 14 */ add r29, r7, r9
/* 80064CA8 00060AE8 54 09 04 3E */ clrlwi r9, r0, 16
/* 80064CAC 00060AEC 8B E3 00 05 */ lbz r31, 0x5(r3)
/* 80064CB0 00060AF0 7D 46 4A 14 */ add r10, r6, r9
/* 80064CB4 00060AF4 38 08 00 07 */ addi r0, r8, 0x7
/* 80064CB8 00060AF8 55 49 E8 04 */ slwi r9, r10, 29
/* 80064CBC 00060AFC 89 9D 0B 24 */ lbz r12, 0xb24(r29)
/* 80064CC0 00060B00 55 4B 0F FE */ srwi r11, r10, 31
/* 80064CC4 00060B04 54 00 04 3E */ clrlwi r0, r0, 16
/* 80064CC8 00060B08 7D 2B 48 50 */ subf r9, r11, r9
/* 80064CCC 00060B0C 8B DD 0B 1C */ lbz r30, 0xb1c(r29)
/* 80064CD0 00060B10 55 2A 18 3E */ rotlwi r10, r9, 3
/* 80064CD4 00060B14 7F EC 62 78 */ xor r12, r31, r12
/* 80064CD8 00060B18 7D 26 02 14 */ add r9, r6, r0
/* 80064CDC 00060B1C 39 08 00 08 */ addi r8, r8, 0x8
/* 80064CE0 00060B20 7C 0A 5A 14 */ add r0, r10, r11
/* 80064CE4 00060B24 7D 5E 62 14 */ add r10, r30, r12
/* 80064CE8 00060B28 99 43 00 05 */ stb r10, 0x5(r3)
/* 80064CEC 00060B2C 54 0A 06 3E */ clrlwi r10, r0, 24
/* 80064CF0 00060B30 55 20 E8 04 */ slwi r0, r9, 29
/* 80064CF4 00060B34 55 29 0F FE */ srwi r9, r9, 31
/* 80064CF8 00060B38 7D 87 52 14 */ add r12, r7, r10
/* 80064CFC 00060B3C 89 63 00 06 */ lbz r11, 0x6(r3)
/* 80064D00 00060B40 7C 09 00 50 */ subf r0, r9, r0
/* 80064D04 00060B44 89 4C 0B 24 */ lbz r10, 0xb24(r12)
/* 80064D08 00060B48 54 00 18 3E */ rotlwi r0, r0, 3
/* 80064D0C 00060B4C 89 8C 0B 1C */ lbz r12, 0xb1c(r12)
/* 80064D10 00060B50 7C 00 4A 14 */ add r0, r0, r9
/* 80064D14 00060B54 7D 69 52 78 */ xor r9, r11, r10
/* 80064D18 00060B58 7D 2C 4A 14 */ add r9, r12, r9
/* 80064D1C 00060B5C 99 23 00 06 */ stb r9, 0x6(r3)
/* 80064D20 00060B60 54 00 06 3E */ clrlwi r0, r0, 24
/* 80064D24 00060B64 7D 47 02 14 */ add r10, r7, r0
/* 80064D28 00060B68 89 23 00 07 */ lbz r9, 0x7(r3)
/* 80064D2C 00060B6C 88 0A 0B 24 */ lbz r0, 0xb24(r10)
/* 80064D30 00060B70 89 4A 0B 1C */ lbz r10, 0xb1c(r10)
/* 80064D34 00060B74 7D 20 02 78 */ xor r0, r9, r0
/* 80064D38 00060B78 7C 0A 02 14 */ add r0, r10, r0
/* 80064D3C 00060B7C 98 03 00 07 */ stb r0, 0x7(r3)
/* 80064D40 00060B80 42 00 FD FC */ bdnz lbl_80064B3C
.global lbl_80064D44
lbl_80064D44:
/* 80064D44 00060B84 55 03 04 3E */ clrlwi r3, r8, 16
/* 80064D48 00060B88 7C 03 28 50 */ subf r0, r3, r5
/* 80064D4C 00060B8C 7C 09 03 A6 */ mtctr r0
/* 80064D50 00060B90 7C 03 28 40 */ cmplw r3, r5
/* 80064D54 00060B94 40 80 00 48 */ bge lbl_80064D9C
.global lbl_80064D58
lbl_80064D58:
/* 80064D58 00060B98 55 09 04 3E */ clrlwi r9, r8, 16
/* 80064D5C 00060B9C 39 08 00 01 */ addi r8, r8, 0x1
/* 80064D60 00060BA0 7C A6 4A 14 */ add r5, r6, r9
/* 80064D64 00060BA4 7C 64 48 AE */ lbzx r3, r4, r9
/* 80064D68 00060BA8 54 A0 E8 04 */ slwi r0, r5, 29
/* 80064D6C 00060BAC 54 A5 0F FE */ srwi r5, r5, 31
/* 80064D70 00060BB0 7C 05 00 50 */ subf r0, r5, r0
/* 80064D74 00060BB4 54 00 18 3E */ rotlwi r0, r0, 3
/* 80064D78 00060BB8 7C 00 2A 14 */ add r0, r0, r5
/* 80064D7C 00060BBC 54 00 06 3E */ clrlwi r0, r0, 24
/* 80064D80 00060BC0 7C A7 02 14 */ add r5, r7, r0
/* 80064D84 00060BC4 88 05 0B 24 */ lbz r0, 0xb24(r5)
/* 80064D88 00060BC8 88 A5 0B 1C */ lbz r5, 0xb1c(r5)
/* 80064D8C 00060BCC 7C 60 02 78 */ xor r0, r3, r0
/* 80064D90 00060BD0 7C 05 02 14 */ add r0, r5, r0
/* 80064D94 00060BD4 7C 04 49 AE */ stbx r0, r4, r9
/* 80064D98 00060BD8 42 00 FF C0 */ bdnz lbl_80064D58
.global lbl_80064D9C
lbl_80064D9C:
/* 80064D9C 00060BDC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80064DA0 00060BE0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80064DA4 00060BE4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80064DA8 00060BE8 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80064DAC 00060BEC 38 21 00 20 */ addi r1, r1, 0x20
/* 80064DB0 00060BF0 4E 80 00 20 */ blr
/* 80064DB4 00060BF4 00 00 00 00 */ .4byte 0x00000000
/* 80064DB8 00060BF8 00 00 00 00 */ .4byte 0x00000000
/* 80064DBC 00060BFC 00 00 00 00 */ .4byte 0x00000000