// File: /workspace/github_cpp_makefile_star2_O3/cphinton42[P]hinton-language/src/check.cpp
// Function: do_typecheck_job(Context*, Job)
bool do_typecheck_job(Context *ctx, Job job)
{
    Expr_AST *type = job.typecheck.type;
    AST *ast = job.typecheck.ast;
    
    switch(ast->type)
    {
        case AST_Type::decl_ast: {
            Decl_AST *decl_ast = static_cast<Decl_AST*>(ast);
            assert(type == nullptr);
            return typecheck_decl(ctx, job.stage, decl_ast);
        } break;
        case AST_Type::block_ast: {
            Block_AST *block_ast = static_cast<Block_AST*>(ast);
            assert(type == nullptr);
            for(u64 i = 0; i < block_ast->statements.count; ++i)
            {
                auto job = make_typecheck_job(nullptr, block_ast->statements[i]);
                do_typecheck_job(ctx, job);
            }
            return true;
        } break;
        case AST_Type::while_ast: {
            While_AST *while_ast = static_cast<While_AST*>(ast);
            assert(type == nullptr);
            
            auto job = make_typecheck_job(&boollike_t_ast, while_ast->guard);
            do_typecheck_job(ctx, job);
            job = make_typecheck_job(nullptr, while_ast->body);
            do_typecheck_job(ctx, job);
            return true;
        } break;
        case AST_Type::for_ast: {
            For_AST *for_ast = static_cast<For_AST*>(ast);
            assert(type == nullptr);
            
            if(for_ast->flags & FOR_FLAG_OVER_ARRAY)
            {
                // TODO: once built-in arrays are a thing, check this
                report_error("For loop over array not yet supported at type level", for_ast);
                ctx->success = false;
            }
            else
            {
                // TODO: find best type? (change to u64 if out of range for s64?)
                // If ints can't downcast, it might be a pain for 'it' to be big
                set_resolved_type(for_ast->induction_var, &s64_t_ast);
                
                auto job = make_typecheck_job(&intlike_t_ast, for_ast->low_expr);
                do_typecheck_job(ctx, job);
                job = make_typecheck_job(&intlike_t_ast, for_ast->high_expr);
                do_typecheck_job(ctx, job);
            }
            
            auto job = make_typecheck_job(nullptr, for_ast->body);
            do_typecheck_job(ctx, job);
            return true;
        } break;
        case AST_Type::if_ast: {
            If_AST *if_ast = static_cast<If_AST*>(ast);
            assert(type == nullptr);
            
            auto job = make_typecheck_job(&boollike_t_ast, if_ast->guard);
            do_typecheck_job(ctx, job);
            job = make_typecheck_job(nullptr, if_ast->then_block);
            do_typecheck_job(ctx, job);
            if(if_ast->else_block)
            {
                job = make_typecheck_job(nullptr, if_ast->else_block);
                do_typecheck_job(ctx, job);
            }
            return true;
        } break;
        case AST_Type::assign_ast: {
            Assign_AST *assign_ast = static_cast<Assign_AST*>(ast);
            assert(type == nullptr);
            return typecheck_assign(ctx, job.stage, assign_ast);
        } break;
        case AST_Type::return_ast: {
            Return_AST *return_ast = static_cast<Return_AST*>(ast);
            assert(type == nullptr);
            assert(job.stage == 0);
            return typecheck_return(ctx, return_ast);
        } break;
        
        case AST_Type::ident_ast: {
            Ident_AST *ident_ast = static_cast<Ident_AST*>(ast);
            return typecheck_ident(ctx, job.stage, type, ident_ast);
        } break;
        case AST_Type::function_type_ast: {
            Function_Type_AST *function_type_ast = static_cast<Function_Type_AST*>(ast);
            return typecheck_function_type(ctx, job.stage, type, function_type_ast);
        } break;
        case AST_Type::function_ast: {
            Function_AST *function_ast = static_cast<Function_AST*>(ast);
            return typecheck_function(ctx, job.stage, type, function_ast);
        } break;
        case AST_Type::function_call_ast: {
            Function_Call_AST *function_call_ast = static_cast<Function_Call_AST*>(ast);
            return typecheck_function_call(ctx, job.stage, type, function_call_ast);
        } break;
        case AST_Type::access_ast: {
            Access_AST *access_ast = static_cast<Access_AST*>(ast);
            return typecheck_access(ctx, job.stage, type, access_ast);
        } break;
        case AST_Type::binary_operator_ast: {
            Binary_Operator_AST *binop_ast = static_cast<Binary_Operator_AST*>(ast);
            return typecheck_binop_ast(ctx, job.stage, type, binop_ast);
        } break;
        case AST_Type::number_ast: {
            Number_AST *number_ast = static_cast<Number_AST*>(ast);
            assert(job.stage == 0);
            return typecheck_number(ctx, type, number_ast);
        } break;
        case AST_Type::enum_ast: {
            Enum_AST *enum_ast = static_cast<Enum_AST*>(ast);
            return typecheck_enum(ctx, job.stage, type, enum_ast);
        } break;
        case AST_Type::struct_ast: {
            Struct_AST *struct_ast = static_cast<Struct_AST*>(ast);
            return typecheck_struct(ctx, job.stage, type, struct_ast);
        } break;
        case AST_Type::unary_ast: {
            Unary_Operator_AST *unop_ast = static_cast<Unary_Operator_AST*>(ast);
            return typecheck_unary(ctx, job.stage, type, unop_ast);
        } break;
        case AST_Type::primitive_ast: {
            Primitive_AST *prim_ast = static_cast<Primitive_AST*>(ast);
            assert(job.stage == 0);
            return typecheck_primitive(ctx, type, prim_ast);
        } break;
        case AST_Type::string_ast: {
            String_AST *string_ast = static_cast<String_AST*>(ast);
            assert(job.stage == 0);
            return typecheck_string(ctx, type, string_ast);
        } break;
        case AST_Type::bool_ast: {
            Bool_AST *bool_ast = static_cast<Bool_AST*>(ast);
            assert(job.stage == 0);
            return typecheck_bool(ctx, type, bool_ast);
        } break;
    }
    
    assert(false);
    return false;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x138, %rsp            # imm = 0x138
movq %rdi, 0x18(%rsp)
leaq 0x170(%rsp), %rbx
movq 0x8(%rbx), %r13
movq 0x10(%rbx), %rbp
leaq 0xbd81(%rip), %r14      # 0x10060
leaq 0x11b92(%rip), %r12     # 0x15e78
xorl %ecx, %ecx
movzwl (%rbp), %eax
cmpq $0x13, %rax
ja 0x653d
movslq (%r14,%rax,4), %rax
addq %r14, %rax
jmpq *%rax
testq %r13, %r13
jne 0x64ff
movq 0x10(%rbp), %rax
movq $0x0, 0xc8(%rsp)
movq %r12, 0xd0(%rsp)
movq %rax, 0xd8(%rsp)
movq %rax, 0x10(%rsp)
movups 0xc8(%rsp), %xmm0
movups %xmm0, (%rsp)
movq 0x18(%rsp), %rdi
callq 0x42b2
movl $0x18, %eax
jmp 0x44a7
testq %r13, %r13
jne 0x651e
testb $0x8, 0x2(%rbp)
jne 0x447e
movq 0x10(%rbp), %rax
movq $0x1, 0x10(%rax)
leaq 0x11925(%rip), %rcx     # 0x15c98
movq %rcx, 0x18(%rax)
movq 0x18(%rbp), %rax
xorl %ecx, %ecx
movq %rcx, 0xb0(%rsp)
leaq 0x11a74(%rip), %r13     # 0x15e00
movq %r13, 0xb8(%rsp)
movq %rax, 0xc0(%rsp)
movq %rax, 0x10(%rsp)
movups 0xb0(%rsp), %xmm0
movups %xmm0, (%rsp)
movq 0x18(%rsp), %r15
movq %r15, %rdi
callq 0x42b2
movq 0x20(%rbp), %rax
xorl %ecx, %ecx
movq %rcx, 0x98(%rsp)
movq %r13, 0xa0(%rsp)
movq %rax, 0xa8(%rsp)
movq %rax, 0x10(%rsp)
movups 0x98(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r15, %rdi
callq 0x42b2
jmp 0x44a2
testq %r13, %r13
jne 0x64e0
movq %rcx, %r15
movq 0x10(%rbp), %rax
movq $0x0, 0x80(%rsp)
movq %r12, 0x88(%rsp)
movq %rax, 0x90(%rsp)
movq %rax, 0x10(%rsp)
movups 0x80(%rsp), %xmm0
movups %xmm0, (%rsp)
movq 0x18(%rsp), %r13
movq %r13, %rdi
callq 0x42b2
movq 0x18(%rbp), %rax
xorps %xmm0, %xmm0
movaps %xmm0, 0xe0(%rsp)
movq %rax, 0xf0(%rsp)
movq %rax, 0x10(%rsp)
movaps 0xe0(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r13, %rdi
callq 0x42b2
movq 0x20(%rbp), %rbp
testq %rbp, %rbp
jne 0x44ac
jmp 0x5b9e
movl 0x8(%rbp), %esi
movl 0xc(%rbp), %edx
leaq 0xc8dd(%rip), %rdi      # 0x10d68
leaq 0xc968(%rip), %rcx      # 0x10dfa
xorl %eax, %eax
callq 0x416b
movq 0x18(%rsp), %rax
movb $0x0, 0x10(%rax)
movl $0x28, %eax
movq (%rbp,%rax), %rbp
xorps %xmm0, %xmm0
movups %xmm0, (%rbx)
movq %rbp, 0x10(%rbx)
movb $0x1, %cl
xorl %r13d, %r13d
jmp 0x42e8
movq %r13, %r12
movl 0x4(%rbx), %ebx
cmpl $0x1, %ebx
movq 0x18(%rsp), %r13
je 0x4f2f
testl %ebx, %ebx
jne 0x4506
testq %r12, %r12
je 0x4f2f
leaq 0x118f0(%rip), %rdx     # 0x15dd8
movq %r13, %rdi
movq %r12, %rsi
movq %rcx, %r14
movl $0x1, %ecx
callq 0x6979
movq %r14, %rcx
testl %eax, %eax
je 0x4f2f
movq %rcx, %r15
movq 0x8(%r13), %r14
movq (%r14), %rax
cmpq 0x10(%r14), %rax
jne 0x453f
movq 0x11653(%rip), %rcx     # 0x15b70
movq 0x11644(%rip), %rdx     # 0x15b68
shlq $0x2, %rax
testq %rax, %rax
movl $0x4, %esi
cmovneq %rax, %rsi
movq %r14, %rdi
callq 0xeb85
movq (%r14), %rax
movq 0x8(%r14), %rcx
leaq (%rax,%rax,2), %rax
movq $0x0, (%rcx,%rax,8)
movq %r12, 0x8(%rcx,%rax,8)
movq %rbp, 0x10(%rcx,%rax,8)
incq (%r14)
xorl %r14d, %r14d
movq %r15, %rcx
jmp 0x4f8c
movq %r13, 0x38(%rsp)
movq %rcx, %r13
movl 0x4(%rbx), %r12d
cmpq $0x3, %r12
ja 0x5448
movq 0x20(%rbp), %r14
leaq 0xbbcc(%rip), %rax      # 0x10154
movslq (%rax,%r12,4), %rcx
addq %rax, %rcx
movq %r14, %rax
jmpq *%rcx
cmpq $0x1, 0x10(%r14)
movq %r14, %rax
je 0x53ae
leaq 0x10(%r14), %r15
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq %r14, 0x30(%rsp)
movq %r14, 0x10(%rsp)
movups %xmm0, (%rsp)
movq 0x18(%rsp), %rdi
callq 0x42b2
jmp 0x539b
cmpl $0x0, 0x4(%rbx)
jne 0x65b9
movq %rcx, %r15
movzwl 0x2(%rbp), %ebx
movl %ebx, %eax
orl $0x20, %eax
movw %ax, 0x2(%rbp)
testq %r13, %r13
movq 0x18(%rsp), %r14
je 0x5034
leaq 0x20(%rsp), %rdx
movq %r14, %rdi
movq %r13, %rsi
callq 0x684d
testl %eax, %eax
jne 0x616a
movq 0x20(%rsp), %rax
cmpw $0x11, (%rax)
jne 0x582d
movq 0x20(%rax), %rcx
testb $0x60, %cl
jne 0x504d
leaq 0xd2e7(%rip), %rcx      # 0x11915
jmp 0x5834
testq %r13, %r13
jne 0x65d8
movq %rcx, %r12
movl 0x4(%rbx), %ebx
cmpq $0x3, %rbx
movq 0x18(%rsp), %r13
ja 0x5543
leaq 0xbb1c(%rip), %rax      # 0x10174
movslq (%rax,%rbx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0x18(%rbp), %r14
movq 0x18(%rbp), %rax
cmpq $0x1, 0x10(%rax)
je 0x54c8
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq %rax, 0x30(%rsp)
movq %rax, 0x10(%rsp)
movups %xmm0, (%rsp)
movq %r13, %rdi
callq 0x42b2
jmp 0x54c8
movq %r13, 0x38(%rsp)
movl 0x4(%rbx), %r12d
testl %r12d, %r12d
je 0x5135
cmpl $0x2, %r12d
movq 0x18(%rsp), %r13
je 0x5180
xorl %ebx, %ebx
cmpl $0x1, %r12d
jne 0x595c
movq 0x20(%rbp), %r14
addq $0x10, %r14
jmp 0x5171
movq %r13, 0x38(%rsp)
movl 0x4(%rbx), %ebx
testl %ebx, %ebx
je 0x526a
cmpl $0x1, %ebx
movq 0x18(%rsp), %r13
je 0x512c
xorl %r15d, %r15d
cmpl $0x2, %ebx
jne 0x59ef
movq 0x28(%rbp), %r14
andq $-0x8, %r14
jmp 0x52f7
movq %r13, 0x38(%rsp)
movq %rcx, 0x60(%rsp)
movl 0x4(%rbx), %r12d
cmpq $0x3, %r12
ja 0x54b8
leaq 0xba3d(%rip), %rax      # 0x10164
movslq (%rax,%r12,4), %rcx
addq %rax, %rcx
jmpq *%rcx
orb $0x20, 0x2(%rbp)
movq 0x20(%rbp), %rax
movl $0x1, %ecx
movq %rcx, 0x10(%rax)
leaq 0x11690(%rip), %rbx     # 0x15dd8
movq %rbx, 0x18(%rax)
movq 0x20(%rbp), %rax
movq %rcx, 0x10(%rbp)
movq %rax, 0x18(%rbp)
movq 0x20(%rax), %r14
testq %r14, %r14
je 0x47a8
movq 0x28(%rax), %r15
xorl %r13d, %r13d
movq (%r15,%r13,8), %rax
testq %rax, %rax
je 0x479c
movq $0x0, 0x20(%rsp)
movq %rbx, 0x28(%rsp)
movq %rax, 0x30(%rsp)
movq %rax, 0x10(%rsp)
movups 0x20(%rsp), %xmm0
movups %xmm0, (%rsp)
movq 0x18(%rsp), %rdi
callq 0x42b2
incq %r13
cmpq %r13, %r14
jne 0x4768
movq 0x20(%rbp), %rax
movq 0x30(%rax), %r14
testq %r14, %r14
je 0x47f8
movq 0x38(%rax), %r15
xorl %r13d, %r13d
movq (%r15,%r13,8), %rax
testq %rax, %rax
je 0x657b
movq $0x0, 0x40(%rsp)
movq %rbx, 0x48(%rsp)
movq %rax, 0x50(%rsp)
movq %rax, 0x10(%rsp)
movups 0x40(%rsp), %xmm0
movups %xmm0, (%rsp)
movq 0x18(%rsp), %rdi
callq 0x42b2
incq %r13
cmpq %r13, %r14
jne 0x47b8
movq 0x20(%rbp), %rcx
movq 0x38(%rbp), %rbx
movq 0x20(%rcx), %rax
movq 0x28(%rcx), %r14
movq 0x40(%rbp), %r15
testq %rax, %rax
movq 0x18(%rsp), %r13
je 0x483b
xorl %ecx, %ecx
cmpq $0x0, (%r15,%rcx,8)
je 0x4833
movq (%r14,%rcx,8), %rdx
testq %rdx, %rdx
je 0x4833
cmpq $0x1, 0x10(%rdx)
jne 0x5a60
incq %rcx
cmpq %rcx, %rax
jne 0x4818
testq %rbx, %rbx
je 0x4883
xorl %r13d, %r13d
movq (%r15,%r13,8), %rax
testq %rax, %rax
je 0x487b
movq (%r14,%r13,8), %rcx
movq $0x0, 0x68(%rsp)
movq %rcx, 0x70(%rsp)
movq %rax, 0x78(%rsp)
movq %rax, 0x10(%rsp)
movups 0x68(%rsp), %xmm0
movups %xmm0, (%rsp)
movq 0x18(%rsp), %rdi
callq 0x42b2
incq %r13
cmpq %r13, %rbx
jne 0x4843
movq 0x20(%rbp), %rax
movq 0x20(%rax), %rcx
movq 0x28(%rax), %rax
testq %rcx, %rcx
movq 0x18(%rsp), %r13
je 0x48ce
movq 0x40(%rbp), %rdx
xorl %esi, %esi
cmpq $0x0, (%rax,%rsi,8)
jne 0x48c6
movq (%rdx,%rsi,8), %rdi
testq %rdi, %rdi
je 0x659a
cmpq $0x1, 0x10(%rdi)
jne 0x5a59
movq 0x18(%rdi), %rdi
movq %rdi, (%rax,%rsi,8)
incq %rsi
cmpq %rsi, %rcx
jne 0x489f
movq 0x28(%rbp), %rcx
testq %rcx, %rcx
je 0x4907
movq 0x30(%rbp), %rdx
xorl %esi, %esi
movq (%rax,%rsi,8), %rdi
testq %rdi, %rdi
je 0x655c
movq (%rdx,%rsi,8), %r8
testq %r8, %r8
je 0x48ff
movq $0x1, 0x10(%r8)
movq %rdi, 0x18(%r8)
incq %rsi
cmpq %rsi, %rcx
jne 0x48dd
movq 0x48(%rbp), %rax
xorps %xmm0, %xmm0
movaps %xmm0, 0x120(%rsp)
movq %rax, 0x130(%rsp)
movq %rax, 0x10(%rsp)
movaps 0x120(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r13, %rdi
callq 0x42b2
movq 0x18(%rbp), %rdx
movq 0x18(%rsp), %r13
movq %r13, %rdi
movq 0x38(%rsp), %rsi
movl $0x1, %ecx
callq 0x6979
movl $0x3, %ebx
testl %eax, %eax
jne 0x5a65
movl $0x4, %ebx
jmp 0x5ac0
movl 0x4(%rbx), %r12d
movq 0x20(%rbp), %rax
cmpq $0x4, %rax
ja 0x5715
movq %rcx, %r15
leaq 0xb73f(%rip), %rcx      # 0x100c4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %r13, %rbx
cmpl $0x2, %r12d
je 0x4a10
cmpl $0x1, %r12d
je 0x49cf
xorl %r13d, %r13d
testl %r12d, %r12d
jne 0x6353
testq %rbx, %rbx
je 0x49cf
leaq 0x1149b(%rip), %rsi     # 0x15e50
movq 0x18(%rsp), %rdi
movq %rbx, %rdx
movl $0x1, %ecx
callq 0x6979
testl %eax, %eax
jne 0x6353
orb $0x20, 0x2(%rbp)
testq %rbx, %rbx
leaq 0x11473(%rip), %rax     # 0x15e50
cmovneq %rbx, %rax
movq 0x28(%rbp), %rcx
movq $0x0, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movq %rcx, 0x30(%rsp)
movq %rcx, 0x10(%rsp)
movups 0x20(%rsp), %xmm0
movups %xmm0, (%rsp)
movq 0x18(%rsp), %rdi
callq 0x42b2
movq 0x28(%rbp), %rax
movl $0x2, %r13d
cmpq $0x1, 0x10(%rax)
jne 0x6353
movq 0x18(%rax), %rax
movq $0x1, 0x10(%rbp)
movq %rax, 0x18(%rbp)
movl $0x3, %r13d
jmp 0x63af
movq %r13, %r15
movq %rcx, 0x60(%rsp)
movl 0x4(%rbx), %r13d
movq 0x20(%rbp), %rax
cmpq $0xc, %rax
ja 0x5adc
leaq 0xb6af(%rip), %rcx      # 0x10110
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
xorl %r12d, %r12d
cmpl $0x3, %r13d
ja 0x63ef
movl %r13d, %eax
leaq 0xb6c3(%rip), %rcx      # 0x10144
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
orb $0x20, 0x2(%rbp)
testq %r15, %r15
je 0x5cba
movq %r15, %rdx
leaq 0x113d7(%rip), %rsi     # 0x15e78
movq 0x18(%rsp), %rdi
movl $0x1, %ecx
callq 0x6979
testl %eax, %eax
jne 0x63ef
testq %r15, %r15
leaq 0x111fe(%rip), %rax     # 0x15cc0
cmovneq %r15, %rax
jmp 0x5cc1
testq %r13, %r13
jne 0x65f7
cmpl $0x0, 0x4(%rbx)
movq 0x18(%rsp), %r15
jne 0x66b1
movq %rcx, %r14
movq 0x10(%rbp), %rax
movq 0x20(%rax), %rcx
movq 0x30(%rcx), %rax
testq %rax, %rax
je 0x5755
movq 0x38(%rcx), %rcx
movq (%rcx), %rdx
cmpq $0x1, 0x10(%rdx)
jne 0x5091
leaq -0x1(%rax), %rsi
xorl %edx, %edx
cmpq %rdx, %rsi
je 0x571d
movq 0x8(%rcx,%rdx,8), %rdi
incq %rdx
cmpq $0x1, 0x10(%rdi)
je 0x4b13
cmpq %rax, %rdx
setae %bl
jmp 0x5093
testq %r13, %r13
jne 0x6616
movb $0x1, %bl
cmpq $0x0, 0x10(%rbp)
movq 0x18(%rsp), %r12
je 0x6456
movq %rcx, %r15
xorl %r14d, %r14d
movq 0x18(%rbp), %rax
movq (%rax,%r14,8), %rax
xorps %xmm0, %xmm0
movaps %xmm0, 0x100(%rsp)
movq %rax, 0x110(%rsp)
movq %rax, 0x10(%rsp)
movaps 0x100(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r12, %rdi
callq 0x42b2
incq %r14
cmpq 0x10(%rbp), %r14
jb 0x4b57
jmp 0x61cf
testq %r13, %r13
jne 0x6635
movq %rcx, %r12
movl 0x4(%rbx), %ebx
cmpl $0x2, %ebx
movq 0x18(%rsp), %r14
je 0x4c4b
cmpl $0x1, %ebx
je 0x4bff
xorl %r15d, %r15d
testl %ebx, %ebx
jne 0x4ed7
movq 0x50(%rbp), %rax
testq %rax, %rax
je 0x4bff
movq $0x0, 0x20(%rsp)
leaq 0x111f9(%rip), %rcx     # 0x15dd8
movq %rcx, 0x28(%rsp)
movq %rax, 0x30(%rsp)
movq %rax, 0x10(%rsp)
movups 0x20(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r14, %rdi
callq 0x42b2
movq 0x50(%rbp), %rax
testq %rax, %rax
je 0x4c19
movl $0x1, %r15d
cmpq $0x1, 0x10(%rax)
jne 0x4ed7
movq 0x58(%rbp), %rcx
testq %rcx, %rcx
je 0x4c4b
movq $0x0, 0x40(%rsp)
movq %rax, 0x48(%rsp)
movq %rcx, 0x50(%rsp)
movq %rcx, 0x10(%rsp)
movups 0x40(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r14, %rdi
callq 0x42b2
movq 0x58(%rbp), %rax
testq %rax, %rax
je 0x5377
movl $0x2, %r15d
cmpq $0x1, 0x10(%rax)
jne 0x4ed7
movq 0x38(%rbp), %rdx
movq 0x50(%rbp), %rcx
andl $0x7, %edx
orq %rax, %rdx
movq %rdx, 0x38(%rbp)
testq %rcx, %rcx
jne 0x5380
movq 0x18(%rax), %rax
movq $0x1, 0x20(%rbp)
movq %rax, 0x28(%rbp)
jmp 0x538c
movq %r13, %r15
movl 0x4(%rbx), %ebx
cmpl $0x1, %ebx
movq 0x18(%rsp), %r13
je 0x4f94
testl %ebx, %ebx
jne 0x4cdf
testq %r15, %r15
je 0x4f94
leaq 0x11117(%rip), %rdx     # 0x15dd8
movq %r13, %rdi
movq %r15, %rsi
movq %rcx, %r14
movl $0x1, %ecx
callq 0x6979
movq %r14, %rcx
testl %eax, %eax
je 0x4f94
movq %rcx, %r12
movq 0x8(%r13), %r14
movq (%r14), %rax
cmpq 0x10(%r14), %rax
jne 0x4d18
movq 0x10e7a(%rip), %rcx     # 0x15b70
movq 0x10e6b(%rip), %rdx     # 0x15b68
shlq $0x2, %rax
testq %rax, %rax
movl $0x4, %esi
cmovneq %rax, %rsi
movq %r14, %rdi
callq 0xeb85
movq (%r14), %rax
movq 0x8(%r14), %rcx
leaq (%rax,%rax,2), %rax
movq $0x0, (%rcx,%rax,8)
movq %r15, 0x8(%rcx,%rax,8)
movq %rbp, 0x10(%rcx,%rax,8)
incq (%r14)
xorl %r14d, %r14d
jmp 0x502c
cmpl $0x0, 0x4(%rbx)
jne 0x6654
movq %rcx, %r15
testq %r13, %r13
movq 0x18(%rsp), %r14
je 0x5b8b
leaq 0x20(%rsp), %rdx
movq %r14, %rdi
movq %r13, %rsi
callq 0x684d
testl %eax, %eax
jne 0x617a
movq 0x20(%rsp), %rax
cmpw $0x11, (%rax)
jne 0x4d87
movq 0x20(%rax), %rax
testb %al, %al
js 0x5b6e
movl 0x8(%rbp), %esi
movl 0xc(%rbp), %edx
leaq 0xbfd4(%rip), %rdi      # 0x10d68
leaq 0xcdf5(%rip), %rcx      # 0x11b90
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x416b
movb $0x0, 0x10(%r14)
jmp 0x61cf
cmpl $0x0, 0x4(%rbx)
jne 0x6673
movq %rcx, %r15
testq %r13, %r13
movq 0x18(%rsp), %rbx
je 0x507d
leaq 0x11008(%rip), %r12     # 0x15dd8
movq %rbx, %rdi
movq %r13, %rsi
movq %r12, %rdx
movl $0x1, %ecx
callq 0x6979
testl %eax, %eax
je 0x5344
movq 0x8(%rbx), %r14
jmp 0x617e
cmpl $0x0, 0x4(%rbx)
jne 0x6692
movq %rcx, %r14
movl 0x8(%rbp), %esi
movl 0xc(%rbp), %edx
leaq 0xbf5a(%rip), %rdi      # 0x10d68
leaq 0xcd53(%rip), %rcx      # 0x11b68
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x416b
movq 0x18(%rsp), %rax
movb $0x0, 0x10(%rax)
jmp 0x576a
movl 0x4(%rbx), %r12d
cmpl $0x2, %r12d
movq %rcx, 0x60(%rsp)
je 0x555e
cmpl $0x1, %r12d
movq 0x18(%rsp), %rbx
je 0x4e56
xorl %r15d, %r15d
testl %r12d, %r12d
jne 0x4e7b
orb $0x20, 0x2(%rbp)
leaq 0x10f7b(%rip), %rdx     # 0x15dd8
movl $0x1, %r15d
movq %rbx, %rdi
movq %r13, %rsi
movl $0x1, %ecx
callq 0x6979
testl %eax, %eax
je 0x554b
movq 0x8(%rbx), %r14
movq (%r14), %rax
cmpq 0x10(%r14), %rax
jne 0x4eb1
movq 0x10ce1(%rip), %rcx     # 0x15b70
movq 0x10cd2(%rip), %rdx     # 0x15b68
shlq $0x2, %rax
testq %rax, %rax
movl $0x4, %esi
cmovneq %rax, %rsi
movq %r14, %rdi
callq 0xeb85
movq (%r14), %rax
movq 0x8(%r14), %rcx
leaq (%rax,%rax,2), %rax
movl $0x0, (%rcx,%rax,8)
movl %r15d, 0x4(%rcx,%rax,8)
movq %r13, 0x8(%rcx,%rax,8)
movq %rbp, 0x10(%rcx,%rax,8)
incq (%r14)
jmp 0x5610
movq 0x8(%r14), %r14
movq (%r14), %rax
cmpq 0x10(%r14), %rax
jne 0x4f0d
movq 0x10c85(%rip), %rcx     # 0x15b70
movq 0x10c76(%rip), %rdx     # 0x15b68
shlq $0x2, %rax
testq %rax, %rax
movl $0x4, %esi
cmovneq %rax, %rsi
movq %r14, %rdi
callq 0xeb85
movq (%r14), %rax
movq 0x8(%r14), %rcx
leaq (%rax,%rax,2), %rax
movl $0x0, (%rcx,%rax,8)
movl %r15d, 0x4(%rcx,%rax,8)
movq $0x0, 0x8(%rcx,%rax,8)
jmp 0x5a46
movq $0x1, 0x10(%rbp)
leaq 0x10e9a(%rip), %rax     # 0x15dd8
movq %rax, 0x18(%rbp)
movl $0x2, %r14d
cmpq $0x0, 0x20(%rbp)
je 0x4f8c
movq %rcx, %r12
xorl %r15d, %r15d
movq 0x28(%rbp), %rax
movq (%rax,%r15,8), %rax
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq %rax, 0x30(%rsp)
movq %rax, 0x10(%rsp)
movaps 0x20(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r13, %rdi
callq 0x42b2
incq %r15
cmpq 0x20(%rbp), %r15
jb 0x4f55
movq %r12, %rcx
cmpl %ebx, %r14d
jmp 0x63b5
movq %rcx, %r12
movq $0x1, 0x10(%rbp)
leaq 0x10e32(%rip), %rax     # 0x15dd8
movq %rax, 0x18(%rbp)
cmpq $0x0, 0x20(%rbp)
je 0x4fe8
xorl %r14d, %r14d
movq 0x28(%rbp), %rax
movq (%rax,%r14,8), %rax
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq %rax, 0x30(%rsp)
movq %rax, 0x10(%rsp)
movaps 0x20(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r13, %rdi
callq 0x42b2
incq %r14
cmpq 0x20(%rbp), %r14
jb 0x4fb4
movl $0x2, %r14d
cmpq $0x0, 0x30(%rbp)
je 0x502c
xorl %r15d, %r15d
movq 0x38(%rbp), %rax
movq (%rax,%r15,8), %rax
xorps %xmm0, %xmm0
movaps %xmm0, 0x40(%rsp)
movq %rax, 0x50(%rsp)
movq %rax, 0x10(%rsp)
movaps 0x40(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r13, %rdi
callq 0x42b2
incq %r15
cmpq 0x30(%rbp), %r15
jb 0x4ff8
cmpl %ebx, %r14d
jmp 0x5822
testb $0x40, %bl
leaq 0x10d4a(%rip), %rax     # 0x15d88
leaq 0x10c53(%rip), %rcx     # 0x15c98
cmoveq %rcx, %rax
movq 0x20(%rax), %rcx
movl %ecx, %eax
andl $0x7, %eax
testb $0x40, %bl
jne 0x5355
testb $0x20, %cl
jne 0x5854
movl 0x8(%rbp), %esi
movl 0xc(%rbp), %edx
leaq 0xbcf7(%rip), %rdi      # 0x10d68
leaq 0xc9a7(%rip), %rcx      # 0x11a1f
jmp 0x5843
movq $0x1, 0x10(%rbp)
leaq 0x10d4c(%rip), %rax     # 0x15dd8
jmp 0x5b9a
xorl %ebx, %ebx
movq 0x8(%r15), %rdi
xorps %xmm0, %xmm0
movaps %xmm0, 0x40(%rsp)
movq %rbp, 0x50(%rsp)
movq 0x10abd(%rip), %rsi     # 0x15b68
movq 0x10abe(%rip), %rdx     # 0x15b70
movq 0x50(%rsp), %rax
movq %rax, 0x10(%rsp)
movaps 0x40(%rsp), %xmm0
movups %xmm0, (%rsp)
callq 0xeb2b
jmp 0x576a
cmpl $0x2, %r13d
je 0x5df1
cmpl $0x1, %r13d
je 0x5119
xorl %r12d, %r12d
testl %r13d, %r13d
jne 0x63ef
orb $0x20, 0x2(%rbp)
testq %r15, %r15
je 0x5d90
movq %r15, %rdx
leaq 0x10d4e(%rip), %rsi     # 0x15e50
movq 0x18(%rsp), %rdi
movl $0x1, %ecx
callq 0x6979
testl %eax, %eax
jne 0x63ef
testq %r15, %r15
leaq 0x10d2d(%rip), %rbx     # 0x15e50
cmovneq %r15, %rbx
jmp 0x5d97
movq 0x28(%rbp), %r14
jmp 0x52e2
orb $0x20, 0x2(%rbp)
movq 0x20(%rbp), %rax
cmpq $0x1, 0x10(%rax)
movq 0x18(%rsp), %r13
je 0x5180
leaq 0x10(%rax), %r14
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq %rax, 0x30(%rsp)
movq %rax, 0x10(%rsp)
movups %xmm0, (%rsp)
movq %r13, %rdi
movq %rcx, %rbx
callq 0x42b2
movq %rbx, %rcx
movl $0x1, %ebx
cmpq $0x1, (%r14)
jne 0x595c
movq %rcx, %r15
movq 0x20(%rbp), %rax
movq 0x18(%rax), %rsi
leaq 0x68(%rsp), %rdx
movq %r13, %rdi
callq 0x684d
testl %eax, %eax
jne 0x5954
movq 0x68(%rsp), %rax
cmpw $0x8, (%rax)
jne 0x5930
movq 0x30(%rax), %rdx
movq 0x38(%rax), %rcx
testq %rdx, %rdx
je 0x51d5
xorl %esi, %esi
movq (%rcx,%rsi,8), %rdi
cmpq $0x1, 0x10(%rdi)
jne 0x5954
incq %rsi
cmpq %rsi, %rdx
jne 0x51be
movq (%rcx), %rcx
movq $0x1, 0x10(%rbp)
movq %rcx, 0x18(%rbp)
movq 0x20(%rax), %rbx
testq %rbx, %rbx
je 0x5d7c
movq 0x28(%rax), %r14
xorl %eax, %eax
movq (%r14,%rax,8), %rcx
cmpq $0x1, 0x10(%rcx)
jne 0x5954
incq %rax
cmpq %rax, %rbx
jne 0x51f7
cmpq %rbx, 0x28(%rbp)
jne 0x5e75
movq 0x30(%rbp), %rax
movq %rax, 0x18(%rsp)
movq %r13, %rbp
xorl %r13d, %r13d
movq (%r14,%r13,8), %rax
movq 0x18(%rsp), %rcx
movq (%rcx,%r13,8), %rcx
movq $0x0, 0x40(%rsp)
movq %rax, 0x48(%rsp)
movq %rcx, 0x50(%rsp)
movq %rcx, 0x10(%rsp)
movups 0x40(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %rbp, %rdi
callq 0x42b2
incq %r13
cmpq %r13, %rbx
jne 0x5227
jmp 0x5d86
movq %rcx, %r12
orb $0x10, 0x2(%rbp)
movq 0x38(%rbp), %rdi
movq 0x20(%rbp), %rsi
movq 0x30(%rbp), %rdx
movq %rsi, %rax
shrq $0x1e, %rax
xorq %rsi, %rax
movabsq $-0x40a7b892e31b1a47, %rcx # imm = 0xBF58476D1CE4E5B9
imulq %rax, %rcx
movq %rcx, %rax
shrq $0x1b, %rax
xorq %rcx, %rax
movabsq $-0x6b2fb644ecceee15, %r8 # imm = 0x94D049BB133111EB
imulq %rax, %r8
movq %r8, %rcx
shrq $0x1f, %rcx
xorq %r8, %rcx
movl $0x1, %r8d
callq 0x9a07
testq %rax, %rax
movq 0x18(%rsp), %r13
je 0x59c5
movq 0x28(%rbp), %r14
andl $0x7, %r14d
orq %rax, %r14
movq %r14, 0x28(%rbp)
movq %r12, %rcx
andq $-0x8, %r14
movl $0x1, %r15d
cmpq $0x1, 0x10(%r14)
jne 0x59ef
cmpq $0x0, 0x38(%rsp)
je 0x5329
movq 0x18(%r14), %rdx
movq %r13, %rdi
movq 0x38(%rsp), %rsi
movq %rcx, %r15
movl $0x1, %ecx
callq 0x6979
movq %r15, %rcx
movl $0x2, %r15d
testl %eax, %eax
jne 0x59ef
movq 0x18(%r14), %rax
movq $0x1, 0x10(%rbp)
movq %rax, 0x18(%rbp)
movl $0x3, %r15d
jmp 0x5a51
movq $0x1, 0x10(%rbp)
movq %r12, 0x18(%rbp)
jmp 0x5b9e
testb $0x40, %cl
jne 0x588e
movl 0x8(%rbp), %esi
movl 0xc(%rbp), %edx
leaq 0xb9fd(%rip), %rdi      # 0x10d68
leaq 0xc651(%rip), %rcx      # 0x119c3
jmp 0x5843
movq 0x50(%rbp), %rcx
testq %rcx, %rcx
je 0x538c
movq $0x1, 0x20(%rbp)
movq %rcx, 0x28(%rbp)
movl $0x3, %r15d
jmp 0x5a4e
leaq 0x10(%r14), %r15
movl $0x1, %ebx
cmpq $0x1, (%r15)
jne 0x544a
movq 0x20(%rbp), %rax
movl $0x2, %ebx
testb $0x30, 0x2(%rax)
je 0x544a
movq 0x18(%r14), %rsi
leaq 0x40(%rsp), %rdx
movq 0x18(%rsp), %rdi
callq 0x684d
testl %eax, %eax
jne 0x544a
movq 0x40(%rsp), %r15
movzwl (%r15), %edx
cmpw $0x10, %dx
jne 0x5c4e
movw %dx, 0x5e(%rsp)
cmpq $0x3, 0x20(%r15)
jne 0x66ef
movq 0x28(%r15), %rsi
leaq 0x40(%rsp), %rdx
movq 0x18(%rsp), %rdi
callq 0x684d
testl %eax, %eax
jne 0x544a
movq 0x40(%rsp), %r15
movzwl (%r15), %eax
movzwl 0x5e(%rsp), %edx
jmp 0x5c50
movq 0x30(%rbp), %rax
movl $0x3, %ebx
cmpq $0x1, 0x10(%rax)
jne 0x544a
movq 0x18(%rax), %rax
movq $0x1, 0x10(%rbp)
movq %rax, 0x18(%rbp)
movl $0x4, %ebx
jmp 0x54aa
xorl %ebx, %ebx
movq 0x18(%rsp), %rax
movq 0x8(%rax), %r14
movq (%r14), %rax
cmpq 0x10(%r14), %rax
jne 0x5485
movq 0x1070d(%rip), %rcx     # 0x15b70
movq 0x106fe(%rip), %rdx     # 0x15b68
shlq $0x2, %rax
testq %rax, %rax
movl $0x4, %esi
cmovneq %rax, %rsi
movq %r14, %rdi
callq 0xeb85
movq (%r14), %rax
movq 0x8(%r14), %rcx
leaq (%rax,%rax,2), %rax
movl $0x0, (%rcx,%rax,8)
movl %ebx, 0x4(%rcx,%rax,8)
movq 0x38(%rsp), %rdx
movq %rdx, 0x8(%rcx,%rax,8)
movq %rbp, 0x10(%rcx,%rax,8)
incq (%r14)
cmpl %r12d, %ebx
setne %bl
movq %r13, %rcx
jmp 0x6456
xorl %ebx, %ebx
movq 0x18(%rsp), %r13
jmp 0x5a65
leaq 0x18(%rbp), %r14
movq (%r14), %rax
movl $0x1, %r15d
cmpq $0x1, 0x10(%rax)
jne 0x57c1
movq 0x18(%rbp), %rax
movzwl 0x2(%rax), %eax
shrl $0x4, %eax
andl $0x3, %eax
movl $0x2, %r15d
leaq 0xac8d(%rip), %rcx      # 0x10184
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
xorl %eax, %eax
jmp 0x5506
movb $0x1, %al
movq 0x10(%rbp), %rcx
movl $0x4, %r14d
leaq -0x1(%rcx), %rdx
cmpq $0x4, %rdx
jae 0x58c4
movl 0x8(%rbp), %esi
movl 0xc(%rbp), %edx
leaq 0xb83d(%rip), %rdi      # 0x10d68
leaq 0xc1b5(%rip), %rcx      # 0x116e7
xorl %eax, %eax
callq 0x416b
movb $0x0, 0x10(%r13)
jmp 0x581f
xorl %r15d, %r15d
jmp 0x57c1
movq $0x1, 0x10(%rbp)
leaq 0x1087e(%rip), %rax     # 0x15dd8
movq %rax, 0x18(%rbp)
movl %r12d, 0x38(%rsp)
movq 0x20(%rbp), %r14
testq %r14, %r14
movq 0x18(%rsp), %rbx
je 0x55b4
movq 0x28(%rbp), %r15
xorl %r12d, %r12d
leaq 0x10859(%rip), %r13     # 0x15dd8
movq (%r15,%r12,8), %rax
movq $0x0, 0x20(%rsp)
movq %r13, 0x28(%rsp)
movq %rax, 0x30(%rsp)
movq %rax, 0x10(%rsp)
movups 0x20(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %rbx, %rdi
callq 0x42b2
incq %r12
cmpq %r12, %r14
jne 0x557f
movq 0x30(%rbp), %r14
movl $0x3, %r15d
testq %r14, %r14
je 0x560b
movq 0x38(%rbp), %r12
xorl %r13d, %r13d
leaq 0x10807(%rip), %rbp     # 0x15dd8
movq 0x18(%rsp), %rbx
movq (%r12,%r13,8), %rax
movq $0x0, 0x40(%rsp)
movq %rbp, 0x48(%rsp)
movq %rax, 0x50(%rsp)
movq %rax, 0x10(%rsp)
movups 0x40(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %rbx, %rdi
callq 0x42b2
incq %r13
cmpq %r13, %r14
jne 0x55d6
movl 0x38(%rsp), %r12d
cmpl %r12d, %r15d
jmp 0x644e
movq %r13, %rbx
cmpl $0x1, %r12d
je 0x5f0a
xorl %r13d, %r13d
testl %r12d, %r12d
jne 0x6353
testq %rbx, %rbx
je 0x5ed4
movq %rbx, %r14
leaq 0x10834(%rip), %rsi     # 0x15e78
movq 0x18(%rsp), %rdi
movq %rbx, %rdx
movl $0x1, %ecx
callq 0x6979
testl %eax, %eax
jne 0x6353
jmp 0x5edb
movq %r13, %rbx
cmpl $0x1, %r12d
je 0x5f6e
xorl %r13d, %r13d
testl %r12d, %r12d
jne 0x6353
orb $0x10, 0x2(%rbp)
testq %rbx, %rbx
je 0x5f3a
movq 0x18(%rsp), %r14
movq (%r14), %rdi
movl $0x30, %esi
callq 0x962b
movw $0x10, (%rax)
movl 0x104d2(%rip), %ecx     # 0x15b78
leal 0x1(%rcx), %edx
movl %edx, 0x104c9(%rip)     # 0x15b78
movl %ecx, 0x4(%rax)
movq $0x0, 0x8(%rax)
movw $0x1, 0x2(%rax)
movq $0x1, 0x10(%rax)
leaq 0x10709(%rip), %rcx     # 0x15dd8
movq %rcx, 0x18(%rax)
movq $0x3, 0x20(%rax)
movq %rbx, 0x28(%rax)
jmp 0x5f41
movq %r13, %rsi
xorl %r13d, %r13d
testq %rsi, %rsi
je 0x5b63
leaq 0x20(%rsp), %rdx
movq 0x18(%rsp), %rdi
movq %rsi, %rbx
callq 0x684d
testl %eax, %eax
je 0x5c97
xorl %r13d, %r13d
jmp 0x6353
xorl %r13d, %r13d
jmp 0x63b2
cmpq $0x1, %rax
jne 0x5755
movq (%rcx), %rax
movq 0x18(%rbp), %rcx
movq $0x0, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movq %rcx, 0x30(%rsp)
movq %rcx, 0x10(%rsp)
movups 0x20(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r15, %rdi
callq 0x42b2
jmp 0x5768
leaq 0xbfcb(%rip), %rdi      # 0x11727
xorl %eax, %eax
callq 0x416b
movb $0x0, 0x10(%r15)
movb $0x1, %bl
movq %r14, %rcx
jmp 0x6456
testq %r15, %r15
je 0x5bd3
movq %r15, %rdx
leaq 0x106f3(%rip), %rsi     # 0x15e78
movq 0x18(%rsp), %rdi
movl $0x1, %ecx
callq 0x6979
testl %eax, %eax
jne 0x5b5b
jmp 0x5bda
movl 0x8(%rbp), %esi
movl 0xc(%rbp), %edx
leaq 0xb5ba(%rip), %rdi      # 0x10d68
leaq 0xbeb9(%rip), %rcx      # 0x1166e
xorl %eax, %eax
callq 0x416b
movb $0x0, 0x10(%r13)
movq 0x8(%r13), %r14
movq (%r14), %rax
cmpq 0x10(%r14), %rax
jne 0x57f7
movq 0x1039b(%rip), %rcx     # 0x15b70
movq 0x1038c(%rip), %rdx     # 0x15b68
shlq $0x2, %rax
testq %rax, %rax
movl $0x4, %esi
cmovneq %rax, %rsi
movq %r14, %rdi
callq 0xeb85
movq (%r14), %rax
movq 0x8(%r14), %rcx
leaq (%rax,%rax,2), %rax
movl $0x0, (%rcx,%rax,8)
movl %r15d, 0x4(%rcx,%rax,8)
movq $0x0, 0x8(%rcx,%rax,8)
movq %rbp, 0x10(%rcx,%rax,8)
incq (%r14)
movl %r15d, %r14d
cmpl %ebx, %r14d
setne %bl
movq %r12, %rcx
jmp 0x6456
leaq 0xc177(%rip), %rcx      # 0x119ab
movl 0x8(%r13), %esi
movl 0xc(%r13), %edx
leaq 0xb525(%rip), %rdi      # 0x10d68
xorl %eax, %eax
callq 0x416b
movb $0x0, 0x10(%r14)
jmp 0x616a
andl $0x18, %ecx
cmpl $0x10, %ecx
jne 0x5ba5
cmpq $0x4, %rax
ja 0x676b
leaq 0xa88b(%rip), %rcx      # 0x100fc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq $0x1, 0x10(%rbp)
leaq 0x1036f(%rip), %rax     # 0x15bf8
jmp 0x6166
testq %rax, %rax
je 0x5ac8
cmpl $0x4, %eax
je 0x5ac8
cmpl $0x3, %eax
jne 0x670e
movq %r15, %rcx
movq $0x1, 0x10(%rbp)
leaq 0x104a5(%rip), %rax     # 0x15d60
movq %rax, 0x18(%rbp)
jmp 0x616d
testq %rcx, %rcx
jne 0x581f
movq 0x20(%rbp), %rcx
movq 0x10(%rcx), %rdx
cmpq $0x1, %rdx
sete %sil
orb %sil, %al
jne 0x591b
movq 0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq $0x0, 0x40(%rsp)
movq %rax, 0x48(%rsp)
movq %rcx, 0x50(%rsp)
movq %rcx, 0x10(%rsp)
movups 0x40(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r13, %rdi
callq 0x42b2
movq 0x20(%rbp), %rax
movq 0x10(%rax), %rdx
movl $0x3, %r15d
cmpq $0x1, %rdx
jne 0x57c1
jmp 0x581f
movq 0x20(%rbp), %rax
leaq 0xbe76(%rip), %rcx      # 0x117b1
movl 0x8(%rax), %esi
movl 0xc(%rax), %edx
leaq 0xb420(%rip), %rdi      # 0x10d68
xorl %eax, %eax
callq 0x416b
movb $0x0, 0x10(%r13)
movl $0x2, %ebx
movq %r15, %rcx
movq %rcx, %r15
movq 0x8(%r13), %r14
movq (%r14), %rax
cmpq 0x10(%r14), %rax
jne 0x5995
movq 0x101fd(%rip), %rcx     # 0x15b70
movq 0x101ee(%rip), %rdx     # 0x15b68
shlq $0x2, %rax
testq %rax, %rax
movl $0x4, %esi
cmovneq %rax, %rsi
movq %r14, %rdi
callq 0xeb85
movq (%r14), %rax
movq 0x38(%rsp), %rdx
movq 0x8(%r14), %rcx
leaq (%rax,%rax,2), %rax
movl $0x0, (%rcx,%rax,8)
movl %ebx, 0x4(%rcx,%rax,8)
movq %rdx, 0x8(%rcx,%rax,8)
movq %rbp, 0x10(%rcx,%rax,8)
incq (%r14)
cmpl %r12d, %ebx
setne %bl
jmp 0x61cf
movq 0x20(%rbp), %rax
movl 0x8(%rbp), %esi
movl 0xc(%rbp), %edx
movq (%rax), %rcx
movq 0x8(%rax), %r8
leaq 0xc15f(%rip), %rdi      # 0x11b3c
xorl %r15d, %r15d
xorl %eax, %eax
callq 0x416b
movb $0x0, 0x10(%r13)
movq %r12, %rcx
movq %rcx, %r12
movq 0x8(%r13), %r14
movq (%r14), %rax
cmpq 0x10(%r14), %rax
jne 0x5a28
movq 0x1016a(%rip), %rcx     # 0x15b70
movq 0x1015b(%rip), %rdx     # 0x15b68
shlq $0x2, %rax
testq %rax, %rax
movl $0x4, %esi
cmovneq %rax, %rsi
movq %r14, %rdi
callq 0xeb85
movq (%r14), %rax
movq 0x38(%rsp), %rdx
movq 0x8(%r14), %rcx
leaq (%rax,%rax,2), %rax
movl $0x0, (%rcx,%rax,8)
movl %r15d, 0x4(%rcx,%rax,8)
movq %rdx, 0x8(%rcx,%rax,8)
movq %rbp, 0x10(%rcx,%rax,8)
incq (%r14)
movq %r12, %rcx
cmpl %ebx, %r15d
jmp 0x63b5
movl $0x2, %ebx
jmp 0x5a65
movl $0x1, %ebx
movq 0x8(%r13), %r14
movq (%r14), %rax
cmpq 0x10(%r14), %rax
jne 0x5a9b
movq 0x100f7(%rip), %rcx     # 0x15b70
movq 0x100e8(%rip), %rdx     # 0x15b68
shlq $0x2, %rax
testq %rax, %rax
movl $0x4, %esi
cmovneq %rax, %rsi
movq %r14, %rdi
callq 0xeb85
movq (%r14), %rax
movq 0x38(%rsp), %rdx
movq 0x8(%r14), %rcx
leaq (%rax,%rax,2), %rax
movl $0x0, (%rcx,%rax,8)
movl %ebx, 0x4(%rcx,%rax,8)
movq %rdx, 0x8(%rcx,%rax,8)
movq %rbp, 0x10(%rcx,%rax,8)
incq (%r14)
cmpl %r12d, %ebx
jmp 0x644e
movq $0x1, 0x10(%rbp)
leaq 0x102b1(%rip), %rax     # 0x15d88
jmp 0x6166
xorl %r12d, %r12d
jmp 0x644b
cmpl $0x1, %r13d
je 0x6256
testl %r13d, %r13d
jne 0x5b5b
orb $0x10, 0x2(%rbp)
testq %r15, %r15
je 0x61f4
movq 0x18(%rsp), %r14
movq (%r14), %rdi
movl $0x30, %esi
callq 0x962b
movw $0x10, (%rax)
movl 0x1005b(%rip), %ecx     # 0x15b78
leal 0x1(%rcx), %edx
movl %edx, 0x10052(%rip)     # 0x15b78
movl %ecx, 0x4(%rax)
movq $0x0, 0x8(%rax)
movw $0x1, 0x2(%rax)
movq $0x1, 0x10(%rax)
leaq 0x10292(%rip), %rcx     # 0x15dd8
movq %rcx, 0x18(%rax)
movq $0x3, 0x20(%rax)
movq %r15, 0x28(%rax)
jmp 0x61fb
xorl %r12d, %r12d
jmp 0x63ef
movq %rsi, %rbx
xorl %r14d, %r14d
jmp 0x6026
andl $0x7, %eax
cmpq $0x4, %rax
ja 0x674c
leaq 0xa52e(%rip), %rcx      # 0x100b0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq $0x1, 0x10(%rbp)
leaq 0x10126(%rip), %rax     # 0x15cc0
movq %rax, 0x18(%rbp)
movb $0x1, %bl
jmp 0x61cf
cmpq $0x4, %rax
ja 0x678a
leaq 0xa532(%rip), %rcx      # 0x100e8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq $0x1, 0x10(%rbp)
leaq 0x100ca(%rip), %rax     # 0x15c98
jmp 0x6166
leaq 0x100e6(%rip), %r15     # 0x15cc0
orb $0x20, 0x2(%rbp)
movq 0x28(%rbp), %rax
xorl %ebx, %ebx
movq %rbx, 0x20(%rsp)
movq %r15, 0x28(%rsp)
movq %rax, 0x30(%rsp)
movq %rax, 0x10(%rsp)
movups 0x20(%rsp), %xmm0
movups %xmm0, (%rsp)
movq 0x18(%rsp), %r14
movq %r14, %rdi
callq 0x42b2
movq 0x30(%rbp), %rax
movq %rbx, 0x40(%rsp)
movq %r15, 0x48(%rsp)
movq %rax, 0x50(%rsp)
movq %rax, 0x10(%rsp)
movups 0x40(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r14, %rdi
callq 0x42b2
movq $0x1, 0x10(%rbp)
movq %r15, 0x18(%rbp)
movl $0x1, %r12d
jmp 0x644b
movl %edx, %eax
leaq 0xbbc5(%rip), %rcx      # 0x1181c
cmpw $0xe, %ax
je 0x5e84
movzwl %ax, %eax
cmpl $0xf, %eax
jne 0x62fa
movl %edx, %r14d
movq 0x40(%r15), %rdi
movq 0x28(%rbp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x99c5
testq %rax, %rax
jne 0x5eb1
leaq 0x28(%rbp), %rax
addq $0x48, %r15
jmp 0x5e99
movq 0x20(%rsp), %rax
cmpw $0x10, (%rax)
jne 0x5ff1
cmpq $0x3, 0x20(%rax)
jne 0x672d
movq 0x28(%rax), %r14
jmp 0x6026
leaq 0xffff(%rip), %rax      # 0x15cc0
movq $0x1, 0x10(%rbp)
movq %rax, 0x18(%rbp)
movq 0x28(%rbp), %rax
xorl %ebx, %ebx
movq %rbx, 0x20(%rsp)
leaq 0x10171(%rip), %r14     # 0x15e50
movq %r14, 0x28(%rsp)
movq %rax, 0x30(%rsp)
movq %rax, 0x10(%rsp)
movups 0x20(%rsp), %xmm0
movups %xmm0, (%rsp)
movq 0x18(%rsp), %r12
movq %r12, %rdi
callq 0x42b2
movq 0x30(%rbp), %rax
movq %rbx, 0x40(%rsp)
movq %r14, 0x48(%rsp)
movq %rax, 0x50(%rsp)
movq %rax, 0x10(%rsp)
movups 0x40(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r12, %rdi
callq 0x42b2
movq 0x28(%rbp), %rax
movl $0x3, %r12d
cmpq $0x1, 0x10(%rax)
jne 0x63ef
movq 0x30(%rbp), %rcx
cmpq $0x1, 0x10(%rcx)
jne 0x63ef
movq 0x18(%rax), %rsi
movq 0x18(%rcx), %rdx
movq 0x18(%rsp), %rdi
movl $0x1, %ecx
callq 0x6979
xorl %r12d, %r12d
cmpl $0x1, %eax
adcl $0x3, %r12d
movl $0x4, %eax
jmp 0x63ea
cmpq %rbx, 0x28(%rbp)
jne 0x5e75
movl $0x3, %ebx
jmp 0x59ba
leaq 0x100b9(%rip), %rbx     # 0x15e50
movq 0x28(%rbp), %rax
xorl %r14d, %r14d
movq %r14, 0x20(%rsp)
movq %rbx, 0x28(%rsp)
movq %rax, 0x30(%rsp)
movq %rax, 0x10(%rsp)
movups 0x20(%rsp), %xmm0
movups %xmm0, (%rsp)
movq 0x18(%rsp), %r12
movq %r12, %rdi
callq 0x42b2
movq 0x30(%rbp), %rax
movq %r14, 0x40(%rsp)
movq %rbx, 0x48(%rsp)
movq %rax, 0x50(%rsp)
movq %rax, 0x10(%rsp)
movups 0x40(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r12, %rdi
callq 0x42b2
movq 0x28(%rbp), %rax
movl $0x2, %r12d
cmpq $0x1, 0x10(%rax)
jne 0x63ef
movq 0x30(%rbp), %rcx
cmpq $0x1, 0x10(%rcx)
jne 0x63ef
movq 0x18(%rax), %rsi
movq 0x18(%rcx), %rdx
leaq 0x68(%rsp), %rcx
movq 0x18(%rsp), %rdi
callq 0xc9c3
movl $0x2, %r12d
testl %eax, %eax
jne 0x5e6b
movq 0x68(%rsp), %rbx
testq %r15, %r15
je 0x5e59
movq 0x18(%rsp), %rdi
movq %r15, %rsi
movq %rbx, %rdx
movl $0x1, %ecx
callq 0x6979
testl %eax, %eax
jne 0x5e6b
movq $0x1, 0x10(%rbp)
movq %rbx, 0x18(%rbp)
movl $0x3, %r12d
movl $0x3, %eax
jmp 0x63ea
leaq 0xb948(%rip), %rcx      # 0x117c4
movq %rbp, %rax
jmp 0x593b
cmpw $0x10, %dx
je 0x62fa
movl %edx, %r14d
addq $0x30, %r15
leaq 0x28(%rbp), %rax
movq (%r15), %rdi
movq (%rax), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x99c5
testq %rax, %rax
je 0x62f0
movq %rax, 0x30(%rbp)
movw $0x10, %cx
cmpw $0x10, %r14w
je 0x5ecb
movq 0x20(%rbp), %rcx
movzwl 0x2(%rcx), %ecx
andl $0x30, %ecx
orw %cx, 0x2(%rbp)
jmp 0x5425
leaq 0xfde5(%rip), %r14      # 0x15cc0
movq 0x28(%rbp), %rax
movq $0x0, 0x20(%rsp)
movq %r14, 0x28(%rsp)
movq %rax, 0x30(%rsp)
movq %rax, 0x10(%rsp)
movups 0x20(%rsp), %xmm0
movups %xmm0, (%rsp)
movq 0x18(%rsp), %rdi
callq 0x42b2
movq 0x28(%rbp), %rax
movl $0x1, %r13d
cmpq $0x1, 0x10(%rax)
jne 0x6353
movq 0x18(%rax), %rax
movq $0x1, 0x10(%rbp)
movq %rax, 0x18(%rbp)
movl $0x2, %r13d
jmp 0x63af
xorl %eax, %eax
movq 0x18(%rsp), %r14
movq 0x28(%rbp), %rcx
movq $0x0, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movq %rcx, 0x30(%rsp)
movq %rcx, 0x10(%rsp)
movups 0x20(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r14, %rdi
callq 0x42b2
movq 0x28(%rbp), %rax
movl $0x1, %r13d
cmpq $0x1, 0x10(%rax)
jne 0x6353
movq 0x18(%rax), %rsi
leaq 0x40(%rsp), %rdx
movq 0x18(%rsp), %rdi
callq 0x684d
testl %eax, %eax
jne 0x6353
movq 0x40(%rsp), %r14
cmpw $0x10, (%r14)
jne 0x61d7
leaq 0xfe23(%rip), %rax      # 0x15dd8
cmpq %rax, 0x18(%r14)
jne 0x67a9
cmpq $0x3, 0x20(%r14)
jne 0x67c8
movq 0x28(%r14), %rdx
movq 0x18(%rsp), %rdi
movq %rbx, %rsi
movl $0x1, %ecx
callq 0x6979
testl %eax, %eax
jne 0x6353
movq 0x28(%r14), %rax
jmp 0x5f23
leaq 0xfde0(%rip), %r14      # 0x15dd8
cmpq %r14, %rax
je 0x6026
movl 0x8(%rbp), %esi
movl 0xc(%rbp), %edx
leaq 0xad5e(%rip), %rdi      # 0x10d68
leaq 0xbaf0(%rip), %rcx      # 0x11b01
xorl %eax, %eax
callq 0x416b
movq 0x18(%rsp), %rax
movb $0x0, 0x10(%rax)
jmp 0x570d
cmpl $0x1, %r12d
je 0x6064
testl %r12d, %r12d
jne 0x6353
movq 0x28(%rbp), %rax
movq $0x0, 0x20(%rsp)
movq %r14, 0x28(%rsp)
movq %rax, 0x30(%rsp)
movq %rax, 0x10(%rsp)
movups 0x20(%rsp), %xmm0
movups %xmm0, (%rsp)
movq 0x18(%rsp), %rdi
callq 0x42b2
movq 0x28(%rbp), %rax
movl $0x1, %r13d
cmpq $0x1, 0x10(%rax)
jne 0x6353
leaq 0xfd58(%rip), %rsi      # 0x15dd8
cmpq %rsi, %r14
je 0x609f
movzwl 0x2(%rax), %ecx
shrl $0x4, %ecx
andl $0x3, %ecx
leaq 0xa042(%rip), %rdx      # 0x100d8
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
cmpq %rsi, 0x18(%rax)
je 0x631e
testq %rbx, %rbx
je 0x646f
movq %r15, %rcx
movq $0x1, 0x10(%rbp)
movq %rbx, 0x18(%rbp)
jmp 0x64d5
movq $0x1, 0x10(%rbp)
leaq 0xfc63(%rip), %rax      # 0x15d38
jmp 0x5b9a
movq $0x1, 0x10(%rbp)
leaq 0xfbff(%rip), %rax      # 0x15ce8
jmp 0x5b9a
movq $0x1, 0x10(%rbp)
leaq 0xfc13(%rip), %rax      # 0x15d10
jmp 0x5b9a
movq $0x1, 0x10(%rbp)
leaq 0xfabf(%rip), %rax      # 0x15bd0
jmp 0x6166
movq $0x1, 0x10(%rbp)
leaq 0xfb4e(%rip), %rax      # 0x15c70
jmp 0x6166
movq $0x1, 0x10(%rbp)
leaq 0xfa4d(%rip), %rax      # 0x15b80
jmp 0x6166
movq $0x1, 0x10(%rbp)
leaq 0xfadc(%rip), %rax      # 0x15c20
jmp 0x6166
movq $0x1, 0x10(%rbp)
leaq 0xfa53(%rip), %rax      # 0x15ba8
jmp 0x6166
movq $0x1, 0x10(%rbp)
leaq 0xfae2(%rip), %rax      # 0x15c48
movq %rax, 0x18(%rbp)
movq %r15, %rcx
movb $0x1, %bl
cmpq $0x1, 0x10(%rbp)
je 0x6456
movq 0x8(%r14), %r14
movq (%r14), %rax
cmpq 0x10(%r14), %rax
jne 0x61b0
movq 0xf9e2(%rip), %rcx      # 0x15b70
movq 0xf9d3(%rip), %rdx      # 0x15b68
shlq $0x2, %rax
testq %rax, %rax
movl $0x4, %esi
cmovneq %rax, %rsi
movq %r14, %rdi
callq 0xeb85
movq (%r14), %rax
movq 0x8(%r14), %rcx
leaq (%rax,%rax,2), %rax
movq $0x0, (%rcx,%rax,8)
movq %r13, 0x8(%rcx,%rax,8)
movq %rbp, 0x10(%rcx,%rax,8)
incq (%r14)
xorl %ebx, %ebx
movq %r15, %rcx
jmp 0x6456
movq 0x28(%rbp), %rax
movl 0x8(%rax), %esi
movl 0xc(%rax), %edx
leaq 0xab80(%rip), %rdi      # 0x10d68
leaq 0xb671(%rip), %rcx      # 0x11860
jmp 0x6343
xorl %eax, %eax
movq 0x18(%rsp), %r14
movq 0x28(%rbp), %rcx
xorl %ebx, %ebx
movq %rbx, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movq %rcx, 0x30(%rsp)
movq %rcx, 0x10(%rsp)
movups 0x20(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r14, %rdi
callq 0x42b2
movq 0x30(%rbp), %rax
movq %rbx, 0x40(%rsp)
leaq 0xfc1a(%rip), %rcx      # 0x15e50
movq %rcx, 0x48(%rsp)
movq %rax, 0x50(%rsp)
movq %rax, 0x10(%rsp)
movups 0x40(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r14, %rdi
callq 0x42b2
movq 0x28(%rbp), %rax
movl $0x1, %r12d
cmpq $0x1, 0x10(%rax)
jne 0x63ef
movq 0x18(%rax), %rsi
leaq 0x68(%rsp), %rdx
movq 0x18(%rsp), %rdi
callq 0x684d
movl $0x1, %r12d
testl %eax, %eax
jne 0x63e5
movq 0x68(%rsp), %rbx
cmpw $0x10, (%rbx)
jne 0x63bd
leaq 0xfb36(%rip), %rax      # 0x15dd8
cmpq %rax, 0x18(%rbx)
jne 0x6806
cmpq $0x3, 0x20(%rbx)
jne 0x6825
movq 0x28(%rbx), %rdx
movq 0x18(%rsp), %rdi
movq %r15, %rsi
movl $0x1, %ecx
callq 0x6979
testl %eax, %eax
jne 0x63e5
movq 0x28(%rbx), %rax
movq $0x1, 0x10(%rbp)
movq %rax, 0x18(%rbp)
movl $0x2, %r12d
jmp 0x63e5
leaq 0xb551(%rip), %rcx      # 0x11848
movq %rbp, %r14
movl 0x8(%r14), %esi
movl 0xc(%r14), %edx
leaq 0xaa5f(%rip), %rdi      # 0x10d68
xorl %eax, %eax
callq 0x416b
movq 0x18(%rsp), %rax
movb $0x0, 0x10(%rax)
jmp 0x544a
movq $0x1, 0x10(%rbp)
movq %rsi, 0x18(%rbp)
jmp 0x5f2f
movl 0x8(%rbp), %esi
movl 0xc(%rbp), %edx
leaq 0xaa2c(%rip), %rdi      # 0x10d68
leaq 0xb7d7(%rip), %rcx      # 0x11b1a
xorl %eax, %eax
callq 0x416b
movq 0x18(%rsp), %rax
movb $0x0, 0x10(%rax)
movq 0x18(%rsp), %rax
movq 0x8(%rax), %r14
movq (%r14), %rax
cmpq 0x10(%r14), %rax
jne 0x638e
movq 0xf804(%rip), %rcx      # 0x15b70
movq 0xf7f5(%rip), %rdx      # 0x15b68
shlq $0x2, %rax
testq %rax, %rax
movl $0x4, %esi
cmovneq %rax, %rsi
movq %r14, %rdi
callq 0xeb85
movq (%r14), %rax
movq 0x8(%r14), %rcx
leaq (%rax,%rax,2), %rax
movl $0x0, (%rcx,%rax,8)
movl %r13d, 0x4(%rcx,%rax,8)
movq %rbx, 0x8(%rcx,%rax,8)
movq %rbp, 0x10(%rcx,%rax,8)
incq (%r14)
movq %r15, %rcx
cmpl %r12d, %r13d
setne %bl
jmp 0x6456
movq 0x28(%rbp), %rax
movl 0x8(%rax), %esi
movl 0xc(%rax), %edx
leaq 0xa99a(%rip), %rdi      # 0x10d68
leaq 0xb48b(%rip), %rcx      # 0x11860
xorl %eax, %eax
callq 0x416b
movq 0x18(%rsp), %rax
movb $0x0, 0x10(%rax)
movl $0x2, %eax
cmpl %eax, %r12d
jae 0x644b
movq 0x18(%rsp), %rax
movq 0x8(%rax), %r14
movq (%r14), %rax
cmpq 0x10(%r14), %rax
jne 0x642a
movq 0xf768(%rip), %rcx      # 0x15b70
movq 0xf759(%rip), %rdx      # 0x15b68
shlq $0x2, %rax
testq %rax, %rax
movl $0x4, %esi
cmovneq %rax, %rsi
movq %r14, %rdi
callq 0xeb85
movq (%r14), %rax
movq 0x8(%r14), %rcx
leaq (%rax,%rax,2), %rax
movl $0x0, (%rcx,%rax,8)
movl %r12d, 0x4(%rcx,%rax,8)
movq %r15, 0x8(%rcx,%rax,8)
movq %rbp, 0x10(%rcx,%rax,8)
incq (%r14)
cmpl %r13d, %r12d
setne %bl
movq 0x60(%rsp), %rcx
orb %bl, %cl
andb $0x1, %cl
movl %ecx, %eax
addq $0x138, %rsp            # imm = 0x138
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x18(%rsp), %rax
movq (%rax), %rdi
movq %rsi, %rbx
movl $0x30, %esi
callq 0x962b
movw $0x10, (%rax)
movl 0xf6e9(%rip), %ecx      # 0x15b78
leal 0x1(%rcx), %edx
movl %edx, 0xf6e0(%rip)      # 0x15b78
movl %ecx, 0x4(%rax)
movq $0x0, 0x8(%rax)
movw $0x1, 0x2(%rax)
movl $0x1, %ecx
movq %rcx, 0x10(%rax)
movq %rbx, 0x18(%rax)
movq $0x3, 0x20(%rax)
movq 0x28(%rbp), %rdx
movq 0x18(%rdx), %rdx
movq %rdx, 0x28(%rax)
movq %rcx, 0x10(%rbp)
movq %r15, %rcx
movq %rax, 0x18(%rbp)
movl $0x2, %r13d
jmp 0x63b2
leaq 0xa8dd(%rip), %rdi      # 0x10dc4
leaq 0xa8ac(%rip), %rsi      # 0x10d9a
leaq 0xa8df(%rip), %rcx      # 0x10dd4
movl $0x8f, %edx
callq 0x3080
leaq 0xa8be(%rip), %rdi      # 0x10dc4
leaq 0xa88d(%rip), %rsi      # 0x10d9a
leaq 0xa8c0(%rip), %rcx      # 0x10dd4
movl $0x6b, %edx
callq 0x3080
leaq 0xa89f(%rip), %rdi      # 0x10dc4
leaq 0xa86e(%rip), %rsi      # 0x10d9a
leaq 0xa8a1(%rip), %rcx      # 0x10dd4
movl $0x75, %edx
callq 0x3080
leaq 0xa78c(%rip), %rdi      # 0x10cd0
leaq 0xa84f(%rip), %rsi      # 0x10d9a
leaq 0xa882(%rip), %rcx      # 0x10dd4
movl $0xe2, %edx
callq 0x3080
leaq 0xb23b(%rip), %rdi      # 0x1179e
leaq 0xa830(%rip), %rsi      # 0x10d9a
leaq 0xb1e5(%rip), %rcx      # 0x11756
movl $0x222, %edx            # imm = 0x222
callq 0x3080
leaq 0xb1c4(%rip), %rdi      # 0x11746
leaq 0xa811(%rip), %rsi      # 0x10d9a
leaq 0xb1c6(%rip), %rcx      # 0x11756
movl $0x1ef, %edx            # imm = 0x1EF
callq 0x3080
leaq 0xb1f9(%rip), %rdi      # 0x1179a
leaq 0xa7f2(%rip), %rsi      # 0x10d9a
leaq 0xb1a7(%rip), %rcx      # 0x11756
movl $0x214, %edx            # imm = 0x214
callq 0x3080
leaq 0xa86e(%rip), %rdi      # 0x10e2e
leaq 0xa7d3(%rip), %rsi      # 0x10d9a
leaq 0xa806(%rip), %rcx      # 0x10dd4
movl $0xc2, %edx
callq 0x3080
leaq 0xa7e5(%rip), %rdi      # 0x10dc4
leaq 0xa7b4(%rip), %rsi      # 0x10d9a
leaq 0xa7e7(%rip), %rcx      # 0x10dd4
movl $0x9e, %edx
callq 0x3080
leaq 0xa7c6(%rip), %rdi      # 0x10dc4
leaq 0xa795(%rip), %rsi      # 0x10d9a
leaq 0xa7c8(%rip), %rcx      # 0x10dd4
movl $0xa3, %edx
callq 0x3080
leaq 0xa7a7(%rip), %rdi      # 0x10dc4
leaq 0xa776(%rip), %rsi      # 0x10d9a
leaq 0xa7a9(%rip), %rcx      # 0x10dd4
movl $0x61, %edx
callq 0x3080
leaq 0xa788(%rip), %rdi      # 0x10dc4
leaq 0xa757(%rip), %rsi      # 0x10d9a
leaq 0xa78a(%rip), %rcx      # 0x10dd4
movl $0x5c, %edx
callq 0x3080
leaq 0xa7d3(%rip), %rdi      # 0x10e2e
leaq 0xa738(%rip), %rsi      # 0x10d9a
leaq 0xa76b(%rip), %rcx      # 0x10dd4
movl $0xdd, %edx
callq 0x3080
leaq 0xa7b4(%rip), %rdi      # 0x10e2e
leaq 0xa719(%rip), %rsi      # 0x10d9a
leaq 0xa74c(%rip), %rcx      # 0x10dd4
movl $0xd3, %edx
callq 0x3080
leaq 0xa795(%rip), %rdi      # 0x10e2e
leaq 0xa6fa(%rip), %rsi      # 0x10d9a
leaq 0xa72d(%rip), %rcx      # 0x10dd4
movl $0xd8, %edx
callq 0x3080
leaq 0xa776(%rip), %rdi      # 0x10e2e
leaq 0xa6db(%rip), %rsi      # 0x10d9a
leaq 0xa70e(%rip), %rcx      # 0x10dd4
movl $0xa4, %edx
callq 0x3080
leaq 0xafbb(%rip), %rdi      # 0x11692
leaq 0xa6bc(%rip), %rsi      # 0x10d9a
leaq 0xafce(%rip), %rcx      # 0x116b3
movl $0x150, %edx            # imm = 0x150
callq 0x3080
leaq 0xa7ab(%rip), %rdi      # 0x10ea1
leaq 0xa69d(%rip), %rsi      # 0x10d9a
leaq 0xb0d8(%rip), %rcx      # 0x117dc
movl $0x2c3, %edx            # imm = 0x2C3
callq 0x3080
leaq 0xa5bb(%rip), %rdi      # 0x10cd0
leaq 0xa67e(%rip), %rsi      # 0x10d9a
leaq 0xb2c1(%rip), %rcx      # 0x119e4
movl $0x42d, %edx            # imm = 0x42D
callq 0x3080
leaq 0xb3a4(%rip), %rdi      # 0x11ad8
leaq 0xa65f(%rip), %rsi      # 0x10d9a
leaq 0xb327(%rip), %rcx      # 0x11a69
movl $0x53c, %edx            # imm = 0x53C
callq 0x3080
leaq 0xa57d(%rip), %rdi      # 0x10cd0
leaq 0xa640(%rip), %rsi      # 0x10d9a
leaq 0xb447(%rip), %rcx      # 0x11ba8
movl $0x638, %edx            # imm = 0x638
callq 0x3080
leaq 0xa55e(%rip), %rdi      # 0x10cd0
leaq 0xa621(%rip), %rsi      # 0x10d9a
leaq 0xb264(%rip), %rcx      # 0x119e4
movl $0x44c, %edx            # imm = 0x44C
callq 0x3080
leaq 0xa53f(%rip), %rdi      # 0x10cd0
leaq 0xa602(%rip), %rsi      # 0x10d9a
leaq 0xb245(%rip), %rcx      # 0x119e4
movl $0x463, %edx            # imm = 0x463
callq 0x3080
leaq 0xb28e(%rip), %rdi      # 0x11a3e
leaq 0xa5e3(%rip), %rsi      # 0x10d9a
leaq 0xb2ab(%rip), %rcx      # 0x11a69
movl $0x522, %edx            # imm = 0x522
callq 0x3080
leaq 0xb2e1(%rip), %rdi      # 0x11ab0
leaq 0xa5c4(%rip), %rsi      # 0x10d9a
leaq 0xb28c(%rip), %rcx      # 0x11a69
movl $0x523, %edx            # imm = 0x523
callq 0x3080
leaq 0xaea4(%rip), %rdi      # 0x11692
leaq 0xa5a5(%rip), %rsi      # 0x10d9a
leaq 0xb26d(%rip), %rcx      # 0x11a69
movl $0x56f, %edx            # imm = 0x56F
callq 0x3080
leaq 0xb071(%rip), %rdi      # 0x1187e
leaq 0xa586(%rip), %rsi      # 0x10d9a
leaq 0xb08a(%rip), %rcx      # 0x118a5
movl $0x3be, %edx            # imm = 0x3BE
callq 0x3080
leaq 0xb0c5(%rip), %rdi      # 0x118f1
leaq 0xa567(%rip), %rsi      # 0x10d9a
leaq 0xb06b(%rip), %rcx      # 0x118a5
movl $0x3bf, %edx            # imm = 0x3BF
callq 0x3080