📄 dm9000.cod
字号:
00000 |??0CMutex@@QAA@XZ| PROC ; CMutex::CMutex
; 270 : {
00000 |$L36263|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M36261|
00004 e1a04000 mov r4, r0
; 271 : memset((void*)&m_Critical,0,sizeof(m_Critical));
00008 e3a02014 mov r2, #0x14
0000c e3a01000 mov r1, #0
00010 eb000000 bl memset
; 272 : InitializeCriticalSection(&m_Critical);
00014 e1a00004 mov r0, r4
00018 eb000000 bl InitializeCriticalSection
; 273 : };
0001c e1a00004 mov r0, r4
00020 e8bd4010 ldmia sp!, {r4, lr}
00024 e12fff1e bx lr
00028 |$M36262|
ENDP ; |??0CMutex@@QAA@XZ|, CMutex::CMutex
EXPORT |??1CMutex@@QAA@XZ| ; CMutex::~CMutex
IMPORT |DeleteCriticalSection|
00000 AREA |.text| { |??1CMutex@@QAA@XZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$??1CMutex@@QAA@XZ|, PDATA, SELECTION=5, ASSOC=|.text| { |??1CMutex@@QAA@XZ| } ; comdat associative
|$T36272| DCD |$L36271|
DCD 0x40000401
; Function compile flags: /Ogsy
00000 AREA |.text| { |??1CMutex@@QAA@XZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |??1CMutex@@QAA@XZ| PROC ; CMutex::~CMutex
; 276 : {
00000 |$L36271|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M36269|
; 277 : DeleteCriticalSection(&m_Critical);
00004 eb000000 bl DeleteCriticalSection
; 278 : };
00008 e49de004 ldr lr, [sp], #4
0000c e12fff1e bx lr
00010 |$M36270|
ENDP ; |??1CMutex@@QAA@XZ|, CMutex::~CMutex
EXPORT |?TryLock@CMutex@@QAAHXZ| ; CMutex::TryLock
IMPORT |TryEnterCriticalSection|
00000 AREA |.text| { |?TryLock@CMutex@@QAAHXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?TryLock@CMutex@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?TryLock@CMutex@@QAAHXZ| } ; comdat associative
|$T36282| DCD |$L36281|
DCD 0x40000401
; Function compile flags: /Ogsy
00000 AREA |.text| { |?TryLock@CMutex@@QAAHXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?TryLock@CMutex@@QAAHXZ| PROC ; CMutex::TryLock
; 281 : {
00000 |$L36281|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M36279|
; 282 : return TryEnterCriticalSection(&m_Critical);
00004 eb000000 bl TryEnterCriticalSection
; 283 : };
00008 e49de004 ldr lr, [sp], #4
0000c e12fff1e bx lr
00010 |$M36280|
ENDP ; |?TryLock@CMutex@@QAAHXZ|, CMutex::TryLock
EXPORT |?Lock@CMutex@@QAAHKK@Z| ; CMutex::Lock
IMPORT |EnterCriticalSection|
00000 AREA |.text| { |?Lock@CMutex@@QAAHKK@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?Lock@CMutex@@QAAHKK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?Lock@CMutex@@QAAHKK@Z| } ; comdat associative
|$T36292| DCD |$L36291|
DCD 0x40000501
; Function compile flags: /Ogsy
00000 AREA |.text| { |?Lock@CMutex@@QAAHKK@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?Lock@CMutex@@QAAHKK@Z| PROC ; CMutex::Lock
; 286 : {
00000 |$L36291|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M36289|
; 287 : EnterCriticalSection(&m_Critical);
00004 eb000000 bl EnterCriticalSection
; 288 : return 1;
00008 e3a00001 mov r0, #1
; 289 : };
0000c e49de004 ldr lr, [sp], #4
00010 e12fff1e bx lr
00014 |$M36290|
ENDP ; |?Lock@CMutex@@QAAHKK@Z|, CMutex::Lock
EXPORT |?Release@CMutex@@QAAXXZ| ; CMutex::Release
IMPORT |LeaveCriticalSection|
00000 AREA |.text| { |?Release@CMutex@@QAAXXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?Release@CMutex@@QAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?Release@CMutex@@QAAXXZ| } ; comdat associative
|$T36300| DCD |$L36299|
DCD 0x40000401
; Function compile flags: /Ogsy
00000 AREA |.text| { |?Release@CMutex@@QAAXXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?Release@CMutex@@QAAXXZ| PROC ; CMutex::Release
; 292 : {
00000 |$L36299|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M36297|
; 293 : LeaveCriticalSection(&m_Critical);
00004 eb000000 bl LeaveCriticalSection
; 294 : };
00008 e49de004 ldr lr, [sp], #4
0000c e12fff1e bx lr
00010 |$M36298|
ENDP ; |?Release@CMutex@@QAAXXZ|, CMutex::Release
EXPORT |??0CQueue@@QAA@XZ| ; CQueue::CQueue
00000 AREA |.text| { |??0CQueue@@QAA@XZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$??0CQueue@@QAA@XZ|, PDATA, SELECTION=5, ASSOC=|.text| { |??0CQueue@@QAA@XZ| } ; comdat associative
|$T36313| DCD |$L36312|
DCD 0x40000d01
; Function compile flags: /Ogsy
00000 AREA |.text| { |??0CQueue@@QAA@XZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |??0CQueue@@QAA@XZ| PROC ; CQueue::CQueue
; 322 : {
00000 |$L36312|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M36310|
00004 e1a04000 mov r4, r0
00008 e3a02014 mov r2, #0x14
0000c e3a01000 mov r1, #0
00010 eb000000 bl memset
00014 e1a00004 mov r0, r4
00018 eb000000 bl NdisAllocateSpinLock
; 323 : m_pHead = m_pTail = NULL;
0001c e3a03000 mov r3, #0
00020 e5843018 str r3, [r4, #0x18]
00024 e5843014 str r3, [r4, #0x14]
; 324 : };
00028 e1a00004 mov r0, r4
0002c e8bd4010 ldmia sp!, {r4, lr}
00030 e12fff1e bx lr
00034 |$M36311|
ENDP ; |??0CQueue@@QAA@XZ|, CQueue::CQueue
EXPORT |?Enqueue@CQueue@@QAAXPAU_CQUEUE_GEN_HEADER@@@Z| ; CQueue::Enqueue
EXPORT |??_C@_1BK@KENPOFKP@?$AAF?$AAA?$AAT?$AAA?$AAL?$AA?5?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?6?$AA?$AA@| [ DATA ] ; `string'
IMPORT |NKDbgPrintfW|
00000 AREA |.text| { |?Enqueue@CQueue@@QAAXPAU_CQUEUE_GEN_HEADER@@@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?Enqueue@CQueue@@QAAXPAU_CQUEUE_GEN_HEADER@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?Enqueue@CQueue@@QAAXPAU_CQUEUE_GEN_HEADER@@@Z| } ; comdat associative
|$T36329| DCD |$L36328|
DCD 0x40001301
00000 AREA |.rdata| { |??_C@_1BK@KENPOFKP@?$AAF?$AAA?$AAT?$AAA?$AAL?$AA?5?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?6?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BK@KENPOFKP@?$AAF?$AAA?$AAT?$AAA?$AAL?$AA?5?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?6?$AA?$AA@| DCB "F"
DCB 0x0, "A", 0x0, "T", 0x0, "A", 0x0, "L", 0x0, " ", 0x0, "E"
DCB 0x0, "R", 0x0, "R", 0x0, "O", 0x0, "R", 0x0, 0xa, 0x0, 0x0
DCB 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |?Enqueue@CQueue@@QAAXPAU_CQUEUE_GEN_HEADER@@@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?Enqueue@CQueue@@QAAXPAU_CQUEUE_GEN_HEADER@@@Z| PROC ; CQueue::Enqueue
; 328 : {
00000 |$L36328|
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 |$M36326|
00004 e1b05001 movs r5, r1
00008 e1a04000 mov r4, r0
; 329 : HALT(!pObject);
0000c 059f0034 ldreq r0, [pc, #0x34]
00010 0b000000 bleq NKDbgPrintfW
; 330 :
; 331 : m_spinLock.Lock();
00014 e1a00004 mov r0, r4
00018 eb000000 bl NdisAcquireSpinLock
; 332 : pObject->pNext = NULL;
0001c e3a03000 mov r3, #0
00020 e5853000 str r3, [r5]
; 333 : if(m_pTail == NULL)
00024 e5943018 ldr r3, [r4, #0x18]
; 334 : {
; 335 : m_pHead = m_pTail = pObject;
; 336 : }
; 337 : else
; 338 : {
; 339 : m_pTail->pNext = pObject;
; 340 : m_pTail = pObject;
; 341 : }
; 342 : m_spinLock.Release();
00028 e1a00004 mov r0, r4
0002c e3530000 cmp r3, #0
00030 05845014 streq r5, [r4, #0x14]
00034 15835000 strne r5, [r3]
00038 e5845018 str r5, [r4, #0x18]
0003c eb000000 bl NdisReleaseSpinLock
; 343 : };
00040 e8bd4030 ldmia sp!, {r4, r5, lr}
00044 e12fff1e bx lr
00048 |$L36331|
00048 00000000 DCD |??_C@_1BK@KENPOFKP@?$AAF?$AAA?$AAT?$AAA?$AAL?$AA?5?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?6?$AA?$AA@|
0004c |$M36327|
ENDP ; |?Enqueue@CQueue@@QAAXPAU_CQUEUE_GEN_HEADER@@@Z|, CQueue::Enqueue
EXPORT |?Dequeue@CQueue@@QAAPAU_CQUEUE_GEN_HEADER@@XZ| ; CQueue::Dequeue
00000 AREA |.text| { |?Dequeue@CQueue@@QAAPAU_CQUEUE_GEN_HEADER@@XZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?Dequeue@CQueue@@QAAPAU_CQUEUE_GEN_HEADER@@XZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?Dequeue@CQueue@@QAAPAU_CQUEUE_GEN_HEADER@@XZ| } ; comdat associative
|$T36348| DCD |$L36347|
DCD 0x40001201
; Function compile flags: /Ogsy
00000 AREA |.text| { |?Dequeue@CQueue@@QAAPAU_CQUEUE_GEN_HEADER@@XZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?Dequeue@CQueue@@QAAPAU_CQUEUE_GEN_HEADER@@XZ| PROC ; CQueue::Dequeue
; 346 : {
00000 |$L36347|
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 |$M36345|
00004 e1a04000 mov r4, r0
; 347 : PCQUEUE_GEN_HEADER pcurr = m_pHead;
; 348 : m_spinLock.Lock();
00008 e5945014 ldr r5, [r4, #0x14]
0000c eb000000 bl NdisAcquireSpinLock
; 349 : if(m_pHead != NULL)
00010 e5943014 ldr r3, [r4, #0x14]
00014 e1b02003 movs r2, r3
00018 0a000005 beq |$L34891|
; 350 : {
; 351 : if(m_pHead == m_pTail)
0001c e5943018 ldr r3, [r4, #0x18]
00020 e1520003 cmp r2, r3
; 352 : m_pHead = m_pTail = NULL;
00024 03a03000 moveq r3, #0
00028 05843018 streq r3, [r4, #0x18]
; 353 : else
; 354 : m_pHead = m_pHead->pNext;
0002c 15923000 ldrne r3, [r2]
00030 e5843014 str r3, [r4, #0x14]
00034 |$L34891|
; 355 : }
; 356 : m_spinLock.Release();
00034 e1a00004 mov r0, r4
00038 eb000000 bl NdisReleaseSpinLock
; 357 : return pcurr;
0003c e1a00005 mov r0, r5
; 358 : };
00040 e8bd4030 ldmia sp!, {r4, r5, lr}
00044 e12fff1e bx lr
00048 |$M36346|
ENDP ; |?Dequeue@CQueue@@QAAPAU_CQUEUE_GEN_HEADER@@XZ|, CQueue::Dequeue
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -