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

📄 diskmain.cod

📁 2440 CE500BSP包, EBOOT可用DEBUG版调试
💻 COD
📖 第 1 页 / 共 5 页
字号:
; Function compile flags: /Odt

  00228			 AREA	 |.text|, CODE, ARM

  00228		 |??1CDisk@@UAA@XZ| PROC		; CDisk::~CDisk

; 92   : {

  00228		 |$L32936|
  00228	e1a0c00d	 mov         r12, sp
  0022c	e92d0001	 stmdb       sp!, {r0}
  00230	e92d5000	 stmdb       sp!, {r12, lr}
  00234	e24dd010	 sub         sp, sp, #0x10
  00238		 |$M32934|
  00238	e59f20d8	 ldr         r2, [pc, #0xD8]
  0023c	e59d3018	 ldr         r3, [sp, #0x18]
  00240	e5832000	 str         r2, [r3]

; 93   :     if (m_hDevKey) {

  00244	e59d3018	 ldr         r3, [sp, #0x18]
  00248	e2833d12	 add         r3, r3, #0x12, 26
  0024c	e5933000	 ldr         r3, [r3]
  00250	e3530000	 cmp         r3, #0
  00254	0a000003	 beq         |$L31958|

; 94   :         RegCloseKey(m_hDevKey);

  00258	e59d3018	 ldr         r3, [sp, #0x18]
  0025c	e2833d12	 add         r3, r3, #0x12, 26
  00260	e5930000	 ldr         r0, [r3]
  00264	eb000000	 bl          RegCloseKey
  00268		 |$L31958|

; 95   :     }
; 96   : 
; 97   :     if(m_pDiskPower != NULL) {

  00268	e59d3018	 ldr         r3, [sp, #0x18]
  0026c	e2833c06	 add         r3, r3, #6, 24
  00270	e28330d4	 add         r3, r3, #0xD4
  00274	e5933000	 ldr         r3, [r3]
  00278	e3530000	 cmp         r3, #0
  0027c	0a000016	 beq         |$L31959|

; 98   :         delete m_pDiskPower;

  00280	e59d3018	 ldr         r3, [sp, #0x18]
  00284	e2833c06	 add         r3, r3, #6, 24
  00288	e28330d4	 add         r3, r3, #0xD4
  0028c	e5933000	 ldr         r3, [r3]
  00290	e58d3004	 str         r3, [sp, #4]
  00294	e59d3004	 ldr         r3, [sp, #4]
  00298	e58d3000	 str         r3, [sp]
  0029c	e59d3000	 ldr         r3, [sp]
  002a0	e3530000	 cmp         r3, #0
  002a4	0a00000a	 beq         |$L32932|
  002a8	e3a01001	 mov         r1, #1
  002ac	e59d3000	 ldr         r3, [sp]
  002b0	e5933000	 ldr         r3, [r3]
  002b4	e59d0000	 ldr         r0, [sp]
  002b8	e5933000	 ldr         r3, [r3]
  002bc	e1a0e00f	 mov         lr, pc
  002c0	e12fff13	 bx          r3
  002c4	e58d0008	 str         r0, [sp, #8]
  002c8	e59d3008	 ldr         r3, [sp, #8]
  002cc	e58d300c	 str         r3, [sp, #0xC]
  002d0	ea000001	 b           |$L32933|
  002d4		 |$L32932|
  002d4	e3a03000	 mov         r3, #0
  002d8	e58d300c	 str         r3, [sp, #0xC]
  002dc		 |$L32933|
  002dc		 |$L31959|

; 99   :     }
; 100  : 
; 101  :     DeleteCriticalSection(&m_csDisk);

  002dc	e59d3018	 ldr         r3, [sp, #0x18]
  002e0	e2830054	 add         r0, r3, #0x54
  002e4	eb000000	 bl          DeleteCriticalSection

; 102  : 
; 103  :     // deallocate double buffer, if present
; 104  :     if (NULL != m_rgbDoubleBuffer) {

  002e8	e59d3018	 ldr         r3, [sp, #0x18]
  002ec	e283304c	 add         r3, r3, #0x4C
  002f0	e5933000	 ldr         r3, [r3]
  002f4	e3530000	 cmp         r3, #0
  002f8	0a000003	 beq         |$L31962|

; 105  :         LocalFree((HLOCAL)m_rgbDoubleBuffer);

  002fc	e59d3018	 ldr         r3, [sp, #0x18]
  00300	e283304c	 add         r3, r3, #0x4C
  00304	e5930000	 ldr         r0, [r3]
  00308	eb000000	 bl          LocalFree
  0030c		 |$L31962|

; 106  :     }
; 107  : }

  0030c	e28dd010	 add         sp, sp, #0x10
  00310	e89d6000	 ldmia       sp, {sp, lr}
  00314	e12fff1e	 bx          lr
  00318		 |$L32938|
  00318	00000000	 DCD         |??_7CDisk@@6B@|
  0031c		 |$M32935|

			 ENDP  ; |??1CDisk@@UAA@XZ|, CDisk::~CDisk

	EXPORT	|?StallExecution@CDisk@@QAAXK@Z|	; CDisk::StallExecution
	IMPORT	|StallExecution|
	IMPORT	|Sleep|
	IMPORT	|__rt_udiv|

  00018			 AREA	 |.pdata|, PDATA
|$T32944| DCD	|$L32943|
	DCD	0x40001603
; Function compile flags: /Odt

  0031c			 AREA	 |.text|, CODE, ARM

  0031c		 |?StallExecution@CDisk@@QAAXK@Z| PROC	; CDisk::StallExecution

; 121  : {

  0031c		 |$L32943|
  0031c	e1a0c00d	 mov         r12, sp
  00320	e92d0003	 stmdb       sp!, {r0, r1}
  00324	e92d5000	 stmdb       sp!, {r12, lr}
  00328		 |$M32941|

; 122  :     if ((dwTime >= 100) && (m_dwDeviceFlags & DFLAGS_DEVICE_CDROM)) {

  00328	e59d300c	 ldr         r3, [sp, #0xC]
  0032c	e3530064	 cmp         r3, #0x64
  00330	3a000009	 bcc         |$L31968|
  00334	e59d3008	 ldr         r3, [sp, #8]
  00338	e2833e69	 add         r3, r3, #0x69, 28
  0033c	e5933000	 ldr         r3, [r3]
  00340	e3130301	 tst         r3, #1, 6
  00344	0a000004	 beq         |$L31968|

; 123  :         Sleep (dwTime / 100);

  00348	e59d100c	 ldr         r1, [sp, #0xC]
  0034c	e3a00064	 mov         r0, #0x64
  00350	eb000000	 bl          __rt_udiv
  00354	eb000000	 bl          Sleep

; 124  :     }
; 125  :     else {

  00358	ea000003	 b           |$L31969|
  0035c		 |$L31968|

; 126  :         ::StallExecution(dwTime * 10);

  0035c	e59d200c	 ldr         r2, [sp, #0xC]
  00360	e3a0300a	 mov         r3, #0xA
  00364	e0000392	 mul         r0, r2, r3
  00368	eb000000	 bl          StallExecution
  0036c		 |$L31969|

; 127  :     }
; 128  : }

  0036c	e89d6000	 ldmia       sp, {sp, lr}
  00370	e12fff1e	 bx          lr
  00374		 |$M32942|

			 ENDP  ; |?StallExecution@CDisk@@QAAXK@Z|, CDisk::StallExecution

	IMPORT	|EnterCriticalSection|

  00020			 AREA	 |.pdata|, PDATA
|$T32949| DCD	|$L32948|
	DCD	0x40000803
; Function compile flags: /Odt

  00374			 AREA	 |.text|, CODE, ARM

  00374		 |?TakeCS@CDisk@@UAAXXZ| PROC		; CDisk::TakeCS

; 133  : void CDisk::TakeCS()                    { EnterCriticalSection(&m_csDisk); }

  00374		 |$L32948|
  00374	e1a0c00d	 mov         r12, sp
  00378	e92d0001	 stmdb       sp!, {r0}
  0037c	e92d5000	 stmdb       sp!, {r12, lr}
  00380		 |$M32946|
  00380	e59d3008	 ldr         r3, [sp, #8]
  00384	e2830054	 add         r0, r3, #0x54
  00388	eb000000	 bl          EnterCriticalSection
  0038c	e89d6000	 ldmia       sp, {sp, lr}
  00390	e12fff1e	 bx          lr
  00394		 |$M32947|

			 ENDP  ; |?TakeCS@CDisk@@UAAXXZ|, CDisk::TakeCS

	IMPORT	|LeaveCriticalSection|

  00028			 AREA	 |.pdata|, PDATA
|$T32954| DCD	|$L32953|
	DCD	0x40000803
; Function compile flags: /Odt

  00394			 AREA	 |.text|, CODE, ARM

  00394		 |?ReleaseCS@CDisk@@UAAXXZ| PROC	; CDisk::ReleaseCS

; 134  : void CDisk::ReleaseCS()                 { LeaveCriticalSection(&m_csDisk); }

  00394		 |$L32953|
  00394	e1a0c00d	 mov         r12, sp
  00398	e92d0001	 stmdb       sp!, {r0}
  0039c	e92d5000	 stmdb       sp!, {r12, lr}
  003a0		 |$M32951|
  003a0	e59d3008	 ldr         r3, [sp, #8]
  003a4	e2830054	 add         r0, r3, #0x54
  003a8	eb000000	 bl          LeaveCriticalSection
  003ac	e89d6000	 ldmia       sp, {sp, lr}
  003b0	e12fff1e	 bx          lr
  003b4		 |$M32952|

			 ENDP  ; |?ReleaseCS@CDisk@@UAAXXZ|, CDisk::ReleaseCS

	EXPORT	|?Open@CDisk@@QAAXXZ|			; CDisk::Open
	IMPORT	|InterlockedIncrement|

  00030			 AREA	 |.pdata|, PDATA
|$T32959| DCD	|$L32958|
	DCD	0x40000803
; Function compile flags: /Odt

  003b4			 AREA	 |.text|, CODE, ARM

  003b4		 |?Open@CDisk@@QAAXXZ| PROC		; CDisk::Open

; 135  : void CDisk::Open()                      { InterlockedIncrement((LONG *)&m_dwOpenCount); }

  003b4		 |$L32958|
  003b4	e1a0c00d	 mov         r12, sp
  003b8	e92d0001	 stmdb       sp!, {r0}
  003bc	e92d5000	 stmdb       sp!, {r12, lr}
  003c0		 |$M32956|
  003c0	e59d3008	 ldr         r3, [sp, #8]
  003c4	e2830068	 add         r0, r3, #0x68
  003c8	eb000000	 bl          InterlockedIncrement
  003cc	e89d6000	 ldmia       sp, {sp, lr}
  003d0	e12fff1e	 bx          lr
  003d4		 |$M32957|

			 ENDP  ; |?Open@CDisk@@QAAXXZ|, CDisk::Open

	EXPORT	|?Close@CDisk@@QAAXXZ|			; CDisk::Close
	IMPORT	|InterlockedDecrement|

  00038			 AREA	 |.pdata|, PDATA
|$T32964| DCD	|$L32963|
	DCD	0x40000803
; Function compile flags: /Odt

  003d4			 AREA	 |.text|, CODE, ARM

  003d4		 |?Close@CDisk@@QAAXXZ| PROC		; CDisk::Close

; 136  : void CDisk::Close()                     { InterlockedDecrement((LONG *)&m_dwOpenCount); }

  003d4		 |$L32963|
  003d4	e1a0c00d	 mov         r12, sp
  003d8	e92d0001	 stmdb       sp!, {r0}
  003dc	e92d5000	 stmdb       sp!, {r12, lr}
  003e0		 |$M32961|
  003e0	e59d3008	 ldr         r3, [sp, #8]
  003e4	e2830068	 add         r0, r3, #0x68
  003e8	eb000000	 bl          InterlockedDecrement
  003ec	e89d6000	 ldmia       sp, {sp, lr}
  003f0	e12fff1e	 bx          lr
  003f4		 |$M32962|

			 ENDP  ; |?Close@CDisk@@QAAXXZ|, CDisk::Close

	EXPORT	|?IsAtapiDevice@CDisk@@QAAHXZ|		; CDisk::IsAtapiDevice

  00040			 AREA	 |.pdata|, PDATA
|$T32970| DCD	|$L32969|
	DCD	0x40000d04
; Function compile flags: /Odt

  003f4			 AREA	 |.text|, CODE, ARM

  003f4		 |?IsAtapiDevice@CDisk@@QAAHXZ| PROC	; CDisk::IsAtapiDevice

; 137  : BOOL CDisk::IsAtapiDevice()             { return m_fAtapiDevice; }

  003f4		 |$L32969|
  003f4	e1a0c00d	 mov         r12, sp
  003f8	e92d0001	 stmdb       sp!, {r0}
  003fc	e92d5000	 stmdb       sp!, {r12, lr}
  00400	e24dd004	 sub         sp, sp, #4
  00404		 |$M32967|
  00404	e59d300c	 ldr         r3, [sp, #0xC]
  00408	e2833c06	 add         r3, r3, #6, 24
  0040c	e2833098	 add         r3, r3, #0x98
  00410	e5933000	 ldr         r3, [r3]
  00414	e58d3000	 str         r3, [sp]
  00418	e59d0000	 ldr         r0, [sp]
  0041c	e28dd004	 add         sp, sp, #4
  00420	e89d6000	 ldmia       sp, {sp, lr}
  00424	e12fff1e	 bx          lr
  00428		 |$M32968|

			 ENDP  ; |?IsAtapiDevice@CDisk@@QAAHXZ|, CDisk::IsAtapiDevice

	EXPORT	|?IsCDRomDevice@CDisk@@QAAHXZ|		; CDisk::IsCDRomDevice

  00048			 AREA	 |.pdata|, PDATA
|$T32978| DCD	|$L32977|
	DCD	0x40001b04
; Function compile flags: /Odt

  00428			 AREA	 |.text|, CODE, ARM

  00428		 |?IsCDRomDevice@CDisk@@QAAHXZ| PROC	; CDisk::IsCDRomDevice

; 138  : BOOL CDisk::IsCDRomDevice()             { return (((m_Id.GeneralConfiguration >> 8) & 0x1f) == ATA_IDDEVICE_CDROM); }

  00428		 |$L32977|
  00428	e1a0c00d	 mov         r12, sp
  0042c	e92d0001	 stmdb       sp!, {r0}
  00430	e92d5000	 stmdb       sp!, {r12, lr}
  00434	e24dd008	 sub         sp, sp, #8
  00438		 |$M32975|
  00438	e59d3010	 ldr         r3, [sp, #0x10]
  0043c	e2831e49	 add         r1, r3, #0x49, 28
  00440	e5d13001	 ldrb        r3, [r1, #1]
  00444	e1a03403	 mov         r3, r3, lsl #8
  00448	e1a02803	 mov         r2, r3, lsl #16
  0044c	e1a02822	 mov         r2, r2, lsr #16
  00450	e5d13000	 ldrb        r3, [r1]
  00454	e1833002	 orr         r3, r3, r2
  00458	e1a03443	 mov         r3, r3, asr #8
  0045c	e203301f	 and         r3, r3, #0x1F
  00460	e3530005	 cmp         r3, #5
  00464	1a000002	 bne         |$L32972|
  00468	e3a03001	 mov         r3, #1
  0046c	e58d3004	 str         r3, [sp, #4]
  00470	ea000001	 b           |$L32973|
  00474		 |$L32972|
  00474	e3a03000	 mov         r3, #0
  00478	e58d3004	 str         r3, [sp, #4]
  0047c		 |$L32973|
  0047c	e59d3004	 ldr         r3, [sp, #4]
  00480	e58d3000	 str         r3, [sp]
  00484	e59d0000	 ldr         r0, [sp]
  00488	e28dd008	 add         sp, sp, #8
  0048c	e89d6000	 ldmia       sp, {sp, lr}
  00490	e12fff1e	 bx          lr
  00494		 |$M32976|

⌨️ 快捷键说明

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