// File: /workspace/github_c_makefile_star2_O1/skeeto[P]enchive/src/enchive.c
// Function: main
int
main(int argc, char **argv)
{
    static const struct optparse_long global[] = {
#if ENCHIVE_OPTION_AGENT
        {"agent",         'a', OPTPARSE_OPTIONAL},
        {"no-agent",      'A', OPTPARSE_NONE},
#endif
        {"pinentry",      'e', OPTPARSE_OPTIONAL},
        {"pubkey",        'p', OPTPARSE_REQUIRED},
        {"seckey",        's', OPTPARSE_REQUIRED},
        {"version",       'V', OPTPARSE_NONE},
        {"help",          'h', OPTPARSE_NONE},
        {0, 0, 0}
    };

    int option;
    char *command;
    struct optparse options[1];
    optparse_init(options, argv);
    options->permute = 0;
    (void)argc;

    while ((option = optparse_long(options, global, 0)) != -1) {
        switch (option) {
#if ENCHIVE_OPTION_AGENT
            case 'a':
                if (options->optarg) {
                    char *arg = options->optarg;
                    char *endptr;
                    errno = 0;
                    global_agent_timeout = strtol(arg, &endptr, 10);
                    if (*endptr || errno)
                        fatal("invalid --agent argument -- %s", arg);
                } else
                    global_agent_timeout = ENCHIVE_AGENT_TIMEOUT;
                break;
            case 'A':
                global_agent_timeout = 0;
                break;
#endif
            case 'e':
                if (options->optarg)
                    pinentry_path = options->optarg;
                else
                    pinentry_path = STR(ENCHIVE_PINENTRY_DEFAULT);
                break;
            case 'p':
                global_pubkey = options->optarg;
                break;
            case 's':
                global_seckey = options->optarg;
                break;
            case 'h':
                print_usage(stdout);
                exit(EXIT_SUCCESS);
                break;
            case 'V':
                print_version();
                exit(EXIT_SUCCESS);
                break;
            default:
                fatal("%s", options->errmsg);
        }
    }

    command = optparse_arg(options);
    options->permute = 1;
    if (!command) {
        fprintf(stderr, "enchive: missing command\n");
        print_usage(stderr);
        exit(EXIT_FAILURE);
    }

#ifdef _WIN32
    /* Set stdin/stdout to binary mode. */
    _setmode(0, 0x8000);
    _setmode(1, 0x8000);
#endif

    switch (parse_command(command)) {
        case COMMAND_UNKNOWN:
        case COMMAND_AMBIGUOUS:
            fprintf(stderr, "enchive: unknown command, %s\n", command);
            print_usage(stderr);
            exit(EXIT_FAILURE);
            break;
        case COMMAND_KEYGEN:
            command_keygen(options);
            break;
        case COMMAND_FINGERPRINT:
            command_fingerprint(options);
            break;
        case COMMAND_ARCHIVE:
            command_archive(options);
            break;
        case COMMAND_EXTRACT:
            command_extract(options);
            break;
    }

    cleanup_free();
    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa28, %rsp            # imm = 0xA28
leaq 0x38(%rsp), %rax
movq %rsi, -0x8(%rax)
movl $0x0, 0x58(%rax)
movq $0x0, 0x10(%rax)
leaq 0x50(%rsp), %rcx
movb $0x0, (%rcx)
movabsq $0x100000000, %rax      # imm = 0x100000000
movq %rax, -0x18(%rcx)
leaq 0x7ffa(%rip), %r14      # 0xabf0
leaq 0x30(%rsp), %r12
leaq 0x220(%rsp), %r13
leaq 0x5f17(%rip), %rbx      # 0x8b21
movq %r12, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x28bc
cmpl $0x64, %eax
jle 0x2c45
cmpl $0x6f, %eax
jle 0x2cb6
cmpl $0x70, %eax
je 0x2cd5
cmpl $0x73, %eax
jne 0x3d71
movq 0x48(%rsp), %rax
movq %rax, 0x85b5(%rip)      # 0xb1f8
jmp 0x2c0a
cmpl $0x55, %eax
jg 0x2c5f
cmpl $0x41, %eax
jne 0x2d01
movl $0x0, 0x8583(%rip)      # 0xb1e0
jmp 0x2c0a
cmpl $0x61, %eax
jne 0x3d4a
movq 0x48(%rsp), %rbp
testq %rbp, %rbp
je 0x2ce6
callq 0x2070
movq %rax, %r15
movl $0x0, (%rax)
movq %rbp, %rdi
movq %r13, %rsi
movl $0xa, %edx
callq 0x2210
movl %eax, 0x854a(%rip)      # 0xb1e0
movq 0x220(%rsp), %rax
cmpb $0x0, (%rax)
jne 0x3d3e
cmpl $0x0, (%r15)
je 0x2c0a
jmp 0x3d3e
cmpl $0x65, %eax
jne 0x3d56
movq 0x48(%rsp), %rax
testq %rax, %rax
je 0x2cf5
movq %rax, 0x8518(%rip)      # 0xb1e8
jmp 0x2c0a
movq 0x48(%rsp), %rax
movq %rax, 0x850f(%rip)      # 0xb1f0
jmp 0x2c0a
movl $0x384, 0x84f0(%rip)    # imm = 0x384
jmp 0x2c0a
movq %rbx, 0x84ec(%rip)      # 0xb1e8
jmp 0x2c0a
cmpl $-0x1, %eax
jne 0x3d71
movq 0x30(%rsp), %rcx
movslq 0x3c(%rsp), %rax
movq (%rcx,%rax,8), %r14
movl $0x0, 0x90(%rsp)
testq %r14, %r14
je 0x3d9b
incl %eax
movl %eax, 0x3c(%rsp)
movl $0x1, 0x38(%rsp)
movq %r14, %rdi
callq 0x2110
movq %rax, %rbx
movl $0xfffffffe, %r15d      # imm = 0xFFFFFFFE
leaq 0x530e(%rip), %r12      # 0x8060
xorl %r13d, %r13d
movq %r14, %rdi
movq %r12, %rsi
movq %rbx, %rdx
callq 0x20a0
testl %eax, %eax
jne 0x2d6f
testl %r15d, %r15d
jns 0x2d7e
movl %r13d, %r15d
incq %r13
addq $0xc, %r12
cmpq $0x4, %r13
jne 0x2d55
jmp 0x2d84
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
addl $0x2, %r15d
cmpl $0x5, %r15d
ja 0x3d0e
leaq 0x5287(%rip), %rax      # 0x8020
movslq (%rax,%r15,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq 0x8447(%rip), %rdi      # 0xb1f0
callq 0x40e7
movq %rax, %r15
movq 0x8440(%rip), %rdi      # 0xb1f8
callq 0x40e7
movq %rax, 0xc8(%rsp)
movq $0x0, 0x28(%rsp)
movl $0x1d, %eax
movq %rax, 0x98(%rsp)
movl $0x19, %eax
movq %rax, 0x20(%rsp)
movl $0x1, %ebp
leaq 0x7f2f(%rip), %rbx      # 0xad20
leaq 0x30(%rsp), %r14
movl $0x0, 0x1c(%rsp)
movl $0x1, 0x18(%rsp)
movl $0x0, 0x8(%rsp)
xorl %r12d, %r12d
movq %r15, 0x10(%rsp)
movl %r12d, %ecx
movl %ecx, %r12d
movq %r14, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x28bc
movl $0x1, %ecx
cmpl $0x66, %eax
je 0x2e19
cmpl $0x71, %eax
jg 0x2eca
leal -0x64(%rax), %ecx
cmpl $0x7, %ecx
ja 0x3350
leaq 0x51e9(%rip), %rdx      # 0x8038
movslq (%rdx,%rcx,4), %rax
addq %rdx, %rax
jmpq *%rax
movq 0x48(%rsp), %r13
testq %r13, %r13
je 0x2ebb
callq 0x2070
movq %rax, %r15
movl $0x0, (%rax)
movq %r13, %rdi
leaq 0x220(%rsp), %rsi
movl $0xa, %edx
callq 0x2210
cmpl $0x0, (%r15)
jne 0x3da5
movq 0x220(%rsp), %rcx
cmpb $0x0, (%rcx)
jne 0x3da5
movq %rax, 0x98(%rsp)
addq $-0x20, %rax
cmpq $-0x1c, %rax
jbe 0x3f48
movq 0x10(%rsp), %r15
movl $0x1, %eax
movq %rax, 0x28(%rsp)
jmp 0x2e16
cmpl $0x72, %eax
je 0x2f63
cmpl $0x75, %eax
jne 0x3d71
movl $0x0, 0x18(%rsp)
jmp 0x2e16
movl $0x1, 0x8(%rsp)
jmp 0x2e16
movl $0x1, 0x1c(%rsp)
jmp 0x2e16
movq 0x48(%rsp), %r13
callq 0x2070
movq %rax, %r15
movl $0x0, (%rax)
movq %r13, %rdi
leaq 0x220(%rsp), %rsi
movl $0xa, %edx
callq 0x2210
cmpl $0x0, (%r15)
jne 0x3da5
movq 0x220(%rsp), %rcx
cmpb $0x0, (%rcx)
jne 0x3da5
leaq -0x20(%rax), %rcx
cmpq $-0x1c, %rcx
movq 0x10(%rsp), %r15
jbe 0x3ed1
movq %rax, 0x20(%rsp)
jmp 0x2e16
movq 0x48(%rsp), %r13
callq 0x2070
movq %rax, %r15
movl $0x0, (%rax)
movq %r13, %rdi
leaq 0x220(%rsp), %rsi
movl $0xa, %edx
callq 0x2210
cmpl $0x0, (%r15)
jne 0x3db9
movq %rax, %rbp
movq 0x220(%rsp), %rax
cmpb $0x0, (%rax)
jne 0x3db9
cmpq $0x100, %rbp            # imm = 0x100
jae 0x3db9
movq 0x10(%rsp), %r15
jmp 0x2e16
movq 0x8011(%rip), %rax      # 0xafd8
movq (%rax), %r12
movq 0x7fff(%rip), %rax      # 0xafd0
movq (%rax), %rbp
movq 0x821d(%rip), %rdi      # 0xb1f8
callq 0x40e7
movq %rax, %rbx
xorl %ecx, %ecx
leaq 0x7dd4(%rip), %r14      # 0xadc0
leaq 0x30(%rsp), %r15
movl %ecx, %r13d
movq %r15, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x28bc
movb $0x1, %cl
cmpl $0x64, %eax
je 0x2ff1
cmpl $-0x1, %eax
jne 0x3d71
testq %rbx, %rbx
movq %r12, %r14
jne 0x3028
leaq 0x578b(%rip), %rdi      # 0x87ab
callq 0x4d24
movq %rax, %rbx
leaq 0xd0(%rsp), %rsi
movq %rbx, %rdi
callq 0x415d
movq %rbx, %rdi
callq 0x2040
movq 0x30(%rsp), %rcx
movslq 0x3c(%rsp), %rax
movq (%rcx,%rax,8), %r12
movl $0x0, 0x90(%rsp)
testq %r12, %r12
je 0x3064
incl %eax
movl %eax, 0x3c(%rsp)
testq %r12, %r12
je 0x3084
leaq 0x5747(%rip), %rsi      # 0x87b7
movq %r12, %rdi
callq 0x22c0
movq %rax, %r14
testq %rax, %rax
je 0x3eda
movq 0x30(%rsp), %rcx
movslq 0x3c(%rsp), %rax
movq (%rcx,%rax,8), %rdi
movl $0x0, 0x90(%rsp)
testq %rdi, %rdi
je 0x30a8
incl %eax
movl %eax, 0x3c(%rsp)
callq 0x40e7
movq %rax, %r15
testq %r12, %r12
je 0x30fb
testq %r15, %r15
jne 0x30fb
movq %r12, %rdi
callq 0x2110
cmpq $0x9, %rax
jb 0x3dc5
movq %rax, %rbx
leaq (%r12,%rax), %rsi
addq $-0x8, %rsi
leaq 0x5002(%rip), %rdi      # 0x80e0
callq 0x21d0
testl %eax, %eax
jne 0x3dc5
movq %r12, %rdi
callq 0x40e7
movq %rax, %r15
movb $0x0, -0x8(%rax,%rbx)
testq %r15, %r15
je 0x36da
leaq 0x5ba0(%rip), %rsi      # 0x8cab
movq %r15, %rdi
callq 0x22c0
testq %rax, %rax
je 0x3f1f
movq %rax, %rbp
cmpq $0x0, 0x80d9(%rip)      # 0xb200
je 0x36cc
movq 0x80dc(%rip), %rax      # 0xb210
xorl %edx, %edx
testb $0x1, %dl
jne 0x3cf0
movl %edx, %ecx
movb $0x1, %dl
testq %rax, %rax
jne 0x3136
movq %r15, 0x80c1(%rip)      # 0xb210
movq %rbp, 0x80c2(%rip)      # 0xb218
testb $0x1, %cl
je 0x36da
jmp 0x3cf0
movq 0x8085(%rip), %rdi      # 0xb1f0
callq 0x40e7
movq %rax, %rbx
leaq 0x4f56(%rip), %rsi      # 0x80d0
leaq 0x30(%rsp), %rdi
xorl %edx, %edx
callq 0x28bc
cmpl $-0x1, %eax
jne 0x3d71
testq %rbx, %rbx
jne 0x31a3
leaq 0x5585(%rip), %rdi      # 0x8720
callq 0x4d24
movq %rax, %rbx
leaq 0x220(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x51f6
movq %rbx, %rdi
callq 0x2040
movq %r14, %rdi
callq 0x4c9a
movl $0xa, %edi
callq 0x2050
jmp 0x3d0e
movq 0x7dfc(%rip), %rax      # 0xafd8
movq (%rax), %r13
movq 0x7dea(%rip), %rax      # 0xafd0
movq (%rax), %rbp
movq 0x8000(%rip), %rdi      # 0xb1f0
callq 0x40e7
movq %rax, %r14
xorl %ecx, %ecx
leaq 0x7b9f(%rip), %r12      # 0xada0
leaq 0x30(%rsp), %r15
movl %ecx, %ebx
movq %r15, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x28bc
movb $0x1, %cl
cmpl $0x64, %eax
je 0x3206
cmpl $-0x1, %eax
jne 0x3d71
testq %r14, %r14
movq %r13, %r12
jne 0x323c
leaq 0x54ec(%rip), %rdi      # 0x8720
callq 0x4d24
movq %rax, %r14
leaq 0xd0(%rsp), %rsi
movq %r14, %rdi
callq 0x51f6
movq %r14, %rdi
callq 0x2040
movq 0x30(%rsp), %rcx
movslq 0x3c(%rsp), %rax
movq (%rcx,%rax,8), %r14
movl $0x0, 0x90(%rsp)
testq %r14, %r14
je 0x3278
incl %eax
movl %eax, 0x3c(%rsp)
testq %r14, %r14
je 0x3298
leaq 0x5533(%rip), %rsi      # 0x87b7
movq %r14, %rdi
callq 0x22c0
movq %rax, %r12
testq %rax, %rax
je 0x3eef
movq 0x30(%rsp), %rcx
movslq 0x3c(%rsp), %rax
movq (%rcx,%rax,8), %rdi
movl $0x0, 0x90(%rsp)
testq %rdi, %rdi
je 0x32bc
incl %eax
movl %eax, 0x3c(%rsp)
callq 0x40e7
movq %rax, %r15
testq %r14, %r14
je 0x32e7
testq %r15, %r15
jne 0x32e7
leaq 0x4e0b(%rip), %rdx      # 0x80e0
movl $0x2, %edi
movq %r14, %rsi
xorl %eax, %eax
callq 0x4e68
movq %rax, %r15
testq %r15, %r15
je 0x3466
leaq 0x59b4(%rip), %rsi      # 0x8cab
movq %r15, %rdi
callq 0x22c0
testq %rax, %rax
je 0x3f07
movq %rax, %rbp
cmpq $0x0, 0x7eed(%rip)      # 0xb200
je 0x3458
movq 0x7ef0(%rip), %rax      # 0xb210
xorl %edx, %edx
testb $0x1, %dl
jne 0x3cf0
movl %edx, %ecx
movb $0x1, %dl
testq %rax, %rax
jne 0x3322
movq %r15, 0x7ed5(%rip)      # 0xb210
movq %rbp, 0x7ed6(%rip)      # 0xb218
testb $0x1, %cl
je 0x3466
jmp 0x3cf0
cmpl $-0x1, %eax
jne 0x3d71
cmpl $0x0, 0x8(%rsp)
setne %al
cmpl $0x0, 0x28(%rsp)
setne %cl
andb %al, %cl
cmpb $0x1, %cl
je 0x3dce
testq %r15, %r15
movq 0xc8(%rsp), %r14
jne 0x3390
leaq 0x5398(%rip), %rdi      # 0x8720
callq 0x4d24
movq %rax, %r15
movq %r15, %rdi
callq 0x4138
movl %eax, %ebx
testq %r14, %r14
jne 0x33ae
leaq 0x5405(%rip), %rdi      # 0x87ab
callq 0x4d24
movq %rax, %r14
movq %r14, %rdi
callq 0x4138
orl 0x8(%rsp), %r12d
jne 0x33cd
testl %ebx, %ebx
jne 0x3f6f
testl %eax, %eax
jne 0x3f7e
cmpl $0x0, 0x8(%rsp)
je 0x33f1
testl %eax, %eax
je 0x3f3f
leaq 0xa0(%rsp), %rsi
movq %r14, %rdi
callq 0x415d
jmp 0x39e5
cmpl $0x0, 0x28(%rsp)
je 0x39c3
movq %r14, %r13
movq %r15, %r12
leaq 0x52a5(%rip), %rsi      # 0x86ae
leaq 0x220(%rsp), %rbx
movq %rbx, %rdi
callq 0x4654
leaq 0x620(%rsp), %r14
incl %ebp
leaq 0x529c(%rip), %r15      # 0x86c6
decl %ebp
je 0x398c
movq %r14, %rdi
movq %r15, %rsi
callq 0x4654
movq %rbx, %rdi
movq %r14, %rsi
callq 0x21d0
testl %eax, %eax
je 0x342a
leaq 0x5294(%rip), %rdi      # 0x86e7
jmp 0x3d94
movq %r15, 0x7da1(%rip)      # 0xb200
movq %rbp, 0x7da2(%rip)      # 0xb208
movq %r14, 0x8(%rsp)
leaq 0xa0(%rsp), %r14
movl $0x20, %esi
movq %r14, %rdi
callq 0x5188
andb $-0x8, (%r14)
movb 0x1f(%r14), %al
andb $0x3f, %al
orb $0x40, %al
movb %al, 0x1f(%r14)
leaq 0x4c19(%rip), %rdx      # 0x80b0
leaq 0x110(%rsp), %rdi
movq %r14, %rsi
callq 0x55fc
leaq 0x130(%rsp), %r15
leaq 0xd0(%rsp), %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x55fc
leaq 0x1b0(%rsp), %r14
movq %r14, %rdi
callq 0x7029
movl $0x20, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x704f
leaq 0xf0(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x70b5
addb $0x3, (%r15)
movl $0x8, %esi
movl $0x1, %edx
movq %r15, %rdi
movq %rbp, %rcx
callq 0x2320
testq %rax, %rax
je 0x3dd7
leaq 0x110(%rsp), %rdi
movl $0x20, %esi
movl $0x1, %edx
movq %rbp, %r13
movq %rbp, %rcx
callq 0x2320
testq %rax, %rax
je 0x3de0
leaq 0x150(%rsp), %r15
leaq 0x130(%rsp), %r14
movq %r15, %rdi
movq %r14, %rsi
movl $0x100, %edx            # imm = 0x100
callq 0x5270
leaq 0xf0(%rsp), %rsi
movq %r15, %rdi
callq 0x52e1
leaq 0x220(%rsp), %rdi
movq %r14, %rsi
callq 0x50dd
leaq 0x7c9c(%rip), %rbp      # 0xb220
leaq 0x17c95(%rip), %r14     # 0x1b220
movl $0x1, %esi
movl $0x10000, %edx          # imm = 0x10000
movq %rbp, %rdi
movq %r12, %r15
movq %r12, %rcx
callq 0x20e0
testq %rax, %rax
je 0x35fe
movq %rax, %r12
leaq 0x220(%rsp), %rdi
movq %rbp, %rsi
movq %rax, %rdx
callq 0x704f
leaq 0x150(%rsp), %rdi
movq %rbp, %rsi
movq %r14, %rdx
movl %r12d, %ecx
callq 0x52f5
movl $0x1, %edx
movq %r14, %rdi
movq %r12, %rsi
movq %r13, %rcx
callq 0x2320
testq %rax, %rax
je 0x3d84
cmpq $0xffff, %r12           # imm = 0xFFFF
movq %r15, %r12
ja 0x358b
jmp 0x3611
movq %r15, %r12
movq %r15, %rdi
callq 0x20d0
testl %eax, %eax
jne 0x3f57
leaq 0x220(%rsp), %rdi
leaq 0x130(%rsp), %rsi
leaq 0x190(%rsp), %r14
movq %r14, %rdx
callq 0x511c
movl $0x20, %esi
movl $0x1, %edx
movq %r14, %rdi
movq %r13, %rcx
callq 0x2320
testq %rax, %rax
je 0x3e3b
movq %r13, %rdi
callq 0x2240
testl %eax, %eax
jne 0x3e47
movq 0x7972(%rip), %rax      # 0xafd8
cmpq (%rax), %r12
je 0x3673
movq %r12, %rdi
callq 0x2100
movq 0x7956(%rip), %rax      # 0xafd0
cmpq (%rax), %r13
je 0x36af
xorl %eax, %eax
leaq 0x7b78(%rip), %rcx      # 0xb200
cmpq %r13, 0x8(%rax,%rcx)
je 0x369e
addq $0x10, %rax
cmpq $0x10, %rax
je 0x3688
jmp 0x3cf0
movq $0x0, 0x8(%rax,%rcx)
movq %r13, %rdi
callq 0x2100
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
sete %al
notb %bl
orb %al, %bl
testb $0x1, %bl
je 0x3982
jmp 0x3d0e
movq %r15, 0x7b2d(%rip)      # 0xb200
movq %rbp, 0x7b2e(%rip)      # 0xb208
leaq 0xf0(%rsp), %rdi
movl $0x8, %esi
movl $0x1, %edx
movq %r14, %rcx
callq 0x20e0
testq %rax, %rax
je 0x3de9
leaq 0xa0(%rsp), %rdi
movl $0x20, %esi
movl $0x1, %edx
movq %r14, 0x8(%rsp)
movq %r14, %rcx
callq 0x20e0
testq %rax, %rax
je 0x3df2
leaq 0x110(%rsp), %rbx
leaq 0xd0(%rsp), %rsi
leaq 0xa0(%rsp), %rdx
movq %rbx, %rdi
callq 0x55fc
leaq 0x1b0(%rsp), %r14
movq %r14, %rdi
callq 0x7029
movl $0x20, %edx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x704f
leaq 0x130(%rsp), %rbx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x70b5
addb $0x3, (%rbx)
movq 0xf0(%rsp), %rax
cmpq (%rbx), %rax
jne 0x3dfb
movq %rbp, %rbx
movq %r12, 0x10(%rsp)
leaq 0x150(%rsp), %r15
leaq 0x110(%rsp), %r14
movq %r15, %rdi
movq %r14, %rsi
movl $0x100, %edx            # imm = 0x100
callq 0x5270
leaq 0xf0(%rsp), %rsi
movq %r15, %rdi
callq 0x52e1
leaq 0x220(%rsp), %rdi
movq %r14, %rsi
callq 0x50dd
leaq 0x27a45(%rip), %r15     # 0x2b220
movl $0x20, %esi
movl $0x1, %edx
movq %r15, %rdi
movq 0x8(%rsp), %r14
movq %r14, %rcx
callq 0x20e0
testq %rax, %rax
je 0x3e04
leaq 0x37a3b(%rip), %rbp     # 0x3b240
leaq 0x220(%rsp), %r12
movl $0x1, %esi
movl $0x10000, %edx          # imm = 0x10000
leaq 0x27a22(%rip), %rdi     # 0x2b240
movq %r14, %rcx
callq 0x20e0
testq %rax, %rax
je 0x389f
movq %rax, %r14
leaq 0x150(%rsp), %rdi
movq %r15, %rsi
movq %rbp, %rdx
movl %r14d, %ecx
callq 0x52f5
movq %r12, %rdi
movq %rbp, %rsi
movq %r14, %rdx
callq 0x704f
movl $0x1, %edx
movq %rbp, %rdi
movq %r14, %rsi
movq %rbx, %rcx
callq 0x2320
testq %rax, %rax
je 0x3d8d
movdqu (%r14,%r15), %xmm0
movdqu 0x10(%r14,%r15), %xmm1
movdqa %xmm1, 0x279ad(%rip)    # 0x2b230
movdqa %xmm0, 0x27995(%rip)    # 0x2b220
cmpq $0xffff, %r14           # imm = 0xFFFF
movq 0x8(%rsp), %r14
ja 0x380d
jmp 0x38b1
movq 0x8(%rsp), %rdi
callq 0x20d0
testl %eax, %eax
jne 0x3f63
leaq 0x220(%rsp), %rdi
leaq 0x110(%rsp), %rsi
leaq 0x190(%rsp), %r14
movq %r14, %rdx
callq 0x511c
movdqa 0x27947(%rip), %xmm0    # 0x2b220
movdqa 0x2794f(%rip), %xmm1    # 0x2b230
pcmpeqb 0x10(%r14), %xmm1
pcmpeqb (%r14), %xmm0
pand %xmm1, %xmm0
pmovmskb %xmm0, %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
jne 0x3e5c
movq %rbx, %r14
movq %rbx, %rdi
callq 0x2240
testl %eax, %eax
movq 0x10(%rsp), %rbx
movq 0x76b8(%rip), %r15      # 0xafd0
movq 0x76b9(%rip), %rax      # 0xafd8
jne 0x3e68
movq 0x8(%rsp), %rdi
cmpq (%rax), %rdi
je 0x3934
callq 0x2100
cmpq (%r15), %r14
je 0x3969
xorl %eax, %eax
leaq 0x78be(%rip), %rcx      # 0xb200
cmpq %r14, 0x8(%rax,%rcx)
je 0x3958
addq $0x10, %rax
cmpq $0x10, %rax
je 0x3942
jmp 0x3cf0
movq $0x0, 0x8(%rax,%rcx)
movq %r14, %rdi
callq 0x2100
testq %rbx, %rbx
sete %al
notb %r13b
orb %al, %r13b
testb $0x1, %r13b
jne 0x3d0e
movq %rbx, %rdi
callq 0x2090
jmp 0x3d0e
leaq 0x220(%rsp), %rdi
leaq 0xa0(%rsp), %rbx
movq %rbx, %rsi
movq 0x98(%rsp), %rdx
xorl %ecx, %ecx
callq 0x4b2e
andb $-0x8, (%rbx)
movb 0x1f(%rbx), %al
andb $0x3f, %al
orb $0x40, %al
movb %al, 0x1f(%rbx)
movq %r12, %r15
movq %r13, %r14
jmp 0x39e5
leaq 0xa0(%rsp), %rbx
movl $0x20, %esi
movq %rbx, %rdi
callq 0x5188
andb $-0x8, (%rbx)
movb 0x1f(%rbx), %al
andb $0x3f, %al
orb $0x40, %al
movb %al, 0x1f(%rbx)
leaq 0x46c4(%rip), %rdx      # 0x80b0
leaq 0xd0(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x55fc
cmpl $0x0, 0x1c(%rsp)
je 0x3a35
movq 0x75c1(%rip), %rax      # 0xafd0
movq (%rax), %rsi
leaq 0x4cf1(%rip), %rdi      # 0x870a
callq 0x2150
leaq 0xd0(%rsp), %rdi
callq 0x4c9a
movl $0xa, %edi
callq 0x2050
pxor %xmm0, %xmm0
leaq 0x170(%rsp), %rbx
movdqa %xmm0, 0x10(%rbx)
movdqa %xmm0, (%rbx)
movdqa %xmm0, -0x10(%rbx)
movdqa %xmm0, -0x20(%rbx)
movb $0x3, -0x17(%rbx)
cmpl $0x0, 0x18(%rsp)
je 0x3b7d
cmpl $0x0, 0x20(%rsp)
je 0x3b7d
movq %r14, %rbp
leaq 0x515b(%rip), %rsi      # 0x8bd3
leaq 0x220(%rsp), %r14
movq %r14, %rdi
callq 0x4654
cmpb $0x0, (%r14)
je 0x3b7a
movq %r15, 0x10(%rsp)
leaq 0x620(%rsp), %r14
leaq 0x5156(%rip), %rsi      # 0x8bfc
movq %r14, %rdi
callq 0x4654
leaq 0x220(%rsp), %rdi
movq %r14, %rsi
callq 0x21d0
testl %eax, %eax
jne 0x3f99
leaq 0x15c(%rsp), %r15
leaq 0x150(%rsp), %r14
movl $0x8, %esi
movq %r14, %rdi
callq 0x5188
leaq 0x220(%rsp), %rdi
leaq 0x190(%rsp), %r13
movq %r13, %rsi
movq 0x20(%rsp), %r12
movl %r12d, %edx
movq %r14, %rcx
callq 0x4b2e
movb %r12b, 0x8(%r14)
leaq 0x1b0(%rsp), %r12
movq %r12, %rdi
callq 0x7029
movl $0x20, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x704f
movq %r12, %rdi
movq %r15, %rsi
callq 0x70b5
leaq 0x220(%rsp), %r15
movq %r15, %rdi
movq %r13, %rsi
movl $0x100, %edx            # imm = 0x100
callq 0x5270
movq %r15, %rdi
movq %r14, %rsi
callq 0x52e1
leaq 0xa0(%rsp), %rsi
movq %r15, %rdi
movq %rbx, %rdx
movl $0x20, %ecx
callq 0x52f5
movq 0x10(%rsp), %r15
movq %rbp, %r14
jmp 0x3b98
movq %rbp, %r14
movdqa 0xa0(%rsp), %xmm0
movdqa 0xb0(%rsp), %xmm1
movdqa %xmm1, 0x10(%rbx)
movdqa %xmm0, (%rbx)
xorl %ebx, %ebx
movq %r14, %rdi
movl $0x41, %esi
movl $0x180, %edx            # imm = 0x180
xorl %eax, %eax
callq 0x22b0
cmpl $-0x1, %eax
je 0x3bc4
leaq 0x50f1(%rip), %rsi      # 0x8cab
movl %eax, %edi
callq 0x2260
movq %rax, %rbx
testq %rbx, %rbx
je 0x3e20
cmpq $0x0, 0x762b(%rip)      # 0xb200
je 0x3bf5
cmpq $0x0, 0x7631(%rip)      # 0xb210
jne 0x3cf0
leaq 0x7624(%rip), %rax      # 0xb210
leaq 0x7625(%rip), %rcx      # 0xb218
jmp 0x3c03
leaq 0x7604(%rip), %rax      # 0xb200
leaq 0x7605(%rip), %rcx      # 0xb208
movq %r14, %r12
movq %r14, (%rax)
movq %rbx, (%rcx)
leaq 0x150(%rsp), %rdi
movl $0x40, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2320
testq %rax, %rax
je 0x3e2c
xorl %eax, %eax
leaq 0x75c8(%rip), %r14      # 0xb200
cmpq %rbx, 0x8(%rax,%r14)
je 0x3c4e
addq $0x10, %rax
cmpq $0x10, %rax
je 0x3c38
jmp 0x3cf0
movq $0x0, 0x8(%rax,%r14)
movq %rbx, %rdi
callq 0x2100
testl %eax, %eax
jne 0x3e83
leaq 0x503d(%rip), %rsi      # 0x8cab
movq %r15, %rdi
callq 0x22c0
testq %rax, %rax
je 0x3e9b
movq %rax, %rbx
cmpq $0x0, 0x7576(%rip)      # 0xb200
je 0x3ca6
cmpq $0x0, 0x757c(%rip)      # 0xb210
jne 0x3cf0
leaq 0x7573(%rip), %r14      # 0xb210
leaq 0x7574(%rip), %rax      # 0xb218
jmp 0x3cad
leaq 0x755b(%rip), %rax      # 0xb208
movq %r15, (%r14)
movq %rbx, (%rax)
leaq 0xd0(%rsp), %rdi
movl $0x20, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2320
testq %rax, %rax
je 0x3eb0
xorl %eax, %eax
leaq 0x7521(%rip), %rcx      # 0xb200
cmpq %rbx, 0x8(%rax,%rcx)
je 0x3cf5
addq $0x10, %rax
cmpq $0x10, %rax
je 0x3cdf
callq 0x2060
movq $0x0, 0x8(%rax,%rcx)
movq %rbx, %rdi
callq 0x2100
testl %eax, %eax
jne 0x3ebc
xorl %ebx, %ebx
leaq 0x74e9(%rip), %r14      # 0xb200
movq (%rbx,%r14), %rdi
callq 0x2040
addq $0x10, %rbx
cmpq $0x10, %rbx
je 0x3d17
xorl %eax, %eax
addq $0xa28, %rsp            # imm = 0xA28
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x440d(%rip), %rdi      # 0x8152
movq %rbp, %rsi
jmp 0x3d7d
cmpl $0x56, %eax
jne 0x3d71
callq 0x40db
jmp 0x3d6a
cmpl $0x68, %eax
jne 0x3d71
movq 0x726e(%rip), %rax      # 0xafd0
movq (%rax), %rdi
callq 0x409d
xorl %edi, %edi
callq 0x2300
leaq 0x4fab(%rip), %rdi      # 0x8d23
leaq 0x50(%rsp), %rsi
xorl %eax, %eax
callq 0x3fa5
leaq 0x5025(%rip), %rdi      # 0x8db0
jmp 0x3d94
leaq 0x5172(%rip), %rdi      # 0x8f06
xorl %eax, %eax
callq 0x3fa5
leaq 0x38(%rsp), %rdi
callq 0x2471
leaq 0x4809(%rip), %rdi      # 0x85b5
jmp 0x3f4f
movq %r14, %rdi
callq 0x2445
leaq 0x486a(%rip), %rdi      # 0x862a
jmp 0x3f4f
leaq 0x5054(%rip), %rdi      # 0x8e20
jmp 0x3e33
leaq 0x4872(%rip), %rdi      # 0x8647
jmp 0x3d94
leaq 0x4f6e(%rip), %rdi      # 0x8d4c
jmp 0x3d94
leaq 0x4f83(%rip), %rdi      # 0x8d6a
jmp 0x3d94
leaq 0x505c(%rip), %rdi      # 0x8e4c
jmp 0x3d94
leaq 0x5072(%rip), %rdi      # 0x8e6b
jmp 0x3d94
leaq 0x5093(%rip), %rdi      # 0x8e95
jmp 0x3d94
movq %r14, %rdi
callq 0x20d0
testl %eax, %eax
jne 0x3f8d
leaq 0x50b3(%rip), %rdi      # 0x8ece
jmp 0x3d94
leaq 0x4e19(%rip), %rdi      # 0x8c40
jmp 0x3f85
leaq 0x4e36(%rip), %rdi      # 0x8c69
movq %r12, %rsi
jmp 0x3d7d
leaq 0x4f8c(%rip), %rdi      # 0x8dce
jmp 0x3d94
callq 0x2070
movl (%rax), %edi
callq 0x2340
leaq 0x4f9e(%rip), %rdi      # 0x8df8
jmp 0x3e7b
leaq 0x50c0(%rip), %rdi      # 0x8f23
jmp 0x3d94
callq 0x2070
movl (%rax), %edi
callq 0x2340
leaq 0x50bb(%rip), %rdi      # 0x8f36
movq %rax, %rsi
jmp 0x3d7d
callq 0x2070
movl (%rax), %edi
callq 0x2340
leaq 0x4df1(%rip), %rdi      # 0x8c87
jmp 0x3f32
callq 0x2070
movl (%rax), %edi
callq 0x2340
leaq 0x4e00(%rip), %rdi      # 0x8cae
jmp 0x3f1a
leaq 0x4db2(%rip), %rdi      # 0x8c69
jmp 0x3f76
callq 0x2070
movl (%rax), %edi
callq 0x2340
leaq 0x4db8(%rip), %rdi      # 0x8c87
jmp 0x3f1a
leaq 0x4721(%rip), %rdi      # 0x85f9
jmp 0x3f4f
callq 0x2070
movl (%rax), %edi
callq 0x2340
leaq 0x4e14(%rip), %rdi      # 0x8d01
jmp 0x3f32
callq 0x2070
movl (%rax), %edi
callq 0x2340
leaq 0x4dff(%rip), %rdi      # 0x8d01
movq %r14, %rsi
jmp 0x3f35
callq 0x2070
movl (%rax), %edi
callq 0x2340
leaq 0x4e0c(%rip), %rdi      # 0x8d26
movq %r15, %rsi
jmp 0x3f35
callq 0x2070
movl (%rax), %edi
callq 0x2340
leaq 0x4df4(%rip), %rdi      # 0x8d26
movq %r12, %rsi
movq %rax, %rdx
xorl %eax, %eax
callq 0x3fa5
leaq 0x4747(%rip), %rdi      # 0x868d
jmp 0x3f85
leaq 0x467d(%rip), %rdi      # 0x85cc
movq %r13, %rsi
jmp 0x3d7d
leaq 0x4e35(%rip), %rdi      # 0x8d93
jmp 0x3d94
leaq 0x4f7e(%rip), %rdi      # 0x8ee8
jmp 0x3d94
leaq 0x46fc(%rip), %rdi      # 0x8672
movq %r15, %rsi
jmp 0x3d7d
leaq 0x46ed(%rip), %rdi      # 0x8672
movq %r14, %rsi
jmp 0x3d7d
leaq 0x4f1e(%rip), %rdi      # 0x8eb2
jmp 0x3d94
leaq 0x4c7d(%rip), %rdi      # 0x8c1d
jmp 0x3d94