// File: /workspace/github_cpp_makefile_star2_O1/SYZYGYfpga[P]brain-tools/src/smartvio-brain.cpp
// Function: printHelp(char*)
void printHelp (char *progname)
{
	printf("Usage: %s [option [argument]] <i2c device>\n", progname);
	printf("  <i2c device> is required for all commands. It must contain the\n");
	printf("               path to the Linux i2c device\n");
	printf("\n");
	printf("  Exactly one of the following options must be specified:\n");
	printf("    -r - run smartVIO, queries attached MCU's and sets voltages accordingly\n");
	printf("    -s - set VIO voltages to the values provided by -1 and -2 options\n");
	printf("    -j - print out a JSON object with DNA and SmartVIO information\n");
	printf("    -h - print this text\n");
	printf("    -w <filename> - write a binary DNA to a peripheral, takes the DNA filename\n");
	printf("                    as an argument\n");
	printf("    -d <filename> - dump the DNA from a peripheral to a binary file, takes the\n");
	printf("                    DNA filename as an argument\n");
	printf("\n");
	printf("  The following options may be used in conjunction with the above options:\n");
	printf("    -1 <vio1> - Sets the voltage for VIO1\n");
	printf("    -2 <vio2> - Sets the voltage for VIO2\n");
	printf("          <vio1> and <vio2> must be specified as numbers in 10's of mV\n");
	printf("    -p <number> - Specifies the peripheral number for the -w or -d options\n");
	printf("\n");
	printf("  Examples:\n");
	printf("    Run SmartVIO sequence:\n");
	printf("      %s -r /dev/i2c-1\n", progname);
	printf("    Dump DNA from the MCU on Port 1:\n");
	printf("      %s -d dna_file.bin -p 1 /dev/i2c-1\n", progname);
	printf("    Set VIO1 to 3.3V:\n");
	printf("      %s -s -1 330 /dev/i2c-1\n", progname);
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
leaq 0x4f36(%rip), %rdi      # 0x916f
movq %rbx, %rsi
xorl %eax, %eax
callq 0x3040
leaq 0x58de(%rip), %rdi      # 0x9b28
callq 0x3310
leaq 0x5913(%rip), %rdi      # 0x9b69
callq 0x3310
movl $0xa, %edi
callq 0x32b0
leaq 0x5929(%rip), %rdi      # 0x9b95
callq 0x3310
leaq 0x5957(%rip), %rdi      # 0x9bcf
callq 0x3310
leaq 0x5997(%rip), %rdi      # 0x9c1b
callq 0x3310
leaq 0x59d1(%rip), %rdi      # 0x9c61
callq 0x3310
leaq 0x5a08(%rip), %rdi      # 0x9ca4
callq 0x3310
leaq 0x5a15(%rip), %rdi      # 0x9cbd
callq 0x3310
leaq 0x5a58(%rip), %rdi      # 0x9d0c
callq 0x3310
leaq 0x5a6f(%rip), %rdi      # 0x9d2f
callq 0x3310
leaq 0x5ab2(%rip), %rdi      # 0x9d7e
callq 0x3310
movl $0xa, %edi
callq 0x32b0
leaq 0x5acc(%rip), %rdi      # 0x9dae
callq 0x3310
leaq 0x5b0b(%rip), %rdi      # 0x9df9
callq 0x3310
leaq 0x5b29(%rip), %rdi      # 0x9e23
callq 0x3310
leaq 0x5b47(%rip), %rdi      # 0x9e4d
callq 0x3310
leaq 0x5b82(%rip), %rdi      # 0x9e94
callq 0x3310
movl $0xa, %edi
callq 0x32b0
leaq 0x5bb7(%rip), %rdi      # 0x9edf
callq 0x3310
leaq 0x5bb7(%rip), %rdi      # 0x9eeb
callq 0x3310
leaq 0x4e5b(%rip), %rdi      # 0x919b
movq %rbx, %rsi
xorl %eax, %eax
callq 0x3040
leaq 0x5bb5(%rip), %rdi      # 0x9f06
callq 0x3310
leaq 0x4e56(%rip), %rdi      # 0x91b3
movq %rbx, %rsi
xorl %eax, %eax
callq 0x3040
leaq 0x5bbd(%rip), %rdi      # 0x9f2b
callq 0x3310
leaq 0x4e63(%rip), %rdi      # 0x91dd
movq %rbx, %rsi
xorl %eax, %eax
popq %rbx
jmp 0x3040