📄 dvdioctl.cod
字号:
; 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 + -