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

📄 helper.cod

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

	TTL	D:\WINCE500\PLATFORM\smdk2440\DRIVERS\atapi\.\helper.cpp
	CODE32

  00000			 AREA	 |.drectve|, DRECTVE
	DCB	"-defaultlib:coredll.lib "
	DCB	"-defaultlib:corelibc.lib "

	EXPORT	|??_C@_1IC@PCOCJMHO@?$AAA?$AAT?$AAA?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AA?3?$AA?5?$AAR?$AAe?$AAg?$AAQ?$AAu?$AAe?$AAr?$AAy?$AAV@| [ DATA ] ; `string'
	EXPORT	|??_C@_1GI@DKNKPAGD@?$AAA?$AAT?$AAA?$AAP?$AAI?$AA?3?$AA?5?$AAA?$AAt?$AAa?$AAG?$AAe?$AAt?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAr@| [ DATA ] ; `string'
	EXPORT	|?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z| ; AtaGetRegistryValue
	IMPORT	|NKDbgPrintfW|
	IMPORT	|dpCurSettings|
	IMPORT	|RegQueryValueExW|
	IMPORT	|GetLastError|

  00000			 AREA	 |.pdata|, PDATA
|$T32057| DCD	|$L32056|
	DCD	0x40004604
; File d:\wince500\platform\smdk2440\drivers\atapi\helper.cpp

  00000			 AREA	 |.rdata| { |??_C@_1GI@DKNKPAGD@?$AAA?$AAT?$AAA?$AAP?$AAI?$AA?3?$AA?5?$AAA?$AAt?$AAa?$AAG?$AAe?$AAt?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAr@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1GI@DKNKPAGD@?$AAA?$AAT?$AAA?$AAP?$AAI?$AA?3?$AA?5?$AAA?$AAt?$AAa?$AAG?$AAe?$AAt?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAr@| DCB "A"
	DCB	0x0, "T", 0x0, "A", 0x0, "P", 0x0, "I", 0x0, ":", 0x0, " "
	DCB	0x0, "A", 0x0, "t", 0x0, "a", 0x0, "G", 0x0, "e", 0x0, "t"
	DCB	0x0, "R", 0x0, "e", 0x0, "g", 0x0, "i", 0x0, "s", 0x0, "t"
	DCB	0x0, "r", 0x0, "y", 0x0, "V", 0x0, "a", 0x0, "l", 0x0, "u"
	DCB	0x0, "e", 0x0, "(", 0x0, "%", 0x0, "s", 0x0, ")", 0x0, " "
	DCB	0x0, "V", 0x0, "a", 0x0, "l", 0x0, "u", 0x0, "e", 0x0, "("
	DCB	0x0, "%", 0x0, "x", 0x0, ")", 0x0, " ", 0x0, "h", 0x0, "K"
	DCB	0x0, "e", 0x0, "y", 0x0, ":", 0x0, " ", 0x0, "%", 0x0, "x"
	DCB	0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0	; `string'

  00000			 AREA	 |.rdata| { |??_C@_1IC@PCOCJMHO@?$AAA?$AAT?$AAA?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AA?3?$AA?5?$AAR?$AAe?$AAg?$AAQ?$AAu?$AAe?$AAr?$AAy?$AAV@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1IC@PCOCJMHO@?$AAA?$AAT?$AAA?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AA?3?$AA?5?$AAR?$AAe?$AAg?$AAQ?$AAu?$AAe?$AAr?$AAy?$AAV@| DCB "A"
	DCB	0x0, "T", 0x0, "A", 0x0, "C", 0x0, "o", 0x0, "n", 0x0, "f"
	DCB	0x0, "i", 0x0, "g", 0x0, ":", 0x0, " ", 0x0, "R", 0x0, "e"
	DCB	0x0, "g", 0x0, "Q", 0x0, "u", 0x0, "e", 0x0, "r", 0x0, "y"
	DCB	0x0, "V", 0x0, "a", 0x0, "l", 0x0, "u", 0x0, "e", 0x0, "E"
	DCB	0x0, "x", 0x0, "(", 0x0, "%", 0x0, "s", 0x0, ")", 0x0, " "
	DCB	0x0, "f", 0x0, "a", 0x0, "i", 0x0, "l", 0x0, "e", 0x0, "d"
	DCB	0x0, " ", 0x0, "-", 0x0, "r", 0x0, "e", 0x0, "t", 0x0, "u"
	DCB	0x0, "r", 0x0, "n", 0x0, "e", 0x0, "d", 0x0, " ", 0x0, "%"
	DCB	0x0, "d", 0x0, " ", 0x0, " ", 0x0, "E", 0x0, "r", 0x0, "r"
	DCB	0x0, "o", 0x0, "r", 0x0, "=", 0x0, "%", 0x0, "0", 0x0, "8"
	DCB	0x0, "X", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Odt

  00000			 AREA	 |.text|, CODE, ARM

  00000		 |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z| PROC ; AtaGetRegistryValue

; 14   : {

  00000		 |$L32056|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0007	 stmdb       sp!, {r0 - r2}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c	e24dd028	 sub         sp, sp, #0x28
  00010		 |$M32054|

; 15   :     
; 16   :     DWORD               dwValType, dwValLen;
; 17   :     LONG                lStatus;
; 18   :             
; 19   :     dwValLen = sizeof(DWORD);

  00010	e3a03004	 mov         r3, #4
  00014	e58d300c	 str         r3, [sp, #0xC]

; 20   :         
; 21   :     lStatus = RegQueryValueEx( hKey, szValueName, NULL, &dwValType, (PBYTE)pdwValue, &dwValLen);

  00018	e28d300c	 add         r3, sp, #0xC
  0001c	e58d3004	 str         r3, [sp, #4]
  00020	e59d3038	 ldr         r3, [sp, #0x38]
  00024	e58d3000	 str         r3, [sp]
  00028	e28d3010	 add         r3, sp, #0x10
  0002c	e3a02000	 mov         r2, #0
  00030	e59d1034	 ldr         r1, [sp, #0x34]
  00034	e59d0030	 ldr         r0, [sp, #0x30]
  00038	eb000000	 bl          RegQueryValueExW
  0003c	e58d0018	 str         r0, [sp, #0x18]
  00040	e59d3018	 ldr         r3, [sp, #0x18]
  00044	e58d3008	 str         r3, [sp, #8]

; 22   :         
; 23   :     if ((lStatus != ERROR_SUCCESS) || (dwValType != REG_DWORD)) {           

  00048	e59d3008	 ldr         r3, [sp, #8]
  0004c	e3530000	 cmp         r3, #0
  00050	1a000002	 bne         |$L31951|
  00054	e59d3010	 ldr         r3, [sp, #0x10]
  00058	e3530004	 cmp         r3, #4
  0005c	0a000015	 beq         |$L31950|
  00060		 |$L31951|

; 24   :         DEBUGMSG( ZONE_HELPER , (TEXT("ATAConfig: RegQueryValueEx(%s) failed -returned %d  Error=%08X\r\n"), szValueName, lStatus, GetLastError()));

  00060	e59f30a8	 ldr         r3, [pc, #0xA8]
  00064	e5933440	 ldr         r3, [r3, #0x440]
  00068	e3130901	 tst         r3, #1, 18
  0006c	0a000009	 beq         |$L32049|
  00070	eb000000	 bl          GetLastError
  00074	e58d001c	 str         r0, [sp, #0x1C]
  00078	e59d301c	 ldr         r3, [sp, #0x1C]
  0007c	e59d2008	 ldr         r2, [sp, #8]
  00080	e59d1034	 ldr         r1, [sp, #0x34]
  00084	e59f0088	 ldr         r0, [pc, #0x88]
  00088	eb000000	 bl          NKDbgPrintfW
  0008c	e3a03001	 mov         r3, #1
  00090	e58d3020	 str         r3, [sp, #0x20]
  00094	ea000001	 b           |$L32050|
  00098		 |$L32049|
  00098	e3a03000	 mov         r3, #0
  0009c	e58d3020	 str         r3, [sp, #0x20]
  000a0		 |$L32050|

; 25   :         *pdwValue = -1;

  000a0	e59d2038	 ldr         r2, [sp, #0x38]
  000a4	e3e03000	 mvn         r3, #0
  000a8	e5823000	 str         r3, [r2]

; 26   :         return FALSE;

  000ac	e3a03000	 mov         r3, #0
  000b0	e58d3014	 str         r3, [sp, #0x14]
  000b4	ea000010	 b           |$L31944|
  000b8		 |$L31950|

; 27   :     } 
; 28   :     DEBUGMSG( ZONE_HELPER, (TEXT("ATAPI: AtaGetRegistryValue(%s) Value(%x) hKey: %x\r\n"), szValueName,*pdwValue,hKey));

  000b8	e59f3050	 ldr         r3, [pc, #0x50]
  000bc	e5933440	 ldr         r3, [r3, #0x440]
  000c0	e3130901	 tst         r3, #1, 18
  000c4	0a000008	 beq         |$L32051|
  000c8	e59d3030	 ldr         r3, [sp, #0x30]
  000cc	e59d2038	 ldr         r2, [sp, #0x38]
  000d0	e5922000	 ldr         r2, [r2]
  000d4	e59d1034	 ldr         r1, [sp, #0x34]
  000d8	e59f002c	 ldr         r0, [pc, #0x2C]
  000dc	eb000000	 bl          NKDbgPrintfW
  000e0	e3a03001	 mov         r3, #1
  000e4	e58d3024	 str         r3, [sp, #0x24]
  000e8	ea000001	 b           |$L32052|
  000ec		 |$L32051|
  000ec	e3a03000	 mov         r3, #0
  000f0	e58d3024	 str         r3, [sp, #0x24]
  000f4		 |$L32052|

; 29   :     return TRUE;

  000f4	e3a03001	 mov         r3, #1
  000f8	e58d3014	 str         r3, [sp, #0x14]
  000fc		 |$L31944|

; 26   :         return FALSE;

  000fc	e59d0014	 ldr         r0, [sp, #0x14]

; 30   : }

  00100	e28dd028	 add         sp, sp, #0x28
  00104	e89d6000	 ldmia       sp, {sp, lr}
  00108	e12fff1e	 bx          lr
  0010c		 |$L32058|
  0010c	00000000	 DCD         |??_C@_1GI@DKNKPAGD@?$AAA?$AAT?$AAA?$AAP?$AAI?$AA?3?$AA?5?$AAA?$AAt?$AAa?$AAG?$AAe?$AAt?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAr@|
  00110	00000000	 DCD         |dpCurSettings|
  00114	00000000	 DCD         |??_C@_1IC@PCOCJMHO@?$AAA?$AAT?$AAA?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AA?3?$AA?5?$AAR?$AAe?$AAg?$AAQ?$AAu?$AAe?$AAr?$AAy?$AAV@|
  00118		 |$M32055|

			 ENDP  ; |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|, AtaGetRegistryValue

	EXPORT	|??_C@_1IC@POLGPDOI@?$AAA?$AAT?$AAA?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AA?3?$AA?5?$AAA?$AAt?$AAa?$AAG?$AAe?$AAt?$AAR?$AAe?$AAg@| [ DATA ] ; `string'
	EXPORT	|??_C@_0DH@MIPNINOA@d?3?2wince500?2platform?2smdk2440?2dr@| [ DATA ] ; `string'
	EXPORT	|??_C@_1GK@BJKKNMFH@?$AAA?$AAT?$AAA?$AAP?$AAI?$AA?3?$AA?5?$AAA?$AAt?$AAa?$AAG?$AAe?$AAt?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAr@| [ DATA ] ; `string'
	EXPORT	|?AtaGetRegistryString@@YAHPAUHKEY__@@PAGPAPAGK@Z| ; AtaGetRegistryString
	IMPORT	|LocalAllocTrace|
	IMPORT	|LocalFree|

  00008			 AREA	 |.pdata|, PDATA
|$T32072| DCD	|$L32071|
	DCD	0x40009204

  00000			 AREA	 |.rdata| { |??_C@_1GK@BJKKNMFH@?$AAA?$AAT?$AAA?$AAP?$AAI?$AA?3?$AA?5?$AAA?$AAt?$AAa?$AAG?$AAe?$AAt?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAr@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1GK@BJKKNMFH@?$AAA?$AAT?$AAA?$AAP?$AAI?$AA?3?$AA?5?$AAA?$AAt?$AAa?$AAG?$AAe?$AAt?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAr@| DCB "A"
	DCB	0x0, "T", 0x0, "A", 0x0, "P", 0x0, "I", 0x0, ":", 0x0, " "
	DCB	0x0, "A", 0x0, "t", 0x0, "a", 0x0, "G", 0x0, "e", 0x0, "t"
	DCB	0x0, "R", 0x0, "e", 0x0, "g", 0x0, "i", 0x0, "s", 0x0, "t"
	DCB	0x0, "r", 0x0, "y", 0x0, "S", 0x0, "t", 0x0, "r", 0x0, "i"
	DCB	0x0, "n", 0x0, "g", 0x0, "(", 0x0, "%", 0x0, "s", 0x0, ")"
	DCB	0x0, " ", 0x0, "V", 0x0, "a", 0x0, "l", 0x0, "u", 0x0, "e"
	DCB	0x0, "(", 0x0, "%", 0x0, "s", 0x0, ")", 0x0, " ", 0x0, "h"
	DCB	0x0, "K", 0x0, "e", 0x0, "y", 0x0, ":", 0x0, " ", 0x0, "%"
	DCB	0x0, "x", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0DH@MIPNINOA@d?3?2wince500?2platform?2smdk2440?2dr@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DH@MIPNINOA@d?3?2wince500?2platform?2smdk2440?2dr@| DCB "d:\\winc"
	DCB	"e500\\platform\\smdk2440\\drivers\\atapi\\helper.cpp", 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_1IC@POLGPDOI@?$AAA?$AAT?$AAA?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AA?3?$AA?5?$AAA?$AAt?$AAa?$AAG?$AAe?$AAt?$AAR?$AAe?$AAg@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1IC@POLGPDOI@?$AAA?$AAT?$AAA?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AA?3?$AA?5?$AAA?$AAt?$AAa?$AAG?$AAe?$AAt?$AAR?$AAe?$AAg@| DCB "A"
	DCB	0x0, "T", 0x0, "A", 0x0, "C", 0x0, "o", 0x0, "n", 0x0, "f"
	DCB	0x0, "i", 0x0, "g", 0x0, ":", 0x0, " ", 0x0, "A", 0x0, "t"
	DCB	0x0, "a", 0x0, "G", 0x0, "e", 0x0, "t", 0x0, "R", 0x0, "e"
	DCB	0x0, "g", 0x0, "i", 0x0, "s", 0x0, "t", 0x0, "r", 0x0, "y"
	DCB	0x0, "S", 0x0, "t", 0x0, "r", 0x0, "i", 0x0, "n", 0x0, "g"
	DCB	0x0, " ", 0x0, "s", 0x0, "i", 0x0, "z", 0x0, "e", 0x0, " "
	DCB	0x0, "s", 0x0, "p", 0x0, "e", 0x0, "c", 0x0, "i", 0x0, "f"
	DCB	0x0, "i", 0x0, "e", 0x0, "d", 0x0, " ", 0x0, "i", 0x0, "s"
	DCB	0x0, " ", 0x0, "t", 0x0, "o", 0x0, "o", 0x0, " ", 0x0, "s"
	DCB	0x0, "m", 0x0, "a", 0x0, "l", 0x0, "l", 0x0, "!", 0x0, "!"
	DCB	0x0, "!", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Odt

  00118			 AREA	 |.text|, CODE, ARM

  00118		 |?AtaGetRegistryString@@YAHPAUHKEY__@@PAGPAPAGK@Z| PROC ; AtaGetRegistryString

; 33   : {

  00118		 |$L32071|
  00118	e1a0c00d	 mov         r12, sp
  0011c	e92d000f	 stmdb       sp!, {r0 - r3}
  00120	e92d5000	 stmdb       sp!, {r12, lr}
  00124	e24dd03c	 sub         sp, sp, #0x3C
  00128		 |$M32069|

; 34   :     DWORD             dwValType, dwValLen;
; 35   :     LONG                lStatus;
; 36   :     
; 37   :     dwValLen = 0;

  00128	e3a03000	 mov         r3, #0
  0012c	e58d300c	 str         r3, [sp, #0xC]

; 38   :     lStatus = RegQueryValueEx( hKey, szValueName, NULL, &dwValType, NULL, &dwValLen);

  00130	e28d300c	 add         r3, sp, #0xC
  00134	e58d3004	 str         r3, [sp, #4]
  00138	e3a03000	 mov         r3, #0
  0013c	e58d3000	 str         r3, [sp]
  00140	e28d3010	 add         r3, sp, #0x10
  00144	e3a02000	 mov         r2, #0
  00148	e59d1048	 ldr         r1, [sp, #0x48]
  0014c	e59d0044	 ldr         r0, [sp, #0x44]
  00150	eb000000	 bl          RegQueryValueExW
  00154	e58d0018	 str         r0, [sp, #0x18]
  00158	e59d3018	 ldr         r3, [sp, #0x18]
  0015c	e58d3008	 str         r3, [sp, #8]

; 39   : 
; 40   :     if (dwSize && (dwValLen > dwSize)) {

  00160	e59d3050	 ldr         r3, [sp, #0x50]
  00164	e3530000	 cmp         r3, #0
  00168	0a000011	 beq         |$L31965|
  0016c	e59d200c	 ldr         r2, [sp, #0xC]
  00170	e59d3050	 ldr         r3, [sp, #0x50]
  00174	e1520003	 cmp         r2, r3
  00178	9a00000d	 bls         |$L31965|

; 41   :         DEBUGMSG( ZONE_HELPER, (TEXT("ATAConfig: AtaGetRegistryString size specified is too small!!!\r\n")));

  0017c	e59f31cc	 ldr         r3, [pc, #0x1CC]
  00180	e5933440	 ldr         r3, [r3, #0x440]
  00184	e3130901	 tst         r3, #1, 18
  00188	0a000004	 beq         |$L32060|
  0018c	e59f01c8	 ldr         r0, [pc, #0x1C8]
  00190	eb000000	 bl          NKDbgPrintfW
  00194	e3a03001	 mov         r3, #1
  00198	e58d301c	 str         r3, [sp, #0x1C]
  0019c	ea000001	 b           |$L32061|
  001a0		 |$L32060|
  001a0	e3a03000	 mov         r3, #0
  001a4	e58d301c	 str         r3, [sp, #0x1C]
  001a8		 |$L32061|

; 42   :         return FALSE;

  001a8	e3a03000	 mov         r3, #0
  001ac	e58d3014	 str         r3, [sp, #0x14]
  001b0	ea000061	 b           |$L31961|
  001b4		 |$L31965|

; 43   :     }   
; 44   :         
; 45   :     if ((lStatus != ERROR_SUCCESS) || (dwValType != REG_SZ)) {          

  001b4	e59d3008	 ldr         r3, [sp, #8]
  001b8	e3530000	 cmp         r3, #0
  001bc	1a000002	 bne         |$L31969|
  001c0	e59d3010	 ldr         r3, [sp, #0x10]
  001c4	e3530001	 cmp         r3, #1
  001c8	0a000015	 beq         |$L31968|
  001cc		 |$L31969|

; 46   :         DEBUGMSG( ZONE_HELPER , (TEXT("ATAConfig: RegQueryValueEx(%s) failed -returned %d  Error=%08X\r\n"), szValueName, lStatus, GetLastError()));

  001cc	e59f317c	 ldr         r3, [pc, #0x17C]
  001d0	e5933440	 ldr         r3, [r3, #0x440]
  001d4	e3130901	 tst         r3, #1, 18
  001d8	0a000009	 beq         |$L32062|
  001dc	eb000000	 bl          GetLastError
  001e0	e58d0020	 str         r0, [sp, #0x20]
  001e4	e59d3020	 ldr         r3, [sp, #0x20]
  001e8	e59d2008	 ldr         r2, [sp, #8]
  001ec	e59d1048	 ldr         r1, [sp, #0x48]
  001f0	e59f015c	 ldr         r0, [pc, #0x15C]
  001f4	eb000000	 bl          NKDbgPrintfW
  001f8	e3a03001	 mov         r3, #1
  001fc	e58d3024	 str         r3, [sp, #0x24]
  00200	ea000001	 b           |$L32063|
  00204		 |$L32062|
  00204	e3a03000	 mov         r3, #0
  00208	e58d3024	 str         r3, [sp, #0x24]
  0020c		 |$L32063|

; 47   :         *pszValue = NULL;

  0020c	e59d204c	 ldr         r2, [sp, #0x4C]
  00210	e3a03000	 mov         r3, #0
  00214	e5823000	 str         r3, [r2]

; 48   :         return FALSE;

  00218	e3a03000	 mov         r3, #0
  0021c	e58d3014	 str         r3, [sp, #0x14]
  00220	ea000045	 b           |$L31961|
  00224		 |$L31968|

; 49   :     }
; 50   :     
; 51   :     if (!dwSize) 

  00224	e59d3050	 ldr         r3, [sp, #0x50]
  00228	e3530000	 cmp         r3, #0
  0022c	1a000008	 bne         |$L31971|

; 52   :         *pszValue = (PTSTR)LocalAlloc( LPTR, dwValLen);

  00230	e59f3120	 ldr         r3, [pc, #0x120]
  00234	e3a02034	 mov         r2, #0x34
  00238	e59d100c	 ldr         r1, [sp, #0xC]
  0023c	e3a00040	 mov         r0, #0x40
  00240	eb000000	 bl          LocalAllocTrace

⌨️ 快捷键说明

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