// File: /workspace/github_c_makefile_star2_O0/jaroslov[P]docoptc/./docopt.h
// Function: docopt_entries_insert_entry
static int docopt_entries_insert_entry(struct docopt_entries* dE, struct docopt_entry* entry)
{
    int lentry                  = docopt_entries_get_entry(dE, &entry->name);
    struct docopt_str sname     = { &entry->short_name[0], &entry->short_name[0] + strlen(&entry->short_name[0]) };
    int sentry                  = docopt_entries_get_entry(dE, &sname);
    int hentry                  = -1;
    assert((docopt_str_len(&entry->name) || entry->short_name[0]) && "Invalid ENTRY.");
    if ((lentry >= 0) || (sentry >= 0))
    {
        hentry  = (lentry >= 0) ? lentry : sentry;
        if (!dE->entries[hentry].name.fst) dE->entries[hentry].name = entry->name;
        if (!dE->entries[hentry].command.fst) dE->entries[hentry].command = entry->command;
        if (!dE->entries[hentry].short_name[0]) strcpy(dE->entries[hentry].short_name, entry->short_name);
        if (!dE->entries[hentry].defvalue.fst) dE->entries[hentry].defvalue = entry->defvalue;
    }
    else
    {
        if ((dE->curentry+1) >= dE->nentries)
        {
            dE->nentries    *= 2;
            dE->entries     = (struct docopt_entry*)realloc(dE->entries, sizeof(struct docopt_entry) * dE->nentries);
        }
        hentry              = dE->curentry;
        dE->entries[hentry] = *entry;
        ++dE->curentry;
    }
    return hentry;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x9120
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rdi
addq $0x10, %rdi
callq 0x7070
movq %rax, %rcx
movq -0x38(%rbp), %rax
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x9120
movl %eax, -0x2c(%rbp)
movl $0xffffffff, -0x30(%rbp) # imm = 0xFFFFFFFF
movq -0x10(%rbp), %rdi
callq 0x7420
cmpl $0x0, %eax
jne 0x9b05
movq -0x10(%rbp), %rax
movsbl 0x10(%rax), %eax
cmpl $0x0, %eax
je 0x9b0f
movb $0x1, %al
testb $0x1, %al
jne 0x9b0d
jmp 0x9b0f
jmp 0x9b2e
leaq 0x4620(%rip), %rdi      # 0xe136
leaq 0x25e5(%rip), %rsi      # 0xc102
movl $0xf1, %edx
leaq 0x4658(%rip), %rcx      # 0xe181
callq 0x7090
cmpl $0x0, -0x14(%rbp)
jge 0x9b3e
cmpl $0x0, -0x2c(%rbp)
jl 0x9c57
cmpl $0x0, -0x14(%rbp)
jl 0x9b4c
movl -0x14(%rbp), %eax
movl %eax, -0x3c(%rbp)
jmp 0x9b52
movl -0x2c(%rbp), %eax
movl %eax, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
movl %eax, -0x30(%rbp)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x30(%rbp), %rcx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
jne 0x9b96
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x30(%rbp), %rcx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movq -0x10(%rbp), %rcx
movq (%rcx), %rdx
movq %rdx, (%rax)
movq 0x8(%rcx), %rcx
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x30(%rbp), %rcx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x18(%rax)
jne 0x9bd7
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x30(%rbp), %rcx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rdx
movq %rdx, 0x18(%rax)
movq 0x20(%rcx), %rcx
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x30(%rbp), %rcx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
cmpb $0x0, 0x10(%rax)
jne 0x9c14
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rdi
movslq -0x30(%rbp), %rax
imulq $0x38, %rax, %rax
addq %rax, %rdi
addq $0x10, %rdi
movq -0x10(%rbp), %rsi
addq $0x10, %rsi
callq 0x7050
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x30(%rbp), %rcx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x28(%rax)
jne 0x9c55
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x30(%rbp), %rcx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movq -0x10(%rbp), %rcx
movq 0x28(%rcx), %rdx
movq %rdx, 0x28(%rax)
movq 0x30(%rcx), %rcx
movq %rcx, 0x30(%rax)
jmp 0x9cd2
movq -0x8(%rbp), %rax
movl 0x20(%rax), %eax
addl $0x1, %eax
movq -0x8(%rbp), %rcx
cmpl 0x1c(%rcx), %eax
jl 0x9c9a
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %ecx
shll %ecx
movl %ecx, 0x1c(%rax)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x8(%rbp), %rax
movslq 0x1c(%rax), %rax
imulq $0x38, %rax, %rsi
callq 0x7110
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x8(%rbp), %rax
movl 0x20(%rax), %eax
movl %eax, -0x30(%rbp)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rdi
movslq -0x30(%rbp), %rax
imulq $0x38, %rax, %rax
addq %rax, %rdi
movq -0x10(%rbp), %rsi
movl $0x38, %edx
callq 0x70f0
movq -0x8(%rbp), %rax
movl 0x20(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x20(%rax)
movl -0x30(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax,%rax)