// File: /workspace/github_cpp_makefile_star2_O3/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 0xb62d
leaq 0x20(%r14), %rdx
leaq 0x25db6(%rip), %rsi     # 0x3133c
leaq 0x28(%rsp), %rdi
callq 0xc469
leaq 0x267aa(%rip), %rsi     # 0x31d41
leaq 0x28(%rsp), %rdi
callq 0x66c0
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xb5c9
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0xb5d1
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 0x60e0
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xb612
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6340
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb62d
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6340
cmpq $0x0, 0x48(%r14)
je 0xb6ea
leaq 0x40(%r14), %rdx
leaq 0x25d02(%rip), %rsi     # 0x31345
leaq 0x28(%rsp), %rdi
callq 0xc469
leaq 0x266ed(%rip), %rsi     # 0x31d41
leaq 0x28(%rsp), %rdi
callq 0x66c0
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xb686
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0xb68e
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 0x60e0
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xb6cf
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6340
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb6ea
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6340
cmpq $0x0, 0x68(%r14)
je 0xb7a7
leaq 0x60(%r14), %rdx
leaq 0x25c4f(%rip), %rsi     # 0x3134f
leaq 0x28(%rsp), %rdi
callq 0xc469
leaq 0x26630(%rip), %rsi     # 0x31d41
leaq 0x28(%rsp), %rdi
callq 0x66c0
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xb743
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0xb74b
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 0x60e0
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xb78c
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6340
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb7a7
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6340
cmpq $0x0, 0x88(%r14)
je 0xb86a
leaq 0x80(%r14), %rdx
leaq 0x25b90(%rip), %rsi     # 0x31353
leaq 0x28(%rsp), %rdi
callq 0xc469
leaq 0x2656d(%rip), %rsi     # 0x31d41
leaq 0x28(%rsp), %rdi
callq 0x66c0
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xb806
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0xb80e
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 0x60e0
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xb84f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6340
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb86a
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6340
cmpq $0x0, 0xe8(%r14)
je 0xb989
leaq 0xe0(%r14), %rdx
leaq 0x25adb(%rip), %rsi     # 0x31361
leaq 0x8(%rsp), %rdi
callq 0xc469
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x60e0
leaq 0x18(%rsp), %r12
movq -0x10(%r12), %rdi
cmpq %r12, %rdi
je 0xb8be
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6340
cmpq $0x0, 0x108(%r14)
je 0xb914
leaq 0x100(%r14), %rdx
leaq 0x25a94(%rip), %rsi     # 0x3136a
leaq 0x28(%rsp), %rdi
callq 0xc469
leaq 0x2645a(%rip), %rsi     # 0x31d41
leaq 0x28(%rsp), %rdi
callq 0x66c0
movq %r12, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xb925
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0xb92d
leaq 0x26426(%rip), %rsi     # 0x31d41
movq %rbx, %rdi
callq 0x66c0
jmp 0xb989
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 0x60e0
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xb96e
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6340
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb989
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6340
cmpq $0x0, 0xa8(%r14)
je 0xbaa1
leaq 0xa0(%r14), %rdx
leaq 0x259c7(%rip), %rsi     # 0x3136c
leaq 0x8(%rsp), %rdi
callq 0xc469
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x60e0
leaq 0x18(%rsp), %r12
movq -0x10(%r12), %rdi
cmpq %r12, %rdi
je 0xb9dd
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6340
cmpq $0x0, 0xc8(%r14)
je 0xba33
leaq 0xc0(%r14), %rdx
leaq 0x25975(%rip), %rsi     # 0x3136a
leaq 0x28(%rsp), %rdi
callq 0xc469
leaq 0x2633b(%rip), %rsi     # 0x31d41
leaq 0x28(%rsp), %rdi
callq 0x66c0
movq %r12, 0x8(%rsp)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0xba44
movq %rsi, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0xba4f
leaq 0x26307(%rip), %rsi     # 0x31d41
movq %rbx, %rdi
callq 0x66c0
jmp 0xbaa1
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq %r12, %rsi
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rbx, %rdi
callq 0x60e0
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xba86
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6340
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbaa1
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6340
leaq 0x258cc(%rip), %rsi     # 0x31374
movq %rbx, %rdi
callq 0x66c0
leaq 0x258c2(%rip), %rax     # 0x31379
leaq 0x258c1(%rip), %rsi     # 0x3137f
cmpb $0x0, 0x120(%r14)
cmovneq %rax, %rsi
movq %rbx, %rdi
callq 0x66c0
leaq 0x258ad(%rip), %rsi     # 0x31386
movq %rbx, %rdi
callq 0x66c0
leaq 0x24a86(%rip), %rax     # 0x3056e
leaq 0x23b1e(%rip), %rsi     # 0x2f60d
cmpb $0x0, 0x121(%r14)
cmovneq %rax, %rsi
movq %rbx, %rdi
callq 0x66c0
movq %rbx, %rax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
jmp 0xbb4c
jmp 0xbb6a
jmp 0xbb8c
jmp 0xbb4c
jmp 0xbb6a
jmp 0xbb8c
jmp 0xbb22
jmp 0xbb8c
movq %rax, %r14
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbb8f
movq 0x18(%rsp), %rsi
jmp 0xbb80
jmp 0xbb4c
jmp 0xbb8c
jmp 0xbb6a
jmp 0xbb4c
jmp 0xbb8c
jmp 0xbb6a
jmp 0xbb4c
jmp 0xbb8c
jmp 0xbb6a
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xbb6d
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6340
jmp 0xbb6d
jmp 0xbb8c
movq %rax, %r14
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbb8f
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6340
jmp 0xbb8f
jmp 0xbb8c
movq %rax, %r14
movq (%rbx), %rdi
cmpq %r15, %rdi
je 0xbba2
movq (%r15), %rsi
incq %rsi
callq 0x6340
movq %r14, %rdi
callq 0x6630