// File: brunokeymolen[P]ssdp/src/ssdpparser.cpp
// Function: SSDPParser::SSDPParser(SSDPDB*)
SSDPParser::SSDPParser(SSDPDB* db):mType(SSDP_TYPE_UNKNOWN){
    mDB = db;

    /*
     * Register all implemented message types
     */
    SSDPMessage* msg;
    msg = new SSDPNotifyAlive();
    msg->SetDB(mDB);
    mMessages.push_back(msg);

    msg = new SSDPNotifyBye();
    msg->SetDB(mDB);
    mMessages.push_back(msg);

    msg = new SSDPNotifyUpdate();
    msg->SetDB(mDB);
    mMessages.push_back(msg);

    msg = new SSDPSearchReq();
    msg->SetDB(mDB);
    mMessages.push_back(msg);

    msg = new SSDPSearchResp();
    msg->SetDB(mDB);
    mMessages.push_back(msg);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x38(%rbp)
movl $0x0, (%rdi)
addq $0x8, %rdi
movq %rdi, -0x48(%rbp)
callq 0xa6a0
movq -0x38(%rbp), %rdi
addq $0x20, %rdi
movq %rdi, -0x40(%rbp)
callq 0xcd70
movq -0x38(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, 0x38(%rax)
movl $0x28, %edi
callq 0x32d0
movq %rax, -0x30(%rbp)
jmp 0xc358
movq -0x30(%rbp), %rdi
callq 0xb940
jmp 0xc363
movq -0x38(%rbp), %rax
movq -0x30(%rbp), %rcx
movq %rcx, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movq 0x38(%rax), %rsi
movq (%rdi), %rax
movq 0x40(%rax), %rax
callq *%rax
jmp 0xc382
movq -0x38(%rbp), %rdi
addq $0x20, %rdi
leaq -0x18(%rbp), %rsi
callq 0xcd90
jmp 0xc395
movl $0x28, %edi
callq 0x32d0
movq %rax, -0x50(%rbp)
jmp 0xc3a5
movq -0x50(%rbp), %rdi
callq 0xbf90
jmp 0xc3b0
movq -0x38(%rbp), %rax
movq -0x50(%rbp), %rcx
movq %rcx, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movq 0x38(%rax), %rsi
movq (%rdi), %rax
movq 0x40(%rax), %rax
callq *%rax
jmp 0xc3cf
movq -0x38(%rbp), %rdi
addq $0x20, %rdi
leaq -0x18(%rbp), %rsi
callq 0xcd90
jmp 0xc3e2
movl $0x28, %edi
callq 0x32d0
movq %rax, -0x58(%rbp)
jmp 0xc3f2
movq -0x58(%rbp), %rdi
callq 0xc1b0
jmp 0xc3fd
movq -0x38(%rbp), %rax
movq -0x58(%rbp), %rcx
movq %rcx, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movq 0x38(%rax), %rsi
movq (%rdi), %rax
movq 0x40(%rax), %rax
callq *%rax
jmp 0xc41c
movq -0x38(%rbp), %rdi
addq $0x20, %rdi
leaq -0x18(%rbp), %rsi
callq 0xcd90
jmp 0xc42f
movl $0x28, %edi
callq 0x32d0
movq %rax, -0x60(%rbp)
jmp 0xc43f
movq -0x60(%rbp), %rdi
callq 0xda10
jmp 0xc44a
movq -0x38(%rbp), %rax
movq -0x60(%rbp), %rcx
movq %rcx, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movq 0x38(%rax), %rsi
movq (%rdi), %rax
movq 0x40(%rax), %rax
callq *%rax
jmp 0xc469
movq -0x38(%rbp), %rdi
addq $0x20, %rdi
leaq -0x18(%rbp), %rsi
callq 0xcd90
jmp 0xc47c
movl $0x28, %edi
callq 0x32d0
movq %rax, -0x68(%rbp)
jmp 0xc48c
movq -0x68(%rbp), %rdi
callq 0xdb70
jmp 0xc497
movq -0x38(%rbp), %rax
movq -0x68(%rbp), %rcx
movq %rcx, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movq 0x38(%rax), %rsi
movq (%rdi), %rax
movq 0x40(%rax), %rax
callq *%rax
jmp 0xc4b6
movq -0x38(%rbp), %rdi
addq $0x20, %rdi
leaq -0x18(%rbp), %rsi
callq 0xcd90
jmp 0xc4c9
addq $0x70, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0xc56a
movq -0x30(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x28, %esi
callq 0x32f0
jmp 0xc56a
movq -0x50(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x28, %esi
callq 0x32f0
jmp 0xc56a
movq -0x58(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x28, %esi
callq 0x32f0
jmp 0xc56a
movq -0x60(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x28, %esi
callq 0x32f0
jmp 0xc56a
movq -0x68(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x28, %esi
callq 0x32f0
movq -0x40(%rbp), %rdi
callq 0xce00
movq -0x48(%rbp), %rdi
callq 0xa800
movq -0x20(%rbp), %rdi
callq 0x34b0
nopw %cs:(%rax,%rax)