// File: /workspace/github_cpp_makefile_star2_O1/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 %rbx
subq $0x140, %rsp            # imm = 0x140
movq %rdi, %rbx
movq (%rdi), %rsi
movq 0x8(%rdi), %rdx
movq 0x36dd8(%rip), %rdi     # 0x45fc0
callq 0x73c0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x72f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7260
cmpq $0x0, 0xe8(%rbx)
je 0xf23d
movq 0xe0(%rbx), %rsi
movq 0x100(%rbx), %rdx
leaq 0x247d7(%rip), %rdi     # 0x33a0d
xorl %eax, %eax
callq 0x7070
cmpq $0x0, 0xa8(%rbx)
je 0xf263
movq 0xa0(%rbx), %rsi
movq 0xc0(%rbx), %rdx
leaq 0x247d0(%rip), %rdi     # 0x33a2c
xorl %eax, %eax
callq 0x7070
leaq 0xf0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x26dc2(%rip), %rsi     # 0x36038
leaq 0x26dbd(%rip), %rdx     # 0x3603a
leaq 0xe0(%rsp), %rdi
callq 0xe90a
leaq 0xd0(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x60(%rbx), %rsi
movq 0x68(%rbx), %rdx
addq %rsi, %rdx
leaq 0xc0(%rsp), %rdi
callq 0xe87a
cmpq $0x0, 0xc8(%rsp)
je 0xf2d7
movq 0xe0(%rsp), %rsi
movq 0xc0(%rsp), %rdx
leaq 0x24735(%rip), %rdi     # 0x33a05
xorl %eax, %eax
callq 0x7070
movq 0xc0(%rsp), %rdi
cmpq %r15, %rdi
je 0xf2f4
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x7340
movq 0xe0(%rsp), %rdi
cmpq %r14, %rdi
je 0xf311
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x7340
leaq 0xb0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x24729(%rip), %rsi     # 0x33a4d
leaq 0x2472a(%rip), %rdx     # 0x33a55
leaq 0xa0(%rsp), %rdi
callq 0xe90a
leaq 0x90(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x40(%rbx), %rsi
movq 0x48(%rbx), %rdx
addq %rsi, %rdx
leaq 0x80(%rsp), %rdi
callq 0xe87a
cmpq $0x0, 0x88(%rsp)
je 0xf385
movq 0xa0(%rsp), %rsi
movq 0x80(%rsp), %rdx
leaq 0x24687(%rip), %rdi     # 0x33a05
xorl %eax, %eax
callq 0x7070
movq 0x80(%rsp), %rdi
cmpq %r15, %rdi
je 0xf3a2
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x7340
movq 0xa0(%rsp), %rdi
cmpq %r14, %rdi
je 0xf3bf
movq 0xb0(%rsp), %rsi
incq %rsi
callq 0x7340
leaq 0x70(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x24687(%rip), %rsi     # 0x33a56
leaq 0x2468c(%rip), %rdx     # 0x33a62
leaq 0x60(%rsp), %rdi
callq 0xe90a
leaq 0x50(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x80(%rbx), %rsi
movq 0x88(%rbx), %rdx
addq %rsi, %rdx
leaq 0x40(%rsp), %rdi
callq 0xe87a
cmpq $0x0, 0x48(%rsp)
je 0xf424
movq 0x60(%rsp), %rsi
movq 0x40(%rsp), %rdx
leaq 0x245e8(%rip), %rdi     # 0x33a05
xorl %eax, %eax
callq 0x7070
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0xf43b
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x7340
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0xf452
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x7340
leaq 0x30(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x24601(%rip), %rsi     # 0x33a63
leaq 0x24601(%rip), %rdx     # 0x33a6a
leaq 0x20(%rsp), %rdi
callq 0xe90a
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x20(%rbx), %rsi
movq 0x28(%rbx), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0xe87a
cmpq $0x0, 0x8(%rsp)
je 0xf4ae
movq 0x20(%rsp), %rsi
movq (%rsp), %rdx
leaq 0x2455e(%rip), %rdi     # 0x33a05
xorl %eax, %eax
callq 0x7070
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xf4c4
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7340
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0xf4db
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x7340
leaq 0x130(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2007c(%rip), %rsi     # 0x2f56a
leaq 0x20078(%rip), %rdx     # 0x2f56d
leaq 0x120(%rsp), %r14
movq %r14, %rdi
callq 0xe90a
movzbl 0x120(%rbx), %esi
movq %r14, %rdi
callq 0xf1a3
movq (%r14), %rdi
cmpq %r15, %rdi
je 0xf52c
movq 0x130(%rsp), %rsi
incq %rsi
callq 0x7340
leaq 0x110(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2452c(%rip), %rsi     # 0x33a6b
leaq 0x2452b(%rip), %rdx     # 0x33a71
leaq 0x100(%rsp), %r14
movq %r14, %rdi
callq 0xe90a
movzbl 0x121(%rbx), %esi
movq %r14, %rdi
callq 0xf1a3
movq (%r14), %rdi
cmpq %r15, %rdi
je 0xf57d
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x7340
addq $0x140, %rsp            # imm = 0x140
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x20(%rsp), %rdi
jmp 0xf5b6
movq %rax, %rbx
movq 0x60(%rsp), %rdi
jmp 0xf5b6
movq %rax, %rbx
movq 0xa0(%rsp), %rdi
jmp 0xf5b6
movq %rax, %rbx
movq 0xe0(%rsp), %rdi
cmpq %r14, %rdi
je 0xf5c6
movq (%r14), %rsi
incq %rsi
callq 0x7340
movq %rbx, %rdi
callq 0x7630