//////////////////////////////////////////////////////////////////////////////
//                                                                           /
// IAR ARM ANSI C/C++ Compiler V4.11A/W32              20/Jul/2004  18:58:46 /
// Copyright 1999-2004 IAR Systems. All rights reserved.                     /
//                                                                           /
//    Cpu mode        =  arm                                                 /
//    Endian          =  little                                              /
//    Stack alignment =  4                                                   /
//    Source file     =  C:\medusa\icmp.c                                    /
//    Command line    =  -I "C:\Program Files\IAR Systems\Embedded           /
//                       Workbench 4.0\ARM\INC\" -lc C:\medusa\Debug\List\   /
//                       -la C:\medusa\Debug\List\ -o C:\medusa\Debug\Obj\   /
//                       -s2 --no_cse --no_unroll --no_inline                /
//                       --no_code_motion --no_tbaa --no_clustering          /
//                       --no_scheduling --debug --cpu_mode arm --endian     /
//                       little --cpu ARM7TDMI-S --stack_align 4 -e --fpu    /
//                       None "-D_DLIB_CONFIG_FILE=C:\Program Files\IAR      /
//                       Systems\Embedded Workbench                          /
//                       4.0\ARM\LIB\dl4tpannl8n.h" C:\medusa\icmp.c         /
//    List file       =  C:\medusa\Debug\List\icmp.s79                       /
//                                                                           /
//                                                                           /
//////////////////////////////////////////////////////////////////////////////

        NAME icmp

        RTMODEL "ARMv4M", "USED"
        RTMODEL "StackAlign4", "USED"
        RTMODEL "__cpu_mode", "__pcs__arm"
        RTMODEL "__data_model", "absolute"
        RTMODEL "__dlib_file_descriptor", "0"
        RTMODEL "__endian", "little"
        RTMODEL "__rt_version", "6"

        RSEG CSTACK:DATA:NOROOT(2)

??DataTable0 EQU 0
??DataTable1 EQU 0
??DataTable2 EQU 0
??DataTable3 EQU 0
??DataTable4 EQU 0
??DataTable5 EQU 0
??DataTable6 EQU 0
??DataTable7 EQU 0
??DataTable8 EQU 0
        PUBWEAK ?init?tab?DATA_Z
        MULTWEAK byteSwap16??rA
        MULTWEAK cliRegisterCommand??rA
        MULTWEAK clicharGetOutputBuffer??rA
        MULTWEAK clicharSendOutputBuffer??rA
        PUBLIC icmpArpReplySend
        FUNCTION icmpArpReplySend,0203H
        LOCFRAME CSTACK, 12, STACK
        PUBLIC icmpArpRequestSend
        FUNCTION icmpArpRequestSend,0203H
        LOCFRAME CSTACK, 12, STACK
        PUBLIC icmpInit
        FUNCTION icmpInit,0203H
        LOCFRAME CSTACK, 4, STACK
        FUNCTION initArpPacket,0203H
        LOCFRAME CSTACK, 28, STACK
        FUNCTION initArpReply,0203H
        LOCFRAME CSTACK, 12, STACK
        FUNCTION initArpRequest,0203H
        LOCFRAME CSTACK, 12, STACK
        MULTWEAK parseDottedQuadV4??rA
        FUNCTION sendArpHandler,0603H
        LOCFRAME CSTACK, 48, STACK
        MULTWEAK sprintf??rA
        MULTWEAK strtol??rA
        MULTWEAK swapMac??rA
        MULTWEAK zarlinkCpuMacAddrGet??rA
        MULTWEAK zarlinkEthFrameWrite??rA
        
        CFI Names cfiNames0
        CFI StackFrame CFA R13 HUGEDATA
        CFI Resource R0:32, R1:32, R2:32, R3:32, R4:32, R5:32, R6:32, R7:32
        CFI Resource R8:32, R9:32, R10:32, R11:32, R12:32, CPSR:32, R13:32
        CFI Resource R14:32, SPSR:32
        CFI VirtualResource ?RET:32
        CFI EndNames cfiNames0
        
        CFI Common cfiCommon0 Using cfiNames0
        CFI CodeAlign 4
        CFI DataAlign 4
        CFI ReturnAddress ?RET CODE
        CFI CFA R13+0
        CFI R0 Undefined
        CFI R1 Undefined
        CFI R2 Undefined
        CFI R3 Undefined
        CFI R4 SameValue
        CFI R5 SameValue
        CFI R6 SameValue
        CFI R7 SameValue
        CFI R8 SameValue
        CFI R9 SameValue
        CFI R10 SameValue
        CFI R11 SameValue
        CFI R12 Undefined
        CFI CPSR SameValue
        CFI R14 Undefined
        CFI SPSR SameValue
        CFI ?RET R14
        CFI EndCommon cfiCommon0
        
byteSwap16          SYMBOL "byteSwap16"
cliRegisterCommand  SYMBOL "cliRegisterCommand"
clicharGetOutputBuffer SYMBOL "clicharGetOutputBuffer"
clicharSendOutputBuffer SYMBOL "clicharSendOutputBuffer"
parseDottedQuadV4   SYMBOL "parseDottedQuadV4"
sprintf             SYMBOL "sprintf"
strtol              SYMBOL "strtol"
swapMac             SYMBOL "swapMac"
zarlinkCpuMacAddrGet SYMBOL "zarlinkCpuMacAddrGet"
zarlinkEthFrameWrite SYMBOL "zarlinkEthFrameWrite"
byteSwap16??rA      SYMBOL "??rA", byteSwap16
cliRegisterCommand??rA SYMBOL "??rA", cliRegisterCommand
clicharGetOutputBuffer??rA SYMBOL "??rA", clicharGetOutputBuffer
clicharSendOutputBuffer??rA SYMBOL "??rA", clicharSendOutputBuffer
parseDottedQuadV4??rA SYMBOL "??rA", parseDottedQuadV4
sprintf??rA         SYMBOL "??rA", sprintf
strtol??rA          SYMBOL "??rA", strtol
swapMac??rA         SYMBOL "??rA", swapMac
zarlinkCpuMacAddrGet??rA SYMBOL "??rA", zarlinkCpuMacAddrGet
zarlinkEthFrameWrite??rA SYMBOL "??rA", zarlinkEthFrameWrite

        EXTERN byteSwap16
        FUNCTION byteSwap16,0202H
        EXTERN cliRegisterCommand
        FUNCTION cliRegisterCommand,0202H
        EXTERN clicharGetOutputBuffer
        FUNCTION clicharGetOutputBuffer,0202H
        EXTERN clicharSendOutputBuffer
        FUNCTION clicharSendOutputBuffer,0202H
        EXTERN parseDottedQuadV4
        FUNCTION parseDottedQuadV4,0202H
        EXTERN sprintf
        FUNCTION sprintf,010202H
        EXTERN strtol
        FUNCTION strtol,010202H
        EXTERN swapMac
        FUNCTION swapMac,0202H
        EXTERN zarlinkCpuMacAddrGet
        FUNCTION zarlinkCpuMacAddrGet,0202H
        EXTERN zarlinkEthFrameWrite
        FUNCTION zarlinkEthFrameWrite,0202H


        RSEG DATA_Z:DATA:SORT:NOROOT(2)
arpReqFrameData:
        DS8 64

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock0 Using cfiCommon0
        CFI Function initArpPacket
   CODE32      
initArpPacket:
   STMDB       SP!,{R4-R9,LR}     ;; Push
        CFI ?RET Frame(CFA, -4)
        CFI R9 Frame(CFA, -8)
        CFI R8 Frame(CFA, -12)
        CFI R7 Frame(CFA, -16)
        CFI R6 Frame(CFA, -20)
        CFI R5 Frame(CFA, -24)
        CFI R4 Frame(CFA, -28)
        CFI CFA R13+28
   MOV         R4,R0
   MOV         R5,R1
   MOV         R6,R2
   MOV         R7,R3
   LDR         R0,??DataTable9    ;; arpReqFrameData
   ADDS        R1,R0,#+0xE
   MOV         R9,R1
   CMP         R5,#+0x0
   BNE         ??initArpPacket_0
   MVN         R0,#+0x0
   B           ??initArpPacket_1
??initArpPacket_0:
   MOV         R2,#+0x0
   MOV         R8,R2
??initArpPacket_2:
   CMP         R8,#+0x6
   BGE         ??initArpPacket_3
   LDR         R3,??DataTable9    ;; arpReqFrameData
   MOV         R12,#+0xFF
   STRB        R12,[R8, +R3]
   ADDS        R8,R8,#+0x1
   B           ??initArpPacket_2
??initArpPacket_3:
   LDR         LR,??DataTable9    ;; arpReqFrameData
   ADDS        R0,LR,#+0x6
   _BLF        zarlinkCpuMacAddrGet,zarlinkCpuMacAddrGet??rA
   LDR         R0,??DataTable9    ;; arpReqFrameData
   ADDS        R0,R0,#+0x6
   _BLF        swapMac,swapMac??rA
   LDR         R1,??DataTable9    ;; arpReqFrameData
   MOV         R2,#+0x8
   STRB        R2,[R1, #+12]
   LDR         R3,??DataTable9    ;; arpReqFrameData
   MOV         R12,#+0x6
   STRB        R12,[R3, #+13]
   MOV         R0,#+0x1
   _BLF        byteSwap16,byteSwap16??rA
   STRH        R0,[R9, #+0]
   MOV         R0,#+0x800
   _BLF        byteSwap16,byteSwap16??rA
   STRH        R0,[R9, #+2]
   MOV         LR,#+0x6
   STRB        LR,[R9, #+4]
   MOV         R0,#+0x4
   STRB        R0,[R9, #+5]
   MOV         R0,R4
   MOV         R0,R0, LSL #+16
   MOVS        R0,R0, LSR #+16
   _BLF        byteSwap16,byteSwap16??rA
   STRH        R0,[R9, #+6]
   CMP         R6,#+0x0
   BEQ         ??initArpPacket_4
   ADDS        R0,R9,#+0x8
   _BLF        zarlinkCpuMacAddrGet,zarlinkCpuMacAddrGet??rA
   ADDS        R0,R9,#+0x8
   _BLF        swapMac,swapMac??rA
   MOV         R1,#+0x0
   MOV         R8,R1
??initArpPacket_5:
   CMP         R8,#+0x4
   BGE         ??initArpPacket_6
   ADDS        R2,R8,R9
   LDRB        R3,[R8, +R6]
   STRB        R3,[R2, #+14]
   ADDS        R8,R8,#+0x1
   B           ??initArpPacket_5
??initArpPacket_4:
   MOV         R12,#+0x0
   MOV         R8,R12
??initArpPacket_7:
   CMP         R8,#+0x4
   BGE         ??initArpPacket_6
   ADDS        LR,R8,R9
   MOV         R0,#+0x0
   STRB        R0,[LR, #+14]
   ADDS        R8,R8,#+0x1
   B           ??initArpPacket_7
??initArpPacket_6:
   CMP         R7,#+0x0
   BEQ         ??initArpPacket_8
   ADDS        R0,R9,#+0x12
   _BLF        zarlinkCpuMacAddrGet,zarlinkCpuMacAddrGet??rA
   ADDS        R0,R9,#+0x12
   _BLF        swapMac,swapMac??rA
   MOV         R1,#+0x0
   MOV         R8,R1
??initArpPacket_9:
   CMP         R8,#+0x4
   BGE         ??initArpPacket_10
   ADDS        R2,R8,R9
   LDRB        R3,[R8, +R7]
   STRB        R3,[R2, #+24]
   ADDS        R8,R8,#+0x1
   B           ??initArpPacket_9
??initArpPacket_8:
   MOV         R12,#+0x0
   MOV         R8,R12
??initArpPacket_11:
   CMP         R8,#+0x4
   BGE         ??initArpPacket_10
   ADDS        LR,R8,R9
   MOV         R0,#+0x0
   STRB        R0,[LR, #+24]
   ADDS        R8,R8,#+0x1
   B           ??initArpPacket_11
??initArpPacket_10:
   MOV         R0,#+0x0
??initArpPacket_1:
   LDMIA       SP!,{R4-R9,PC}     ;; return
        CFI EndBlock cfiBlock0

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock1 Using cfiCommon0
        CFI Function initArpRequest
   CODE32      
initArpRequest:
   STMDB       SP!,{R4,R5,LR}     ;; Push
        CFI ?RET Frame(CFA, -4)
        CFI R5 Frame(CFA, -8)
        CFI R4 Frame(CFA, -12)
        CFI CFA R13+12
   MOV         R4,R0
   MOV         R5,R1
   MOV         R3,#+0x0
   MOV         R2,R5
   MOV         R1,R4
   MOV         R0,#+0x1
   BL          initArpPacket
   LDMIA       SP!,{R4,R5,PC}     ;; return
        CFI EndBlock cfiBlock1

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock2 Using cfiCommon0
        CFI Function initArpReply
   CODE32      
initArpReply:
   STMDB       SP!,{R4,R5,LR}     ;; Push
        CFI ?RET Frame(CFA, -4)
        CFI R5 Frame(CFA, -8)
        CFI R4 Frame(CFA, -12)
        CFI CFA R13+12
   MOV         R4,R0
   MOV         R5,R1
   MOV         R3,R5
   MOV         R2,#+0x0
   MOV         R1,R4
   MOV         R0,#+0x2
   BL          initArpPacket
   LDMIA       SP!,{R4,R5,PC}     ;; return
        CFI EndBlock cfiBlock2

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock3 Using cfiCommon0
        CFI Function icmpArpRequestSend
   CODE32      
icmpArpRequestSend:
   STMDB       SP!,{R4,R5,LR}     ;; Push
        CFI ?RET Frame(CFA, -4)
        CFI R5 Frame(CFA, -8)
        CFI R4 Frame(CFA, -12)
        CFI CFA R13+12
   MOV         R4,R0
   MOV         R5,R1
   CMP         R4,#+0x0
   BNE         ??icmpArpRequestSend_0
   MVN         R0,#+0x0
   B           ??icmpArpRequestSend_1
??icmpArpRequestSend_0:
   MOV         R1,R4
   LDR         R0,??DataTable9    ;; arpReqFrameData
   BL          initArpRequest
   CMP         R0,#+0x0
   BNE         ??icmpArpRequestSend_2
   MOV         R2,R5
   ANDS        R2,R2,#+0xFF       ;; Zero extend
   LDR         R1,??DataTable9    ;; arpReqFrameData
   MOV         R0,#+0x40
   _BLF        zarlinkEthFrameWrite,zarlinkEthFrameWrite??rA
   B           ??icmpArpRequestSend_1
??icmpArpRequestSend_2:
   MVN         R0,#+0x0
??icmpArpRequestSend_1:
   LDMIA       SP!,{R4,R5,PC}     ;; return
        CFI EndBlock cfiBlock3

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock4 Using cfiCommon0
        CFI Function icmpArpReplySend
   CODE32      
icmpArpReplySend:
   STMDB       SP!,{R4,R5,LR}     ;; Push
        CFI ?RET Frame(CFA, -4)
        CFI R5 Frame(CFA, -8)
        CFI R4 Frame(CFA, -12)
        CFI CFA R13+12
   MOV         R4,R0
   MOV         R5,R1
   CMP         R4,#+0x0
   BNE         ??icmpArpReplySend_0
   MVN         R0,#+0x0
   B           ??icmpArpReplySend_1
??icmpArpReplySend_0:
   MOV         R1,R4
   LDR         R0,??DataTable9    ;; arpReqFrameData
   BL          initArpReply
   CMP         R0,#+0x0
   BNE         ??icmpArpReplySend_2
   MOV         R2,R5
   ANDS        R2,R2,#+0xFF       ;; Zero extend
   LDR         R1,??DataTable9    ;; arpReqFrameData
   MOV         R0,#+0x40
   _BLF        zarlinkEthFrameWrite,zarlinkEthFrameWrite??rA
   B           ??icmpArpReplySend_1
??icmpArpReplySend_2:
   MVN         R0,#+0x0
??icmpArpReplySend_1:
   LDMIA       SP!,{R4,R5,PC}     ;; return
        CFI EndBlock cfiBlock4

        RSEG CODE:CODE:NOROOT(2)
   DATA        
??DataTable9:
   DC32        arpReqFrameData

        RSEG DATA_Z:DATA:SORT:NOROOT(2)
arpIp:
        DS8 4

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock5 Using cfiCommon0
        CFI Function sendArpHandler
   CODE32      
sendArpHandler:
   STMDB       SP!,{R4-R9,LR}     ;; Push
        CFI ?RET Frame(CFA, -4)
        CFI R9 Frame(CFA, -8)
        CFI R8 Frame(CFA, -12)
        CFI R7 Frame(CFA, -16)
        CFI R6 Frame(CFA, -20)
        CFI R5 Frame(CFA, -24)
        CFI R4 Frame(CFA, -28)
        CFI CFA R13+28
   SUB         SP,SP,#+0x4
        CFI CFA R13+32
   MOV         R6,R0
   MOV         R7,R1
   MOV         R8,R2
   MVN         R0,#+0x0
   MOV         R9,R0
   CMP         R6,#+0x4
   BGE         ??sendArpHandler_0
   MOV         R0,R9
   B           ??sendArpHandler_1
??sendArpHandler_0:
   MOV         R0,SP
   _BLF        clicharGetOutputBuffer,clicharGetOutputBuffer??rA
   MOV         R5,R0
   MOV         R2,#+0x10
   MOV         R1,#+0x0
   LDR         R0,[R7, #+8]
   _BLF        strtol,strtol??rA
   MOV         R4,R0
   LDR         R1,??sendArpHandler_2  ;; arpIp
   LDR         R0,[R7, #+12]
   _BLF        parseDottedQuadV4,parseDottedQuadV4??rA
   CMP         R0,#+0x0
   BNE         ??sendArpHandler_3
   LDR         R1,[R7, #+4]
   LDRB        R2,[R1, #+0]
   ANDS        R2,R2,#+0xFF       ;; Zero extend
   SUB         R2,R2,#+0x47
   CMP         R2,#+0x2A
   BHI         ??sendArpHandler_3
   ADR         R3,`?<Jumptable for sendArpHandler>_0`
   LDRB        R3,[R3, R2]
   ADD         PC,PC,R3, LSL #+2
   DATA        
`?<Jumptable for sendArpHandler>_0`:
   DC8         +0x25,+0x3F,+0x3F,+0x3F
   DC8         +0x3F,+0x3F,+0x3F,+0x3F
   DC8         +0x3F,+0x25,+0xA,+0x3F
   DC8         +0x3F,+0x3F,+0x3F,+0x3F
   DC8         +0x3F,+0x3F,+0x3F,+0x3F
   DC8         +0x3F,+0x3F,+0x3F,+0x3F
   DC8         +0x3F,+0x3F,+0x3F,+0x3F
   DC8         +0x3F,+0x3F,+0x3F,+0x3F
   DC8         +0x25,+0x3F,+0x3F,+0x3F
   DC8         +0x3F,+0x3F,+0x3F,+0x3F
   DC8         +0x3F,+0x25,+0xA,+0x0
   CODE32      
??sendArpHandler_4:
   LDR         R12,??sendArpHandler_2  ;; arpIp
   LDRB        R3,[R12, #+3]
   ANDS        R3,R3,#+0xFF       ;; Zero extend
   LDR         LR,??sendArpHandler_2  ;; arpIp
   LDRB        R2,[LR, #+2]
   ANDS        R2,R2,#+0xFF       ;; Zero extend
   LDR         R0,??sendArpHandler_2  ;; arpIp
   LDRB        R1,[R0, #+1]
   ANDS        R1,R1,#+0xFF       ;; Zero extend
   LDR         R12,??sendArpHandler_2  ;; arpIp
   LDRB        R0,[R12, #+0]
   ANDS        R0,R0,#+0xFF       ;; Zero extend
   STMDB       SP!,{R0-R3}        ;; Push
        CFI CFA R13+48
   MOV         R3,R4
   LDR         R2,[R7, #+0]
   LDR         R1,??sendArpHandler_2+4  ;; `?<Constant "%s: sending arp reque...">`
   MOV         R0,R5
   _BLF        sprintf,sprintf??rA
   ADD         SP,SP,#+0x10       ;; stack cleaning
        CFI CFA R13+32
   LDR         R1,[SP, #+0]
   MOV         R0,R5
   _BLF        clicharSendOutputBuffer,clicharSendOutputBuffer??rA
   MOV         R1,R4
   LDR         R0,??sendArpHandler_2  ;; arpIp
   BL          icmpArpRequestSend
   MOV         R9,R0
   B           ??sendArpHandler_3
??sendArpHandler_5:
   LDR         R2,??sendArpHandler_2  ;; arpIp
   LDRB        R3,[R2, #+3]
   ANDS        R3,R3,#+0xFF       ;; Zero extend
   LDR         LR,??sendArpHandler_2  ;; arpIp
   LDRB        R2,[LR, #+2]
   ANDS        R2,R2,#+0xFF       ;; Zero extend
   LDR         R0,??sendArpHandler_2  ;; arpIp
   LDRB        R1,[R0, #+1]
   ANDS        R1,R1,#+0xFF       ;; Zero extend
   LDR         R12,??sendArpHandler_2  ;; arpIp
   LDRB        R0,[R12, #+0]
   ANDS        R0,R0,#+0xFF       ;; Zero extend
   STMDB       SP!,{R0-R3}        ;; Push
        CFI CFA R13+48
   MOV         R3,R4
   LDR         R2,[R7, #+0]
   LDR         R1,??sendArpHandler_2+8  ;; `?<Constant "%s: sending arp reply...">`
   MOV         R0,R5
   _BLF        sprintf,sprintf??rA
   ADD         SP,SP,#+0x10       ;; stack cleaning
        CFI CFA R13+32
   LDR         R1,[SP, #+0]
   MOV         R0,R5
   _BLF        clicharSendOutputBuffer,clicharSendOutputBuffer??rA
   MOV         R1,R4
   LDR         R0,??sendArpHandler_2  ;; arpIp
   BL          icmpArpReplySend
   MOV         R9,R0
??sendArpHandler_3:
   MOV         R0,R9
??sendArpHandler_1:
   ADD         SP,SP,#+0x4        ;; stack cleaning
        CFI CFA R13+28
   LDMIA       SP!,{R4-R9,PC}     ;; return
   DATA        
??sendArpHandler_2:
   DC32        arpIp
   DC32        `?<Constant "%s: sending arp reque...">`
   DC32        `?<Constant "%s: sending arp reply...">`
        CFI EndBlock cfiBlock5

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock6 Using cfiCommon0
        CFI Function icmpInit
   CODE32      
icmpInit:
   STMDB       SP!,{LR}           ;; Push
        CFI ?RET Frame(CFA, -4)
        CFI CFA R13+4
   LDR         R2,??icmpInit_0    ;; `?<Constant "arp [re(q)uest | re(p...">`
   LDR         R1,??icmpInit_0+4  ;; sendArpHandler
   LDR         R0,??icmpInit_0+8  ;; `?<Constant "arp">`
   _BLF        cliRegisterCommand,cliRegisterCommand??rA
   MOV         R0,#+0x0
   LDMIA       SP!,{PC}           ;; return
   DATA        
??icmpInit_0:
   DC32        `?<Constant "arp [re(q)uest | re(p...">`
   DC32        sendArpHandler
   DC32        `?<Constant "arp">`
        CFI EndBlock cfiBlock6

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock7 Using cfiCommon0
        CFI NoFunction
   CODE32      
zarlinkCpuMacAddrGet??rA:
   LDR         R12,??Subroutine0_0  ;; zarlinkCpuMacAddrGet
   MOV         PC,R12
   DATA        
??Subroutine0_0:
   DC32        zarlinkCpuMacAddrGet
        CFI EndBlock cfiBlock7

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock8 Using cfiCommon0
        CFI NoFunction
   CODE32      
swapMac??rA:
   LDR         R12,??Subroutine1_0  ;; swapMac
   MOV         PC,R12
   DATA        
??Subroutine1_0:
   DC32        swapMac
        CFI EndBlock cfiBlock8

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock9 Using cfiCommon0
        CFI NoFunction
   CODE32      
byteSwap16??rA:
   LDR         R12,??Subroutine2_0  ;; byteSwap16
   MOV         PC,R12
   DATA        
??Subroutine2_0:
   DC32        byteSwap16
        CFI EndBlock cfiBlock9

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock10 Using cfiCommon0
        CFI NoFunction
   CODE32      
zarlinkEthFrameWrite??rA:
   LDR         R12,??Subroutine3_0  ;; zarlinkEthFrameWrite
   MOV         PC,R12
   DATA        
??Subroutine3_0:
   DC32        zarlinkEthFrameWrite
        CFI EndBlock cfiBlock10

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock11 Using cfiCommon0
        CFI NoFunction
   CODE32      
clicharGetOutputBuffer??rA:
   LDR         R12,??Subroutine4_0  ;; clicharGetOutputBuffer
   MOV         PC,R12
   DATA        
??Subroutine4_0:
   DC32        clicharGetOutputBuffer
        CFI EndBlock cfiBlock11

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock12 Using cfiCommon0
        CFI NoFunction
   CODE32      
strtol??rA:
   LDR         R12,??Subroutine5_0  ;; strtol
   MOV         PC,R12
   DATA        
??Subroutine5_0:
   DC32        strtol
        CFI EndBlock cfiBlock12

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock13 Using cfiCommon0
        CFI NoFunction
   CODE32      
parseDottedQuadV4??rA:
   LDR         R12,??Subroutine6_0  ;; parseDottedQuadV4
   MOV         PC,R12
   DATA        
??Subroutine6_0:
   DC32        parseDottedQuadV4
        CFI EndBlock cfiBlock13

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock14 Using cfiCommon0
        CFI NoFunction
   CODE32      
sprintf??rA:
   LDR         R12,??Subroutine7_0  ;; sprintf
   MOV         PC,R12
   DATA        
??Subroutine7_0:
   DC32        sprintf
        CFI EndBlock cfiBlock14

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock15 Using cfiCommon0
        CFI NoFunction
   CODE32      
clicharSendOutputBuffer??rA:
   LDR         R12,??Subroutine8_0  ;; clicharSendOutputBuffer
   MOV         PC,R12
   DATA        
??Subroutine8_0:
   DC32        clicharSendOutputBuffer
        CFI EndBlock cfiBlock15

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock16 Using cfiCommon0
        CFI NoFunction
   CODE32      
cliRegisterCommand??rA:
   LDR         R12,??Subroutine9_0  ;; cliRegisterCommand
   MOV         PC,R12
   DATA        
??Subroutine9_0:
   DC32        cliRegisterCommand
        CFI EndBlock cfiBlock16

        RSEG INITTAB:CODE:ROOT(2)
   DATA
?init?tab?DATA_Z:
   DCD      sfe(DATA_Z) - sfb(DATA_Z), sfb(DATA_Z), sfb(DATA_Z)

        RSEG DATA_C:CONST:SORT:NOROOT(2)
`?<Constant "%s: sending arp reque...">`:
        DC8 25H, 73H, 3AH, 20H, 73H, 65H, 6EH, 64H
        DC8 69H, 6EH, 67H, 20H, 61H, 72H, 70H, 20H
        DC8 72H, 65H, 71H, 75H, 65H, 73H, 74H, 20H
        DC8 6FH, 6EH, 20H, 70H, 6FH, 72H, 74H, 20H
        DC8 5BH, 25H, 30H, 32H, 78H, 5DH, 20H, 66H
        DC8 6FH, 72H, 20H, 49H, 50H, 20H, 25H, 30H
        DC8 32H, 64H, 20H, 25H, 30H, 32H, 64H, 20H
        DC8 25H, 30H, 32H, 64H, 20H, 25H, 30H, 32H
        DC8 64H, 0DH, 0AH, 0

        RSEG DATA_C:CONST:SORT:NOROOT(2)
`?<Constant "%s: sending arp reply...">`:
        DC8 25H, 73H, 3AH, 20H, 73H, 65H, 6EH, 64H
        DC8 69H, 6EH, 67H, 20H, 61H, 72H, 70H, 20H
        DC8 72H, 65H, 70H, 6CH, 79H, 20H, 28H, 67H
        DC8 72H, 61H, 74H, 29H, 20H, 6FH, 6EH, 20H
        DC8 70H, 6FH, 72H, 74H, 20H, 5BH, 25H, 30H
        DC8 32H, 78H, 5DH, 20H, 66H, 6FH, 72H, 20H
        DC8 49H, 50H, 20H, 25H, 30H, 32H, 64H, 20H
        DC8 25H, 30H, 32H, 64H, 20H, 25H, 30H, 32H
        DC8 64H, 20H, 25H, 30H, 32H, 64H, 0DH, 0AH
        DC8 0
        DC8 0, 0, 0

        RSEG DATA_C:CONST:SORT:NOROOT(2)
`?<Constant "arp">`:
        DC8 "arp"

        RSEG DATA_C:CONST:SORT:NOROOT(2)
`?<Constant "arp [re(q)uest | re(p...">`:
        DC8 61H, 72H, 70H, 20H, 5BH, 72H, 65H, 28H
        DC8 71H, 29H, 75H, 65H, 73H, 74H, 20H, 7CH
        DC8 20H, 72H, 65H, 28H, 70H, 29H, 6CH, 79H
        DC8 2CH, 20H, 28H, 67H, 29H, 72H, 61H, 74H
        DC8 5DH, 20H, 5BH, 70H, 6FH, 72H, 74H, 5DH
        DC8 20H, 5BH, 49H, 50H, 20H, 41H, 64H, 64H
        DC8 72H, 5DH, 0
        DC8 0

        END
// 
// 1 200 bytes in segment CODE
//   200 bytes in segment DATA_C
//    68 bytes in segment DATA_Z
//    12 bytes in segment INITTAB
// 
// 1 080 bytes of CODE  memory (+ 132 bytes shared)
//   200 bytes of CONST memory
//    68 bytes of DATA  memory
//
//Errors: none
//Warnings: 4
