?? helper.cod
字號:
; 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 + -