📄 halether.cod
字号:
|??_C@_0BI@FLGOJLAM@pPeerAddr?5IP?3?5?5?5?5?5?5?$CFs?$AN?6?$AA@| DCB "pPe"
DCB "erAddr IP: %s", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0BI@NFHFGFIB@pPeerAddr?5wMAC?$FL0?$FN?3?5?$CFx?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BI@NFHFGFIB@pPeerAddr?5wMAC?$FL0?$FN?3?5?$CFx?$AN?6?$AA@| DCB "pP"
DCB "eerAddr wMAC[0]: %x", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0BI@MCAOHBMC@pPeerAddr?5wMAC?$FL1?$FN?3?5?$CFx?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BI@MCAOHBMC@pPeerAddr?5wMAC?$FL1?$FN?3?5?$CFx?$AN?6?$AA@| DCB "pP"
DCB "eerAddr wMAC[1]: %x", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0BI@PLIDENAH@pPeerAddr?5wMAC?$FL2?$FN?3?5?$CFx?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BI@PLIDENAH@pPeerAddr?5wMAC?$FL2?$FN?3?5?$CFx?$AN?6?$AA@| DCB "pP"
DCB "eerAddr wMAC[2]: %x", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0BI@OBDJKKBN@pPeerAddr?5wPort?3?5?5?5?$CFx?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BI@OBDJKKBN@pPeerAddr?5wPort?3?5?5?5?$CFx?$AN?6?$AA@| DCB "pPeerA"
DCB "ddr wPort: %x", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0BI@BDAHAKAJ@ppBufferPool?3?5?5?5?5?5?5?$CFx?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BI@BDAHAKAJ@ppBufferPool?3?5?5?5?5?5?5?$CFx?$AN?6?$AA@| DCB "ppBu"
DCB "fferPool: %x", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0BA@BDGPAKIF@EDBG_SVC_KDBG?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BA@BDGPAKIF@EDBG_SVC_KDBG?$AN?6?$AA@| DCB "EDBG_SVC_KDBG", 0xd, 0xa
DCB 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0BI@OFFGIMI@OEMEthQueryClientInfo?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BI@OFFGIMI@OEMEthQueryClientInfo?$AN?6?$AA@| DCB "OEMEthQueryClie"
DCB "ntInfo", 0xd, 0xa, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMEthQueryClientInfo| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMEthQueryClientInfo| PROC
; 546 : {
00000 |$L15883|
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 |$M15881|
00004 e1a07003 mov r7, r3
00008 e1a05002 mov r5, r2
0000c e1a06001 mov r6, r1
00010 e1a04000 mov r4, r0
; 547 : EdbgOutputDebugString("OEMEthQueryClientInfo\r\n");
00014 e59f0204 ldr r0, [pc, #0x204]
00018 eb000000 bl EdbgOutputDebugString
; 548 :
; 549 : // We use the default window size (8) for all services
; 550 : *pWindowSize = EDBG_WINDOW_SIZE;
0001c e3a03008 mov r3, #8
00020 e5c53000 strb r3, [r5]
; 551 :
; 552 : switch (Service)
00024 e1b02004 movs r2, r4
00028 0a000046 beq |$L15646|
0002c e3520001 cmp r2, #1
00030 0a000024 beq |$L15665|
00034 e3520002 cmp r2, #2
00038 0a000002 beq |$L15678|
0003c |$L15880|
; 597 : default:
; 598 : return FALSE;
0003c e3a00000 mov r0, #0
; 601 : }
00040 e8bd40f0 ldmia sp!, {r4 - r7, lr}
00044 e12fff1e bx lr
00048 |$L15678|
; 583 : case EDBG_SVC_KDBG:
; 584 : EdbgOutputDebugString("EDBG_SVC_KDBG\r\n");
00048 e59f01cc ldr r0, [pc, #0x1CC]
0004c eb000000 bl EdbgOutputDebugString
; 585 : if (! (pDriverGlobals->eth.etherFlags & EDBG_FL_KDBG)) {
00050 e59f31a8 ldr r3, [pc, #0x1A8]
00054 e5d33000 ldrb r3, [r3]
00058 e3130004 tst r3, #4
; 586 : return FALSE;
0005c 0afffff6 beq |$L15880|
; 587 : }
; 588 : memcpy(pPeerAddr, (void *)&pDriverGlobals->eth.KdbgHostAddr,sizeof(EDBG_ADDR));
00060 e59f21b0 ldr r2, [pc, #0x1B0]
00064 e5923000 ldr r3, [r2]
00068 e5863000 str r3, [r6]
0006c e5923004 ldr r3, [r2, #4]
; 589 : EdbgOutputDebugString("pPeerAddr IP: %s\r\n", inet_ntoa(pPeerAddr->dwIP));
00070 e5960000 ldr r0, [r6]
00074 e5863004 str r3, [r6, #4]
00078 e5923008 ldr r3, [r2, #8]
0007c e5863008 str r3, [r6, #8]
00080 eb000000 bl inet_ntoa
00084 e1a01000 mov r1, r0
00088 e59f0168 ldr r0, [pc, #0x168]
0008c eb000000 bl EdbgOutputDebugString
; 590 : EdbgOutputDebugString("pPeerAddr wMAC[0]: %x\r\n", (unsigned long)(pPeerAddr->wMAC[0]));
00090 e1d610b4 ldrh r1, [r6, #4]
00094 e59f0158 ldr r0, [pc, #0x158]
00098 eb000000 bl EdbgOutputDebugString
; 591 : EdbgOutputDebugString("pPeerAddr wMAC[1]: %x\r\n", (unsigned long)(pPeerAddr->wMAC[1]));
0009c e1d610b6 ldrh r1, [r6, #6]
000a0 e59f0148 ldr r0, [pc, #0x148]
000a4 eb000000 bl EdbgOutputDebugString
; 592 : EdbgOutputDebugString("pPeerAddr wMAC[2]: %x\r\n", (unsigned long)(pPeerAddr->wMAC[2]));
000a8 e1d610b8 ldrh r1, [r6, #8]
000ac e59f0138 ldr r0, [pc, #0x138]
000b0 eb000000 bl EdbgOutputDebugString
; 593 : EdbgOutputDebugString("pPeerAddr wPort: %x\r\n", (unsigned long)(pPeerAddr->wPort));
000b4 e1d610ba ldrh r1, [r6, #0xA]
000b8 e59f0128 ldr r0, [pc, #0x128]
000bc eb000000 bl EdbgOutputDebugString
; 594 : *ppBufferPool = (UCHAR *)EDBG_VIRTUAL_MEMORY + 2*EDBG_DFLT_BUFFER_POOL_SIZE;
; 595 : EdbgOutputDebugString("ppBufferPool: %x\r\n", (unsigned long)(*ppBufferPool));
000c0 e59f314c ldr r3, [pc, #0x14C]
; 596 : break;
000c4 ea00003f b |$L15879|
000c8 |$L15665|
; 568 : break;
; 569 : case EDBG_SVC_PPSH:
; 570 : EdbgOutputDebugString("EDBG_SVC_PPSH\r\n");
000c8 e59f0140 ldr r0, [pc, #0x140]
000cc eb000000 bl EdbgOutputDebugString
; 571 : if (! (pDriverGlobals->eth.etherFlags & EDBG_FL_PPSH)) {
000d0 e59f3128 ldr r3, [pc, #0x128]
000d4 e5d33000 ldrb r3, [r3]
000d8 e3130002 tst r3, #2
; 572 : return FALSE;
000dc 0affffd6 beq |$L15880|
; 573 : }
; 574 : memcpy(pPeerAddr, (void *)&pDriverGlobals->eth.PpshHostAddr,sizeof(EDBG_ADDR));
000e0 e59f2124 ldr r2, [pc, #0x124]
000e4 e5923000 ldr r3, [r2]
000e8 e5863000 str r3, [r6]
000ec e5923004 ldr r3, [r2, #4]
; 575 : EdbgOutputDebugString("pPeerAddr IP: %s\r\n", inet_ntoa(pPeerAddr->dwIP));
000f0 e5960000 ldr r0, [r6]
000f4 e5863004 str r3, [r6, #4]
000f8 e5923008 ldr r3, [r2, #8]
000fc e5863008 str r3, [r6, #8]
00100 eb000000 bl inet_ntoa
00104 e1a01000 mov r1, r0
00108 e59f00e8 ldr r0, [pc, #0xE8]
0010c eb000000 bl EdbgOutputDebugString
; 576 : EdbgOutputDebugString("pPeerAddr wMAC[0]: %x\r\n", (unsigned long)(pPeerAddr->wMAC[0]));
00110 e1d610b4 ldrh r1, [r6, #4]
00114 e59f00d8 ldr r0, [pc, #0xD8]
00118 eb000000 bl EdbgOutputDebugString
; 577 : EdbgOutputDebugString("pPeerAddr wMAC[1]: %x\r\n", (unsigned long)(pPeerAddr->wMAC[1]));
0011c e1d610b6 ldrh r1, [r6, #6]
00120 e59f00c8 ldr r0, [pc, #0xC8]
00124 eb000000 bl EdbgOutputDebugString
; 578 : EdbgOutputDebugString("pPeerAddr wMAC[2]: %x\r\n", (unsigned long)(pPeerAddr->wMAC[2]));
00128 e1d610b8 ldrh r1, [r6, #8]
0012c e59f00b8 ldr r0, [pc, #0xB8]
00130 eb000000 bl EdbgOutputDebugString
; 579 : EdbgOutputDebugString("pPeerAddr wPort: %x\r\n", (unsigned long)(pPeerAddr->wPort));
00134 e1d610ba ldrh r1, [r6, #0xA]
00138 e59f00a8 ldr r0, [pc, #0xA8]
0013c eb000000 bl EdbgOutputDebugString
; 580 : *ppBufferPool = (UCHAR *)EDBG_VIRTUAL_MEMORY + EDBG_DFLT_BUFFER_POOL_SIZE;
; 581 : EdbgOutputDebugString("ppBufferPool: %x\r\n", (unsigned long)(*ppBufferPool));
00140 e59f30c0 ldr r3, [pc, #0xC0]
; 582 : break;
00144 ea00001f b |$L15879|
00148 |$L15646|
; 553 : {
; 554 : // Check the flag in driver globals (set by eboot when it receives the JUMPIMG command)
; 555 : case EDBG_SVC_DBGMSG:
; 556 : EdbgOutputDebugString("EDBG_SVC_DBGMSG\r\n");
00148 e59f00b4 ldr r0, [pc, #0xB4]
0014c eb000000 bl EdbgOutputDebugString
; 557 : if (! (pDriverGlobals->eth.etherFlags & EDBG_FL_DBGMSG)) {
00150 e59f30a8 ldr r3, [pc, #0xA8]
00154 e5d33000 ldrb r3, [r3]
00158 e3130001 tst r3, #1
; 558 : return FALSE;
0015c 0affffb6 beq |$L15880|
; 559 : }
; 560 : memcpy(pPeerAddr, (void *)&pDriverGlobals->eth.DbgHostAddr,sizeof(EDBG_ADDR));
00160 e59f2094 ldr r2, [pc, #0x94]
00164 e5923000 ldr r3, [r2]
00168 e5863000 str r3, [r6]
0016c e5923004 ldr r3, [r2, #4]
; 561 : EdbgOutputDebugString("pPeerAddr IP: %s\r\n", inet_ntoa(pPeerAddr->dwIP));
00170 e5960000 ldr r0, [r6]
00174 e5863004 str r3, [r6, #4]
00178 e5923008 ldr r3, [r2, #8]
0017c e5863008 str r3, [r6, #8]
00180 eb000000 bl inet_ntoa
00184 e1a01000 mov r1, r0
00188 e59f0068 ldr r0, [pc, #0x68]
0018c eb000000 bl EdbgOutputDebugString
; 562 : EdbgOutputDebugString("pPeerAddr wMAC[0]: %x\r\n", (unsigned long)(pPeerAddr->wMAC[0]));
00190 e1d610b4 ldrh r1, [r6, #4]
00194 e59f0058 ldr r0, [pc, #0x58]
00198 eb000000 bl EdbgOutputDebugString
; 563 : EdbgOutputDebugString("pPeerAddr wMAC[1]: %x\r\n", (unsigned long)(pPeerAddr->wMAC[1]));
0019c e1d610b6 ldrh r1, [r6, #6]
001a0 e59f0048 ldr r0, [pc, #0x48]
001a4 eb000000 bl EdbgOutputDebugString
; 564 : EdbgOutputDebugString("pPeerAddr wMAC[2]: %x\r\n", (unsigned long)(pPeerAddr->wMAC[2]));
001a8 e1d610b8 ldrh r1, [r6, #8]
001ac e59f0038 ldr r0, [pc, #0x38]
001b0 eb000000 bl EdbgOutputDebugString
; 565 : EdbgOutputDebugString("pPeerAddr wPort: %x\r\n", (unsigned long)(pPeerAddr->wPort));
001b4 e1d610ba ldrh r1, [r6, #0xA]
001b8 e59f0028 ldr r0, [pc, #0x28]
001bc eb000000 bl EdbgOutputDebugString
; 566 : *ppBufferPool = (UCHAR *)EDBG_VIRTUAL_MEMORY;
; 567 : EdbgOutputDebugString("ppBufferPool: %x\r\n", (unsigned long)(*ppBufferPool));
001c0 e3a03102 mov r3, #2, 2
001c4 e3833701 orr r3, r3, #1, 14
001c8 |$L15879|
001c8 e59f0014 ldr r0, [pc, #0x14]
001cc e1a01003 mov r1, r3
001d0 e5873000 str r3, [r7]
001d4 eb000000 bl EdbgOutputDebugString
; 599 : }
; 600 : return TRUE;
001d8 e3a00001 mov r0, #1
; 601 : }
001dc e8bd40f0 ldmia sp!, {r4 - r7, lr}
001e0 e12fff1e bx lr
001e4 |$L15886|
001e4 00000000 DCD |??_C@_0BI@BDAHAKAJ@ppBufferPool?3?5?5?5?5?5?5?$CFx?$AN?6?$AA@|
001e8 00000000 DCD |??_C@_0BI@OBDJKKBN@pPeerAddr?5wPort?3?5?5?5?$CFx?$AN?6?$AA@|
001ec 00000000 DCD |??_C@_0BI@PLIDENAH@pPeerAddr?5wMAC?$FL2?$FN?3?5?$CFx?$AN?6?$AA@|
001f0 00000000 DCD |??_C@_0BI@MCAOHBMC@pPeerAddr?5wMAC?$FL1?$FN?3?5?$CFx?$AN?6?$AA@|
001f4 00000000 DCD |??_C@_0BI@NFHFGFIB@pPeerAddr?5wMAC?$FL0?$FN?3?5?$CFx?$AN?6?$AA@|
001f8 00000000 DCD |??_C@_0BI@FLGOJLAM@pPeerAddr?5IP?3?5?5?5?5?5?5?$CFs?$AN?6?$AA@|
001fc a0008834 DCD 0xa0008834
00200 a0008805 DCD 0xa0008805
00204 00000000 DCD |??_C@_0BC@FADONGHL@EDBG_SVC_DBGMSG?$AN?6?$AA@|
00208 80045f00 DCD 0x80045f00
0020c a000884c DCD 0xa000884c
00210 00000000 DCD |??_C@_0BA@OLBCCMFI@EDBG_SVC_PPSH?$AN?6?$AA@|
00214 8004be00 DCD 0x8004be00
00218 a0008840 DCD 0xa0008840
0021c 00000000 DCD |??_C@_0BA@BDGPAKIF@EDBG_SVC_KDBG?$AN?6?$AA@|
00220 00000000 DCD |??_C@_0BI@OFFGIMI@OEMEthQueryClientInfo?$AN?6?$AA@|
00224 |$M15882|
ENDP ; |OEMEthQueryClientInfo|
EXPORT |OEMEthGetSecs|
EXPORT |??_C@_0DG@BEEKIGEB@?$CB?5Time?5went?5backwards?5?$CIor?5wrappe@| [ DATA ] ; `string'
IMPORT |GetSystemTimeInMsec|
00008 AREA |.bss|, NOINIT
|dwLastTime| % 0x4
00000 AREA |.text| { |OEMEthGetSecs| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMEthGetSecs|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMEthGetSecs| } ; comdat associative
|$T15895| DCD |$L15894|
DCD 0x40001201
00000 AREA |.rdata| { |??_C@_0DG@BEEKIGEB@?$CB?5Time?5went?5backwards?5?$CIor?5wrappe@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DG@BEEKIGEB@?$CB?5Time?5went?5backwards?5?$CIor?5wrappe@| DCB "! "
DCB "Time went backwards (or wrapped): cur: %u, last %u", 0xa
DCB 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMEthGetSecs| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMEthGetSecs| PROC
; 614 : {
00000 |$L15894|
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 |$M15892|
; 615 : DWORD dwSt;
; 616 : DWORD dwRet;
; 617 :
; 618 : dwSt=GetSystemTimeInMsec(); /* Get system time in msec */
00004 eb000000 bl GetSystemTimeInMsec
; 619 : dwRet = dwSt/1000; /*(change msec to sec)*/
00008 e59f3034 ldr r3, [pc, #0x34]
; 620 :
; 621 : if (dwRet < dwLastTime) {
0000c e59f502c ldr r5, [pc, #0x2C]
00010 e0831390 umull r1, r3, r0, r3
00014 e5952000 ldr r2, [r5]
00018 e1a04323 mov r4, r3, lsr #6
0001c e1540002 cmp r4, r2
; 622 : EdbgOutputDebugString("! Time went backwards (or wrapped): cur: %u, last %u\n",
; 623 : dwRet,dwLastTime);
00020 359f0014 ldrcc r0, [pc, #0x14]
00024 31a01004 movcc r1, r4
00028 3b000000 blcc EdbgOutputDebugString
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -