// File: /workspace/github_c_makefile_star2_O2/alexgirao[P]aimant/chargenx.c
// Function: help
static void help(const char *argv0, struct getopt_x *state)
{
	char buf[4096];
	int bufsz = sizeof(buf);
	struct option opt[1];
	int pos = 0;
	int c = 0;

	pos += snprintf(buf + pos, SOZ(bufsz,pos), "\n");
	pos += snprintf(buf + pos, SOZ(bufsz,pos), "  usage: %s [options] ...\n", argv0);
	pos += snprintf(buf + pos, SOZ(bufsz,pos), "  options:\n");
	pos += snprintf(buf + pos, SOZ(bufsz,pos), "\n");

	while ((c = getopt_x_option(state, c, opt)) >= 0) {
		pos += getopt_x_option_format(buf + pos, bufsz - pos, state, opt);
		switch (opt->val) {
		case 'a':
			pos += snprintf(buf + pos, SOZ(bufsz,pos), "start delay in usecs, default is without delay\n");
			break;
		case 'z':
			pos += snprintf(buf + pos, SOZ(bufsz,pos), "end delay in usecs, default is withour delay\n");
			break;
		case 'b':
			pos += snprintf(buf + pos, SOZ(bufsz,pos), "between line delay in usecs, default\n");
			pos += getopt_x_option_format(buf + pos, SOZ(bufsz,pos), state, NULL);
			pos += snprintf(buf + pos, SOZ(bufsz,pos), "is %li usecs\n", args->between_delay);
			break;
		case 'u':
			pos += snprintf(buf + pos, SOZ(bufsz,pos), "a microsecond sleep after each # lines\n");
			pos += getopt_x_option_format(buf + pos, SOZ(bufsz,pos), state, NULL);
			pos += snprintf(buf + pos, SOZ(bufsz,pos), "this conflicts with -b\n");
			break;
		case 'n':
			pos += snprintf(buf + pos, SOZ(bufsz,pos), "number of lines (default to unlimited), %i\n", END_CHAR - START_CHAR);
			pos += getopt_x_option_format(buf + pos, SOZ(bufsz,pos), state, NULL);
			pos += snprintf(buf + pos, SOZ(bufsz,pos), "loop on all chars\n");
			break;
		case 'i':
			pos += snprintf(buf + pos, SOZ(bufsz,pos), "line identification prefix\n");
			break;
		case 'p':
			pos += snprintf(buf + pos, SOZ(bufsz,pos), "file to write the process pid, default\n");
			pos += getopt_x_option_format(buf + pos, SOZ(bufsz,pos), state, NULL);
			pos += snprintf(buf + pos, SOZ(bufsz,pos), "is to suppress pid information\n");
			break;
		case 'c':
			pos += snprintf(buf + pos, SOZ(bufsz,pos), "from %i ('%c') to %i ('%c')\n",
					START_CHAR, START_CHAR, END_CHAR - 1, END_CHAR - 1);
			break;
		case 'o':
			pos += snprintf(buf + pos, SOZ(bufsz,pos), "path to redirect stdout, re-open file upon SIGUSR1\n");
			break;
		case 'e':
			pos += snprintf(buf + pos, SOZ(bufsz,pos), "path to redirect stderr\n");
			break;
		case 't':
			pos += snprintf(buf + pos, SOZ(bufsz,pos), "do not append to output file, but truncate\n");
			break;
		case 'd':
			pos += snprintf(buf + pos, SOZ(bufsz,pos), "run on background\n");
			break;
		case 'r':
		case 'h':
			pos += snprintf(buf + pos, SOZ(bufsz,pos), "\n");
			break;
		default:
			pos += snprintf(buf + pos, SOZ(bufsz,pos), "undocumented\n");
		}
		if (pos >= bufsz) {
			DEBUG("buffer too small");
			exit(1);
		}
	}
	pos += snprintf(buf + pos, SOZ(bufsz,pos), "\n");

	fputs(buf, stderr);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1038, %rsp           # imm = 0x1038
movq %rsi, %rbx
movq %rdi, %rcx
leaq -0x104f(%rbp), %rdi
movw $0xa, -0x1(%rdi)
leaq 0x324d(%rip), %rdx      # 0x53b9
xorl %r13d, %r13d
movl $0xfff, %esi            # imm = 0xFFF
xorl %eax, %eax
callq 0x1110
movl $0xfff, %r14d           # imm = 0xFFF
movl %eax, %ecx
subl %r14d, %ecx
negl %ecx
cmpl %r14d, %eax
movslq %eax, %r15
leaq -0x104f(%rbp,%r15), %rdi
cmovgel %r13d, %ecx
movslq %ecx, %rsi
leaq 0x3230(%rip), %rdx      # 0x53d4
xorl %eax, %eax
callq 0x1110
leal (%r15,%rax), %r12d
addl %r15d, %eax
incl %eax
cltq
leaq (%rax,%rbp), %rdi
addq $-0x1050, %rdi          # imm = 0xEFB0
subl %r12d, %r14d
cmpl $0x1000, %eax           # imm = 0x1000
cmovgel %r13d, %r14d
movslq %r14d, %rsi
leaq 0x3399(%rip), %rdx      # 0x5570
xorl %eax, %eax
callq 0x1110
leal (%rax,%r12), %r14d
incl %r14d
leaq -0x50(%rbp), %r13
xorl %r12d, %r12d
movq %rbx, %rdi
movl %r12d, %esi
movq %r13, %rdx
callq 0x323f
movl %eax, %r12d
movslq %r14d, %rax
leaq (%rax,%rbp), %rdi
addq $-0x1050, %rdi          # imm = 0xEFB0
testl %r12d, %r12d
js 0x26db
movl $0x1000, %esi           # imm = 0x1000
subl %r14d, %esi
movq %rbx, %rdx
movq %r13, %r15
movq %r13, %rcx
callq 0x32d0
addl %r14d, %eax
movl -0x38(%rbp), %ecx
addl $-0x61, %ecx
movslq %eax, %r13
cmpl $0x19, %ecx
ja 0x2672
leaq 0x2e26(%rip), %rdx      # 0x506c
movslq (%rdx,%rcx,4), %rax
addq %rdx, %rax
jmpq *%rax
leal -0x1000(%r13), %eax
negl %eax
cmpl $0x1000, %r13d          # imm = 0x1000
leaq -0x1050(%rbp,%r13), %rdi
movl $0x0, %ecx
cmovgel %ecx, %eax
movslq %eax, %rsi
leaq 0x32f7(%rip), %rdx      # 0x5570
jmp 0x269c
leal -0x1000(%r13), %eax
negl %eax
cmpl $0x1000, %r13d          # imm = 0x1000
leaq -0x1050(%rbp,%r13), %rdi
movl $0x0, %ecx
cmovgel %ecx, %eax
movslq %eax, %rsi
leaq 0x32ca(%rip), %rdx      # 0x5572
jmp 0x269c
leal -0x1000(%r13), %eax
negl %eax
cmpl $0x1000, %r13d          # imm = 0x1000
leaq -0x1050(%rbp,%r13), %rdi
movl $0x0, %ecx
cmovgel %ecx, %eax
movslq %eax, %rsi
leaq 0x3139(%rip), %rdx      # 0x5410
jmp 0x269c
leal -0x1000(%r13), %eax
negl %eax
cmpl $0x1000, %r13d          # imm = 0x1000
leaq -0x1050(%rbp,%r13), %rdi
movl $0x0, %ecx
cmovgel %ecx, %eax
movslq %eax, %rsi
leaq 0x31eb(%rip), %rdx      # 0x54f1
jmp 0x269c
movl %r13d, %eax
movl $0x1000, %ecx           # imm = 0x1000
subl %ecx, %eax
negl %eax
cmpl %ecx, %r13d
leaq -0x1050(%rbp,%r13), %rdi
movl $0x0, %ecx
cmovgel %ecx, %eax
movslq %eax, %rsi
leaq 0x31d9(%rip), %rdx      # 0x550d
xorl %eax, %eax
callq 0x1110
addl %r13d, %eax
movl %eax, %esi
movl $0x1000, %ecx           # imm = 0x1000
subl %ecx, %esi
negl %esi
cmpl %ecx, %eax
movl $0x1000, %r13d          # imm = 0x1000
movslq %eax, %r14
leaq -0x1050(%rbp,%r14), %rdi
movl $0x0, %eax
cmovgel %eax, %esi
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x32d0
addl %eax, %r14d
movl %r14d, %eax
subl %r13d, %eax
negl %eax
cmpl %r13d, %r14d
movslq %r14d, %r14
leaq -0x1050(%rbp,%r14), %rdi
movl $0x0, %ecx
cmovgel %ecx, %eax
movslq %eax, %rsi
leaq 0x319c(%rip), %rdx      # 0x5535
jmp 0x24f1
movl %r13d, %eax
movl $0x1000, %ecx           # imm = 0x1000
subl %ecx, %eax
negl %eax
cmpl %ecx, %r13d
leaq -0x1050(%rbp,%r13), %rdi
movl $0x0, %ecx
cmovgel %ecx, %eax
movslq %eax, %rsi
leaq 0x30eb(%rip), %rdx      # 0x54b2
pushq $0x5e
popq %rcx
xorl %eax, %eax
callq 0x1110
addl %r13d, %eax
movl %eax, %esi
movl $0x1000, %ecx           # imm = 0x1000
subl %ecx, %esi
negl %esi
cmpl %ecx, %eax
movl $0x1000, %r13d          # imm = 0x1000
movslq %eax, %r14
leaq -0x1050(%rbp,%r14), %rdi
movl $0x0, %eax
cmovgel %eax, %esi
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x32d0
addl %eax, %r14d
movl %r14d, %eax
subl %r13d, %eax
negl %eax
cmpl %r13d, %r14d
movslq %r14d, %r14
leaq -0x1050(%rbp,%r14), %rdi
movl $0x0, %ecx
cmovgel %ecx, %eax
movslq %eax, %rsi
leaq 0x30af(%rip), %rdx      # 0x54de
jmp 0x24f1
leal -0x1000(%r13), %eax
negl %eax
cmpl $0x1000, %r13d          # imm = 0x1000
leaq -0x1050(%rbp,%r13), %rdi
movl $0x0, %ecx
cmovgel %ecx, %eax
movslq %eax, %rsi
leaq 0x3148(%rip), %rdx      # 0x55a6
jmp 0x269c
movl %r13d, %eax
movl $0x1000, %ecx           # imm = 0x1000
subl %ecx, %eax
negl %eax
cmpl %ecx, %r13d
leaq -0x1050(%rbp,%r13), %rdi
movl $0x0, %ecx
cmovgel %ecx, %eax
movslq %eax, %rsi
leaq 0x2fe6(%rip), %rdx      # 0x5472
xorl %eax, %eax
callq 0x1110
addl %r13d, %eax
movl %eax, %esi
movl $0x1000, %ecx           # imm = 0x1000
subl %ecx, %esi
negl %esi
cmpl %ecx, %eax
movl $0x1000, %r13d          # imm = 0x1000
movslq %eax, %r14
leaq -0x1050(%rbp,%r14), %rdi
movl $0x0, %eax
cmovgel %eax, %esi
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x32d0
addl %eax, %r14d
movl %r14d, %eax
subl %r13d, %eax
negl %eax
cmpl %r13d, %r14d
movslq %r14d, %r14
leaq -0x1050(%rbp,%r14), %rdi
movl $0x0, %ecx
cmovgel %ecx, %eax
movslq %eax, %rsi
leaq 0x2fa9(%rip), %rdx      # 0x549a
xorl %eax, %eax
callq 0x1110
jmp 0x266d
leal -0x1000(%r13), %eax
negl %eax
cmpl $0x1000, %r13d          # imm = 0x1000
leaq -0x1050(%rbp,%r13), %rdi
movl $0x0, %ecx
cmovgel %ecx, %eax
movslq %eax, %rsi
leaq 0x3098(%rip), %rdx      # 0x55bf
jmp 0x269c
leal -0x1000(%r13), %eax
negl %eax
cmpl $0x1000, %r13d          # imm = 0x1000
leaq -0x1050(%rbp,%r13), %rdi
movl $0x0, %ecx
cmovgel %ecx, %eax
movslq %eax, %rsi
leaq 0x2e8a(%rip), %rdx      # 0x53e0
jmp 0x269c
leal -0x1000(%r13), %eax
negl %eax
cmpl $0x1000, %r13d          # imm = 0x1000
leaq -0x1050(%rbp,%r13), %rdi
movl $0x0, %ecx
cmovgel %ecx, %eax
movslq %eax, %rsi
leaq 0x3066(%rip), %rdx      # 0x55eb
jmp 0x269c
leal -0x1000(%r13), %eax
negl %eax
cmpl $0x1000, %r13d          # imm = 0x1000
leaq -0x1050(%rbp,%r13), %rdi
movl $0x0, %ecx
cmovgel %ecx, %eax
movslq %eax, %rsi
movl $0x7e, (%rsp)
leaq 0x2f9a(%rip), %rdx      # 0x5555
pushq $0x21
popq %rcx
movl %ecx, %r8d
pushq $0x7e
popq %r9
xorl %eax, %eax
callq 0x1110
jmp 0x26a3
movl %r13d, %eax
movl $0x1000, %ecx           # imm = 0x1000
subl %ecx, %eax
negl %eax
cmpl %ecx, %r13d
leaq -0x1050(%rbp,%r13), %rdi
movl $0x0, %ecx
cmovgel %ecx, %eax
movslq %eax, %rsi
leaq 0x2e44(%rip), %rdx      # 0x543e
xorl %eax, %eax
callq 0x1110
addl %r13d, %eax
movl %eax, %esi
movl $0x1000, %ecx           # imm = 0x1000
subl %ecx, %esi
negl %esi
cmpl %ecx, %eax
movl $0x1000, %r13d          # imm = 0x1000
movslq %eax, %r14
leaq -0x1050(%rbp,%r14), %rdi
movl $0x0, %eax
cmovgel %eax, %esi
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x32d0
addl %eax, %r14d
movl %r14d, %eax
subl %r13d, %eax
negl %eax
cmpl %r13d, %r14d
movslq %r14d, %r14
leaq -0x1050(%rbp,%r14), %rdi
movl $0x0, %ecx
cmovgel %ecx, %eax
movslq %eax, %rsi
movq 0x5bf9(%rip), %rcx      # 0x8258
leaq 0x2dfe(%rip), %rdx      # 0x5464
xorl %eax, %eax
callq 0x1110
addl %eax, %r14d
jmp 0x26a9
leal -0x1000(%r13), %eax
negl %eax
cmpl $0x1000, %r13d          # imm = 0x1000
leaq -0x1050(%rbp,%r13), %rdi
movl $0x0, %ecx
cmovgel %ecx, %eax
movslq %eax, %rsi
leaq 0x2f62(%rip), %rdx      # 0x55fe
xorl %eax, %eax
callq 0x1110
movl %eax, %r14d
addl %r13d, %r14d
cmpl $0x1000, %r14d          # imm = 0x1000
movq %r15, %r13
jl 0x21ec
leaq 0x2a14(%rip), %rdi      # 0x50d4
leaq 0x2f45(%rip), %rdx      # 0x560c
movl $0xdd, %esi
xorl %eax, %eax
callq 0x4030
pushq $0x1
popq %rdi
callq 0x1230
leal -0x1000(%r14), %eax
negl %eax
xorl %ecx, %ecx
cmpl $0x1000, %r14d          # imm = 0x1000
cmovgel %ecx, %eax
movslq %eax, %rsi
leaq 0x2e76(%rip), %rdx      # 0x5570
xorl %eax, %eax
callq 0x1110
movq 0x58f0(%rip), %rax      # 0x7ff8
movq (%rax), %rsi
leaq -0x1050(%rbp), %rdi
callq 0x1150
addq $0x1038, %rsp           # imm = 0x1038
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq