// File: /workspace/github_cpp_makefile_star2_O1/PrzemekWirkus[P]functional-workshop/src/testconf.cpp
// Function: main
int main()
{
    // auto and lambda
    auto func = [] (string str) {cout << str << endl; };
    func("Lambda function call!"); // now call the function

    // some more templates
    global_address_book.push_back(string("http://www.cprogramming.com"));
    global_address_book.push_back(string("http://mbed.org"));
    global_address_book.push_back(string("http://google.com"));

    vector<string> v = findAddressesFromOrgs();

    cout << endl;
    cout << "Found .org domains:" << endl;
    for_each(v.begin(), v.end(), func);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
leaq 0x48(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xb0b(%rip), %rsi       # 0x2032
leaq 0xb19(%rip), %rdx       # 0x2047
leaq 0x38(%rsp), %rbx
movq %rbx, %rdi
callq 0x1b04
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq 0x2a8f(%rip), %rbx      # 0x3fd8
movq %rbx, %rdi
callq 0x1110
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x10f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1090
movq 0x38(%rsp), %rdi
cmpq %r15, %rdi
je 0x158a
callq 0x10e0
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xaad(%rip), %rsi       # 0x2048
leaq 0xac1(%rip), %rdx       # 0x2063
movq %rsp, %rdi
callq 0x1b04
leaq 0x2b47(%rip), %rdi      # 0x40f8
movq %rsp, %rsi
callq 0x17f8
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x15c7
callq 0x10e0
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0xa90(%rip), %rsi       # 0x2064
leaq 0xa98(%rip), %rdx       # 0x2073
callq 0x1b04
leaq 0x2b11(%rip), %rdi      # 0x40f8
movq %rsp, %rsi
callq 0x17f8
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x15fd
callq 0x10e0
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0xa6a(%rip), %rsi       # 0x2074
leaq 0xa74(%rip), %rdx       # 0x2085
callq 0x1b04
leaq 0x2adb(%rip), %rdi      # 0x40f8
movq %rsp, %rsi
callq 0x17f8
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x1633
callq 0x10e0
leaq 0x20(%rsp), %rdi
callq 0x1488
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10f0
movsbl %al, %esi
movq 0x297d(%rip), %rdi      # 0x3fd8
callq 0x1030
movq %rax, %rdi
callq 0x1090
movq 0x2969(%rip), %rbx      # 0x3fd8
leaq 0xa10(%rip), %rsi       # 0x2086
movl $0x13, %edx
movq %rbx, %rdi
callq 0x1110
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x10f0
movsbl %al, %esi
movq 0x2937(%rip), %rdi      # 0x3fd8
callq 0x1030
movq %rax, %rdi
callq 0x1090
movq 0x20(%rsp), %r13
movq 0x28(%rsp), %rbp
cmpq %rbp, %r13
je 0x1730
movq %rsp, %rbx
movq 0x2911(%rip), %r14      # 0x3fd8
movq %r12, (%rsp)
movq (%r13), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0x1a14
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x1110
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x10f0
movsbl %al, %esi
movq %r15, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1090
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x1727
callq 0x10e0
addq $0x20, %r13
cmpq %rbp, %r13
jne 0x16c7
leaq 0x20(%rsp), %rdi
callq 0x17aa
xorl %eax, %eax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1753
jmp 0x1761
jmp 0x1753
jmp 0x1761
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r12, %rdi
jne 0x1773
jmp 0x179c
movq %rax, %rbx
jmp 0x179c
movq %rax, %rbx
movq 0x38(%rsp), %rdi
cmpq %r15, %rdi
je 0x179c
callq 0x10e0
jmp 0x179c
jmp 0x177c
movq %rax, %rbx
jmp 0x1792
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x1792
callq 0x10e0
leaq 0x20(%rsp), %rdi
callq 0x17aa
movq %rbx, %rdi
callq 0x1180