📄 atamain.cod
字号:
00560 e5933000 ldr r3, [r3]
00564 e3530000 cmp r3, #0
00568 0a000004 beq |$L32385|
; 133 : MmUnmapIoSpace((LPVOID)m_dwRegAlt, ATA_REG_LENGTH);
0056c e3a01008 mov r1, #8
00570 e59d3008 ldr r3, [sp, #8]
00574 e2833024 add r3, r3, #0x24
00578 e5930000 ldr r0, [r3]
0057c eb000000 bl MmUnmapIoSpace
00580 |$L32385|
; 134 : }
; 135 : if (m_dwBMR) {
00580 e59d3008 ldr r3, [sp, #8]
00584 e2833028 add r3, r3, #0x28
00588 e5933000 ldr r3, [r3]
0058c e3530000 cmp r3, #0
00590 0a000004 beq |$L32387|
; 136 : MmUnmapIoSpace((LPVOID)m_dwBMR, 16);
00594 e3a01010 mov r1, #0x10
00598 e59d3008 ldr r3, [sp, #8]
0059c e2833028 add r3, r3, #0x28
005a0 e5930000 ldr r0, [r3]
005a4 eb000000 bl MmUnmapIoSpace
005a8 |$L32387|
; 137 : }
; 138 : // close interrupt event handle
; 139 : if (m_hIRQEvent) {
005a8 e59d3008 ldr r3, [sp, #8]
005ac e2833030 add r3, r3, #0x30
005b0 e5933000 ldr r3, [r3]
005b4 e3530000 cmp r3, #0
005b8 0a000003 beq |$L32389|
; 140 : CloseHandle(m_hIRQEvent);
005bc e59d3008 ldr r3, [sp, #8]
005c0 e2833030 add r3, r3, #0x30
005c4 e5930000 ldr r0, [r3]
005c8 eb000000 bl CloseHandle
005cc |$L32389|
; 141 : }
; 142 : // close interrupt thread
; 143 : if (m_hThread) {
005cc e59d3008 ldr r3, [sp, #8]
005d0 e2833044 add r3, r3, #0x44
005d4 e5933000 ldr r3, [r3]
005d8 e3530000 cmp r3, #0
005dc 0a000003 beq |$L32390|
; 144 : CloseHandle(m_hThread);
005e0 e59d3008 ldr r3, [sp, #8]
005e4 e2833044 add r3, r3, #0x44
005e8 e5930000 ldr r0, [r3]
005ec eb000000 bl CloseHandle
005f0 |$L32390|
; 145 : }
; 146 : // disable interrupt
; 147 : if (m_dwSysIntr != SYSINTR_NOP) {
005f0 e59d3008 ldr r3, [sp, #8]
005f4 e283303c add r3, r3, #0x3C
005f8 e5933000 ldr r3, [r3]
005fc e3530000 cmp r3, #0
00600 0a000003 beq |$L32391|
; 148 : InterruptDisable(m_dwSysIntr);
00604 e59d3008 ldr r3, [sp, #8]
00608 e283303c add r3, r3, #0x3C
0060c e5930000 ldr r0, [r3]
00610 eb000000 bl InterruptDisable
00614 |$L32391|
; 149 : }
; 150 : // free DSK_ registry value set
; 151 : if (m_pDskReg[0]) {
00614 e59d3008 ldr r3, [sp, #8]
00618 e2833034 add r3, r3, #0x34
0061c e5933000 ldr r3, [r3]
00620 e3530000 cmp r3, #0
00624 0a000003 beq |$L32392|
; 152 : LocalFree(m_pDskReg[0]);
00628 e59d3008 ldr r3, [sp, #8]
0062c e2833034 add r3, r3, #0x34
00630 e5930000 ldr r0, [r3]
00634 eb000000 bl LocalFree
00638 |$L32392|
; 153 : }
; 154 : if (m_pDskReg[1]) {
00638 e59d3008 ldr r3, [sp, #8]
0063c e2833038 add r3, r3, #0x38
00640 e5933000 ldr r3, [r3]
00644 e3530000 cmp r3, #0
00648 0a000003 beq |$L32393|
; 155 : LocalFree(m_pDskReg[1]);
0064c e59d3008 ldr r3, [sp, #8]
00650 e2833038 add r3, r3, #0x38
00654 e5930000 ldr r0, [r3]
00658 eb000000 bl LocalFree
0065c |$L32393|
; 156 : }
; 157 : }
0065c e89d6000 ldmia sp, {sp, lr}
00660 e12fff1e bx lr
00664 |$M33102|
ENDP ; |??1CPort@@QAA@XZ|, CPort::~CPort
EXPORT |?TakeCS@CPort@@QAAXXZ| ; CPort::TakeCS
IMPORT |EnterCriticalSection|
00020 AREA |.pdata|, PDATA
|$T33109| DCD |$L33108|
DCD 0x40000803
; Function compile flags: /Odt
00664 AREA |.text|, CODE, ARM
00664 |?TakeCS@CPort@@QAAXXZ| PROC ; CPort::TakeCS
; 163 : {
00664 |$L33108|
00664 e1a0c00d mov r12, sp
00668 e92d0001 stmdb sp!, {r0}
0066c e92d5000 stmdb sp!, {r12, lr}
00670 |$M33106|
; 164 : EnterCriticalSection(&m_csPort);
00670 e59d3008 ldr r3, [sp, #8]
00674 e2830004 add r0, r3, #4
00678 eb000000 bl EnterCriticalSection
; 165 : }
0067c e89d6000 ldmia sp, {sp, lr}
00680 e12fff1e bx lr
00684 |$M33107|
ENDP ; |?TakeCS@CPort@@QAAXXZ|, CPort::TakeCS
EXPORT |?ReleaseCS@CPort@@QAAXXZ| ; CPort::ReleaseCS
IMPORT |LeaveCriticalSection|
00028 AREA |.pdata|, PDATA
|$T33114| DCD |$L33113|
DCD 0x40000803
; Function compile flags: /Odt
00684 AREA |.text|, CODE, ARM
00684 |?ReleaseCS@CPort@@QAAXXZ| PROC ; CPort::ReleaseCS
; 171 : {
00684 |$L33113|
00684 e1a0c00d mov r12, sp
00688 e92d0001 stmdb sp!, {r0}
0068c e92d5000 stmdb sp!, {r12, lr}
00690 |$M33111|
; 172 : LeaveCriticalSection(&m_csPort);
00690 e59d3008 ldr r3, [sp, #8]
00694 e2830004 add r0, r3, #4
00698 eb000000 bl LeaveCriticalSection
; 173 : }
0069c e89d6000 ldmia sp, {sp, lr}
006a0 e12fff1e bx lr
006a4 |$M33112|
ENDP ; |?ReleaseCS@CPort@@QAAXXZ|, CPort::ReleaseCS
EXPORT |?PrintInfo@CPort@@QAAXXZ| ; CPort::PrintInfo
EXPORT |??_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@| [ DATA ] ; `string'
EXPORT |??_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@| [ DATA ] ; `string'
EXPORT |??_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@| [ DATA ] ; `string'
EXPORT |??_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@| [ DATA ] ; `string'
EXPORT |??_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@| [ DATA ] ; `string'
EXPORT |??_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@| [ DATA ] ; `string'
00030 AREA |.pdata|, PDATA
|$T33131| DCD |$L33130|
DCD 0x40006204
00000 AREA |.rdata| { |??_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@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_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@| DCB "d"
DCB 0x0, "w", 0x0, "B", 0x0, "M", 0x0, "R", 0x0, "S", 0x0, "t"
DCB 0x0, "a", 0x0, "t", 0x0, "i", 0x0, "c", 0x0, " ", 0x0, "="
DCB 0x0, " ", 0x0, "%", 0x0, "0", 0x0, "8", 0x0, "X", 0x0, 0xd
DCB 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_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@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_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@| DCB "d"
DCB 0x0, "w", 0x0, "I", 0x0, "r", 0x0, "q", 0x0, " ", 0x0, " "
DCB 0x0, " ", 0x0, " ", 0x0, " ", 0x0, " ", 0x0, " ", 0x0, "="
DCB 0x0, " ", 0x0, "%", 0x0, "0", 0x0, "8", 0x0, "X", 0x0, 0xd
DCB 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_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@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_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@| DCB "d"
DCB 0x0, "w", 0x0, "S", 0x0, "y", 0x0, "s", 0x0, "I", 0x0, "n"
DCB 0x0, "t", 0x0, "r", 0x0, " ", 0x0, " ", 0x0, " ", 0x0, "="
DCB 0x0, " ", 0x0, "%", 0x0, "0", 0x0, "8", 0x0, "X", 0x0, 0xd
DCB 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_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@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_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@| DCB "d"
DCB 0x0, "w", 0x0, "B", 0x0, "M", 0x0, "R", 0x0, " ", 0x0, " "
DCB 0x0, " ", 0x0, " ", 0x0, " ", 0x0, " ", 0x0, " ", 0x0, "="
DCB 0x0, " ", 0x0, "%", 0x0, "0", 0x0, "8", 0x0, "X", 0x0, 0xd
DCB 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_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@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_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@| DCB "d"
DCB 0x0, "w", 0x0, "R", 0x0, "e", 0x0, "g", 0x0, "A", 0x0, "l"
DCB 0x0, "t", 0x0, " ", 0x0, " ", 0x0, " ", 0x0, " ", 0x0, "="
DCB 0x0, " ", 0x0, "%", 0x0, "0", 0x0, "8", 0x0, "X", 0x0, 0xd
DCB 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_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@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_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@| DCB "d"
DCB 0x0, "w", 0x0, "R", 0x0, "e", 0x0, "g", 0x0, "B", 0x0, "a"
DCB 0x0, "s", 0x0, "e", 0x0, " ", 0x0, " ", 0x0, " ", 0x0, "="
DCB 0x0, " ", 0x0, "%", 0x0, "0", 0x0, "8", 0x0, "X", 0x0, 0xd
DCB 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Odt
006a4 AREA |.text|, CODE, ARM
006a4 |?PrintInfo@CPort@@QAAXXZ| PROC ; CPort::PrintInfo
; 179 : {
006a4 |$L33130|
006a4 e1a0c00d mov r12, sp
006a8 e92d0001 stmdb sp!, {r0}
006ac e92d5000 stmdb sp!, {r12, lr}
006b0 e24dd018 sub sp, sp, #0x18
006b4 |$M33128|
; 180 : DEBUGMSG(ZONE_INIT, (TEXT("dwRegBase = %08X\r\n"), m_dwRegBase));
006b4 e59f3158 ldr r3, [pc, #0x158]
006b8 e5933440 ldr r3, [r3, #0x440]
006bc e3130001 tst r3, #1
006c0 0a000007 beq |$L33116|
006c4 e59d3020 ldr r3, [sp, #0x20]
006c8 e2833020 add r3, r3, #0x20
006cc e5931000 ldr r1, [r3]
006d0 e59f0150 ldr r0, [pc, #0x150]
006d4 eb000000 bl NKDbgPrintfW
006d8 e3a03001 mov r3, #1
006dc e58d3000 str r3, [sp]
006e0 ea000001 b |$L33117|
006e4 |$L33116|
006e4 e3a03000 mov r3, #0
006e8 e58d3000 str r3, [sp]
006ec |$L33117|
; 181 : DEBUGMSG(ZONE_INIT, (TEXT("dwRegAlt = %08X\r\n"), m_dwRegAlt));
006ec e59f3120 ldr r3, [pc, #0x120]
006f0 e5933440 ldr r3, [r3, #0x440]
006f4 e3130001 tst r3, #1
006f8 0a000007 beq |$L33118|
006fc e59d3020 ldr r3, [sp, #0x20]
00700 e2833024 add r3, r3, #0x24
00704 e5931000 ldr r1, [r3]
00708 e59f0114 ldr r0, [pc, #0x114]
0070c eb000000 bl NKDbgPrintfW
00710 e3a03001 mov r3, #1
00714 e58d3004 str r3, [sp, #4]
00718 ea000001 b |$L33119|
0071c |$L33118|
0071c e3a03000 mov r3, #0
00720 e58d3004 str r3, [sp, #4]
00724 |$L33119|
; 182 : DEBUGMSG(ZONE_INIT, (TEXT("dwBMR = %08X\r\n"), m_dwBMR));
00724 e59f30e8 ldr r3, [pc, #0xE8]
00728 e5933440 ldr r3, [r3, #0x440]
0072c e3130001 tst r3, #1
00730 0a000007 beq |$L33120|
00734 e59d3020 ldr r3, [sp, #0x20]
00738 e2833028 add r3, r3, #0x28
0073c e5931000 ldr r1, [r3]
00740 e59f00d8 ldr r0, [pc, #0xD8]
00744 eb000000 bl NKDbgPrintfW
00748 e3a03001 mov r3, #1
0074c e58d3008 str r3, [sp, #8]
00750 ea000001 b |$L33121|
00754 |$L33120|
00754 e3a03000 mov r3, #0
00758 e58d3008 str r3, [sp, #8]
0075c |$L33121|
; 183 : DEBUGMSG(ZONE_INIT, (TEXT("dwSysIntr = %08X\r\n"), m_dwSysIntr));
0075c e59f30b0 ldr r3, [pc, #0xB0]
00760 e5933440 ldr r3, [r3, #0x440]
00764 e3130001 tst r3, #1
00768 0a000007 beq |$L33122|
0076c e59d3020 ldr r3, [sp, #0x20]
00770 e283303c add r3, r3, #0x3C
00774 e5931000 ldr r1, [r3]
00778 e59f009c ldr r0, [pc, #0x9C]
0077c eb000000 bl NKDbgPrintfW
00780 e3a03001 mov r3, #1
00784 e58d300c str r3, [sp, #0xC]
00788 ea000001 b |$L33123|
0078c |$L33122|
0078c e3a03000 mov r3, #0
00790 e58d300c str r3, [sp, #0xC]
00794 |$L33123|
; 184 : DEBUGMSG(ZONE_INIT, (TEXT("dwIrq = %08X\r\n"), m_dwIrq));
00794 e59f3078 ldr r3, [pc, #0x78]
00798 e5933440 ldr r3, [r3, #0x440]
0079c e3130001 tst r3, #1
007a0 0a000007 beq |$L33124|
007a4 e59d3020 ldr r3, [sp, #0x20]
007a8 e2833040 add r3, r3, #0x40
007ac e5931000 ldr r1, [r3]
007b0 e59f0060 ldr r0, [pc, #0x60]
007b4 eb000000 bl NKDbgPrintfW
007b8 e3a03001 mov r3, #1
007bc e58d3010 str r3, [sp, #0x10]
007c0 ea000001 b |$L33125|
007c4 |$L33124|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -