donut-decomp/asm/libMobiclip/Bignum.s

1222 lines
54 KiB
ArmAsm
Raw Permalink 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 Reduce__6BignumFRC6BignumRC6BignumP6Bignum
Reduce__6BignumFRC6BignumRC6BignumP6Bignum:
2022-10-16 16:05:58 +00:00
/* 8014D200 00149040 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8014D204 00149044 7C 08 02 A6 */ mflr r0
/* 8014D208 00149048 90 01 00 34 */ stw r0, 0x34(r1)
/* 8014D20C 0014904C 39 61 00 30 */ addi r11, r1, 0x30
/* 8014D210 00149050 4B EB A1 25 */ bl lbl_80007334
/* 8014D214 00149054 83 23 00 04 */ lwz r25, 0x4(r3)
/* 8014D218 00149058 7C DD 33 78 */ mr r29, r6
/* 8014D21C 0014905C 80 06 00 08 */ lwz r0, 0x8(r6)
/* 8014D220 00149060 7C 7A 1B 78 */ mr r26, r3
/* 8014D224 00149064 83 E4 00 04 */ lwz r31, 0x4(r4)
/* 8014D228 00149068 7C 9B 23 78 */ mr r27, r4
/* 8014D22C 0014906C 7C 19 00 00 */ cmpw r25, r0
/* 8014D230 00149070 7C BC 2B 78 */ mr r28, r5
/* 8014D234 00149074 3B C6 00 10 */ addi r30, r6, 0x10
/* 8014D238 00149078 40 81 00 28 */ ble lbl_8014D260
/* 8014D23C 0014907C 80 66 00 00 */ lwz r3, 0x0(r6)
/* 8014D240 00149080 2C 03 00 00 */ cmpwi r3, 0x0
/* 8014D244 00149084 41 82 00 08 */ beq lbl_8014D24C
2022-10-16 16:31:36 +00:00
/* 8014D248 00149088 48 00 65 89 */ bl MOiFree__FPv
2022-10-16 16:05:58 +00:00
.global lbl_8014D24C
lbl_8014D24C:
/* 8014D24C 0014908C 38 19 00 02 */ addi r0, r25, 0x2
/* 8014D250 00149090 90 1D 00 08 */ stw r0, 0x8(r29)
/* 8014D254 00149094 54 03 10 3A */ slwi r3, r0, 2
2022-10-16 16:31:36 +00:00
/* 8014D258 00149098 48 00 64 C9 */ bl MOiAlloc__FUi
2022-10-16 16:05:58 +00:00
/* 8014D25C 0014909C 90 7D 00 00 */ stw r3, 0x0(r29)
.global lbl_8014D260
lbl_8014D260:
/* 8014D260 001490A0 93 3D 00 04 */ stw r25, 0x4(r29)
/* 8014D264 001490A4 57 25 10 3A */ slwi r5, r25, 2
/* 8014D268 001490A8 48 00 00 18 */ b lbl_8014D280
/* 8014D26C 001490AC 60 00 00 00 */ nop
.global lbl_8014D270
lbl_8014D270:
/* 8014D270 001490B0 80 9A 00 00 */ lwz r4, 0x0(r26)
/* 8014D274 001490B4 80 7D 00 00 */ lwz r3, 0x0(r29)
/* 8014D278 001490B8 7C 04 28 2E */ lwzx r0, r4, r5
/* 8014D27C 001490BC 7C 03 29 2E */ stwx r0, r3, r5
.global lbl_8014D280
lbl_8014D280:
/* 8014D280 001490C0 2C 19 00 00 */ cmpwi r25, 0x0
/* 8014D284 001490C4 3B 39 FF FF */ addi r25, r25, -0x1
/* 8014D288 001490C8 38 A5 FF FC */ addi r5, r5, -0x4
/* 8014D28C 001490CC 40 82 FF E4 */ bne lbl_8014D270
/* 8014D290 001490D0 80 7D 00 04 */ lwz r3, 0x4(r29)
/* 8014D294 001490D4 38 9F FF FF */ addi r4, r31, -0x1
/* 8014D298 001490D8 80 BD 00 00 */ lwz r5, 0x0(r29)
/* 8014D29C 001490DC 54 80 10 3A */ slwi r0, r4, 2
/* 8014D2A0 001490E0 7C 64 18 51 */ subf. r3, r4, r3
/* 8014D2A4 001490E4 7C 85 02 14 */ add r4, r5, r0
/* 8014D2A8 001490E8 90 7D 00 04 */ stw r3, 0x4(r29)
/* 8014D2AC 001490EC 41 82 00 80 */ beq lbl_8014D32C
/* 8014D2B0 001490F0 54 60 E8 FF */ srwi. r0, r3, 3
/* 8014D2B4 001490F4 7C 09 03 A6 */ mtctr r0
/* 8014D2B8 001490F8 41 82 00 58 */ beq lbl_8014D310
.global lbl_8014D2BC
lbl_8014D2BC:
/* 8014D2BC 001490FC 80 04 00 00 */ lwz r0, 0x0(r4)
/* 8014D2C0 00149100 90 05 00 00 */ stw r0, 0x0(r5)
/* 8014D2C4 00149104 80 04 00 04 */ lwz r0, 0x4(r4)
/* 8014D2C8 00149108 90 05 00 04 */ stw r0, 0x4(r5)
/* 8014D2CC 0014910C 80 04 00 08 */ lwz r0, 0x8(r4)
/* 8014D2D0 00149110 90 05 00 08 */ stw r0, 0x8(r5)
/* 8014D2D4 00149114 80 04 00 0C */ lwz r0, 0xc(r4)
/* 8014D2D8 00149118 90 05 00 0C */ stw r0, 0xc(r5)
/* 8014D2DC 0014911C 80 04 00 10 */ lwz r0, 0x10(r4)
/* 8014D2E0 00149120 90 05 00 10 */ stw r0, 0x10(r5)
/* 8014D2E4 00149124 80 04 00 14 */ lwz r0, 0x14(r4)
/* 8014D2E8 00149128 90 05 00 14 */ stw r0, 0x14(r5)
/* 8014D2EC 0014912C 80 04 00 18 */ lwz r0, 0x18(r4)
/* 8014D2F0 00149130 90 05 00 18 */ stw r0, 0x18(r5)
/* 8014D2F4 00149134 80 04 00 1C */ lwz r0, 0x1c(r4)
/* 8014D2F8 00149138 38 84 00 20 */ addi r4, r4, 0x20
/* 8014D2FC 0014913C 90 05 00 1C */ stw r0, 0x1c(r5)
/* 8014D300 00149140 38 A5 00 20 */ addi r5, r5, 0x20
/* 8014D304 00149144 42 00 FF B8 */ bdnz lbl_8014D2BC
/* 8014D308 00149148 70 63 00 07 */ andi. r3, r3, 0x7
/* 8014D30C 0014914C 41 82 00 20 */ beq lbl_8014D32C
.global lbl_8014D310
lbl_8014D310:
/* 8014D310 00149150 7C 69 03 A6 */ mtctr r3
/* 8014D314 00149154 60 00 00 00 */ nop
.global lbl_8014D318
lbl_8014D318:
/* 8014D318 00149158 80 04 00 00 */ lwz r0, 0x0(r4)
/* 8014D31C 0014915C 38 84 00 04 */ addi r4, r4, 0x4
/* 8014D320 00149160 90 05 00 00 */ stw r0, 0x0(r5)
/* 8014D324 00149164 38 A5 00 04 */ addi r5, r5, 0x4
/* 8014D328 00149168 42 00 FF F0 */ bdnz lbl_8014D318
.global lbl_8014D32C
lbl_8014D32C:
/* 8014D32C 0014916C 7F C3 F3 78 */ mr r3, r30
/* 8014D330 00149170 7F A4 EB 78 */ mr r4, r29
/* 8014D334 00149174 7F 85 E3 78 */ mr r5, r28
2022-10-16 16:31:36 +00:00
/* 8014D338 00149178 48 00 06 79 */ bl SetMul__6BignumFRC6BignumRC6Bignum
2022-10-16 16:05:58 +00:00
/* 8014D33C 0014917C 80 7E 00 04 */ lwz r3, 0x4(r30)
/* 8014D340 00149180 38 9F 00 01 */ addi r4, r31, 0x1
/* 8014D344 00149184 80 BE 00 00 */ lwz r5, 0x0(r30)
/* 8014D348 00149188 54 80 10 3A */ slwi r0, r4, 2
/* 8014D34C 0014918C 7C 64 18 51 */ subf. r3, r4, r3
/* 8014D350 00149190 7C 85 02 14 */ add r4, r5, r0
/* 8014D354 00149194 90 7E 00 04 */ stw r3, 0x4(r30)
/* 8014D358 00149198 41 82 00 7C */ beq lbl_8014D3D4
/* 8014D35C 0014919C 54 60 E8 FF */ srwi. r0, r3, 3
/* 8014D360 001491A0 7C 09 03 A6 */ mtctr r0
/* 8014D364 001491A4 41 82 00 58 */ beq lbl_8014D3BC
.global lbl_8014D368
lbl_8014D368:
/* 8014D368 001491A8 80 04 00 00 */ lwz r0, 0x0(r4)
/* 8014D36C 001491AC 90 05 00 00 */ stw r0, 0x0(r5)
/* 8014D370 001491B0 80 04 00 04 */ lwz r0, 0x4(r4)
/* 8014D374 001491B4 90 05 00 04 */ stw r0, 0x4(r5)
/* 8014D378 001491B8 80 04 00 08 */ lwz r0, 0x8(r4)
/* 8014D37C 001491BC 90 05 00 08 */ stw r0, 0x8(r5)
/* 8014D380 001491C0 80 04 00 0C */ lwz r0, 0xc(r4)
/* 8014D384 001491C4 90 05 00 0C */ stw r0, 0xc(r5)
/* 8014D388 001491C8 80 04 00 10 */ lwz r0, 0x10(r4)
/* 8014D38C 001491CC 90 05 00 10 */ stw r0, 0x10(r5)
/* 8014D390 001491D0 80 04 00 14 */ lwz r0, 0x14(r4)
/* 8014D394 001491D4 90 05 00 14 */ stw r0, 0x14(r5)
/* 8014D398 001491D8 80 04 00 18 */ lwz r0, 0x18(r4)
/* 8014D39C 001491DC 90 05 00 18 */ stw r0, 0x18(r5)
/* 8014D3A0 001491E0 80 04 00 1C */ lwz r0, 0x1c(r4)
/* 8014D3A4 001491E4 38 84 00 20 */ addi r4, r4, 0x20
/* 8014D3A8 001491E8 90 05 00 1C */ stw r0, 0x1c(r5)
/* 8014D3AC 001491EC 38 A5 00 20 */ addi r5, r5, 0x20
/* 8014D3B0 001491F0 42 00 FF B8 */ bdnz lbl_8014D368
/* 8014D3B4 001491F4 70 63 00 07 */ andi. r3, r3, 0x7
/* 8014D3B8 001491F8 41 82 00 1C */ beq lbl_8014D3D4
.global lbl_8014D3BC
lbl_8014D3BC:
/* 8014D3BC 001491FC 7C 69 03 A6 */ mtctr r3
.global lbl_8014D3C0
lbl_8014D3C0:
/* 8014D3C0 00149200 80 04 00 00 */ lwz r0, 0x0(r4)
/* 8014D3C4 00149204 38 84 00 04 */ addi r4, r4, 0x4
/* 8014D3C8 00149208 90 05 00 00 */ stw r0, 0x0(r5)
/* 8014D3CC 0014920C 38 A5 00 04 */ addi r5, r5, 0x4
/* 8014D3D0 00149210 42 00 FF F0 */ bdnz lbl_8014D3C0
.global lbl_8014D3D4
lbl_8014D3D4:
/* 8014D3D4 00149214 7F A3 EB 78 */ mr r3, r29
/* 8014D3D8 00149218 7F C4 F3 78 */ mr r4, r30
/* 8014D3DC 0014921C 7F 65 DB 78 */ mr r5, r27
2022-10-16 16:31:36 +00:00
/* 8014D3E0 00149220 48 00 05 D1 */ bl SetMul__6BignumFRC6BignumRC6Bignum
2022-10-16 16:05:58 +00:00
/* 8014D3E4 00149224 38 1F 00 01 */ addi r0, r31, 0x1
/* 8014D3E8 00149228 38 A0 00 00 */ li r5, 0x0
/* 8014D3EC 0014922C 48 00 00 1C */ b lbl_8014D408
.global lbl_8014D3F0
lbl_8014D3F0:
/* 8014D3F0 00149230 80 7D 00 04 */ lwz r3, 0x4(r29)
/* 8014D3F4 00149234 80 9D 00 00 */ lwz r4, 0x0(r29)
/* 8014D3F8 00149238 38 63 FF FF */ addi r3, r3, -0x1
/* 8014D3FC 0014923C 90 7D 00 04 */ stw r3, 0x4(r29)
/* 8014D400 00149240 54 63 10 3A */ slwi r3, r3, 2
/* 8014D404 00149244 7C A4 19 2E */ stwx r5, r4, r3
.global lbl_8014D408
lbl_8014D408:
/* 8014D408 00149248 80 7D 00 04 */ lwz r3, 0x4(r29)
/* 8014D40C 0014924C 7C 03 00 00 */ cmpw r3, r0
/* 8014D410 00149250 41 81 FF E0 */ bgt lbl_8014D3F0
/* 8014D414 00149254 38 1F 00 01 */ addi r0, r31, 0x1
/* 8014D418 00149258 38 A0 00 00 */ li r5, 0x0
/* 8014D41C 0014925C 48 00 00 1C */ b lbl_8014D438
.global lbl_8014D420
lbl_8014D420:
/* 8014D420 00149260 80 7A 00 04 */ lwz r3, 0x4(r26)
/* 8014D424 00149264 80 9A 00 00 */ lwz r4, 0x0(r26)
/* 8014D428 00149268 38 63 FF FF */ addi r3, r3, -0x1
/* 8014D42C 0014926C 90 7A 00 04 */ stw r3, 0x4(r26)
/* 8014D430 00149270 54 63 10 3A */ slwi r3, r3, 2
/* 8014D434 00149274 7C A4 19 2E */ stwx r5, r4, r3
.global lbl_8014D438
lbl_8014D438:
/* 8014D438 00149278 80 7A 00 04 */ lwz r3, 0x4(r26)
/* 8014D43C 0014927C 7C 03 00 00 */ cmpw r3, r0
/* 8014D440 00149280 41 81 FF E0 */ bgt lbl_8014D420
/* 8014D444 00149284 80 DE 00 00 */ lwz r6, 0x0(r30)
/* 8014D448 00149288 7F 43 D3 78 */ mr r3, r26
/* 8014D44C 0014928C 80 1A 00 00 */ lwz r0, 0x0(r26)
/* 8014D450 00149290 7F C4 F3 78 */ mr r4, r30
/* 8014D454 00149294 90 1E 00 00 */ stw r0, 0x0(r30)
/* 8014D458 00149298 7F A5 EB 78 */ mr r5, r29
/* 8014D45C 0014929C 80 FE 00 04 */ lwz r7, 0x4(r30)
/* 8014D460 001492A0 80 1A 00 04 */ lwz r0, 0x4(r26)
/* 8014D464 001492A4 90 1E 00 04 */ stw r0, 0x4(r30)
/* 8014D468 001492A8 81 1E 00 08 */ lwz r8, 0x8(r30)
/* 8014D46C 001492AC 80 1A 00 08 */ lwz r0, 0x8(r26)
/* 8014D470 001492B0 90 1E 00 08 */ stw r0, 0x8(r30)
/* 8014D474 001492B4 81 3E 00 0C */ lwz r9, 0xc(r30)
/* 8014D478 001492B8 80 1A 00 0C */ lwz r0, 0xc(r26)
/* 8014D47C 001492BC 90 1E 00 0C */ stw r0, 0xc(r30)
/* 8014D480 001492C0 90 DA 00 00 */ stw r6, 0x0(r26)
/* 8014D484 001492C4 90 FA 00 04 */ stw r7, 0x4(r26)
/* 8014D488 001492C8 91 1A 00 08 */ stw r8, 0x8(r26)
/* 8014D48C 001492CC 91 3A 00 0C */ stw r9, 0xc(r26)
2022-10-16 16:31:36 +00:00
/* 8014D490 001492D0 48 00 00 F1 */ bl SetSub__6BignumFRC6BignumRC6Bignum
2022-10-16 16:05:58 +00:00
/* 8014D494 001492D4 80 1A 00 0C */ lwz r0, 0xc(r26)
/* 8014D498 001492D8 2C 00 00 00 */ cmpwi r0, 0x0
/* 8014D49C 001492DC 40 82 00 C4 */ bne lbl_8014D560
/* 8014D4A0 001492E0 3B C0 00 04 */ li r30, 0x4
/* 8014D4A4 001492E4 48 00 00 60 */ b lbl_8014D504
.global lbl_8014D4A8
lbl_8014D4A8:
/* 8014D4A8 001492E8 2C 1E 00 00 */ cmpwi r30, 0x0
/* 8014D4AC 001492EC 3B DE FF FF */ addi r30, r30, -0x1
/* 8014D4B0 001492F0 41 82 00 B0 */ beq lbl_8014D560
/* 8014D4B4 001492F4 7F A3 EB 78 */ mr r3, r29
/* 8014D4B8 001492F8 7F 44 D3 78 */ mr r4, r26
/* 8014D4BC 001492FC 7F 65 DB 78 */ mr r5, r27
2022-10-16 16:31:36 +00:00
/* 8014D4C0 00149300 48 00 03 61 */ bl SetSubAbsolute__6BignumFRC6BignumRC6Bignum
2022-10-16 16:05:58 +00:00
/* 8014D4C4 00149304 80 7D 00 00 */ lwz r3, 0x0(r29)
/* 8014D4C8 00149308 80 1A 00 00 */ lwz r0, 0x0(r26)
/* 8014D4CC 0014930C 90 1D 00 00 */ stw r0, 0x0(r29)
/* 8014D4D0 00149310 80 9D 00 04 */ lwz r4, 0x4(r29)
/* 8014D4D4 00149314 80 1A 00 04 */ lwz r0, 0x4(r26)
/* 8014D4D8 00149318 90 1D 00 04 */ stw r0, 0x4(r29)
/* 8014D4DC 0014931C 80 BD 00 08 */ lwz r5, 0x8(r29)
/* 8014D4E0 00149320 80 1A 00 08 */ lwz r0, 0x8(r26)
/* 8014D4E4 00149324 90 1D 00 08 */ stw r0, 0x8(r29)
/* 8014D4E8 00149328 80 DD 00 0C */ lwz r6, 0xc(r29)
/* 8014D4EC 0014932C 80 1A 00 0C */ lwz r0, 0xc(r26)
/* 8014D4F0 00149330 90 1D 00 0C */ stw r0, 0xc(r29)
/* 8014D4F4 00149334 90 7A 00 00 */ stw r3, 0x0(r26)
/* 8014D4F8 00149338 90 9A 00 04 */ stw r4, 0x4(r26)
/* 8014D4FC 0014933C 90 BA 00 08 */ stw r5, 0x8(r26)
/* 8014D500 00149340 90 DA 00 0C */ stw r6, 0xc(r26)
.global lbl_8014D504
lbl_8014D504:
/* 8014D504 00149344 80 DA 00 04 */ lwz r6, 0x4(r26)
/* 8014D508 00149348 80 1B 00 04 */ lwz r0, 0x4(r27)
/* 8014D50C 0014934C 7C 00 30 51 */ subf. r0, r0, r6
/* 8014D510 00149350 41 82 00 08 */ beq lbl_8014D518
/* 8014D514 00149354 48 00 00 44 */ b lbl_8014D558
.global lbl_8014D518
lbl_8014D518:
/* 8014D518 00149358 54 C5 10 3A */ slwi r5, r6, 2
/* 8014D51C 0014935C 48 00 00 2C */ b lbl_8014D548
.global lbl_8014D520
lbl_8014D520:
/* 8014D520 00149360 80 9A 00 00 */ lwz r4, 0x0(r26)
/* 8014D524 00149364 80 7B 00 00 */ lwz r3, 0x0(r27)
/* 8014D528 00149368 7C 84 28 2E */ lwzx r4, r4, r5
/* 8014D52C 0014936C 7C 03 28 2E */ lwzx r0, r3, r5
/* 8014D530 00149370 7C 04 00 40 */ cmplw r4, r0
/* 8014D534 00149374 41 82 00 14 */ beq lbl_8014D548
/* 8014D538 00149378 38 00 FF FF */ li r0, -0x1
/* 8014D53C 0014937C 40 81 00 1C */ ble lbl_8014D558
/* 8014D540 00149380 38 00 00 01 */ li r0, 0x1
/* 8014D544 00149384 48 00 00 14 */ b lbl_8014D558
.global lbl_8014D548
lbl_8014D548:
/* 8014D548 00149388 34 C6 FF FF */ addic. r6, r6, -0x1
/* 8014D54C 0014938C 38 A5 FF FC */ addi r5, r5, -0x4
/* 8014D550 00149390 40 80 FF D0 */ bge lbl_8014D520
/* 8014D554 00149394 38 00 00 00 */ li r0, 0x0
.global lbl_8014D558
lbl_8014D558:
/* 8014D558 00149398 2C 00 00 00 */ cmpwi r0, 0x0
/* 8014D55C 0014939C 40 80 FF 4C */ bge lbl_8014D4A8
.global lbl_8014D560
lbl_8014D560:
/* 8014D560 001493A0 39 61 00 30 */ addi r11, r1, 0x30
/* 8014D564 001493A4 4B EB 9E 1D */ bl lbl_80007380
/* 8014D568 001493A8 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8014D56C 001493AC 7C 08 03 A6 */ mtlr r0
/* 8014D570 001493B0 38 21 00 30 */ addi r1, r1, 0x30
/* 8014D574 001493B4 4E 80 00 20 */ blr
/* 8014D578 001493B8 00 00 00 00 */ .4byte 0x00000000
/* 8014D57C 001493BC 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global SetSub__6BignumFRC6BignumRC6Bignum
SetSub__6BignumFRC6BignumRC6Bignum:
2022-10-16 16:05:58 +00:00
/* 8014D580 001493C0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8014D584 001493C4 7C 08 02 A6 */ mflr r0
/* 8014D588 001493C8 7C 88 23 78 */ mr r8, r4
/* 8014D58C 001493CC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8014D590 001493D0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8014D594 001493D4 7C 7F 1B 78 */ mr r31, r3
/* 8014D598 001493D8 80 04 00 0C */ lwz r0, 0xc(r4)
/* 8014D59C 001493DC 2C 00 00 00 */ cmpwi r0, 0x0
/* 8014D5A0 001493E0 41 82 00 2C */ beq lbl_8014D5CC
/* 8014D5A4 001493E4 80 05 00 0C */ lwz r0, 0xc(r5)
/* 8014D5A8 001493E8 2C 00 00 00 */ cmpwi r0, 0x0
/* 8014D5AC 001493EC 41 82 00 10 */ beq lbl_8014D5BC
/* 8014D5B0 001493F0 7C A8 2B 78 */ mr r8, r5
/* 8014D5B4 001493F4 7C 85 23 78 */ mr r5, r4
/* 8014D5B8 001493F8 48 00 00 30 */ b lbl_8014D5E8
.global lbl_8014D5BC
lbl_8014D5BC:
2022-10-16 16:31:36 +00:00
/* 8014D5BC 001493FC 48 00 00 D5 */ bl SetAddAbsolute__6BignumFRC6BignumRC6Bignum
2022-10-16 16:05:58 +00:00
/* 8014D5C0 00149400 38 00 00 01 */ li r0, 0x1
/* 8014D5C4 00149404 90 1F 00 0C */ stw r0, 0xc(r31)
/* 8014D5C8 00149408 48 00 00 B0 */ b lbl_8014D678
.global lbl_8014D5CC
lbl_8014D5CC:
/* 8014D5CC 0014940C 80 05 00 0C */ lwz r0, 0xc(r5)
/* 8014D5D0 00149410 2C 00 00 00 */ cmpwi r0, 0x0
/* 8014D5D4 00149414 41 82 00 14 */ beq lbl_8014D5E8
2022-10-16 16:31:36 +00:00
/* 8014D5D8 00149418 48 00 00 B9 */ bl SetAddAbsolute__6BignumFRC6BignumRC6Bignum
2022-10-16 16:05:58 +00:00
/* 8014D5DC 0014941C 38 00 00 00 */ li r0, 0x0
/* 8014D5E0 00149420 90 1F 00 0C */ stw r0, 0xc(r31)
/* 8014D5E4 00149424 48 00 00 94 */ b lbl_8014D678
.global lbl_8014D5E8
lbl_8014D5E8:
/* 8014D5E8 00149428 80 E8 00 04 */ lwz r7, 0x4(r8)
/* 8014D5EC 0014942C 80 05 00 04 */ lwz r0, 0x4(r5)
/* 8014D5F0 00149430 7C 00 38 51 */ subf. r0, r0, r7
/* 8014D5F4 00149434 41 82 00 08 */ beq lbl_8014D5FC
/* 8014D5F8 00149438 48 00 00 48 */ b lbl_8014D640
.global lbl_8014D5FC
lbl_8014D5FC:
/* 8014D5FC 0014943C 54 E6 10 3A */ slwi r6, r7, 2
/* 8014D600 00149440 48 00 00 30 */ b lbl_8014D630
/* 8014D604 00149444 60 00 00 00 */ nop
.global lbl_8014D608
lbl_8014D608:
/* 8014D608 00149448 80 88 00 00 */ lwz r4, 0x0(r8)
/* 8014D60C 0014944C 80 65 00 00 */ lwz r3, 0x0(r5)
/* 8014D610 00149450 7C 84 30 2E */ lwzx r4, r4, r6
/* 8014D614 00149454 7C 03 30 2E */ lwzx r0, r3, r6
/* 8014D618 00149458 7C 04 00 40 */ cmplw r4, r0
/* 8014D61C 0014945C 41 82 00 14 */ beq lbl_8014D630
/* 8014D620 00149460 38 00 FF FF */ li r0, -0x1
/* 8014D624 00149464 40 81 00 1C */ ble lbl_8014D640
/* 8014D628 00149468 38 00 00 01 */ li r0, 0x1
/* 8014D62C 0014946C 48 00 00 14 */ b lbl_8014D640
.global lbl_8014D630
lbl_8014D630:
/* 8014D630 00149470 34 E7 FF FF */ addic. r7, r7, -0x1
/* 8014D634 00149474 38 C6 FF FC */ addi r6, r6, -0x4
/* 8014D638 00149478 40 80 FF D0 */ bge lbl_8014D608
/* 8014D63C 0014947C 38 00 00 00 */ li r0, 0x0
.global lbl_8014D640
lbl_8014D640:
/* 8014D640 00149480 2C 00 00 00 */ cmpwi r0, 0x0
/* 8014D644 00149484 40 80 00 20 */ bge lbl_8014D664
/* 8014D648 00149488 7C A4 2B 78 */ mr r4, r5
/* 8014D64C 0014948C 7F E3 FB 78 */ mr r3, r31
/* 8014D650 00149490 7D 05 43 78 */ mr r5, r8
2022-10-16 16:31:36 +00:00
/* 8014D654 00149494 48 00 01 CD */ bl SetSubAbsolute__6BignumFRC6BignumRC6Bignum
2022-10-16 16:05:58 +00:00
/* 8014D658 00149498 38 00 00 01 */ li r0, 0x1
/* 8014D65C 0014949C 90 1F 00 0C */ stw r0, 0xc(r31)
/* 8014D660 001494A0 48 00 00 18 */ b lbl_8014D678
.global lbl_8014D664
lbl_8014D664:
/* 8014D664 001494A4 7F E3 FB 78 */ mr r3, r31
/* 8014D668 001494A8 7D 04 43 78 */ mr r4, r8
2022-10-16 16:31:36 +00:00
/* 8014D66C 001494AC 48 00 01 B5 */ bl SetSubAbsolute__6BignumFRC6BignumRC6Bignum
2022-10-16 16:05:58 +00:00
/* 8014D670 001494B0 38 00 00 00 */ li r0, 0x0
/* 8014D674 001494B4 90 1F 00 0C */ stw r0, 0xc(r31)
.global lbl_8014D678
lbl_8014D678:
/* 8014D678 001494B8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8014D67C 001494BC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8014D680 001494C0 7C 08 03 A6 */ mtlr r0
/* 8014D684 001494C4 38 21 00 10 */ addi r1, r1, 0x10
/* 8014D688 001494C8 4E 80 00 20 */ blr
/* 8014D68C 001494CC 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global SetAddAbsolute__6BignumFRC6BignumRC6Bignum
SetAddAbsolute__6BignumFRC6BignumRC6Bignum:
2022-10-16 16:05:58 +00:00
/* 8014D690 001494D0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8014D694 001494D4 7C 08 02 A6 */ mflr r0
/* 8014D698 001494D8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8014D69C 001494DC 39 61 00 20 */ addi r11, r1, 0x20
/* 8014D6A0 001494E0 4B EB 9C 99 */ bl lbl_80007338
/* 8014D6A4 001494E4 80 C4 00 04 */ lwz r6, 0x4(r4)
/* 8014D6A8 001494E8 7C 7F 1B 78 */ mr r31, r3
/* 8014D6AC 001494EC 80 05 00 04 */ lwz r0, 0x4(r5)
/* 8014D6B0 001494F0 7C 9E 23 78 */ mr r30, r4
/* 8014D6B4 001494F4 7C BC 2B 78 */ mr r28, r5
/* 8014D6B8 001494F8 7C 06 00 00 */ cmpw r6, r0
/* 8014D6BC 001494FC 40 80 00 0C */ bge lbl_8014D6C8
/* 8014D6C0 00149500 7C BE 2B 78 */ mr r30, r5
/* 8014D6C4 00149504 7C 9C 23 78 */ mr r28, r4
.global lbl_8014D6C8
lbl_8014D6C8:
/* 8014D6C8 00149508 83 7E 00 04 */ lwz r27, 0x4(r30)
/* 8014D6CC 0014950C 80 03 00 08 */ lwz r0, 0x8(r3)
/* 8014D6D0 00149510 38 9B 00 01 */ addi r4, r27, 0x1
/* 8014D6D4 00149514 83 5C 00 04 */ lwz r26, 0x4(r28)
/* 8014D6D8 00149518 7C 04 00 00 */ cmpw r4, r0
/* 8014D6DC 0014951C 40 81 00 28 */ ble lbl_8014D704
/* 8014D6E0 00149520 80 63 00 00 */ lwz r3, 0x0(r3)
/* 8014D6E4 00149524 2C 03 00 00 */ cmpwi r3, 0x0
/* 8014D6E8 00149528 41 82 00 08 */ beq lbl_8014D6F0
2022-10-16 16:31:36 +00:00
/* 8014D6EC 0014952C 48 00 60 E5 */ bl MOiFree__FPv
2022-10-16 16:05:58 +00:00
.global lbl_8014D6F0
lbl_8014D6F0:
/* 8014D6F0 00149530 38 1B 00 03 */ addi r0, r27, 0x3
/* 8014D6F4 00149534 90 1F 00 08 */ stw r0, 0x8(r31)
/* 8014D6F8 00149538 54 03 10 3A */ slwi r3, r0, 2
2022-10-16 16:31:36 +00:00
/* 8014D6FC 0014953C 48 00 60 25 */ bl MOiAlloc__FUi
2022-10-16 16:05:58 +00:00
/* 8014D700 00149540 90 7F 00 00 */ stw r3, 0x0(r31)
.global lbl_8014D704
lbl_8014D704:
/* 8014D704 00149544 93 7F 00 04 */ stw r27, 0x4(r31)
/* 8014D708 00149548 7F 44 D3 78 */ mr r4, r26
/* 8014D70C 0014954C 83 BF 00 00 */ lwz r29, 0x0(r31)
/* 8014D710 00149550 83 DE 00 00 */ lwz r30, 0x0(r30)
/* 8014D714 00149554 80 DC 00 00 */ lwz r6, 0x0(r28)
/* 8014D718 00149558 7F A3 EB 78 */ mr r3, r29
/* 8014D71C 0014955C 7F C5 F3 78 */ mr r5, r30
2022-10-16 16:31:36 +00:00
/* 8014D720 00149560 48 00 11 41 */ bl DigitsAdd
2022-10-16 16:05:58 +00:00
/* 8014D724 00149564 2C 03 00 00 */ cmpwi r3, 0x0
/* 8014D728 00149568 57 40 10 3A */ slwi r0, r26, 2
/* 8014D72C 0014956C 7C 9D 02 14 */ add r4, r29, r0
/* 8014D730 00149570 7C BE 02 14 */ add r5, r30, r0
/* 8014D734 00149574 41 82 00 44 */ beq lbl_8014D778
.global lbl_8014D738
lbl_8014D738:
/* 8014D738 00149578 7C 1A D8 00 */ cmpw r26, r27
/* 8014D73C 0014957C 40 82 00 20 */ bne lbl_8014D75C
/* 8014D740 00149580 38 00 00 01 */ li r0, 0x1
/* 8014D744 00149584 90 04 00 00 */ stw r0, 0x0(r4)
/* 8014D748 00149588 38 84 00 04 */ addi r4, r4, 0x4
/* 8014D74C 0014958C 80 7F 00 04 */ lwz r3, 0x4(r31)
/* 8014D750 00149590 38 03 00 01 */ addi r0, r3, 0x1
/* 8014D754 00149594 90 1F 00 04 */ stw r0, 0x4(r31)
/* 8014D758 00149598 48 00 00 20 */ b lbl_8014D778
.global lbl_8014D75C
lbl_8014D75C:
/* 8014D75C 0014959C 80 05 00 00 */ lwz r0, 0x0(r5)
/* 8014D760 001495A0 3B 5A 00 01 */ addi r26, r26, 0x1
/* 8014D764 001495A4 38 A5 00 04 */ addi r5, r5, 0x4
/* 8014D768 001495A8 34 00 00 01 */ addic. r0, r0, 0x1
/* 8014D76C 001495AC 90 04 00 00 */ stw r0, 0x0(r4)
/* 8014D770 001495B0 38 84 00 04 */ addi r4, r4, 0x4
/* 8014D774 001495B4 41 82 FF C4 */ beq lbl_8014D738
.global lbl_8014D778
lbl_8014D778:
/* 8014D778 001495B8 7C 1A D8 00 */ cmpw r26, r27
/* 8014D77C 001495BC 7C 7A D8 50 */ subf r3, r26, r27
/* 8014D780 001495C0 40 80 00 7C */ bge lbl_8014D7FC
/* 8014D784 001495C4 54 60 E8 FF */ srwi. r0, r3, 3
/* 8014D788 001495C8 7C 09 03 A6 */ mtctr r0
/* 8014D78C 001495CC 41 82 00 58 */ beq lbl_8014D7E4
.global lbl_8014D790
lbl_8014D790:
/* 8014D790 001495D0 80 05 00 00 */ lwz r0, 0x0(r5)
/* 8014D794 001495D4 90 04 00 00 */ stw r0, 0x0(r4)
/* 8014D798 001495D8 80 05 00 04 */ lwz r0, 0x4(r5)
/* 8014D79C 001495DC 90 04 00 04 */ stw r0, 0x4(r4)
/* 8014D7A0 001495E0 80 05 00 08 */ lwz r0, 0x8(r5)
/* 8014D7A4 001495E4 90 04 00 08 */ stw r0, 0x8(r4)
/* 8014D7A8 001495E8 80 05 00 0C */ lwz r0, 0xc(r5)
/* 8014D7AC 001495EC 90 04 00 0C */ stw r0, 0xc(r4)
/* 8014D7B0 001495F0 80 05 00 10 */ lwz r0, 0x10(r5)
/* 8014D7B4 001495F4 90 04 00 10 */ stw r0, 0x10(r4)
/* 8014D7B8 001495F8 80 05 00 14 */ lwz r0, 0x14(r5)
/* 8014D7BC 001495FC 90 04 00 14 */ stw r0, 0x14(r4)
/* 8014D7C0 00149600 80 05 00 18 */ lwz r0, 0x18(r5)
/* 8014D7C4 00149604 90 04 00 18 */ stw r0, 0x18(r4)
/* 8014D7C8 00149608 80 05 00 1C */ lwz r0, 0x1c(r5)
/* 8014D7CC 0014960C 38 A5 00 20 */ addi r5, r5, 0x20
/* 8014D7D0 00149610 90 04 00 1C */ stw r0, 0x1c(r4)
/* 8014D7D4 00149614 38 84 00 20 */ addi r4, r4, 0x20
/* 8014D7D8 00149618 42 00 FF B8 */ bdnz lbl_8014D790
/* 8014D7DC 0014961C 70 63 00 07 */ andi. r3, r3, 0x7
/* 8014D7E0 00149620 41 82 00 1C */ beq lbl_8014D7FC
.global lbl_8014D7E4
lbl_8014D7E4:
/* 8014D7E4 00149624 7C 69 03 A6 */ mtctr r3
.global lbl_8014D7E8
lbl_8014D7E8:
/* 8014D7E8 00149628 80 05 00 00 */ lwz r0, 0x0(r5)
/* 8014D7EC 0014962C 38 A5 00 04 */ addi r5, r5, 0x4
/* 8014D7F0 00149630 90 04 00 00 */ stw r0, 0x0(r4)
/* 8014D7F4 00149634 38 84 00 04 */ addi r4, r4, 0x4
/* 8014D7F8 00149638 42 00 FF F0 */ bdnz lbl_8014D7E8
.global lbl_8014D7FC
lbl_8014D7FC:
/* 8014D7FC 0014963C 39 61 00 20 */ addi r11, r1, 0x20
/* 8014D800 00149640 4B EB 9B 85 */ bl lbl_80007384
/* 8014D804 00149644 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8014D808 00149648 7C 08 03 A6 */ mtlr r0
/* 8014D80C 0014964C 38 21 00 20 */ addi r1, r1, 0x20
/* 8014D810 00149650 4E 80 00 20 */ blr
/* 8014D814 00149654 00 00 00 00 */ .4byte 0x00000000
/* 8014D818 00149658 00 00 00 00 */ .4byte 0x00000000
/* 8014D81C 0014965C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global SetSubAbsolute__6BignumFRC6BignumRC6Bignum
SetSubAbsolute__6BignumFRC6BignumRC6Bignum:
2022-10-16 16:05:58 +00:00
/* 8014D820 00149660 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8014D824 00149664 7C 08 02 A6 */ mflr r0
/* 8014D828 00149668 90 01 00 24 */ stw r0, 0x24(r1)
/* 8014D82C 0014966C 39 61 00 20 */ addi r11, r1, 0x20
/* 8014D830 00149670 4B EB 9B 09 */ bl lbl_80007338
/* 8014D834 00149674 83 84 00 04 */ lwz r28, 0x4(r4)
/* 8014D838 00149678 7C 7F 1B 78 */ mr r31, r3
/* 8014D83C 0014967C 80 03 00 08 */ lwz r0, 0x8(r3)
/* 8014D840 00149680 7C 9E 23 78 */ mr r30, r4
/* 8014D844 00149684 83 65 00 04 */ lwz r27, 0x4(r5)
/* 8014D848 00149688 7C BA 2B 78 */ mr r26, r5
/* 8014D84C 0014968C 7C 1C 00 00 */ cmpw r28, r0
/* 8014D850 00149690 40 81 00 28 */ ble lbl_8014D878
/* 8014D854 00149694 80 63 00 00 */ lwz r3, 0x0(r3)
/* 8014D858 00149698 2C 03 00 00 */ cmpwi r3, 0x0
/* 8014D85C 0014969C 41 82 00 08 */ beq lbl_8014D864
2022-10-16 16:31:36 +00:00
/* 8014D860 001496A0 48 00 5F 71 */ bl MOiFree__FPv
2022-10-16 16:05:58 +00:00
.global lbl_8014D864
lbl_8014D864:
/* 8014D864 001496A4 38 1C 00 02 */ addi r0, r28, 0x2
/* 8014D868 001496A8 90 1F 00 08 */ stw r0, 0x8(r31)
/* 8014D86C 001496AC 54 03 10 3A */ slwi r3, r0, 2
2022-10-16 16:31:36 +00:00
/* 8014D870 001496B0 48 00 5E B1 */ bl MOiAlloc__FUi
2022-10-16 16:05:58 +00:00
/* 8014D874 001496B4 90 7F 00 00 */ stw r3, 0x0(r31)
.global lbl_8014D878
lbl_8014D878:
/* 8014D878 001496B8 83 BF 00 00 */ lwz r29, 0x0(r31)
/* 8014D87C 001496BC 7F 64 DB 78 */ mr r4, r27
/* 8014D880 001496C0 83 DE 00 00 */ lwz r30, 0x0(r30)
/* 8014D884 001496C4 93 9F 00 04 */ stw r28, 0x4(r31)
/* 8014D888 001496C8 7F A3 EB 78 */ mr r3, r29
/* 8014D88C 001496CC 80 DA 00 00 */ lwz r6, 0x0(r26)
/* 8014D890 001496D0 7F C5 F3 78 */ mr r5, r30
2022-10-16 16:31:36 +00:00
/* 8014D894 001496D4 48 00 10 CD */ bl DigitsSub
2022-10-16 16:05:58 +00:00
/* 8014D898 001496D8 2C 03 00 00 */ cmpwi r3, 0x0
/* 8014D89C 001496DC 57 60 10 3A */ slwi r0, r27, 2
/* 8014D8A0 001496E0 7C 9D 02 14 */ add r4, r29, r0
/* 8014D8A4 001496E4 7C BE 02 14 */ add r5, r30, r0
/* 8014D8A8 001496E8 41 82 00 28 */ beq lbl_8014D8D0
/* 8014D8AC 001496EC 60 00 00 00 */ nop
.global lbl_8014D8B0
lbl_8014D8B0:
/* 8014D8B0 001496F0 80 65 00 00 */ lwz r3, 0x0(r5)
/* 8014D8B4 001496F4 3B 7B 00 01 */ addi r27, r27, 0x1
/* 8014D8B8 001496F8 38 A5 00 04 */ addi r5, r5, 0x4
/* 8014D8BC 001496FC 2C 03 00 00 */ cmpwi r3, 0x0
/* 8014D8C0 00149700 38 03 FF FF */ addi r0, r3, -0x1
/* 8014D8C4 00149704 90 04 00 00 */ stw r0, 0x0(r4)
/* 8014D8C8 00149708 38 84 00 04 */ addi r4, r4, 0x4
/* 8014D8CC 0014970C 41 82 FF E4 */ beq lbl_8014D8B0
.global lbl_8014D8D0
lbl_8014D8D0:
/* 8014D8D0 00149710 7C 1B E0 00 */ cmpw r27, r28
/* 8014D8D4 00149714 7C 7B E0 50 */ subf r3, r27, r28
/* 8014D8D8 00149718 40 80 00 7C */ bge lbl_8014D954
/* 8014D8DC 0014971C 54 60 E8 FF */ srwi. r0, r3, 3
/* 8014D8E0 00149720 7C 09 03 A6 */ mtctr r0
/* 8014D8E4 00149724 41 82 00 58 */ beq lbl_8014D93C
.global lbl_8014D8E8
lbl_8014D8E8:
/* 8014D8E8 00149728 80 05 00 00 */ lwz r0, 0x0(r5)
/* 8014D8EC 0014972C 90 04 00 00 */ stw r0, 0x0(r4)
/* 8014D8F0 00149730 80 05 00 04 */ lwz r0, 0x4(r5)
/* 8014D8F4 00149734 90 04 00 04 */ stw r0, 0x4(r4)
/* 8014D8F8 00149738 80 05 00 08 */ lwz r0, 0x8(r5)
/* 8014D8FC 0014973C 90 04 00 08 */ stw r0, 0x8(r4)
/* 8014D900 00149740 80 05 00 0C */ lwz r0, 0xc(r5)
/* 8014D904 00149744 90 04 00 0C */ stw r0, 0xc(r4)
/* 8014D908 00149748 80 05 00 10 */ lwz r0, 0x10(r5)
/* 8014D90C 0014974C 90 04 00 10 */ stw r0, 0x10(r4)
/* 8014D910 00149750 80 05 00 14 */ lwz r0, 0x14(r5)
/* 8014D914 00149754 90 04 00 14 */ stw r0, 0x14(r4)
/* 8014D918 00149758 80 05 00 18 */ lwz r0, 0x18(r5)
/* 8014D91C 0014975C 90 04 00 18 */ stw r0, 0x18(r4)
/* 8014D920 00149760 80 05 00 1C */ lwz r0, 0x1c(r5)
/* 8014D924 00149764 38 A5 00 20 */ addi r5, r5, 0x20
/* 8014D928 00149768 90 04 00 1C */ stw r0, 0x1c(r4)
/* 8014D92C 0014976C 38 84 00 20 */ addi r4, r4, 0x20
/* 8014D930 00149770 42 00 FF B8 */ bdnz lbl_8014D8E8
/* 8014D934 00149774 70 63 00 07 */ andi. r3, r3, 0x7
/* 8014D938 00149778 41 82 00 1C */ beq lbl_8014D954
.global lbl_8014D93C
lbl_8014D93C:
/* 8014D93C 0014977C 7C 69 03 A6 */ mtctr r3
.global lbl_8014D940
lbl_8014D940:
/* 8014D940 00149780 80 05 00 00 */ lwz r0, 0x0(r5)
/* 8014D944 00149784 38 A5 00 04 */ addi r5, r5, 0x4
/* 8014D948 00149788 90 04 00 00 */ stw r0, 0x0(r4)
/* 8014D94C 0014978C 38 84 00 04 */ addi r4, r4, 0x4
/* 8014D950 00149790 42 00 FF F0 */ bdnz lbl_8014D940
.global lbl_8014D954
lbl_8014D954:
/* 8014D954 00149794 80 7F 00 04 */ lwz r3, 0x4(r31)
/* 8014D958 00149798 80 9F 00 00 */ lwz r4, 0x0(r31)
/* 8014D95C 0014979C 38 03 FF FF */ addi r0, r3, -0x1
/* 8014D960 001497A0 54 00 10 3A */ slwi r0, r0, 2
/* 8014D964 001497A4 7C 84 02 14 */ add r4, r4, r0
/* 8014D968 001497A8 48 00 00 24 */ b lbl_8014D98C
/* 8014D96C 001497AC 60 00 00 00 */ nop
.global lbl_8014D970
lbl_8014D970:
/* 8014D970 001497B0 80 04 00 00 */ lwz r0, 0x0(r4)
/* 8014D974 001497B4 38 84 FF FC */ addi r4, r4, -0x4
/* 8014D978 001497B8 2C 00 00 00 */ cmpwi r0, 0x0
/* 8014D97C 001497BC 40 82 00 1C */ bne lbl_8014D998
/* 8014D980 001497C0 80 7F 00 04 */ lwz r3, 0x4(r31)
/* 8014D984 001497C4 38 03 FF FF */ addi r0, r3, -0x1
/* 8014D988 001497C8 90 1F 00 04 */ stw r0, 0x4(r31)
.global lbl_8014D98C
lbl_8014D98C:
/* 8014D98C 001497CC 80 1F 00 04 */ lwz r0, 0x4(r31)
/* 8014D990 001497D0 2C 00 00 00 */ cmpwi r0, 0x0
/* 8014D994 001497D4 41 81 FF DC */ bgt lbl_8014D970
.global lbl_8014D998
lbl_8014D998:
/* 8014D998 001497D8 39 61 00 20 */ addi r11, r1, 0x20
/* 8014D99C 001497DC 4B EB 99 E9 */ bl lbl_80007384
/* 8014D9A0 001497E0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8014D9A4 001497E4 7C 08 03 A6 */ mtlr r0
/* 8014D9A8 001497E8 38 21 00 20 */ addi r1, r1, 0x20
/* 8014D9AC 001497EC 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global SetMul__6BignumFRC6BignumRC6Bignum
SetMul__6BignumFRC6BignumRC6Bignum:
2022-10-16 16:05:58 +00:00
/* 8014D9B0 001497F0 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8014D9B4 001497F4 7C 08 02 A6 */ mflr r0
/* 8014D9B8 001497F8 90 01 00 34 */ stw r0, 0x34(r1)
/* 8014D9BC 001497FC 39 61 00 30 */ addi r11, r1, 0x30
/* 8014D9C0 00149800 4B EB 99 75 */ bl lbl_80007334
/* 8014D9C4 00149804 83 A4 00 04 */ lwz r29, 0x4(r4)
/* 8014D9C8 00149808 7C 9A 23 78 */ mr r26, r4
/* 8014D9CC 0014980C 83 85 00 04 */ lwz r28, 0x4(r5)
/* 8014D9D0 00149810 7C 7F 1B 78 */ mr r31, r3
/* 8014D9D4 00149814 80 C4 00 0C */ lwz r6, 0xc(r4)
/* 8014D9D8 00149818 7C B9 2B 78 */ mr r25, r5
/* 8014D9DC 0014981C 80 03 00 08 */ lwz r0, 0x8(r3)
/* 8014D9E0 00149820 7F DD E2 14 */ add r30, r29, r28
/* 8014D9E4 00149824 80 85 00 0C */ lwz r4, 0xc(r5)
/* 8014D9E8 00149828 7C 1E 00 00 */ cmpw r30, r0
/* 8014D9EC 0014982C 7C C0 22 78 */ xor r0, r6, r4
/* 8014D9F0 00149830 90 03 00 0C */ stw r0, 0xc(r3)
/* 8014D9F4 00149834 40 81 00 28 */ ble lbl_8014DA1C
/* 8014D9F8 00149838 80 63 00 00 */ lwz r3, 0x0(r3)
/* 8014D9FC 0014983C 2C 03 00 00 */ cmpwi r3, 0x0
/* 8014DA00 00149840 41 82 00 08 */ beq lbl_8014DA08
2022-10-16 16:31:36 +00:00
/* 8014DA04 00149844 48 00 5D CD */ bl MOiFree__FPv
2022-10-16 16:05:58 +00:00
.global lbl_8014DA08
lbl_8014DA08:
/* 8014DA08 00149848 38 1E 00 02 */ addi r0, r30, 0x2
/* 8014DA0C 0014984C 90 1F 00 08 */ stw r0, 0x8(r31)
/* 8014DA10 00149850 54 03 10 3A */ slwi r3, r0, 2
2022-10-16 16:31:36 +00:00
/* 8014DA14 00149854 48 00 5D 0D */ bl MOiAlloc__FUi
2022-10-16 16:05:58 +00:00
/* 8014DA18 00149858 90 7F 00 00 */ stw r3, 0x0(r31)
.global lbl_8014DA1C
lbl_8014DA1C:
/* 8014DA1C 0014985C 7C 1D E0 00 */ cmpw r29, r28
/* 8014DA20 00149860 93 DF 00 04 */ stw r30, 0x4(r31)
/* 8014DA24 00149864 83 DA 00 00 */ lwz r30, 0x0(r26)
/* 8014DA28 00149868 83 79 00 00 */ lwz r27, 0x0(r25)
/* 8014DA2C 0014986C 40 80 00 1C */ bge lbl_8014DA48
/* 8014DA30 00149870 7F A0 EB 78 */ mr r0, r29
/* 8014DA34 00149874 7F C3 F3 78 */ mr r3, r30
/* 8014DA38 00149878 7F 9D E3 78 */ mr r29, r28
/* 8014DA3C 0014987C 7F 7E DB 78 */ mr r30, r27
/* 8014DA40 00149880 7C 1C 03 78 */ mr r28, r0
/* 8014DA44 00149884 7C 7B 1B 78 */ mr r27, r3
.global lbl_8014DA48
lbl_8014DA48:
/* 8014DA48 00149888 83 5F 00 00 */ lwz r26, 0x0(r31)
/* 8014DA4C 0014988C 57 A0 10 3A */ slwi r0, r29, 2
/* 8014DA50 00149890 80 DB 00 00 */ lwz r6, 0x0(r27)
/* 8014DA54 00149894 7F A4 EB 78 */ mr r4, r29
/* 8014DA58 00149898 7F 3A 02 14 */ add r25, r26, r0
/* 8014DA5C 0014989C 7F 43 D3 78 */ mr r3, r26
/* 8014DA60 001498A0 7F C5 F3 78 */ mr r5, r30
2022-10-16 16:31:36 +00:00
/* 8014DA64 001498A4 48 00 0F 6D */ bl DigitsMul
2022-10-16 16:05:58 +00:00
/* 8014DA68 001498A8 90 79 00 00 */ stw r3, 0x0(r25)
/* 8014DA6C 001498AC 48 00 00 24 */ b lbl_8014DA90
.global lbl_8014DA70
lbl_8014DA70:
/* 8014DA70 001498B0 3B 5A 00 04 */ addi r26, r26, 0x4
/* 8014DA74 001498B4 84 DB 00 04 */ lwzu r6, 0x4(r27)
/* 8014DA78 001498B8 7F 43 D3 78 */ mr r3, r26
/* 8014DA7C 001498BC 7F A4 EB 78 */ mr r4, r29
/* 8014DA80 001498C0 7F C5 F3 78 */ mr r5, r30
/* 8014DA84 001498C4 3B 39 00 04 */ addi r25, r25, 0x4
2022-10-16 16:31:36 +00:00
/* 8014DA88 001498C8 48 00 0F D9 */ bl DigitsMulAdd
2022-10-16 16:05:58 +00:00
/* 8014DA8C 001498CC 90 79 00 00 */ stw r3, 0x0(r25)
.global lbl_8014DA90
lbl_8014DA90:
/* 8014DA90 001498D0 37 9C FF FF */ addic. r28, r28, -0x1
/* 8014DA94 001498D4 41 81 FF DC */ bgt lbl_8014DA70
/* 8014DA98 001498D8 80 7F 00 04 */ lwz r3, 0x4(r31)
/* 8014DA9C 001498DC 80 9F 00 00 */ lwz r4, 0x0(r31)
/* 8014DAA0 001498E0 38 03 FF FF */ addi r0, r3, -0x1
/* 8014DAA4 001498E4 54 00 10 3A */ slwi r0, r0, 2
/* 8014DAA8 001498E8 7C 84 02 14 */ add r4, r4, r0
/* 8014DAAC 001498EC 48 00 00 20 */ b lbl_8014DACC
.global lbl_8014DAB0
lbl_8014DAB0:
/* 8014DAB0 001498F0 80 04 00 00 */ lwz r0, 0x0(r4)
/* 8014DAB4 001498F4 38 84 FF FC */ addi r4, r4, -0x4
/* 8014DAB8 001498F8 2C 00 00 00 */ cmpwi r0, 0x0
/* 8014DABC 001498FC 40 82 00 1C */ bne lbl_8014DAD8
/* 8014DAC0 00149900 80 7F 00 04 */ lwz r3, 0x4(r31)
/* 8014DAC4 00149904 38 03 FF FF */ addi r0, r3, -0x1
/* 8014DAC8 00149908 90 1F 00 04 */ stw r0, 0x4(r31)
.global lbl_8014DACC
lbl_8014DACC:
/* 8014DACC 0014990C 80 1F 00 04 */ lwz r0, 0x4(r31)
/* 8014DAD0 00149910 2C 00 00 00 */ cmpwi r0, 0x0
/* 8014DAD4 00149914 41 81 FF DC */ bgt lbl_8014DAB0
.global lbl_8014DAD8
lbl_8014DAD8:
/* 8014DAD8 00149918 39 61 00 30 */ addi r11, r1, 0x30
/* 8014DADC 0014991C 4B EB 98 A5 */ bl lbl_80007380
/* 8014DAE0 00149920 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8014DAE4 00149924 7C 08 03 A6 */ mtlr r0
/* 8014DAE8 00149928 38 21 00 30 */ addi r1, r1, 0x30
/* 8014DAEC 0014992C 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global RsaPublicDecrypt__FPviPCvPCv
RsaPublicDecrypt__FPviPCvPCv:
2022-10-16 16:05:58 +00:00
/* 8014DAF0 00149930 94 21 FF 60 */ stwu r1, -0xa0(r1)
/* 8014DAF4 00149934 7C 08 02 A6 */ mflr r0
/* 8014DAF8 00149938 90 01 00 A4 */ stw r0, 0xa4(r1)
/* 8014DAFC 0014993C 39 61 00 A0 */ addi r11, r1, 0xa0
/* 8014DB00 00149940 4B EB 98 35 */ bl lbl_80007334
/* 8014DB04 00149944 38 04 00 03 */ addi r0, r4, 0x3
/* 8014DB08 00149948 38 E0 00 00 */ li r7, 0x0
/* 8014DB0C 0014994C 7C 00 16 70 */ srawi r0, r0, 2
/* 8014DB10 00149950 7C 7A 1B 78 */ mr r26, r3
/* 8014DB14 00149954 7F E0 01 94 */ addze r31, r0
/* 8014DB18 00149958 90 E1 00 48 */ stw r7, 0x48(r1)
/* 8014DB1C 0014995C 7C 1F 38 00 */ cmpw r31, r7
/* 8014DB20 00149960 7C 9B 23 78 */ mr r27, r4
/* 8014DB24 00149964 90 E1 00 50 */ stw r7, 0x50(r1)
/* 8014DB28 00149968 7C BC 2B 78 */ mr r28, r5
/* 8014DB2C 0014996C 7C DD 33 78 */ mr r29, r6
/* 8014DB30 00149970 7F 59 D3 78 */ mr r25, r26
/* 8014DB34 00149974 90 E1 00 4C */ stw r7, 0x4c(r1)
/* 8014DB38 00149978 90 E1 00 54 */ stw r7, 0x54(r1)
/* 8014DB3C 0014997C 90 E1 00 38 */ stw r7, 0x38(r1)
/* 8014DB40 00149980 90 E1 00 40 */ stw r7, 0x40(r1)
/* 8014DB44 00149984 90 E1 00 3C */ stw r7, 0x3c(r1)
/* 8014DB48 00149988 90 E1 00 44 */ stw r7, 0x44(r1)
/* 8014DB4C 0014998C 90 E1 00 28 */ stw r7, 0x28(r1)
/* 8014DB50 00149990 90 E1 00 30 */ stw r7, 0x30(r1)
/* 8014DB54 00149994 90 E1 00 2C */ stw r7, 0x2c(r1)
/* 8014DB58 00149998 90 E1 00 34 */ stw r7, 0x34(r1)
/* 8014DB5C 0014999C 40 81 00 28 */ ble lbl_8014DB84
/* 8014DB60 001499A0 2C 07 00 00 */ cmpwi r7, 0x0
/* 8014DB64 001499A4 41 82 00 0C */ beq lbl_8014DB70
/* 8014DB68 001499A8 38 60 00 00 */ li r3, 0x0
2022-10-16 16:31:36 +00:00
/* 8014DB6C 001499AC 48 00 5C 65 */ bl MOiFree__FPv
2022-10-16 16:05:58 +00:00
.global lbl_8014DB70
lbl_8014DB70:
/* 8014DB70 001499B0 38 1F 00 02 */ addi r0, r31, 0x2
/* 8014DB74 001499B4 90 01 00 50 */ stw r0, 0x50(r1)
/* 8014DB78 001499B8 54 03 10 3A */ slwi r3, r0, 2
2022-10-16 16:31:36 +00:00
/* 8014DB7C 001499BC 48 00 5B A5 */ bl MOiAlloc__FUi
2022-10-16 16:05:58 +00:00
/* 8014DB80 001499C0 90 61 00 48 */ stw r3, 0x48(r1)
.global lbl_8014DB84
lbl_8014DB84:
/* 8014DB84 001499C4 38 1B FF FF */ addi r0, r27, -0x1
/* 8014DB88 001499C8 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 8014DB8C 001499CC 54 1E 07 BE */ clrlwi r30, r0, 30
/* 8014DB90 001499D0 57 E3 10 3A */ slwi r3, r31, 2
/* 8014DB94 001499D4 7F C6 F3 78 */ mr r6, r30
/* 8014DB98 001499D8 38 A0 00 00 */ li r5, 0x0
/* 8014DB9C 001499DC 7F 69 03 A6 */ mtctr r27
/* 8014DBA0 001499E0 2C 1B 00 00 */ cmpwi r27, 0x0
/* 8014DBA4 001499E4 41 82 00 34 */ beq lbl_8014DBD8
.global lbl_8014DBA8
lbl_8014DBA8:
/* 8014DBA8 001499E8 2C 06 00 00 */ cmpwi r6, 0x0
/* 8014DBAC 001499EC 88 19 00 00 */ lbz r0, 0x0(r25)
/* 8014DBB0 001499F0 54 A4 40 2E */ slwi r4, r5, 8
/* 8014DBB4 001499F4 3B 39 00 01 */ addi r25, r25, 0x1
/* 8014DBB8 001499F8 7C 85 03 78 */ or r5, r4, r0
/* 8014DBBC 001499FC 38 C6 FF FF */ addi r6, r6, -0x1
/* 8014DBC0 00149A00 40 82 00 14 */ bne lbl_8014DBD4
/* 8014DBC4 00149A04 80 81 00 48 */ lwz r4, 0x48(r1)
/* 8014DBC8 00149A08 38 63 FF FC */ addi r3, r3, -0x4
/* 8014DBCC 00149A0C 38 C0 00 03 */ li r6, 0x3
/* 8014DBD0 00149A10 7C A4 19 2E */ stwx r5, r4, r3
.global lbl_8014DBD4
lbl_8014DBD4:
/* 8014DBD4 00149A14 42 00 FF D4 */ bdnz lbl_8014DBA8
.global lbl_8014DBD8
lbl_8014DBD8:
/* 8014DBD8 00149A18 80 61 00 4C */ lwz r3, 0x4c(r1)
/* 8014DBDC 00149A1C 80 81 00 48 */ lwz r4, 0x48(r1)
/* 8014DBE0 00149A20 38 03 FF FF */ addi r0, r3, -0x1
/* 8014DBE4 00149A24 54 00 10 3A */ slwi r0, r0, 2
/* 8014DBE8 00149A28 7C 84 02 14 */ add r4, r4, r0
/* 8014DBEC 00149A2C 48 00 00 20 */ b lbl_8014DC0C
.global lbl_8014DBF0
lbl_8014DBF0:
/* 8014DBF0 00149A30 80 04 00 00 */ lwz r0, 0x0(r4)
/* 8014DBF4 00149A34 38 84 FF FC */ addi r4, r4, -0x4
/* 8014DBF8 00149A38 2C 00 00 00 */ cmpwi r0, 0x0
/* 8014DBFC 00149A3C 40 82 00 1C */ bne lbl_8014DC18
/* 8014DC00 00149A40 80 61 00 4C */ lwz r3, 0x4c(r1)
/* 8014DC04 00149A44 38 03 FF FF */ addi r0, r3, -0x1
/* 8014DC08 00149A48 90 01 00 4C */ stw r0, 0x4c(r1)
.global lbl_8014DC0C
lbl_8014DC0C:
/* 8014DC0C 00149A4C 80 01 00 4C */ lwz r0, 0x4c(r1)
/* 8014DC10 00149A50 2C 00 00 00 */ cmpwi r0, 0x0
/* 8014DC14 00149A54 41 81 FF DC */ bgt lbl_8014DBF0
.global lbl_8014DC18
lbl_8014DC18:
/* 8014DC18 00149A58 80 01 00 40 */ lwz r0, 0x40(r1)
/* 8014DC1C 00149A5C 7C 1F 00 00 */ cmpw r31, r0
/* 8014DC20 00149A60 40 81 00 28 */ ble lbl_8014DC48
/* 8014DC24 00149A64 80 61 00 38 */ lwz r3, 0x38(r1)
/* 8014DC28 00149A68 2C 03 00 00 */ cmpwi r3, 0x0
/* 8014DC2C 00149A6C 41 82 00 08 */ beq lbl_8014DC34
2022-10-16 16:31:36 +00:00
/* 8014DC30 00149A70 48 00 5B A1 */ bl MOiFree__FPv
2022-10-16 16:05:58 +00:00
.global lbl_8014DC34
lbl_8014DC34:
/* 8014DC34 00149A74 38 1F 00 02 */ addi r0, r31, 0x2
/* 8014DC38 00149A78 90 01 00 40 */ stw r0, 0x40(r1)
/* 8014DC3C 00149A7C 54 03 10 3A */ slwi r3, r0, 2
2022-10-16 16:31:36 +00:00
/* 8014DC40 00149A80 48 00 5A E1 */ bl MOiAlloc__FUi
2022-10-16 16:05:58 +00:00
/* 8014DC44 00149A84 90 61 00 38 */ stw r3, 0x38(r1)
.global lbl_8014DC48
lbl_8014DC48:
/* 8014DC48 00149A88 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 8014DC4C 00149A8C 57 E3 10 3A */ slwi r3, r31, 2
/* 8014DC50 00149A90 38 A0 00 00 */ li r5, 0x0
/* 8014DC54 00149A94 7F 69 03 A6 */ mtctr r27
/* 8014DC58 00149A98 2C 1B 00 00 */ cmpwi r27, 0x0
/* 8014DC5C 00149A9C 41 82 00 34 */ beq lbl_8014DC90
.global lbl_8014DC60
lbl_8014DC60:
/* 8014DC60 00149AA0 2C 1E 00 00 */ cmpwi r30, 0x0
/* 8014DC64 00149AA4 88 1C 00 00 */ lbz r0, 0x0(r28)
/* 8014DC68 00149AA8 54 A4 40 2E */ slwi r4, r5, 8
/* 8014DC6C 00149AAC 3B 9C 00 01 */ addi r28, r28, 0x1
/* 8014DC70 00149AB0 7C 85 03 78 */ or r5, r4, r0
/* 8014DC74 00149AB4 3B DE FF FF */ addi r30, r30, -0x1
/* 8014DC78 00149AB8 40 82 00 14 */ bne lbl_8014DC8C
/* 8014DC7C 00149ABC 80 81 00 38 */ lwz r4, 0x38(r1)
/* 8014DC80 00149AC0 38 63 FF FC */ addi r3, r3, -0x4
/* 8014DC84 00149AC4 3B C0 00 03 */ li r30, 0x3
/* 8014DC88 00149AC8 7C A4 19 2E */ stwx r5, r4, r3
.global lbl_8014DC8C
lbl_8014DC8C:
/* 8014DC8C 00149ACC 42 00 FF D4 */ bdnz lbl_8014DC60
.global lbl_8014DC90
lbl_8014DC90:
/* 8014DC90 00149AD0 80 61 00 3C */ lwz r3, 0x3c(r1)
/* 8014DC94 00149AD4 80 81 00 38 */ lwz r4, 0x38(r1)
/* 8014DC98 00149AD8 38 03 FF FF */ addi r0, r3, -0x1
/* 8014DC9C 00149ADC 54 00 10 3A */ slwi r0, r0, 2
/* 8014DCA0 00149AE0 7C 84 02 14 */ add r4, r4, r0
/* 8014DCA4 00149AE4 48 00 00 20 */ b lbl_8014DCC4
.global lbl_8014DCA8
lbl_8014DCA8:
/* 8014DCA8 00149AE8 80 04 00 00 */ lwz r0, 0x0(r4)
/* 8014DCAC 00149AEC 38 84 FF FC */ addi r4, r4, -0x4
/* 8014DCB0 00149AF0 2C 00 00 00 */ cmpwi r0, 0x0
/* 8014DCB4 00149AF4 40 82 00 1C */ bne lbl_8014DCD0
/* 8014DCB8 00149AF8 80 61 00 3C */ lwz r3, 0x3c(r1)
/* 8014DCBC 00149AFC 38 03 FF FF */ addi r0, r3, -0x1
/* 8014DCC0 00149B00 90 01 00 3C */ stw r0, 0x3c(r1)
.global lbl_8014DCC4
lbl_8014DCC4:
/* 8014DCC4 00149B04 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 8014DCC8 00149B08 2C 00 00 00 */ cmpwi r0, 0x0
/* 8014DCCC 00149B0C 41 81 FF DC */ bgt lbl_8014DCA8
.global lbl_8014DCD0
lbl_8014DCD0:
/* 8014DCD0 00149B10 3B 3B 00 01 */ addi r25, r27, 0x1
/* 8014DCD4 00149B14 80 01 00 30 */ lwz r0, 0x30(r1)
/* 8014DCD8 00149B18 38 79 00 03 */ addi r3, r25, 0x3
/* 8014DCDC 00149B1C 7C 63 16 70 */ srawi r3, r3, 2
/* 8014DCE0 00149B20 7F 63 01 94 */ addze r27, r3
/* 8014DCE4 00149B24 7C 1B 00 00 */ cmpw r27, r0
/* 8014DCE8 00149B28 40 81 00 28 */ ble lbl_8014DD10
/* 8014DCEC 00149B2C 80 61 00 28 */ lwz r3, 0x28(r1)
/* 8014DCF0 00149B30 2C 03 00 00 */ cmpwi r3, 0x0
/* 8014DCF4 00149B34 41 82 00 08 */ beq lbl_8014DCFC
2022-10-16 16:31:36 +00:00
/* 8014DCF8 00149B38 48 00 5A D9 */ bl MOiFree__FPv
2022-10-16 16:05:58 +00:00
.global lbl_8014DCFC
lbl_8014DCFC:
/* 8014DCFC 00149B3C 38 1B 00 02 */ addi r0, r27, 0x2
/* 8014DD00 00149B40 90 01 00 30 */ stw r0, 0x30(r1)
/* 8014DD04 00149B44 54 03 10 3A */ slwi r3, r0, 2
2022-10-16 16:31:36 +00:00
/* 8014DD08 00149B48 48 00 5A 19 */ bl MOiAlloc__FUi
2022-10-16 16:05:58 +00:00
/* 8014DD0C 00149B4C 90 61 00 28 */ stw r3, 0x28(r1)
.global lbl_8014DD10
lbl_8014DD10:
/* 8014DD10 00149B50 38 19 FF FF */ addi r0, r25, -0x1
/* 8014DD14 00149B54 93 61 00 2C */ stw r27, 0x2c(r1)
/* 8014DD18 00149B58 54 06 07 BE */ clrlwi r6, r0, 30
/* 8014DD1C 00149B5C 57 63 10 3A */ slwi r3, r27, 2
/* 8014DD20 00149B60 38 A0 00 00 */ li r5, 0x0
/* 8014DD24 00149B64 7F 29 03 A6 */ mtctr r25
/* 8014DD28 00149B68 2C 19 00 00 */ cmpwi r25, 0x0
/* 8014DD2C 00149B6C 41 82 00 34 */ beq lbl_8014DD60
.global lbl_8014DD30
lbl_8014DD30:
/* 8014DD30 00149B70 2C 06 00 00 */ cmpwi r6, 0x0
/* 8014DD34 00149B74 88 1D 00 00 */ lbz r0, 0x0(r29)
/* 8014DD38 00149B78 54 A4 40 2E */ slwi r4, r5, 8
/* 8014DD3C 00149B7C 3B BD 00 01 */ addi r29, r29, 0x1
/* 8014DD40 00149B80 7C 85 03 78 */ or r5, r4, r0
/* 8014DD44 00149B84 38 C6 FF FF */ addi r6, r6, -0x1
/* 8014DD48 00149B88 40 82 00 14 */ bne lbl_8014DD5C
/* 8014DD4C 00149B8C 80 81 00 28 */ lwz r4, 0x28(r1)
/* 8014DD50 00149B90 38 63 FF FC */ addi r3, r3, -0x4
/* 8014DD54 00149B94 38 C0 00 03 */ li r6, 0x3
/* 8014DD58 00149B98 7C A4 19 2E */ stwx r5, r4, r3
.global lbl_8014DD5C
lbl_8014DD5C:
/* 8014DD5C 00149B9C 42 00 FF D4 */ bdnz lbl_8014DD30
.global lbl_8014DD60
lbl_8014DD60:
/* 8014DD60 00149BA0 80 61 00 2C */ lwz r3, 0x2c(r1)
/* 8014DD64 00149BA4 80 81 00 28 */ lwz r4, 0x28(r1)
/* 8014DD68 00149BA8 38 03 FF FF */ addi r0, r3, -0x1
/* 8014DD6C 00149BAC 54 00 10 3A */ slwi r0, r0, 2
/* 8014DD70 00149BB0 7C 84 02 14 */ add r4, r4, r0
/* 8014DD74 00149BB4 48 00 00 20 */ b lbl_8014DD94
.global lbl_8014DD78
lbl_8014DD78:
/* 8014DD78 00149BB8 80 04 00 00 */ lwz r0, 0x0(r4)
/* 8014DD7C 00149BBC 38 84 FF FC */ addi r4, r4, -0x4
/* 8014DD80 00149BC0 2C 00 00 00 */ cmpwi r0, 0x0
/* 8014DD84 00149BC4 40 82 00 1C */ bne lbl_8014DDA0
/* 8014DD88 00149BC8 80 61 00 2C */ lwz r3, 0x2c(r1)
/* 8014DD8C 00149BCC 38 03 FF FF */ addi r0, r3, -0x1
/* 8014DD90 00149BD0 90 01 00 2C */ stw r0, 0x2c(r1)
.global lbl_8014DD94
lbl_8014DD94:
/* 8014DD94 00149BD4 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8014DD98 00149BD8 2C 00 00 00 */ cmpwi r0, 0x0
/* 8014DD9C 00149BDC 41 81 FF DC */ bgt lbl_8014DD78
.global lbl_8014DDA0
lbl_8014DDA0:
/* 8014DDA0 00149BE0 3B 60 00 00 */ li r27, 0x0
/* 8014DDA4 00149BE4 38 81 00 48 */ addi r4, r1, 0x48
/* 8014DDA8 00149BE8 93 61 00 58 */ stw r27, 0x58(r1)
/* 8014DDAC 00149BEC 7C 85 23 78 */ mr r5, r4
/* 8014DDB0 00149BF0 38 61 00 08 */ addi r3, r1, 0x8
/* 8014DDB4 00149BF4 93 61 00 60 */ stw r27, 0x60(r1)
/* 8014DDB8 00149BF8 93 61 00 5C */ stw r27, 0x5c(r1)
/* 8014DDBC 00149BFC 93 61 00 64 */ stw r27, 0x64(r1)
/* 8014DDC0 00149C00 93 61 00 68 */ stw r27, 0x68(r1)
/* 8014DDC4 00149C04 93 61 00 70 */ stw r27, 0x70(r1)
/* 8014DDC8 00149C08 93 61 00 6C */ stw r27, 0x6c(r1)
/* 8014DDCC 00149C0C 93 61 00 74 */ stw r27, 0x74(r1)
/* 8014DDD0 00149C10 93 61 00 08 */ stw r27, 0x8(r1)
/* 8014DDD4 00149C14 93 61 00 10 */ stw r27, 0x10(r1)
/* 8014DDD8 00149C18 93 61 00 0C */ stw r27, 0xc(r1)
/* 8014DDDC 00149C1C 93 61 00 14 */ stw r27, 0x14(r1)
2022-10-16 16:31:36 +00:00
/* 8014DDE0 00149C20 4B FF FB D1 */ bl SetMul__6BignumFRC6BignumRC6Bignum
2022-10-16 16:05:58 +00:00
/* 8014DDE4 00149C24 38 61 00 08 */ addi r3, r1, 0x8
/* 8014DDE8 00149C28 38 81 00 38 */ addi r4, r1, 0x38
/* 8014DDEC 00149C2C 38 A1 00 28 */ addi r5, r1, 0x28
/* 8014DDF0 00149C30 38 C1 00 58 */ addi r6, r1, 0x58
2022-10-16 16:31:36 +00:00
/* 8014DDF4 00149C34 4B FF F4 0D */ bl Reduce__6BignumFRC6BignumRC6BignumP6Bignum
2022-10-16 16:05:58 +00:00
/* 8014DDF8 00149C38 93 61 00 18 */ stw r27, 0x18(r1)
/* 8014DDFC 00149C3C 38 61 00 18 */ addi r3, r1, 0x18
/* 8014DE00 00149C40 38 81 00 08 */ addi r4, r1, 0x8
/* 8014DE04 00149C44 38 A1 00 48 */ addi r5, r1, 0x48
/* 8014DE08 00149C48 93 61 00 20 */ stw r27, 0x20(r1)
/* 8014DE0C 00149C4C 93 61 00 1C */ stw r27, 0x1c(r1)
/* 8014DE10 00149C50 93 61 00 24 */ stw r27, 0x24(r1)
2022-10-16 16:31:36 +00:00
/* 8014DE14 00149C54 4B FF FB 9D */ bl SetMul__6BignumFRC6BignumRC6Bignum
2022-10-16 16:05:58 +00:00
/* 8014DE18 00149C58 38 61 00 18 */ addi r3, r1, 0x18
/* 8014DE1C 00149C5C 38 81 00 38 */ addi r4, r1, 0x38
/* 8014DE20 00149C60 38 A1 00 28 */ addi r5, r1, 0x28
/* 8014DE24 00149C64 38 C1 00 58 */ addi r6, r1, 0x58
2022-10-16 16:31:36 +00:00
/* 8014DE28 00149C68 4B FF F3 D9 */ bl Reduce__6BignumFRC6BignumRC6BignumP6Bignum
2022-10-16 16:05:58 +00:00
/* 8014DE2C 00149C6C 80 61 00 48 */ lwz r3, 0x48(r1)
/* 8014DE30 00149C70 80 C1 00 18 */ lwz r6, 0x18(r1)
/* 8014DE34 00149C74 80 E1 00 1C */ lwz r7, 0x1c(r1)
/* 8014DE38 00149C78 2C 03 00 00 */ cmpwi r3, 0x0
/* 8014DE3C 00149C7C 80 A1 00 4C */ lwz r5, 0x4c(r1)
/* 8014DE40 00149C80 81 01 00 20 */ lwz r8, 0x20(r1)
/* 8014DE44 00149C84 80 81 00 50 */ lwz r4, 0x50(r1)
/* 8014DE48 00149C88 81 21 00 24 */ lwz r9, 0x24(r1)
/* 8014DE4C 00149C8C 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8014DE50 00149C90 90 61 00 18 */ stw r3, 0x18(r1)
/* 8014DE54 00149C94 90 A1 00 1C */ stw r5, 0x1c(r1)
/* 8014DE58 00149C98 90 81 00 20 */ stw r4, 0x20(r1)
/* 8014DE5C 00149C9C 90 01 00 24 */ stw r0, 0x24(r1)
/* 8014DE60 00149CA0 90 C1 00 48 */ stw r6, 0x48(r1)
/* 8014DE64 00149CA4 90 E1 00 4C */ stw r7, 0x4c(r1)
/* 8014DE68 00149CA8 91 01 00 50 */ stw r8, 0x50(r1)
/* 8014DE6C 00149CAC 91 21 00 54 */ stw r9, 0x54(r1)
/* 8014DE70 00149CB0 41 82 00 08 */ beq lbl_8014DE78
2022-10-16 16:31:36 +00:00
/* 8014DE74 00149CB4 48 00 59 5D */ bl MOiFree__FPv
2022-10-16 16:05:58 +00:00
.global lbl_8014DE78
lbl_8014DE78:
/* 8014DE78 00149CB8 80 61 00 08 */ lwz r3, 0x8(r1)
/* 8014DE7C 00149CBC 2C 03 00 00 */ cmpwi r3, 0x0
/* 8014DE80 00149CC0 41 82 00 08 */ beq lbl_8014DE88
2022-10-16 16:31:36 +00:00
/* 8014DE84 00149CC4 48 00 59 4D */ bl MOiFree__FPv
2022-10-16 16:05:58 +00:00
.global lbl_8014DE88
lbl_8014DE88:
/* 8014DE88 00149CC8 80 61 00 68 */ lwz r3, 0x68(r1)
/* 8014DE8C 00149CCC 2C 03 00 00 */ cmpwi r3, 0x0
/* 8014DE90 00149CD0 41 82 00 08 */ beq lbl_8014DE98
2022-10-16 16:31:36 +00:00
/* 8014DE94 00149CD4 48 00 59 3D */ bl MOiFree__FPv
2022-10-16 16:05:58 +00:00
.global lbl_8014DE98
lbl_8014DE98:
/* 8014DE98 00149CD8 80 61 00 58 */ lwz r3, 0x58(r1)
/* 8014DE9C 00149CDC 2C 03 00 00 */ cmpwi r3, 0x0
/* 8014DEA0 00149CE0 41 82 00 08 */ beq lbl_8014DEA8
2022-10-16 16:31:36 +00:00
/* 8014DEA4 00149CE4 48 00 59 2D */ bl MOiFree__FPv
2022-10-16 16:05:58 +00:00
.global lbl_8014DEA8
lbl_8014DEA8:
/* 8014DEA8 00149CE8 80 61 00 4C */ lwz r3, 0x4c(r1)
/* 8014DEAC 00149CEC 2C 03 00 00 */ cmpwi r3, 0x0
/* 8014DEB0 00149CF0 40 82 00 0C */ bne lbl_8014DEBC
/* 8014DEB4 00149CF4 38 60 00 00 */ li r3, 0x0
/* 8014DEB8 00149CF8 48 00 00 A0 */ b lbl_8014DF58
.global lbl_8014DEBC
lbl_8014DEBC:
/* 8014DEBC 00149CFC 38 A3 FF FF */ addi r5, r3, -0x1
/* 8014DEC0 00149D00 80 81 00 48 */ lwz r4, 0x48(r1)
/* 8014DEC4 00149D04 54 A3 10 3A */ slwi r3, r5, 2
/* 8014DEC8 00149D08 3C 00 00 01 */ lis r0, 0x1
/* 8014DECC 00149D0C 7C 84 18 2E */ lwzx r4, r4, r3
/* 8014DED0 00149D10 7C 04 00 40 */ cmplw r4, r0
/* 8014DED4 00149D14 41 80 00 48 */ blt lbl_8014DF1C
/* 8014DED8 00149D18 3C 00 01 00 */ lis r0, 0x100
/* 8014DEDC 00149D1C 7C 04 00 40 */ cmplw r4, r0
/* 8014DEE0 00149D20 41 80 00 20 */ blt lbl_8014DF00
2022-10-16 16:31:36 +00:00
/* 8014DEE4 00149D24 3C 60 80 41 */ lis r3, "@LOCAL@BitsUsed__FUi@bits"@ha
2022-10-16 16:05:58 +00:00
/* 8014DEE8 00149D28 54 80 46 3E */ srwi r0, r4, 24
2022-10-16 16:31:36 +00:00
/* 8014DEEC 00149D2C 38 63 E3 50 */ addi r3, r3, "@LOCAL@BitsUsed__FUi@bits"@l
2022-10-16 16:05:58 +00:00
/* 8014DEF0 00149D30 7C 03 00 AE */ lbzx r0, r3, r0
/* 8014DEF4 00149D34 7C 03 07 74 */ extsb r3, r0
/* 8014DEF8 00149D38 38 63 00 18 */ addi r3, r3, 0x18
/* 8014DEFC 00149D3C 48 00 00 54 */ b lbl_8014DF50
.global lbl_8014DF00
lbl_8014DF00:
2022-10-16 16:31:36 +00:00
/* 8014DF00 00149D40 3C 60 80 41 */ lis r3, "@LOCAL@BitsUsed__FUi@bits"@ha
2022-10-16 16:05:58 +00:00
/* 8014DF04 00149D44 54 80 84 3E */ srwi r0, r4, 16
2022-10-16 16:31:36 +00:00
/* 8014DF08 00149D48 38 63 E3 50 */ addi r3, r3, "@LOCAL@BitsUsed__FUi@bits"@l
2022-10-16 16:05:58 +00:00
/* 8014DF0C 00149D4C 7C 03 00 AE */ lbzx r0, r3, r0
/* 8014DF10 00149D50 7C 03 07 74 */ extsb r3, r0
/* 8014DF14 00149D54 38 63 00 10 */ addi r3, r3, 0x10
/* 8014DF18 00149D58 48 00 00 38 */ b lbl_8014DF50
.global lbl_8014DF1C
lbl_8014DF1C:
/* 8014DF1C 00149D5C 28 04 01 00 */ cmplwi r4, 0x100
/* 8014DF20 00149D60 41 80 00 20 */ blt lbl_8014DF40
2022-10-16 16:31:36 +00:00
/* 8014DF24 00149D64 3C 60 80 41 */ lis r3, "@LOCAL@BitsUsed__FUi@bits"@ha
2022-10-16 16:05:58 +00:00
/* 8014DF28 00149D68 54 80 C2 3E */ srwi r0, r4, 8
2022-10-16 16:31:36 +00:00
/* 8014DF2C 00149D6C 38 63 E3 50 */ addi r3, r3, "@LOCAL@BitsUsed__FUi@bits"@l
2022-10-16 16:05:58 +00:00
/* 8014DF30 00149D70 7C 03 00 AE */ lbzx r0, r3, r0
/* 8014DF34 00149D74 7C 03 07 74 */ extsb r3, r0
/* 8014DF38 00149D78 38 63 00 08 */ addi r3, r3, 0x8
/* 8014DF3C 00149D7C 48 00 00 14 */ b lbl_8014DF50
.global lbl_8014DF40
lbl_8014DF40:
2022-10-16 16:31:36 +00:00
/* 8014DF40 00149D80 3C 60 80 41 */ lis r3, "@LOCAL@BitsUsed__FUi@bits"@ha
/* 8014DF44 00149D84 38 63 E3 50 */ addi r3, r3, "@LOCAL@BitsUsed__FUi@bits"@l
2022-10-16 16:05:58 +00:00
/* 8014DF48 00149D88 7C 63 20 AE */ lbzx r3, r3, r4
/* 8014DF4C 00149D8C 7C 63 07 74 */ extsb r3, r3
.global lbl_8014DF50
lbl_8014DF50:
/* 8014DF50 00149D90 54 A0 28 34 */ slwi r0, r5, 5
/* 8014DF54 00149D94 7C 63 02 14 */ add r3, r3, r0
.global lbl_8014DF58
lbl_8014DF58:
/* 8014DF58 00149D98 38 03 00 07 */ addi r0, r3, 0x7
/* 8014DF5C 00149D9C 7C 00 1E 70 */ srawi r0, r0, 3
/* 8014DF60 00149DA0 7C E0 01 95 */ addze. r7, r0
/* 8014DF64 00149DA4 7C E3 3B 78 */ mr r3, r7
/* 8014DF68 00149DA8 40 81 00 E0 */ ble lbl_8014E048
/* 8014DF6C 00149DAC 54 E0 F0 BF */ srwi. r0, r7, 2
/* 8014DF70 00149DB0 7C 09 03 A6 */ mtctr r0
/* 8014DF74 00149DB4 41 82 00 A4 */ beq lbl_8014E018
.global lbl_8014DF78
lbl_8014DF78:
/* 8014DF78 00149DB8 38 E7 FF FF */ addi r7, r7, -0x1
/* 8014DF7C 00149DBC 80 81 00 48 */ lwz r4, 0x48(r1)
/* 8014DF80 00149DC0 7C E6 16 70 */ srawi r6, r7, 2
/* 8014DF84 00149DC4 7C C6 01 94 */ addze r6, r6
/* 8014DF88 00149DC8 54 E0 1E F8 */ rlwinm r0, r7, 3, 27, 28
/* 8014DF8C 00149DCC 54 C5 10 3A */ slwi r5, r6, 2
/* 8014DF90 00149DD0 38 E7 FF FF */ addi r7, r7, -0x1
/* 8014DF94 00149DD4 7C 84 28 2E */ lwzx r4, r4, r5
/* 8014DF98 00149DD8 7C E6 16 70 */ srawi r6, r7, 2
/* 8014DF9C 00149DDC 7C C6 01 94 */ addze r6, r6
/* 8014DFA0 00149DE0 7C 80 04 30 */ srw r0, r4, r0
/* 8014DFA4 00149DE4 98 1A 00 00 */ stb r0, 0x0(r26)
/* 8014DFA8 00149DE8 54 E0 1E F8 */ rlwinm r0, r7, 3, 27, 28
/* 8014DFAC 00149DEC 54 C5 10 3A */ slwi r5, r6, 2
/* 8014DFB0 00149DF0 80 81 00 48 */ lwz r4, 0x48(r1)
/* 8014DFB4 00149DF4 38 E7 FF FF */ addi r7, r7, -0x1
/* 8014DFB8 00149DF8 7C E6 16 70 */ srawi r6, r7, 2
/* 8014DFBC 00149DFC 7C 84 28 2E */ lwzx r4, r4, r5
/* 8014DFC0 00149E00 7C C6 01 94 */ addze r6, r6
/* 8014DFC4 00149E04 54 C5 10 3A */ slwi r5, r6, 2
/* 8014DFC8 00149E08 7C 80 04 30 */ srw r0, r4, r0
/* 8014DFCC 00149E0C 98 1A 00 01 */ stb r0, 0x1(r26)
/* 8014DFD0 00149E10 54 E0 1E F8 */ rlwinm r0, r7, 3, 27, 28
/* 8014DFD4 00149E14 38 E7 FF FF */ addi r7, r7, -0x1
/* 8014DFD8 00149E18 80 81 00 48 */ lwz r4, 0x48(r1)
/* 8014DFDC 00149E1C 7C E6 16 70 */ srawi r6, r7, 2
/* 8014DFE0 00149E20 7C C6 01 94 */ addze r6, r6
/* 8014DFE4 00149E24 7C 84 28 2E */ lwzx r4, r4, r5
/* 8014DFE8 00149E28 54 C5 10 3A */ slwi r5, r6, 2
/* 8014DFEC 00149E2C 7C 80 04 30 */ srw r0, r4, r0
/* 8014DFF0 00149E30 98 1A 00 02 */ stb r0, 0x2(r26)
/* 8014DFF4 00149E34 54 E0 1E F8 */ rlwinm r0, r7, 3, 27, 28
/* 8014DFF8 00149E38 80 81 00 48 */ lwz r4, 0x48(r1)
/* 8014DFFC 00149E3C 7C 84 28 2E */ lwzx r4, r4, r5
/* 8014E000 00149E40 7C 80 04 30 */ srw r0, r4, r0
/* 8014E004 00149E44 98 1A 00 03 */ stb r0, 0x3(r26)
/* 8014E008 00149E48 3B 5A 00 04 */ addi r26, r26, 0x4
/* 8014E00C 00149E4C 42 00 FF 6C */ bdnz lbl_8014DF78
/* 8014E010 00149E50 70 63 00 03 */ andi. r3, r3, 0x3
/* 8014E014 00149E54 41 82 00 34 */ beq lbl_8014E048
.global lbl_8014E018
lbl_8014E018:
/* 8014E018 00149E58 7C 69 03 A6 */ mtctr r3
.global lbl_8014E01C
lbl_8014E01C:
/* 8014E01C 00149E5C 38 E7 FF FF */ addi r7, r7, -0x1
/* 8014E020 00149E60 80 81 00 48 */ lwz r4, 0x48(r1)
/* 8014E024 00149E64 7C E6 16 70 */ srawi r6, r7, 2
/* 8014E028 00149E68 7C C6 01 94 */ addze r6, r6
/* 8014E02C 00149E6C 54 E0 1E F8 */ rlwinm r0, r7, 3, 27, 28
/* 8014E030 00149E70 54 C5 10 3A */ slwi r5, r6, 2
/* 8014E034 00149E74 7C 84 28 2E */ lwzx r4, r4, r5
/* 8014E038 00149E78 7C 80 04 30 */ srw r0, r4, r0
/* 8014E03C 00149E7C 98 1A 00 00 */ stb r0, 0x0(r26)
/* 8014E040 00149E80 3B 5A 00 01 */ addi r26, r26, 0x1
/* 8014E044 00149E84 42 00 FF D8 */ bdnz lbl_8014E01C
.global lbl_8014E048
lbl_8014E048:
/* 8014E048 00149E88 80 61 00 28 */ lwz r3, 0x28(r1)
/* 8014E04C 00149E8C 2C 03 00 00 */ cmpwi r3, 0x0
/* 8014E050 00149E90 41 82 00 08 */ beq lbl_8014E058
2022-10-16 16:31:36 +00:00
/* 8014E054 00149E94 48 00 57 7D */ bl MOiFree__FPv
2022-10-16 16:05:58 +00:00
.global lbl_8014E058
lbl_8014E058:
/* 8014E058 00149E98 80 61 00 38 */ lwz r3, 0x38(r1)
/* 8014E05C 00149E9C 2C 03 00 00 */ cmpwi r3, 0x0
/* 8014E060 00149EA0 41 82 00 08 */ beq lbl_8014E068
2022-10-16 16:31:36 +00:00
/* 8014E064 00149EA4 48 00 57 6D */ bl MOiFree__FPv
2022-10-16 16:05:58 +00:00
.global lbl_8014E068
lbl_8014E068:
/* 8014E068 00149EA8 80 61 00 48 */ lwz r3, 0x48(r1)
/* 8014E06C 00149EAC 2C 03 00 00 */ cmpwi r3, 0x0
/* 8014E070 00149EB0 41 82 00 08 */ beq lbl_8014E078
2022-10-16 16:31:36 +00:00
/* 8014E074 00149EB4 48 00 57 5D */ bl MOiFree__FPv
2022-10-16 16:05:58 +00:00
.global lbl_8014E078
lbl_8014E078:
/* 8014E078 00149EB8 39 61 00 A0 */ addi r11, r1, 0xa0
/* 8014E07C 00149EBC 4B EB 93 05 */ bl lbl_80007380
/* 8014E080 00149EC0 80 01 00 A4 */ lwz r0, 0xa4(r1)
/* 8014E084 00149EC4 7C 08 03 A6 */ mtlr r0
/* 8014E088 00149EC8 38 21 00 A0 */ addi r1, r1, 0xa0
/* 8014E08C 00149ECC 4E 80 00 20 */ blr
2022-10-17 09:05:43 +00:00
.include "macros.inc"
.section .rodata, "wa" # 0x80406560 - 0x80421040 ; 0x0001AAE0
.global "@LOCAL@BitsUsed__FUi@bits"
"@LOCAL@BitsUsed__FUi@bits":
.4byte 0x00010202
.4byte 0x03030303
.4byte 0x04040404
.4byte 0x04040404
.4byte 0x05050505
.4byte 0x05050505
.4byte 0x05050505
.4byte 0x05050505
.4byte 0x06060606
.4byte 0x06060606
.4byte 0x06060606
.4byte 0x06060606
.4byte 0x06060606
.4byte 0x06060606
.4byte 0x06060606
.4byte 0x06060606
.4byte 0x07070707
.4byte 0x07070707
.4byte 0x07070707
.4byte 0x07070707
.4byte 0x07070707
.4byte 0x07070707
.4byte 0x07070707
.4byte 0x07070707
.4byte 0x07070707
.4byte 0x07070707
.4byte 0x07070707
.4byte 0x07070707
.4byte 0x07070707
.4byte 0x07070707
.4byte 0x07070707
.4byte 0x07070707
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808
.4byte 0x08080808