// File: dguglielmi[P]dlan-linux-software/tools/../common/hpmmes.h
// Function: HomePlugMMEs::CDispatcher::Dispatch(CMACAddress const&, IPacket const&)
virtual bool Dispatch(const CMACAddress& adapter, const IPacket& pkt)
    {
      if(CMACHeader::IsValid(pkt, uEtherType))
      {
        if(SetNetworkEncKey::CConfirm::IsValid(pkt))
          OnSetNetworkEncKeyConfirm(adapter, SetNetworkEncKey::CConfirm(pkt));
        else if(ParamsAndStats::CResponse::IsValid(pkt))
          OnParamsAndStatsResponse(adapter, ParamsAndStats::CResponse(pkt));
        else if(Int51NetStat::CResponse::IsValid(pkt))
          OnInt51NetStatResponse(adapter, Int51NetStat::CResponse(pkt));
        else if(TurboDeviceDescription::CResponse::IsValid(pkt))
          OnTurboDeviceDescriptionResponse(adapter, TurboDeviceDescription::CResponse(pkt));
        else if(TurboChannelCapacities::CResponse::IsValid(pkt))
          OnTurboChannelCapacitiesResponse(adapter, TurboChannelCapacities::CResponse(pkt));
        else
          OnUnknownMme(adapter, pkt);

        return true;
      }
      else
        return false;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2d0, %rsp            # imm = 0x2D0
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x2a0(%rbp)
movq -0x20(%rbp), %rdi
movl $0x887b, %esi           # imm = 0x887B
callq 0xb810
testb $0x1, %al
jne 0x7639
jmp 0x77bc
movq -0x20(%rbp), %rdi
callq 0xb870
testb $0x1, %al
jne 0x7648
jmp 0x767d
movq -0x18(%rbp), %rax
movq %rax, -0x2a8(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x31(%rbp), %rdi
callq 0xb8a0
movq -0x2a0(%rbp), %rdi
movq -0x2a8(%rbp), %rsi
movq (%rdi), %rax
leaq -0x31(%rbp), %rdx
callq *0x8(%rax)
jmp 0x77b6
movq -0x20(%rbp), %rdi
callq 0xb8e0
testb $0x1, %al
jne 0x768c
jmp 0x76c1
movq -0x18(%rbp), %rax
movq %rax, -0x2b0(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x58(%rbp), %rdi
callq 0xb910
movq -0x2a0(%rbp), %rdi
movq -0x2b0(%rbp), %rsi
movq (%rdi), %rax
leaq -0x58(%rbp), %rdx
callq *0x10(%rax)
jmp 0x77b4
movq -0x20(%rbp), %rdi
callq 0xb950
testb $0x1, %al
jne 0x76d0
jmp 0x770b
movq -0x18(%rbp), %rax
movq %rax, -0x2b8(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x124(%rbp), %rdi
callq 0xb9b0
movq -0x2a0(%rbp), %rdi
movq -0x2b8(%rbp), %rsi
movq (%rdi), %rax
leaq -0x124(%rbp), %rdx
callq *0x18(%rax)
jmp 0x77b2
movq -0x20(%rbp), %rdi
callq 0xb9f0
testb $0x1, %al
jne 0x771a
jmp 0x7752
movq -0x18(%rbp), %rax
movq %rax, -0x2c0(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x17f(%rbp), %rdi
callq 0xba20
movq -0x2a0(%rbp), %rdi
movq -0x2c0(%rbp), %rsi
movq (%rdi), %rax
leaq -0x17f(%rbp), %rdx
callq *0x20(%rax)
jmp 0x77b0
movq -0x20(%rbp), %rdi
callq 0xba60
testb $0x1, %al
jne 0x7761
jmp 0x7799
movq -0x18(%rbp), %rax
movq %rax, -0x2c8(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x294(%rbp), %rdi
callq 0xba90
movq -0x2a0(%rbp), %rdi
movq -0x2c8(%rbp), %rsi
movq (%rdi), %rax
leaq -0x294(%rbp), %rdx
callq *0x28(%rax)
jmp 0x77ae
movq -0x2a0(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movq (%rdi), %rax
callq *0x30(%rax)
jmp 0x77b0
jmp 0x77b2
jmp 0x77b4
jmp 0x77b6
movb $0x1, -0x1(%rbp)
jmp 0x77c0
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x2d0, %rsp            # imm = 0x2D0
popq %rbp
retq
nop