// File: /workspace/github_c_makefile_star2_O3/jaroslov[P]docoptc/./docopt.h
// Function: docopt_unify_args
static int docopt_unify_args(struct docopt_parse_state* dS, int hterm)
{
    if (dS->entries->error) return 0;
    int result                  = 0;
    int curarg                  = dS->curarg;
    struct docopt_term* term    = DO_TM(hterm);
    struct docopt_term* argterm = (dS->curarg < dS->nargterms)
                                ? DO_TM(dS->args_term + dS->curarg)
                                : 0;
    struct docopt_entry* terme  = docopt_fetch_entry(dS->entries, term->entry);
    struct docopt_entry* terma  = argterm
                                ? docopt_fetch_entry(dS->args, argterm->entry)
                                : 0;

    fprintf(dS->log, "%*s%s(%.*s%s)[%d]%s%s\n",
        dS->scale*dS->indent, "",
        DOCOPT_TYPE_NAMES[term->type],
        DOCOPT_PR(&terme->name),
        terme->short_name,
        term->length,
        term->optional ? "?" : " ",
        term->repeat ? "..." : "   ");

    if ((term->type != DOCOPT_TYPE_OPTION_SECTION) &&
        !dS->optional && !dS->positional
        && (dS->entries->flags & DOCOPT_NO_OPTIONS_FIRST))
        docopt_unify_args(dS, 0);

    switch (term->type)
    {
    case DOCOPT_TYPE_USAGE_SECTION      :
        ++dS->indent;
        dS->curarg  = 0;
        curarg      = 0;
        for (int i = 1; i < term->length; i += DO_TM(hterm+i)->length)
            if (docopt_unify_args(dS, hterm+i) && (dS->nargterms == dS->curarg))
                break;
            else
            {
                dS->positional  = 0;
                for (int i = curarg; i < dS->nargterms; ++i)
                    dS->entries->args[i].owner  = 0;
                dS->curarg      = curarg;
            }
        result  = dS->nargterms == dS->curarg;
        --dS->indent;
        break;
    case DOCOPT_TYPE_USAGE_STATEMENT    :
        ++dS->indent;
        for (int i = 0; i < dS->nargterms; ++i)
            dS->entries->args[i].owner  = 0;
        dS->positional  = 0;
        dS->optional    = 0;
        result          = docopt_unify_args(dS, hterm+1);
        dS->optional    = 1;
        --dS->indent;
        break;
    case DOCOPT_TYPE_EXPR               :
        ++dS->indent;
        for (int i = 1; i < term->length; i += DO_TM(hterm+i)->length)
            if ((result = docopt_unify_args(dS, hterm+i)))
                break;
        result |= term->optional;
        --dS->indent;
        break;
    case DOCOPT_TYPE_SEQ                :
        ++dS->indent;
        result = 1;
        for (int i = 1; i < term->length; i += DO_TM(hterm+i)->length)
            if (!docopt_unify_args(dS, hterm+i) && !DO_TM(hterm+i)->optional)
            {
                result = 0;
                break;
            }
        --dS->indent;
        break;
    case DOCOPT_TYPE_PNAME              :
        result = 1;
        break;
    case DOCOPT_TYPE_OPTREF             :
        ++dS->indent;
        docopt_unify_args(dS, 0);
        result = 1;
        --dS->indent;
        break;
    case DOCOPT_TYPE_OPTION_SECTION     :
        if (dS->curarg >= dS->nargterms) break;
        ++dS->indent;
        dS->optional    = 1;
        for (int i = 1; i < term->length; i += DO_TM(hterm+i)->length)
            if ((result = docopt_unify_args(dS, hterm+i)))
                break;
        dS->optional    = 0;
        --dS->indent;
        break;
    case DOCOPT_TYPE_OPTION_STATEMENT   :
        if (dS->curarg >= dS->nargterms) break;
        ++dS->indent;
        for (int i = 1; i < term->length; i += DO_TM(hterm+i)->length)
            if (docopt_unify_args(dS, hterm+i))
                result  = 1;
        --dS->indent;
        break;
docoptUnifyShort:
    case DOCOPT_TYPE_SHORT              :
        if (dS->curarg >= dS->nargterms) break;
        if (argterm->type != DOCOPT_TYPE_SHORT) break;
        if (strncmp(terme->short_name, terma->short_name, 2))
        {
            if ((term->type == DOCOPT_TYPE_SHORT) && terme->name.fst)
                goto docoptUnifyLong;
            break;
        }
        fprintf(dS->log, "%*s  ...%s %s (rpt:%d)\n", dS->scale*dS->indent, "", terme->short_name, terma->short_name, term->repeat);
        if (terme->command.fst)
        {
            if (!terma->command.fst)
            {
                if (dS->terms[dS->args_term+dS->curarg+1].type != DOCOPT_TYPE_ARGUMENT)
                    break;
                ++dS->curarg;
                terma   = docopt_fetch_entry(dS->args, DO_TM(dS->args_term + dS->curarg)->entry);
                docopt_set_arg(dS->entries->args+dS->curarg, terme, &terma->name);
            }
            else docopt_set_arg(dS->entries->args+dS->curarg, terme, &terma->command);
        }
        else docopt_set_arg(dS->entries->args+dS->curarg, terme, &terma->name);
        fprintf(dS->log, "%*s   [0x%010" PRIX64 "]\n", dS->scale*dS->indent, "", (uint64_t)dS->entries->args[dS->curarg].owner);
        ++dS->curarg;
        result = 1;
        break;
docoptUnifyLong:
    case DOCOPT_TYPE_LONG               :
        if (dS->curarg >= dS->nargterms) break;
        if (argterm->type != DOCOPT_TYPE_LONG) break;
        if (strncmp(terme->name.fst, terma->name.fst, docopt_str_len(&terme->name)))
        {
            if ((term->type == DOCOPT_TYPE_LONG) && terme->short_name[0])
                goto docoptUnifyShort;
            break;
        }
        if (terme->command.fst)
        {
            if (!terma->command.fst)
            {
                if (dS->terms[dS->args_term+dS->curarg+1].type != DOCOPT_TYPE_ARGUMENT)
                    break;
                ++dS->curarg;
                terma   = docopt_fetch_entry(dS->args, DO_TM(dS->args_term + dS->curarg)->entry);
                docopt_set_arg(dS->entries->args+dS->curarg, terme, &terma->name);
            }
            else docopt_set_arg(dS->entries->args+dS->curarg, terme, &terma->command);
        }
        else docopt_set_arg(dS->entries->args+dS->curarg, terme, &terma->name);
        ++dS->curarg;
        result = 1;
        break;
    case DOCOPT_TYPE_ARGUMENT           :
        if (dS->curarg >= dS->nargterms) break;
        if (argterm->type != DOCOPT_TYPE_ARGUMENT) break;
        docopt_set_arg(dS->entries->args+dS->curarg, terme, &terma->name);
        ++dS->curarg;
        result = 1;
        break;
    case DOCOPT_TYPE_COMMAND            :
        if (dS->curarg >= dS->nargterms) break;
        if (argterm->type != DOCOPT_TYPE_ARGUMENT) break;
        if (strncmp(terme->name.fst, terma->name.fst, docopt_str_len(&terme->name))) break;
        if (!strcmp(terma->name.fst, "--")) dS->positional = 1;
        docopt_set_arg(dS->entries->args+dS->curarg, terme, &terma->name);
        ++dS->curarg;
        result = 1;
        break;
    }

    if (!result)
    {
        dS->positional  = 0;
        for (int i = curarg; i < dS->nargterms; ++i)
            dS->entries->args[i].owner  = 0;
        dS->curarg      = curarg;
    }

    if ((curarg < dS->entries->nargs) && (curarg < dS->curarg) && term->repeat && result)
    {
        fprintf(dS->log, "%*s%s(%d < %d)\n", dS->scale*dS->indent, "", "Repeating", curarg, dS->curarg);
        docopt_unify_args(dS, hterm);
    }

    fprintf(dS->log, "%*s%s\n",
        dS->scale*dS->indent, "", result ? "PASSED" : "FAILED");

    return result;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq 0x8(%rdi), %rax
xorl %r12d, %r12d
cmpl $0x0, (%rax)
jne 0x9c9f
movq %rdi, %rbx
movl 0x168(%rdi), %edi
movq 0x20(%rbx), %r12
movslq %esi, %r15
cmpl 0x170(%rbx), %edi
movq %rsi, -0x38(%rbp)
movl %edi, -0x2c(%rbp)
jge 0x94f9
movslq (%r12,%r15,8), %rcx
testq %rcx, %rcx
js 0x9b80
movslq %edi, %rdx
movslq 0x15c(%rbx), %r8
addq %rdx, %r8
leaq (%r12,%r8,8), %r8
movq %r8, -0x68(%rbp)
movslq (%r8), %rdx
testq %rdx, %rdx
js 0x9b80
imulq $0x38, %rcx, %r14
addq 0x28(%rax), %r14
movq 0x10(%rbx), %rax
imulq $0x38, %rdx, %rcx
addq 0x28(%rax), %rcx
movq %rcx, -0x50(%rbp)
jmp 0x951e
movslq (%r12,%r15,8), %rcx
testq %rcx, %rcx
js 0x9b80
imulq $0x38, %rcx, %r14
addq 0x28(%rax), %r14
movq $0x0, -0x68(%rbp)
movq $0x0, -0x50(%rbp)
movl 0x180(%rbx), %edx
imull 0x184(%rbx), %edx
movq (%rbx), %rdi
movl 0x4(%r12,%r15,8), %eax
movl %eax, %ecx
andl $0x1f, %ecx
leaq 0xaf5(%rip), %rsi       # 0xa034
movslq (%rsi,%rcx,4), %r8
addq %rsi, %r8
movq (%r14), %r10
movl 0x8(%r14), %r9d
subl %r10d, %r9d
movl %eax, %r11d
shrl $0x7, %r11d
andl $0xfffff, %r11d         # imm = 0xFFFFF
testb $0x20, %al
leaq 0x2d2a(%rip), %rcx      # 0xc291
movq %r14, %rsi
leaq 0x2d1c(%rip), %r14      # 0xc28d
cmoveq %rcx, %r14
testb $0x40, %al
leaq 0x2d11(%rip), %rax      # 0xc28f
movq %r15, -0x40(%rbp)
leaq 0x168e(%rip), %r15      # 0xac17
cmoveq %rax, %r15
movq %rsi, -0x58(%rbp)
leaq 0x10(%rsi), %r13
subq $0x8, %rsp
leaq 0x2cd6(%rip), %rsi      # 0xc276
leaq 0xb54(%rip), %rcx       # 0xa0fb
xorl %eax, %eax
pushq %r15
movq -0x40(%rbp), %r15
pushq %r14
pushq %r11
movq %r13, -0x70(%rbp)
pushq %r13
pushq %r10
callq 0x70e0
addq $0x30, %rsp
movl 0x4(%r12,%r15,8), %ecx
movl %ecx, %eax
andl $0x1f, %eax
cmpl $0x3, %eax
je 0x95fe
cmpl $0x0, 0x160(%rbx)
jne 0x95fe
cmpl $0x0, 0x164(%rbx)
jne 0x95fe
movq 0x8(%rbx), %rax
testb $0x2, 0x18(%rax)
je 0x95fe
movq %rbx, %rdi
xorl %esi, %esi
callq 0x9471
movl 0x4(%r12,%r15,8), %ecx
movq %r12, -0x48(%rbp)
movl %ecx, %r13d
andl $0x1f, %r13d
leal -0x1(%r13), %eax
cmpl $0xb, %eax
ja 0x9b9f
movq %rcx, -0x78(%rbp)
movl $0x1, %r12d
leaq 0x9dd(%rip), %rcx       # 0xa004
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl 0x180(%rbx), %ecx
leal 0x1(%rcx), %eax
movl %eax, 0x180(%rbx)
movl $0x0, 0x168(%rbx)
movq -0x48(%rbp), %rax
testl $0x7ffff00, 0x4(%rax,%r15,8) # imm = 0x7FFFF00
je 0x9ac2
movl $0x1, %r12d
movl $0xfffff, %r14d         # imm = 0xFFFFF
movq -0x38(%rbp), %r13
leal (%r12,%r13), %r15d
movq %rbx, %rdi
movl %r15d, %esi
callq 0x9471
movl 0x170(%rbx), %edx
testl %eax, %eax
je 0x9691
cmpl 0x168(%rbx), %edx
je 0x9aea
movl $0x0, 0x164(%rbx)
testl %edx, %edx
jle 0x96c6
movq 0x8(%rbx), %rax
movq 0x38(%rax), %rax
leaq (,%rdx,8), %rcx
leaq (%rcx,%rcx,2), %rcx
xorl %esi, %esi
movq $0x0, (%rax,%rsi)
addq $0x18, %rsi
cmpq %rsi, %rcx
jne 0x96b5
movl $0x0, 0x168(%rbx)
movq 0x20(%rbx), %rax
movslq %r15d, %rcx
movl 0x4(%rax,%rcx,8), %eax
shrl $0x7, %eax
andl %r14d, %eax
addl %r12d, %eax
movq -0x48(%rbp), %rcx
movq -0x40(%rbp), %r15
movl 0x4(%rcx,%r15,8), %ecx
shrl $0x7, %ecx
andl %r14d, %ecx
movl %eax, %r12d
cmpl %ecx, %eax
jb 0x966c
xorl %eax, %eax
jmp 0x9af0
movl 0x180(%rbx), %ecx
leal 0x1(%rcx), %eax
movl %eax, 0x180(%rbx)
movq -0x48(%rbp), %rax
movl 0x4(%rax,%r15,8), %r12d
testl $0x7ffff00, %r12d       # imm = 0x7FFFF00
je 0x9ab3
movl $0x1, %r13d
movl $0xfffff, %r14d         # imm = 0xFFFFF
movq -0x38(%rbp), %rax
leal (%rax,%r13), %r15d
movq %rbx, %rdi
movl %r15d, %esi
callq 0x9471
movq -0x48(%rbp), %rcx
movq -0x40(%rbp), %rdx
movl 0x4(%rcx,%rdx,8), %r12d
testl %eax, %eax
jne 0x9782
movq 0x20(%rbx), %rcx
movslq %r15d, %rdx
movl 0x4(%rcx,%rdx,8), %ecx
shrl $0x7, %ecx
andl %r14d, %ecx
addl %r13d, %ecx
movl %r12d, %edx
shrl $0x7, %edx
andl %r14d, %edx
movl %ecx, %r13d
cmpl %edx, %ecx
jb 0x973a
movl 0x180(%rbx), %ecx
decl %ecx
movq -0x40(%rbp), %r15
jmp 0x9ab5
movl 0x168(%rbx), %r14d
movl 0x170(%rbx), %eax
movl %eax, -0x5c(%rbp)
jmp 0x9d0b
movslq 0x168(%rbx), %rax
cmpl 0x170(%rbx), %eax
jge 0x9b9f
movq -0x68(%rbp), %rcx
movl 0x4(%rcx), %ecx
andl $0x1f, %ecx
cmpl $0xa, %ecx
movl -0x2c(%rbp), %r14d
jne 0x9ae1
movq 0x8(%rbx), %rcx
movq 0x38(%rcx), %rcx
leaq (%rax,%rax,2), %rax
movq -0x58(%rbp), %rdx
movq %rdx, (%rcx,%rax,8)
movq -0x50(%rbp), %rdx
movups (%rdx), %xmm0
movups %xmm0, 0x8(%rcx,%rax,8)
incl 0x168(%rbx)
movq -0x38(%rbp), %r13
jmp 0x995a
movl 0x168(%rbx), %eax
cmpl 0x170(%rbx), %eax
jge 0x9b9f
movl 0x180(%rbx), %ecx
leal 0x1(%rcx), %eax
movl %eax, 0x180(%rbx)
movl $0x1, 0x160(%rbx)
movq -0x48(%rbp), %rax
testl $0x7ffff00, 0x4(%rax,%r15,8) # imm = 0x7FFFF00
je 0x9b06
movl $0x1, %r13d
movl $0xfffff, %r14d         # imm = 0xFFFFF
movq -0x38(%rbp), %rax
leal (%rax,%r13), %r15d
movq %rbx, %rdi
movl %r15d, %esi
callq 0x9471
movl %eax, %r12d
testl %eax, %eax
jne 0x9892
movq 0x20(%rbx), %rax
movslq %r15d, %rcx
movl 0x4(%rax,%rcx,8), %eax
shrl $0x7, %eax
andl %r14d, %eax
addl %r13d, %eax
movq -0x48(%rbp), %rcx
movq -0x40(%rbp), %rdx
movl 0x4(%rcx,%rdx,8), %ecx
shrl $0x7, %ecx
andl %r14d, %ecx
movl %eax, %r13d
cmpl %ecx, %eax
jb 0x984b
movl 0x180(%rbx), %ecx
decl %ecx
movq -0x40(%rbp), %r15
jmp 0x9b09
movl 0x168(%rbx), %eax
cmpl 0x170(%rbx), %eax
jge 0x9b9f
movl 0x180(%rbx), %ecx
leal 0x1(%rcx), %eax
movl %eax, 0x180(%rbx)
movq -0x48(%rbp), %rax
testl $0x7ffff00, 0x4(%rax,%r15,8) # imm = 0x7FFFF00
je 0x9b15
xorl %r12d, %r12d
movl $0x1, %r14d
movq -0x48(%rbp), %r13
movq -0x38(%rbp), %rax
leal (%r14,%rax), %r15d
movq %rbx, %rdi
movl %r15d, %esi
callq 0x9471
testl %eax, %eax
movl $0x1, %eax
cmovnel %eax, %r12d
movq 0x20(%rbx), %rax
movslq %r15d, %rcx
movq -0x40(%rbp), %r15
movl 0x4(%rax,%rcx,8), %eax
shrl $0x7, %eax
movl $0xfffff, %edx          # imm = 0xFFFFF
andl %edx, %eax
addl %r14d, %eax
movl 0x4(%r13,%r15,8), %ecx
shrl $0x7, %ecx
andl %edx, %ecx
movl %eax, %r14d
cmpl %ecx, %eax
jb 0x98e4
movl 0x180(%rbx), %ecx
decl %ecx
jmp 0x9b18
incl 0x180(%rbx)
movq %rbx, %rdi
xorl %esi, %esi
callq 0x9471
decl 0x180(%rbx)
movq -0x38(%rbp), %r13
movl -0x2c(%rbp), %r14d
movb $0x1, %cl
jmp 0x9bef
incl 0x180(%rbx)
movslq 0x170(%rbx), %rcx
testq %rcx, %rcx
jle 0x9996
movq 0x8(%rbx), %rax
movq 0x38(%rax), %rax
shlq $0x3, %rcx
leaq (%rcx,%rcx,2), %rcx
xorl %edx, %edx
movq $0x0, (%rax,%rdx)
addq $0x18, %rdx
cmpq %rdx, %rcx
jne 0x9985
movq $0x0, 0x160(%rbx)
movq -0x38(%rbp), %r13
leal 0x1(%r13), %esi
movq %rbx, %rdi
callq 0x9471
movl %eax, %r12d
movl $0x1, 0x160(%rbx)
jmp 0x9ad7
movl 0x168(%rbx), %r14d
movl 0x170(%rbx), %eax
movl %eax, -0x5c(%rbp)
jmp 0x9cb1
movl 0x180(%rbx), %ecx
leal 0x1(%rcx), %eax
movl %eax, 0x180(%rbx)
movq -0x48(%rbp), %rax
testl $0x7ffff00, 0x4(%rax,%r15,8) # imm = 0x7FFFF00
je 0x9b18
movl $0x1, %r12d
movl $0xfffff, %r14d         # imm = 0xFFFFF
movq -0x38(%rbp), %r13
leal (%r12,%r13), %r15d
movq %rbx, %rdi
movl %r15d, %esi
callq 0x9471
movq 0x20(%rbx), %rcx
movslq %r15d, %rdx
movl 0x4(%rcx,%rdx,8), %ecx
movl %ecx, %edx
andl $0x20, %edx
orl %eax, %edx
je 0x9ad0
shrl $0x7, %ecx
andl %r14d, %ecx
addl %r12d, %ecx
movq -0x48(%rbp), %rax
movq -0x40(%rbp), %r15
movl 0x4(%rax,%r15,8), %eax
shrl $0x7, %eax
andl %r14d, %eax
movl %ecx, %r12d
cmpl %eax, %ecx
jb 0x9a0a
movl $0x1, %r12d
jmp 0x9ad7
movslq 0x168(%rbx), %r14
cmpl 0x170(%rbx), %r14d
jge 0x9b9f
movq -0x68(%rbp), %rax
movl 0x4(%rax), %eax
andl $0x1f, %eax
cmpl $0xa, %eax
movq -0x38(%rbp), %r13
jne 0x9ba3
movq -0x58(%rbp), %rax
movq (%rax), %rdi
movq -0x50(%rbp), %rcx
movq (%rcx), %r15
movl 0x8(%rax), %edx
subl %edi, %edx
movq %r15, %rsi
callq 0x7040
testl %eax, %eax
je 0x9b33
movq -0x40(%rbp), %r15
jmp 0x9ba3
xorl %eax, %eax
shrl $0x5, %r12d
andl $0x1, %r12d
orl %eax, %r12d
jmp 0x9b18
movl 0x170(%rbx), %edx
xorl %eax, %eax
movq -0x38(%rbp), %r13
jmp 0x9af8
xorl %r12d, %r12d
movq -0x40(%rbp), %r15
movl 0x180(%rbx), %ecx
decl %ecx
jmp 0x9b1c
movq -0x38(%rbp), %r13
jmp 0x9ba7
movl %edx, %eax
movq -0x40(%rbp), %r15
movl 0x180(%rbx), %ecx
decl %ecx
xorl %r12d, %r12d
cmpl %eax, %edx
sete %r12b
xorl %r14d, %r14d
jmp 0x9b20
xorl %r12d, %r12d
movl $0x0, 0x160(%rbx)
jmp 0x9b18
xorl %r12d, %r12d
movq -0x38(%rbp), %r13
movl -0x2c(%rbp), %r14d
movl %ecx, 0x180(%rbx)
testl %r12d, %r12d
movb $0x1, %cl
jne 0x9bef
jmp 0x9ba7
cmpb $0x2d, (%r15)
jne 0x9b51
cmpb $0x2d, 0x1(%r15)
jne 0x9b51
cmpb $0x0, 0x2(%r15)
jne 0x9b51
movl $0x1, 0x164(%rbx)
movq 0x8(%rbx), %rax
movq 0x38(%rax), %rax
leaq (%r14,%r14,2), %rcx
movq -0x58(%rbp), %rdx
movq %rdx, (%rax,%rcx,8)
movq -0x50(%rbp), %rdx
movups (%rdx), %xmm0
movups %xmm0, 0x8(%rax,%rcx,8)
incl 0x168(%rbx)
movq -0x40(%rbp), %r15
jmp 0x9956
leaq 0x27dd(%rip), %rdi      # 0xc364
leaq 0x5a6(%rip), %rsi       # 0xa134
leaq 0x27db(%rip), %rcx      # 0xc370
movl $0xe7, %edx
callq 0x7080
movq -0x38(%rbp), %r13
movl -0x2c(%rbp), %r14d
movl $0x0, 0x164(%rbx)
movslq 0x170(%rbx), %rax
cmpl %eax, %r14d
jge 0x9be3
movq 0x8(%rbx), %rdx
movslq %r14d, %rsi
leaq (%rsi,%rsi,2), %rcx
shlq $0x3, %rcx
addq 0x38(%rdx), %rcx
subq %rsi, %rax
movq $0x0, (%rcx)
addq $0x18, %rcx
decq %rax
jne 0x9bd3
movl %r14d, 0x168(%rbx)
xorl %ecx, %ecx
xorl %r12d, %r12d
movq 0x8(%rbx), %rax
cmpl 0x30(%rax), %r14d
jge 0x9c66
movl 0x168(%rbx), %r10d
cmpl %r10d, %r14d
jge 0x9c66
movq -0x48(%rbp), %rax
testb $0x40, 0x4(%rax,%r15,8)
sete %al
movl %ecx, %r15d
xorb $0x1, %cl
orb %al, %cl
movl %r15d, %ecx
jne 0x9c66
movq (%rbx), %rdi
movl 0x180(%rbx), %edx
imull 0x184(%rbx), %edx
subq $0x8, %rsp
leaq 0x2683(%rip), %rsi      # 0xc2bd
leaq 0x4ba(%rip), %rcx       # 0xa0fb
leaq 0x2685(%rip), %r8       # 0xc2cd
movl %r14d, %r9d
xorl %eax, %eax
pushq %r10
callq 0x70e0
addq $0x10, %rsp
movq %rbx, %rdi
movl %r13d, %esi
callq 0x9471
movl %r15d, %ecx
movq (%rbx), %rdi
movl 0x180(%rbx), %edx
imull 0x184(%rbx), %edx
leaq 0x2661(%rip), %rax      # 0xc2de
leaq 0x2661(%rip), %r8       # 0xc2e5
testb %cl, %cl
cmovneq %rax, %r8
leaq 0x2646(%rip), %rsi      # 0xc2d7
leaq 0x463(%rip), %rcx       # 0xa0fb
xorl %eax, %eax
callq 0x70e0
movl %r12d, %eax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl -0x5c(%rbp), %r14d
jge 0x9b9f
movq -0x68(%rbp), %rax
movl 0x4(%rax), %eax
andl $0x1f, %eax
cmpl $0x6, %eax
jne 0x9b9f
movq -0x50(%rbp), %rax
leaq 0x10(%rax), %r15
movl $0x2, %edx
movq -0x70(%rbp), %rdi
movq %r15, %rsi
callq 0x7040
testl %eax, %eax
je 0x9d92
cmpl $0x6, %r13d
movq -0x40(%rbp), %r15
jne 0x9b9f
movq -0x58(%rbp), %rax
cmpq $0x0, (%rax)
je 0x9b9f
cmpl -0x5c(%rbp), %r14d
jge 0x9b9f
movq -0x68(%rbp), %rax
movl 0x4(%rax), %eax
andl $0x1f, %eax
cmpl $0x5, %eax
jne 0x9b9f
movq -0x58(%rbp), %rax
movq (%rax), %rdi
movq -0x50(%rbp), %rcx
movq (%rcx), %rsi
movl 0x8(%rax), %edx
subl %edi, %edx
callq 0x7040
testl %eax, %eax
je 0x9d60
cmpl $0x5, %r13d
jne 0x9b9f
movq -0x70(%rbp), %rax
cmpb $0x0, (%rax)
jne 0x9cb1
jmp 0x9b9f
movq -0x58(%rbp), %rax
cmpq $0x0, 0x18(%rax)
movq %r14, %rdi
je 0x9e09
movq -0x50(%rbp), %rsi
cmpq $0x0, 0x18(%rsi)
movq -0x38(%rbp), %r13
movl -0x2c(%rbp), %r14d
je 0x9e2c
addq $0x18, %rsi
jmp 0x9e77
movq (%rbx), %rdi
movl 0x180(%rbx), %edx
imull 0x184(%rbx), %edx
movq -0x78(%rbp), %r10
shrl $0x6, %r10d
andl $0x1, %r10d
subq $0x8, %rsp
leaq 0x24da(%rip), %rsi      # 0xc293
leaq 0x33b(%rip), %rcx       # 0xa0fb
movq -0x70(%rbp), %r8
movq %r15, %r9
xorl %eax, %eax
pushq %r10
callq 0x70e0
addq $0x10, %rsp
movq -0x58(%rbp), %rax
cmpq $0x0, 0x18(%rax)
movl 0x168(%rbx), %eax
je 0x9e17
movq -0x50(%rbp), %rdi
cmpq $0x0, 0x18(%rdi)
movq -0x38(%rbp), %r13
movq -0x40(%rbp), %r15
movl -0x2c(%rbp), %r14d
je 0x9e9b
addq $0x18, %rdi
jmp 0x9ee5
movq -0x38(%rbp), %r13
movl -0x2c(%rbp), %r14d
movq -0x50(%rbp), %rsi
jmp 0x9e77
movq -0x38(%rbp), %r13
movq -0x40(%rbp), %r15
movl -0x2c(%rbp), %r14d
movq -0x50(%rbp), %rdi
jmp 0x9ee5
movq 0x20(%rbx), %rax
movl 0x15c(%rbx), %ecx
leal (%rcx,%rdi), %edx
movslq %edx, %rdx
movl 0xc(%rax,%rdx,8), %edx
andl $0x1f, %edx
cmpl $0xa, %edx
jne 0x9ba7
leal 0x1(%rdi), %edx
movl %edx, 0x168(%rbx)
addl %edi, %ecx
incl %ecx
movslq %ecx, %rcx
movslq (%rax,%rcx,8), %rax
testq %rax, %rax
js 0x9b80
movq 0x10(%rbx), %rcx
imulq $0x38, %rax, %rsi
addq 0x28(%rcx), %rsi
movl %edx, %edi
movq 0x8(%rbx), %rax
movq 0x38(%rax), %rax
movslq %edi, %rcx
leaq (%rcx,%rcx,2), %rcx
movq -0x58(%rbp), %rdx
movq %rdx, (%rax,%rcx,8)
movups (%rsi), %xmm0
movups %xmm0, 0x8(%rax,%rcx,8)
jmp 0x9f3f
movq 0x20(%rbx), %rcx
movl 0x15c(%rbx), %edx
leal (%rax,%rdx), %esi
movslq %esi, %rsi
movl 0xc(%rcx,%rsi,8), %esi
andl $0x1f, %esi
cmpl $0xa, %esi
jne 0x9ba7
leal 0x1(%rax), %esi
movl %esi, 0x168(%rbx)
addl %edx, %eax
incl %eax
cltq
movslq (%rcx,%rax,8), %rax
testq %rax, %rax
js 0x9b80
movq 0x10(%rbx), %rcx
imulq $0x38, %rax, %rdi
addq 0x28(%rcx), %rdi
movl %esi, %eax
movq 0x8(%rbx), %rcx
movq 0x38(%rcx), %rcx
cltq
leaq (%rax,%rax,2), %rax
movq -0x58(%rbp), %rdx
movq %rdx, (%rcx,%rax,8)
movups (%rdi), %xmm0
movups %xmm0, 0x8(%rcx,%rax,8)
movl 0x180(%rbx), %edx
imull 0x184(%rbx), %edx
movq (%rbx), %rdi
movq 0x8(%rbx), %rax
movq 0x38(%rax), %rax
movslq 0x168(%rbx), %rcx
leaq (%rcx,%rcx,2), %rcx
movq (%rax,%rcx,8), %r8
leaq 0x237a(%rip), %rsi      # 0xc2ab
leaq 0x1c3(%rip), %rcx       # 0xa0fb
xorl %eax, %eax
callq 0x70e0
incl 0x168(%rbx)
jmp 0x995a