// File: yayuntian[P]user_agent/operatingSystem.cpp
// Function: getPlatform(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>>>>&, int)
string getPlatform(vector<string>& comment, int slen) {
    if (slen > 0) {
        if (comment[0] != "compatible") {
            if (starts_with(comment[0], "Windows")) {
                return "Windows";
            } else if  (starts_with(comment[0], "Symbian")) {
                return "Symbian";
            } else if (starts_with(comment[0], "webOS")) {
                return "webOS";
            } else if (comment[0] == "BB10") {
                return "BlackBerry";
            }
            return comment[0];
        }
    }
    return "";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x38(%rbp)
movq %rdi, %rax
movq %rax, -0x30(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
cmpl $0x0, -0x14(%rbp)
jle 0x4d9ae
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x4f7a0
movq %rax, %rdi
leaq 0x20dc9(%rip), %rsi     # 0x6e598
callq 0x4f770
testb $0x1, %al
jne 0x4d7dd
jmp 0x4d9ac
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x4f7a0
movq %rax, %rdi
leaq 0x20daf(%rip), %rsi     # 0x6e5a3
callq 0x4f7c0
testb $0x1, %al
jne 0x4d7ff
jmp 0x4d84a
leaq -0x15(%rbp), %rdi
movq %rdi, -0x40(%rbp)
callq 0x88c0
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rdx
leaq 0x20d88(%rip), %rsi     # 0x6e5a3
callq 0x13330
jmp 0x4d822
leaq -0x15(%rbp), %rdi
callq 0x8510
jmp 0x4d9f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x15(%rbp), %rdi
callq 0x8510
jmp 0x4d9fd
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x4f7a0
movq %rax, %rdi
leaq 0x1c46d(%rip), %rsi     # 0x69cce
callq 0x4f7c0
testb $0x1, %al
jne 0x4d86c
jmp 0x4d8b7
leaq -0x25(%rbp), %rdi
movq %rdi, -0x48(%rbp)
callq 0x88c0
movq -0x38(%rbp), %rdi
movq -0x48(%rbp), %rdx
leaq 0x1c446(%rip), %rsi     # 0x69cce
callq 0x13330
jmp 0x4d88f
leaq -0x25(%rbp), %rdi
callq 0x8510
jmp 0x4d9f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x25(%rbp), %rdi
callq 0x8510
jmp 0x4d9fd
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x4f7a0
movq %rax, %rdi
leaq 0x1b9da(%rip), %rsi     # 0x692a8
callq 0x4f7f0
testb $0x1, %al
jne 0x4d8d9
jmp 0x4d924
leaq -0x26(%rbp), %rdi
movq %rdi, -0x50(%rbp)
callq 0x88c0
movq -0x38(%rbp), %rdi
movq -0x50(%rbp), %rdx
leaq 0x1b9b3(%rip), %rsi     # 0x692a8
callq 0x13330
jmp 0x4d8fc
leaq -0x26(%rbp), %rdi
callq 0x8510
jmp 0x4d9f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x26(%rbp), %rdi
callq 0x8510
jmp 0x4d9fd
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x4f7a0
movq %rax, %rdi
leaq 0x1bc80(%rip), %rsi     # 0x695bb
callq 0x155a0
testb $0x1, %al
jne 0x4d946
jmp 0x4d98b
leaq -0x27(%rbp), %rdi
movq %rdi, -0x58(%rbp)
callq 0x88c0
movq -0x38(%rbp), %rdi
movq -0x58(%rbp), %rdx
leaq 0x1bb3f(%rip), %rsi     # 0x694a1
callq 0x13330
jmp 0x4d969
leaq -0x27(%rbp), %rdi
callq 0x8510
jmp 0x4d9f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x27(%rbp), %rdi
callq 0x8510
jmp 0x4d9fd
jmp 0x4d98d
jmp 0x4d98f
jmp 0x4d991
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x4f7a0
movq -0x38(%rbp), %rdi
movq %rax, %rsi
callq 0x81c0
jmp 0x4d9f3
jmp 0x4d9ae
leaq -0x28(%rbp), %rdi
movq %rdi, -0x60(%rbp)
callq 0x88c0
movq -0x38(%rbp), %rdi
movq -0x60(%rbp), %rdx
leaq 0x1ca42(%rip), %rsi     # 0x6a40c
callq 0x13330
jmp 0x4d9d1
leaq -0x28(%rbp), %rdi
callq 0x8510
jmp 0x4d9f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x8510
jmp 0x4d9fd
movq -0x30(%rbp), %rax
addq $0x60, %rsp
popq %rbp
retq
movq -0x20(%rbp), %rdi
callq 0x88a0
nopw %cs:(%rax,%rax)