// File: /workspace/github_cpp_makefile_star2_O1/yayuntian[P]user_agent/test_ua.cpp
// Function: format[abi:cxx11](UserAgent&)
string format(UserAgent& ua) {
    string s;

    if (!ua.mozilla.empty()) {
        s += "Mozilla:" + ua.mozilla + " ";
    }

    if (!ua.platform.empty()) {
        s += "Platform:" + ua.platform + " ";
    }

    if (!ua.os.empty()) {
        s += "OS:" + ua.os + " ";
    }

    if (!ua.localization.empty()) {
        s += "Localization:" + ua.localization + " ";
    }

    if (!ua.browser.Name.empty()) {
        s += "Browser:" + ua.browser.Name;
        if (!ua.browser.Version.empty()) {
            s += "-" + ua.browser.Version + " ";
        } else {
            s += " ";
        }
    }

    if (!ua.browser.Engine.empty()) {
        s += "Engine:" + ua.browser.Engine;
        if (!ua.browser.EngineVersion.empty()) {
            s += "-" + ua.browser.EngineVersion + " ";
        } else {
            s += " ";
        }
    }
    s += "Bot:";
    s += ua.bot ? "true " : "false ";
    s += "Mobile:";
    s += ua.mobile ? "true" : "false";

    //    cout << s << endl;
    return s;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x10(%rdi), %r15
movq %r15, (%rdi)
movq $0x0, 0x8(%rdi)
movb $0x0, 0x10(%rdi)
cmpq $0x0, 0x28(%rsi)
je 0xd8ad
leaq 0x20(%r14), %rdx
leaq 0x25b36(%rip), %rsi     # 0x3333c
leaq 0x28(%rsp), %rdi
callq 0xe6e9
leaq 0x26576(%rip), %rsi     # 0x33d8d
leaq 0x28(%rsp), %rdi
callq 0x76c0
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xd849
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0xd851
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x70e0
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xd892
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7340
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xd8ad
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x7340
cmpq $0x0, 0x48(%r14)
je 0xd96a
leaq 0x40(%r14), %rdx
leaq 0x25a82(%rip), %rsi     # 0x33345
leaq 0x28(%rsp), %rdi
callq 0xe6e9
leaq 0x264b9(%rip), %rsi     # 0x33d8d
leaq 0x28(%rsp), %rdi
callq 0x76c0
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xd906
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0xd90e
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x70e0
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xd94f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7340
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xd96a
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x7340
cmpq $0x0, 0x68(%r14)
je 0xda27
leaq 0x60(%r14), %rdx
leaq 0x259cf(%rip), %rsi     # 0x3334f
leaq 0x28(%rsp), %rdi
callq 0xe6e9
leaq 0x263fc(%rip), %rsi     # 0x33d8d
leaq 0x28(%rsp), %rdi
callq 0x76c0
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xd9c3
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0xd9cb
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x70e0
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xda0c
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7340
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xda27
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x7340
cmpq $0x0, 0x88(%r14)
je 0xdaea
leaq 0x80(%r14), %rdx
leaq 0x25910(%rip), %rsi     # 0x33353
leaq 0x28(%rsp), %rdi
callq 0xe6e9
leaq 0x26339(%rip), %rsi     # 0x33d8d
leaq 0x28(%rsp), %rdi
callq 0x76c0
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xda86
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0xda8e
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x70e0
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xdacf
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7340
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xdaea
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x7340
cmpq $0x0, 0xe8(%r14)
je 0xdc09
leaq 0xe0(%r14), %rdx
leaq 0x2585b(%rip), %rsi     # 0x33361
leaq 0x8(%rsp), %rdi
callq 0xe6e9
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x70e0
leaq 0x18(%rsp), %r12
movq -0x10(%r12), %rdi
cmpq %r12, %rdi
je 0xdb3e
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7340
cmpq $0x0, 0x108(%r14)
je 0xdb94
leaq 0x100(%r14), %rdx
leaq 0x25814(%rip), %rsi     # 0x3336a
leaq 0x28(%rsp), %rdi
callq 0xe6e9
leaq 0x26226(%rip), %rsi     # 0x33d8d
leaq 0x28(%rsp), %rdi
callq 0x76c0
movq %r12, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xdba5
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0xdbad
leaq 0x261f2(%rip), %rsi     # 0x33d8d
movq %rbx, %rdi
callq 0x76c0
jmp 0xdc09
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x70e0
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xdbee
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7340
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xdc09
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x7340
cmpq $0x0, 0xa8(%r14)
je 0xdd28
leaq 0xa0(%r14), %rdx
leaq 0x25747(%rip), %rsi     # 0x3336c
leaq 0x8(%rsp), %rdi
callq 0xe6e9
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x70e0
leaq 0x18(%rsp), %r12
movq -0x10(%r12), %rdi
cmpq %r12, %rdi
je 0xdc5d
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7340
cmpq $0x0, 0xc8(%r14)
je 0xdcb3
leaq 0xc0(%r14), %rdx
leaq 0x256f5(%rip), %rsi     # 0x3336a
leaq 0x28(%rsp), %rdi
callq 0xe6e9
leaq 0x26107(%rip), %rsi     # 0x33d8d
leaq 0x28(%rsp), %rdi
callq 0x76c0
movq %r12, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xdcc4
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0xdccc
leaq 0x260d3(%rip), %rsi     # 0x33d8d
movq %rbx, %rdi
callq 0x76c0
jmp 0xdd28
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x70e0
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xdd0d
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7340
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xdd28
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x7340
leaq 0x25645(%rip), %rsi     # 0x33374
movq %rbx, %rdi
callq 0x76c0
leaq 0x2563b(%rip), %rax     # 0x33379
leaq 0x2563a(%rip), %rsi     # 0x3337f
cmpb $0x0, 0x120(%r14)
cmovneq %rax, %rsi
movq %rbx, %rdi
callq 0x76c0
leaq 0x25626(%rip), %rsi     # 0x33386
movq %rbx, %rdi
callq 0x76c0
leaq 0x247ff(%rip), %rax     # 0x3256e
leaq 0x23897(%rip), %rsi     # 0x3160d
cmpb $0x0, 0x121(%r14)
cmovneq %rax, %rsi
movq %rbx, %rdi
callq 0x76c0
movq %rbx, %rax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
jmp 0xddd3
jmp 0xddf1
jmp 0xde13
jmp 0xddd3
jmp 0xddf1
jmp 0xde13
jmp 0xdda9
jmp 0xde13
movq %rax, %r14
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xde16
movq 0x18(%rsp), %rsi
jmp 0xde07
jmp 0xddd3
jmp 0xde13
jmp 0xddf1
jmp 0xddd3
jmp 0xde13
jmp 0xddf1
jmp 0xddd3
jmp 0xde13
jmp 0xddf1
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xddf4
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7340
jmp 0xddf4
jmp 0xde13
movq %rax, %r14
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xde16
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x7340
jmp 0xde16
jmp 0xde13
movq %rax, %r14
movq (%rbx), %rdi
cmpq %r15, %rdi
je 0xde29
movq (%r15), %rsi
incq %rsi
callq 0x7340
movq %r14, %rdi
callq 0x7630