📄 sdmmc_load.cod
字号:
00210 eb000000 bl RegSetValueExW
; 175 : Status = RegSetValueEx( hKey,L"IClass", 0, REG_MULTI_SZ, (LPBYTE)szSDMMCGuid, 500);
00214 e59f0048 ldr r0, [pc, #0x48]
00218 e3a03f7d mov r3, #0x7D, 30
0021c e5901000 ldr r1, [r0]
00220 e3a02000 mov r2, #0
00224 e58d3004 str r3, [sp, #4]
00228 e3a03007 mov r3, #7
0022c e58d1000 str r1, [sp]
00230 e59f1028 ldr r1, [pc, #0x28]
00234 e59d0014 ldr r0, [sp, #0x14]
00238 eb000000 bl RegSetValueExW
; 176 : if(Status == ERROR_SUCCESS)
0023c e3500000 cmp r0, #0
; 177 : RETAILMSG(1, (TEXT("DoRegSetUp is done successfully\r\n")));
00240 059f0014 ldreq r0, [pc, #0x14]
00244 0b000000 bleq NKDbgPrintfW
; 178 :
; 179 : RegCloseKey( hKey);
00248 e59d0014 ldr r0, [sp, #0x14]
0024c eb000000 bl RegCloseKey
00250 |$L40482|
; 180 : }
; 181 : }
00250 e28dd020 add sp, sp, #0x20
00254 e8bd4030 ldmia sp!, {r4, r5, lr}
00258 e12fff1e bx lr
0025c |$L40812|
0025c 00000000 DCD |??_C@_1EE@JOKL@?$AAD?$AAo?$AAR?$AAe?$AAg?$AAS?$AAe?$AAt?$AAU?$AAp?$AA?5?$AAi?$AAs?$AA?5?$AAd?$AAo?$AAn?$AAe?$AA?5?$AAs@|
00260 00000000 DCD |??_C@_1O@HLNE@?$AAI?$AAC?$AAl?$AAa?$AAs?$AAs?$AA?$AA@|
00264 00000000 DCD |szSDMMCGuid|
00268 00000000 DCD |??_C@_1BA@FJCC@?$AAP?$AAr?$AAo?$AAf?$AAi?$AAl?$AAe?$AA?$AA@|
0026c 00000000 DCD |??_C@_1M@LBOO@?$AAS?$AAD?$AAM?$AAM?$AAC?$AA?$AA@|
00270 00000000 DCD |??_C@_1O@ONFM@?$AAF?$AAo?$AAl?$AAd?$AAe?$AAr?$AA?$AA@|
00274 00000000 DCD |szFolder|
00278 00000000 DCD |??_C@_17GEIL@?$AAF?$AAS?$AAD?$AA?$AA@|
0027c 00000000 DCD |szFSD|
00280 00000000 DCD |??_C@_1M@PHK@?$AAI?$AAo?$AAc?$AAt?$AAl?$AA?$AA@|
00284 00000000 DCD |??_C@_1M@LLMB@?$AAO?$AAr?$AAd?$AAe?$AAr?$AA?$AA@|
00288 00000000 DCD |??_C@_1BK@EFIC@?$AAF?$AAr?$AAi?$AAe?$AAn?$AAd?$AAl?$AAy?$AAN?$AAa?$AAm?$AAe?$AA?$AA@|
0028c 00000000 DCD |szFriendlyName|
00290 00000000 DCD |??_C@_17IMOP@?$AAD?$AAl?$AAl?$AA?$AA@|
00294 00000000 DCD |szDLL|
00298 00000000 DCD |??_C@_1O@JINJ@?$AAP?$AAr?$AAe?$AAf?$AAi?$AAx?$AA?$AA@|
0029c 00000000 DCD |szPrefix|
002a0 00000000 DCD |??_C@_1DM@CLKA@?$AA?$CB?$AA?$CB?$AA?$CB?$AA?5?$AAF?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AAt?$AAo?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe@|
002a4 00000000 DCD |??_C@_1DM@PJAM@?$AAS?$AAu?$AAc?$AAc?$AAe?$AAs?$AAs?$AAf?$AAu?$AAl?$AAl?$AAy?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe?$AAd@|
002a8 00000000 DCD |??_C@_11A@?$AA?$AA@|
002ac 00000000 DCD |??_C@_1DK@MLKH@?$AAS?$AAu?$AAc?$AAc?$AAe?$AAs?$AAs?$AAf?$AAu?$AAl?$AAl?$AAy?$AA?5?$AAo?$AAp?$AAe?$AAn?$AAe?$AAd?$AA?5@|
002b0 |$M40809|
ENDP ; |DoRegSetup|
EXPORT |DoGetHandleValue|
EXPORT |??_C@_1BA@PCCP@?$AAH?$AAD?$AAE?$AAV?$AAI?$AAC?$AAE?$AA?$AA@| [ DATA ] ; `string'
00000 AREA |.text| { |DoGetHandleValue| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$DoGetHandleValue|, PDATA, SELECTION=5, ASSOC=|.text| { |DoGetHandleValue| } ; comdat associative
|$T40819| DCD |DoGetHandleValue|
DCD 0x40001b02
00000 AREA |.rdata| { |??_C@_1BA@PCCP@?$AAH?$AAD?$AAE?$AAV?$AAI?$AAC?$AAE?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BA@PCCP@?$AAH?$AAD?$AAE?$AAV?$AAI?$AAC?$AAE?$AA?$AA@| DCB "H", 0x0
DCB "D", 0x0, "E", 0x0, "V", 0x0, "I", 0x0, "C", 0x0, "E", 0x0
DCB 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |DoGetHandleValue| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |DoGetHandleValue| PROC
; 184 : {
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 e24dd008 sub sp, sp, #8
00008 |$M40817|
00008 e1a04001 mov r4, r1
; 185 : LONG nErr;
; 186 : HKEY hKey = NULL;
; 187 : *phDevice = NULL;
; 188 : nErr = RegOpenKeyEx( HKEY_LOCAL_MACHINE, szRegKey, 0, 0, &hKey);
0000c e28d1004 add r1, sp, #4
00010 e58d1000 str r1, [sp]
00014 e3a05000 mov r5, #0
00018 e1a01000 mov r1, r0
0001c e58d5004 str r5, [sp, #4]
00020 e3a03000 mov r3, #0
00024 e5845000 str r5, [r4]
00028 e3a02000 mov r2, #0
0002c e3a0010a mov r0, #0xA, 2
00030 eb000000 bl RegOpenKeyExW
; 189 : if (nErr == ERROR_SUCCESS)
00034 e3500000 cmp r0, #0
00038 1a000005 bne |$L40526|
; 190 : {
; 191 : if (!SDMCC_GetRegistryValue(hKey, L"HDEVICE", (PDWORD)phDevice))
0003c e59f1024 ldr r1, [pc, #0x24]
00040 e1a02004 mov r2, r4
00044 e59d0004 ldr r0, [sp, #4]
00048 eb000000 bl SDMCC_GetRegistryValue
0004c e3500000 cmp r0, #0
; 192 : {
; 193 : *phDevice = NULL;
00050 05845000 streq r5, [r4]
00054 |$L40526|
; 194 : }
; 195 : }
; 196 : RegCloseKey( hKey);
00054 e59d0004 ldr r0, [sp, #4]
00058 eb000000 bl RegCloseKey
; 197 : }
0005c e28dd008 add sp, sp, #8
00060 e8bd4030 ldmia sp!, {r4, r5, lr}
00064 e12fff1e bx lr
00068 |$L40821|
00068 00000000 DCD |??_C@_1BA@PCCP@?$AAH?$AAD?$AAE?$AAV?$AAI?$AAC?$AAE?$AA?$AA@|
0006c |$M40818|
ENDP ; |DoGetHandleValue|
EXPORT |DoSetHandleValue|
00000 AREA |.text| { |DoSetHandleValue| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$DoSetHandleValue|, PDATA, SELECTION=5, ASSOC=|.text| { |DoSetHandleValue| } ; comdat associative
|$T40828| DCD |DoSetHandleValue|
DCD 0x40001e02
; Function compile flags: /Ogsy
00000 AREA |.text| { |DoSetHandleValue| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |DoSetHandleValue| PROC
; 200 : {
00000 e92d4010 stmdb sp!, {r4, lr}
00004 e24dd010 sub sp, sp, #0x10
00008 |$M40826|
00008 e1a04001 mov r4, r1
; 201 :
; 202 : HKEY hKey = NULL;
0000c e3a01000 mov r1, #0
; 203 : LONG nErr = RegOpenKeyEx( HKEY_LOCAL_MACHINE, szRegKey, 0, 0, &hKey);
00010 e28d2008 add r2, sp, #8
00014 e58d1008 str r1, [sp, #8]
00018 e58d2000 str r2, [sp]
0001c e1a01000 mov r1, r0
00020 e3a03000 mov r3, #0
00024 e3a02000 mov r2, #0
00028 e3a0010a mov r0, #0xA, 2
0002c eb000000 bl RegOpenKeyExW
; 204 : if (nErr == ERROR_SUCCESS)
00030 e3500000 cmp r0, #0
00034 1a000009 bne |$L40539|
; 205 : {
; 206 : WRITE_REG_DWORD(L"HDEVICE", (DWORD)hDevice)
00038 e3a00004 mov r0, #4
0003c e58d400c str r4, [sp, #0xC]
00040 e28d100c add r1, sp, #0xC
00044 e58d0004 str r0, [sp, #4]
00048 e58d1000 str r1, [sp]
0004c e3a03004 mov r3, #4
00050 e59f101c ldr r1, [pc, #0x1C]
00054 e3a02000 mov r2, #0
00058 e59d0008 ldr r0, [sp, #8]
0005c eb000000 bl RegSetValueExW
00060 |$L40539|
; 207 : }
; 208 : RegCloseKey( hKey);
00060 e59d0008 ldr r0, [sp, #8]
00064 eb000000 bl RegCloseKey
; 209 : }
00068 e28dd010 add sp, sp, #0x10
0006c e8bd4010 ldmia sp!, {r4, lr}
00070 e12fff1e bx lr
00074 |$L40830|
00074 00000000 DCD |??_C@_1BA@PCCP@?$AAH?$AAD?$AAE?$AAV?$AAI?$AAC?$AAE?$AA?$AA@|
00078 |$M40827|
ENDP ; |DoSetHandleValue|
EXPORT |DoDeleteHandleValue|
IMPORT |RegDeleteValueW|
00000 AREA |.text| { |DoDeleteHandleValue| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$DoDeleteHandleValue|, PDATA, SELECTION=5, ASSOC=|.text| { |DoDeleteHandleValue| } ; comdat associative
|$T40836| DCD |DoDeleteHandleValue|
DCD 0x40001502
; Function compile flags: /Ogsy
00000 AREA |.text| { |DoDeleteHandleValue| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |DoDeleteHandleValue| PROC
; 212 : {
00000 e52de004 str lr, [sp, #-4]!
00004 e24dd008 sub sp, sp, #8
00008 |$M40834|
; 213 :
; 214 : HKEY hKey = NULL;
00008 e3a01000 mov r1, #0
; 215 : LONG nErr = RegOpenKeyEx( HKEY_LOCAL_MACHINE, szRegKey, 0, 0, &hKey);
0000c e28d2004 add r2, sp, #4
00010 e58d1004 str r1, [sp, #4]
00014 e58d2000 str r2, [sp]
00018 e1a01000 mov r1, r0
0001c e3a03000 mov r3, #0
00020 e3a02000 mov r2, #0
00024 e3a0010a mov r0, #0xA, 2
00028 eb000000 bl RegOpenKeyExW
; 216 : if (nErr == ERROR_SUCCESS)
0002c e3500000 cmp r0, #0
; 217 : {
; 218 : RegDeleteValue( hKey, L"HDEVICE");
00030 059f1018 ldreq r1, [pc, #0x18]
00034 059d0004 ldreq r0, [sp, #4]
00038 0b000000 bleq RegDeleteValueW
; 219 : }
; 220 : RegCloseKey( hKey);
0003c e59d0004 ldr r0, [sp, #4]
00040 eb000000 bl RegCloseKey
; 221 : }
00044 e28dd008 add sp, sp, #8
00048 e8bd4000 ldmia sp!, {lr}
0004c e12fff1e bx lr
00050 |$L40838|
00050 00000000 DCD |??_C@_1BA@PCCP@?$AAH?$AAD?$AAE?$AAV?$AAI?$AAC?$AAE?$AA?$AA@|
00054 |$M40835|
ENDP ; |DoDeleteHandleValue|
EXPORT |SML_PowerUp|
EXPORT |SML_PowerDown|
EXPORT |SML_PowerHandler|
00000 AREA |.text| { |SML_PowerHandler| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$SML_PowerHandler|, PDATA, SELECTION=5, ASSOC=|.text| { |SML_PowerHandler| } ; comdat associative
|$T40844| DCD |SML_PowerHandler|
DCD 0x40000901
; Function compile flags: /Ogsy
00000 AREA |.text| { |SML_PowerHandler| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |SML_PowerHandler| PROC
; 373 : {
00000 e52de004 str lr, [sp, #-4]!
00004 |$M40842|
; 374 : if (bOff)
00004 e3500000 cmp r0, #0
00008 0a000002 beq |$L40583|
; 375 : {
; 376 : SML_PowerDown();
0000c eb000000 bl SML_PowerDown
; 381 : }
; 382 :
; 383 : }
00010 e8bd4000 ldmia sp!, {lr}
00014 e12fff1e bx lr
00018 |$L40583|
; 377 : }
; 378 : else
; 379 : {
; 380 : SML_PowerUp();
00018 eb000000 bl SML_PowerUp
; 381 : }
; 382 :
; 383 : }
0001c e8bd4000 ldmia sp!, {lr}
00020 e12fff1e bx lr
00024 |$M40843|
ENDP ; |SML_PowerHandler|
EXPORT |SDMMCDetectThread|
EXPORT |??_C@_1CM@CGPI@?$AAS?$AAD?$AAM?$AAM?$AAC?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?5?$AAi?$AAn?$AAs?$AAe?$AAr?$AAt?$AAe?$AAd?$AA?$AN@| [ DATA ] ; `string'
EXPORT |??_C@_1CM@IHDK@?$AAS?$AAD?$AAM?$AAM?$AAC?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?5?$AAd?$AAe?$AAs?$AAe?$AAr?$AAt?$AAe?$AAd?$AA?$AN@| [ DATA ] ; `string'
IMPORT |ActivateDevice|
IMPORT |MmMapIoSpace|
IMPORT |DeactivateDevice|
IMPORT |Sleep|
00000 AREA |.text| { |SDMMCDetectThread| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$SDMMCDetectThread|, PDATA, SELECTION=5, ASSOC=|.text| { |SDMMCDetectThread| } ; comdat associative
|$T40856| DCD |SDMMCDetectThread|
DCD 0x40003c01
00000 AREA |.rdata| { |??_C@_1CM@CGPI@?$AAS?$AAD?$AAM?$AAM?$AAC?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?5?$AAi?$AAn?$AAs?$AAe?$AAr?$AAt?$AAe?$AAd?$AA?$AN@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CM@CGPI@?$AAS?$AAD?$AAM?$AAM?$AAC?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?5?$AAi?$AAn?$AAs?$AAe?$AAr?$AAt?$AAe?$AAd?$AA?$AN@| DCB "S"
DCB 0x0, "D", 0x0, "M", 0x0, "M", 0x0, "C", 0x0, " ", 0x0, "c"
DCB 0x0, "a", 0x0, "r", 0x0, "d", 0x0, " ", 0x0, "i", 0x0, "n"
DCB 0x0, "s", 0x0, "e", 0x0, "r", 0x0, "t", 0x0, "e", 0x0, "d"
DCB 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1CM@IHDK@?$AAS?$AAD?$AAM?$AAM?$AAC?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?5?$AAd?$AAe?$AAs?$AAe?$AAr?$AAt?$AAe?$AAd?$AA?$AN@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CM@IHDK@?$AAS?$AAD?$AAM?$AAM?$AAC?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?5?$AAd?$AAe?$AAs?$AAe?$AAr?$AAt?$AAe?$AAd?$AA?$AN@| DCB "S"
DCB 0x0, "D", 0x0, "M", 0x0, "M", 0x0, "C", 0x0, " ", 0x0, "c"
DCB 0x0, "a", 0x0, "r", 0x0, "d", 0x0, " ", 0x0, "d", 0x0, "e"
DCB 0x0, "s", 0x0, "e", 0x0, "r", 0x0, "t", 0x0, "e", 0x0, "d"
DCB 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |SDMMCDetectThread| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |SDMMCDetectThread| PROC
; 399 : {
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 |$M40854|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -