📄 sdmmc_load.cod
字号:
001e4 e59f407c ldr r4, [pc, #0x7C]
001e8 e1a00004 mov r0, r4
001ec eb000000 bl wcslen
001f0 e58d4000 str r4, [sp]
001f4 e2801001 add r1, r0, #1
001f8 e59d0014 ldr r0, [sp, #0x14]
001fc e1a02081 mov r2, r1, lsl #1
00200 e59f105c ldr r1, [pc, #0x5C]
00204 e58d2004 str r2, [sp, #4]
00208 e3a03001 mov r3, #1
0020c e3a02000 mov r2, #0
00210 eb000000 bl RegSetValueExW
; 175 : Status = RegSetValueEx( hKey,L"IClass", 0, REG_MULTI_SZ, (LPBYTE)szSDMMCGuid, 500);
00214 e59f0044 ldr r0, [pc, #0x44]
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 e59f1024 ldr r1, [pc, #0x24]
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 059f0010 ldreq r0, [pc, #0x10]
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 e8bd8030 ldmia sp!, {r4, r5, pc}
00258 |$L40814|
00258 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@|
0025c 00000000 DCD |??_C@_1O@HLNE@?$AAI?$AAC?$AAl?$AAa?$AAs?$AAs?$AA?$AA@|
00260 00000000 DCD |szSDMMCGuid|
00264 00000000 DCD |??_C@_1BA@FJCC@?$AAP?$AAr?$AAo?$AAf?$AAi?$AAl?$AAe?$AA?$AA@|
00268 00000000 DCD |??_C@_1M@LBOO@?$AAS?$AAD?$AAM?$AAM?$AAC?$AA?$AA@|
0026c 00000000 DCD |??_C@_1O@ONFM@?$AAF?$AAo?$AAl?$AAd?$AAe?$AAr?$AA?$AA@|
00270 00000000 DCD |szFolder|
00274 00000000 DCD |??_C@_17GEIL@?$AAF?$AAS?$AAD?$AA?$AA@|
00278 00000000 DCD |szFSD|
0027c 00000000 DCD |??_C@_1M@PHK@?$AAI?$AAo?$AAc?$AAt?$AAl?$AA?$AA@|
00280 00000000 DCD |??_C@_1M@LLMB@?$AAO?$AAr?$AAd?$AAe?$AAr?$AA?$AA@|
00284 00000000 DCD |??_C@_1BK@EFIC@?$AAF?$AAr?$AAi?$AAe?$AAn?$AAd?$AAl?$AAy?$AAN?$AAa?$AAm?$AAe?$AA?$AA@|
00288 00000000 DCD |szFriendlyName|
0028c 00000000 DCD |??_C@_17IMOP@?$AAD?$AAl?$AAl?$AA?$AA@|
00290 00000000 DCD |szDLL|
00294 00000000 DCD |??_C@_1O@JINJ@?$AAP?$AAr?$AAe?$AAf?$AAi?$AAx?$AA?$AA@|
00298 00000000 DCD |szPrefix|
0029c 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@|
002a0 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@|
002a4 00000000 DCD |??_C@_11A@?$AA?$AA@|
002a8 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@|
002ac |$M40811|
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
|$T40821| DCD |DoGetHandleValue|
DCD 0x40001a02
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 |$M40819|
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 e59f1020 ldr r1, [pc, #0x20]
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 e8bd8030 ldmia sp!, {r4, r5, pc}
00064 |$L40823|
00064 00000000 DCD |??_C@_1BA@PCCP@?$AAH?$AAD?$AAE?$AAV?$AAI?$AAC?$AAE?$AA?$AA@|
00068 |$M40820|
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
|$T40830| DCD |DoSetHandleValue|
DCD 0x40001d02
; 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 |$M40828|
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 e59f1018 ldr r1, [pc, #0x18]
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 e8bd8010 ldmia sp!, {r4, pc}
00070 |$L40832|
00070 00000000 DCD |??_C@_1BA@PCCP@?$AAH?$AAD?$AAE?$AAV?$AAI?$AAC?$AAE?$AA?$AA@|
00074 |$M40829|
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
|$T40838| DCD |DoDeleteHandleValue|
DCD 0x40001402
; 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 |$M40836|
; 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 059f1014 ldreq r1, [pc, #0x14]
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 e8bd8000 ldmia sp!, {pc}
0004c |$L40840|
0004c 00000000 DCD |??_C@_1BA@PCCP@?$AAH?$AAD?$AAE?$AAV?$AAI?$AAC?$AAE?$AA?$AA@|
00050 |$M40837|
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
|$T40846| DCD |SML_PowerHandler|
DCD 0x40000300
; Function compile flags: /Ogsy
00000 AREA |.text| { |SML_PowerHandler| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |SML_PowerHandler| PROC
; 372 : {
00000 |$M40844|
; 373 : if (bOff)
00000 e3500000 cmp r0, #0
; 374 : {
; 375 : SML_PowerDown();
00004 1a000000 bne SML_PowerDown
; 376 : }
; 377 : else
; 378 : {
; 379 : SML_PowerUp();
00008 ea000000 b SML_PowerUp
0000c |$M40845|
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
|$T40858| DCD |SDMMCDetectThread|
DCD 0x40003b01
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
; 398 : {
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 |$M40856|
; 399 :
; 400 : HANDLE hDevice = NULL;
; 401 :
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -