📄 format.cod
字号:
00058 eaffffec b |$L37515|
0005c |$L37516|
; 490 : }
0005c e28dd004 add sp, sp, #4
00060 e89d6000 ldmia sp, {sp, lr}
00064 e12fff1e bx lr
00068 |$M37667|
ENDP ; |OutputString|
EXPORT |inet_ntoa|
EXPORT |??_C@_0M@CDHNGIPM@?$CFu?4?$CFu?4?$CFu?4?$CFu?$AA@| [ DATA ] ; `string'
00004 AREA |.bss|, NOINIT
|?szDottedD@?1??inet_ntoa@@9@9| % 0x10 ; `inet_ntoa'::`2'::szDottedD
00000 AREA |.text| { |inet_ntoa| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$inet_ntoa|, PDATA, SELECTION=5, ASSOC=|.text| { |inet_ntoa| } ; comdat associative
|$T37677| DCD |$L37676|
DCD 0x40001c04
00000 AREA |.rdata| { |??_C@_0M@CDHNGIPM@?$CFu?4?$CFu?4?$CFu?4?$CFu?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0M@CDHNGIPM@?$CFu?4?$CFu?4?$CFu?4?$CFu?$AA@| DCB "%u.%u.%u.%u", 0x0 ; `string'
; Function compile flags: /Ods
00000 AREA |.text| { |inet_ntoa| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |inet_ntoa| PROC
; 497 : {
00000 |$L37676|
00000 e1a0c00d mov r12, sp
00004 e92d0001 stmdb sp!, {r0}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd00c sub sp, sp, #0xC
00010 |$M37674|
; 498 : static char szDottedD[16];
; 499 :
; 500 : FormatString(szDottedD, "%u.%u.%u.%u",
; 501 : (BYTE)dwIP, (BYTE)(dwIP >> 8),
; 502 : (BYTE)(dwIP >> 16), (BYTE)(dwIP >> 24));
00010 e59d3014 ldr r3, [sp, #0x14]
00014 e1a03c23 mov r3, r3, lsr #24
00018 e20330ff and r3, r3, #0xFF
0001c e58d3004 str r3, [sp, #4]
00020 e59d3014 ldr r3, [sp, #0x14]
00024 e1a03823 mov r3, r3, lsr #16
00028 e20330ff and r3, r3, #0xFF
0002c e58d3000 str r3, [sp]
00030 e59d3014 ldr r3, [sp, #0x14]
00034 e1a03423 mov r3, r3, lsr #8
00038 e20330ff and r3, r3, #0xFF
0003c e59d2014 ldr r2, [sp, #0x14]
00040 e20220ff and r2, r2, #0xFF
00044 e59f1020 ldr r1, [pc, #0x20]
00048 e59f0018 ldr r0, [pc, #0x18]
0004c eb000000 bl FormatString
; 503 :
; 504 : return szDottedD;
00050 e59f3010 ldr r3, [pc, #0x10]
00054 e58d3008 str r3, [sp, #8]
00058 e59d0008 ldr r0, [sp, #8]
; 505 : }
0005c e28dd00c add sp, sp, #0xC
00060 e89d6000 ldmia sp, {sp, lr}
00064 e12fff1e bx lr
00068 |$L37679|
00068 00000000 DCD |?szDottedD@?1??inet_ntoa@@9@9|
0006c 00000000 DCD |??_C@_0M@CDHNGIPM@?$CFu?4?$CFu?4?$CFu?4?$CFu?$AA@|
00070 |$M37675|
ENDP ; |inet_ntoa|
EXPORT |AsciiToInt|
00000 AREA |.text| { |AsciiToInt| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$AsciiToInt|, PDATA, SELECTION=5, ASSOC=|.text| { |AsciiToInt| } ; comdat associative
|$T37686| DCD |$L37685|
DCD 0x40002604
; Function compile flags: /Ods
00000 AREA |.text| { |AsciiToInt| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |AsciiToInt| PROC
; 508 : {
00000 |$L37685|
00000 e1a0c00d mov r12, sp
00004 e92d0001 stmdb sp!, {r0}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd00c sub sp, sp, #0xC
00010 |$M37683|
; 509 : char c;
; 510 : int total = 0;
00010 e3a03000 mov r3, #0
00014 e58d3000 str r3, [sp]
; 511 :
; 512 : c = *szNumber++;
00018 e59d3014 ldr r3, [sp, #0x14]
0001c e1d330d0 ldrsb r3, [r3]
00020 e5cd3004 strb r3, [sp, #4]
00024 e59d3014 ldr r3, [sp, #0x14]
00028 e2833001 add r3, r3, #1
0002c e58d3014 str r3, [sp, #0x14]
00030 |$L37536|
; 513 :
; 514 : while ((c >= '0') && (c <= '9'))
00030 e1dd30d4 ldrsb r3, [sp, #4]
00034 e3530030 cmp r3, #0x30
00038 ba000010 blt |$L37537|
0003c e1dd30d4 ldrsb r3, [sp, #4]
00040 e3530039 cmp r3, #0x39
00044 ca00000d bgt |$L37537|
; 515 : {
; 516 : total = 10 * total + (c - '0');
00048 e59d1000 ldr r1, [sp]
0004c e3a0300a mov r3, #0xA
00050 e0020391 mul r2, r1, r3
00054 e1dd30d4 ldrsb r3, [sp, #4]
00058 e2433030 sub r3, r3, #0x30
0005c e0823003 add r3, r2, r3
00060 e58d3000 str r3, [sp]
; 517 : c = *szNumber++;
00064 e59d3014 ldr r3, [sp, #0x14]
00068 e1d330d0 ldrsb r3, [r3]
0006c e5cd3004 strb r3, [sp, #4]
00070 e59d3014 ldr r3, [sp, #0x14]
00074 e2833001 add r3, r3, #1
00078 e58d3014 str r3, [sp, #0x14]
; 518 : }
0007c eaffffeb b |$L37536|
00080 |$L37537|
; 519 :
; 520 : return (total);
00080 e59d3000 ldr r3, [sp]
00084 e58d3008 str r3, [sp, #8]
00088 e59d0008 ldr r0, [sp, #8]
; 521 : }
0008c e28dd00c add sp, sp, #0xC
00090 e89d6000 ldmia sp, {sp, lr}
00094 e12fff1e bx lr
00098 |$M37684|
ENDP ; |AsciiToInt|
EXPORT |inet_addr|
00000 AREA |.text| { |inet_addr| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$inet_addr|, PDATA, SELECTION=5, ASSOC=|.text| { |inet_addr| } ; comdat associative
|$T37694| DCD |$L37693|
DCD 0x40004104
; Function compile flags: /Ods
00000 AREA |.text| { |inet_addr| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |inet_addr| PROC
; 528 : {
00000 |$L37693|
00000 e1a0c00d mov r12, sp
00004 e92d0001 stmdb sp!, {r0}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd014 sub sp, sp, #0x14
00010 |$M37691|
; 529 : DWORD dwIP = 0;
00010 e3a03000 mov r3, #0
00014 e58d3004 str r3, [sp, #4]
; 530 : DWORD cBytes;
; 531 : char *pszLastNum;
; 532 : int atoi (const char *s);
; 533 :
; 534 : // Replace the dots with NULL terminators
; 535 : pszLastNum = pszDottedD;
00018 e59d301c ldr r3, [sp, #0x1C]
0001c e58d3000 str r3, [sp]
; 536 :
; 537 : for( cBytes = 0; cBytes < 4; cBytes++ )
00020 e3a03000 mov r3, #0
00024 e58d3008 str r3, [sp, #8]
00028 ea000002 b |$L37548|
0002c |$L37549|
0002c e59d3008 ldr r3, [sp, #8]
00030 e2833001 add r3, r3, #1
00034 e58d3008 str r3, [sp, #8]
00038 |$L37548|
00038 e59d3008 ldr r3, [sp, #8]
0003c e3530004 cmp r3, #4
00040 2a000029 bcs |$L37550|
00044 |$L37552|
; 538 : {
; 539 : while(*pszDottedD != '.' && *pszDottedD != '\0')
00044 e59d301c ldr r3, [sp, #0x1C]
00048 e1d330d0 ldrsb r3, [r3]
0004c e353002e cmp r3, #0x2E
00050 0a000007 beq |$L37553|
00054 e59d301c ldr r3, [sp, #0x1C]
00058 e1d330d0 ldrsb r3, [r3]
0005c e3530000 cmp r3, #0
00060 0a000003 beq |$L37553|
; 540 : pszDottedD++;
00064 e59d301c ldr r3, [sp, #0x1C]
00068 e2833001 add r3, r3, #1
0006c e58d301c str r3, [sp, #0x1C]
00070 eafffff3 b |$L37552|
00074 |$L37553|
; 541 :
; 542 : if (pszDottedD == '\0' && cBytes != 3)
00074 e59d301c ldr r3, [sp, #0x1C]
00078 e3530000 cmp r3, #0
0007c 1a000005 bne |$L37554|
00080 e59d3008 ldr r3, [sp, #8]
00084 e3530003 cmp r3, #3
00088 0a000002 beq |$L37554|
; 543 : return 0;
0008c e3a03000 mov r3, #0
00090 e58d300c str r3, [sp, #0xC]
00094 ea000016 b |$L37541|
00098 |$L37554|
; 544 :
; 545 : *pszDottedD = '\0';
00098 e59d201c ldr r2, [sp, #0x1C]
0009c e3a03000 mov r3, #0
000a0 e5c23000 strb r3, [r2]
; 546 : dwIP |= (AsciiToInt(pszLastNum) & 0xFF) << (8*cBytes);
000a4 e59d0000 ldr r0, [sp]
000a8 eb000000 bl AsciiToInt
000ac e58d0010 str r0, [sp, #0x10]
000b0 e59d3010 ldr r3, [sp, #0x10]
000b4 e20310ff and r1, r3, #0xFF
000b8 e59d2008 ldr r2, [sp, #8]
000bc e3a03008 mov r3, #8
000c0 e0030392 mul r3, r2, r3
000c4 e1a02311 mov r2, r1, lsl r3
000c8 e59d3004 ldr r3, [sp, #4]
000cc e1833002 orr r3, r3, r2
000d0 e58d3004 str r3, [sp, #4]
; 547 : pszLastNum = ++pszDottedD;
000d4 e59d301c ldr r3, [sp, #0x1C]
000d8 e2833001 add r3, r3, #1
000dc e58d301c str r3, [sp, #0x1C]
000e0 e59d301c ldr r3, [sp, #0x1C]
000e4 e58d3000 str r3, [sp]
; 548 : }
000e8 eaffffcf b |$L37549|
000ec |$L37550|
; 549 :
; 550 : return dwIP;
000ec e59d3004 ldr r3, [sp, #4]
000f0 e58d300c str r3, [sp, #0xC]
000f4 |$L37541|
; 543 : return 0;
000f4 e59d000c ldr r0, [sp, #0xC]
; 551 : }
000f8 e28dd014 add sp, sp, #0x14
000fc e89d6000 ldmia sp, {sp, lr}
00100 e12fff1e bx lr
00104 |$M37692|
ENDP ; |inet_addr|
EXPORT |EdbgDumpHexBuf|
EXPORT |??_C@_0BJ@BLAJNKBF@Dump?5of?5?$CFu?5bytes?5?$EA?50x?$CFX?6?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_09OLLBDDGO@?60x?$CFX?5?5?5?5?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_01EEMJAFIK@?6?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_03KPMNACOD@?$CFB?5?$AA@| [ DATA ] ; `string'
00000 AREA |.text| { |EdbgDumpHexBuf| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$EdbgDumpHexBuf|, PDATA, SELECTION=5, ASSOC=|.text| { |EdbgDumpHexBuf| } ; comdat associative
|$T37701| DCD |$L37700|
DCD 0x40003a04
00000 AREA |.rdata| { |??_C@_03KPMNACOD@?$CFB?5?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_03KPMNACOD@?$CFB?5?$AA@| DCB "%B ", 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_01EEMJAFIK@?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_01EEMJAFIK@?6?$AA@| DCB 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_09OLLBDDGO@?60x?$CFX?5?5?5?5?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_09OLLBDDGO@?60x?$CFX?5?5?5?5?$AA@| DCB 0xa, "0x%X ", 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0BJ@BLAJNKBF@Dump?5of?5?$CFu?5bytes?5?$EA?50x?$CFX?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BJ@BLAJNKBF@Dump?5of?5?$CFu?5bytes?5?$EA?50x?$CFX?6?$AA@| DCB "Du"
DCB "mp of %u bytes @ 0x%X", 0xa, 0x0 ; `string'
; Function compile flags: /Ods
00000 AREA |.text| { |EdbgDumpHexBuf| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |EdbgDumpHexBuf| PROC
; 557 : {
00000 |$L37700|
00000 e1a0c00d mov r12, sp
00004 e92d0003 stmdb sp!, {r0, r1}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd008 sub sp, sp, #8
00010 |$M37698|
; 558 : DWORD i,j;
; 559 :
; 560 : EdbgOutputDebugString("Dump of %u bytes @ 0x%X\n", Count, (DWORD)pBuf);
00010 e59d2010 ldr r2, [sp, #0x10]
00014 e59d1014 ldr r1, [sp, #0x14]
00018 e59f00c4 ldr r0, [pc, #0xC4]
0001c eb000000 bl EdbgOutputDebugString
; 561 :
; 562 : for (i = 0; i < Count; i += ENTRIES_PER_LINE)
00020 e3a03000 mov r3, #0
00024 e58d3000 str r3, [sp]
00028 ea000002 b |$L37565|
0002c |$L37566|
0002c e59d3000 ldr r3, [sp]
00030 e2833010 add r3, r3, #0x10
00034 e58d3000 str r3, [sp]
00038 |$L37565|
00038 e59d2000 ldr r2, [sp]
0003c e59d3014 ldr r3, [sp, #0x14]
00040 e1520003 cmp r2, r3
00044 2a00001e bcs |$L37567|
; 563 : {
; 564 : EdbgOutputDebugString("\n0x%X ",i);
00048 e59d1000 ldr r1, [sp]
0004c e59f008c ldr r0, [pc, #0x8C]
00050 eb000000 bl EdbgOutputDebugString
; 565 :
; 566 : for (j = 0; j < ENTRIES_PER_LINE; j++)
00054 e3a03000 mov r3, #0
00058 e58d3004 str r3, [sp, #4]
0005c ea000002 b |$L37569|
00060 |$L37570|
00060 e59d3004 ldr r3, [sp, #4]
00064 e2833001 add r3, r3, #1
00068 e58d3004 str r3, [sp, #4]
0006c |$L37569|
0006c e59d3004 ldr r3, [sp, #4]
00070 e3530010 cmp r3, #0x10
00074 2a000011 bcs |$L37571|
; 567 : if ((i+j) >= Count)
00078 e59d2000 ldr r2, [sp]
0007c e59d3004 ldr r3, [sp, #4]
00080 e0822003 add r2, r2, r3
00084 e59d3014 ldr r3, [sp, #0x14]
00088 e1520003 cmp r2, r3
0008c 3a000002 bcc |$L37572|
; 568 : EdbgOutputDebugString("\n");
00090 e59f0040 ldr r0, [pc, #0x40]
00094 eb000000 bl EdbgOutputDebugString
; 569 : else
00098 ea000007 b |$L37574|
0009c |$L37572|
; 570 : EdbgOutputDebugString("%B ", pBuf[i+j]);
0009c e59d2000 ldr r2, [sp]
000a0 e59d3004 ldr r3, [sp, #4]
000a4 e0822003 add r2, r2, r3
000a8 e59d3010 ldr r3, [sp, #0x10]
000ac e0833002 add r3, r3, r2
000b0 e5d31000 ldrb r1, [r3]
000b4 e59f0020 ldr r0, [pc, #0x20]
000b8 eb000000 bl EdbgOutputDebugString
000bc |$L37574|
000bc eaffffe7 b |$L37570|
000c0 |$L37571|
; 571 : }
000c0 eaffffd9 b |$L37566|
000c4 |$L37567|
; 572 :
; 573 : EdbgOutputDebugString("\n");
000c4 e59f000c ldr r0, [pc, #0xC]
000c8 eb000000 bl EdbgOutputDebugString
; 574 : }
000cc e28dd008 add sp, sp, #8
000d0 e89d6000 ldmia sp, {sp, lr}
000d4 e12fff1e bx lr
000d8 |$L37703|
000d8 00000000 DCD |??_C@_01EEMJAFIK@?6?$AA@|
000dc 00000000 DCD |??_C@_03KPMNACOD@?$CFB?5?$AA@|
000e0 00000000 DCD |??_C@_09OLLBDDGO@?60x?$CFX?5?5?5?5?$AA@|
000e4 00000000 DCD |??_C@_0BJ@BLAJNKBF@Dump?5of?5?$CFu?5bytes?5?$EA?50x?$CFX?6?$AA@|
000e8 |$M37699|
ENDP ; |EdbgDumpHexBuf|
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -