// File: parth-shel[P]xpac/man_help.cpp
// Function: man_help()
void man_help() {
	string line;
	string token;
	ifstream help_file("man_help_txt");
	if(help_file.is_open()) {
		cout<<"These are common xpac commands used in various situations:"<<endl<<endl;		
		while(getline(help_file, line)) {	
			istringstream stream(line);
			// parse command option
			getline(stream, token, '|');
			string option_str = token;
			// parse functionality
			getline(stream, token, '\n');
			string functionality_str = token;
			
			// display to standard output
			printf("%-35s %-100s\n", option_str.c_str(), functionality_str.c_str());
		}

	} else {
		cout<<"Error accessing xpac -help"<<endl;
	}
	return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x450, %rsp            # imm = 0x450
leaq -0x20(%rbp), %rdi
callq 0x4580
leaq -0x40(%rbp), %rdi
callq 0x4580
leaq 0x4760(%rip), %rsi      # 0x15804
leaq -0x248(%rbp), %rdi
movl $0x8, %edx
callq 0x4730
jmp 0x110b7
leaq -0x248(%rbp), %rdi
callq 0x4630
movb %al, -0x419(%rbp)
jmp 0x110cb
movb -0x419(%rbp), %al
testb $0x1, %al
jne 0x110da
jmp 0x112ca
movq 0xceef(%rip), %rdi      # 0x1dfd0
leaq 0x4729(%rip), %rsi      # 0x15811
callq 0x4400
movq %rax, -0x428(%rbp)
jmp 0x110f6
movq -0x428(%rbp), %rdi
movq 0xceb4(%rip), %rsi      # 0x1dfb8
callq 0x4440
movq %rax, -0x430(%rbp)
jmp 0x11112
movq -0x430(%rbp), %rdi
movq 0xce98(%rip), %rsi      # 0x1dfb8
callq 0x4440
jmp 0x11127
jmp 0x11129
leaq -0x248(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x40e0
movq %rax, -0x438(%rbp)
jmp 0x11142
movq -0x438(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x4500
movb %al, -0x439(%rbp)
jmp 0x11160
movb -0x439(%rbp), %al
testb $0x1, %al
jne 0x1116f
jmp 0x112c8
leaq -0x3d8(%rbp), %rdi
leaq -0x20(%rbp), %rsi
movl $0x8, %edx
callq 0x4690
jmp 0x11186
leaq -0x3d8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
movl $0x7c, %edx
callq 0x4740
jmp 0x1119d
leaq -0x3f8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x41d0
jmp 0x111af
leaq -0x3d8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
movl $0xa, %edx
callq 0x4740
jmp 0x111c6
leaq -0x418(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x41d0
jmp 0x111d8
leaq -0x3f8(%rbp), %rdi
callq 0x41c0
movq %rax, -0x448(%rbp)
leaq -0x418(%rbp), %rdi
callq 0x41c0
movq -0x448(%rbp), %rsi
movq %rax, %rdx
leaq 0x4644(%rip), %rdi      # 0x1584c
xorl %eax, %eax
callq 0x4070
jmp 0x11211
leaq -0x418(%rbp), %rdi
callq 0x47e8
leaq -0x3f8(%rbp), %rdi
callq 0x47e8
leaq -0x3d8(%rbp), %rdi
callq 0x4230
jmp 0x11129
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
jmp 0x11330
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
jmp 0x11324
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
jmp 0x112ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
jmp 0x112ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
leaq -0x418(%rbp), %rdi
callq 0x47e8
leaq -0x3f8(%rbp), %rdi
callq 0x47e8
leaq -0x3d8(%rbp), %rdi
callq 0x4230
jmp 0x11324
jmp 0x112fd
movq 0xccff(%rip), %rdi      # 0x1dfd0
leaq 0x4582(%rip), %rsi      # 0x1585a
callq 0x4400
movq %rax, -0x450(%rbp)
jmp 0x112e6
movq -0x450(%rbp), %rdi
movq 0xccc4(%rip), %rsi      # 0x1dfb8
callq 0x4440
jmp 0x112fb
jmp 0x112fd
leaq -0x248(%rbp), %rdi
callq 0x4140
leaq -0x40(%rbp), %rdi
callq 0x47e8
leaq -0x20(%rbp), %rdi
callq 0x47e8
addq $0x450, %rsp            # imm = 0x450
popq %rbp
retq
leaq -0x248(%rbp), %rdi
callq 0x4140
leaq -0x40(%rbp), %rdi
callq 0x47e8
leaq -0x20(%rbp), %rdi
callq 0x47e8
movq -0x250(%rbp), %rdi
callq 0x46d0
nop