📄 msgout.cod
字号:
DCB 0x0, "P", 0x0, "I", 0x0, "D", 0x0, " ", 0x0, "=", 0x0, " "
DCB 0x0, "%", 0x0, "0", 0x0, "8", 0x0, "x", 0x0, 0xd, 0x0, 0xa
DCB 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1GC@BGBCAIMB@?$AAW?$AAr?$AAi?$AAt?$AAe?$AA?5?$AAF?$AAi?$AAl?$AAe?$AA?0?$AA?5?$AAP?$AAI?$AAD?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AA0@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1GC@BGBCAIMB@?$AAW?$AAr?$AAi?$AAt?$AAe?$AA?5?$AAF?$AAi?$AAl?$AAe?$AA?0?$AA?5?$AAP?$AAI?$AAD?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AA0@| DCB "W"
DCB 0x0, "r", 0x0, "i", 0x0, "t", 0x0, "e", 0x0, " ", 0x0, "F"
DCB 0x0, "i", 0x0, "l", 0x0, "e", 0x0, ",", 0x0, " ", 0x0, "P"
DCB 0x0, "I", 0x0, "D", 0x0, " ", 0x0, "=", 0x0, " ", 0x0, "%"
DCB 0x0, "0", 0x0, "8", 0x0, "x", 0x0, ",", 0x0, " ", 0x0, "g"
DCB 0x0, "_", 0x0, "d", 0x0, "w", 0x0, "C", 0x0, "u", 0x0, "r"
DCB 0x0, "r", 0x0, "e", 0x0, "n", 0x0, "t", 0x0, "L", 0x0, "e"
DCB 0x0, "n", 0x0, "g", 0x0, "t", 0x0, "h", 0x0, " ", 0x0, "="
DCB 0x0, " ", 0x0, "%", 0x0, "d", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0
DCB 0x0 ; `string'
; Function compile flags: /Ogsy
; File f:\wm602\platform\galaxyii\platform\mainstoneii\src\drivers\touch\msgout.c
00000 AREA |.text| { |WriteDbgMsgBufferToFile| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |WriteDbgMsgBufferToFile| PROC
; 229 : {
00000 |$L37552|
00000 e92d41f0 stmdb sp!, {r4 - r8, lr}
00004 e24dd010 sub sp, sp, #0x10
00008 |$M37550|
; 230 : void *pMsgOutBuffer = NULL ;
; 231 : DWORD dwWriteSize = 0 ;
; 232 : HANDLE hFile = NULL ;
; 233 :
; 234 : NKDbgPrintfW(TEXT("Write File, PID = %08x, g_dwCurrentLength = %d\r\n"),
; 235 : GetCurrentProcessId(), g_dwCurrentLength) ;
00008 e59f60ec ldr r6, [pc, #0xEC]
0000c e3a0700c mov r7, #0xC
00010 e3a03000 mov r3, #0
00014 e5962004 ldr r2, [r6, #4]
00018 e2477b0e sub r7, r7, #0xE, 22
0001c e59f00d4 ldr r0, [pc, #0xD4]
00020 e58d300c str r3, [sp, #0xC]
00024 e5971000 ldr r1, [r7]
00028 eb000000 bl NKDbgPrintfW
; 236 :
; 237 : if ( g_pVirtureBuffer && (g_dwCurrentLength>0) )
0002c e596300c ldr r3, [r6, #0xC]
00030 e3530000 cmp r3, #0
00034 0a000027 beq |$L37441|
00038 e5963004 ldr r3, [r6, #4]
0003c e3530000 cmp r3, #0
00040 0a000024 beq |$L37441|
; 238 : {
; 239 : pMsgOutBuffer = (void *)CreateStaticMapping(g_dwPhysBuffer>>8, g_dwTotalLength) ;
00044 e5960008 ldr r0, [r6, #8]
00048 e5961000 ldr r1, [r6]
0004c e1a00420 mov r0, r0, lsr #8
00050 eb000000 bl CreateStaticMapping
00054 e1a05000 mov r5, r0
; 240 :
; 241 : hFile = CreateFile(
; 242 : g_szMsgFileName, // File to open
; 243 : GENERIC_WRITE, // Open for I/O
; 244 : 0, // No Share for I/O
; 245 : NULL, // No security
; 246 : OPEN_ALWAYS, // Create if needed
; 247 : FILE_ATTRIBUTE_NORMAL, // Normal file
; 248 : NULL);
00058 e59f0094 ldr r0, [pc, #0x94]
0005c e3a0e080 mov lr, #0x80
00060 e3a04004 mov r4, #4
00064 e3a08000 mov r8, #0
00068 e3a03000 mov r3, #0
0006c e3a02000 mov r2, #0
00070 e3a01101 mov r1, #1, 2
00074 e58d8008 str r8, [sp, #8]
00078 e58de004 str lr, [sp, #4]
0007c e58d4000 str r4, [sp]
00080 eb000000 bl CreateFileW
; 249 : SetFilePointer(hFile, 0, NULL, FILE_END); /* append! */
00084 e3a03002 mov r3, #2
00088 e3a02000 mov r2, #0
0008c e3a01000 mov r1, #0
00090 e1a04000 mov r4, r0
00094 eb000000 bl SetFilePointer
; 250 : WriteFile(hFile, pMsgOutBuffer, g_dwCurrentLength, &dwWriteSize, NULL);
00098 e5962004 ldr r2, [r6, #4]
0009c e28d300c add r3, sp, #0xC
000a0 e1a01005 mov r1, r5
000a4 e1a00004 mov r0, r4
000a8 e58d8000 str r8, [sp]
000ac eb000000 bl WriteFile
; 251 : CloseHandle(hFile);
000b0 e1a00004 mov r0, r4
000b4 eb000000 bl CloseHandle
; 252 :
; 253 : if ( dwWriteSize == 0 )
000b8 e59d300c ldr r3, [sp, #0xC]
000bc e3530000 cmp r3, #0
000c0 1a000004 bne |$L37441|
; 254 : {
; 255 : NKDbgPrintfW(TEXT("Write File Failed, PID = %08x\r\n"), GetCurrentProcessId()) ;
000c4 e5971000 ldr r1, [r7]
000c8 e59f0020 ldr r0, [pc, #0x20]
000cc eb000000 bl NKDbgPrintfW
; 256 : return 0 ;
000d0 e3a00000 mov r0, #0
000d4 ea000002 b |$L37428|
000d8 |$L37441|
; 257 : }
; 258 : }
; 259 :
; 260 : g_dwCurrentLength = 0 ;
000d8 e3a03000 mov r3, #0
000dc e5863004 str r3, [r6, #4]
; 261 :
; 262 : return 1 ;
000e0 e3a00001 mov r0, #1
000e4 |$L37428|
; 263 : }
000e4 e28dd010 add sp, sp, #0x10
000e8 e8bd41f0 ldmia sp!, {r4 - r8, lr}
000ec e12fff1e bx lr
000f0 |$L37555|
000f0 00000000 DCD |??_C@_1EA@DNOAIBE@?$AAW?$AAr?$AAi?$AAt?$AAe?$AA?5?$AAF?$AAi?$AAl?$AAe?$AA?5?$AAF?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?0?$AA?5?$AAP@|
000f4 00000000 DCD |g_szMsgFileName|
000f8 00000000 DCD |??_C@_1GC@BGBCAIMB@?$AAW?$AAr?$AAi?$AAt?$AAe?$AA?5?$AAF?$AAi?$AAl?$AAe?$AA?0?$AA?5?$AAP?$AAI?$AAD?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AA0@|
000fc 00000000 DCD |g_dwTotalLength|
00100 |$M37551|
ENDP ; |WriteDbgMsgBufferToFile|
EXPORT |FreeMsgOutBuffer|
EXPORT |??_C@_1CE@CONFEPKJ@?$AAF?$AAr?$AAe?$AAe?$AA?5?$AAM?$AAs?$AAg?$AA?5?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AA?$AN?$AA?6?$AA?$AA@| [ DATA ] ; `string'
IMPORT |DeleteCriticalSection|
IMPORT |FreePhysMem|
00000 AREA |.text| { |FreeMsgOutBuffer| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$FreeMsgOutBuffer|, PDATA, SELECTION=5, ASSOC=|.text| { |FreeMsgOutBuffer| } ; comdat associative
|$T37561| DCD |$L37560|
DCD 0x40001c01
00000 AREA |.rdata| { |??_C@_1CE@CONFEPKJ@?$AAF?$AAr?$AAe?$AAe?$AA?5?$AAM?$AAs?$AAg?$AA?5?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AA?$AN?$AA?6?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CE@CONFEPKJ@?$AAF?$AAr?$AAe?$AAe?$AA?5?$AAM?$AAs?$AAg?$AA?5?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AA?$AN?$AA?6?$AA?$AA@| DCB "F"
DCB 0x0, "r", 0x0, "e", 0x0, "e", 0x0, " ", 0x0, "M", 0x0, "s"
DCB 0x0, "g", 0x0, " ", 0x0, "B", 0x0, "u", 0x0, "f", 0x0, "f"
DCB 0x0, "e", 0x0, "r", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |FreeMsgOutBuffer| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |FreeMsgOutBuffer| PROC
; 84 : {
00000 |$L37560|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M37558|
; 85 : NKDbgPrintfW(TEXT("Free Msg Buffer\r\n")) ;
00004 e59f0060 ldr r0, [pc, #0x60]
00008 eb000000 bl NKDbgPrintfW
; 86 :
; 87 : WriteDbgMsgBufferToFile() ;
0000c eb000000 bl WriteDbgMsgBufferToFile
; 88 :
; 89 : g_nRefCount -- ;
00010 e59f4050 ldr r4, [pc, #0x50]
00014 e5943000 ldr r3, [r4]
00018 e2533001 subs r3, r3, #1
0001c e5843000 str r3, [r4]
; 90 :
; 91 : if ( g_nRefCount == 0 )
00020 1a00000d bne |$L37363|
; 92 : {
; 93 : if ( g_pVirtureBuffer )
00024 e5940014 ldr r0, [r4, #0x14]
00028 e3500000 cmp r0, #0
0002c 0a000002 beq |$L37364|
; 94 : {
; 95 : FreePhysMem(g_pVirtureBuffer) ;
00030 eb000000 bl FreePhysMem
; 96 : g_pVirtureBuffer = NULL ;
00034 e3a03000 mov r3, #0
00038 e5843014 str r3, [r4, #0x14]
0003c |$L37364|
; 97 : }
; 98 : g_dwTotalLength = 0 ;
; 99 : g_dwCurrentLength = 0 ;
; 100 : g_nMsgNumber = 0 ;
; 101 :
; 102 : DeleteCriticalSection(&g_WriteBufferCS) ;
0003c e59f0020 ldr r0, [pc, #0x20]
00040 e3a03000 mov r3, #0
00044 e3a02000 mov r2, #0
00048 e3a01000 mov r1, #0
0004c e5843008 str r3, [r4, #8]
00050 e584200c str r2, [r4, #0xC]
00054 e5841004 str r1, [r4, #4]
00058 eb000000 bl DeleteCriticalSection
0005c |$L37363|
; 103 : }
; 104 : }
0005c e8bd4010 ldmia sp!, {r4, lr}
00060 e12fff1e bx lr
00064 |$L37563|
00064 00000000 DCD |g_WriteBufferCS|
00068 00000000 DCD |g_nRefCount|
0006c 00000000 DCD |??_C@_1CE@CONFEPKJ@?$AAF?$AAr?$AAe?$AAe?$AA?5?$AAM?$AAs?$AAg?$AA?5?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AA?$AN?$AA?6?$AA?$AA@|
00070 |$M37559|
ENDP ; |FreeMsgOutBuffer|
EXPORT |WriteBufferToBuffer|
IMPORT |EnterCriticalSection|
IMPORT |LeaveCriticalSection|
IMPORT |memcpy|
00000 AREA |.text| { |WriteBufferToBuffer| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$WriteBufferToBuffer|, PDATA, SELECTION=5, ASSOC=|.text| { |WriteBufferToBuffer| } ; comdat associative
|$T37573| DCD |$L37572|
DCD 0x40002701
; Function compile flags: /Ogsy
00000 AREA |.text| { |WriteBufferToBuffer| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |WriteBufferToBuffer| PROC
; 194 : {
00000 |$L37572|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 |$M37570|
00004 e1a05001 mov r5, r1
00008 e1a06000 mov r6, r0
; 195 : void *pMsgOutBuffer = NULL ;
; 196 :
; 197 : if ( !g_pVirtureBuffer )
0000c e59f4084 ldr r4, [pc, #0x84]
00010 e594300c ldr r3, [r4, #0xC]
00014 e3530000 cmp r3, #0
00018 0a00001b beq |$L37415|
; 198 : {
; 199 : return ;
; 200 : }
; 201 :
; 202 : EnterCriticalSection(&g_WriteBufferCS) ;
0001c e59f0070 ldr r0, [pc, #0x70]
00020 eb000000 bl EnterCriticalSection
; 203 :
; 204 : if ( (nLength + g_dwCurrentLength) > g_dwTotalLength )
00024 e5943004 ldr r3, [r4, #4]
00028 e5941000 ldr r1, [r4]
0002c e0833005 add r3, r3, r5
00030 e1530001 cmp r3, r1
00034 9a000001 bls |$L37419|
; 205 : {
; 206 : WriteDbgMsgBufferToFile() ;
00038 eb000000 bl WriteDbgMsgBufferToFile
0003c e5941000 ldr r1, [r4]
00040 |$L37419|
; 207 : }
; 208 :
; 209 : pMsgOutBuffer = (void *)CreateStaticMapping(g_dwPhysBuffer>>8, g_dwTotalLength) ;
00040 e5940008 ldr r0, [r4, #8]
00044 e1a00420 mov r0, r0, lsr #8
00048 eb000000 bl CreateStaticMapping
0004c e3500000 cmp r0, #0
; 210 : if ( pMsgOutBuffer )
00050 0a00000b beq |$L37422|
; 211 : {
; 212 : if ( (nLength + g_dwCurrentLength) < g_dwTotalLength )
00054 e594e004 ldr lr, [r4, #4]
00058 e5942000 ldr r2, [r4]
0005c e08e3005 add r3, lr, r5
00060 e1530002 cmp r3, r2
00064 2a000006 bcs |$L37422|
; 213 : {
; 214 : memcpy((void*)((DWORD)pMsgOutBuffer+g_dwCurrentLength), pBuffer, nLength) ;
00068 e1a02005 mov r2, r5
0006c e1a01006 mov r1, r6
00070 e08e0000 add r0, lr, r0
00074 eb000000 bl memcpy
; 215 :
; 216 : g_dwCurrentLength += nLength ;
00078 e5943004 ldr r3, [r4, #4]
0007c e0833005 add r3, r3, r5
00080 e5843004 str r3, [r4, #4]
00084 |$L37422|
; 217 : }
; 218 : }
; 219 :
; 220 : LeaveCriticalSection(&g_WriteBufferCS) ;
00084 e59f0008 ldr r0, [pc, #8]
00088 eb000000 bl LeaveCriticalSection
0008c |$L37415|
; 221 : }
0008c e8bd4070 ldmia sp!, {r4 - r6, lr}
00090 e12fff1e bx lr
00094 |$L37575|
00094 00000000 DCD |g_WriteBufferCS|
00098 00000000 DCD |g_dwTotalLength|
0009c |$M37571|
ENDP ; |WriteBufferToBuffer|
EXPORT |ForceFlushBufferToFile|
00000 AREA |.text| { |ForceFlushBufferToFile| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -