// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore.xo.c
// Function: x_btcl_operator_bop_s_solve
er_t x_btcl_operator_bop_s_solve( x_btcl_operator_bop_s* o, x_btcl_frame_s* frame, sr_s* result, bl_t* success )
{
    // bcore_x_btcl_operator.x:554:1
    
    // exportable operations
    BLM_TRY(x_btcl_operator_bop_s_solve_exportable_a_b(o,&(o->a),&( o->b), result, success ))
    if( (*(success)) ) return  0;
    
    (*(success)) = true;
    
    // residual (not exportable) operations
    switch( o->type )
    {
        case ((tp_t)(TYPEOF_chain)):
        {
            if( sr_s_type(&(o->a)) == ((tp_t)(TYPEOF_x_btcl_function_s)) && sr_s_type(&(o->b)) == ((tp_t)(TYPEOF_x_btcl_function_s)) )
            {BLM_INIT_LEVEL(4);
                x_btcl_function_s* fa = ((x_btcl_function_s*)BLM_LEVEL_T_PUSH(4,x_btcl_function_s,((x_btcl_function_s*)bcore_fork(((x_btcl_function_s*)(o->a.o))))));
                x_btcl_function_s* fb = ((x_btcl_function_s*)BLM_LEVEL_T_PUSH(4,x_btcl_function_s,((x_btcl_function_s*)bcore_fork(((x_btcl_function_s*)(o->b.o))))));
    
                if( !x_btcl_function_s_is_unary(fa) ) BLM_TRY(x_source_point_s_parse_error_fa(&(o->sp),"Operator *: Left argument is not a unary function.\n" ))
    
                x_btcl_function_s* fc = x_btcl_function_s_setup(((x_btcl_function_s*)BLM_LEVEL_T_PUSH(4,x_btcl_function_s,x_btcl_function_s_create())),fb->signature, fb->block, fb->tail );
                x_btcl_function_s_append_tail(fc,fa );
    
                sr_s_asm(result,((x_btcl_function_s*)bcore_fork(fc)) );
                BLM_RETURNV(er_t, 0)
            BLM_DOWN();}
        }
        break;
    
        case ((tp_t)(TYPEOF_mul)):
        {
            if( sr_s_type(&(o->a)) == ((tp_t)(TYPEOF_x_btcl_function_s)) )
            {BLM_INIT_LEVEL(4);
                x_btcl_function_s* f = ((x_btcl_function_s*)BLM_LEVEL_T_PUSH(4,x_btcl_function_s,((x_btcl_function_s*)bcore_fork(((x_btcl_function_s*)(o->a.o))))));
                bcore_arr_sr_s* arg_list = ((bcore_arr_sr_s*)BLM_LEVEL_T_PUSH(4,bcore_arr_sr_s,bcore_arr_sr_s_create()));
                sr_s_fork_from(bcore_arr_sr_s_push_sr(arg_list,sr_null() ),&(o->b ));
                BLM_TRY(x_btcl_function_s_call(f,&(o->sp), frame, arg_list, result ))
                BLM_RETURNV(er_t, 0)
            BLM_DOWN();}
        }
        break;
    
        case ((tp_t)(TYPEOF_spawn)):
        {
            if( sr_s_is_numeric(&(o->a)) )
            {BLM_INIT_LEVEL(4);
                x_btcl_list_s* list = ((x_btcl_list_s*)BLM_LEVEL_T_PUSH(4,x_btcl_list_s,x_btcl_list_s_create()));
                bcore_arr_sr_s_set_size(&(list->arr),sr_s_to_s3(&(o->a)) );
                if( sr_s_type(&(o->b)) == ((tp_t)(TYPEOF_x_btcl_function_s)) )
                {BLM_INIT_LEVEL(5);
                    x_btcl_frame_s* local_frame = x_btcl_frame_s_setup(((x_btcl_frame_s*)BLM_LEVEL_T_PUSH(5,x_btcl_frame_s,x_btcl_frame_s_create())),frame );
                    const x_btcl_function_s* function = ((const x_btcl_function_s*)(o->b.o));
                    if( x_btcl_function_s_args(function) != 1 ) BLM_RETURNV(er_t, x_source_point_s_parse_error_fa(&(o->sp),"Operator #<sc_t> :: #<sc_t>: Right operand must be unary (single argument).\n", bnameof( sr_s_type(&(o->a)) ), bnameof( sr_s_type(&(o->b)) ) ))
                    tp_t arg_name = x_btcl_function_s_arg_name(function,0 );
                    for(sz_t i = 0; i < list->arr.size; i++ )
                    {
                        x_btcl_frame_s_var_set(local_frame,arg_name, sr_s3(i ) );
                        BLM_TRY(x_btcl_block_s_eval(function->block,local_frame,&( list->arr.data[ i ] )))
                    }
                    sr_s_asc(result,((x_btcl_list_s*)bcore_fork(list)) );
                    BLM_RETURNV(er_t, 0)
                BLM_DOWN();}
            BLM_DOWN();}
            else if( sr_s_type(&(o->a)) == ((tp_t)(TYPEOF_x_btcl_list_s)) )
            {
                const x_btcl_list_s* list_a = ((const x_btcl_list_s*)(o->a.o));
    
                if( sr_s_type(&(o->b)) == ((tp_t)(TYPEOF_x_btcl_function_s)) )
                {BLM_INIT_LEVEL(6);
                    x_btcl_frame_s* local_frame = x_btcl_frame_s_setup(((x_btcl_frame_s*)BLM_LEVEL_T_PUSH(6,x_btcl_frame_s,x_btcl_frame_s_create())),frame );
                    const x_btcl_function_s* function = ((const x_btcl_function_s*)(o->b.o));
    
                    if( x_btcl_function_s_args(function) == 1 )
                    {BLM_INIT_LEVEL(7);
                        x_btcl_list_s* list = ((x_btcl_list_s*)BLM_LEVEL_T_PUSH(7,x_btcl_list_s,x_btcl_list_s_create()));
                        x_btcl_list_s_set_size(list,x_btcl_list_s_size(list_a) );
                        tp_t arg_name = x_btcl_function_s_arg_name(function,0 );
                        for(sz_t i = 0; i < list->arr.size; i++ )
                        {
                            x_btcl_frame_s_var_set(local_frame,arg_name, sr_cw( list_a->arr.data[ i ] ) );
                            BLM_TRY(x_btcl_block_s_eval(function->block,local_frame,&( list->arr.data[ i ] )))
                        }
                        sr_s_asc(result,((x_btcl_list_s*)bcore_fork(list)) );
                        BLM_RETURNV(er_t, 0)
                    BLM_DOWN();}
                    else if( x_btcl_function_s_args(function) == 2 )
                    {BLM_INIT_LEVEL(8);
                        if( list_a->arr.size < 1 )
                        {
                            BLM_RETURNV(er_t, x_source_point_s_parse_error_fa(&(o->sp),"Operator #<sc_t> :: #<sc_t>: Left operand must be a list of size >= 1.\n", bnameof( sr_s_type(&(o->a)) ), bnameof( sr_s_type(&(o->b)) ) ))
                        }
    
                        sr_s* sa = ((sr_s*)BLM_LEVEL_T_PUSH(8,sr_s,sr_s_create()));
                        (*(sa)) = sr_cw( list_a->arr.data[ 0 ] );
    
                        for(sz_t i = 1; i < list_a->arr.size; i++ )
                        {
                            x_btcl_frame_s_var_set(local_frame,x_btcl_function_s_arg_name(function,0 ),*( sa ));
                            (*(sa)) = sr_null();
                            x_btcl_frame_s_var_set(local_frame,x_btcl_function_s_arg_name(function,1 ), sr_cw( list_a->arr.data[ i ] ) );
                            BLM_TRY(x_btcl_block_s_eval(function->block,local_frame, sa ))
                        }
    
                        sr_s_fork_from(result,sa );
                        BLM_RETURNV(er_t, 0)
                    BLM_DOWN();}
                    else
                    {
                        BLM_RETURNV(er_t, x_source_point_s_parse_error_fa(&(o->sp),"Operator #<sc_t> :: #<sc_t>: Right operand must be unary (one argument) or binary (two arguments).\n", bnameof( sr_s_type(&(o->a)) ), bnameof( sr_s_type(&(o->b)) ) ))
                    }
                BLM_DOWN();}
                else if( sr_s_type(&(o->b)) == ((tp_t)(TYPEOF_x_btcl_list_s)) )
                {BLM_INIT_LEVEL(7);
                    const x_btcl_list_s* list_b = ((const x_btcl_list_s*)(o->b.o));
                    x_btcl_list_s* list_r = ((x_btcl_list_s*)BLM_LEVEL_T_PUSH(7,x_btcl_list_s,x_btcl_list_s_create()));
    
                    sz_t smin = sz_min( x_btcl_list_s_size(list_a), x_btcl_list_s_size(list_b) );
                    sz_t smax = sz_max( x_btcl_list_s_size(list_a), x_btcl_list_s_size(list_b) );
    
                    x_btcl_list_s_set_size(list_r,smax );
    
                    for(sz_t i = 0; i < smin; i++ ) BLM_TRY(x_btcl_bop_cat_ab(&(list_a->arr.data[ i ]),&( list_b->arr.data[ i ]),&( list_r->arr.data[ i ] )))
    
                    if( x_btcl_list_s_size(list_a) != x_btcl_list_s_size(list_b) )
                    {BLM_INIT_LEVEL(8);
    
                        sr_s* sr_list_empty = sr_s_asm(((sr_s*)BLM_LEVEL_T_PUSH(8,sr_s,sr_s_create())),x_btcl_list_s_create() );
                        for(sz_t i = smin; i < x_btcl_list_s_size(list_a); i++ ) BLM_TRY(x_btcl_bop_cat_ab(&(list_a->arr.data[ i ]), sr_list_empty,&(    list_r->arr.data[ i ] )))
                        for(sz_t i = smin; i < x_btcl_list_s_size(list_b); i++ ) BLM_TRY(x_btcl_bop_cat_ab(sr_list_empty,&(    list_b->arr.data[ i ]),&( list_r->arr.data[ i ] )))
                    BLM_DOWN();}
    
                    sr_s_asm(result,((x_btcl_list_s*)bcore_fork(list_r)) );
                    BLM_RETURNV(er_t, 0)
                BLM_DOWN();}
            }
        }
        break;
    
        case ((tp_t)(TYPEOF_shift_left)):
        {
            if( sr_s_type(&(o->a)) == ((tp_t)(TYPEOF_x_btcl_function_s)) )
            {BLM_INIT_LEVEL(4);
                x_btcl_function_s* f = ((x_btcl_function_s*)BLM_LEVEL_T_PUSH(4,x_btcl_function_s,((x_btcl_function_s*)bcore_fork(((x_btcl_function_s*)(o->a.o))))));
                bcore_arr_sr_s* arg_list = ((bcore_arr_sr_s*)BLM_LEVEL_T_PUSH(4,bcore_arr_sr_s,bcore_arr_sr_s_create()));
                sr_s_fork_from(bcore_arr_sr_s_push_sr(arg_list,sr_null() ),&(o->b ));
                BLM_TRY(x_btcl_function_s_call(f,&(o->sp), frame, arg_list, result ))
                BLM_RETURNV(er_t, 0)
            BLM_DOWN();}
        }
        break;
    
        default: break;
    }
    
    if( x_btcl_operator_sr_is_exportable_operand(&(o->a )) )
    {
        if( x_btcl_operator_sr_is_exportable_operand(&(o->b )) ) { sr_s_asc(result,((x_btcl_operator_bop_s*)bcore_fork(o)) ); return  0; }
        if( sr_s_is_numeric(&(o->b)) ) { sr_s_asc(result,((x_btcl_operator_bop_s*)bcore_fork(o)) ); return  0; }
    }
    
    if( x_btcl_operator_sr_is_exportable_operand(&(o->b )) )
    {
        if( sr_s_is_numeric(&(o->a)) ) { sr_s_asc(result,((x_btcl_operator_bop_s*)bcore_fork(o)) ); return  0; }
    }
    
    (*(success)) = false;
    return  0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x148, %rsp            # imm = 0x148
movq %rcx, %r14
movq %rdx, %rbp
movq %rsi, %r15
movq %rdi, %rbx
leaq 0x10(%rdi), %r12
leaq 0x28(%rdi), %r13
movq %r12, %rsi
movq %r13, %rdx
movq %rbp, %rcx
movq %r14, %r8
callq 0x9096f
testq %rax, %rax
je 0x92033
movq %rax, %rbx
leaq 0x109dad(%rip), %rax    # 0x19bdd0
movq (%rax), %rdi
callq 0xd6d2c
movq %rbx, %rax
jmp 0x9296b
movq %r12, 0x20(%rsp)
movq %r15, 0x30(%rsp)
movq %rbp, 0x28(%rsp)
cmpb $0x0, (%r14)
jne 0x92969
movb $0x1, (%r14)
movq %rbx, %r12
movq 0x8(%rbx), %rax
movabsq $0x7e66519174a3ce0, %rcx # imm = 0x7E66519174A3CE0
cmpq %rcx, %rax
movq %r13, 0x38(%rsp)
jg 0x9214e
movabsq $-0x58bc6f89b3e5cfaa, %rcx # imm = 0xA74390764C1A3056
cmpq %rcx, %rax
je 0x92314
movabsq $-0xe64339e40c20067, %rcx # imm = 0xF19BCC61BF3DFF99
cmpq %rcx, %rax
jne 0x926f0
movq 0x18(%r12), %rax
testq %rax, %rax
je 0x926f0
movabsq $-0x19831b480b40fba0, %rbx # imm = 0xE67CE4B7F4BF0460
cmpq %rbx, 0x8(%rax)
jne 0x926f0
leaq 0x109d12(%rip), %rax    # 0x19bdd0
movq (%rax), %rsi
movq %r12, %r14
leaq 0x58(%rsp), %r12
movq %r12, %rdi
callq 0xd6675
movq $0x4, 0x10(%r12)
movq 0x10(%r14), %rdi
callq 0xbe7e4
movl $0x4, %esi
movq %r12, %rdi
movq %rbx, %rdx
movq %rax, %rcx
callq 0xd68a8
movq %rax, %rbx
xorl %eax, %eax
callq 0xbae9e
movabsq $-0x78ea303a4f284a4, %rdx # imm = 0xF8715CFC5B0D7B5C
movl $0x4, %esi
movq %r12, %rdi
movq %rax, %rcx
callq 0xd68a8
movq %rax, %r13
xorps %xmm0, %xmm0
movaps %xmm0, 0x90(%rsp)
movq $0x0, 0xa0(%rsp)
movq 0xa0(%rsp), %rax
movq %rax, 0x10(%rsp)
movaps 0x90(%rsp), %xmm0
jmp 0x924ed
movabsq $0x7e66519174a3ce1, %rcx # imm = 0x7E66519174A3CE1
cmpq %rcx, %rax
je 0x92439
movabsq $0x4328f78ab20e1f98, %rcx # imm = 0x4328F78AB20E1F98
cmpq %rcx, %rax
jne 0x926f0
movq 0x20(%rsp), %r13
movq %r13, %rdi
callq 0x108085
testb %al, %al
je 0x9252d
leaq 0x109c40(%rip), %rax    # 0x19bdd0
movq (%rax), %rsi
leaq 0x58(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0xd6675
movq 0x40(%rsp), %rbp
movq $0x4, 0x10(%rbp)
callq 0x8c302
movabsq $-0x240ec4eb25c1f3e8, %rdx # imm = 0xDBF13B14DA3E0C18
movl $0x4, %esi
movq %rbp, %rdi
movq %rax, %rcx
callq 0xd68a8
movq %rax, 0x88(%rsp)
leaq 0x8(%rax), %rbp
movq %r13, %rdi
callq 0x1088f4
movq %rbp, %rdi
movq %rax, %rsi
callq 0xbb055
movq 0x30(%r12), %rax
testq %rax, %rax
je 0x926e6
movabsq $-0x19831b480b40fba0, %rcx # imm = 0xE67CE4B7F4BF0460
cmpq %rcx, 0x8(%rax)
jne 0x926e6
movq 0x40(%rsp), %rsi
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
callq 0xd6675
movq $0x5, 0x10(%r14)
callq 0x7f70d
movabsq $-0x8f0f83b86d2b0b3, %rdx # imm = 0xF70F07C4792D4F4D
movl $0x5, %esi
movq %r14, %rdi
movq %rax, %rcx
callq 0xd68a8
movq %rax, %r12
movq %rax, %rdi
movq 0x30(%rsp), %rsi
callq 0x7f934
movq 0x38(%rsp), %rax
movq (%rax), %r13
movq 0x8(%r13), %rax
cmpq $0x1, 0x30(%rax)
jne 0x9297d
movq 0x88(%rsp), %rbx
cmpq $0x0, 0x18(%rbx)
je 0x922f8
movq 0x28(%rax), %rax
movq (%rax), %rax
movq %rax, 0x20(%rsp)
movq %r12, %r15
addq $0x78, %r15
xorl %r14d, %r14d
xorl %ebp, %ebp
leaq 0x118(%rsp), %rdi
movq %rbp, %rsi
callq 0x1078ed
movq 0x128(%rsp), %rax
movq %rax, 0x10(%rsp)
movups 0x118(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r15, %rdi
movq 0x20(%rsp), %rsi
callq 0xd4234
movq 0x10(%r13), %rdi
movq 0x10(%rbx), %rdx
addq %r14, %rdx
movq %r12, %rsi
callq 0x832b1
testq %rax, %rax
jne 0x92b6d
incq %rbp
addq $0x18, %r14
cmpq 0x18(%rbx), %rbp
jb 0x92299
movq %rbx, %rdi
callq 0xbe7e4
movq 0x28(%rsp), %rdi
movq %rax, %rsi
callq 0x85850
xorl %ebx, %ebx
jmp 0x92b70
movq 0x18(%r12), %rax
testq %rax, %rax
je 0x926f0
movabsq $-0x19831b480b40fba0, %rbp # imm = 0xE67CE4B7F4BF0460
cmpq %rbp, 0x8(%rax)
jne 0x926f0
movq 0x30(%r12), %rax
testq %rax, %rax
je 0x926f0
cmpq %rbp, 0x8(%rax)
jne 0x926f0
leaq 0x109a7b(%rip), %rax    # 0x19bdd0
movq (%rax), %rsi
leaq 0x58(%rsp), %r14
movq %r14, %rdi
callq 0xd6675
movq $0x4, 0x10(%r14)
movq 0x20(%rsp), %rax
movq (%rax), %rdi
callq 0xbe7e4
movl $0x4, %esi
movq %r14, %rdi
movq %rbp, %rdx
movq %rax, %rcx
callq 0xd68a8
movq %rax, %r12
movq 0x38(%rsp), %rax
movq (%rax), %rdi
callq 0xbe7e4
movl $0x4, %esi
movq %r14, %rdi
movq %rbp, %rdx
movq %rax, %rcx
callq 0xd68a8
movq %rax, %r15
movq 0x8(%r12), %rax
cmpq $0x1, 0x30(%rax)
je 0x923d9
addq $0x40, %rbx
leaq 0xa6a1d(%rip), %rsi     # 0x138de7
movq %rbx, %rdi
xorl %eax, %eax
callq 0x8dd3f
testq %rax, %rax
jne 0x9242c
callq 0x8d94e
leaq 0x58(%rsp), %rdi
movl $0x4, %esi
movq %rbp, %rdx
movq %rax, %rcx
callq 0xd68a8
movq %rax, %rbx
movq 0x8(%r15), %rsi
movq 0x10(%r15), %rdx
movq 0x30(%r15), %rcx
movq %rax, %rdi
callq 0x83921
movq %rbx, %rdi
movq %r12, %rsi
callq 0x8dc62
movq %rbx, %rdi
callq 0xbe7e4
movq 0x28(%rsp), %rdi
movq %rax, %rsi
callq 0x82d51
xorl %eax, %eax
leaq 0x58(%rsp), %rdi
movq %rax, %rbx
jmp 0x92026
movq 0x18(%r12), %rax
testq %rax, %rax
je 0x926f0
movabsq $-0x19831b480b40fba0, %rbx # imm = 0xE67CE4B7F4BF0460
cmpq %rbx, 0x8(%rax)
jne 0x926f0
leaq 0x10996e(%rip), %rax    # 0x19bdd0
movq (%rax), %rsi
movq %r12, %r14
leaq 0x58(%rsp), %r12
movq %r12, %rdi
callq 0xd6675
movq $0x4, 0x10(%r12)
movq 0x10(%r14), %rdi
callq 0xbe7e4
movl $0x4, %esi
movq %r12, %rdi
movq %rbx, %rdx
movq %rax, %rcx
callq 0xd68a8
movq %rax, %rbx
xorl %eax, %eax
callq 0xbae9e
movabsq $-0x78ea303a4f284a4, %rdx # imm = 0xF8715CFC5B0D7B5C
movl $0x4, %esi
movq %r12, %rdi
movq %rax, %rcx
callq 0xd68a8
movq %rax, %r13
xorps %xmm0, %xmm0
movaps %xmm0, 0xb0(%rsp)
movq $0x0, 0xc0(%rsp)
movq 0xc0(%rsp), %rax
movq %rax, 0x10(%rsp)
movaps 0xb0(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r13, %rdi
callq 0xbb23d
movq %rax, %rdi
movq 0x38(%rsp), %rsi
callq 0x107eb1
addq $0x40, %r14
movq %rbx, %rdi
movq %r14, %rsi
movq 0x30(%rsp), %rdx
movq %r13, %rcx
movq 0x28(%rsp), %r8
callq 0x8ddc3
movq %rax, %rbx
movq %r12, %rdi
jmp 0x92026
movq 0x18(%r12), %rax
testq %rax, %rax
je 0x926f0
movabsq $-0x240ec4eb25c1f3e8, %r13 # imm = 0xDBF13B14DA3E0C18
cmpq %r13, 0x8(%rax)
jne 0x926f0
movq 0x30(%r12), %rax
testq %rax, %rax
je 0x926f0
movq 0x10(%r12), %rbp
movq 0x8(%rax), %rax
cmpq %r13, %rax
je 0x92996
movabsq $-0x19831b480b40fba0, %rcx # imm = 0xE67CE4B7F4BF0460
cmpq %rcx, %rax
jne 0x926f0
leaq 0x109847(%rip), %rax    # 0x19bdd0
movq (%rax), %rsi
leaq 0x58(%rsp), %r12
movq %r12, %rdi
callq 0xd6675
movq $0x6, 0x10(%r12)
callq 0x7f70d
movabsq $-0x8f0f83b86d2b0b3, %rdx # imm = 0xF70F07C4792D4F4D
movl $0x6, %esi
movq %r12, %rdi
movq %rax, %rcx
callq 0xd68a8
movq %rax, %r12
movq %rax, %rdi
movq 0x30(%rsp), %rsi
callq 0x7f934
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x8(%rax), %rax
movq 0x30(%rax), %rax
cmpq $0x2, %rax
je 0x92b7d
cmpq $0x1, %rax
jne 0x92ce1
leaq 0xd0(%rsp), %r14
leaq 0x58(%rsp), %rsi
movq %r14, %rdi
callq 0xd6675
movq $0x7, 0x10(%r14)
callq 0x8c302
movl $0x7, %esi
movq %r14, %rdi
movq %r13, %rdx
movq %rax, %rcx
callq 0xd68a8
movq %rax, %r14
movq %rbp, 0x30(%rsp)
movq 0x18(%rbp), %rsi
leaq 0x8(%rax), %rdi
callq 0xbb055
cmpq $0x0, 0x18(%r14)
je 0x926de
movq %r12, %rbx
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x28(%rax), %rax
movq (%rax), %r15
movq %r12, %r13
addq $0x78, %r13
xorl %r12d, %r12d
xorl %ebp, %ebp
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movups (%rax,%r12), %xmm0
movaps %xmm0, 0x130(%rsp)
movq 0x10(%rax,%r12), %rax
andq $-0x3, %rax
movaps %xmm0, 0x40(%rsp)
movq %rax, 0x50(%rsp)
movq %rax, 0x10(%rsp)
movaps 0x40(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r13, %rdi
movq %r15, %rsi
callq 0xd4234
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x10(%r14), %rdx
addq %r12, %rdx
movq %rbx, %rsi
callq 0x832b1
testq %rax, %rax
jne 0x92b6d
incq %rbp
addq $0x18, %r12
cmpq 0x18(%r14), %rbp
jb 0x9266e
movq %r14, %rdi
jmp 0x922fb
leaq 0x40(%rsp), %rdi
callq 0xd6d0d
movq 0x18(%r12), %rax
testq %rax, %rax
je 0x92700
movq 0x8(%rax), %rbp
jmp 0x92702
xorl %ebp, %ebp
movq 0x10(%r12), %rdi
leaq 0x107f82(%rip), %r13    # 0x19a690
movl 0x107f7c(%rip), %eax    # 0x19a690
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r13,%rax,8), %rcx
movq 0x18(%r13,%rax,8), %rdx
andq %rbp, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbp, %rdx
je 0x92767
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbp, %rdx
je 0x92767
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbp, %rdx
je 0x92767
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbp, %rdx
jne 0x92770
movq (%rax,%rcx), %rbx
testq %rbx, %rbx
jne 0x927a4
movq %rdi, %r15
movabsq $-0x2d60bfcb4cae7a7a, %rdi # imm = 0xD29F4034B3518586
movq %rbp, %rsi
callq 0xe9bc5
movq %rax, %rbx
leaq 0x107f01(%rip), %rdi    # 0x19a690
movq %rbp, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r15, %rdi
leaq 0x107eec(%rip), %r13    # 0x19a690
callq *0x18(%rbx)
testb %al, %al
je 0x92872
movq 0x30(%r12), %rax
testq %rax, %rax
je 0x927bf
movq 0x8(%rax), %rbp
jmp 0x927c1
xorl %ebp, %ebp
movq 0x28(%r12), %rdi
movl 0x107ec4(%rip), %eax    # 0x19a690
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r13,%rax,8), %rcx
movq 0x18(%r13,%rax,8), %rdx
andq %rbp, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbp, %rdx
je 0x9281f
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbp, %rdx
je 0x9281f
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbp, %rdx
je 0x9281f
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbp, %rdx
jne 0x92828
movq (%rax,%rcx), %rbx
testq %rbx, %rbx
jne 0x92855
movq %rdi, %r15
movabsq $-0x2d60bfcb4cae7a7a, %rdi # imm = 0xD29F4034B3518586
movq %rbp, %rsi
callq 0xe9bc5
movq %rax, %rbx
leaq 0x107e49(%rip), %rdi    # 0x19a690
movq %rbp, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r15, %rdi
callq *0x18(%rbx)
testb %al, %al
jne 0x9292b
movq 0x38(%rsp), %rdi
callq 0x108085
testb %al, %al
jne 0x9292b
movq 0x30(%r12), %rax
testq %rax, %rax
je 0x92882
movq 0x8(%rax), %r15
jmp 0x92885
xorl %r15d, %r15d
movq 0x28(%r12), %rbx
movl 0x107e00(%rip), %eax    # 0x19a690
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r13,%rax,8), %rcx
movq 0x18(%r13,%rax,8), %rdx
andq %r15, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r15, %rdx
je 0x928e3
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r15, %rdx
je 0x928e3
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r15, %rdx
je 0x928e3
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r15, %rdx
jne 0x928ec
movq (%rax,%rcx), %rbp
testq %rbp, %rbp
jne 0x92913
movabsq $-0x2d60bfcb4cae7a7a, %rdi # imm = 0xD29F4034B3518586
movq %r15, %rsi
callq 0xe9bc5
movq %rax, %rbp
leaq 0x107d88(%rip), %rdi    # 0x19a690
movq %r15, %rsi
movq %rax, %rdx
callq 0x115fac
movq %rbx, %rdi
callq *0x18(%rbp)
testb %al, %al
je 0x92952
movq 0x20(%rsp), %rdi
callq 0x108085
testb %al, %al
je 0x92952
movq %r12, %rdi
callq 0xbe7e4
movq %rax, %rbx
movq 0x28(%rsp), %r14
movq %r14, %rdi
callq 0x107ca9
testq %rbx, %rbx
je 0x92958
movq (%rbx), %rdi
callq 0x1074f1
jmp 0x9295a
movb $0x0, (%r14)
jmp 0x92969
xorl %eax, %eax
movq %rbx, (%r14)
movq %rax, 0x8(%r14)
movq $0x3, 0x10(%r14)
xorl %eax, %eax
addq $0x148, %rsp            # imm = 0x148
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rbx, %r14
movq 0x18(%rbx), %rax
testq %rax, %rax
je 0x92b32
movq 0x8(%rax), %rdi
jmp 0x92b34
leaq 0x109433(%rip), %rax    # 0x19bdd0
movq (%rax), %rsi
leaq 0x58(%rsp), %r14
movq %r14, %rdi
callq 0xd6675
movq $0x7, 0x10(%r14)
movq 0x38(%rsp), %rax
movq (%rax), %r15
callq 0x8c302
movl $0x7, %esi
movq %r14, %rdi
movq %r13, %rdx
movq %rax, %rcx
callq 0xd68a8
movq 0x18(%rbp), %rcx
movq 0x18(%r15), %rsi
cmpq %rsi, %rcx
movq %rsi, %r12
cmovlq %rcx, %r12
movq %rax, %r14
cmovgq %rcx, %rsi
leaq 0x8(%rax), %rdi
callq 0xbb055
testq %r12, %r12
jle 0x92a24
xorl %ebx, %ebx
movq %r12, %r13
movq 0x10(%rbp), %rdi
addq %rbx, %rdi
movq 0x10(%r15), %rsi
addq %rbx, %rsi
movq 0x10(%r14), %rdx
addq %rbx, %rdx
callq 0x8ea59
addq $0x18, %rbx
decq %r13
jne 0x92a01
movq 0x18(%rbp), %rax
cmpq 0x18(%r15), %rax
je 0x92b0e
leaq 0xd0(%rsp), %rbx
movq %rbx, 0x40(%rsp)
leaq 0x58(%rsp), %rsi
movq %rbx, %rdi
callq 0xd6675
movq $0x8, 0x10(%rbx)
xorl %eax, %eax
callq 0x107e03
movabsq $0x79b76918ff0af12a, %rdx # imm = 0x79B76918FF0AF12A
movl $0x8, %esi
movq %rbx, %rdi
movq %rax, %rcx
callq 0xd68a8
movq %rax, %rbx
callq 0x8c302
movq %rbx, 0x20(%rsp)
movq %rbx, %rdi
movq %rax, %rsi
callq 0x82d51
cmpq 0x18(%rbp), %r12
jge 0x92aca
movq %rbp, %rbx
leaq (,%r12,8), %rax
leaq (%rax,%rax,2), %r13
movq %r12, %rbp
movq 0x10(%rbx), %rdi
addq %r13, %rdi
movq 0x10(%r14), %rdx
addq %r13, %rdx
movq 0x20(%rsp), %rsi
callq 0x8ea59
incq %rbp
addq $0x18, %r13
cmpq 0x18(%rbx), %rbp
jl 0x92aa5
cmpq 0x18(%r15), %r12
movq 0x20(%rsp), %rbx
jge 0x92b04
leaq (,%r12,8), %rax
leaq (%rax,%rax,2), %r13
movq 0x10(%r15), %rsi
addq %r13, %rsi
movq 0x10(%r14), %rdx
addq %r13, %rdx
movq %rbx, %rdi
callq 0x8ea59
incq %r12
addq $0x18, %r13
cmpq 0x18(%r15), %r12
jl 0x92ae1
leaq 0x40(%rsp), %rdi
callq 0xd6d0d
movq %r14, %rdi
callq 0xbe7e4
movq 0x28(%rsp), %rdi
movq %rax, %rsi
callq 0x82d51
leaq 0x58(%rsp), %rdi
callq 0xd6d2c
jmp 0x92969
xorl %edi, %edi
leaq 0x40(%r14), %rbx
callq 0xd6ec4
movq %rax, %r15
movq 0x30(%r14), %rax
testq %rax, %rax
je 0x92b4f
movq 0x8(%rax), %rdi
jmp 0x92b51
xorl %edi, %edi
callq 0xd6ec4
leaq 0xa62be(%rip), %rsi     # 0x138e1b
movq %rbx, %rdi
movq %r15, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0x8dd3f
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
jmp 0x92026
leaq 0xd0(%rsp), %r14
leaq 0x58(%rsp), %rsi
movq %r14, %rdi
callq 0xd6675
movq $0x8, 0x10(%r14)
cmpq $0x0, 0x18(%rbp)
je 0x92cf3
xorl %eax, %eax
callq 0x107e03
leaq 0xd0(%rsp), %rdi
movabsq $0x79b76918ff0af12a, %rdx # imm = 0x79B76918FF0AF12A
movl $0x8, %esi
movq %rax, %rcx
callq 0xd68a8
movq %rax, %r14
movq 0x10(%rbp), %rax
movq 0x10(%rax), %rcx
andq $-0x3, %rcx
movups (%rax), %xmm0
movups %xmm0, (%r14)
movq %rcx, 0x10(%r14)
cmpq $0x2, 0x18(%rbp)
movq %r12, 0x30(%rsp)
jb 0x92ccf
movq 0x30(%rsp), %r15
addq $0x78, %r15
movl $0x1, %r13d
movl $0x28, %r12d
movq 0x20(%rsp), %rbx
movq 0x8(%rbx), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
movq 0x10(%r14), %rax
movq %rax, 0x50(%rsp)
movups (%r14), %xmm0
movaps %xmm0, 0x40(%rsp)
movq 0x50(%rsp), %rax
movq %rax, 0x10(%rsp)
movaps 0x40(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r15, %rdi
callq 0xd4234
xorps %xmm0, %xmm0
movups %xmm0, (%r14)
movq $0x0, 0x10(%r14)
movq 0x8(%rbx), %rax
movq 0x28(%rax), %rax
movq 0x8(%rax), %rsi
movq 0x10(%rbp), %rax
movups -0x10(%rax,%r12), %xmm0
movaps %xmm0, 0x100(%rsp)
movq (%rax,%r12), %rax
andq $-0x3, %rax
movaps 0x100(%rsp), %xmm0
movaps %xmm0, 0x40(%rsp)
movq %rax, 0x50(%rsp)
movq %rax, 0x10(%rsp)
movaps 0x40(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r15, %rdi
callq 0xd4234
movq 0x10(%rbx), %rdi
movq 0x30(%rsp), %rsi
movq %r14, %rdx
callq 0x832b1
testq %rax, %rax
jne 0x92b6d
incq %r13
addq $0x18, %r12
cmpq 0x18(%rbp), %r13
jb 0x92c0f
movq 0x28(%rsp), %rdi
movq %r14, %rsi
callq 0x107eb1
jmp 0x9230d
movq %rbx, %r14
movq 0x18(%rbx), %rax
testq %rax, %rax
je 0x92d05
movq 0x8(%rax), %rdi
jmp 0x92d07
movq %rbx, %r14
movq 0x18(%rbx), %rax
testq %rax, %rax
je 0x92d4d
movq 0x8(%rax), %rdi
jmp 0x92d4f
xorl %edi, %edi
leaq 0x40(%r14), %rbx
callq 0xd6ec4
movq %rax, %r15
movq 0x30(%r14), %rax
testq %rax, %rax
je 0x92d22
movq 0x8(%rax), %rdi
jmp 0x92d24
xorl %edi, %edi
callq 0xd6ec4
leaq 0xa6180(%rip), %rsi     # 0x138eb0
movq %rbx, %rdi
movq %r15, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0x8dd3f
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
jmp 0x92026
xorl %edi, %edi
leaq 0x40(%r14), %rbx
callq 0xd6ec4
movq %rax, %r15
movq 0x30(%r14), %rax
testq %rax, %rax
je 0x92d6a
movq 0x8(%rax), %rdi
jmp 0x92d6c
xorl %edi, %edi
callq 0xd6ec4
leaq 0xa60f0(%rip), %rsi     # 0x138e68
jmp 0x92b5d