// File: /workspace/github_cpp_makefile_star2_O1/iZhangHui[P]CppPrimer/CH06_Functions/examples/wdebug.cc
// Function: main
int main()
{
    string word = "foo";
    const string::size_type threshold = 5;
    if (word.size() < threshold) 
        cerr << "Error: " << __FILE__
             << " : in function " << __func__ 
             << " at line " << __LINE__ << endl
             << "       Compiled on " << __DATE__ 
             << " at " << __TIME__ << endl
             << "       Word read was \"" << word 
             << "\":  Length too short" << endl;
    word = "something longer than five chars";
    assert(word.size() > threshold);

    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x20, %rsp
leaq -0x20(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0xd33(%rip), %rsi       # 0x201b
leaq 0xd2f(%rip), %rdx       # 0x201e
leaq -0x30(%rbp), %rbx
movq %rbx, %rdi
callq 0x151a
cmpq $0x4, 0x8(%rbx)
ja 0x1498
movq 0x2ce3(%rip), %rdi      # 0x3ff0
leaq 0xd0b(%rip), %rsi       # 0x201f
movl $0x7, %edx
callq 0x10c0
movq 0x2ccb(%rip), %rdi      # 0x3ff0
leaq 0xcfb(%rip), %rsi       # 0x2027
movl $0x9, %edx
callq 0x10c0
movq 0x2cb3(%rip), %rdi      # 0x3ff0
leaq 0xced(%rip), %rsi       # 0x2031
movl $0xf, %edx
callq 0x10c0
movq 0x2c9b(%rip), %rdi      # 0x3ff0
leaq 0xce5(%rip), %rsi       # 0x2041
movl $0x4, %edx
callq 0x10c0
movq 0x2c83(%rip), %rdi      # 0x3ff0
leaq 0xcd2(%rip), %rsi       # 0x2046
movl $0x9, %edx
callq 0x10c0
movq 0x2c6b(%rip), %rdi      # 0x3ff0
movl $0x3f, %esi
callq 0x10f0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x10a0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1060
movq %rax, %rbx
leaq 0xc8d(%rip), %rsi       # 0x2050
movl $0x13, %edx
movq %rax, %rdi
callq 0x10c0
leaq 0xc8d(%rip), %rsi       # 0x2064
movl $0xb, %edx
movq %rbx, %rdi
callq 0x10c0
leaq 0xc85(%rip), %rsi       # 0x2070
movl $0x4, %edx
movq %rbx, %rdi
callq 0x10c0
leaq 0xc76(%rip), %rsi       # 0x2075
movl $0x8, %edx
movq %rbx, %rdi
callq 0x10c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x10a0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1060
movq %rax, %rbx
leaq 0xc41(%rip), %rsi       # 0x207e
movl $0x16, %edx
movq %rax, %rdi
callq 0x10c0
movq -0x30(%rbp), %rsi
movq -0x28(%rbp), %rdx
movq %rbx, %rdi
callq 0x10c0
movq %rax, %rbx
leaq 0xc31(%rip), %rsi       # 0x2095
movl $0x14, %edx
movq %rax, %rdi
callq 0x10c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x10a0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1060
leaq -0x30(%rbp), %rdi
movq 0x8(%rdi), %rdx
leaq 0xc03(%rip), %rcx       # 0x20aa
movl $0x20, %r8d
xorl %esi, %esi
callq 0x10e0
cmpq $0x5, -0x28(%rbp)
jbe 0x14db
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x14d0
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x10b0
xorl %eax, %eax
addq $0x20, %rsp
popq %rbx
popq %r14
popq %rbp
retq
leaq 0xbe9(%rip), %rdi       # 0x20cb
leaq 0xb3e(%rip), %rsi       # 0x2027
leaq 0xbf3(%rip), %rcx       # 0x20e3
movl $0x45, %edx
callq 0x1040
movq %rax, %rbx
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x1512
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x10b0
movq %rbx, %rdi
callq 0x1100