// File: /workspace/github_c_makefile_star2_O0/DrYerzinia[P]C_DigiMode/src/util/argp.c
// Function: argp_print_help
static void argp_print_help(const char *cmd, struct argp_option *ops){

	printf("Usage: %s [OPTION]...\n", cmd);

	while(*(uint8_t*)ops != 0){

		int llen = 6;
		int has_short = isprint(ops->key);

		char *pch;

		printf("  ");

		// Single char option
		if(has_short)
			printf("-%c", ops->key);
		else
			printf("  ");

		// string option
		if(ops->name != NULL){

			if(has_short)
				printf(", ");
			else
				printf("  ");

			printf("--%s", ops->name);
			llen += strlen(ops->name) + 2;

			if(ops->arg != NULL){
				printf("=%s", ops->arg);
				llen += strlen(ops->arg) + 1;
			}
		}

		// Print description
		if(ops->doc != NULL){

			char doc[strlen(ops->doc)];
			strcpy(doc, ops->doc);

			if(llen > 30){
				printf("\n");
				llen = 0;
			} else if(llen == 30){
				llen -= 2;
			}

			if(llen < 30){
				printf("%*s" "%s", (30-llen), " ", " ");
				llen += (30-llen);
			}

			pch = strtok(doc, " ");

			while(pch != NULL){

				llen += strlen(pch) + 1;
				if(llen >= 80){
					printf("\n");
					llen = -2;
				}

				if(llen < 30){
					printf("%*s" "%s", (30-llen), " ", " ");
					llen += (30-llen);
				}

				printf("%s ", pch);

				pch = strtok(NULL, " ");

			};

		}

		printf("\n");

		ops++;

	};

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rsi
leaq 0x12ce(%rip), %rdi      # 0x4379
movb $0x0, %al
callq 0x1090
movq -0x10(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x0, %eax
je 0x334d
movl $0x6, -0x14(%rbp)
callq 0x1160
movq (%rax), %rax
movq -0x10(%rbp), %rcx
movslq 0x8(%rcx), %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x4000, %eax           # imm = 0x4000
movl %eax, -0x18(%rbp)
leaq 0x102a(%rip), %rdi      # 0x4116
movb $0x0, %al
callq 0x1090
cmpl $0x0, -0x18(%rbp)
je 0x3110
movq -0x10(%rbp), %rax
movl 0x8(%rax), %esi
leaq 0x1289(%rip), %rdi      # 0x4390
movb $0x0, %al
callq 0x1090
jmp 0x311e
leaq 0xfff(%rip), %rdi       # 0x4116
movb $0x0, %al
callq 0x1090
movq -0x10(%rbp), %rax
cmpq $0x0, (%rax)
je 0x31c3
cmpl $0x0, -0x18(%rbp)
je 0x3142
leaq 0x125b(%rip), %rdi      # 0x4394
movb $0x0, %al
callq 0x1090
jmp 0x3150
leaq 0xfcd(%rip), %rdi       # 0x4116
movb $0x0, %al
callq 0x1090
movq -0x10(%rbp), %rax
movq (%rax), %rsi
leaq 0x1239(%rip), %rdi      # 0x4397
movb $0x0, %al
callq 0x1090
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x1080
movq %rax, %rcx
addq $0x2, %rcx
movslq -0x14(%rbp), %rax
addq %rcx, %rax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x31c1
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rsi
leaq 0x1200(%rip), %rdi      # 0x439c
movb $0x0, %al
callq 0x1090
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x1080
movq %rax, %rcx
addq $0x1, %rcx
movslq -0x14(%rbp), %rax
addq %rcx, %rax
movl %eax, -0x14(%rbp)
jmp 0x31c3
movq -0x10(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x332e
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0x1080
movq %rax, %rcx
movq %rcx, %rax
movq %rsp, %rdx
movq %rdx, -0x28(%rbp)
addq $0xf, %rcx
andq $-0x10, %rcx
movq %rsp, %rdi
subq %rcx, %rdi
movq %rdi, -0x38(%rbp)
movq %rdi, %rsp
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rsi
callq 0x1050
cmpl $0x1e, -0x14(%rbp)
jle 0x322f
leaq 0xef0(%rip), %rdi       # 0x410f
movb $0x0, %al
callq 0x1090
movl $0x0, -0x14(%rbp)
jmp 0x3240
cmpl $0x1e, -0x14(%rbp)
jne 0x323e
movl -0x14(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x14(%rbp)
jmp 0x3240
cmpl $0x1e, -0x14(%rbp)
jge 0x3274
movl $0x1e, %esi
subl -0x14(%rbp), %esi
leaq 0x114b(%rip), %rdi      # 0x43a0
leaq 0xebb(%rip), %rcx       # 0x4117
movq %rcx, %rdx
movb $0x0, %al
callq 0x1090
movl $0x1e, %eax
subl -0x14(%rbp), %eax
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x38(%rbp), %rdi
leaq 0xe98(%rip), %rsi       # 0x4117
callq 0x1120
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x3327
movq -0x20(%rbp), %rdi
callq 0x1080
movq %rax, %rcx
addq $0x1, %rcx
movslq -0x14(%rbp), %rax
addq %rcx, %rax
movl %eax, -0x14(%rbp)
cmpl $0x50, -0x14(%rbp)
jl 0x32c8
leaq 0xe55(%rip), %rdi       # 0x410f
movb $0x0, %al
callq 0x1090
movl $0xfffffffe, -0x14(%rbp) # imm = 0xFFFFFFFE
cmpl $0x1e, -0x14(%rbp)
jge 0x32fc
movl $0x1e, %esi
subl -0x14(%rbp), %esi
leaq 0x10c3(%rip), %rdi      # 0x43a0
leaq 0xe33(%rip), %rcx       # 0x4117
movq %rcx, %rdx
movb $0x0, %al
callq 0x1090
movl $0x1e, %eax
subl -0x14(%rbp), %eax
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x20(%rbp), %rsi
leaq 0x109f(%rip), %rdi      # 0x43a6
movb $0x0, %al
callq 0x1090
xorl %eax, %eax
movl %eax, %edi
leaq 0xdfe(%rip), %rsi       # 0x4117
callq 0x1120
movq %rax, -0x20(%rbp)
jmp 0x3288
movq -0x28(%rbp), %rax
movq %rax, %rsp
leaq 0xdda(%rip), %rdi       # 0x410f
movb $0x0, %al
callq 0x1090
movq -0x10(%rbp), %rax
addq $0x30, %rax
movq %rax, -0x10(%rbp)
jmp 0x30b2
movq %rbp, %rsp
popq %rbp
retq