// File: /workspace/github_c_makefile_star2_O3/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 0x50(%rsp), %rcx
movq %rsi, -0x20(%rcx)
movl $0x0, 0x40(%rcx)
movq $0x0, -0x8(%rcx)
movb $0x0, (%rcx)
movabsq $0x100000000, %rax      # imm = 0x100000000
movq %rax, -0x18(%rcx)
leaq 0x807a(%rip), %rbx      # 0xabf0
leaq 0x30(%rsp), %r14
leaq 0x220(%rsp), %r12
leaq 0x5fae(%rip), %r15      # 0x8b38
movq %r14, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x28a6
cmpl $0x64, %eax
jle 0x2bc5
cmpl $0x6f, %eax
jle 0x2c36
cmpl $0x70, %eax
je 0x2c55
cmpl $0x73, %eax
jne 0x3c8b
movq 0x48(%rsp), %rax
movq %rax, 0x8635(%rip)      # 0xb1f8
jmp 0x2b8a
cmpl $0x55, %eax
jg 0x2bdf
cmpl $0x41, %eax
jne 0x2c81
movl $0x0, 0x8603(%rip)      # 0xb1e0
jmp 0x2b8a
cmpl $0x61, %eax
jne 0x3c64
movq 0x48(%rsp), %r13
testq %r13, %r13
je 0x2c66
callq 0x2070
movq %rax, %rbp
movl $0x0, (%rax)
movq %r13, %rdi
movq %r12, %rsi
movl $0xa, %edx
callq 0x2210
movl %eax, 0x85ca(%rip)      # 0xb1e0
movq 0x220(%rsp), %rax
cmpb $0x0, (%rax)
jne 0x3c58
cmpl $0x0, (%rbp)
je 0x2b8a
jmp 0x3c58
cmpl $0x65, %eax
jne 0x3c70
movq 0x48(%rsp), %rax
testq %rax, %rax
je 0x2c75
movq %rax, 0x8598(%rip)      # 0xb1e8
jmp 0x2b8a
movq 0x48(%rsp), %rax
movq %rax, 0x858f(%rip)      # 0xb1f0
jmp 0x2b8a
movl $0x384, 0x8570(%rip)    # imm = 0x384
jmp 0x2b8a
movq %r15, 0x856c(%rip)      # 0xb1e8
jmp 0x2b8a
cmpl $-0x1, %eax
jne 0x3c8b
movq 0x30(%rsp), %rcx
movslq 0x3c(%rsp), %rax
movq (%rcx,%rax,8), %rbx
movl $0x0, 0x90(%rsp)
testq %rbx, %rbx
je 0x3cbd
incl %eax
movl %eax, 0x3c(%rsp)
movl $0x1, 0x38(%rsp)
movq %rbx, %rdi
callq 0x2110
movq %rax, %r14
movl $0xfffffffe, %r15d      # imm = 0xFFFFFFFE
leaq 0x537e(%rip), %r12      # 0x8050
xorl %r13d, %r13d
movq %rbx, %rdi
movq %r12, %rsi
movq %r14, %rdx
callq 0x20a0
testl %eax, %eax
jne 0x2cf3
testl %r15d, %r15d
jns 0x3c9e
movl %r13d, %r15d
incq %r13
addq $0xc, %r12
cmpq $0x4, %r13
jne 0x2cd5
addl $0x2, %r15d
cmpl $0x5, %r15d
ja 0x3c2c
leaq 0x52fb(%rip), %rax      # 0x8010
movslq (%rax,%r15,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq 0x84cb(%rip), %rdi      # 0xb1f0
callq 0x3ff9
movq %rax, %r12
movq 0x84c4(%rip), %rdi      # 0xb1f8
callq 0x3ff9
movq %rax, 0xc8(%rsp)
movq $0x0, 0x20(%rsp)
movl $0x1d, %eax
movq %rax, 0x28(%rsp)
movl $0x19, %eax
movq %rax, 0x18(%rsp)
movl $0x1, %ebp
leaq 0x7fb6(%rip), %rbx      # 0xad20
leaq 0x30(%rsp), %r14
movl $0x0, 0xc(%rsp)
movl $0x1, 0x14(%rsp)
movl $0x0, 0x10(%rsp)
xorl %r15d, %r15d
movq %r12, (%rsp)
movl %r15d, %ecx
movl %ecx, %r15d
movq %r14, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x28a6
movl $0x1, %ecx
cmpl $0x66, %eax
je 0x2d91
cmpl $0x71, %eax
jg 0x2e3f
leal -0x64(%rax), %ecx
cmpl $0x7, %ecx
ja 0x326d
leaq 0x5261(%rip), %rdx      # 0x8028
movslq (%rdx,%rcx,4), %rax
addq %rdx, %rax
jmpq *%rax
movq 0x48(%rsp), %r13
testq %r13, %r13
je 0x2e30
callq 0x2070
movq %rax, %r12
movl $0x0, (%rax)
movq %r13, %rdi
leaq 0x220(%rsp), %rsi
movl $0xa, %edx
callq 0x2210
cmpl $0x0, (%r12)
jne 0x3cc2
movq 0x220(%rsp), %rcx
cmpb $0x0, (%rcx)
jne 0x3cc2
movq %rax, 0x28(%rsp)
addq $-0x20, %rax
cmpq $-0x1c, %rax
jbe 0x3e19
movq (%rsp), %r12
movl $0x1, %eax
movq %rax, 0x20(%rsp)
jmp 0x2d8e
cmpl $0x72, %eax
je 0x2ed8
cmpl $0x75, %eax
jne 0x3c8b
movl $0x0, 0x14(%rsp)
jmp 0x2d8e
movl $0x1, 0x10(%rsp)
jmp 0x2d8e
movl $0x1, 0xc(%rsp)
jmp 0x2d8e
movq 0x48(%rsp), %r13
callq 0x2070
movq %rax, %r12
movl $0x0, (%rax)
movq %r13, %rdi
leaq 0x220(%rsp), %rsi
movl $0xa, %edx
callq 0x2210
cmpl $0x0, (%r12)
jne 0x3cc2
movq 0x220(%rsp), %rcx
cmpb $0x0, (%rcx)
jne 0x3cc2
leaq -0x20(%rax), %rcx
cmpq $-0x1c, %rcx
movq (%rsp), %r12
jbe 0x3df5
movq %rax, 0x18(%rsp)
jmp 0x2d8e
movq 0x48(%rsp), %r13
callq 0x2070
movq %rax, %r12
movl $0x0, (%rax)
movq %r13, %rdi
leaq 0x220(%rsp), %rsi
movl $0xa, %edx
callq 0x2210
cmpl $0x0, (%r12)
jne 0x3ccb
movq %rax, %rbp
movq 0x220(%rsp), %rax
cmpb $0x0, (%rax)
jne 0x3ccb
cmpq $0x100, %rbp            # imm = 0x100
jae 0x3ccb
movq (%rsp), %r12
jmp 0x2d8e
movq 0x809c(%rip), %rax      # 0xafd8
movq (%rax), %r15
movq 0x808a(%rip), %rax      # 0xafd0
movq (%rax), %r12
movq 0x82a8(%rip), %rdi      # 0xb1f8
callq 0x3ff9
movq %rax, %rbp
xorl %ecx, %ecx
leaq 0x7e5f(%rip), %r14      # 0xadc0
leaq 0x30(%rsp), %r13
movl %ecx, %ebx
movq %r13, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x28a6
movb $0x1, %cl
cmpl $0x64, %eax
je 0x2f66
cmpl $-0x1, %eax
jne 0x3c8b
testq %rbp, %rbp
jne 0x2f99
leaq 0x5831(%rip), %rdi      # 0x87c2
callq 0x4c19
movq %rax, %rbp
leaq 0xd0(%rsp), %rsi
movq %rbp, %rdi
callq 0x406f
movq %rbp, %rdi
callq 0x2040
movq 0x30(%rsp), %rcx
movslq 0x3c(%rsp), %rax
movq (%rcx,%rax,8), %r13
movl $0x0, 0x90(%rsp)
testq %r13, %r13
movq %r15, %rbp
je 0x3565
incl %eax
movl %eax, 0x3c(%rsp)
leaq 0x57eb(%rip), %rsi      # 0x87ce
movq %r13, %rdi
callq 0x22c0
testq %rax, %rax
je 0x3ce0
movq %rax, %rbp
movq 0x30(%rsp), %rcx
movslq 0x3c(%rsp), %rax
movq (%rcx,%rax,8), %rdi
movl $0x0, 0x90(%rsp)
testq %rdi, %rdi
je 0x301b
incl %eax
movl %eax, 0x3c(%rsp)
callq 0x3ff9
movq %rax, %r15
testq %rax, %rax
jne 0x306a
movq %r13, %rdi
callq 0x2110
cmpq $0x9, %rax
jb 0x3e81
movq %rax, %r14
leaq (%rax,%r13), %rsi
addq $-0x8, %rsi
leaq 0x5084(%rip), %rdi      # 0x80d0
callq 0x21d0
testl %eax, %eax
jne 0x3e81
movq %r13, %rdi
callq 0x3ff9
movq %rax, %r15
movb $0x0, -0x8(%rax,%r14)
leaq 0x5c51(%rip), %rsi      # 0x8cc2
movq %r15, %rdi
callq 0x22c0
testq %rax, %rax
je 0x3e01
movq %rax, %r12
cmpq $0x0, 0x8173(%rip)      # 0xb200
je 0x3557
cmpq $0x0, 0x8175(%rip)      # 0xb210
jne 0x3c09
leaq 0x8168(%rip), %rax      # 0xb210
jmp 0x355e
movq 0x813c(%rip), %rdi      # 0xb1f0
callq 0x3ff9
movq %rax, %rbx
leaq 0x4ffd(%rip), %rsi      # 0x80c0
leaq 0x30(%rsp), %rdi
xorl %edx, %edx
callq 0x28a6
cmpl $-0x1, %eax
jne 0x3c8b
testq %rbx, %rbx
jne 0x30ec
leaq 0x5653(%rip), %rdi      # 0x8737
callq 0x4c19
movq %rax, %rbx
leaq 0x220(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x50ff
movq %rbx, %rdi
callq 0x2040
movq %r14, %rdi
callq 0x4b8f
movl $0xa, %edi
callq 0x2050
jmp 0x3c2c
movq 0x7eb3(%rip), %rax      # 0xafd8
movq (%rax), %rbp
movq 0x7ea1(%rip), %rax      # 0xafd0
movq (%rax), %rbx
movq 0x80b7(%rip), %rdi      # 0xb1f0
callq 0x3ff9
movq %rax, %r14
xorl %ecx, %ecx
leaq 0x7c56(%rip), %r12      # 0xada0
leaq 0x30(%rsp), %r13
movl %ecx, %r15d
movq %r13, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x28a6
movb $0x1, %cl
cmpl $0x64, %eax
je 0x314f
cmpl $-0x1, %eax
jne 0x3c8b
testq %r14, %r14
jne 0x3183
leaq 0x55bc(%rip), %rdi      # 0x8737
callq 0x4c19
movq %rax, %r14
leaq 0xd0(%rsp), %rsi
movq %r14, %rdi
callq 0x50ff
movq %r14, %rdi
callq 0x2040
movq 0x30(%rsp), %r12
movslq 0x3c(%rsp), %r14
movq (%r12,%r14,8), %r13
movl $0x0, 0x90(%rsp)
testq %r13, %r13
je 0x3814
leal 0x1(%r14), %eax
movl %eax, 0x3c(%rsp)
leaq 0x5602(%rip), %rsi      # 0x87ce
movq %r13, %rdi
callq 0x22c0
testq %rax, %rax
je 0x3ce0
movq %rax, %rbp
movq 0x8(%r12,%r14,8), %rdi
movl $0x0, 0x90(%rsp)
testq %rdi, %rdi
je 0x31fe
addl $0x2, %r14d
movl %r14d, 0x3c(%rsp)
callq 0x3ff9
testq %rax, %rax
jne 0x3227
leaq 0x4ec1(%rip), %rdx      # 0x80d0
movl $0x2, %edi
movq %r13, %rsi
xorl %eax, %eax
callq 0x4d5d
testq %rax, %rax
je 0x3814
movq %rax, %r14
leaq 0x5a91(%rip), %rsi      # 0x8cc2
movq %rax, %rdi
callq 0x22c0
testq %rax, %rax
je 0x3e25
movq %rax, %rbx
cmpq $0x0, 0x7fb3(%rip)      # 0xb200
je 0x3806
cmpq $0x0, 0x7fb5(%rip)      # 0xb210
jne 0x3c09
leaq 0x7fa8(%rip), %rax      # 0xb210
jmp 0x380d
cmpl $-0x1, %eax
jne 0x3c8b
cmpl $0x0, 0x10(%rsp)
setne %al
cmpl $0x0, 0x20(%rsp)
setne %cl
andb %al, %cl
cmpb $0x1, %cl
je 0x3d41
testq %r12, %r12
movq 0xc8(%rsp), %r14
jne 0x32ad
leaq 0x5492(%rip), %rdi      # 0x8737
callq 0x4c19
movq %rax, %r12
movq %r12, %rdi
callq 0x404a
movl %eax, %ebx
testq %r14, %r14
jne 0x32cb
leaq 0x54ff(%rip), %rdi      # 0x87c2
callq 0x4c19
movq %rax, %r14
movq %r14, %rdi
callq 0x404a
movl 0x10(%rsp), %ecx
orl %ecx, %r15d
je 0x32fd
testl %ecx, %ecx
je 0x330d
testl %eax, %eax
je 0x3e8d
leaq 0xa0(%rsp), %rsi
movq %r14, %rdi
callq 0x406f
jmp 0x33c0
testl %ebx, %ebx
jne 0x3e69
testl %eax, %eax
jne 0x3e78
cmpl $0x0, 0x20(%rsp)
je 0x339e
movq %r14, %r13
leaq 0x53a3(%rip), %rsi      # 0x86c5
leaq 0x220(%rsp), %rbx
movq %rbx, %rdi
callq 0x452f
leaq 0x620(%rsp), %r14
incl %ebp
leaq 0x539a(%rip), %r15      # 0x86dd
decl %ebp
je 0x336d
movq %r14, %rdi
movq %r15, %rsi
callq 0x452f
movq %rbx, %rdi
movq %r14, %rsi
callq 0x21d0
testl %eax, %eax
je 0x3343
leaq 0x5396(%rip), %rdi      # 0x86fe
jmp 0x3cb6
leaq 0x220(%rsp), %rdi
leaq 0xa0(%rsp), %rbx
movq %rbx, %rsi
movq 0x28(%rsp), %rdx
xorl %ecx, %ecx
callq 0x4a21
andb $-0x8, (%rbx)
movb 0x1f(%rbx), %al
andb $0x3f, %al
orb $0x40, %al
movb %al, 0x1f(%rbx)
movq %r13, %r14
jmp 0x33c0
leaq 0xa0(%rsp), %rbx
movl $0x20, %esi
movq %rbx, %rdi
callq 0x5091
andb $-0x8, (%rbx)
movb 0x1f(%rbx), %al
andb $0x3f, %al
orb $0x40, %al
movb %al, 0x1f(%rbx)
movl 0xc(%rsp), %ebx
leaq 0x4cd5(%rip), %rdx      # 0x80a0
leaq 0xd0(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x5510
testl %ebx, %ebx
je 0x3411
movq 0x7be5(%rip), %rax      # 0xafd0
movq (%rax), %rsi
leaq 0x532c(%rip), %rdi      # 0x8721
callq 0x2150
leaq 0xd0(%rsp), %rdi
callq 0x4b8f
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, 0x14(%rsp)
je 0x3a95
cmpl $0x0, 0x18(%rsp)
je 0x3a95
movq %r14, %rbp
leaq 0x5796(%rip), %rsi      # 0x8bea
leaq 0x220(%rsp), %r14
movq %r14, %rdi
callq 0x452f
cmpb $0x0, (%r14)
je 0x3a92
movq %r12, (%rsp)
leaq 0x620(%rsp), %r14
leaq 0x5792(%rip), %rsi      # 0x8c13
movq %r14, %rdi
callq 0x452f
leaq 0x220(%rsp), %rdi
movq %r14, %rsi
callq 0x21d0
testl %eax, %eax
jne 0x3e9c
leaq 0x15c(%rsp), %r15
leaq 0x150(%rsp), %r14
movl $0x8, %esi
movq %r14, %rdi
callq 0x5091
leaq 0x220(%rsp), %rdi
leaq 0x190(%rsp), %r12
movq %r12, %rsi
movq 0x18(%rsp), %r13
movl %r13d, %edx
movq %r14, %rcx
callq 0x4a21
movb %r13b, 0x8(%r14)
leaq 0x1b0(%rsp), %r13
movq %r13, %rdi
callq 0x700c
movl $0x20, %edx
movq %r13, %rdi
movq %r12, %rsi
callq 0x7032
movq %r13, %rdi
movq %r15, %rsi
callq 0x709b
leaq 0x220(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
movl $0x100, %edx            # imm = 0x100
callq 0x5178
movq %r15, %rdi
movq %r14, %rsi
callq 0x51e9
leaq 0xa0(%rsp), %rsi
movq %r15, %rdi
movq %rbx, %rdx
movl $0x20, %ecx
callq 0x51fd
movq (%rsp), %r12
movq %rbp, %r14
jmp 0x3ab0
leaq 0x7ca2(%rip), %rax      # 0xb200
movq %r15, (%rax)
movq %r12, 0x8(%rax)
leaq 0xf0(%rsp), %rdi
movl $0x8, %esi
movl $0x1, %edx
movq %rbp, %rcx
callq 0x20e0
testq %rax, %rax
je 0x3d01
leaq 0xa0(%rsp), %rdi
movl $0x20, %esi
movl $0x1, %edx
movq %rbp, %rcx
callq 0x20e0
testq %rax, %rax
je 0x3d13
leaq 0x110(%rsp), %r15
leaq 0xd0(%rsp), %rsi
leaq 0xa0(%rsp), %rdx
movq %r15, %rdi
callq 0x5510
leaq 0x1b0(%rsp), %r14
movq %r14, %rdi
callq 0x700c
movl $0x20, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x7032
leaq 0x130(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x709b
addb $0x3, (%r15)
movq 0xf0(%rsp), %rax
cmpq (%r15), %rax
jne 0x3d1c
movq %r13, (%rsp)
leaq 0x150(%rsp), %r15
leaq 0x110(%rsp), %r14
movq %r15, %rdi
movq %r14, %rsi
movl $0x100, %edx            # imm = 0x100
callq 0x5178
leaq 0xf0(%rsp), %rsi
movq %r15, %rdi
callq 0x51e9
leaq 0x220(%rsp), %rdi
movq %r14, %rsi
callq 0x4fd2
leaq 0x27bc2(%rip), %r15     # 0x2b220
movl $0x20, %esi
movl $0x1, %edx
movq %r15, %rdi
movq %rbp, %r14
movq %rbp, %rcx
callq 0x20e0
testq %rax, %rax
je 0x3d25
leaq 0x37bba(%rip), %rbp     # 0x3b240
movl $0x1, %esi
movl $0x10000, %edx          # imm = 0x10000
leaq 0x27ba9(%rip), %rdi     # 0x2b240
movq %r14, %rcx
callq 0x20e0
testq %rax, %rax
je 0x3719
movq %rax, %r13
leaq 0x150(%rsp), %rdi
movq %r15, %rsi
movq %rbp, %rdx
movl %r13d, %ecx
callq 0x51fd
leaq 0x220(%rsp), %rdi
movq %rbp, %rsi
movq %r13, %rdx
callq 0x7032
movl $0x1, %edx
movq %rbp, %rdi
movq %r13, %rsi
movq %r12, %rcx
callq 0x2320
testq %rax, %rax
je 0x3caf
movdqu (%r13,%r15), %xmm0
movdqu 0x10(%r13,%r15), %xmm1
movdqa %xmm1, 0x27b2e(%rip)    # 0x2b230
movdqa %xmm0, 0x27b16(%rip)    # 0x2b220
cmpq $0xffff, %r13           # imm = 0xFFFF
ja 0x3686
jmp 0x3729
movq %r14, %rdi
callq 0x20d0
testl %eax, %eax
jne 0x3e51
leaq 0x220(%rsp), %rdi
leaq 0x110(%rsp), %rsi
leaq 0x190(%rsp), %r15
movq %r15, %rdx
callq 0x501b
movdqa 0x27acf(%rip), %xmm0    # 0x2b220
movdqa 0x27ad7(%rip), %xmm1    # 0x2b230
pcmpeqb 0x10(%r15), %xmm1
pcmpeqb (%r15), %xmm0
pand %xmm1, %xmm0
pmovmskb %xmm0, %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
jne 0x3d6e
movq %r12, %rdi
callq 0x2240
testl %eax, %eax
movq (%rsp), %r15
jne 0x3d7a
movq 0x7846(%rip), %rax      # 0xafd8
cmpq (%rax), %r14
je 0x379f
movq %r14, %rdi
callq 0x2100
movq 0x782a(%rip), %rax      # 0xafd0
cmpq (%rax), %r12
je 0x37eb
movb $0x1, %cl
xorl %eax, %eax
leaq 0x7a4a(%rip), %rdx      # 0xb200
shlq $0x4, %rax
cmpq %r12, 0x8(%rax,%rdx)
je 0x37d5
movl $0x1, %eax
testb $0x1, %cl
movl $0x0, %ecx
jne 0x37b6
jmp 0x3c09
addq %rdx, %rax
addq $0x8, %rax
movq $0x0, (%rax)
movq %r12, %rdi
callq 0x2100
testq %r15, %r15
sete %al
notb %bl
orb %al, %bl
testb $0x1, %bl
jne 0x3c2c
movq %r15, %rdi
jmp 0x3a88
leaq 0x79f3(%rip), %rax      # 0xb200
movq %r14, (%rax)
movq %rbx, 0x8(%rax)
leaq 0xa0(%rsp), %r14
movl $0x20, %esi
movq %r14, %rdi
callq 0x5091
andb $-0x8, (%r14)
movb 0x1f(%r14), %al
andb $0x3f, %al
orb $0x40, %al
movb %al, 0x1f(%r14)
leaq 0x4860(%rip), %rdx      # 0x80a0
leaq 0x110(%rsp), %rdi
movq %r14, %rsi
callq 0x5510
leaq 0x130(%rsp), %r12
leaq 0xd0(%rsp), %rdx
movq %r12, %rdi
movq %r14, %rsi
callq 0x5510
leaq 0x1b0(%rsp), %r14
movq %r14, %rdi
callq 0x700c
movl $0x20, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0x7032
leaq 0xf0(%rsp), %r12
movq %r14, %rdi
movq %r12, %rsi
callq 0x709b
addb $0x3, (%r12)
movl $0x8, %esi
movl $0x1, %edx
movq %r12, %rdi
movq %rbx, %rcx
callq 0x2320
testq %rax, %rax
je 0x3cf8
movq %rbx, %rcx
movq %rbp, %rbx
movq %r13, (%rsp)
leaq 0x110(%rsp), %rdi
movl $0x20, %esi
movl $0x1, %edx
movq %rcx, %r13
callq 0x2320
testq %rax, %rax
je 0x3d0a
leaq 0x150(%rsp), %r12
leaq 0x130(%rsp), %r14
movq %r12, %rdi
movq %r14, %rsi
movl $0x100, %edx            # imm = 0x100
callq 0x5178
leaq 0xf0(%rsp), %rsi
movq %r12, %rdi
callq 0x51e9
leaq 0x220(%rsp), %rdi
movq %r14, %rsi
callq 0x4fd2
leaq 0x78eb(%rip), %rbp      # 0xb220
leaq 0x178e4(%rip), %r14     # 0x1b220
movl $0x1, %esi
movl $0x10000, %edx          # imm = 0x10000
movq %rbp, %rdi
movq %rbx, %rcx
callq 0x20e0
testq %rax, %rax
je 0x39a9
movq %rax, %r12
leaq 0x220(%rsp), %rdi
movq %rbp, %rsi
movq %rax, %rdx
callq 0x7032
leaq 0x150(%rsp), %rdi
movq %rbp, %rsi
movq %r14, %rdx
movl %r12d, %ecx
callq 0x51fd
movl $0x1, %edx
movq %r14, %rdi
movq %r12, %rsi
movq %r13, %rcx
callq 0x2320
testq %rax, %rax
je 0x3ca6
cmpq $0xffff, %r12           # imm = 0xFFFF
ja 0x393c
jmp 0x39b9
movq %rbx, %rdi
callq 0x20d0
testl %eax, %eax
jne 0x3e45
leaq 0x220(%rsp), %rdi
leaq 0x130(%rsp), %rsi
leaq 0x190(%rsp), %r14
movq %r14, %rdx
callq 0x501b
movl $0x20, %esi
movl $0x1, %edx
movq %r14, %rdi
movq %r13, %r12
movq %r13, %rcx
callq 0x2320
testq %rax, %rax
movq (%rsp), %r14
je 0x3d4d
movq %r12, %rdi
callq 0x2240
testl %eax, %eax
movq 0x75c1(%rip), %r12      # 0xafd0
movq 0x75c2(%rip), %rax      # 0xafd8
jne 0x3d59
cmpq (%rax), %rbx
je 0x3a29
movq %rbx, %rdi
callq 0x2100
cmpq (%r12), %r13
je 0x3a6f
movb $0x1, %cl
xorl %eax, %eax
leaq 0x77c6(%rip), %rdx      # 0xb200
shlq $0x4, %rax
cmpq %r13, 0x8(%rax,%rdx)
je 0x3a59
movl $0x1, %eax
testb $0x1, %cl
movl $0x0, %ecx
jne 0x3a3a
jmp 0x3c09
addq %rdx, %rax
addq $0x8, %rax
movq $0x0, (%rax)
movq %r13, %rdi
callq 0x2100
testq %r14, %r14
sete %al
notb %r15b
orb %al, %r15b
testb $0x1, %r15b
jne 0x3c2c
movq %r14, %rdi
callq 0x2090
jmp 0x3c2c
movq %rbp, %r14
movdqa 0xa0(%rsp), %xmm0
movdqa 0xb0(%rsp), %xmm1
movdqa %xmm1, 0x10(%rbx)
movdqa %xmm0, (%rbx)
movq %r14, %rdi
movl $0x41, %esi
movl $0x180, %edx            # imm = 0x180
xorl %eax, %eax
callq 0x22b0
cmpl $-0x1, %eax
je 0x3cd4
leaq 0x51ee(%rip), %rsi      # 0x8cc2
movl %eax, %edi
callq 0x2260
testq %rax, %rax
je 0x3cd4
movq %rax, %rbx
cmpq $0x0, 0x7711(%rip)      # 0xb200
je 0x3b08
cmpq $0x0, 0x7717(%rip)      # 0xb210
jne 0x3c09
leaq 0x770a(%rip), %rax      # 0xb210
jmp 0x3b0f
leaq 0x76f1(%rip), %rax      # 0xb200
movq %r14, %r15
movq %r14, (%rax)
movq %rbx, 0x8(%rax)
leaq 0x150(%rsp), %rdi
movl $0x40, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2320
testq %rax, %rax
je 0x3d95
movb $0x1, %cl
xorl %eax, %eax
leaq 0x76b9(%rip), %r14      # 0xb200
shlq $0x4, %rax
cmpq %rbx, 0x8(%rax,%r14)
je 0x3b66
movl $0x1, %eax
testb $0x1, %cl
movl $0x0, %ecx
jne 0x3b47
jmp 0x3c09
addq %r14, %rax
addq $0x8, %rax
movq $0x0, (%rax)
movq %rbx, %rdi
callq 0x2100
testl %eax, %eax
jne 0x3da4
leaq 0x5137(%rip), %rsi      # 0x8cc2
movq %r12, %rdi
callq 0x22c0
testq %rax, %rax
je 0x3dbc
movq %rax, %rbx
cmpq $0x0, 0x7659(%rip)      # 0xb200
je 0x3bba
cmpq $0x0, 0x765f(%rip)      # 0xb210
jne 0x3c09
leaq 0x7656(%rip), %r14      # 0xb210
movq %r12, (%r14)
movq %rbx, 0x8(%r14)
leaq 0xd0(%rsp), %rdi
movl $0x20, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2320
testq %rax, %rax
je 0x3dd1
movb $0x1, %cl
xorl %eax, %eax
leaq 0x7611(%rip), %rdx      # 0xb200
shlq $0x4, %rax
cmpq %rbx, 0x8(%rax,%rdx)
je 0x3c0e
movl $0x1, %eax
testb $0x1, %cl
movl $0x0, %ecx
jne 0x3bef
callq 0x2060
addq %rdx, %rax
addq $0x8, %rax
movq $0x0, (%rax)
movq %rbx, %rdi
callq 0x2100
testl %eax, %eax
jne 0x3ddd
movq 0x75cd(%rip), %rdi      # 0xb200
callq 0x2040
movq 0x75d1(%rip), %rdi      # 0xb210
callq 0x2040
xorl %eax, %eax
addq $0xa28, %rsp            # imm = 0xA28
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x450a(%rip), %rdi      # 0x8169
movq %r13, %rsi
jmp 0x3c97
cmpl $0x56, %eax
jne 0x3c8b
callq 0x3fed
jmp 0x3c84
cmpl $0x68, %eax
jne 0x3c8b
movq 0x7354(%rip), %rax      # 0xafd0
movq (%rax), %rdi
callq 0x3faf
xorl %edi, %edi
callq 0x2300
leaq 0x50a8(%rip), %rdi      # 0x8d3a
leaq 0x50(%rsp), %rsi
xorl %eax, %eax
callq 0x3ea8
movq %rbx, %rdi
callq 0x2445
leaq 0x511a(%rip), %rdi      # 0x8dc7
jmp 0x3cb6
leaq 0x5267(%rip), %rdi      # 0x8f1d
xorl %eax, %eax
callq 0x3ea8
callq 0x2471
leaq 0x4903(%rip), %rdi      # 0x85cc
jmp 0x3c5f
leaq 0x496f(%rip), %rdi      # 0x8641
jmp 0x3c5f
leaq 0x4f7c(%rip), %rdi      # 0x8c57
jmp 0x3e94
callq 0x2070
movl (%rax), %edi
callq 0x2340
leaq 0x5025(%rip), %rdi      # 0x8d18
jmp 0x3e14
leaq 0x5064(%rip), %rdi      # 0x8d63
jmp 0x3cb6
leaq 0x515b(%rip), %rdi      # 0x8e63
jmp 0x3cb6
leaq 0x5070(%rip), %rdi      # 0x8d81
jmp 0x3cb6
leaq 0x5168(%rip), %rdi      # 0x8e82
jmp 0x3cb6
leaq 0x5189(%rip), %rdi      # 0x8eac
jmp 0x3cb6
movq %r14, %rdi
callq 0x20d0
testl %eax, %eax
jne 0x3e5d
leaq 0x51a9(%rip), %rdi      # 0x8ee5
jmp 0x3cb6
leaq 0x4916(%rip), %rdi      # 0x865e
jmp 0x3cb6
leaq 0x5091(%rip), %rdi      # 0x8de5
jmp 0x3cb6
callq 0x2070
movl (%rax), %edi
callq 0x2340
leaq 0x50a3(%rip), %rdi      # 0x8e0f
jmp 0x3d8d
leaq 0x51c5(%rip), %rdi      # 0x8f3a
jmp 0x3cb6
callq 0x2070
movl (%rax), %edi
callq 0x2340
leaq 0x51c0(%rip), %rdi      # 0x8f4d
movq %rax, %rsi
jmp 0x3c97
leaq 0x4ee4(%rip), %rdi      # 0x8c80
movq %r15, %rsi
jmp 0x3c97
callq 0x2070
movl (%rax), %edi
callq 0x2340
leaq 0x4ee7(%rip), %rdi      # 0x8c9e
movq %r15, %rsi
jmp 0x3e3b
callq 0x2070
movl (%rax), %edi
callq 0x2340
leaq 0x4ef6(%rip), %rdi      # 0x8cc5
jmp 0x3df0
leaq 0x4ea8(%rip), %rdi      # 0x8c80
jmp 0x3e70
callq 0x2070
movl (%rax), %edi
callq 0x2340
leaq 0x4eae(%rip), %rdi      # 0x8c9e
movq %r12, %rsi
jmp 0x3e3b
leaq 0x4814(%rip), %rdi      # 0x8610
jmp 0x3c5f
callq 0x2070
movl (%rax), %edi
callq 0x2340
leaq 0x4f29(%rip), %rdi      # 0x8d3d
movq %r13, %rsi
jmp 0x3e3b
leaq 0x47c3(%rip), %rdi      # 0x85e3
jmp 0x3c5f
callq 0x2070
movl (%rax), %edi
callq 0x2340
leaq 0x4f05(%rip), %rdi      # 0x8d3d
movq %r14, %rsi
movq %rax, %rdx
xorl %eax, %eax
callq 0x3ea8
leaq 0x4f5e(%rip), %rdi      # 0x8daa
jmp 0x3cb6
leaq 0x50a7(%rip), %rdi      # 0x8eff
jmp 0x3cb6
leaq 0x5065(%rip), %rdi      # 0x8ec9
jmp 0x3cb6
leaq 0x4819(%rip), %rdi      # 0x8689
movq %r12, %rsi
jmp 0x3c97
leaq 0x480a(%rip), %rdi      # 0x8689
jmp 0x3e94
leaq 0x4faf(%rip), %rdi      # 0x8e37
jmp 0x3c5f
leaq 0x4810(%rip), %rdi      # 0x86a4
movq %r14, %rsi
jmp 0x3c97
leaq 0x4d91(%rip), %rdi      # 0x8c34
jmp 0x3cb6