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

📄 dvdioctl.cod

📁 2440 CE500BSP包, EBOOT可用DEBUG版调试
💻 COD
📖 第 1 页 / 共 5 页
字号:

; 95   : {

  0022c		 |$L32398|
  0022c	e1a0c00d	 mov         r12, sp
  00230	e92d0003	 stmdb       sp!, {r0, r1}
  00234	e92d5000	 stmdb       sp!, {r12, lr}
  00238	e24dd018	 sub         sp, sp, #0x18
  0023c		 |$M32396|

; 96   :     DWORD dwRet = 0;

  0023c	e3a03000	 mov         r3, #0
  00240	e58d3000	 str         r3, [sp]

; 97   : 
; 98   :     switch (pKey->KeyType) {

  00244	e59d3024	 ldr         r3, [sp, #0x24]
  00248	e283100c	 add         r1, r3, #0xC
  0024c	e1d130d3	 ldrsb       r3, [r1, #3]
  00250	e1a02403	 mov         r2, r3, lsl #8
  00254	e5d13002	 ldrb        r3, [r1, #2]
  00258	e1833002	 orr         r3, r3, r2
  0025c	e1a02403	 mov         r2, r3, lsl #8
  00260	e5d13001	 ldrb        r3, [r1, #1]
  00264	e1833002	 orr         r3, r3, r2
  00268	e1a02403	 mov         r2, r3, lsl #8
  0026c	e5d13000	 ldrb        r3, [r1]
  00270	e1833002	 orr         r3, r3, r2
  00274	e58d3008	 str         r3, [sp, #8]
  00278	e59d3008	 ldr         r3, [sp, #8]
  0027c	e3530004	 cmp         r3, #4
  00280	0a000003	 beq         |$L32138|
  00284	e59d3008	 ldr         r3, [sp, #8]
  00288	e3530080	 cmp         r3, #0x80
  0028c	0a00002d	 beq         |$L32141|
  00290	ea000040	 b           |$L32143|
  00294		 |$L32138|

; 99   :     case DvdTitleKey:
; 100  :         dwRet = DVDSetupReadTitleKey(pCmdPkt, (BYTE)(pKey->KeyType),
; 101  :             (BYTE)pKey->SessionId, pKey->StartAddr + 1);

  00294	e59d3024	 ldr         r3, [sp, #0x24]
  00298	e2831010	 add         r1, r3, #0x10
  0029c	e5d13003	 ldrb        r3, [r1, #3]
  002a0	e1a02403	 mov         r2, r3, lsl #8
  002a4	e5d13002	 ldrb        r3, [r1, #2]
  002a8	e1833002	 orr         r3, r3, r2
  002ac	e1a02403	 mov         r2, r3, lsl #8
  002b0	e5d13001	 ldrb        r3, [r1, #1]
  002b4	e1833002	 orr         r3, r3, r2
  002b8	e1a02403	 mov         r2, r3, lsl #8
  002bc	e5d13000	 ldrb        r3, [r1]
  002c0	e1833002	 orr         r3, r3, r2
  002c4	e2833001	 add         r3, r3, #1
  002c8	e59d2024	 ldr         r2, [sp, #0x24]
  002cc	e2820008	 add         r0, r2, #8
  002d0	e5d02003	 ldrb        r2, [r0, #3]
  002d4	e1a01402	 mov         r1, r2, lsl #8
  002d8	e5d02002	 ldrb        r2, [r0, #2]
  002dc	e1822001	 orr         r2, r2, r1
  002e0	e1a01402	 mov         r1, r2, lsl #8
  002e4	e5d02001	 ldrb        r2, [r0, #1]
  002e8	e1822001	 orr         r2, r2, r1
  002ec	e1a01402	 mov         r1, r2, lsl #8
  002f0	e5d02000	 ldrb        r2, [r0]
  002f4	e1822001	 orr         r2, r2, r1
  002f8	e20220ff	 and         r2, r2, #0xFF
  002fc	e59d1024	 ldr         r1, [sp, #0x24]
  00300	e281e00c	 add         lr, r1, #0xC
  00304	e1de10d3	 ldrsb       r1, [lr, #3]
  00308	e1a00401	 mov         r0, r1, lsl #8
  0030c	e5de1002	 ldrb        r1, [lr, #2]
  00310	e1811000	 orr         r1, r1, r0
  00314	e1a00401	 mov         r0, r1, lsl #8
  00318	e5de1001	 ldrb        r1, [lr, #1]
  0031c	e1811000	 orr         r1, r1, r0
  00320	e1a00401	 mov         r0, r1, lsl #8
  00324	e5de1000	 ldrb        r1, [lr]
  00328	e1811000	 orr         r1, r1, r0
  0032c	e20110ff	 and         r1, r1, #0xFF
  00330	e59d0020	 ldr         r0, [sp, #0x20]
  00334	eb000000	 bl          |?DVDSetupReadTitleKey@@YAKPAU_ATAPI_COMMAND_PACKET@@EEK@Z|
  00338	e58d000c	 str         r0, [sp, #0xC]
  0033c	e59d300c	 ldr         r3, [sp, #0xC]
  00340	e58d3000	 str         r3, [sp]

; 102  :         break;

  00344	ea000033	 b           |$L32135|
  00348		 |$L32141|

; 103  :     case DvdDriveKey:
; 104  :         dwRet = DVDSetupReadDiscKey(pCmdPkt, (BYTE)((pKey->SessionId) << 6));

  00348	e59d3024	 ldr         r3, [sp, #0x24]
  0034c	e2831008	 add         r1, r3, #8
  00350	e5d13003	 ldrb        r3, [r1, #3]
  00354	e1a02403	 mov         r2, r3, lsl #8
  00358	e5d13002	 ldrb        r3, [r1, #2]
  0035c	e1833002	 orr         r3, r3, r2
  00360	e1a02403	 mov         r2, r3, lsl #8
  00364	e5d13001	 ldrb        r3, [r1, #1]
  00368	e1833002	 orr         r3, r3, r2
  0036c	e1a02403	 mov         r2, r3, lsl #8
  00370	e5d13000	 ldrb        r3, [r1]
  00374	e1833002	 orr         r3, r3, r2
  00378	e1a03303	 mov         r3, r3, lsl #6
  0037c	e20310ff	 and         r1, r3, #0xFF
  00380	e59d0020	 ldr         r0, [sp, #0x20]
  00384	eb000000	 bl          |?DVDSetupReadDiscKey@@YAKPAU_ATAPI_COMMAND_PACKET@@E@Z|
  00388	e58d0010	 str         r0, [sp, #0x10]
  0038c	e59d3010	 ldr         r3, [sp, #0x10]
  00390	e58d3000	 str         r3, [sp]

; 105  :         break;

  00394	ea00001f	 b           |$L32135|
  00398		 |$L32143|

; 106  :     default:
; 107  :         dwRet = DVDSetupReadTitleKey(pCmdPkt, (BYTE)(pKey->KeyType),
; 108  :            (BYTE)pKey->SessionId, 0);

  00398	e3a03000	 mov         r3, #0
  0039c	e59d2024	 ldr         r2, [sp, #0x24]
  003a0	e2820008	 add         r0, r2, #8
  003a4	e5d02003	 ldrb        r2, [r0, #3]
  003a8	e1a01402	 mov         r1, r2, lsl #8
  003ac	e5d02002	 ldrb        r2, [r0, #2]
  003b0	e1822001	 orr         r2, r2, r1
  003b4	e1a01402	 mov         r1, r2, lsl #8
  003b8	e5d02001	 ldrb        r2, [r0, #1]
  003bc	e1822001	 orr         r2, r2, r1
  003c0	e1a01402	 mov         r1, r2, lsl #8
  003c4	e5d02000	 ldrb        r2, [r0]
  003c8	e1822001	 orr         r2, r2, r1
  003cc	e20220ff	 and         r2, r2, #0xFF
  003d0	e59d1024	 ldr         r1, [sp, #0x24]
  003d4	e281e00c	 add         lr, r1, #0xC
  003d8	e1de10d3	 ldrsb       r1, [lr, #3]
  003dc	e1a00401	 mov         r0, r1, lsl #8
  003e0	e5de1002	 ldrb        r1, [lr, #2]
  003e4	e1811000	 orr         r1, r1, r0
  003e8	e1a00401	 mov         r0, r1, lsl #8
  003ec	e5de1001	 ldrb        r1, [lr, #1]
  003f0	e1811000	 orr         r1, r1, r0
  003f4	e1a00401	 mov         r0, r1, lsl #8
  003f8	e5de1000	 ldrb        r1, [lr]
  003fc	e1811000	 orr         r1, r1, r0
  00400	e20110ff	 and         r1, r1, #0xFF
  00404	e59d0020	 ldr         r0, [sp, #0x20]
  00408	eb000000	 bl          |?DVDSetupReadTitleKey@@YAKPAU_ATAPI_COMMAND_PACKET@@EEK@Z|
  0040c	e58d0014	 str         r0, [sp, #0x14]
  00410	e59d3014	 ldr         r3, [sp, #0x14]
  00414	e58d3000	 str         r3, [sp]
  00418		 |$L32135|

; 109  :     }
; 110  : 
; 111  :     return dwRet;

  00418	e59d3000	 ldr         r3, [sp]
  0041c	e58d3004	 str         r3, [sp, #4]
  00420	e59d0004	 ldr         r0, [sp, #4]

; 112  : }

  00424	e28dd018	 add         sp, sp, #0x18
  00428	e89d6000	 ldmia       sp, {sp, lr}
  0042c	e12fff1e	 bx          lr
  00430		 |$M32397|

			 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

  00020			 AREA	 |.pdata|, PDATA
|$T32405| DCD	|$L32404|
	DCD	0x40006804
; Function compile flags: /Odt

  00430			 AREA	 |.text|, CODE, ARM

  00430		 |?CopyDVDKey@@YAKKPAU_DVD_COPY_PROTECT_KEY@@PAU_RKFMT_TITLE@@@Z| PROC ; CopyDVDKey

; 119  : {

  00430		 |$L32404|
  00430	e1a0c00d	 mov         r12, sp
  00434	e92d0007	 stmdb       sp!, {r0 - r2}
  00438	e92d5000	 stmdb       sp!, {r12, lr}
  0043c	e24dd014	 sub         sp, sp, #0x14
  00440		 |$M32402|

; 120  :     DWORD dwTmp;
; 121  :     PBYTE psrc, pdest;
; 122  : 
; 123  :     dwTmp = dwKeyLength - 4;

  00440	e59d301c	 ldr         r3, [sp, #0x1C]
  00444	e2433004	 sub         r3, r3, #4
  00448	e58d3004	 str         r3, [sp, #4]

; 124  : 
; 125  :     pdest = (PBYTE)&(pKey->KeyData[0]);

  0044c	e59d3020	 ldr         r3, [sp, #0x20]
  00450	e2833020	 add         r3, r3, #0x20
  00454	e58d3008	 str         r3, [sp, #8]

; 126  : 
; 127  :     switch (pKey->KeyType) {

  00458	e59d3020	 ldr         r3, [sp, #0x20]
  0045c	e283100c	 add         r1, r3, #0xC
  00460	e1d130d3	 ldrsb       r3, [r1, #3]
  00464	e1a02403	 mov         r2, r3, lsl #8
  00468	e5d13002	 ldrb        r3, [r1, #2]
  0046c	e1833002	 orr         r3, r3, r2
  00470	e1a02403	 mov         r2, r3, lsl #8
  00474	e5d13001	 ldrb        r3, [r1, #1]
  00478	e1833002	 orr         r3, r3, r2
  0047c	e1a02403	 mov         r2, r3, lsl #8
  00480	e5d13000	 ldrb        r3, [r1]
  00484	e1833002	 orr         r3, r3, r2
  00488	e58d3010	 str         r3, [sp, #0x10]
  0048c	e59d3010	 ldr         r3, [sp, #0x10]
  00490	e3530000	 cmp         r3, #0
  00494	0a00001c	 beq         |$L32162|
  00498	e59d3010	 ldr         r3, [sp, #0x10]
  0049c	e3530004	 cmp         r3, #4
  004a0	0a000000	 beq         |$L32159|
  004a4	ea00002b	 b           |$L32164|
  004a8		 |$L32159|

; 128  :     case DvdTitleKey:
; 129  :         pKey->KeyFlags = pTitle->cgms;

  004a8	e59d3024	 ldr         r3, [sp, #0x24]
  004ac	e2833004	 add         r3, r3, #4
  004b0	e5d32000	 ldrb        r2, [r3]
  004b4	e59d3020	 ldr         r3, [sp, #0x20]
  004b8	e2831014	 add         r1, r3, #0x14
  004bc	e1a03002	 mov         r3, r2
  004c0	e5c13000	 strb        r3, [r1]
  004c4	e1a02423	 mov         r2, r3, lsr #8
  004c8	e1a03002	 mov         r3, r2
  004cc	e5c13001	 strb        r3, [r1, #1]
  004d0	e1a02422	 mov         r2, r2, lsr #8
  004d4	e1a03002	 mov         r3, r2
  004d8	e5c13002	 strb        r3, [r1, #2]
  004dc	e1a03422	 mov         r3, r2, lsr #8
  004e0	e5c13003	 strb        r3, [r1, #3]

; 130  :         dwTmp--;

  004e4	e59d3004	 ldr         r3, [sp, #4]
  004e8	e2433001	 sub         r3, r3, #1
  004ec	e58d3004	 str         r3, [sp, #4]

; 131  :         psrc = (PBYTE)&(pTitle->title[0]);

  004f0	e59d3024	 ldr         r3, [sp, #0x24]
  004f4	e2833005	 add         r3, r3, #5
  004f8	e58d3000	 str         r3, [sp]

; 132  :         pdest = (PBYTE)&(pKey->KeyData[0]);

  004fc	e59d3020	 ldr         r3, [sp, #0x20]
  00500	e2833020	 add         r3, r3, #0x20
  00504	e58d3008	 str         r3, [sp, #8]

; 133  :         break;

  00508	ea000018	 b           |$L32156|
  0050c		 |$L32162|

; 134  :     case DvdAGID:
; 135  :         pKey->SessionId = ((PRKFMT_AGID)pTitle)->agid >> 6;

  0050c	e59d3024	 ldr         r3, [sp, #0x24]
  00510	e2833007	 add         r3, r3, #7
  00514	e5d33000	 ldrb        r3, [r3]
  00518	e1a02343	 mov         r2, r3, asr #6
  0051c	e59d3020	 ldr         r3, [sp, #0x20]
  00520	e2831008	 add         r1, r3, #8
  00524	e1a03002	 mov         r3, r2
  00528	e5c13000	 strb        r3, [r1]
  0052c	e1a02423	 mov         r2, r3, lsr #8
  00530	e1a03002	 mov         r3, r2
  00534	e5c13001	 strb        r3, [r1, #1]
  00538	e1a02422	 mov         r2, r2, lsr #8
  0053c	e1a03002	 mov         r3, r2
  00540	e5c13002	 strb        r3, [r1, #2]
  00544	e1a03422	 mov         r3, r2, lsr #8
  00548	e5c13003	 strb        r3, [r1, #3]

; 136  :         dwTmp = 0;

  0054c	e3a03000	 mov         r3, #0
  00550	e58d3004	 str         r3, [sp, #4]

; 137  :         break;

  00554	ea000005	 b           |$L32156|
  00558		 |$L32164|

; 138  :     default:
; 139  :         psrc = (PBYTE)&(pTitle->cgms);

  00558	e59d3024	 ldr         r3, [sp, #0x24]
  0055c	e2833004	 add         r3, r3, #4
  00560	e58d3000	 str         r3, [sp]

; 140  :         pdest = (PBYTE)&(pKey->KeyData[0]);

  00564	e59d3020	 ldr         r3, [sp, #0x20]
  00568	e2833020	 add         r3, r3, #0x20
  0056c	e58d3008	 str         r3, [sp, #8]

⌨️ 快捷键说明

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