📄 system.cod
字号:
; 437 : psdi->dwDeviceType |= STORAGE_DEVICE_TYPE_UNKNOWN;
001d8 e5970048 ldr r0, [r7, #0x48]
; 438 : psdi->dwDeviceFlags |= STORAGE_DEVICE_FLAG_READWRITE;
001dc e597104c ldr r1, [r7, #0x4C]
001e0 e3a04001 mov r4, #1
001e4 e380220a orr r2, r0, #0xA, 4
; 439 : if (pBytesReturned)
001e8 e59d0024 ldr r0, [sp, #0x24]
001ec e3813001 orr r3, r1, #1
001f0 e5874044 str r4, [r7, #0x44]
001f4 e5872048 str r2, [r7, #0x48]
001f8 e3500000 cmp r0, #0
001fc e587304c str r3, [r7, #0x4C]
00200 0affffb5 beq |$L37031|
; 440 : *pBytesReturned = sizeof(STORAGEDEVICEINFO);
00204 e3a01050 mov r1, #0x50
00208 e5801000 str r1, [r0]
; 441 : return TRUE;
0020c eaffffb2 b |$L37031|
00210 |$L37271|
00210 00000000 DCD |??_C@_1M@LBOO@?$AAS?$AAD?$AAM?$AAM?$AAC?$AA?$AA@|
00214 00071c24 DCD 0x71c24
00218 00079c0c DCD 0x79c0c
0021c 00075c08 DCD 0x75c08
00220 00071c04 DCD 0x71c04
00224 |$M37268|
ENDP ; |DSK_IOControl|
EXPORT |DSK_Read|
00000 AREA |.text| { |DSK_Read| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$DSK_Read|, PDATA, SELECTION=5, ASSOC=|.text| { |DSK_Read| } ; comdat associative
|$T37277| DCD |DSK_Read|
DCD 0x40000200
; Function compile flags: /Ogsy
00000 AREA |.text| { |DSK_Read| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |DSK_Read| PROC
; 463 : DWORD DSK_Read(DWORD Handle, LPVOID pBuffer, DWORD dwNumBytes){return 0;}
00000 |$M37275|
00000 e3a00000 mov r0, #0
00004 e12fff1e bx lr
00008 |$M37276|
ENDP ; |DSK_Read|
EXPORT |DSK_Write|
00000 AREA |.text| { |DSK_Write| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$DSK_Write|, PDATA, SELECTION=5, ASSOC=|.text| { |DSK_Write| } ; comdat associative
|$T37284| DCD |DSK_Write|
DCD 0x40000200
; Function compile flags: /Ogsy
00000 AREA |.text| { |DSK_Write| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |DSK_Write| PROC
; 464 : DWORD DSK_Write(DWORD Handle, LPCVOID pBuffer, DWORD dwNumBytes){return 0;}
00000 |$M37282|
00000 e3a00000 mov r0, #0
00004 e12fff1e bx lr
00008 |$M37283|
ENDP ; |DSK_Write|
EXPORT |DSK_Seek|
00000 AREA |.text| { |DSK_Seek| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$DSK_Seek|, PDATA, SELECTION=5, ASSOC=|.text| { |DSK_Seek| } ; comdat associative
|$T37291| DCD |DSK_Seek|
DCD 0x40000200
; Function compile flags: /Ogsy
00000 AREA |.text| { |DSK_Seek| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |DSK_Seek| PROC
; 465 : DWORD DSK_Seek(DWORD Handle, long lDistance, DWORD dwMoveMethod){return 0;}
00000 |$M37289|
00000 e3a00000 mov r0, #0
00004 e12fff1e bx lr
00008 |$M37290|
ENDP ; |DSK_Seek|
EXPORT |DSK_PowerUp|
EXPORT |??_C@_1CM@ONLN@?$AAs?$AAy?$AAs?$AAt?$AAe?$AAm?$AA?9?$AA?9?$AAD?$AAS?$AAK?$AA_?$AAP?$AAo?$AAw?$AAe?$AAr?$AAU?$AAp?$AA?$AN@| [ DATA ] ; `string'
00000 AREA |.text| { |DSK_PowerUp| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$DSK_PowerUp|, PDATA, SELECTION=5, ASSOC=|.text| { |DSK_PowerUp| } ; comdat associative
|$T37297| DCD |DSK_PowerUp|
DCD 0x40000601
00000 AREA |.rdata| { |??_C@_1CM@ONLN@?$AAs?$AAy?$AAs?$AAt?$AAe?$AAm?$AA?9?$AA?9?$AAD?$AAS?$AAK?$AA_?$AAP?$AAo?$AAw?$AAe?$AAr?$AAU?$AAp?$AA?$AN@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CM@ONLN@?$AAs?$AAy?$AAs?$AAt?$AAe?$AAm?$AA?9?$AA?9?$AAD?$AAS?$AAK?$AA_?$AAP?$AAo?$AAw?$AAe?$AAr?$AAU?$AAp?$AA?$AN@| DCB "s"
DCB 0x0, "y", 0x0, "s", 0x0, "t", 0x0, "e", 0x0, "m", 0x0, "-"
DCB 0x0, "-", 0x0, "D", 0x0, "S", 0x0, "K", 0x0, "_", 0x0, "P"
DCB 0x0, "o", 0x0, "w", 0x0, "e", 0x0, "r", 0x0, "U", 0x0, "p"
DCB 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |DSK_PowerUp| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |DSK_PowerUp| PROC
; 467 : {
00000 e52de004 str lr, [sp, #-4]!
00004 |$M37295|
; 468 : RETAILMSG(1, (TEXT("system--DSK_PowerUp\r\n")));
00004 e59f0008 ldr r0, [pc, #8]
00008 eb000000 bl NKDbgPrintfW
; 469 :
; 470 : }
0000c e8bd4000 ldmia sp!, {lr}
00010 e12fff1e bx lr
00014 |$L37299|
00014 00000000 DCD |??_C@_1CM@ONLN@?$AAs?$AAy?$AAs?$AAt?$AAe?$AAm?$AA?9?$AA?9?$AAD?$AAS?$AAK?$AA_?$AAP?$AAo?$AAw?$AAe?$AAr?$AAU?$AAp?$AA?$AN@|
00018 |$M37296|
ENDP ; |DSK_PowerUp|
EXPORT |DSK_PowerDown|
EXPORT |??_C@_1DA@EPPG@?$AAs?$AAy?$AAs?$AAt?$AAe?$AAm?$AA?9?$AA?9?$AAD?$AAS?$AAK?$AA_?$AAP?$AAo?$AAw?$AAe?$AAr?$AAD?$AAo?$AAw@| [ DATA ] ; `string'
00000 AREA |.text| { |DSK_PowerDown| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$DSK_PowerDown|, PDATA, SELECTION=5, ASSOC=|.text| { |DSK_PowerDown| } ; comdat associative
|$T37304| DCD |DSK_PowerDown|
DCD 0x40000601
00000 AREA |.rdata| { |??_C@_1DA@EPPG@?$AAs?$AAy?$AAs?$AAt?$AAe?$AAm?$AA?9?$AA?9?$AAD?$AAS?$AAK?$AA_?$AAP?$AAo?$AAw?$AAe?$AAr?$AAD?$AAo?$AAw@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DA@EPPG@?$AAs?$AAy?$AAs?$AAt?$AAe?$AAm?$AA?9?$AA?9?$AAD?$AAS?$AAK?$AA_?$AAP?$AAo?$AAw?$AAe?$AAr?$AAD?$AAo?$AAw@| DCB "s"
DCB 0x0, "y", 0x0, "s", 0x0, "t", 0x0, "e", 0x0, "m", 0x0, "-"
DCB 0x0, "-", 0x0, "D", 0x0, "S", 0x0, "K", 0x0, "_", 0x0, "P"
DCB 0x0, "o", 0x0, "w", 0x0, "e", 0x0, "r", 0x0, "D", 0x0, "o"
DCB 0x0, "w", 0x0, "n", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |DSK_PowerDown| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |DSK_PowerDown| PROC
; 472 : {
00000 e52de004 str lr, [sp, #-4]!
00004 |$M37302|
; 473 : RETAILMSG(1, (TEXT("system--DSK_PowerDown\r\n")));
00004 e59f0008 ldr r0, [pc, #8]
00008 eb000000 bl NKDbgPrintfW
; 474 :
; 475 : }
0000c e8bd4000 ldmia sp!, {lr}
00010 e12fff1e bx lr
00014 |$L37306|
00014 00000000 DCD |??_C@_1DA@EPPG@?$AAs?$AAy?$AAs?$AAt?$AAe?$AAm?$AA?9?$AA?9?$AAD?$AAS?$AAK?$AA_?$AAP?$AAo?$AAw?$AAe?$AAr?$AAD?$AAo?$AAw@|
00018 |$M37303|
ENDP ; |DSK_PowerDown|
EXPORT |IsCardInserted|
IMPORT |is_device_changed|
00000 AREA |.text| { |IsCardInserted| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$IsCardInserted|, PDATA, SELECTION=5, ASSOC=|.text| { |IsCardInserted| } ; comdat associative
|$T37314| DCD |IsCardInserted|
DCD 0x40000a01
; Function compile flags: /Ogsy
00000 AREA |.text| { |IsCardInserted| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |IsCardInserted| PROC
; 485 : {
00000 e52de004 str lr, [sp, #-4]!
00004 |$M37312|
; 486 : INT16 logical_drive;
; 487 :
; 488 :
; 489 : logical_drive = (0xFFFF & (INT16)pDisk->d_DrvNo);
00004 e5900018 ldr r0, [r0, #0x18]
00008 e1a01800 mov r1, r0, lsl #16
0000c e1a00821 mov r0, r1, lsr #16
; 490 :
; 491 :
; 492 :
; 493 : if (is_device_changed (logical_drive))
00010 eb000000 bl is_device_changed
00014 e3500000 cmp r0, #0
; 494 : return FALSE;
00018 e3a00000 mov r0, #0
; 495 :
; 496 : return TRUE;
0001c 03a00001 moveq r0, #1
; 497 :
; 498 : }
00020 e8bd4000 ldmia sp!, {lr}
00024 e12fff1e bx lr
00028 |$M37313|
ENDP ; |IsCardInserted|
EXPORT |??_C@_1EM@DAPE@?$AAM?$AAm?$AAc?$AAD?$AAi?$AAs?$AAk?$AA?5?$AAL?$AAo?$AAc?$AAa?$AAl?$AAA?$AAl?$AAl?$AAo?$AAc?$AA?$CI?$AAP@| [ DATA ] ; `string'
IMPORT |RegCloseKey|
IMPORT |InitDisk|
IMPORT |OpenDriverKey|
IMPORT |GetLastError|
IMPORT |wcslen|
00000 AREA |.text| { |mmcinit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$mmcinit|, PDATA, SELECTION=5, ASSOC=|.text| { |mmcinit| } ; comdat associative
|$T37326| DCD |mmcinit|
DCD 0x40002601
00000 AREA |.rdata| { |??_C@_1EM@DAPE@?$AAM?$AAm?$AAc?$AAD?$AAi?$AAs?$AAk?$AA?5?$AAL?$AAo?$AAc?$AAa?$AAl?$AAA?$AAl?$AAl?$AAo?$AAc?$AA?$CI?$AAP@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1EM@DAPE@?$AAM?$AAm?$AAc?$AAD?$AAi?$AAs?$AAk?$AA?5?$AAL?$AAo?$AAc?$AAa?$AAl?$AAA?$AAl?$AAl?$AAo?$AAc?$AA?$CI?$AAP@| DCB "M"
DCB 0x0, "m", 0x0, "c", 0x0, "D", 0x0, "i", 0x0, "s", 0x0, "k"
DCB 0x0, " ", 0x0, "L", 0x0, "o", 0x0, "c", 0x0, "a", 0x0, "l"
DCB 0x0, "A", 0x0, "l", 0x0, "l", 0x0, "o", 0x0, "c", 0x0, "("
DCB 0x0, "P", 0x0, "D", 0x0, "I", 0x0, "S", 0x0, "K", 0x0, ")"
DCB 0x0, " ", 0x0, "f", 0x0, "a", 0x0, "i", 0x0, "l", 0x0, "e"
DCB 0x0, "d", 0x0, " ", 0x0, "%", 0x0, "d", 0x0, 0xd, 0x0, 0xa
DCB 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |mmcinit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |mmcinit| PROC
; 515 : {
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 |$M37324|
00004 e1a04000 mov r4, r0
; 516 : DWORD status;
; 517 : PDISK pDisk;
; 518 : HKEY hKey;
; 519 :
; 520 : pDisk = CreateDiskObject();
00008 eb000000 bl CreateDiskObject
0000c e1b05000 movs r5, r0
; 521 : if (pDisk == NULL) {
00010 1a000004 bne |$L37102|
; 522 : RETAILMSG(1, (TEXT("MmcDisk LocalAlloc(PDISK) failed %d\r\n"), GetLastError()));
00014 eb000000 bl GetLastError
00018 e1a01000 mov r1, r0
0001c e59f0070 ldr r0, [pc, #0x70]
00020 eb000000 bl NKDbgPrintfW
; 523 : return NULL;
00024 ea000016 b |$L37323|
00028 |$L37102|
; 524 : }
; 525 : if (pDisk->d_ActivePath = LocalAlloc(LPTR, wcslen(ActiveKey)*sizeof(WCHAR)+sizeof(WCHAR))) {
00028 e1a00004 mov r0, r4
0002c eb000000 bl wcslen
00030 e2801001 add r1, r0, #1
00034 e1a01081 mov r1, r1, lsl #1
00038 e3a00040 mov r0, #0x40
0003c eb000000 bl LocalAlloc
00040 e3500000 cmp r0, #0
00044 e5850044 str r0, [r5, #0x44]
; 526 : wcscpy(pDisk->d_ActivePath, ActiveKey);
00048 11a01004 movne r1, r4
0004c 1b000000 blne wcscpy
; 527 : }
; 528 :
; 529 :
; 530 : hKey = OpenDriverKey( ActiveKey);
00050 e1a00004 mov r0, r4
00054 eb000000 bl OpenDriverKey
; 531 : RegCloseKey( hKey);
00058 eb000000 bl RegCloseKey
; 532 :
; 533 :
; 534 :
; 535 : status = InitDisk(pDisk);
0005c e1a00005 mov r0, r5
00060 eb000000 bl InitDisk
; 536 : if (status) {
00064 e3500000 cmp r0, #0
; 537 : goto ci_fail;
; 538 : }
; 539 :
; 540 :
; 541 :
; 542 : if (pDisk->d_DiskCardState == STATE_INITING) {
00068 0595001c ldreq r0, [r5, #0x1C]
0006c 03500001 cmpeq r0, #1
; 543 : pDisk->d_DiskCardState = STATE_CLOSED;
00070 03a00002 moveq r0, #2
00074 0585001c streq r0, [r5, #0x1C]
00078 0a000002 beq |$L37097|
0007c |$ci_fail$37109|
; 544 : return pDisk;
; 545 : }
; 546 :
; 547 :
; 548 : ci_fail:
; 549 :
; 550 :
; 551 :
; 552 : CloseDisk(pDisk);
0007c e1a00005 mov r0, r5
00080 eb000000 bl CloseDisk
00084 |$L37323|
; 553 : return NULL;
00084 e3a05000 mov r5, #0
00088 |$L37097|
; 523 : return NULL;
00088 e1a00005 mov r0, r5
; 554 : }
0008c e8bd4030 ldmia sp!, {r4, r5, lr}
00090 e12fff1e bx lr
00094 |$L37328|
00094 00000000 DCD |??_C@_1EM@DAPE@?$AAM?$AAm?$AAc?$AAD?$AAi?$AAs?$AAk?$AA?5?$AAL?$AAo?$AAc?$AAa?$AAl?$AAA?$AAl?$AAl?$AAo?$AAc?$AA?$CI?$AAP@|
00098 |$M37325|
ENDP ; |mmcinit|
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -