// File: jeffchan[P]blockchain-parser/main.cpp
// Function: BlockChainCommand::help()
void help(void)
	{
		printf("Commands Available:\r\n");
		printf("\r\n");

		printf("max_blocks            : Specifies the maximum number of blocks to read.\r\n");
		printf("scan                  : Toggles scanning the blockchain headers pressing a key will pause or abort the scan.\r\n");
		printf("process               : Toggle processing all blocks; warning uses a lot of memory!..\r\n");
		printf("statistics            : Enables gathering detailed address/transaction statistics on the block chain\r\n");
		printf("\r\n");
		printf("stop_scan             : Stop's the scan of the blockchain headers and just builds the blockchain from where we are at so far.\r\n");
		printf("block <number>        : Will print the contents of this block.\r\n");
		printf("counts                : Report block and transaction counts.\r\n");
		printf("by_day                : Reports statistics by day.\r\n");
		printf("by_month              : Reports statistics by month.\r\n");
		printf("by_year               : Reports statistics by year.\r\n");
		printf("top_balance <n>       : Will output the addresses with the highest balance up to <n>\r\n");
		printf("min_balance <n>       : Specifies the minimum balance to use when generating a report. Default is 1BTC\r\n");
		printf("oldest <n>            : Outputs the <n> oldest addresses higher than min_balance\r\n");
		printf("adr <n>               : Outputs the transaction history relative to a specific bitcoinaddres.\r\n");
		printf("zombie <days>         : Report statitics about zombie coins; contents of addresses not used since this many days.\r\n");
		printf("record_addresses      : Toggles whether or not to record addresses when computing statistics.\r\n");
		printf("load_record           : Debugging feature, tries to load previously recorded addresses.\r\n");
		printf("help                  : Repeat these commands.\r\n");
		printf("exit, quit, or bye    : Will exit this tool\r\n");
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
leaq 0x399e(%rip), %rdi      # 0x33421
movb $0x0, %al
callq 0x2050
leaq 0x198b(%rip), %rdi      # 0x3141c
movb $0x0, %al
callq 0x2050
leaq 0x3998(%rip), %rdi      # 0x33437
movb $0x0, %al
callq 0x2050
leaq 0x39d4(%rip), %rdi      # 0x33481
movb $0x0, %al
callq 0x2050
leaq 0x3a35(%rip), %rdi      # 0x334f0
movb $0x0, %al
callq 0x2050
leaq 0x3a7f(%rip), %rdi      # 0x33548
movb $0x0, %al
callq 0x2050
leaq 0x1945(%rip), %rdi      # 0x3141c
movb $0x0, %al
callq 0x2050
leaq 0x3aca(%rip), %rdi      # 0x335af
movb $0x0, %al
callq 0x2050
leaq 0x3b3c(%rip), %rdi      # 0x3362f
movb $0x0, %al
callq 0x2050
leaq 0x3b6f(%rip), %rdi      # 0x33670
movb $0x0, %al
callq 0x2050
leaq 0x3ba0(%rip), %rdi      # 0x336af
movb $0x0, %al
callq 0x2050
leaq 0x3bc7(%rip), %rdi      # 0x336e4
movb $0x0, %al
callq 0x2050
leaq 0x3bf0(%rip), %rdi      # 0x3371b
movb $0x0, %al
callq 0x2050
leaq 0x3c18(%rip), %rdi      # 0x33751
movb $0x0, %al
callq 0x2050
leaq 0x3c61(%rip), %rdi      # 0x337a8
movb $0x0, %al
callq 0x2050
leaq 0x3cbc(%rip), %rdi      # 0x33811
movb $0x0, %al
callq 0x2050
leaq 0x3d01(%rip), %rdi      # 0x33864
movb $0x0, %al
callq 0x2050
leaq 0x3d53(%rip), %rdi      # 0x338c4
movb $0x0, %al
callq 0x2050
leaq 0x3db9(%rip), %rdi      # 0x33938
movb $0x0, %al
callq 0x2050
leaq 0x3e0b(%rip), %rdi      # 0x33998
movb $0x0, %al
callq 0x2050
leaq 0x3e57(%rip), %rdi      # 0x339f2
movb $0x0, %al
callq 0x2050
leaq 0x3e7a(%rip), %rdi      # 0x33a23
movb $0x0, %al
callq 0x2050
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)