summaryrefslogtreecommitdiff
path: root/asm/gsCrypt.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/gsCrypt.s')
-rw-r--r--asm/gsCrypt.s83
1 files changed, 83 insertions, 0 deletions
diff --git a/asm/gsCrypt.s b/asm/gsCrypt.s
new file mode 100644
index 0000000..190a129
--- /dev/null
+++ b/asm/gsCrypt.s
@@ -0,0 +1,83 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gsCryptRSAEncryptBuffer
+gsCryptRSAEncryptBuffer:
+/* 80339694 003352F4 94 21 FE D0 */ stwu r1, -0x130(r1)
+/* 80339698 003352F8 7C 08 02 A6 */ mflr r0
+/* 8033969C 003352FC 90 01 01 34 */ stw r0, 0x134(r1)
+/* 803396A0 00335300 39 61 01 30 */ addi r11, r1, 0x130
+/* 803396A4 00335304 4B E8 DA 7D */ bl func_801C7120
+/* 803396A8 00335308 28 05 00 75 */ cmplwi r5, 0x75
+/* 803396AC 0033530C 7C 79 1B 78 */ mr r25, r3
+/* 803396B0 00335310 7C 9A 23 78 */ mr r26, r4
+/* 803396B4 00335314 7C BB 2B 78 */ mr r27, r5
+/* 803396B8 00335318 7C DC 33 78 */ mr r28, r6
+/* 803396BC 0033531C 3B C1 00 0C */ addi r30, r1, 0xc
+/* 803396C0 00335320 40 81 00 0C */ ble lbl_803396CC
+/* 803396C4 00335324 38 60 FF FF */ li r3, -1
+/* 803396C8 00335328 48 00 00 D0 */ b lbl_80339798
+lbl_803396CC:
+/* 803396CC 0033532C 38 60 00 00 */ li r3, 0
+/* 803396D0 00335330 38 00 00 02 */ li r0, 2
+/* 803396D4 00335334 98 61 00 0C */ stb r3, 0xc(r1)
+/* 803396D8 00335338 98 01 00 0D */ stb r0, 0xd(r1)
+/* 803396DC 0033533C 4B FF F8 FD */ bl current_time
+/* 803396E0 00335340 4B FF F9 81 */ bl Util_RandSeed
+/* 803396E4 00335344 23 BB 00 7D */ subfic r29, r27, 0x7d
+/* 803396E8 00335348 3B E0 00 00 */ li r31, 0
+/* 803396EC 0033534C 48 00 00 20 */ b lbl_8033970C
+lbl_803396F0:
+/* 803396F0 00335350 38 60 00 00 */ li r3, 0
+/* 803396F4 00335354 38 80 00 FF */ li r4, 0xff
+/* 803396F8 00335358 4B FF F9 81 */ bl Util_RandInt
+/* 803396FC 0033535C 7C 9E FA 14 */ add r4, r30, r31
+/* 80339700 00335360 38 03 00 01 */ addi r0, r3, 1
+/* 80339704 00335364 98 04 00 02 */ stb r0, 2(r4)
+/* 80339708 00335368 3B FF 00 01 */ addi r31, r31, 1
+lbl_8033970C:
+/* 8033970C 0033536C 7C 1F E8 40 */ cmplw r31, r29
+/* 80339710 00335370 41 80 FF E0 */ blt lbl_803396F0
+/* 80339714 00335374 20 1B 00 7E */ subfic r0, r27, 0x7e
+/* 80339718 00335378 7C BE EA 14 */ add r5, r30, r29
+/* 8033971C 0033537C 38 C0 00 00 */ li r6, 0
+/* 80339720 00335380 7F 44 D3 78 */ mr r4, r26
+/* 80339724 00335384 7C 7E 02 14 */ add r3, r30, r0
+/* 80339728 00335388 98 C5 00 02 */ stb r6, 2(r5)
+/* 8033972C 0033538C 7F 65 DB 78 */ mr r5, r27
+/* 80339730 00335390 38 63 00 02 */ addi r3, r3, 2
+/* 80339734 00335394 4B CC A8 CD */ bl memcpy
+/* 80339738 00335398 38 00 00 20 */ li r0, 0x20
+/* 8033973C 0033539C 38 61 00 08 */ addi r3, r1, 8
+/* 80339740 003353A0 90 01 00 08 */ stw r0, 8(r1)
+/* 80339744 003353A4 48 00 27 CD */ bl gsLargeIntReverseBytes
+/* 80339748 003353A8 2C 03 00 00 */ cmpwi r3, 0
+/* 8033974C 003353AC 41 82 00 30 */ beq lbl_8033977C
+/* 80339750 003353B0 38 61 00 08 */ addi r3, r1, 8
+/* 80339754 003353B4 7F 25 CB 78 */ mr r5, r25
+/* 80339758 003353B8 7C 66 1B 78 */ mr r6, r3
+/* 8033975C 003353BC 38 99 01 04 */ addi r4, r25, 0x104
+/* 80339760 003353C0 48 00 1C 89 */ bl gsLargeIntPowerMod
+/* 80339764 003353C4 2C 03 00 00 */ cmpwi r3, 0
+/* 80339768 003353C8 41 82 00 14 */ beq lbl_8033977C
+/* 8033976C 003353CC 38 61 00 08 */ addi r3, r1, 8
+/* 80339770 003353D0 48 00 27 A1 */ bl gsLargeIntReverseBytes
+/* 80339774 003353D4 2C 03 00 00 */ cmpwi r3, 0
+/* 80339778 003353D8 40 82 00 0C */ bne lbl_80339784
+lbl_8033977C:
+/* 8033977C 003353DC 38 60 FF FF */ li r3, -1
+/* 80339780 003353E0 48 00 00 18 */ b lbl_80339798
+lbl_80339784:
+/* 80339784 003353E4 7F 83 E3 78 */ mr r3, r28
+/* 80339788 003353E8 38 81 00 0C */ addi r4, r1, 0xc
+/* 8033978C 003353EC 38 A0 00 80 */ li r5, 0x80
+/* 80339790 003353F0 4B CC A8 71 */ bl memcpy
+/* 80339794 003353F4 38 60 00 00 */ li r3, 0
+lbl_80339798:
+/* 80339798 003353F8 39 61 01 30 */ addi r11, r1, 0x130
+/* 8033979C 003353FC 4B E8 D9 D1 */ bl func_801C716C
+/* 803397A0 00335400 80 01 01 34 */ lwz r0, 0x134(r1)
+/* 803397A4 00335404 7C 08 03 A6 */ mtlr r0
+/* 803397A8 00335408 38 21 01 30 */ addi r1, r1, 0x130
+/* 803397AC 0033540C 4E 80 00 20 */ blr