?? sianospi.cod
字號:
DCB 0x0, "r", 0x0, "i", 0x0, "v", 0x0, "e", 0x0, "r", 0x0, "s"
DCB 0x0, "\\", 0x0, "B", 0x0, "u", 0x0, "i", 0x0, "l", 0x0, "t"
DCB 0x0, "I", 0x0, "n", 0x0, "\\", 0x0, "S", 0x0, "i", 0x0, "a"
DCB 0x0, "n", 0x0, "o", 0x0, "S", 0x0, "P", 0x0, "I", 0x0, 0x0
DCB 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |GetInstance| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |GetInstance| PROC
; 114 : {
00000 |$L38885|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 e24dd018 sub sp, sp, #0x18
00008 |$M38883|
00008 e1a05000 mov r5, r0
; 115 : HKEY hSpikey;
; 116 : LONG lRes;
; 117 : DWORD dwType;
; 118 : DWORD CurrInstancenum;
; 119 : DWORD DataSize;
; 120 :
; 121 : lRes = RegOpenKeyEx(
; 122 : HKEY_LOCAL_MACHINE,
; 123 : REG_PATH,
; 124 : 0,//N\A
; 125 : 0,//N\A
; 126 : &hSpikey
; 127 : );
0000c e59f10ac ldr r1, [pc, #0xAC]
00010 e28de008 add lr, sp, #8
00014 e3a03000 mov r3, #0
00018 e3a02000 mov r2, #0
0001c e3a0010a mov r0, #0xA, 2
00020 e58de000 str lr, [sp]
00024 eb000000 bl RegOpenKeyExW
00028 e3500000 cmp r0, #0
; 128 : if(lRes != ERROR_SUCCESS)
; 129 : return (-1);
0002c 1a00001a bne |$L38882|
; 130 :
; 131 : DataSize=sizeof(DWORD);
; 132 : lRes = RegQueryValueEx(
; 133 : hSpikey,
; 134 : L"MiniPortInstance",
; 135 : 0,
; 136 : &dwType,
; 137 : (LPBYTE)&CurrInstancenum,
; 138 : &DataSize
; 139 : );
00030 e59f1084 ldr r1, [pc, #0x84]
00034 e59d0008 ldr r0, [sp, #8]
00038 e3a06004 mov r6, #4
0003c e28de00c add lr, sp, #0xC
00040 e28d4014 add r4, sp, #0x14
00044 e28d3010 add r3, sp, #0x10
00048 e3a02000 mov r2, #0
0004c e58d600c str r6, [sp, #0xC]
00050 e58de004 str lr, [sp, #4]
00054 e58d4000 str r4, [sp]
00058 eb000000 bl RegQueryValueExW
0005c e3500000 cmp r0, #0
; 140 : if(lRes!=ERROR_SUCCESS)
; 141 : {
; 142 : RegCloseKey(hSpikey);
00060 e59d0008 ldr r0, [sp, #8]
; 143 : return (-1);
00064 1a00000b bne |$L38881|
; 144 : }
; 145 :
; 146 : DataSize=MAX_MNPRT_NAME;
; 147 : lRes = RegQueryValueEx(
; 148 : hSpikey,
; 149 : L"MiniportName",
; 150 : 0,
; 151 : &dwType,
; 152 : (LPBYTE)szName,
; 153 : &DataSize
; 154 : );
00068 e59f1048 ldr r1, [pc, #0x48]
0006c e3a04040 mov r4, #0x40
00070 e28de00c add lr, sp, #0xC
00074 e28d3010 add r3, sp, #0x10
00078 e3a02000 mov r2, #0
0007c e58d400c str r4, [sp, #0xC]
00080 e58de004 str lr, [sp, #4]
00084 e58d5000 str r5, [sp]
00088 eb000000 bl RegQueryValueExW
0008c e3500000 cmp r0, #0
; 155 : if(lRes!=ERROR_SUCCESS)
; 156 : {
; 157 : RegCloseKey(hSpikey);
00090 e59d0008 ldr r0, [sp, #8]
00094 0a000002 beq |$L38449|
00098 |$L38881|
00098 eb000000 bl RegCloseKey
0009c |$L38882|
; 158 : return (-1);
0009c e3e00000 mvn r0, #0
000a0 ea000001 b |$L38433|
000a4 |$L38449|
; 159 : }
; 160 :
; 161 : RegCloseKey(hSpikey);
000a4 eb000000 bl RegCloseKey
; 162 : return CurrInstancenum;
000a8 e59d0014 ldr r0, [sp, #0x14]
000ac |$L38433|
; 163 : }
000ac e28dd018 add sp, sp, #0x18
000b0 e8bd4070 ldmia sp!, {r4 - r6, lr}
000b4 e12fff1e bx lr
000b8 |$L38888|
000b8 00000000 DCD |??_C@_1BK@KPLOIJDF@?$AAM?$AAi?$AAn?$AAi?$AAp?$AAo?$AAr?$AAt?$AAN?$AAa?$AAm?$AAe?$AA?$AA@|
000bc 00000000 DCD |??_C@_1CC@KBENDKOI@?$AAM?$AAi?$AAn?$AAi?$AAP?$AAo?$AAr?$AAt?$AAI?$AAn?$AAs?$AAt?$AAa?$AAn?$AAc?$AAe?$AA?$AA@|
000c0 00000000 DCD |??_C@_1DC@DJFBBKNH@?$AAD?$AAr?$AAi?$AAv?$AAe?$AAr?$AAs?$AA?2?$AAB?$AAu?$AAi?$AAl?$AAt?$AAI?$AAn?$AA?2?$AAS?$AAi?$AAa?$AAn@|
000c4 |$M38884|
ENDP ; |GetInstance|
EXPORT |DllEntry|
00000 AREA |.text| { |DllEntry| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$DllEntry|, PDATA, SELECTION=5, ASSOC=|.text| { |DllEntry| } ; comdat associative
|$T38896| DCD |$L38895|
DCD 0x40000200
; Function compile flags: /Ogsy
00000 AREA |.text| { |DllEntry| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |DllEntry| PROC
; 190 : {
00000 |$L38895|
00000 |$M38893|
; 191 : BOOL bRc = TRUE;
; 192 :
; 193 : UNREFERENCED_PARAMETER(hDllHandle);
; 194 : UNREFERENCED_PARAMETER(lpreserved);
; 195 :
; 196 : switch (dwReason) {
; 197 : case DLL_PROCESS_ATTACH:
; 198 : {
; 199 : DEBUGREGISTER((HINSTANCE)hDllHandle);
; 200 : DEBUGMSG(1,(_T("*** DLL_PROCESS_ATTACH - Current Process: 0x%x, ID: 0x%x ***\r\n"),
; 201 : GetCurrentProcess(), GetCurrentProcessId()));
; 202 :
; 203 :
; 204 : }
; 205 : break;
; 206 :
; 207 : case DLL_PROCESS_DETACH:
; 208 : {
; 209 : DEBUGMSG(1,(_T("*** DLL_PROCESS_DETACH - Current Process: 0x%x, ID: 0x%x ***\r\n"),
; 210 : GetCurrentProcess(), GetCurrentProcessId()));
; 211 :
; 212 :
; 213 : }
; 214 : break;
; 215 :
; 216 : default:
; 217 : break;
; 218 : }
; 219 :
; 220 : return bRc;
00000 e3a00001 mov r0, #1
; 221 : }
00004 e12fff1e bx lr
00008 |$M38894|
ENDP ; |DllEntry|
IMPORT |LocalFree|
IMPORT |DeactivateDevice|
IMPORT |smsspiphy_deinit|
IMPORT |TerminateThread|
IMPORT |CloseHandle|
IMPORT |HalFreeCommonBuffer|
00000 AREA |.text| { |FreeAllocatedResources| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$FreeAllocatedResources|, PDATA, SELECTION=5, ASSOC=|.text| { |FreeAllocatedResources| } ; comdat associative
|$T38906| DCD |$L38905|
DCD 0x40003302
; Function compile flags: /Ogsy
00000 AREA |.text| { |FreeAllocatedResources| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |FreeAllocatedResources| PROC
; 225 : {
00000 |$L38905|
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 e24dd014 sub sp, sp, #0x14
00008 |$M38903|
00008 e1b04000 movs r4, r0
; 226 : DMA_ADAPTER_OBJECT adapter;
; 227 :
; 228 : if (pSpiDevExt)
0000c 0a00002b beq |$L38474|
; 229 : {
; 230 : if (pSpiDevExt->hSmsGenDrv != INVALID_HANDLE_VALUE)
00010 e5940058 ldr r0, [r4, #0x58]
00014 e3700001 cmn r0, #1
00018 0a000002 beq |$L38476|
; 231 : {
; 232 : DeactivateDevice(pSpiDevExt->hSmsGenDrv);
0001c eb000000 bl DeactivateDevice
; 233 : pSpiDevExt->hSmsGenDrv = INVALID_HANDLE_VALUE;
00020 e3e03000 mvn r3, #0
00024 e5843058 str r3, [r4, #0x58]
00028 |$L38476|
; 234 : }
; 235 : if (pSpiDevExt->transferThread)
00028 e5943050 ldr r3, [r4, #0x50]
0002c e3530000 cmp r3, #0
00030 0a000004 beq |$L38478|
; 236 : {
; 237 : TerminateThread(pSpiDevExt->transferThread, 0);
00034 e3a01000 mov r1, #0
00038 e1a00003 mov r0, r3
0003c eb000000 bl TerminateThread
; 238 : CloseHandle(pSpiDevExt->transferThread);
00040 e5940050 ldr r0, [r4, #0x50]
00044 eb000000 bl CloseHandle
00048 |$L38478|
; 239 : }
; 240 : if (pSpiDevExt->transferMsgQueue)
00048 e594304c ldr r3, [r4, #0x4C]
0004c e3530000 cmp r3, #0
; 241 : {
; 242 : CloseHandle(pSpiDevExt->transferMsgQueue);
00050 11a00003 movne r0, r3
00054 1b000000 blne CloseHandle
; 243 : }
; 244 : if (pSpiDevExt->WriteOperation)
00058 e5943048 ldr r3, [r4, #0x48]
0005c e3530000 cmp r3, #0
; 245 : {
; 246 : CloseHandle(pSpiDevExt->WriteOperation);
00060 11a00003 movne r0, r3
00064 1b000000 blne CloseHandle
; 247 : }
; 248 :
; 249 : if (pSpiDevExt->dev.rxbuf)
00068 e5943010 ldr r3, [r4, #0x10]
0006c e3530000 cmp r3, #0
; 250 : {
; 251 : LocalFree(pSpiDevExt->dev.rxbuf);
00070 11a00003 movne r0, r3
00074 1b000000 blne LocalFree
; 252 : }
; 253 : if (pSpiDevExt->phyDrv)
00078 e5943054 ldr r3, [r4, #0x54]
0007c e3a05000 mov r5, #0
00080 e3530000 cmp r3, #0
00084 0a000002 beq |$L38482|
; 254 : {
; 255 : smsspiphy_deinit(pSpiDevExt->phyDrv);
00088 e1a00003 mov r0, r3
0008c eb000000 bl smsspiphy_deinit
; 256 : pSpiDevExt->phyDrv = NULL;
00090 e5845054 str r5, [r4, #0x54]
00094 |$L38482|
; 257 : }
; 258 : if (pSpiDevExt->txbuf)
00094 e5943040 ldr r3, [r4, #0x40]
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -