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

📄 atamain.cod

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

; 247  :             return TRUE;

  00a68	e59d0004	 ldr         r0, [sp, #4]

; 252  : }

  00a6c	e28dd008	 add         sp, sp, #8
  00a70	e89d6000	 ldmia       sp, {sp, lr}
  00a74	e12fff1e	 bx          lr
  00a78		 |$L33151|
  00a78	00000000	 DCD         |?g_pDiskRoot@@3PAVCDisk@@A|
  00a7c		 |$M33148|

			 ENDP  ; |?AtaIsValidDisk@@YAHPAVCDisk@@@Z|, AtaIsValidDisk

	EXPORT	|?AtaGetRegistryResources@@YAHPAUHKEY__@@PAU_DDKWINDOWINFO_tag@@@Z| ; AtaGetRegistryResources
	EXPORT	|??_C@_1JM@EKFEHKBM@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAA?$AAt?$AAa?$AAG?$AAe?$AAt?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAr?$AAy@| [ DATA ] ; `string'
	IMPORT	|DDKReg_GetWindowInfo|

  00048			 AREA	 |.pdata|, PDATA
|$T33161| DCD	|$L33160|
	DCD	0x40004404

  00000			 AREA	 |.rdata| { |??_C@_1JM@EKFEHKBM@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAA?$AAt?$AAa?$AAG?$AAe?$AAt?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAr?$AAy@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1JM@EKFEHKBM@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAA?$AAt?$AAa?$AAG?$AAe?$AAt?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAr?$AAy@| DCB "A"
	DCB	0x0, "t", 0x0, "a", 0x0, "p", 0x0, "i", 0x0, "!", 0x0, "A"
	DCB	0x0, "t", 0x0, "a", 0x0, "G", 0x0, "e", 0x0, "t", 0x0, "R"
	DCB	0x0, "e", 0x0, "g", 0x0, "i", 0x0, "s", 0x0, "t", 0x0, "r"
	DCB	0x0, "y", 0x0, "R", 0x0, "e", 0x0, "s", 0x0, "o", 0x0, "u"
	DCB	0x0, "r", 0x0, "c", 0x0, "e", 0x0, "s", 0x0, ">", 0x0, " "
	DCB	0x0, "b", 0x0, "u", 0x0, "s", 0x0, " ", 0x0, "t", 0x0, "y"
	DCB	0x0, "p", 0x0, "e", 0x0, " ", 0x0, "n", 0x0, "o", 0x0, "t"
	DCB	0x0, " ", 0x0, "s", 0x0, "p", 0x0, "e", 0x0, "c", 0x0, "i"
	DCB	0x0, "f", 0x0, "i", 0x0, "e", 0x0, "d", 0x0, ",", 0x0, " "
	DCB	0x0, "u", 0x0, "s", 0x0, "i", 0x0, "n", 0x0, "g", 0x0, " "
	DCB	0x0, "P", 0x0, "C", 0x0, "I", 0x0, " ", 0x0, "a", 0x0, "s"
	DCB	0x0, " ", 0x0, "d", 0x0, "e", 0x0, "f", 0x0, "a", 0x0, "u"
	DCB	0x0, "l", 0x0, "t", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Odt

  00a7c			 AREA	 |.text|, CODE, ARM

  00a7c		 |?AtaGetRegistryResources@@YAHPAUHKEY__@@PAU_DDKWINDOWINFO_tag@@@Z| PROC ; AtaGetRegistryResources

; 262  : {

  00a7c		 |$L33160|
  00a7c	e1a0c00d	 mov         r12, sp
  00a80	e92d0003	 stmdb       sp!, {r0, r1}
  00a84	e92d5000	 stmdb       sp!, {r12, lr}
  00a88	e24dd010	 sub         sp, sp, #0x10
  00a8c		 |$M33158|

; 263  :     DEBUGCHK(pdwi != NULL);

  00a8c	e59d301c	 ldr         r3, [sp, #0x1C]
  00a90	e3530000	 cmp         r3, #0
  00a94	0a000002	 beq         |$L33153|
  00a98	e3a03001	 mov         r3, #1
  00a9c	e58d3004	 str         r3, [sp, #4]
  00aa0	ea000008	 b           |$L33154|
  00aa4		 |$L33153|
  00aa4	e3a03f41	 mov         r3, #0x41, 30
  00aa8	e3833003	 orr         r3, r3, #3
  00aac	e59f20d4	 ldr         r2, [pc, #0xD4]
  00ab0	e59f10c8	 ldr         r1, [pc, #0xC8]
  00ab4	e59f00c8	 ldr         r0, [pc, #0xC8]
  00ab8	eb000000	 bl          NKDbgPrintfW
  00abc	e6000010	 DCD         0xe6000010
  00ac0	e3a03000	 mov         r3, #0
  00ac4	e58d3004	 str         r3, [sp, #4]
  00ac8		 |$L33154|

; 264  : 
; 265  :     if (!pdwi) {

  00ac8	e59d301c	 ldr         r3, [sp, #0x1C]
  00acc	e3530000	 cmp         r3, #0
  00ad0	1a000002	 bne         |$L32454|

; 266  :         return FALSE;

  00ad4	e3a03000	 mov         r3, #0
  00ad8	e58d3000	 str         r3, [sp]
  00adc	ea000022	 b           |$L32451|
  00ae0		 |$L32454|

; 267  :     }
; 268  : 
; 269  :     // fetch I/O window information
; 270  :     pdwi->cbSize = sizeof(*pdwi);

  00ae0	e59d201c	 ldr         r2, [sp, #0x1C]
  00ae4	e3a03074	 mov         r3, #0x74
  00ae8	e5823000	 str         r3, [r2]

; 271  :     if (ERROR_SUCCESS != ::DDKReg_GetWindowInfo(hDevKey, pdwi)) {

  00aec	e59d101c	 ldr         r1, [sp, #0x1C]
  00af0	e59d0018	 ldr         r0, [sp, #0x18]
  00af4	eb000000	 bl          DDKReg_GetWindowInfo
  00af8	e58d0008	 str         r0, [sp, #8]
  00afc	e59d3008	 ldr         r3, [sp, #8]
  00b00	e3530000	 cmp         r3, #0
  00b04	0a000002	 beq         |$L32455|

; 272  :         return FALSE;

  00b08	e3a03000	 mov         r3, #0
  00b0c	e58d3000	 str         r3, [sp]
  00b10	ea000015	 b           |$L32451|
  00b14		 |$L32455|

; 273  :     }
; 274  :     // if interface not specified, then assume PCI
; 275  :     if (pdwi->dwInterfaceType == InterfaceTypeUndefined) {

  00b14	e59d301c	 ldr         r3, [sp, #0x1C]
  00b18	e2833008	 add         r3, r3, #8
  00b1c	e5933000	 ldr         r3, [r3]
  00b20	e3730001	 cmn         r3, #1
  00b24	1a00000e	 bne         |$L32456|

; 276  :         DEBUGMSG(ZONE_WARNING, (_T(
; 277  :             "Atapi!AtaGetRegistryResources> bus type not specified, using PCI as default\r\n"
; 278  :             )));

  00b28	e59f3050	 ldr         r3, [pc, #0x50]
  00b2c	e5933440	 ldr         r3, [r3, #0x440]
  00b30	e3130a01	 tst         r3, #1, 20
  00b34	0a000004	 beq         |$L33155|
  00b38	e59f003c	 ldr         r0, [pc, #0x3C]
  00b3c	eb000000	 bl          NKDbgPrintfW
  00b40	e3a03001	 mov         r3, #1
  00b44	e58d300c	 str         r3, [sp, #0xC]
  00b48	ea000001	 b           |$L33156|
  00b4c		 |$L33155|
  00b4c	e3a03000	 mov         r3, #0
  00b50	e58d300c	 str         r3, [sp, #0xC]
  00b54		 |$L33156|

; 279  :         pdwi->dwInterfaceType = PCIBus;

  00b54	e59d301c	 ldr         r3, [sp, #0x1C]
  00b58	e2832008	 add         r2, r3, #8
  00b5c	e3a03005	 mov         r3, #5
  00b60	e5823000	 str         r3, [r2]
  00b64		 |$L32456|

; 280  :     }
; 281  : 
; 282  :     return TRUE;

  00b64	e3a03001	 mov         r3, #1
  00b68	e58d3000	 str         r3, [sp]
  00b6c		 |$L32451|

; 266  :         return FALSE;

  00b6c	e59d0000	 ldr         r0, [sp]

; 283  : }

  00b70	e28dd010	 add         sp, sp, #0x10
  00b74	e89d6000	 ldmia       sp, {sp, lr}
  00b78	e12fff1e	 bx          lr
  00b7c		 |$L33162|
  00b7c	00000000	 DCD         |??_C@_1JM@EKFEHKBM@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAA?$AAt?$AAa?$AAG?$AAe?$AAt?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAr?$AAy@|
  00b80	00000000	 DCD         |dpCurSettings|
  00b84	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@|
  00b88	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@|
  00b8c		 |$M33159|

			 ENDP  ; |?AtaGetRegistryResources@@YAHPAUHKEY__@@PAU_DDKWINDOWINFO_tag@@@Z|, AtaGetRegistryResources

	EXPORT	|?DoIoTranslation@@YAKPAU_DDKWINDOWINFO_tag@@K@Z| ; DoIoTranslation
	IMPORT	|TransBusAddrToVirtual|

  00050			 AREA	 |.pdata|, PDATA
|$T33172| DCD	|$L33171|
	DCD	0x40005904
; Function compile flags: /Odt

  00b8c			 AREA	 |.text|, CODE, ARM

  00b8c		 |?DoIoTranslation@@YAKPAU_DDKWINDOWINFO_tag@@K@Z| PROC ; DoIoTranslation

; 291  : {

  00b8c		 |$L33171|
  00b8c	e1a0c00d	 mov         r12, sp
  00b90	e92d0003	 stmdb       sp!, {r0, r1}
  00b94	e92d5000	 stmdb       sp!, {r12, lr}
  00b98	e24dd02c	 sub         sp, sp, #0x2C
  00b9c		 |$M33169|

; 292  :     PHYSICAL_ADDRESS PhysicalAddress; // bus address
; 293  :     DWORD AddressSpace = 1;           // mark bus address as being in an I/O window

  00b9c	e3a03001	 mov         r3, #1
  00ba0	e58d3018	 str         r3, [sp, #0x18]

; 294  :     LPVOID pAddress;                  // return
; 295  : 
; 296  :     DEBUGCHK(pdwi != NULL);

  00ba4	e59d3034	 ldr         r3, [sp, #0x34]
  00ba8	e3530000	 cmp         r3, #0
  00bac	0a000002	 beq         |$L33164|
  00bb0	e3a03001	 mov         r3, #1
  00bb4	e58d3020	 str         r3, [sp, #0x20]
  00bb8	ea000007	 b           |$L33165|
  00bbc		 |$L33164|
  00bbc	e3a03f4a	 mov         r3, #0x4A, 30
  00bc0	e59f2124	 ldr         r2, [pc, #0x124]
  00bc4	e59f111c	 ldr         r1, [pc, #0x11C]
  00bc8	e59f0114	 ldr         r0, [pc, #0x114]
  00bcc	eb000000	 bl          NKDbgPrintfW
  00bd0	e6000010	 DCD         0xe6000010
  00bd4	e3a03000	 mov         r3, #0
  00bd8	e58d3020	 str         r3, [sp, #0x20]
  00bdc		 |$L33165|

; 297  :     DEBUGCHK(dwIoWindowIndex < MAX_DEVICE_WINDOWS);

  00bdc	e59d3038	 ldr         r3, [sp, #0x38]
  00be0	e3530006	 cmp         r3, #6
  00be4	2a000002	 bcs         |$L33166|
  00be8	e3a03001	 mov         r3, #1
  00bec	e58d3024	 str         r3, [sp, #0x24]
  00bf0	ea000008	 b           |$L33167|
  00bf4		 |$L33166|
  00bf4	e3a03f4a	 mov         r3, #0x4A, 30
  00bf8	e3833001	 orr         r3, r3, #1
  00bfc	e59f20e8	 ldr         r2, [pc, #0xE8]
  00c00	e59f10e0	 ldr         r1, [pc, #0xE0]
  00c04	e59f00d8	 ldr         r0, [pc, #0xD8]
  00c08	eb000000	 bl          NKDbgPrintfW
  00c0c	e6000010	 DCD         0xe6000010
  00c10	e3a03000	 mov         r3, #0
  00c14	e58d3024	 str         r3, [sp, #0x24]
  00c18		 |$L33167|

; 298  :     if (!pdwi) {

  00c18	e59d3034	 ldr         r3, [sp, #0x34]
  00c1c	e3530000	 cmp         r3, #0
  00c20	1a000002	 bne         |$L32470|

; 299  :         return NULL;

  00c24	e3a03000	 mov         r3, #0
  00c28	e58d301c	 str         r3, [sp, #0x1C]
  00c2c	ea000028	 b           |$L32462|
  00c30		 |$L32470|

; 300  :     }
; 301  : 
; 302  :     // extract the target bus address
; 303  :     PhysicalAddress.HighPart = 0;

  00c30	e3a03000	 mov         r3, #0
  00c34	e58d3010	 str         r3, [sp, #0x10]

; 304  :     PhysicalAddress.LowPart = pdwi->ioWindows[dwIoWindowIndex].dwBase;

  00c38	e59d3034	 ldr         r3, [sp, #0x34]
  00c3c	e2831010	 add         r1, r3, #0x10
  00c40	e59d2038	 ldr         r2, [sp, #0x38]
  00c44	e3a03008	 mov         r3, #8
  00c48	e0030392	 mul         r3, r2, r3
  00c4c	e0813003	 add         r3, r1, r3
  00c50	e5933000	 ldr         r3, [r3]
  00c54	e58d300c	 str         r3, [sp, #0xC]

; 305  : 
; 306  :     // translate the target bus address to a virtual address
; 307  :     if (!TransBusAddrToVirtual(
; 308  :         (INTERFACE_TYPE)pdwi->dwInterfaceType,
; 309  :         pdwi->dwBusNumber,
; 310  :         PhysicalAddress,
; 311  :         pdwi->ioWindows[dwIoWindowIndex].dwLen,
; 312  :         &AddressSpace,
; 313  :         &pAddress
; 314  :      )) {

  00c58	e28d3014	 add         r3, sp, #0x14
  00c5c	e58d3008	 str         r3, [sp, #8]
  00c60	e28d3018	 add         r3, sp, #0x18
  00c64	e58d3004	 str         r3, [sp, #4]
  00c68	e59d3034	 ldr         r3, [sp, #0x34]
  00c6c	e2831010	 add         r1, r3, #0x10
  00c70	e59d2038	 ldr         r2, [sp, #0x38]
  00c74	e3a03008	 mov         r3, #8
  00c78	e0030392	 mul         r3, r2, r3
  00c7c	e0813003	 add         r3, r1, r3
  00c80	e2833004	 add         r3, r3, #4
  00c84	e5933000	 ldr         r3, [r3]
  00c88	e58d3000	 str         r3, [sp]
  00c8c	e59d200c	 ldr         r2, [sp, #0xC]
  00c90	e59d3010	 ldr         r3, [sp, #0x10]
  00c94	e59d1034	 ldr         r1, [sp, #0x34]
  00c98	e2811004	 add         r1, r1, #4
  00c9c	e5911000	 ldr         r1, [r1]
  00ca0	e59d0034	 ldr         r0, [sp, #0x34]
  00ca4	e2800008	 add         r0, r0, #8
  00ca8	e5900000	 ldr         r0, [r0]
  00cac	eb000000	 bl          TransBusAddrToVirtual
  00cb0	e58d0028	 str         r0, [sp, #0x28]
  00cb4	e59d3028	 ldr         r3, [sp, #0x28]
  00cb8	e3530000	 cmp         r3, #0
  00cbc	1a000002	 bne         |$L32472|

; 315  :         return NULL;

  00cc0	e3a03000	 mov         r3, #0
  00cc4	e58d301c	 str         r3, [sp, #0x1C]
  00cc8	ea000001	 b           |$L32462|
  00ccc		 |$L32472|

; 316  :     }
; 317  : 
; 318  :     return (DWORD)pAddress;

  00ccc	e59d3014	 ldr         r3, [sp, #0x14]
  00cd0	e58d301c	 str         r3, [sp, #0x1C]
  00cd4		 |$L32462|

; 299  :         return NULL;

  00cd4	e59d001c	 ldr         r0, [sp, #0x1C]

; 319  : }

  00cd8	e28dd02c	 add         sp, sp, #0x2C
  00cdc	e89d6000	 ldmia       sp, {sp, lr}
  00ce0	e12fff1e	 bx          lr
  00ce4		 |$L33173|
  00ce4	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@|
  00ce8	00000000	 DCD         |dpCurSettings|
  00cec	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@|
  00cf0		 |$M33170|

			 ENDP  ; |?DoIoTranslation@@YAKPAU_DDKWINDOWINFO_tag@@K@Z|, DoIoTranslation

	EXPORT	|?DoStaticTranslation@@YAKPAU_DDKWINDOWINFO_tag@@K@Z| ; DoStaticTranslation
	IMPORT	|TransBusAddrToStatic|

  00058			 AREA	 |.pdata|, PDATA
|$T3318

⌨️ 快捷键说明

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