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

📄 atamain.cod

📁 2440 CE500BSP包, EBOOT可用DEBUG版调试
💻 COD
📖 第 1 页 / 共 5 页
字号:
  007c4	e3a03000	 mov         r3, #0
  007c8	e58d3010	 str         r3, [sp, #0x10]
  007cc		 |$L33125|

; 185  :     DEBUGMSG(ZONE_INIT, (TEXT("dwBMRStatic = %08X\r\n"), m_dwBMRStatic));

  007cc	e59f3040	 ldr         r3, [pc, #0x40]
  007d0	e5933440	 ldr         r3, [r3, #0x440]
  007d4	e3130001	 tst         r3, #1
  007d8	0a000007	 beq         |$L33126|
  007dc	e59d3020	 ldr         r3, [sp, #0x20]
  007e0	e283302c	 add         r3, r3, #0x2C
  007e4	e5931000	 ldr         r1, [r3]
  007e8	e59f0020	 ldr         r0, [pc, #0x20]
  007ec	eb000000	 bl          NKDbgPrintfW
  007f0	e3a03001	 mov         r3, #1
  007f4	e58d3014	 str         r3, [sp, #0x14]
  007f8	ea000001	 b           |$L33127|
  007fc		 |$L33126|
  007fc	e3a03000	 mov         r3, #0
  00800	e58d3014	 str         r3, [sp, #0x14]
  00804		 |$L33127|

; 186  : }

  00804	e28dd018	 add         sp, sp, #0x18
  00808	e89d6000	 ldmia       sp, {sp, lr}
  0080c	e12fff1e	 bx          lr
  00810		 |$L33132|
  00810	00000000	 DCD         |??_C@_1CK@OILLEMFN@?$AAd?$AAw?$AAB?$AAM?$AAR?$AAS?$AAt?$AAa?$AAt?$AAi?$AAc?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AA0?$AA8?$AAX?$AA?$AN?$AA?6@|
  00814	00000000	 DCD         |dpCurSettings|
  00818	00000000	 DCD         |??_C@_1CK@EMFBDPGK@?$AAd?$AAw?$AAI?$AAr?$AAq?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AA0?$AA8?$AAX?$AA?$AN?$AA?6@|
  0081c	00000000	 DCD         |??_C@_1CK@CMHPEDII@?$AAd?$AAw?$AAS?$AAy?$AAs?$AAI?$AAn?$AAt?$AAr?$AA?5?$AA?5?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AA0?$AA8?$AAX?$AA?$AN?$AA?6@|
  00820	00000000	 DCD         |??_C@_1CK@EEJADHGF@?$AAd?$AAw?$AAB?$AAM?$AAR?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AA0?$AA8?$AAX?$AA?$AN?$AA?6@|
  00824	00000000	 DCD         |??_C@_1CK@FPOOONIE@?$AAd?$AAw?$AAR?$AAe?$AAg?$AAA?$AAl?$AAt?$AA?5?$AA?5?$AA?5?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AA0?$AA8?$AAX?$AA?$AN?$AA?6@|
  00828	00000000	 DCD         |??_C@_1CK@GODODACL@?$AAd?$AAw?$AAR?$AAe?$AAg?$AAB?$AAa?$AAs?$AAe?$AA?5?$AA?5?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AA0?$AA8?$AAX?$AA?$AN?$AA?6@|
  0082c		 |$M33129|

			 ENDP  ; |?PrintInfo@CPort@@QAAXXZ|, CPort::PrintInfo

	EXPORT	|?AtaLoadRegKey@@YAPAUHKEY__@@PAU1@PAPAG@Z| ; AtaLoadRegKey
	EXPORT	|??_C@_17KACEIPNC@?$AAK?$AAe?$AAy?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_0DI@NJFJMBCE@d?3?2wince500?2platform?2smdk2440?2dr@| [ DATA ] ; `string'
	EXPORT	|??_C@_1EI@BAFIPOGD@?$AAA?$AAt?$AAa?$AAL?$AAo?$AAa?$AAd?$AAR?$AAe?$AAg?$AAy?$AAK?$AAe?$AAy?$AA?$DO?$AA?5?$AAF?$AAa?$AAi?$AAl@| [ DATA ] ; `string'
	IMPORT	|LocalAllocTrace|
	IMPORT	|RegOpenKeyExW|
	IMPORT	|RegQueryValueExW|
	IMPORT	|__rt_udiv|

  00038			 AREA	 |.pdata|, PDATA
|$T33143| DCD	|$L33142|
	DCD	0x40007704

  00000			 AREA	 |.rdata| { |??_C@_1EI@BAFIPOGD@?$AAA?$AAt?$AAa?$AAL?$AAo?$AAa?$AAd?$AAR?$AAe?$AAg?$AAy?$AAK?$AAe?$AAy?$AA?$DO?$AA?5?$AAF?$AAa?$AAi?$AAl@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1EI@BAFIPOGD@?$AAA?$AAt?$AAa?$AAL?$AAo?$AAa?$AAd?$AAR?$AAe?$AAg?$AAy?$AAK?$AAe?$AAy?$AA?$DO?$AA?5?$AAF?$AAa?$AAi?$AAl@| DCB "A"
	DCB	0x0, "t", 0x0, "a", 0x0, "L", 0x0, "o", 0x0, "a", 0x0, "d"
	DCB	0x0, "R", 0x0, "e", 0x0, "g", 0x0, "y", 0x0, "K", 0x0, "e"
	DCB	0x0, "y", 0x0, ">", 0x0, " ", 0x0, "F", 0x0, "a", 0x0, "i"
	DCB	0x0, "l", 0x0, "e", 0x0, "d", 0x0, " ", 0x0, "t", 0x0, "o"
	DCB	0x0, " ", 0x0, "o", 0x0, "p", 0x0, "e", 0x0, "n", 0x0, " "
	DCB	0x0, "%", 0x0, "s", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'

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

  00000			 AREA	 |.rdata| { |??_C@_17KACEIPNC@?$AAK?$AAe?$AAy?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_17KACEIPNC@?$AAK?$AAe?$AAy?$AA?$AA@| DCB "K", 0x0, "e", 0x0, "y", 0x0
	DCB	0x0, 0x0				; `string'
; Function compile flags: /Odt

  0082c			 AREA	 |.text|, CODE, ARM

  0082c		 |?AtaLoadRegKey@@YAPAUHKEY__@@PAU1@PAPAG@Z| PROC ; AtaLoadRegKey

; 197  : {

  0082c		 |$L33142|
  0082c	e1a0c00d	 mov         r12, sp
  00830	e92d0003	 stmdb       sp!, {r0, r1}
  00834	e92d5000	 stmdb       sp!, {r12, lr}
  00838	e24dd030	 sub         sp, sp, #0x30
  0083c		 |$M33140|

; 198  :     DWORD dwValueType;        // registry value type
; 199  :     DWORD dwValueLength = 0;  // registry value length

  0083c	e3a03000	 mov         r3, #0
  00840	e58d300c	 str         r3, [sp, #0xC]

; 200  :     PTSTR szDeviceKey = NULL; // name of device key; value associated with "Key"

  00844	e3a03000	 mov         r3, #0
  00848	e58d3008	 str         r3, [sp, #8]

; 201  :     HKEY hDeviceKey = NULL;   // handle to device key; handle to "Key"

  0084c	e3a03000	 mov         r3, #0
  00850	e58d3014	 str         r3, [sp, #0x14]

; 202  : 
; 203  :     // query the value of "Key" with @dwValueLength=0, to determine the actual
; 204  :     // length of the value (so as to allocate the exact amount of memory)
; 205  : 
; 206  :     if (ERROR_SUCCESS == RegQueryValueEx(hActiveKey, DEVLOAD_DEVKEY_VALNAME, NULL, &dwValueType, NULL, &dwValueLength)) {

  00854	e28d300c	 add         r3, sp, #0xC
  00858	e58d3004	 str         r3, [sp, #4]
  0085c	e3a03000	 mov         r3, #0
  00860	e58d3000	 str         r3, [sp]
  00864	e28d3010	 add         r3, sp, #0x10
  00868	e3a02000	 mov         r2, #0
  0086c	e59f118c	 ldr         r1, [pc, #0x18C]
  00870	e59d0038	 ldr         r0, [sp, #0x38]
  00874	eb000000	 bl          RegQueryValueExW
  00878	e58d001c	 str         r0, [sp, #0x1C]
  0087c	e59d301c	 ldr         r3, [sp, #0x1C]
  00880	e3530000	 cmp         r3, #0
  00884	1a000044	 bne         |$L32423|

; 207  : 
; 208  :         // allocate just enough memory to store the value of "Key"
; 209  :         szDeviceKey = (PTSTR)LocalAlloc(LPTR, dwValueLength);

  00888	e59f3174	 ldr         r3, [pc, #0x174]
  0088c	e3a020d1	 mov         r2, #0xD1
  00890	e59d100c	 ldr         r1, [sp, #0xC]
  00894	e3a00040	 mov         r0, #0x40
  00898	eb000000	 bl          LocalAllocTrace
  0089c	e58d0020	 str         r0, [sp, #0x20]
  008a0	e59d3020	 ldr         r3, [sp, #0x20]
  008a4	e58d3008	 str         r3, [sp, #8]

; 210  :         if (szDeviceKey) {

  008a8	e59d3008	 ldr         r3, [sp, #8]
  008ac	e3530000	 cmp         r3, #0
  008b0	0a000039	 beq         |$L32427|

; 211  : 
; 212  :             // read the actual value of "Key" and null terminate the target buffer
; 213  :             RegQueryValueEx(hActiveKey, DEVLOAD_DEVKEY_VALNAME, NULL, &dwValueType, (PBYTE)szDeviceKey, &dwValueLength);

  008b4	e28d300c	 add         r3, sp, #0xC
  008b8	e58d3004	 str         r3, [sp, #4]
  008bc	e59d3008	 ldr         r3, [sp, #8]
  008c0	e58d3000	 str         r3, [sp]
  008c4	e28d3010	 add         r3, sp, #0x10
  008c8	e3a02000	 mov         r2, #0
  008cc	e59f112c	 ldr         r1, [pc, #0x12C]
  008d0	e59d0038	 ldr         r0, [sp, #0x38]
  008d4	eb000000	 bl          RegQueryValueExW

; 214  :             DEBUGCHK(dwValueLength != 0);

  008d8	e59d300c	 ldr         r3, [sp, #0xC]
  008dc	e3530000	 cmp         r3, #0
  008e0	0a000002	 beq         |$L33134|
  008e4	e3a03001	 mov         r3, #1
  008e8	e58d3024	 str         r3, [sp, #0x24]
  008ec	ea000007	 b           |$L33135|
  008f0		 |$L33134|
  008f0	e3a030d6	 mov         r3, #0xD6
  008f4	e59f2100	 ldr         r2, [pc, #0x100]
  008f8	e59f10f4	 ldr         r1, [pc, #0xF4]
  008fc	e59f00f4	 ldr         r0, [pc, #0xF4]
  00900	eb000000	 bl          NKDbgPrintfW
  00904	e6000010	 DCD         0xe6000010
  00908	e3a03000	 mov         r3, #0
  0090c	e58d3024	 str         r3, [sp, #0x24]
  00910		 |$L33135|

; 215  :             szDeviceKey[(dwValueLength / sizeof(TCHAR)) - 1] = 0;

  00910	e59d100c	 ldr         r1, [sp, #0xC]
  00914	e3a00002	 mov         r0, #2
  00918	eb000000	 bl          __rt_udiv
  0091c	e2401001	 sub         r1, r0, #1
  00920	e3a03002	 mov         r3, #2
  00924	e0020391	 mul         r2, r1, r3
  00928	e59d3008	 ldr         r3, [sp, #8]
  0092c	e0832002	 add         r2, r3, r2
  00930	e3a03000	 mov         r3, #0
  00934	e1c230b0	 strh        r3, [r2]

; 216  : 
; 217  :             // open the device key
; 218  :             if (ERROR_SUCCESS != RegOpenKeyEx(HKEY_LOCAL_MACHINE, szDeviceKey, 0, 0, &hDeviceKey)) {

  00938	e28d3014	 add         r3, sp, #0x14
  0093c	e58d3000	 str         r3, [sp]
  00940	e3a03000	 mov         r3, #0
  00944	e3a02000	 mov         r2, #0
  00948	e59d1008	 ldr         r1, [sp, #8]
  0094c	e3a0010a	 mov         r0, #0xA, 2
  00950	eb000000	 bl          RegOpenKeyExW
  00954	e58d0028	 str         r0, [sp, #0x28]
  00958	e59d3028	 ldr         r3, [sp, #0x28]
  0095c	e3530000	 cmp         r3, #0
  00960	0a00000d	 beq         |$L32434|

; 219  :                 DEBUGMSG(ZONE_INIT, (_T(
; 220  :                     "AtaLoadRegyKey> Failed to open %s\r\n"
; 221  :                     ), szDeviceKey));

  00964	e59f3088	 ldr         r3, [pc, #0x88]
  00968	e5933440	 ldr         r3, [r3, #0x440]
  0096c	e3130001	 tst         r3, #1
  00970	0a000005	 beq         |$L33136|
  00974	e59d1008	 ldr         r1, [sp, #8]
  00978	e59f0070	 ldr         r0, [pc, #0x70]
  0097c	eb000000	 bl          NKDbgPrintfW
  00980	e3a03001	 mov         r3, #1
  00984	e58d302c	 str         r3, [sp, #0x2C]
  00988	ea000001	 b           |$L33137|
  0098c		 |$L33136|
  0098c	e3a03000	 mov         r3, #0
  00990	e58d302c	 str         r3, [sp, #0x2C]
  00994		 |$L33137|

; 222  :                 hDeviceKey = NULL;

  00994	e3a03000	 mov         r3, #0
  00998	e58d3014	 str         r3, [sp, #0x14]
  0099c		 |$L32434|
  0099c		 |$L32427|
  0099c		 |$L32423|

; 223  :             }
; 224  :         }
; 225  :     }
; 226  :     if (!hDeviceKey) {

  0099c	e59d3014	 ldr         r3, [sp, #0x14]
  009a0	e3530000	 cmp         r3, #0
  009a4	1a000008	 bne         |$L32437|

; 227  :         if (szDeviceKey) {

  009a8	e59d3008	 ldr         r3, [sp, #8]
  009ac	e3530000	 cmp         r3, #0
  009b0	0a000001	 beq         |$L32438|

; 228  :             LocalFree(szDeviceKey);

  009b4	e59d0008	 ldr         r0, [sp, #8]
  009b8	eb000000	 bl          LocalFree
  009bc		 |$L32438|

; 229  :         }
; 230  :         *pszDevKey = NULL;

  009bc	e59d203c	 ldr         r2, [sp, #0x3C]
  009c0	e3a03000	 mov         r3, #0
  009c4	e5823000	 str         r3, [r2]

; 231  :     }
; 232  :     else {

  009c8	ea000002	 b           |$L32439|
  009cc		 |$L32437|

; 233  :         *pszDevKey = szDeviceKey;

  009cc	e59d2008	 ldr         r2, [sp, #8]
  009d0	e59d303c	 ldr         r3, [sp, #0x3C]
  009d4	e5832000	 str         r2, [r3]
  009d8		 |$L32439|

; 234  :     }
; 235  :     return hDeviceKey;

  009d8	e59d3014	 ldr         r3, [sp, #0x14]
  009dc	e58d3018	 str         r3, [sp, #0x18]
  009e0	e59d0018	 ldr         r0, [sp, #0x18]

; 236  : }

  009e4	e28dd030	 add         sp, sp, #0x30
  009e8	e89d6000	 ldmia       sp, {sp, lr}
  009ec	e12fff1e	 bx          lr
  009f0		 |$L33144|
  009f0	00000000	 DCD         |??_C@_1EI@BAFIPOGD@?$AAA?$AAt?$AAa?$AAL?$AAo?$AAa?$AAd?$AAR?$AAe?$AAg?$AAy?$AAK?$AAe?$AAy?$AA?$DO?$AA?5?$AAF?$AAa?$AAi?$AAl@|
  009f4	00000000	 DCD         |dpCurSettings|
  009f8	00000000	 DCD         |??_C@_1FK@FNONLNGN@?$AA?$CF?$AAs?$AA?3?$AA?5?$AAD?$AAE?$AAB?$AAU?$AAG?$AAC?$AAH?$AAK?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5@|
  009fc	00000000	 DCD         |??_C@_1HA@HPHGJOKB@?$AAd?$AA?3?$AA?2?$AAw?$AAi?$AAn?$AAc?$AAe?$AA5?$AA0?$AA0?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm@|
  00a00	00000000	 DCD         |??_C@_17KACEIPNC@?$AAK?$AAe?$AAy?$AA?$AA@|
  00a04	00000000	 DCD         |??_C@_0DI@NJFJMBCE@d?3?2wince500?2platform?2smdk2440?2dr@|
  00a08		 |$M33141|

			 ENDP  ; |?AtaLoadRegKey@@YAPAUHKEY__@@PAU1@PAPAG@Z|, AtaLoadRegKey

	EXPORT	|?AtaIsValidDisk@@YAHPAVCDisk@@@Z|	; AtaIsValidDisk

  00040			 AREA	 |.pdata|, PDATA
|$T33150| DCD	|$L33149|
	DCD	0x40001d04
; Function compile flags: /Odt

  00a08			 AREA	 |.text|, CODE, ARM

  00a08		 |?AtaIsValidDisk@@YAHPAVCDisk@@@Z| PROC ; AtaIsValidDisk

; 243  : {

  00a08		 |$L33149|
  00a08	e1a0c00d	 mov         r12, sp
  00a0c	e92d0001	 stmdb       sp!, {r0}
  00a10	e92d5000	 stmdb       sp!, {r12, lr}
  00a14	e24dd008	 sub         sp, sp, #8
  00a18		 |$M33147|

; 244  :     CDisk *pTemp = g_pDiskRoot;

  00a18	e59f3058	 ldr         r3, [pc, #0x58]
  00a1c	e5933000	 ldr         r3, [r3]
  00a20	e58d3000	 str         r3, [sp]
  00a24		 |$L32445|

; 245  :     while (pTemp) {

  00a24	e59d3000	 ldr         r3, [sp]
  00a28	e3530000	 cmp         r3, #0
  00a2c	0a00000b	 beq         |$L32446|

; 246  :         if (pTemp == pDisk) {

  00a30	e59d2000	 ldr         r2, [sp]
  00a34	e59d3010	 ldr         r3, [sp, #0x10]
  00a38	e1520003	 cmp         r2, r3
  00a3c	1a000002	 bne         |$L32447|

; 247  :             return TRUE;

  00a40	e3a03001	 mov         r3, #1
  00a44	e58d3004	 str         r3, [sp, #4]
  00a48	ea000006	 b           |$L32442|
  00a4c		 |$L32447|

; 248  :         }
; 249  :         pTemp = pTemp->m_pNextDisk;

  00a4c	e59d3000	 ldr         r3, [sp]
  00a50	e283306c	 add         r3, r3, #0x6C
  00a54	e5933000	 ldr         r3, [r3]
  00a58	e58d3000	 str         r3, [sp]

; 250  :     }

  00a5c	eafffff0	 b           |$L32445|
  00a60		 |$L32446|

; 251  :     return FALSE;

  00a60	e3a03000	 mov         r3, #0
  00a64	e58d3004	 str         r3, [sp, #4]

⌨️ 快捷键说明

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