// File: /workspace/github_cpp_makefile_star2_O3/yayuntian[P]user_agent/userAgent.cpp
// Function: echo_ua(UserAgent&)
void echo_ua(UserAgent& p) {

    cout << p.ua << endl;
    if (!p.browser.Name.empty()) {
        printf("browser Name: %s, Version: %s\n",
               p.browser.Name.c_str(),
               p.browser.Version.c_str());
    }
    if (!p.browser.Engine.empty()) {
        printf("browser Engine: %s, Version: %s\n",
               p.browser.Engine.c_str(),
               p.browser.EngineVersion.c_str());
    }

    print_val("os", p.os);
    print_val("platform", p.platform);
    print_val("localization", p.localization);
    print_val("mozilla", p.mozilla);

    print_val("bot", p.bot);
    print_val("mobile", p.mobile);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x140, %rsp            # imm = 0x140
movq %rdi, %rbx
movq (%rdi), %rsi
movq 0x8(%rdi), %rdx
movq 0x37046(%rip), %rdi     # 0x43fc0
callq 0x63c0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x62f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x6040
movq %rax, %rdi
callq 0x6260
cmpq $0x0, 0xe8(%rbx)
je 0xcfcf
movq 0xe0(%rbx), %rsi
movq 0x100(%rbx), %rdx
leaq 0x24a25(%rip), %rdi     # 0x319ed
xorl %eax, %eax
callq 0x6070
cmpq $0x0, 0xa8(%rbx)
je 0xcff5
movq 0xa0(%rbx), %rsi
movq 0xc0(%rbx), %rdx
leaq 0x24a1e(%rip), %rdi     # 0x31a0c
xorl %eax, %eax
callq 0x6070
leaq 0xf0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x26fe4(%rip), %rsi     # 0x33fec
leaq 0x26fdf(%rip), %rdx     # 0x33fee
leaq 0xe0(%rsp), %rdi
callq 0xc690
leaq 0xd0(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x60(%rbx), %rsi
movq 0x68(%rbx), %rdx
addq %rsi, %rdx
leaq 0xc0(%rsp), %rdi
callq 0xc5fa
cmpq $0x0, 0xc8(%rsp)
je 0xd069
movq 0xe0(%rsp), %rsi
movq 0xc0(%rsp), %rdx
leaq 0x24983(%rip), %rdi     # 0x319e5
xorl %eax, %eax
callq 0x6070
movq 0xc0(%rsp), %rdi
cmpq %r15, %rdi
je 0xd086
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x6340
movq 0xe0(%rsp), %rdi
cmpq %r14, %rdi
je 0xd0a3
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x6340
leaq 0xb0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x24977(%rip), %rsi     # 0x31a2d
leaq 0x24978(%rip), %rdx     # 0x31a35
leaq 0xa0(%rsp), %rdi
callq 0xc690
leaq 0x90(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x40(%rbx), %rsi
movq 0x48(%rbx), %rdx
addq %rsi, %rdx
leaq 0x80(%rsp), %rdi
callq 0xc5fa
cmpq $0x0, 0x88(%rsp)
je 0xd117
movq 0xa0(%rsp), %rsi
movq 0x80(%rsp), %rdx
leaq 0x248d5(%rip), %rdi     # 0x319e5
xorl %eax, %eax
callq 0x6070
movq 0x80(%rsp), %rdi
cmpq %r15, %rdi
je 0xd134
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x6340
movq 0xa0(%rsp), %rdi
cmpq %r14, %rdi
je 0xd151
movq 0xb0(%rsp), %rsi
incq %rsi
callq 0x6340
leaq 0x70(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x248d5(%rip), %rsi     # 0x31a36
leaq 0x248da(%rip), %rdx     # 0x31a42
leaq 0x60(%rsp), %rdi
callq 0xc690
leaq 0x50(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x80(%rbx), %rsi
movq 0x88(%rbx), %rdx
addq %rsi, %rdx
leaq 0x40(%rsp), %rdi
callq 0xc5fa
cmpq $0x0, 0x48(%rsp)
je 0xd1b6
movq 0x60(%rsp), %rsi
movq 0x40(%rsp), %rdx
leaq 0x24836(%rip), %rdi     # 0x319e5
xorl %eax, %eax
callq 0x6070
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0xd1cd
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x6340
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0xd1e4
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x6340
leaq 0x30(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2484f(%rip), %rsi     # 0x31a43
leaq 0x2484f(%rip), %rdx     # 0x31a4a
leaq 0x20(%rsp), %rdi
callq 0xc690
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x20(%rbx), %rsi
movq 0x28(%rbx), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0xc5fa
cmpq $0x0, 0x8(%rsp)
je 0xd240
movq 0x20(%rsp), %rsi
movq (%rsp), %rdx
leaq 0x247ac(%rip), %rdi     # 0x319e5
xorl %eax, %eax
callq 0x6070
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xd256
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6340
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0xd26d
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x6340
leaq 0x130(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x202ea(%rip), %rsi     # 0x2d56a
leaq 0x202e6(%rip), %rdx     # 0x2d56d
leaq 0x120(%rsp), %r15
movq %r15, %rdi
callq 0xc690
movq (%r15), %rsi
leaq 0x232cd(%rip), %r12     # 0x3056e
cmpb $0x0, 0x120(%rbx)
leaq 0x2235e(%rip), %r14     # 0x2f60d
movq %r14, %rdx
cmovneq %r12, %rdx
leaq 0x24728(%rip), %rdi     # 0x319e5
xorl %eax, %eax
callq 0x6070
movq (%r15), %rdi
cmpq %r13, %rdi
je 0xd2dc
movq 0x130(%rsp), %rsi
incq %rsi
callq 0x6340
leaq 0x110(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x2475c(%rip), %rsi     # 0x31a4b
leaq 0x2475b(%rip), %rdx     # 0x31a51
leaq 0x100(%rsp), %r15
movq %r15, %rdi
callq 0xc690
movq (%r15), %rsi
cmpb $0x0, 0x121(%rbx)
cmovneq %r12, %r14
leaq 0x246ca(%rip), %rdi     # 0x319e5
movq %r14, %rdx
xorl %eax, %eax
callq 0x6070
movq (%r15), %rdi
cmpq %r13, %rdi
je 0xd33d
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x6340
addq $0x140, %rsp            # imm = 0x140
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x20(%rsp), %rdi
jmp 0xd37a
movq %rax, %rbx
movq 0x60(%rsp), %rdi
jmp 0xd37a
movq %rax, %rbx
movq 0xa0(%rsp), %rdi
jmp 0xd37a
movq %rax, %rbx
movq 0xe0(%rsp), %rdi
cmpq %r14, %rdi
je 0xd38a
movq (%r14), %rsi
incq %rsi
callq 0x6340
movq %rbx, %rdi
callq 0x6630