Skip to content

Instantly share code, notes, and snippets.

@pixel-stuck
Last active May 2, 2018 01:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pixel-stuck/7871ada3816c2b28fc55d52583c4da12 to your computer and use it in GitHub Desktop.
Save pixel-stuck/7871ada3816c2b28fc55d52583c4da12 to your computer and use it in GitHub Desktop.
RAM:9FC00534 skc_handler: # DATA XREF: sub_9FC00470+94↑o
RAM:9FC00534 # sub_BFC00470+94↓o
RAM:9FC00534
RAM:9FC00534 arg_18 = 0x18
RAM:9FC00534 arg_90 = 0x90
RAM:9FC00534 arg_98 = 0x98
RAM:9FC00534 arg_A0 = 0xA0
RAM:9FC00534 arg_A8 = 0xA8
RAM:9FC00534 arg_B0 = 0xB0
RAM:9FC00534 arg_B8 = 0xB8
RAM:9FC00534 arg_C0 = 0xC0
RAM:9FC00534 arg_C8 = 0xC8
RAM:9FC00534 arg_F0 = 0xF0
RAM:9FC00534 arg_F8 = 0xF8
RAM:9FC00534 arg_100 = 0x100
RAM:9FC00534 arg_108 = 0x108
RAM:9FC00534 arg_110 = 0x110
RAM:9FC00534 arg_118 = 0x118
RAM:9FC00534 arg_128 = 0x128
RAM:9FC00534 arg_130 = 0x130
RAM:9FC00534
RAM:9FC00534 3C 08 9F C0+ la $t0, sub_9FC009CC
RAM:9FC0053C 01 00 F8 09 jalr $t0 ; sub_9FC009CC
RAM:9FC00540 00 00 00 00 nop
RAM:9FC00544 24 01 FF FF li $at, 0xFFFFFFFF
RAM:9FC00548 00 01 0C 38 dsll $at, 16
RAM:9FC0054C 34 21 5F FF ori $at, 0x5FFF
RAM:9FC00550 00 01 0C 38 dsll $at, 16
RAM:9FC00554 34 21 FF FF ori $at, 0xFFFF
RAM:9FC00558 03 A1 E8 24 and $sp, $at
RAM:9FC0055C 3C 01 80 00 lui $at, 0x8000
RAM:9FC00560 03 A1 E8 25 or $sp, $at
RAM:9FC00564 3C 0A 9F C1+ la $t2, skc_table_size
RAM:9FC0056C 8D 4B 00 00 lw $t3, (skc_table_size - 0x9FC0BDEC)($t2)
RAM:9FC00570 00 4B 08 2A slt $at, $v0, $t3
RAM:9FC00574 10 20 00 09 beqz $at, loc_9FC0059C
RAM:9FC00578 00 00 00 00 nop
RAM:9FC0057C 3C 0A 9F C1+ la $t2, cur_proc_allowed_skc_bitmask
RAM:9FC00584 8D 4B 00 00 lw $t3, (cur_proc_allowed_skc_bitmask - 0x9FC0F348)($t2) # get the process perms
RAM:9FC00588 24 0A 00 01 li $t2, 1
RAM:9FC0058C 00 4A 50 04 sllv $t2, $v0 # 1 << (skc_num & 0x1F)
RAM:9FC00590 01 6A 58 24 and $t3, $t2
RAM:9FC00594 1D 60 00 04 bgtz $t3, loc_9FC005A8
RAM:9FC00598 00 00 00 00 nop
RAM:9FC0059C
RAM:9FC0059C loc_9FC0059C: # CODE XREF: skc_handler+40↑j
RAM:9FC0059C 24 02 FF F5 li $v0, 0xFFFFFFF5
RAM:9FC005A0 0B F0 01 71 j loc_9FC005C4
RAM:9FC005A4 00 00 00 00 nop
RAM:9FC005A8 # ---------------------------------------------------------------------------
RAM:9FC005A8
RAM:9FC005A8 loc_9FC005A8: # CODE XREF: skc_handler+60↑j
RAM:9FC005A8 00 02 40 80 sll $t0, $v0, 2 # skc_num * 4 (skc_table index)
RAM:9FC005AC 3C 09 9F C1+ la $t1, skc_table
RAM:9FC005B4 01 28 48 21 addu $t1, $t0 # skc_table_ptr + skc_index
RAM:9FC005B8 8D 28 00 00 lw $t0, 0($t1) # load skc function address into t0
RAM:9FC005BC 01 00 F8 09 jalr $t0
RAM:9FC005C0 00 00 00 00 nop
RAM:9FC005C4
RAM:9FC005C4 loc_9FC005C4: # CODE XREF: skc_handler+6C↑j
RAM:9FC005C4 3C 08 9F C0+ la $t0, sub_9FC00A38
RAM:9FC005CC 01 00 F8 09 jalr $t0 ; sub_9FC00A38
RAM:9FC005D0 00 00 00 00 nop
RAM:9FC005D4 3C 01 A0 00 lui $at, 0xA000
RAM:9FC005D8 03 A1 E8 25 or $sp, $at
RAM:9FC005DC 3C 09 A4 30+ la $t1, dword_A4300014
RAM:9FC005E4 8D 28 00 00 lw $t0, (dword_A4300014 - 0xA4300014)($t1)
RAM:9FC005E8 24 01 FF BB li $at, 0xFFFFFFBB
RAM:9FC005EC 01 01 40 24 and $t0, $at
RAM:9FC005F0 24 01 FF FE li $at, 0xFFFFFFFE
RAM:9FC005F4 01 01 40 24 and $t0, $at
RAM:9FC005F8 40 0C 60 00 mfc0 $t4, SR # Status register
RAM:9FC005FC 3C 01 FF EF+ li $at, 0xFFEFFFFF
RAM:9FC00604 01 81 60 24 and $t4, $at
RAM:9FC00608 3C 01 FF BF+ li $at, 0xFFBFFFFF
RAM:9FC00610 01 81 60 24 and $t4, $at
RAM:9FC00614 40 8C 60 00 mtc0 $t4, SR # Status register
RAM:9FC00618 DF AD 01 10 ld $t5, arg_110($sp)
RAM:9FC0061C 40 8D E0 00 mtc0 $t5, TagLo # Cache Tag register
RAM:9FC00620 DF AD 01 18 ld $t5, arg_118($sp)
RAM:9FC00624 40 8D E8 00 mtc0 $t5, TagHi # Cache Tag register
RAM:9FC00628 DF AD 01 28 ld $t5, arg_128($sp)
RAM:9FC0062C 01 A0 00 13 mtlo $t5
RAM:9FC00630 DF AD 01 30 ld $t5, arg_130($sp)
RAM:9FC00634 01 A0 00 11 mthi $t5
RAM:9FC00638 DF A1 00 18 ld $at, arg_18($sp)
RAM:9FC0063C DF B0 00 90 ld $s0, arg_90($sp)
RAM:9FC00640 DF B1 00 98 ld $s1, arg_98($sp)
RAM:9FC00644 DF B2 00 A0 ld $s2, arg_A0($sp)
RAM:9FC00648 DF B3 00 A8 ld $s3, arg_A8($sp)
RAM:9FC0064C DF B4 00 B0 ld $s4, arg_B0($sp)
RAM:9FC00650 DF B5 00 B8 ld $s5, arg_B8($sp)
RAM:9FC00654 DF B6 00 C0 ld $s6, arg_C0($sp)
RAM:9FC00658 DF B7 00 C8 ld $s7, arg_C8($sp)
RAM:9FC0065C DF BE 01 00 ld $fp, arg_100($sp)
RAM:9FC00660 DF BC 00 F0 ld $gp, arg_F0($sp)
RAM:9FC00664 DF BF 01 08 ld $ra, arg_108($sp)
RAM:9FC00668 8F BD 00 F8 lw $sp, arg_F8($sp)
RAM:9FC0066C 00 00 00 00 nop
RAM:9FC00670 00 00 00 00 nop
RAM:9FC00674 00 00 00 00 nop
RAM:9FC00678 00 00 00 00 nop
RAM:9FC0067C 00 00 00 00 nop
RAM:9FC00680 AD 28 00 00 sw $t0, (dword_A4300014 - 0xA4300014)($t1)
RAM:9FC00684 8D 29 FF FC lw $t1, (dword_A4300010 - 0xA4300014)($t1)
RAM:9FC00688 42 00 00 18 eret
RAM:9FC00688 # End of function skc_handler
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment