📄 atapipm.cod
字号:
000dc e3a03000 mov r3, #0
000e0 e3a02002 mov r2, #2
000e4 e5c4100a strb r1, [r4, #0xA]
000e8 e28d1000 add r1, sp, #0
000ec e28d0010 add r0, sp, #0x10
000f0 eb000000 bl |?HexStringToDword@@YAHAAPBGAAKHG@Z|
000f4 e3500000 cmp r0, #0
; 75 : return FALSE;
000f8 0a000023 beq |$L32429|
; 76 :
; 77 : pguid->Data4[3] = (BYTE)dw;
000fc e59d1000 ldr r1, [sp]
; 78 :
; 79 : if (!HexStringToDword(lpsz, dw, sizeof(BYTE)*2, 0))
00100 e3a03000 mov r3, #0
00104 e3a02002 mov r2, #2
00108 e5c4100b strb r1, [r4, #0xB]
0010c e28d1000 add r1, sp, #0
00110 e28d0010 add r0, sp, #0x10
00114 eb000000 bl |?HexStringToDword@@YAHAAPBGAAKHG@Z|
00118 e3500000 cmp r0, #0
; 80 : return FALSE;
0011c 0a00001a beq |$L32429|
; 81 :
; 82 : pguid->Data4[4] = (BYTE)dw;
00120 e59d1000 ldr r1, [sp]
; 83 :
; 84 : if (!HexStringToDword(lpsz, dw, sizeof(BYTE)*2, 0))
00124 e3a03000 mov r3, #0
00128 e3a02002 mov r2, #2
0012c e5c4100c strb r1, [r4, #0xC]
00130 e28d1000 add r1, sp, #0
00134 e28d0010 add r0, sp, #0x10
00138 eb000000 bl |?HexStringToDword@@YAHAAPBGAAKHG@Z|
0013c e3500000 cmp r0, #0
; 85 : return FALSE;
00140 0a000011 beq |$L32429|
; 86 :
; 87 : pguid->Data4[5] = (BYTE)dw;
00144 e59d1000 ldr r1, [sp]
; 88 :
; 89 : if (!HexStringToDword(lpsz, dw, sizeof(BYTE)*2, 0))
00148 e3a03000 mov r3, #0
0014c e3a02002 mov r2, #2
00150 e5c4100d strb r1, [r4, #0xD]
00154 e28d1000 add r1, sp, #0
00158 e28d0010 add r0, sp, #0x10
0015c eb000000 bl |?HexStringToDword@@YAHAAPBGAAKHG@Z|
00160 e3500000 cmp r0, #0
; 90 : return FALSE;
00164 0a000008 beq |$L32429|
; 91 :
; 92 : pguid->Data4[6] = (BYTE)dw;
00168 e59d1000 ldr r1, [sp]
; 93 : if (!HexStringToDword(lpsz, dw, sizeof(BYTE)*2, 0))
0016c e3a03000 mov r3, #0
00170 e3a02002 mov r2, #2
00174 e5c4100e strb r1, [r4, #0xE]
00178 e28d1000 add r1, sp, #0
0017c e28d0010 add r0, sp, #0x10
00180 eb000000 bl |?HexStringToDword@@YAHAAPBGAAKHG@Z|
00184 e3500000 cmp r0, #0
00188 1a000001 bne |$L31985|
0018c |$L32429|
; 94 : return FALSE;
0018c e3a00000 mov r0, #0
00190 ea000002 b |$L31953|
00194 |$L31985|
; 95 :
; 96 : pguid->Data4[7] = (BYTE)dw;
00194 e59d3000 ldr r3, [sp]
; 97 :
; 98 : return TRUE;
00198 e3a00001 mov r0, #1
0019c e5c4300f strb r3, [r4, #0xF]
001a0 |$L31953|
; 99 : }
001a0 e28dd004 add sp, sp, #4
001a4 e89d6010 ldmia sp, {r4, sp, lr}
001a8 e12fff1e bx lr
001ac |$M32431|
ENDP ; |?wUUIDFromString@@YAHPBGPAU_GUID@@@Z|, wUUIDFromString
00000 AREA |.text| { |?GUIDFromString@@YAHPBGPAU_GUID@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?GUIDFromString@@YAHPBGPAU_GUID@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?GUIDFromString@@YAHPBGPAU_GUID@@@Z| } ; comdat associative
|$T32445| DCD |$L32444|
DCD 0x40001201
; Function compile flags: /Ogsy
00000 AREA |.text| { |?GUIDFromString@@YAHPBGPAU_GUID@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?GUIDFromString@@YAHPBGPAU_GUID@@@Z| PROC ; GUIDFromString
; 103 : {
00000 |$L32444|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M32442|
00004 e1a04000 mov r4, r0
; 104 : if (*lpsz++ != '{' )
00008 e0d430b2 ldrh r3, [r4], #2
0000c e353007b cmp r3, #0x7B
; 105 : return FALSE;
00010 1a000006 bne |$L32441|
; 106 :
; 107 : if(wUUIDFromString(lpsz, pguid) != TRUE)
00014 e1a00004 mov r0, r4
00018 eb000000 bl |?wUUIDFromString@@YAHPBGPAU_GUID@@@Z|
0001c e3500001 cmp r0, #1
; 108 : return FALSE;
00020 1a000002 bne |$L32441|
; 109 :
; 110 : lpsz +=36;
; 111 :
; 112 : if (*lpsz++ != '}' )
00024 e1d434b8 ldrh r3, [r4, #0x48]
00028 e353007d cmp r3, #0x7D
0002c 0a000002 beq |$L31993|
00030 |$L32441|
; 113 : return FALSE;
00030 e3a00000 mov r0, #0
; 116 : }
00034 e8bd4010 ldmia sp!, {r4, lr}
00038 e12fff1e bx lr
0003c |$L31993|
; 114 :
; 115 : return TRUE;
0003c e3a00001 mov r0, #1
; 116 : }
00040 e8bd4010 ldmia sp!, {r4, lr}
00044 e12fff1e bx lr
00048 |$M32443|
ENDP ; |?GUIDFromString@@YAHPBGPAU_GUID@@@Z|, GUIDFromString
EXPORT |??0CDiskPower@@QAA@XZ| ; CDiskPower::CDiskPower
EXPORT |?Init@CDiskPower@@UAAHPAVCDisk@@@Z| ; CDiskPower::Init
EXPORT |?SignalActivity@CDiskPower@@UAAXXZ| ; CDiskPower::SignalActivity
EXPORT |?RequestDevice@CDiskPower@@UAAHXZ| ; CDiskPower::RequestDevice
EXPORT |?ReleaseDevice@CDiskPower@@UAAXXZ| ; CDiskPower::ReleaseDevice
EXPORT |?DiskPowerIoctl@CDiskPower@@UAAKPAU_IOREQ@@@Z| ; CDiskPower::DiskPowerIoctl
EXPORT |?SetDiskPower@CDiskPower@@MAAKW4_CEDEVICE_POWER_STATE@@@Z| ; CDiskPower::SetDiskPower
EXPORT |?GetDiskPower@CDiskPower@@MAA?AW4_CEDEVICE_POWER_STATE@@XZ| ; CDiskPower::GetDiskPower
EXPORT |?GetDiskCapabilities@CDiskPower@@MAAKPAU_POWER_CAPABILITIES@@@Z| ; CDiskPower::GetDiskCapabilities
EXPORT |?TakeCS@CDiskPower@@MAAXXZ| ; CDiskPower::TakeCS
EXPORT |?ReleaseCS@CDiskPower@@MAAXXZ| ; CDiskPower::ReleaseCS
EXPORT |?DiskPowerThread@CDiskPower@@EAAKXZ| ; CDiskPower::DiskPowerThread
EXPORT |??_7CDiskPower@@6B@| [ DATA ] ; CDiskPower::`vftable'
EXPORT |??_GCDiskPower@@UAAPAXI@Z| ; CDiskPower::`scalar deleting destructor'
IMPORT |QueryPerformanceCounter|
IMPORT |InitializeCriticalSection|
IMPORT |??_ECDiskPower@@UAAPAXI@Z|, WEAK |??_GCDiskPower@@UAAPAXI@Z| ; CDiskPower::`vector deleting destructor', CDiskPower::`scalar deleting destructor'
IMPORT |memset|
IMPORT |GetTickCount|
00000 AREA |.text| { |??0CDiskPower@@QAA@XZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$??0CDiskPower@@QAA@XZ|, PDATA, SELECTION=5, ASSOC=|.text| { |??0CDiskPower@@QAA@XZ| } ; comdat associative
|$T32456| DCD |$L32455|
DCD 0x40002901
00000 AREA |.rdata| { |??_7CDiskPower@@6B@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_7CDiskPower@@6B@| DCD |??_ECDiskPower@@UAAPAXI@Z| ; CDiskPower::`vftable'
DCD |?Init@CDiskPower@@UAAHPAVCDisk@@@Z|
DCD |?SignalActivity@CDiskPower@@UAAXXZ|
DCD |?RequestDevice@CDiskPower@@UAAHXZ|
DCD |?ReleaseDevice@CDiskPower@@UAAXXZ|
DCD |?DiskPowerIoctl@CDiskPower@@UAAKPAU_IOREQ@@@Z|
DCD |?SetDiskPower@CDiskPower@@MAAKW4_CEDEVICE_POWER_STATE@@@Z|
DCD |?GetDiskPower@CDiskPower@@MAA?AW4_CEDEVICE_POWER_STATE@@XZ|
DCD |?GetDiskCapabilities@CDiskPower@@MAAKPAU_POWER_CAPABILITIES@@@Z|
DCD |?TakeCS@CDiskPower@@MAAXXZ|
DCD |?ReleaseCS@CDiskPower@@MAAXXZ|
DCD |?DiskPowerThread@CDiskPower@@EAAKXZ|
; Function compile flags: /Ogsy
00000 AREA |.text| { |??0CDiskPower@@QAA@XZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |??0CDiskPower@@QAA@XZ| PROC ; CDiskPower::CDiskPower
; 133 : {
00000 |$L32455|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 |$M32453|
00004 e1a04000 mov r4, r0
00008 e59f3090 ldr r3, [pc, #0x90]
0000c e3a0e002 mov lr, #2
00010 e3a05ffa mov r5, #0xFA, 30
00014 e5843000 str r3, [r4]
00018 e3a03000 mov r3, #0
0001c e3a060fa mov r6, #0xFA
; 134 : memset(&m_dxInfo, 0, sizeof(m_dxInfo));
00020 e3a02050 mov r2, #0x50
00024 e3a01000 mov r1, #0
00028 e2840060 add r0, r4, #0x60
0002c e5843008 str r3, [r4, #8]
00030 e5843010 str r3, [r4, #0x10]
00034 e5843014 str r3, [r4, #0x14]
00038 e584301c str r3, [r4, #0x1C]
0003c e5843020 str r3, [r4, #0x20]
00040 e5843028 str r3, [r4, #0x28]
00044 e5843044 str r3, [r4, #0x44]
00048 e5843048 str r3, [r4, #0x48]
0004c e584304c str r3, [r4, #0x4C]
00050 e58430b0 str r3, [r4, #0xB0]
00054 e584e00c str lr, [r4, #0xC]
00058 e5845018 str r5, [r4, #0x18]
0005c e5846040 str r6, [r4, #0x40]
00060 eb000000 bl memset
; 135 : m_dwStartTickCount = GetTickCount();
00064 eb000000 bl GetTickCount
00068 e1a03000 mov r3, r0
; 136 : QueryPerformanceCounter(&m_startQPC);
0006c e2840058 add r0, r4, #0x58
00070 e5843050 str r3, [r4, #0x50]
00074 eb000000 bl QueryPerformanceCounter
; 137 : m_dxInfo[m_curDx].dwCount++;
00078 e5943008 ldr r3, [r4, #8]
; 138 : InitializeCriticalSection(&m_csPower);
0007c e284002c add r0, r4, #0x2C
00080 e0842203 add r2, r4, r3, lsl #4
00084 e5923060 ldr r3, [r2, #0x60]
00088 e2833001 add r3, r3, #1
0008c e5823060 str r3, [r2, #0x60]
00090 eb000000 bl InitializeCriticalSection
; 139 : }
00094 e1a00004 mov r0, r4
00098 e8bd4070 ldmia sp!, {r4 - r6, lr}
0009c e12fff1e bx lr
000a0 |$L32458|
000a0 00000000 DCD |??_7CDiskPower@@6B@|
000a4 |$M32454|
ENDP ; |??0CDiskPower@@QAA@XZ|, CDiskPower::CDiskPower
IMPORT |EnterCriticalSection|
00000 AREA |.text| { |?TakeCS@CDiskPower@@MAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?TakeCS@CDiskPower@@MAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?TakeCS@CDiskPower@@MAAXXZ| } ; comdat associative
|$T32465| DCD |$L32464|
DCD 0x40000501
; Function compile flags: /Ogsy
00000 AREA |.text| { |?TakeCS@CDiskPower@@MAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?TakeCS@CDiskPower@@MAAXXZ| PROC ; CDiskPower::TakeCS
; 165 : {
00000 |$L32464|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M32462|
; 166 : EnterCriticalSection(&m_csPower);
00004 e280002c add r0, r0, #0x2C
00008 eb000000 bl EnterCriticalSection
; 167 : }
0000c e49de004 ldr lr, [sp], #4
00010 e12fff1e bx lr
00014 |$M32463|
ENDP ; |?TakeCS@CDiskPower@@MAAXXZ|, CDiskPower::TakeCS
IMPORT |LeaveCriticalSection|
00000 AREA |.text| { |?ReleaseCS@CDiskPower@@MAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?ReleaseCS@CDiskPower@@MAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?ReleaseCS@CDiskPower@@MAAXXZ| } ; comdat associative
|$T32473| DCD |$L32472|
DCD 0x40000501
; Function compile flags: /Ogsy
00000 AREA |.text| { |?ReleaseCS@CDiskPower@@MAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?ReleaseCS@CDiskPower@@MAAXXZ| PROC ; CDiskPower::ReleaseCS
; 170 : {
00000 |$L32472|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M32470|
; 171 : LeaveCriticalSection(&m_csPower);
00004 e280002c add r0, r0, #0x2C
00008 eb000000 bl LeaveCriticalSection
; 172 : }
0000c e49de004 ldr lr, [sp], #4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -