📄 msgout.cod
字号:
00000 AREA |.pdata$$ForceFlushBufferToFile|, PDATA, SELECTION=5, ASSOC=|.text| { |ForceFlushBufferToFile| } ; comdat associative
|$T37581| DCD |$L37580|
DCD 0x40000401
; Function compile flags: /Ogsy
00000 AREA |.text| { |ForceFlushBufferToFile| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |ForceFlushBufferToFile| PROC
; 224 : {
00000 |$L37580|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M37578|
; 225 : WriteDbgMsgBufferToFile() ;
00004 eb000000 bl WriteDbgMsgBufferToFile
; 226 : }
00008 e49de004 ldr lr, [sp], #4
0000c e12fff1e bx lr
00010 |$M37579|
ENDP ; |ForceFlushBufferToFile|
EXPORT |WriteHexToBuffer|
EXPORT |??_C@_0CA@FEMNCLGD@?$CF04d?9?$CF02d?9?$CF02d?5?$CF02d?3?$CF02d?3?$CF02d?3?5?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_05OJLLOHMB@hex?3?5?$AA@| [ DATA ] ; `string'
IMPORT |free|
IMPORT |malloc|
IMPORT |sprintf|
IMPORT |memset|
IMPORT |strlen|
00000 AREA |.text| { |WriteHexToBuffer| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$WriteHexToBuffer|, PDATA, SELECTION=5, ASSOC=|.text| { |WriteHexToBuffer| } ; comdat associative
|$T37597| DCD |$L37596|
DCD 0x40004e02
00000 AREA |.rdata| { |??_C@_05OJLLOHMB@hex?3?5?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_05OJLLOHMB@hex?3?5?$AA@| DCB "hex: ", 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0CA@FEMNCLGD@?$CF04d?9?$CF02d?9?$CF02d?5?$CF02d?3?$CF02d?3?$CF02d?3?5?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CA@FEMNCLGD@?$CF04d?9?$CF02d?9?$CF02d?5?$CF02d?3?$CF02d?3?$CF02d?3?5?$AA@| DCB "%"
DCB "04d-%02d-%02d %02d:%02d:%02d: ", 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |WriteHexToBuffer| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |WriteHexToBuffer| PROC
; 121 : {
00000 |$L37596|
00000 e92d47f0 stmdb sp!, {r4 - r10, lr}
00004 e24dd088 sub sp, sp, #0x88
00008 |$M37594|
00008 e1a08001 mov r8, r1
0000c e1a09000 mov r9, r0
00010 e59f311c ldr r3, [pc, #0x11C]
00014 e5933000 ldr r3, [r3]
00018 e58d3084 str r3, [sp, #0x84]
; 122 : char *cNewBuffer = (BYTE *) malloc(5 + nLength * 3 + 2) ;
0001c e088a088 add r10, r8, r8, lsl #1
00020 e28a0007 add r0, r10, #7
00024 eb000000 bl malloc
00028 e1a07000 mov r7, r0
; 123 : char cTime[100] = {0} ;
0002c e3a03000 mov r3, #0
00030 e28d0021 add r0, sp, #0x21
00034 e3a02063 mov r2, #0x63
00038 e3a01000 mov r1, #0
0003c e5cd3020 strb r3, [sp, #0x20]
00040 eb000000 bl memset
; 124 : SYSTEMTIME st ;
; 125 : int i ;
; 126 :
; 127 : if ( g_bEnableAddTime )
00044 e59f30e4 ldr r3, [pc, #0xE4]
00048 e5933000 ldr r3, [r3]
0004c e3530000 cmp r3, #0
00050 0a000013 beq |$L37387|
; 128 : {
; 129 : GetLocalTime(&st) ;
00054 e28d0010 add r0, sp, #0x10
00058 eb000000 bl GetLocalTime
; 130 :
; 131 : sprintf(cTime, "%04d-%02d-%02d %02d:%02d:%02d: ",
; 132 : st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond) ;
0005c e1dde1bc ldrh lr, [sp, #0x1C]
00060 e1dd41ba ldrh r4, [sp, #0x1A]
00064 e1dd51b8 ldrh r5, [sp, #0x18]
00068 e1dd61b6 ldrh r6, [sp, #0x16]
0006c e1dd31b2 ldrh r3, [sp, #0x12]
00070 e1dd21b0 ldrh r2, [sp, #0x10]
00074 e59f10b0 ldr r1, [pc, #0xB0]
00078 e28d0020 add r0, sp, #0x20
0007c e58de00c str lr, [sp, #0xC]
00080 e58d4008 str r4, [sp, #8]
00084 e58d5004 str r5, [sp, #4]
00088 e58d6000 str r6, [sp]
0008c eb000000 bl sprintf
; 133 :
; 134 : WriteBufferToBuffer(cTime, strlen(cTime)) ;
00090 e28d0020 add r0, sp, #0x20
00094 eb000000 bl strlen
00098 e1a01000 mov r1, r0
0009c e28d0020 add r0, sp, #0x20
000a0 eb000000 bl WriteBufferToBuffer
000a4 |$L37387|
; 135 : }
; 136 :
; 137 : strcpy(cNewBuffer, "hex: ") ;
000a4 e59f107c ldr r1, [pc, #0x7C]
000a8 e3a02006 mov r2, #6
000ac e1a00007 mov r0, r7
000b0 eb000000 bl memcpy
; 138 : for ( i = 0 ; i < nLength ; i++ )
000b4 e3a04000 mov r4, #0
000b8 e3580000 cmp r8, #0
000bc da000009 ble |$L37392|
000c0 e1a05007 mov r5, r7
000c4 e3a06020 mov r6, #0x20
000c8 |$L37390|
; 139 : {
; 140 : ByteToHex(pBuffer[i], cNewBuffer+5+i*3) ;
000c8 e7d40009 ldrb r0, [r4, +r9]
000cc e2851005 add r1, r5, #5
000d0 eb000000 bl ByteToHex
000d4 e2844001 add r4, r4, #1
; 141 :
; 142 : *(cNewBuffer+5+i*3+2) = ' ' ;
000d8 e5c56007 strb r6, [r5, #7]
000dc e1540008 cmp r4, r8
000e0 e2855003 add r5, r5, #3
000e4 bafffff7 blt |$L37390|
000e8 |$L37392|
; 143 : }
; 144 :
; 145 : *(cNewBuffer+5+i*3) = '\r' ;
000e8 e0843084 add r3, r4, r4, lsl #1
000ec e0833007 add r3, r3, r7
; 146 : *(cNewBuffer+5+i*3+1) = '\n' ;
000f0 e3a0100a mov r1, #0xA
000f4 e5c31006 strb r1, [r3, #6]
000f8 e3a0200d mov r2, #0xD
; 147 :
; 148 : WriteBufferToBuffer(cNewBuffer, 5+nLength*3+2) ;
000fc e28a1007 add r1, r10, #7
00100 e1a00007 mov r0, r7
00104 e5c32005 strb r2, [r3, #5]
00108 eb000000 bl WriteBufferToBuffer
; 149 :
; 150 : free(cNewBuffer) ;
0010c e1a00007 mov r0, r7
00110 eb000000 bl free
00114 e59d0084 ldr r0, [sp, #0x84]
00118 eb000000 bl __security_check_cookie
; 151 : }
0011c e28dd088 add sp, sp, #0x88
00120 e8bd47f0 ldmia sp!, {r4 - r10, lr}
00124 e12fff1e bx lr
00128 |$L37599|
00128 00000000 DCD |??_C@_05OJLLOHMB@hex?3?5?$AA@|
0012c 00000000 DCD |??_C@_0CA@FEMNCLGD@?$CF04d?9?$CF02d?9?$CF02d?5?$CF02d?3?$CF02d?3?$CF02d?3?5?$AA@|
00130 00000000 DCD |g_bEnableAddTime|
00134 00000000 DCD |__security_cookie|
00138 |$M37595|
ENDP ; |WriteHexToBuffer|
EXPORT |WriteDbgMsgToBuffer|
EXPORT |??_C@_1EA@LHECOMAC@?$AA?$CF?$AA0?$AA4?$AAd?$AA?9?$AA?$CF?$AA0?$AA2?$AAd?$AA?9?$AA?$CF?$AA0?$AA2?$AAd?$AA?5?$AA?$CF?$AA0?$AA2?$AAd?$AA?3@| [ DATA ] ; `string'
IMPORT |vswprintf|
IMPORT |WideCharToMultiByte|
IMPORT |wcslen|
00000 AREA |.text| { |WriteDbgMsgToBuffer| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$WriteDbgMsgToBuffer|, PDATA, SELECTION=5, ASSOC=|.text| { |WriteDbgMsgToBuffer| } ; comdat associative
|$T37610| DCD |$L37609|
DCD 0x40004905
00000 AREA |.rdata| { |??_C@_1EA@LHECOMAC@?$AA?$CF?$AA0?$AA4?$AAd?$AA?9?$AA?$CF?$AA0?$AA2?$AAd?$AA?9?$AA?$CF?$AA0?$AA2?$AAd?$AA?5?$AA?$CF?$AA0?$AA2?$AAd?$AA?3@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1EA@LHECOMAC@?$AA?$CF?$AA0?$AA4?$AAd?$AA?9?$AA?$CF?$AA0?$AA2?$AAd?$AA?9?$AA?$CF?$AA0?$AA2?$AAd?$AA?5?$AA?$CF?$AA0?$AA2?$AAd?$AA?3@| DCB "%"
DCB 0x0, "0", 0x0, "4", 0x0, "d", 0x0, "-", 0x0, "%", 0x0, "0"
DCB 0x0, "2", 0x0, "d", 0x0, "-", 0x0, "%", 0x0, "0", 0x0, "2"
DCB 0x0, "d", 0x0, " ", 0x0, "%", 0x0, "0", 0x0, "2", 0x0, "d"
DCB 0x0, ":", 0x0, "%", 0x0, "0", 0x0, "2", 0x0, "d", 0x0, ":"
DCB 0x0, "%", 0x0, "0", 0x0, "2", 0x0, "d", 0x0, ":", 0x0, " "
DCB 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |WriteDbgMsgToBuffer| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |WriteDbgMsgToBuffer| PROC
; 154 : {
00000 |$L37609|
00000 e1a0c00d mov r12, sp
00004 e92d000f stmdb sp!, {r0 - r3}
00008 e92d5030 stmdb sp!, {r4, r5, r12, lr}
0000c e59fc10c ldr r12, [pc, #0x10C]
00010 e08dd00c add sp, sp, r12
00014 |$M37607|
00014 e58d0834 str r0, [sp, #0x834]
00018 e59f30fc ldr r3, [pc, #0xFC]
0001c e5933000 ldr r3, [r3]
00020 e58d3820 str r3, [sp, #0x820]
; 155 : TCHAR szBuffer[512];
; 156 : char cBuffer[1024] ;
; 157 :
; 158 : va_list vl;
; 159 : int nLength ;
; 160 : SYSTEMTIME st ;
; 161 :
; 162 : g_nMsgNumber ++ ;
00024 e59fe0ec ldr lr, [pc, #0xEC]
; 163 :
; 164 : va_start(vl, szFormat);
; 165 :
; 166 : if ( g_bEnableAddTime )
00028 e59f30e4 ldr r3, [pc, #0xE4]
0002c e59e2000 ldr r2, [lr]
00030 e5931000 ldr r1, [r3]
00034 e2823001 add r3, r2, #1
00038 e58e3000 str r3, [lr]
0003c e3510000 cmp r1, #0
00040 0a000014 beq |$L37404|
; 167 : {
; 168 : GetLocalTime(&st) ;
00044 e28d0010 add r0, sp, #0x10
00048 eb000000 bl GetLocalTime
; 169 :
; 170 : wsprintf(szBuffer, TEXT("%04d-%02d-%02d %02d:%02d:%02d: "),
; 171 : st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond) ;
0004c e1dd01bc ldrh r0, [sp, #0x1C]
00050 e1dde1ba ldrh lr, [sp, #0x1A]
00054 e1dd41b8 ldrh r4, [sp, #0x18]
00058 e1dd51b6 ldrh r5, [sp, #0x16]
0005c e1dd31b2 ldrh r3, [sp, #0x12]
00060 e1dd21b0 ldrh r2, [sp, #0x10]
00064 e59f10a4 ldr r1, [pc, #0xA4]
00068 e58d000c str r0, [sp, #0xC]
0006c e28d0020 add r0, sp, #0x20
00070 e58de008 str lr, [sp, #8]
00074 e58d4004 str r4, [sp, #4]
00078 e58d5000 str r5, [sp]
0007c eb000000 bl wsprintfW
; 172 :
; 173 : _vstprintf(szBuffer+_tcslen(szBuffer), szFormat, vl) ;
00080 e28d0020 add r0, sp, #0x20
00084 eb000000 bl wcslen
00088 e28d3020 add r3, sp, #0x20
0008c e59d1834 ldr r1, [sp, #0x834]
00090 e0830080 add r0, r3, r0, lsl #1
; 174 : }
; 175 : else
00094 ea000001 b |$L37606|
00098 |$L37404|
; 176 : {
; 177 : _vstprintf(szBuffer, szFormat, vl) ;
00098 e1a01000 mov r1, r0
0009c e28d0020 add r0, sp, #0x20
000a0 |$L37606|
000a0 e3a02e83 mov r2, #0x83, 28
000a4 e3822008 orr r2, r2, #8
000a8 e08d2002 add r2, sp, r2
000ac eb000000 bl vswprintf
; 178 : }
; 179 :
; 180 : va_end(vl);
; 181 :
; 182 : #ifdef _UNICODE
; 183 : WideCharToMultiByte(CP_ACP, 0, szBuffer, -1, cBuffer, 1024, NULL, NULL) ;
000b0 e3a02b01 mov r2, #1, 22
000b4 e28d3e42 add r3, sp, #0x42, 28
000b8 e58d2004 str r2, [sp, #4]
000bc e58d3000 str r3, [sp]
000c0 e3a0e000 mov lr, #0
000c4 e3e03000 mvn r3, #0
000c8 e28d2020 add r2, sp, #0x20
000cc e3a01000 mov r1, #0
000d0 e3a00000 mov r0, #0
000d4 e58de00c str lr, [sp, #0xC]
000d8 e58de008 str lr, [sp, #8]
000dc eb000000 bl WideCharToMultiByte
; 184 : #else
; 185 : strcpy(cBuffer, szBuffer) ;
; 186 : #endif
; 187 :
; 188 : nLength = strlen(cBuffer) ;
000e0 e28d0e42 add r0, sp, #0x42, 28
000e4 eb000000 bl strlen
000e8 e1a01000 mov r1, r0
; 189 :
; 190 : WriteBufferToBuffer((BYTE *)cBuffer, nLength) ;
000ec e28d0e42 add r0, sp, #0x42, 28
000f0 eb000000 bl WriteBufferToBuffer
000f4 e59d0820 ldr r0, [sp, #0x820]
000f8 eb000000 bl __security_check_cookie
; 191 : }
000fc e3a0ce82 mov r12, #0x82, 28
00100 e38cc004 orr r12, r12, #4
00104 e08dd00c add sp, sp, r12
00108 e89d6030 ldmia sp, {r4, r5, sp, lr}
0010c e12fff1e bx lr
00110 |$L37612|
00110 00000000 DCD |??_C@_1EA@LHECOMAC@?$AA?$CF?$AA0?$AA4?$AAd?$AA?9?$AA?$CF?$AA0?$AA2?$AAd?$AA?9?$AA?$CF?$AA0?$AA2?$AAd?$AA?5?$AA?$CF?$AA0?$AA2?$AAd?$AA?3@|
00114 00000000 DCD |g_bEnableAddTime|
00118 00000000 DCD |g_nMsgNumber|
0011c 00000000 DCD |__security_cookie|
00120 fffff7dc DCD 0xfffff7dc
00124 |$M37608|
ENDP ; |WriteDbgMsgToBuffer|
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -