// File: iZhangHui[P]CppPrimer/CH08_TheIOLibrary/examples/clearIO.cc
// Function: main
int main()
{
	cout << "before read" << endl;
	if (cin.good()) cout << "cin's good" << endl;
	if (cin.bad()) cout << "cin's bad" << endl;
	if (cin.fail()) cout << "cin's fail" << endl;
	if (cin.eof()) cout << "cin's eof" << endl;
	
	read();
	cout << "after read" << endl;
	if (cin.good()) cout << "cin's good" << endl;
	if (cin.bad()) cout << "cin's bad" << endl;
	if (cin.fail()) cout << "cin's fail" << endl;
	if (cin.eof()) cout << "cin's eof" << endl;
	
	off();
	cout << "after off" << endl;
	if (cin.good()) cout << "cin's good" << endl;
	if (cin.bad()) cout << "cin's bad" << endl;
	if (cin.fail()) cout << "cin's fail" << endl;
	if (cin.eof()) cout << "cin's eof" << endl;
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl $0x0, -0x4(%rbp)
movq 0x2cca(%rip), %rdi      # 0x3fd0
leaq 0xcf7(%rip), %rsi       # 0x2004
callq 0x1070
movq %rax, %rdi
movq 0x2ca4(%rip), %rsi      # 0x3fc0
callq 0x1080
movq 0x2cb8(%rip), %rax      # 0x3fe0
movq (%rax), %rax
movq 0x2cae(%rip), %rdi      # 0x3fe0
addq -0x18(%rax), %rdi
callq 0x10b0
testb $0x1, %al
jne 0x1341
jmp 0x1363
movq 0x2c88(%rip), %rdi      # 0x3fd0
leaq 0xcc1(%rip), %rsi       # 0x2010
callq 0x1070
movq %rax, %rdi
movq 0x2c62(%rip), %rsi      # 0x3fc0
callq 0x1080
movq 0x2c76(%rip), %rax      # 0x3fe0
movq (%rax), %rax
movq 0x2c6c(%rip), %rdi      # 0x3fe0
addq -0x18(%rax), %rdi
callq 0x10c0
testb $0x1, %al
jne 0x1383
jmp 0x13a5
movq 0x2c46(%rip), %rdi      # 0x3fd0
leaq 0xc8a(%rip), %rsi       # 0x201b
callq 0x1070
movq %rax, %rdi
movq 0x2c20(%rip), %rsi      # 0x3fc0
callq 0x1080
movq 0x2c34(%rip), %rax      # 0x3fe0
movq (%rax), %rax
movq 0x2c2a(%rip), %rdi      # 0x3fe0
addq -0x18(%rax), %rdi
callq 0x1030
testb $0x1, %al
jne 0x13c5
jmp 0x13e7
movq 0x2c04(%rip), %rdi      # 0x3fd0
leaq 0xc52(%rip), %rsi       # 0x2025
callq 0x1070
movq %rax, %rdi
movq 0x2bde(%rip), %rsi      # 0x3fc0
callq 0x1080
movq 0x2bf2(%rip), %rax      # 0x3fe0
movq (%rax), %rax
movq 0x2be8(%rip), %rdi      # 0x3fe0
addq -0x18(%rax), %rdi
callq 0x10d0
testb $0x1, %al
jne 0x1407
jmp 0x1429
movq 0x2bc2(%rip), %rdi      # 0x3fd0
leaq 0xc1b(%rip), %rsi       # 0x2030
callq 0x1070
movq %rax, %rdi
movq 0x2b9c(%rip), %rsi      # 0x3fc0
callq 0x1080
callq 0x1220
movq 0x2b9b(%rip), %rdi      # 0x3fd0
leaq 0xbfe(%rip), %rsi       # 0x203a
callq 0x1070
movq %rax, %rdi
movq 0x2b75(%rip), %rsi      # 0x3fc0
callq 0x1080
movq 0x2b89(%rip), %rax      # 0x3fe0
movq (%rax), %rax
movq 0x2b7f(%rip), %rdi      # 0x3fe0
addq -0x18(%rax), %rdi
callq 0x10b0
testb $0x1, %al
jne 0x1470
jmp 0x1492
movq 0x2b59(%rip), %rdi      # 0x3fd0
leaq 0xb92(%rip), %rsi       # 0x2010
callq 0x1070
movq %rax, %rdi
movq 0x2b33(%rip), %rsi      # 0x3fc0
callq 0x1080
movq 0x2b47(%rip), %rax      # 0x3fe0
movq (%rax), %rax
movq 0x2b3d(%rip), %rdi      # 0x3fe0
addq -0x18(%rax), %rdi
callq 0x10c0
testb $0x1, %al
jne 0x14b2
jmp 0x14d4
movq 0x2b17(%rip), %rdi      # 0x3fd0
leaq 0xb5b(%rip), %rsi       # 0x201b
callq 0x1070
movq %rax, %rdi
movq 0x2af1(%rip), %rsi      # 0x3fc0
callq 0x1080
movq 0x2b05(%rip), %rax      # 0x3fe0
movq (%rax), %rax
movq 0x2afb(%rip), %rdi      # 0x3fe0
addq -0x18(%rax), %rdi
callq 0x1030
testb $0x1, %al
jne 0x14f4
jmp 0x1516
movq 0x2ad5(%rip), %rdi      # 0x3fd0
leaq 0xb23(%rip), %rsi       # 0x2025
callq 0x1070
movq %rax, %rdi
movq 0x2aaf(%rip), %rsi      # 0x3fc0
callq 0x1080
movq 0x2ac3(%rip), %rax      # 0x3fe0
movq (%rax), %rax
movq 0x2ab9(%rip), %rdi      # 0x3fe0
addq -0x18(%rax), %rdi
callq 0x10d0
testb $0x1, %al
jne 0x1536
jmp 0x1558
movq 0x2a93(%rip), %rdi      # 0x3fd0
leaq 0xaec(%rip), %rsi       # 0x2030
callq 0x1070
movq %rax, %rdi
movq 0x2a6d(%rip), %rsi      # 0x3fc0
callq 0x1080
callq 0x1270
movq 0x2a6c(%rip), %rdi      # 0x3fd0
leaq 0xada(%rip), %rsi       # 0x2045
callq 0x1070
movq %rax, %rdi
movq 0x2a46(%rip), %rsi      # 0x3fc0
callq 0x1080
movq 0x2a5a(%rip), %rax      # 0x3fe0
movq (%rax), %rax
movq 0x2a50(%rip), %rdi      # 0x3fe0
addq -0x18(%rax), %rdi
callq 0x10b0
testb $0x1, %al
jne 0x159f
jmp 0x15c1
movq 0x2a2a(%rip), %rdi      # 0x3fd0
leaq 0xa63(%rip), %rsi       # 0x2010
callq 0x1070
movq %rax, %rdi
movq 0x2a04(%rip), %rsi      # 0x3fc0
callq 0x1080
movq 0x2a18(%rip), %rax      # 0x3fe0
movq (%rax), %rax
movq 0x2a0e(%rip), %rdi      # 0x3fe0
addq -0x18(%rax), %rdi
callq 0x10c0
testb $0x1, %al
jne 0x15e1
jmp 0x1603
movq 0x29e8(%rip), %rdi      # 0x3fd0
leaq 0xa2c(%rip), %rsi       # 0x201b
callq 0x1070
movq %rax, %rdi
movq 0x29c2(%rip), %rsi      # 0x3fc0
callq 0x1080
movq 0x29d6(%rip), %rax      # 0x3fe0
movq (%rax), %rax
movq 0x29cc(%rip), %rdi      # 0x3fe0
addq -0x18(%rax), %rdi
callq 0x1030
testb $0x1, %al
jne 0x1623
jmp 0x1645
movq 0x29a6(%rip), %rdi      # 0x3fd0
leaq 0x9f4(%rip), %rsi       # 0x2025
callq 0x1070
movq %rax, %rdi
movq 0x2980(%rip), %rsi      # 0x3fc0
callq 0x1080
movq 0x2994(%rip), %rax      # 0x3fe0
movq (%rax), %rax
movq 0x298a(%rip), %rdi      # 0x3fe0
addq -0x18(%rax), %rdi
callq 0x10d0
testb $0x1, %al
jne 0x1665
jmp 0x1687
movq 0x2964(%rip), %rdi      # 0x3fd0
leaq 0x9bd(%rip), %rsi       # 0x2030
callq 0x1070
movq %rax, %rdi
movq 0x293e(%rip), %rsi      # 0x3fc0
callq 0x1080
xorl %eax, %eax
addq $0x10, %rsp
popq %rbp
retq
nop