Skip to content

Instantly share code, notes, and snippets.

@SamRH
Created March 25, 2012 03:29
Show Gist options
  • Save SamRH/2191130 to your computer and use it in GitHub Desktop.
Save SamRH/2191130 to your computer and use it in GitHub Desktop.
; ======================================================
; Subroutine sceUsbAcc_internal_79A1C743 - Address 0x00000000 - Aliases: sceUsbAcc_79A1C743, sceUsbAcc_driver_79A1C743
; Exported in sceUsbAcc_internal
; Exported in sceUsbAcc
; Exported in sceUsbAcc_driver
sceUsbAcc_internal_79A1C743:
0x00000000: 0x27BDFFF0 '...'' - addiu $sp, $sp, -16
0x00000004: 0xAFB10004 '....' - sw $s1, 4($sp)
0x00000008: 0xAFB00000 '....' - sw $s0, 0($sp)
0x0000000C: 0xAFBF0008 '....' - sw $ra, 8($sp)
0x00000010: 0x0C00022A '*...' - jal InterruptManagerForKernel_092968F4
0x00000014: 0x00000000 '....' - nop
; Data ref 0x00000D53
0x00000018: 0x3C030000 '...<' - lui $v1, 0x0
; Data ref 0x00000D53
0x0000001C: 0x90640D53 'S.d.' - lbu $a0, 3411($v1)
0x00000020: 0x00408821 '!.@.' - move $s1, $v0
0x00000024: 0x3C028024 '$..<' - lui $v0, 0x8024
0x00000028: 0x14800009 '....' - bnez $a0, loc_00000050
0x0000002C: 0x34503007 '.0P4' - ori $s0, $v0, 0x3007
loc_00000030: ; Refs: 0x00000060
0x00000030: 0x0C00022C ',...' - jal InterruptManagerForKernel_5F10D406
0x00000034: 0x02202021 '! .' - move $a0, $s1
0x00000038: 0x02001021 '!...' - move $v0, $s0
0x0000003C: 0x8FBF0008 '....' - lw $ra, 8($sp)
0x00000040: 0x8FB10004 '....' - lw $s1, 4($sp)
0x00000044: 0x8FB00000 '....' - lw $s0, 0($sp)
0x00000048: 0x03E00008 '....' - jr $ra
0x0000004C: 0x27BD0010 '...'' - addiu $sp, $sp, 16
loc_00000050: ; Refs: 0x00000028
0x00000050: 0x0C00023E '>...' - jal sceUsbBus_driver_8A3EB5D2
0x00000054: 0x00008021 '!...' - move $s0, $zr
0x00000058: 0x3C058024 '$..<' - lui $a1, 0x8024
0x0000005C: 0x34A43701 '.7.4' - ori $a0, $a1, 0x3701
0x00000060: 0x0800000C '....' - j loc_00000030
0x00000064: 0x0082800A '....' - movz $s0, $a0, $v0
#define STATUS_CODE_MAJOR 0x80240000
#define USB_ACC_STATUS(x) (STATUS_CODE_MAJOR | x)
static unsigned char g_00000D53; //I think this is used as a bool
//returns a status code?
unsigned int sceUsbAcc_internal_79A1C743(void)
{
unsigned int ret;
unsigned int intr = sceKernelCpuSuspendIntr();
if ( (g_00000D53) && (sceUsbBus_driver_8A3EB5D2() == 0) )
ret = USB_ACC_STATUS(0x3701);
else
ret = USB_ACC_STATUS(0x3007);
sceKernelCpuResumeIntr(intr);
return ret;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment