// File: fuad00[P]wifitool/code.cpp
// Function: sniff_func()
bool sniff_func()	{
	for(int q = 0; q<=33; q++)	{  // При помощи данного цикла иммитируем полосу загрузки
		progress(3 * q);
		system("sleep 0.26");
	}
	progress(60);                      // Выводим строку прогресса
	cout << endl;                      // Каретка
	system("cat nets* | sed -n '/Station/q;p' | sed '/Last time seen/d' | awk -F',' '{print $14}' | awk '{$1=$1};1' | sed -r '/^\\s*$/d'"); // Считываем содержимое nets.csv-01.csv и выводим список сетей
	cout << "\n[?] Перепишите название вашей сети (регистр учитывается): ";
	getline(cin >> ws, target_name);   // Необычный способ считать данные (Название сети) с использованием getline. Источник:  

	progress(70);                      // Выводим строку прогресса

	string netname = "cat nets.csv-01.csv | sed -n '/Station/q;p' | sed '/Last time seen/d' | grep '" + target_name + "' | awk -F',' '{print $14}' > tmp/netname.txt";
	const char *netname_init = netname.c_str();

	string netbssid = "cat nets.csv-01.csv | sed -n '/Station/q;p' | sed '/Last time seen/d' | grep '" + target_name + "' | awk -F',' '{print $1}' > tmp/netbssid.txt";
	const char *netbssid_init = netbssid.c_str();

	string channel = "cat nets.csv-01.csv | sed -n '/Station/q;p' | sed '/Last time seen/d' | grep '" + target_name + "' | awk -F',' '{print $4}' > tmp/channel.txt";
	const char *channel_init = channel.c_str();


	system(netname_init);  // Считываем содержимое nets.csv-01.csv и выводим название выбранной сети.
	system(netbssid_init); // Считываем содержимое nets.csv-01.csv и выводим MAC-адрес выбранной сети.
	system(channel_init);  // Считываем содержимое nets.csv-01.csv и выводим канал выбранной сети.


	getline(ifstream("tmp/netname.txt"), target_name);           // Считываем содержимое файла по пути tmp/netname.txt
	getline(ifstream("tmp/netbssid.txt"), target_bssid);         // Считываем содержимое файла по пути tmp/netbssid.txt
	getline(ifstream("tmp/channel.txt"), target_channel_number); // Считываем содержимое файла по пути tmp/channel.txt

	cout << "\nВыбранная сеть: " << target_name << endl;
	cout << "MAC-адрес сети: " << target_bssid << endl;
	cout << "Канал сети: " << target_channel_number << endl;


	cout << "\n[+] Данные сохранены! Можно приступить к ловле хендшейка [4].\n" << endl;
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x760, %rsp            # imm = 0x760
movl $0x0, -0x4(%rbp)
cmpl $0x21, -0x4(%rbp)
jg 0x3088
imull $0x3, -0x4(%rbp), %edi
callq 0x2c30
leaq 0x2696(%rip), %rdi      # 0x570e
callq 0x2170
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x3062
movl $0x3c, %edi
callq 0x2c30
movq 0x5f37(%rip), %rdi      # 0x8fd0
movq %rdi, -0x720(%rbp)
movq 0x5f01(%rip), %rsi      # 0x8fa8
callq 0x21e0
leaq 0x2666(%rip), %rdi      # 0x5719
callq 0x2170
movq -0x720(%rbp), %rdi
leaq 0x26cf(%rip), %rsi      # 0x5795
callq 0x21b0
movq 0x5f0e(%rip), %rdi      # 0x8fe0
movq 0x5eef(%rip), %rsi      # 0x8fc8
callq 0x2090
movq %rax, %rdi
leaq 0x6260(%rip), %rsi      # 0x9348
movq %rsi, -0x718(%rbp)
callq 0x2050
movl $0x46, %edi
callq 0x2c30
movq -0x718(%rbp), %rdx
leaq 0x26f2(%rip), %rsi      # 0x57fe
leaq -0x48(%rbp), %rdi
movq %rdi, -0x710(%rbp)
callq 0x3c50
movq -0x710(%rbp), %rsi
leaq 0x2723(%rip), %rdx      # 0x584d
leaq -0x28(%rbp), %rdi
callq 0x3bb0
jmp 0x3135
leaq -0x48(%rbp), %rdi
callq 0x2358
leaq -0x28(%rbp), %rdi
callq 0x20c0
movq %rax, -0x60(%rbp)
leaq 0x26ac(%rip), %rsi      # 0x57fe
leaq 0x61ef(%rip), %rdx      # 0x9348
leaq -0xa0(%rbp), %rdi
callq 0x3c50
jmp 0x3167
leaq 0x270d(%rip), %rdx      # 0x587b
leaq -0x80(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x3bb0
jmp 0x3180
leaq -0xa0(%rbp), %rdi
callq 0x2358
leaq -0x80(%rbp), %rdi
callq 0x20c0
movq %rax, -0xa8(%rbp)
leaq 0x265b(%rip), %rsi      # 0x57fe
leaq 0x619e(%rip), %rdx      # 0x9348
leaq -0xe8(%rbp), %rdi
callq 0x3c50
jmp 0x31b8
leaq 0x26ea(%rip), %rdx      # 0x58a9
leaq -0xc8(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x3bb0
jmp 0x31d4
leaq -0xe8(%rbp), %rdi
callq 0x2358
leaq -0xc8(%rbp), %rdi
callq 0x20c0
movq %rax, -0xf0(%rbp)
movq -0x60(%rbp), %rdi
callq 0x2170
jmp 0x31fe
movq -0xa8(%rbp), %rdi
callq 0x2170
jmp 0x320c
movq -0xf0(%rbp), %rdi
callq 0x2170
jmp 0x321a
leaq 0x264a(%rip), %rsi      # 0x586b
leaq -0x2f8(%rbp), %rdi
movl $0x8, %edx
callq 0x2310
jmp 0x3234
leaq 0x610d(%rip), %rsi      # 0x9348
leaq -0x2f8(%rbp), %rdi
callq 0x3e80
jmp 0x3249
leaq -0x2f8(%rbp), %rdi
callq 0x2060
leaq 0x263c(%rip), %rsi      # 0x5898
leaq -0x500(%rbp), %rdi
movl $0x8, %edx
callq 0x2310
jmp 0x326f
leaq 0x6092(%rip), %rsi      # 0x9308
leaq -0x500(%rbp), %rdi
callq 0x3e80
jmp 0x3284
leaq -0x500(%rbp), %rdi
callq 0x2060
leaq 0x262f(%rip), %rsi      # 0x58c6
leaq -0x708(%rbp), %rdi
movl $0x8, %edx
callq 0x2310
jmp 0x32aa
leaq 0x5fd7(%rip), %rsi      # 0x9288
leaq -0x708(%rbp), %rdi
callq 0x3e80
jmp 0x32bf
leaq -0x708(%rbp), %rdi
callq 0x2060
movq 0x5cfe(%rip), %rdi      # 0x8fd0
leaq 0x25fd(%rip), %rsi      # 0x58d6
callq 0x21b0
movq %rax, -0x728(%rbp)
jmp 0x32e7
movq -0x728(%rbp), %rdi
leaq 0x6053(%rip), %rsi      # 0x9348
callq 0x2190
movq %rax, -0x730(%rbp)
jmp 0x3303
movq -0x730(%rbp), %rdi
movq 0x5c97(%rip), %rsi      # 0x8fa8
callq 0x21e0
jmp 0x3318
movq 0x5cb1(%rip), %rdi      # 0x8fd0
leaq 0x25cf(%rip), %rsi      # 0x58f5
callq 0x21b0
movq %rax, -0x738(%rbp)
jmp 0x3334
movq -0x738(%rbp), %rdi
leaq 0x5fc6(%rip), %rsi      # 0x9308
callq 0x2190
movq %rax, -0x740(%rbp)
jmp 0x3350
movq -0x740(%rbp), %rdi
movq 0x5c4a(%rip), %rsi      # 0x8fa8
callq 0x21e0
jmp 0x3365
movq 0x5c64(%rip), %rdi      # 0x8fd0
leaq 0x259c(%rip), %rsi      # 0x590f
callq 0x21b0
movq %rax, -0x748(%rbp)
jmp 0x3381
movq -0x748(%rbp), %rdi
leaq 0x5ef9(%rip), %rsi      # 0x9288
callq 0x2190
movq %rax, -0x750(%rbp)
jmp 0x339d
movq -0x750(%rbp), %rdi
movq 0x5bfd(%rip), %rsi      # 0x8fa8
callq 0x21e0
jmp 0x33b2
movq 0x5c17(%rip), %rdi      # 0x8fd0
leaq 0x2565(%rip), %rsi      # 0x5925
callq 0x21b0
movq %rax, -0x758(%rbp)
jmp 0x33ce
movq -0x758(%rbp), %rdi
movq 0x5bcc(%rip), %rsi      # 0x8fa8
callq 0x21e0
jmp 0x33e3
leaq -0xc8(%rbp), %rdi
callq 0x2358
leaq -0x80(%rbp), %rdi
callq 0x2358
leaq -0x28(%rbp), %rdi
callq 0x2358
xorl %eax, %eax
andb $0x1, %al
addq $0x760, %rsp            # imm = 0x760
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x2358
jmp 0x34f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x34f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x2358
jmp 0x34f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x34e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x2358
jmp 0x34e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x34db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x2f8(%rbp), %rdi
callq 0x2060
jmp 0x34db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x500(%rbp), %rdi
callq 0x2060
jmp 0x34db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x708(%rbp), %rdi
callq 0x2060
leaq -0xc8(%rbp), %rdi
callq 0x2358
leaq -0x80(%rbp), %rdi
callq 0x2358
leaq -0x28(%rbp), %rdi
callq 0x2358
movq -0x50(%rbp), %rdi
callq 0x22e0
nopw %cs:(%rax,%rax)