// File: pxzwxx[P]SynBS/./serverFile/./CELLEpollServer.hpp
// Function: CELLEpollServer::ProcessNetMsg(CELLClient*, netmsg_DataHeader*)
virtual void ProcessNetMsg(CELLClient* pClient, netmsg_DataHeader* header) {
        switch (header->cmd) {
            case CMD_LOGIN: {
                netmsg_Login* login = (netmsg_Login*)header;
                if (_bCheckMsgID) {
                    if (login->msgID != pClient->_nRecvMsgID) {
                        printf("OnNetMsg socket<%d> msgID<%d> _nRecvMsgID<%d>\n",pClient->sockfd(), login->msgID, pClient->_nRecvMsgID);
						Log::INFO("OnNetMsg socket<%d> msgID<%d> _nRecvMsgID<%d>\n",pClient->sockfd(), login->msgID, pClient->_nRecvMsgID);("OnNetMsg socket<%d> msgID<%d> _nRecvMsgID<%d>\n",pClient->sockfd(), login->msgID, pClient->_nRecvMsgID);
                    }
                    ++pClient->_nRecvMsgID;
                }
                if (_bSendBack) {
                    netmsg_LoginR ret;
                    ret.msgID = pClient->_nSendMsgID;
                    if (SOCKET_ERROR == pClient->SendData2Buffer(&ret)) {
                        if (_bSendFull) {
                            printf("<socket=%d> Send Full\n", pClient->sockfd());
							Log::INFO("<socket=%d> Send Full\n", pClient->sockfd());
                        }
                    }
                    else {
						_ep.ctl(EPOLL_CTL_MOD, pClient, EPOLLIN | EPOLLOUT); //有消息可以写，修改文件描述符可写
                        ++pClient->_nSendMsgID;
                    }
                }
            }break;

            case CMD_LOGOUT: {
                netmsg_Logout* logout = (netmsg_Logout*)header;
                Log::INFO("recv <Socket=%d> msgType：CMD_LOGOUT, dataLen：%d,userName=%s \n", pClient->sockfd(), logout->dataLength, logout->userName);
            }break;

            case CMD_C2S_HEART: {
                netmsg_s2c_Heart ret;
                pClient->SendData2Buffer(&ret);
            }

            default: {
                Log::WARN("recv <socket=%d> undefine msgType,dataLen：%d\n", pClient->sockfd(), header->dataLength);
            }break;

        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x18(%rbp), %rax
movzwl 0x2(%rax), %eax
movl %eax, -0x98(%rbp)
testl %eax, %eax
je 0x7f2b
jmp 0x7f06
movl -0x98(%rbp), %eax
subl $0x2, %eax
je 0x806e
jmp 0x7f17
movl -0x98(%rbp), %eax
subl $0x5, %eax
je 0x80aa
jmp 0x80c6
movq -0xa0(%rbp), %rax
movq -0x18(%rbp), %rcx
movq %rcx, -0x20(%rbp)
testb $0x1, 0x178(%rax)
je 0x7fb5
movq -0x20(%rbp), %rax
movl 0x60(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl 0x4c(%rcx), %eax
je 0x7fa8
movq -0x10(%rbp), %rdi
callq 0x5510
movl %eax, %esi
movq -0x20(%rbp), %rax
movl 0x60(%rax), %edx
movq -0x10(%rbp), %rax
movl 0x4c(%rax), %ecx
leaq 0x74d7(%rip), %rdi      # 0xf44a
movb $0x0, %al
callq 0x3050
movq -0x10(%rbp), %rdi
callq 0x5510
movl %eax, %esi
movq -0x20(%rbp), %rax
movl 0x60(%rax), %edx
movq -0x10(%rbp), %rax
movl 0x4c(%rax), %ecx
leaq 0x74b0(%rip), %rdi      # 0xf44a
callq 0x9440
movq -0x10(%rbp), %rdi
callq 0x5510
movq -0x10(%rbp), %rax
movl 0x4c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x4c(%rax)
movq -0xa0(%rbp), %rax
testb $0x1, 0x179(%rax)
je 0x806c
leaq -0x84(%rbp), %rdi
callq 0x9650
movq -0x10(%rbp), %rax
movl 0x50(%rax), %eax
movl %eax, -0x24(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x84(%rbp), %rsi
callq 0x9690
movl %eax, %ecx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpl %ecx, %eax
jne 0x803c
movq -0xa0(%rbp), %rax
testb $0x1, 0x17a(%rax)
je 0x803a
movq -0x10(%rbp), %rdi
callq 0x5510
movl %eax, %esi
leaq 0x745d(%rip), %rdi      # 0xf479
movb $0x0, %al
callq 0x3050
movq -0x10(%rbp), %rdi
callq 0x5510
movl %eax, %esi
leaq 0x7444(%rip), %rdi      # 0xf479
callq 0x5310
jmp 0x806a
movq -0xa0(%rbp), %rdi
addq $0x180, %rdi            # imm = 0x180
movq -0x10(%rbp), %rdx
movl $0x3, %esi
movl $0x5, %ecx
callq 0x8940
movq -0x10(%rbp), %rax
movl 0x50(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x50(%rax)
jmp 0x806c
jmp 0x80e4
movq -0x18(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x10(%rbp), %rdi
callq 0x5510
movl %eax, %esi
movq -0x90(%rbp), %rax
movw (%rax), %ax
movq -0x90(%rbp), %rcx
addq $0x4, %rcx
leaq 0x73f0(%rip), %rdi      # 0xf490
movzwl %ax, %edx
callq 0x96e0
jmp 0x80e4
leaq -0x94(%rbp), %rdi
callq 0x98f0
movq -0x10(%rbp), %rdi
leaq -0x94(%rbp), %rsi
callq 0x9690
movq -0x10(%rbp), %rdi
callq 0x5510
movl %eax, %esi
movq -0x18(%rbp), %rax
leaq 0x73f6(%rip), %rdi      # 0xf4d2
movzwl (%rax), %edx
callq 0x9920
addq $0xa0, %rsp
popq %rbp
retq
nopl (%rax)