?? dvdioctl.cod
字號:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4091
TTL C:\WINCE500\PLATFORM\SMDK2410\DRIVERS\atapi\.\dvdioctl.cpp
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
00000 AREA |.data|, DATA
|rkret| DCD 0x8000000
DCD 0x10000000
DCD 0xc000000
DCD 0xc000000
DCD 0xc000000
DCD 0x0
DCD 0x0
DCD 0x0
DCD 0x8000000
EXPORT |?EndSwap@@YAKK@Z| ; EndSwap
; File c:\wince500\platform\smdk2410\drivers\atapi\dvdioctl.cpp
00000 AREA |.text| { |?EndSwap@@YAKK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?EndSwap@@YAKK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?EndSwap@@YAKK@Z| } ; comdat associative
|$T32356| DCD |$L32355|
DCD 0x40000700
; Function compile flags: /Ogsy
00000 AREA |.text| { |?EndSwap@@YAKK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?EndSwap@@YAKK@Z| PROC ; EndSwap
; 34 : {
00000 |$L32355|
00000 |$M32353|
; 35 : register DWORD dwResult;
; 36 : dwResult = (dwInput << 24) | ((dwInput & 0xff00) << 8) | ((dwInput & 0xff0000) >> 8) | (dwInput >> 24);
; 37 : return(dwResult);
00000 e2003cff and r3, r0, #0xFF, 24
00004 e1833800 orr r3, r3, r0, lsl #16
00008 e20028ff and r2, r0, #0xFF, 16
0000c e1a01403 mov r1, r3, lsl #8
00010 e1823820 orr r3, r2, r0, lsr #16
00014 e1810423 orr r0, r1, r3, lsr #8
; 38 : }
00018 e12fff1e bx lr
0001c |$M32354|
ENDP ; |?EndSwap@@YAKK@Z|, EndSwap
EXPORT |?DVDSetupReadTitleKey@@YAKPAU_ATAPI_COMMAND_PACKET@@EEK@Z| ; DVDSetupReadTitleKey
00000 AREA |.text| { |?DVDSetupReadTitleKey@@YAKPAU_ATAPI_COMMAND_PACKET@@EEK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?DVDSetupReadTitleKey@@YAKPAU_ATAPI_COMMAND_PACKET@@EEK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?DVDSetupReadTitleKey@@YAKPAU_ATAPI_COMMAND_PACKET@@EEK@Z| } ; comdat associative
|$T32378| DCD |$L32377|
DCD 0x40002701
; Function compile flags: /Ogsy
00000 AREA |.text| { |?DVDSetupReadTitleKey@@YAKPAU_ATAPI_COMMAND_PACKET@@EEK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?DVDSetupReadTitleKey@@YAKPAU_ATAPI_COMMAND_PACKET@@EEK@Z| PROC ; DVDSetupReadTitleKey
; 47 : {
00000 |$L32377|
00000 e92d43f0 stmdb sp!, {r4 - r9, lr}
00004 |$M32375|
00004 e1a0e003 mov lr, r3
00008 e1a07000 mov r7, r0
; 48 : DWORD dwRet;
; 49 : PRKCDB pcdb = (PRKCDB)(pCmdPkt);
; 50 :
; 51 : pcdb->OpCode = DVDOP_REPORT_KEY;
0000c e3a030a4 mov r3, #0xA4
; 52 : pcdb->KeyFmt = (bAgid << 6) | bKeyType;
; 53 : pcdb->Lun = 0;
; 54 :
; 55 : if (bKeyType >= (sizeof(rkret) / sizeof(DWORD))) {
00010 e3510009 cmp r1, #9
00014 e5c73000 strb r3, [r7]
; 56 : dwRet = 0;
; 57 : }
; 58 : else {
; 59 : dwRet = rkret[bKeyType];
00018 359f3078 ldrcc r3, [pc, #0x78]
0001c e1812302 orr r2, r1, r2, lsl #6
00020 e3a09000 mov r9, #0
00024 e5c7200a strb r2, [r7, #0xA]
00028 e5c79001 strb r9, [r7, #1]
0002c 23a08000 movcs r8, #0
00030 37938101 ldrcc r8, [r3, +r1, lsl #2]
; 60 : }
; 61 : *(PDWORD)(&pcdb->Reserved) = dwRet;
; 62 :
; 63 : pcdb->LBA = EndSwap(dwLBA);
00034 e20e3cff and r3, lr, #0xFF, 24
00038 e183380e orr r3, r3, lr, lsl #16
0003c e20e28ff and r2, lr, #0xFF, 16
00040 e1a01403 mov r1, r3, lsl #8
00044 e182382e orr r3, r2, lr, lsr #16
00048 e1815423 orr r5, r1, r3, lsr #8
; 64 : pcdb->NACA = 0;
; 65 :
; 66 : return (EndSwap(dwRet));
0004c e20838ff and r3, r8, #0xFF, 16
00050 e1833828 orr r3, r3, r8, lsr #16
00054 e1a06825 mov r6, r5, lsr #16
00058 e2082cff and r2, r8, #0xFF, 24
0005c e1a04423 mov r4, r3, lsr #8
00060 e1a00828 mov r0, r8, lsr #16
00064 e1823808 orr r3, r2, r8, lsl #16
00068 e1a01426 mov r1, r6, lsr #8
0006c e1a0e425 mov lr, r5, lsr #8
00070 e1c700b8 strh r0, [r7, #8]
00074 e1840403 orr r0, r4, r3, lsl #8
00078 e5c71005 strb r1, [r7, #5]
0007c e1c780b6 strh r8, [r7, #6]
00080 e5c75002 strb r5, [r7, #2]
00084 e5c7e003 strb lr, [r7, #3]
00088 e5c76004 strb r6, [r7, #4]
0008c e5c7900b strb r9, [r7, #0xB]
; 67 : }
00090 e8bd43f0 ldmia sp!, {r4 - r9, lr}
00094 e12fff1e bx lr
00098 |$L32380|
00098 00000000 DCD |rkret|
0009c |$M32376|
ENDP ; |?DVDSetupReadTitleKey@@YAKPAU_ATAPI_COMMAND_PACKET@@EEK@Z|, DVDSetupReadTitleKey
EXPORT |?DVDSetupReadDiscKey@@YAKPAU_ATAPI_COMMAND_PACKET@@E@Z| ; DVDSetupReadDiscKey
00000 AREA |.text| { |?DVDSetupReadDiscKey@@YAKPAU_ATAPI_COMMAND_PACKET@@E@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?DVDSetupReadDiscKey@@YAKPAU_ATAPI_COMMAND_PACKET@@E@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?DVDSetupReadDiscKey@@YAKPAU_ATAPI_COMMAND_PACKET@@E@Z| } ; comdat associative
|$T32390| DCD |$L32389|
DCD 0x40001601
; Function compile flags: /Ogsy
00000 AREA |.text| { |?DVDSetupReadDiscKey@@YAKPAU_ATAPI_COMMAND_PACKET@@E@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?DVDSetupReadDiscKey@@YAKPAU_ATAPI_COMMAND_PACKET@@E@Z| PROC ; DVDSetupReadDiscKey
; 74 : {
00000 |$L32389|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M32387|
; 75 : PRDVDCDB pcdb = (PRDVDCDB)(pCmdPkt);
; 76 :
; 77 : pcdb->OpCode = DVDOP_READ_DVD_STRUC;
00004 e3a030ad mov r3, #0xAD
; 78 :
; 79 : pcdb->Lun = 0;
; 80 : *((DWORD *)&pcdb->RMDLBA) = 0;
; 81 : pcdb->Layer = 0;
; 82 : pcdb->Format = DVDSTRUC_FMT_DISCKEY;
; 83 : pcdb->Len = (USHORT)(sizeof (RKFMT_DISC) << 8 | sizeof (RKFMT_DISC) >>8);
00008 e5c03000 strb r3, [r0]
0000c e3a03000 mov r3, #0
00010 e3a02002 mov r2, #2
00014 e3a0e008 mov lr, #8
00018 e3a04004 mov r4, #4
0001c e5c03001 strb r3, [r0, #1]
00020 e5c03002 strb r3, [r0, #2]
00024 e5c03003 strb r3, [r0, #3]
00028 e5c03004 strb r3, [r0, #4]
0002c e5c03005 strb r3, [r0, #5]
00030 e5c03006 strb r3, [r0, #6]
; 84 : pcdb->agid = bAgid;
; 85 : pcdb->NACA = 0;
00034 e5c0300b strb r3, [r0, #0xB]
00038 e5c02007 strb r2, [r0, #7]
0003c e5c0e008 strb lr, [r0, #8]
00040 e5c04009 strb r4, [r0, #9]
00044 e5c0100a strb r1, [r0, #0xA]
; 86 :
; 87 : return (sizeof (RKFMT_DISC));
00048 e3a00b02 mov r0, #2, 22
0004c e3800004 orr r0, r0, #4
; 88 : }
00050 e8bd4010 ldmia sp!, {r4, lr}
00054 e12fff1e bx lr
00058 |$M32388|
ENDP ; |?DVDSetupReadDiscKey@@YAKPAU_ATAPI_COMMAND_PACKET@@E@Z|, DVDSetupReadDiscKey
EXPORT |?DVDSetupReadKey@@YAKPAU_ATAPI_COMMAND_PACKET@@PAU_DVD_COPY_PROTECT_KEY@@@Z| ; DVDSetupReadKey
00000 AREA |.text| { |?DVDSetupReadKey@@YAKPAU_ATAPI_COMMAND_PACKET@@PAU_DVD_COPY_PROTECT_KEY@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?DVDSetupReadKey@@YAKPAU_ATAPI_COMMAND_PACKET@@PAU_DVD_COPY_PROTECT_KEY@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?DVDSetupReadKey@@YAKPAU_ATAPI_COMMAND_PACKET@@PAU_DVD_COPY_PROTECT_KEY@@@Z| } ; comdat associative
|$T32409| DCD |$L32408|
DCD 0x40004501
; Function compile flags: /Ogsy
00000 AREA |.text| { |?DVDSetupReadKey@@YAKPAU_ATAPI_COMMAND_PACKET@@PAU_DVD_COPY_PROTECT_KEY@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?DVDSetupReadKey@@YAKPAU_ATAPI_COMMAND_PACKET@@PAU_DVD_COPY_PROTECT_KEY@@@Z| PROC ; DVDSetupReadKey
; 95 : {
00000 |$L32408|
00000 e92d41f0 stmdb sp!, {r4 - r8, lr}
00004 |$M32406|
00004 e1a06001 mov r6, r1
00008 e1a07000 mov r7, r0
; 96 : DWORD dwRet = 0;
; 97 :
; 98 : switch (pKey->KeyType) {
0000c e5d6400c ldrb r4, [r6, #0xC]
00010 e5d6300d ldrb r3, [r6, #0xD]
00014 e5d6200e ldrb r2, [r6, #0xE]
00018 e5d6e00f ldrb lr, [r6, #0xF]
0001c e1843403 orr r3, r4, r3, lsl #8
00020 e1833802 orr r3, r3, r2, lsl #16
00024 e1838c0e orr r8, r3, lr, lsl #24
; 102 : break;
; 103 : case DvdDriveKey:
; 104 : dwRet = DVDSetupReadDiscKey(pCmdPkt, (BYTE)((pKey->SessionId) << 6));
; 105 : break;
; 106 : default:
; 107 : dwRet = DVDSetupReadTitleKey(pCmdPkt, (BYTE)(pKey->KeyType),
; 108 : (BYTE)pKey->SessionId, 0);
00028 e5d63009 ldrb r3, [r6, #9]
0002c e3580004 cmp r8, #4
00030 0a000023 beq |$L32130|
00034 e3580080 cmp r8, #0x80
00038 15d6e008 ldrneb lr, [r6, #8]
0003c e5d6200a ldrb r2, [r6, #0xA]
00040 e5d6100b ldrb r1, [r6, #0xB]
00044 118e3403 orrne r3, lr, r3, lsl #8
00048 11833802 orrne r3, r3, r2, lsl #16
0004c 11833c01 orrne r3, r3, r1, lsl #24
00050 120320ff andne r2, r3, #0xFF
00054 13a03000 movne r3, #0
00058 1a000028 bne |$L32405|
0005c e5d60008 ldrb r0, [r6, #8]
00060 e3a0e004 mov lr, #4
00064 e3a04000 mov r4, #0
00068 e1803403 orr r3, r0, r3, lsl #8
0006c e1833802 orr r3, r3, r2, lsl #16
00070 e3a00008 mov r0, #8
00074 e1833c01 orr r3, r3, r1, lsl #24
00078 e5c70008 strb r0, [r7, #8]
0007c e1a03303 mov r3, r3, lsl #6
00080 e3a020ad mov r2, #0xAD
00084 e3a01002 mov r1, #2
00088 e3a00b02 mov r0, #2, 22
0008c e5c7300a strb r3, [r7, #0xA]
00090 e5c72000 strb r2, [r7]
00094 e5c74001 strb r4, [r7, #1]
00098 e5c74002 strb r4, [r7, #2]
0009c e5c74003 strb r4, [r7, #3]
000a0 e5c74004 strb r4, [r7, #4]
000a4 e5c74005 strb r4, [r7, #5]
000a8 e5c74006 strb r4, [r7, #6]
000ac e5c71007 strb r1, [r7, #7]
000b0 e5c7e009 strb lr, [r7, #9]
000b4 e5c7400b strb r4, [r7, #0xB]
000b8 e3800004 orr r0, r0, #4
; 109 : }
; 110 :
; 111 : return dwRet;
; 112 : }
000bc e8bd41f0 ldmia sp!, {r4 - r8, lr}
000c0 e12fff1e bx lr
000c4 |$L32130|
; 99 : case DvdTitleKey:
; 100 : dwRet = DVDSetupReadTitleKey(pCmdPkt, (BYTE)(pKey->KeyType),
; 101 : (BYTE)pKey->SessionId, pKey->StartAddr + 1);
000c4 e5d60010 ldrb r0, [r6, #0x10]
000c8 e5d62011 ldrb r2, [r6, #0x11]
000cc e5d61008 ldrb r1, [r6, #8]
000d0 e5d64012 ldrb r4, [r6, #0x12]
000d4 e5d6500a ldrb r5, [r6, #0xA]
000d8 e5d6e00b ldrb lr, [r6, #0xB]
000dc e1802402 orr r2, r0, r2, lsl #8
000e0 e5d60013 ldrb r0, [r6, #0x13]
000e4 e1811403 orr r1, r1, r3, lsl #8
000e8 e1823804 orr r3, r2, r4, lsl #16
000ec e1812805 orr r2, r1, r5, lsl #16
000f0 e1833c00 orr r3, r3, r0, lsl #24
000f4 e1822c0e orr r2, r2, lr, lsl #24
000f8 e2833001 add r3, r3, #1
000fc e20220ff and r2, r2, #0xFF
00100 |$L32405|
00100 e20810ff and r1, r8, #0xFF
00104 e1a00007 mov r0, r7
00108 eb000000 bl |?DVDSetupReadTitleKey@@YAKPAU_ATAPI_COMMAND_PACKET@@EEK@Z|
; 109 : }
; 110 :
; 111 : return dwRet;
; 112 : }
0010c e8bd41f0 ldmia sp!, {r4 - r8, lr}
00110 e12fff1e bx lr
00114 |$M32407|
ENDP ; |?DVDSetupReadKey@@YAKPAU_ATAPI_COMMAND_PACKET@@PAU_DVD_COPY_PROTECT_KEY@@@Z|, DVDSetupReadKey
EXPORT |?CopyDVDKey@@YAKKPAU_DVD_COPY_PROTECT_KEY@@PAU_RKFMT_TITLE@@@Z| ; CopyDVDKey
00000 AREA |.text| { |?CopyDVDKey@@YAKKPAU_DVD_COPY_PROTECT_KEY@@PAU_RKFMT_TITLE@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?CopyDVDKey@@YAKKPAU_DVD_COPY_PROTECT_KEY@@PAU_RKFMT_TITLE@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?CopyDVDKey@@YAKKPAU_DVD_COPY_PROTECT_KEY@@PAU_RKFMT_TITLE@@@Z| } ; comdat associative
|$T32426| DCD |$L32425|
DCD 0x40003002
; Function compile flags: /Ogsy
00000 AREA |.text| { |?CopyDVDKey@@YAKKPAU_DVD_COPY_PROTECT_KEY@@PAU_RKFMT_TITLE@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -