⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dvdioctl.cod

📁 2440 CE500BSP包, EBOOT可用DEBUG版调试
💻 COD
📖 第 1 页 / 共 5 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4091 

	TTL	D:\WINCE500\PLATFORM\smdk2440\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

  00000			 AREA	 |.pdata|, PDATA
|$T32380| DCD	|$L32379|
	DCD	0x40001804
; Function compile flags: /Odt
; File d:\wince500\platform\smdk2440\drivers\atapi\dvdioctl.cpp

  00000			 AREA	 |.text|, CODE, ARM

  00000		 |?EndSwap@@YAKK@Z| PROC		; EndSwap

; 34   : {

  00000		 |$L32379|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0001	 stmdb       sp!, {r0}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c	e24dd008	 sub         sp, sp, #8
  00010		 |$M32377|

; 35   :     register DWORD dwResult;
; 36   :     dwResult = (dwInput << 24) | ((dwInput & 0xff00) << 8) | ((dwInput & 0xff0000) >> 8) | (dwInput >> 24);

  00010	e59d3010	 ldr         r3, [sp, #0x10]
  00014	e1a02c03	 mov         r2, r3, lsl #24
  00018	e59d3010	 ldr         r3, [sp, #0x10]
  0001c	e2033cff	 and         r3, r3, #0xFF, 24
  00020	e1a03403	 mov         r3, r3, lsl #8
  00024	e1822003	 orr         r2, r2, r3
  00028	e59d3010	 ldr         r3, [sp, #0x10]
  0002c	e20338ff	 and         r3, r3, #0xFF, 16
  00030	e1a03423	 mov         r3, r3, lsr #8
  00034	e1822003	 orr         r2, r2, r3
  00038	e59d3010	 ldr         r3, [sp, #0x10]
  0003c	e1a03c23	 mov         r3, r3, lsr #24
  00040	e1823003	 orr         r3, r2, r3
  00044	e58d3000	 str         r3, [sp]

; 37   :     return(dwResult);

  00048	e59d3000	 ldr         r3, [sp]
  0004c	e58d3004	 str         r3, [sp, #4]
  00050	e59d0004	 ldr         r0, [sp, #4]

; 38   : }

  00054	e28dd008	 add         sp, sp, #8
  00058	e89d6000	 ldmia       sp, {sp, lr}
  0005c	e12fff1e	 bx          lr
  00060		 |$M32378|

			 ENDP  ; |?EndSwap@@YAKK@Z|, EndSwap

	EXPORT	|?DVDSetupReadTitleKey@@YAKPAU_ATAPI_COMMAND_PACKET@@EEK@Z| ; DVDSetupReadTitleKey

  00008			 AREA	 |.pdata|, PDATA
|$T32386| DCD	|$L32385|
	DCD	0x40004404
; Function compile flags: /Odt

  00060			 AREA	 |.text|, CODE, ARM

  00060		 |?DVDSetupReadTitleKey@@YAKPAU_ATAPI_COMMAND_PACKET@@EEK@Z| PROC ; DVDSetupReadTitleKey

; 47   : {

  00060		 |$L32385|
  00060	e1a0c00d	 mov         r12, sp
  00064	e92d000f	 stmdb       sp!, {r0 - r3}
  00068	e92d5000	 stmdb       sp!, {r12, lr}
  0006c	e24dd014	 sub         sp, sp, #0x14
  00070		 |$M32383|

; 48   :     DWORD dwRet;
; 49   :     PRKCDB pcdb = (PRKCDB)(pCmdPkt);

  00070	e59d301c	 ldr         r3, [sp, #0x1C]
  00074	e58d3004	 str         r3, [sp, #4]

; 50   : 
; 51   :     pcdb->OpCode = DVDOP_REPORT_KEY;

  00078	e59d2004	 ldr         r2, [sp, #4]
  0007c	e3a030a4	 mov         r3, #0xA4
  00080	e5c23000	 strb        r3, [r2]

; 52   :     pcdb->KeyFmt = (bAgid << 6) | bKeyType;

  00084	e5dd3024	 ldrb        r3, [sp, #0x24]
  00088	e1a02303	 mov         r2, r3, lsl #6
  0008c	e5dd3020	 ldrb        r3, [sp, #0x20]
  00090	e1823003	 orr         r3, r2, r3
  00094	e20320ff	 and         r2, r3, #0xFF
  00098	e59d3004	 ldr         r3, [sp, #4]
  0009c	e283300a	 add         r3, r3, #0xA
  000a0	e5c32000	 strb        r2, [r3]

; 53   :     pcdb->Lun = 0;

  000a4	e59d3004	 ldr         r3, [sp, #4]
  000a8	e2832001	 add         r2, r3, #1
  000ac	e3a03000	 mov         r3, #0
  000b0	e5c23000	 strb        r3, [r2]

; 54   : 
; 55   :     if (bKeyType >= (sizeof(rkret) / sizeof(DWORD))) {

  000b4	e5dd3020	 ldrb        r3, [sp, #0x20]
  000b8	e3530009	 cmp         r3, #9
  000bc	3a000002	 bcc         |$L32115|

; 56   :         dwRet = 0;

  000c0	e3a03000	 mov         r3, #0
  000c4	e58d3000	 str         r3, [sp]

; 57   :     }
; 58   :     else {

  000c8	ea000007	 b           |$L32116|
  000cc		 |$L32115|

; 59   :         dwRet = rkret[bKeyType];

  000cc	e5dd3020	 ldrb        r3, [sp, #0x20]
  000d0	e1a01003	 mov         r1, r3
  000d4	e3a03004	 mov         r3, #4
  000d8	e0020391	 mul         r2, r1, r3
  000dc	e59f3088	 ldr         r3, [pc, #0x88]
  000e0	e0833002	 add         r3, r3, r2
  000e4	e5933000	 ldr         r3, [r3]
  000e8	e58d3000	 str         r3, [sp]
  000ec		 |$L32116|

; 60   :     }
; 61   :     *(PDWORD)(&pcdb->Reserved) = dwRet;

  000ec	e59d3004	 ldr         r3, [sp, #4]
  000f0	e2832006	 add         r2, r3, #6
  000f4	e59d3000	 ldr         r3, [sp]
  000f8	e5823000	 str         r3, [r2]

; 62   : 
; 63   :     pcdb->LBA = EndSwap(dwLBA);

  000fc	e59d0028	 ldr         r0, [sp, #0x28]
  00100	eb000000	 bl          |?EndSwap@@YAKK@Z|
  00104	e58d000c	 str         r0, [sp, #0xC]
  00108	e59d3004	 ldr         r3, [sp, #4]
  0010c	e2831002	 add         r1, r3, #2
  00110	e59d300c	 ldr         r3, [sp, #0xC]
  00114	e5c13000	 strb        r3, [r1]
  00118	e1a02423	 mov         r2, r3, lsr #8
  0011c	e1a03002	 mov         r3, r2
  00120	e5c13001	 strb        r3, [r1, #1]
  00124	e1a02422	 mov         r2, r2, lsr #8
  00128	e1a03002	 mov         r3, r2
  0012c	e5c13002	 strb        r3, [r1, #2]
  00130	e1a03422	 mov         r3, r2, lsr #8
  00134	e5c13003	 strb        r3, [r1, #3]

; 64   :     pcdb->NACA = 0;

  00138	e59d3004	 ldr         r3, [sp, #4]
  0013c	e283200b	 add         r2, r3, #0xB
  00140	e3a03000	 mov         r3, #0
  00144	e5c23000	 strb        r3, [r2]

; 65   : 
; 66   :     return (EndSwap(dwRet));

  00148	e59d0000	 ldr         r0, [sp]
  0014c	eb000000	 bl          |?EndSwap@@YAKK@Z|
  00150	e58d0010	 str         r0, [sp, #0x10]
  00154	e59d3010	 ldr         r3, [sp, #0x10]
  00158	e58d3008	 str         r3, [sp, #8]
  0015c	e59d0008	 ldr         r0, [sp, #8]

; 67   : }

  00160	e28dd014	 add         sp, sp, #0x14
  00164	e89d6000	 ldmia       sp, {sp, lr}
  00168	e12fff1e	 bx          lr
  0016c		 |$L32387|
  0016c	00000000	 DCD         |rkret|
  00170		 |$M32384|

			 ENDP  ; |?DVDSetupReadTitleKey@@YAKPAU_ATAPI_COMMAND_PACKET@@EEK@Z|, DVDSetupReadTitleKey

	EXPORT	|?DVDSetupReadDiscKey@@YAKPAU_ATAPI_COMMAND_PACKET@@E@Z| ; DVDSetupReadDiscKey

  00010			 AREA	 |.pdata|, PDATA
|$T32393| DCD	|$L32392|
	DCD	0x40002f04
; Function compile flags: /Odt

  00170			 AREA	 |.text|, CODE, ARM

  00170		 |?DVDSetupReadDiscKey@@YAKPAU_ATAPI_COMMAND_PACKET@@E@Z| PROC ; DVDSetupReadDiscKey

; 74   : {

  00170		 |$L32392|
  00170	e1a0c00d	 mov         r12, sp
  00174	e92d0003	 stmdb       sp!, {r0, r1}
  00178	e92d5000	 stmdb       sp!, {r12, lr}
  0017c	e24dd008	 sub         sp, sp, #8
  00180		 |$M32390|

; 75   :     PRDVDCDB pcdb = (PRDVDCDB)(pCmdPkt);

  00180	e59d3010	 ldr         r3, [sp, #0x10]
  00184	e58d3000	 str         r3, [sp]

; 76   : 
; 77   :     pcdb->OpCode = DVDOP_READ_DVD_STRUC;

  00188	e59d2000	 ldr         r2, [sp]
  0018c	e3a030ad	 mov         r3, #0xAD
  00190	e5c23000	 strb        r3, [r2]

; 78   : 
; 79   :     pcdb->Lun = 0;

  00194	e59d3000	 ldr         r3, [sp]
  00198	e2832001	 add         r2, r3, #1
  0019c	e3a03000	 mov         r3, #0
  001a0	e5c23000	 strb        r3, [r2]

; 80   :     *((DWORD *)&pcdb->RMDLBA) = 0;

  001a4	e59d3000	 ldr         r3, [sp]
  001a8	e2832002	 add         r2, r3, #2
  001ac	e3a03000	 mov         r3, #0
  001b0	e5823000	 str         r3, [r2]

; 81   :     pcdb->Layer = 0;

  001b4	e59d3000	 ldr         r3, [sp]
  001b8	e2832006	 add         r2, r3, #6
  001bc	e3a03000	 mov         r3, #0
  001c0	e5c23000	 strb        r3, [r2]

; 82   :     pcdb->Format = DVDSTRUC_FMT_DISCKEY;

  001c4	e59d3000	 ldr         r3, [sp]
  001c8	e2832007	 add         r2, r3, #7
  001cc	e3a03002	 mov         r3, #2
  001d0	e5c23000	 strb        r3, [r2]

; 83   :     pcdb->Len = (USHORT)(sizeof (RKFMT_DISC) << 8 | sizeof (RKFMT_DISC) >>8);

  001d4	e59d3000	 ldr         r3, [sp]
  001d8	e2832008	 add         r2, r3, #8
  001dc	e3a03b01	 mov         r3, #1, 22
  001e0	e3833008	 orr         r3, r3, #8
  001e4	e5c23000	 strb        r3, [r2]
  001e8	e1a03423	 mov         r3, r3, lsr #8
  001ec	e5c23001	 strb        r3, [r2, #1]

; 84   :     pcdb->agid = bAgid;

  001f0	e59d3000	 ldr         r3, [sp]
  001f4	e283200a	 add         r2, r3, #0xA
  001f8	e5dd3014	 ldrb        r3, [sp, #0x14]
  001fc	e5c23000	 strb        r3, [r2]

; 85   :     pcdb->NACA = 0;

  00200	e59d3000	 ldr         r3, [sp]
  00204	e283200b	 add         r2, r3, #0xB
  00208	e3a03000	 mov         r3, #0
  0020c	e5c23000	 strb        r3, [r2]

; 86   : 
; 87   :     return (sizeof (RKFMT_DISC));

  00210	e3a03b02	 mov         r3, #2, 22
  00214	e3833004	 orr         r3, r3, #4
  00218	e58d3004	 str         r3, [sp, #4]
  0021c	e59d0004	 ldr         r0, [sp, #4]

; 88   : }

  00220	e28dd008	 add         sp, sp, #8
  00224	e89d6000	 ldmia       sp, {sp, lr}
  00228	e12fff1e	 bx          lr
  0022c		 |$M32391|

			 ENDP  ; |?DVDSetupReadDiscKey@@YAKPAU_ATAPI_COMMAND_PACKET@@E@Z|, DVDSetupReadDiscKey

	EXPORT	|?DVDSetupReadKey@@YAKPAU_ATAPI_COMMAND_PACKET@@PAU_DVD_COPY_PROTECT_KEY@@@Z| ; DVDSetupReadKey

  00018			 AREA	 |.pdata|, PDATA
|$T32399| DCD	|$L32398|
	DCD	0x40008104
; Function compile flags: /Odt

  0022c			 AREA	 |.text|, CODE, ARM

  0022c		 |?DVDSetupReadKey@@YAKPAU_ATAPI_COMMAND_PACKET@@PAU_DVD_COPY_PROTECT_KEY@@@Z| PROC ; DVDSetupReadKey

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -