// File: yayuntian[P]user_agent/bot.cpp
// Function: getFromSite(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&)
string getFromSite(vector<string>& comment) {
    size_t slen = comment.size();

    if (slen == 0) {
        return "";
    }

    int idx = (slen < 3) ? 0 : 2;
    boost::smatch result;

    string ret = "";
    int count = 0;

    std::string::const_iterator start = comment[idx].begin();
    std::string::const_iterator end = comment[idx].end();

    while ( boost::regex_search(start, end, result, botFromSiteRegexp) ) {
        if (count++ == 0) {
            ret = result[0];
        }
        start = result[0].second;
    }

    if (count == 1) {
        if (idx == 0) {
            return ret;
        }
        return trim_copy(comment[1]);
    }

    return "";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movq %rdi, -0x128(%rbp)
movq %rdi, %rax
movq %rax, -0x120(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x15690
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x562cc
leaq -0x19(%rbp), %rdi
movq %rdi, -0x130(%rbp)
callq 0x88c0
movq -0x128(%rbp), %rdi
movq -0x130(%rbp), %rdx
leaq 0x1416f(%rip), %rsi     # 0x6a40c
callq 0x13330
jmp 0x562a4
leaq -0x19(%rbp), %rdi
callq 0x8510
jmp 0x5661b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x19(%rbp), %rdi
callq 0x8510
jmp 0x5662b
movq -0x18(%rbp), %rax
subq $0x3, %rax
setae %al
movzbl %al, %eax
addl %eax, %eax
movl %eax, -0x30(%rbp)
leaq -0x81(%rbp), %rdi
movq %rdi, -0x138(%rbp)
callq 0x56e80
movq -0x138(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0x56ea0
jmp 0x56304
leaq -0x81(%rbp), %rdi
callq 0x56f30
leaq -0xa9(%rbp), %rdi
movq %rdi, -0x140(%rbp)
callq 0x88c0
movq -0x140(%rbp), %rdx
leaq 0x140db(%rip), %rsi     # 0x6a40c
leaq -0xa8(%rbp), %rdi
callq 0x13330
jmp 0x5633f
leaq -0xa9(%rbp), %rdi
callq 0x8510
movl $0x0, -0xb0(%rbp)
movq -0x10(%rbp), %rdi
movslq -0x30(%rbp), %rsi
callq 0x4f7a0
movq %rax, %rdi
callq 0x83d0
movq %rax, -0xc0(%rbp)
leaq -0xb8(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x30e20
movq -0x10(%rbp), %rdi
movslq -0x30(%rbp), %rsi
callq 0x4f7a0
movq %rax, %rdi
callq 0x8290
movq %rax, -0xd0(%rbp)
leaq -0xc8(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x30e20
movq -0xb8(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq -0xc8(%rbp), %rax
movq %rax, -0xe0(%rbp)
movq -0xd8(%rbp), %rdi
movq -0xe0(%rbp), %rsi
leaq 0x3c254(%rip), %rcx     # 0x92638
leaq -0x80(%rbp), %rdx
xorl %r8d, %r8d
callq 0x56f50
movb %al, -0x141(%rbp)
jmp 0x563f8
movb -0x141(%rbp), %al
testb $0x1, %al
jne 0x56407
jmp 0x564e1
movl -0xb0(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0xb0(%rbp)
cmpl $0x0, %eax
jne 0x564b6
leaq -0x80(%rbp), %rdi
xorl %esi, %esi
callq 0x56fb0
movq %rax, -0x150(%rbp)
jmp 0x56435
movq -0x150(%rbp), %rsi
leaq -0x100(%rbp), %rdi
callq 0x57040
jmp 0x5644a
leaq -0xa8(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x85b0
leaq -0x100(%rbp), %rdi
callq 0x89e8
jmp 0x564b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x81(%rbp), %rdi
callq 0x56f30
jmp 0x5662b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0xa9(%rbp), %rdi
callq 0x8510
jmp 0x56610
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x56604
leaq -0x80(%rbp), %rdi
xorl %esi, %esi
callq 0x56fb0
movq %rax, -0x158(%rbp)
jmp 0x564ca
movq -0x158(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xb8(%rbp)
jmp 0x563b3
cmpl $0x1, -0xb0(%rbp)
jne 0x5658c
cmpl $0x0, -0x30(%rbp)
jne 0x56516
movq -0x128(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x82a0
movl $0x1, -0x104(%rbp)
jmp 0x565ed
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x4f7a0
movq %rax, -0x168(%rbp)
leaq -0x110(%rbp), %rdi
movq %rdi, -0x160(%rbp)
callq 0x89c0
movq -0x128(%rbp), %rdi
movq -0x168(%rbp), %rsi
movq -0x160(%rbp), %rdx
callq 0x57100
jmp 0x5655a
leaq -0x110(%rbp), %rdi
callq 0x86a0
movl $0x1, -0x104(%rbp)
jmp 0x565ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x86a0
jmp 0x56604
leaq -0x111(%rbp), %rdi
movq %rdi, -0x170(%rbp)
callq 0x88c0
movq -0x128(%rbp), %rdi
movq -0x170(%rbp), %rdx
leaq 0x13e58(%rip), %rsi     # 0x6a40c
callq 0x13330
jmp 0x565bb
leaq -0x111(%rbp), %rdi
callq 0x8510
movl $0x1, -0x104(%rbp)
jmp 0x565ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x111(%rbp), %rdi
callq 0x8510
jmp 0x56604
leaq -0xa8(%rbp), %rdi
callq 0x89e8
leaq -0x80(%rbp), %rdi
callq 0x57180
jmp 0x5661b
leaq -0xa8(%rbp), %rdi
callq 0x89e8
leaq -0x80(%rbp), %rdi
callq 0x57180
jmp 0x5662b
movq -0x120(%rbp), %rax
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0x88a0
nopw %cs:(%rax,%rax)