// File: /workspace/github_c_makefile_star2_O2/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, %r13
movq %rdx, %r12
movq %rsi, %r15
movq %rdi, %rbx
leaq 0x10(%rdi), %rbp
leaq 0x28(%rdi), %r14
movq %rbp, %rsi
movq %r14, %rdx
movq %r12, %rcx
movq %r13, %r8
callq 0x43193
testq %rax, %rax
je 0x442e6
movq %rax, %rbx
leaq 0xd3afa(%rip), %rax     # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
movq %rbx, %rax
jmp 0x4499f
movq %r12, 0x20(%rsp)
cmpb $0x0, (%r13)
jne 0x4499d
movb $0x1, (%r13)
movq 0x8(%rbx), %rax
movabsq $0x4328f78ab20e1f98, %rcx # imm = 0x4328F78AB20E1F98
movabsq $-0x19831b480b40fba0, %rsi # imm = 0xE67CE4B7F4BF0460
cmpq %rcx, %rax
je 0x4460f
movq %rbx, %rdx
movabsq $-0xe64339e40c20067, %rcx # imm = 0xF19BCC61BF3DFF99
cmpq %rcx, %rax
movq %r15, %r12
je 0x44475
movabsq $0x7e66519174a3ce1, %rcx # imm = 0x7E66519174A3CE1
cmpq %rcx, %rax
movq %r14, %r15
je 0x44524
movabsq $-0x58bc6f89b3e5cfaa, %rcx # imm = 0xA74390764C1A3056
cmpq %rcx, %rax
jne 0x44945
movq 0x18(%rdx), %rax
testq %rax, %rax
je 0x44945
cmpq %rsi, 0x8(%rax)
jne 0x44945
movq 0x30(%rdx), %rax
testq %rax, %rax
je 0x44945
cmpq %rsi, 0x8(%rax)
jne 0x44945
leaq 0xd3a3d(%rip), %rax     # 0x117dd0
movq %rsi, %r12
movq (%rax), %rsi
leaq 0x58(%rsp), %r14
movq %r14, %rdi
callq 0x717f5
movq $0x4, 0x10(%r14)
movq (%rbp), %rdi
callq 0x6026d
movq %r12, %rbp
pushq $0x4
popq %r13
movq %r14, %rdi
movq %r13, %rsi
movq %r12, %rdx
movq %rax, %rcx
callq 0x71967
movq %rax, %r12
movq (%r15), %rdi
callq 0x6026d
movq %r14, %rdi
movq %r13, %rsi
movq %rbp, %r14
movq %rbp, %rdx
movq %rax, %rcx
callq 0x71967
movq %rax, %r15
movq 0x8(%r12), %rax
cmpq $0x1, 0x30(%rax)
je 0x44417
addq $0x40, %rbx
leaq 0x71e0b(%rip), %rsi     # 0xb6213
movq %rbx, %rdi
xorl %eax, %eax
callq 0x41984
testq %rax, %rax
jne 0x44468
callq 0x41729
leaq 0x58(%rsp), %rdi
pushq $0x4
popq %rsi
movq %r14, %rdx
movq %rax, %rcx
callq 0x71967
movq %rax, %rbx
movq 0x8(%r15), %rsi
movq 0x10(%r15), %rdx
movq 0x30(%r15), %rcx
movq %rax, %rdi
callq 0x3c700
movq %rbx, %rdi
movq %r12, %rsi
callq 0x418c8
movq %rbx, %rdi
callq 0x6026d
movq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x3c408
xorl %eax, %eax
leaq 0x58(%rsp), %rdi
movq %rax, %rbx
jmp 0x442d9
movq 0x18(%rdx), %rax
testq %rax, %rax
movq %r14, %r15
je 0x44945
cmpq %rsi, 0x8(%rax)
jne 0x44945
leaq 0xd393a(%rip), %rax     # 0x117dd0
movq %rsi, %r13
movq (%rax), %rsi
leaq 0x58(%rsp), %rbx
movq %rbx, %rdi
movq %rdx, %r14
callq 0x717f5
movq $0x4, 0x10(%rbx)
movq 0x10(%r14), %rdi
callq 0x6026d
pushq $0x4
popq %rbp
movq %rbx, %rdi
movq %rbp, %rsi
movq %r13, %rdx
movq %rax, %rcx
callq 0x71967
movq %rax, %r13
xorl %eax, %eax
callq 0x5d23d
movabsq $-0x78ea303a4f284a4, %rdx # imm = 0xF8715CFC5B0D7B5C
movq %rbx, %rdi
movq %rbp, %rsi
movq %rax, %rcx
callq 0x71967
movq %rax, %rbp
xorps %xmm0, %xmm0
movaps %xmm0, 0x90(%rsp)
andq $0x0, 0xa0(%rsp)
movq 0xa0(%rsp), %rax
movq %rax, 0x10(%rsp)
movaps 0x90(%rsp), %xmm0
jmp 0x445cb
movq 0x18(%rdx), %rax
testq %rax, %rax
je 0x44945
cmpq %rsi, 0x8(%rax)
jne 0x44945
leaq 0xd388e(%rip), %rax     # 0x117dd0
movq %rsi, %r13
movq (%rax), %rsi
leaq 0x58(%rsp), %rbx
movq %rbx, %rdi
movq %rdx, %r14
callq 0x717f5
movq $0x4, 0x10(%rbx)
movq 0x10(%r14), %rdi
callq 0x6026d
pushq $0x4
popq %rbp
movq %rbx, %rdi
movq %rbp, %rsi
movq %r13, %rdx
movq %rax, %rcx
callq 0x71967
movq %rax, %r13
xorl %eax, %eax
callq 0x5d23d
movabsq $-0x78ea303a4f284a4, %rdx # imm = 0xF8715CFC5B0D7B5C
movq %rbx, %rdi
movq %rbp, %rsi
movq %rax, %rcx
callq 0x71967
movq %rax, %rbp
xorps %xmm0, %xmm0
movaps %xmm0, 0xb0(%rsp)
andq $0x0, 0xc0(%rsp)
movq 0xc0(%rsp), %rax
movq %rax, 0x10(%rsp)
movaps 0xb0(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %rbp, %rdi
callq 0x5d3e3
movq %rax, %rdi
movq %r15, %rsi
callq 0x8d2dd
addq $0x40, %r14
movq %r13, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq %rbp, %rcx
movq 0x20(%rsp), %r8
callq 0x41a08
movq %rax, %r14
movq %rbx, %rdi
callq 0x71b64
movq %r14, %rax
jmp 0x4499f
movq %rbp, %r12
movq %rbp, %rdi
callq 0x8d3ab
testb %al, %al
movq %r15, %rsi
je 0x4478a
movq %rsi, 0x18(%rsp)
leaq 0xd379f(%rip), %rax     # 0x117dd0
movq (%rax), %rsi
leaq 0x58(%rsp), %r15
movq %r15, 0x30(%rsp)
movq %r15, %rdi
callq 0x717f5
movq $0x4, 0x10(%r15)
callq 0x41317
pushq $0x4
popq %rsi
movabsq $-0x240ec4eb25c1f3e8, %rdx # imm = 0xDBF13B14DA3E0C18
movq %r15, %rdi
movq %rax, %rcx
callq 0x71967
movq %rax, 0x28(%rsp)
leaq 0x8(%rax), %r15
movq %r12, %rdi
callq 0x8d9e8
movq %r15, %rdi
movq %rax, %rsi
callq 0x5d326
movq 0x30(%rbx), %rax
testq %rax, %rax
movq %r14, %r15
je 0x4493b
movabsq $-0x19831b480b40fba0, %rcx # imm = 0xE67CE4B7F4BF0460
cmpq %rcx, 0x8(%rax)
jne 0x4493b
leaq 0xd0(%rsp), %r14
leaq 0x58(%rsp), %rsi
movq %r14, %rdi
callq 0x717f5
movq $0x5, 0x10(%r14)
callq 0x3a466
pushq $0x5
popq %rsi
movabsq $-0x8f0f83b86d2b0b3, %rdx # imm = 0xF70F07C4792D4F4D
movq %r14, %rdi
movq %rax, %rcx
callq 0x71967
movq %rax, %r13
movq %rax, %rdi
movq 0x18(%rsp), %rsi
callq 0x3a4c3
movq (%r15), %r12
movq 0x8(%r12), %rax
cmpq $0x1, 0x30(%rax)
jne 0x449b1
movq 0x28(%rax), %rax
movq (%rax), %rax
movq %rax, 0x18(%rsp)
movq %r13, %r15
addq $0x78, %r15
xorl %r14d, %r14d
xorl %ebp, %ebp
movq 0x28(%rsp), %rbx
cmpq 0x18(%rbx), %rbp
jae 0x449ca
leaq 0x118(%rsp), %rdi
movq %rbp, %rsi
callq 0x8cfb4
movq 0x128(%rsp), %rax
movq %rax, 0x10(%rsp)
movups 0x118(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r15, %rdi
movq 0x18(%rsp), %rsi
callq 0x6f857
movq 0x10(%r12), %rdi
movq 0x10(%rbx), %rdx
addq %r14, %rdx
movq %r13, %rsi
callq 0x3c554
incq %rbp
addq $0x18, %r14
testq %rax, %rax
je 0x44725
jmp 0x44b5f
movq 0x18(%rbx), %rax
testq %rax, %rax
movq %r14, %r15
movabsq $-0x19831b480b40fba0, %rdx # imm = 0xE67CE4B7F4BF0460
je 0x44945
movabsq $-0x240ec4eb25c1f3e8, %r14 # imm = 0xDBF13B14DA3E0C18
cmpq %r14, 0x8(%rax)
jne 0x44945
movq %rbx, %rcx
movq 0x30(%rbx), %rax
testq %rax, %rax
je 0x44945
movq 0x10(%rcx), %rcx
movq 0x8(%rax), %rax
cmpq %r14, %rax
movq %rcx, 0x18(%rsp)
je 0x449e6
cmpq %rdx, %rax
jne 0x44945
leaq 0xd35e2(%rip), %rax     # 0x117dd0
movq %rsi, %r12
movq (%rax), %rsi
leaq 0x58(%rsp), %r13
movq %r13, %rdi
callq 0x717f5
movq $0x6, 0x10(%r13)
callq 0x3a466
pushq $0x6
popq %rsi
movabsq $-0x8f0f83b86d2b0b3, %rdx # imm = 0xF70F07C4792D4F4D
movq %r13, %rdi
movq %rax, %rcx
callq 0x71967
movq %rax, %r13
movq %rax, %rdi
movq %r12, %rsi
callq 0x3a4c3
movq (%r15), %rax
movq %rax, 0x28(%rsp)
movq 0x8(%rax), %rax
movq 0x30(%rax), %rax
cmpq $0x2, %rax
je 0x44bce
cmpq $0x1, %rax
jne 0x44d39
leaq 0xd0(%rsp), %rbx
leaq 0x58(%rsp), %rsi
movq %rbx, %rdi
callq 0x717f5
movq $0x7, 0x10(%rbx)
callq 0x41317
pushq $0x7
popq %rsi
movq %rbx, %rdi
movq %r14, %rdx
movq %rax, %rcx
callq 0x71967
movq %rax, %r14
movq 0x18(%rsp), %rax
movq 0x18(%rax), %rsi
leaq 0x8(%r14), %rdi
callq 0x5d326
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq %rax, 0x50(%rsp)
movq %r13, %r12
addq $0x78, %r12
pushq $-0x1
popq %r15
xorl %ebp, %ebp
incq %r15
cmpq 0x18(%r14), %r15
jae 0x44d4b
leaq 0x18(%rbp), %rbx
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rax
movups (%rax,%rbp), %xmm0
movaps %xmm0, 0x130(%rsp)
movq 0x10(%rax,%rbp), %rax
andq $-0x3, %rax
movaps %xmm0, 0x30(%rsp)
movq %rax, 0x40(%rsp)
movq %rax, 0x10(%rsp)
movaps 0x30(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r12, %rdi
movq 0x50(%rsp), %rsi
callq 0x6f857
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rdi
addq 0x10(%r14), %rbp
movq %r13, %rsi
movq %rbp, %rdx
callq 0x3c554
movq %rbx, %rbp
testq %rax, %rax
je 0x448c2
jmp 0x44b5f
leaq 0x30(%rsp), %rdi
callq 0x71b48
movq %rbp, %rdi
callq 0x42eea
testb %al, %al
je 0x44969
movq %r15, %rdi
callq 0x42eea
testb %al, %al
jne 0x44981
movq %r15, %rdi
callq 0x8d3ab
testb %al, %al
jne 0x44981
movq %r15, %rdi
callq 0x42eea
testb %al, %al
je 0x44998
movq %rbp, %rdi
callq 0x8d3ab
testb %al, %al
je 0x44998
movq %rbx, %rdi
callq 0x6026d
movq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x3def0
jmp 0x4499d
movb $0x0, (%r13)
xorl %eax, %eax
addq $0x148, %rsp            # imm = 0x148
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rbx, %rcx
movq 0x18(%rbx), %rax
testq %rax, %rax
je 0x44b21
movq 0x8(%rax), %rdi
jmp 0x44b23
movq %rbx, %rdi
callq 0x6026d
movq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x3def0
xorl %ebx, %ebx
jmp 0x44b62
leaq 0xd33e3(%rip), %rax     # 0x117dd0
movq (%rax), %rsi
leaq 0x58(%rsp), %rbx
movq %rbx, %rdi
movq %rcx, %r12
callq 0x717f5
movq $0x7, 0x10(%rbx)
movq (%r15), %r15
callq 0x41317
pushq $0x7
popq %rsi
movq %rbx, %rdi
movq %r14, %rdx
movq %rax, %rcx
callq 0x71967
movq 0x18(%r12), %rcx
movq 0x18(%r15), %rsi
cmpq %rsi, %rcx
movq %rsi, %r12
cmovlq %rcx, %r12
movq %rax, %rbx
cmovgq %rcx, %rsi
leaq 0x8(%rax), %rdi
callq 0x5d326
xorl %r14d, %r14d
testq %r12, %r12
movl $0x0, %r13d
cmovgq %r12, %r13
movq 0x20(%rsp), %rbp
subq $0x1, %r13
jb 0x44a84
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rdi
addq %r14, %rdi
movq 0x10(%r15), %rsi
addq %r14, %rsi
movq 0x10(%rbx), %rdx
addq %r14, %rdx
callq 0x4241b
addq $0x18, %r14
jmp 0x44a59
movq %r12, 0x28(%rsp)
movq 0x18(%rsp), %r12
movq 0x18(%r12), %rax
cmpq 0x18(%r15), %rax
je 0x44bac
leaq 0xd0(%rsp), %r14
movq %r14, 0x30(%rsp)
leaq 0x58(%rsp), %rsi
movq %r14, %rdi
callq 0x717f5
movq $0x8, 0x10(%r14)
xorl %eax, %eax
callq 0x8d285
pushq $0x8
popq %rsi
movabsq $0x79b76918ff0af12a, %rdx # imm = 0x79B76918FF0AF12A
movq %r14, %rdi
movq %rax, %rcx
callq 0x71967
movq %rax, %r14
callq 0x41317
movq %r14, %rdi
movq %rax, %rsi
callq 0x3c408
movq 0x28(%rsp), %rbp
imulq $0x18, %rbp, %r13
cmpq 0x18(%r12), %rbp
jge 0x44b6f
movq 0x10(%r12), %rdi
addq %r13, %rdi
movq 0x10(%rbx), %rdx
addq %r13, %rdx
movq %r14, %rsi
callq 0x4241b
incq %rbp
addq $0x18, %r13
jmp 0x44afa
xorl %edi, %edi
leaq 0x40(%rcx), %rbx
movq %rcx, %r14
callq 0x71db6
movq %rax, %r15
movq 0x30(%r14), %rax
testq %rax, %rax
je 0x44b41
movq 0x8(%rax), %rdi
jmp 0x44b43
xorl %edi, %edi
callq 0x71db6
leaq 0x716f8(%rip), %rsi     # 0xb6247
movq %rbx, %rdi
movq %r15, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0x41984
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
jmp 0x442d9
movq 0x28(%rsp), %r12
imulq $0x18, %r12, %r13
movq 0x20(%rsp), %rbp
cmpq 0x18(%r15), %r12
jge 0x44ba2
movq 0x10(%r15), %rsi
addq %r13, %rsi
movq 0x10(%rbx), %rdx
addq %r13, %rdx
movq %r14, %rdi
callq 0x4241b
incq %r12
addq $0x18, %r13
jmp 0x44b7d
leaq 0x30(%rsp), %rdi
callq 0x71b48
movq %rbx, %rdi
callq 0x6026d
movq %rbp, %rdi
movq %rax, %rsi
callq 0x3c408
leaq 0x58(%rsp), %rdi
callq 0x71b64
jmp 0x4499d
leaq 0xd0(%rsp), %r14
leaq 0x58(%rsp), %rsi
movq %r14, %rdi
callq 0x717f5
movq $0x8, 0x10(%r14)
movq 0x18(%rsp), %rax
cmpq $0x0, 0x18(%rax)
je 0x44d53
xorl %r12d, %r12d
xorl %eax, %eax
callq 0x8d285
leaq 0xd0(%rsp), %rdi
pushq $0x8
popq %rsi
movabsq $0x79b76918ff0af12a, %rdx # imm = 0x79B76918FF0AF12A
movq %rax, %rcx
callq 0x71967
movq 0x18(%rsp), %rdx
movq %rax, %r14
movq 0x10(%rdx), %rax
movq 0x10(%rax), %rcx
andq $-0x3, %rcx
movups (%rax), %xmm0
movups %xmm0, (%r14)
movq %rcx, 0x10(%r14)
movq %r13, %rax
addq $0x78, %rax
movq %rax, 0x88(%rsp)
pushq $0x28
popq %rbp
movq 0x28(%rsp), %rbx
incq %r12
cmpq 0x18(%rdx), %r12
jae 0x44db0
leaq 0x18(%rbp), %rax
movq %rax, 0x50(%rsp)
movq 0x8(%rbx), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
movq 0x10(%r14), %rax
movq %rax, 0x40(%rsp)
movups (%r14), %xmm0
movaps %xmm0, 0x30(%rsp)
movq 0x40(%rsp), %rax
movq %rax, 0x10(%rsp)
movaps 0x30(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r13, %r15
movq 0x88(%rsp), %r13
movq %r13, %rdi
callq 0x6f857
andq $0x0, 0x10(%r14)
xorps %xmm0, %xmm0
movups %xmm0, (%r14)
movq 0x8(%rbx), %rax
movq 0x28(%rax), %rax
movq 0x8(%rax), %rsi
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rax
movups -0x10(%rax,%rbp), %xmm0
movaps %xmm0, 0x100(%rsp)
movq (%rax,%rbp), %rax
andq $-0x3, %rax
movaps 0x100(%rsp), %xmm0
movaps %xmm0, 0x30(%rsp)
movq %rax, 0x40(%rsp)
movq %rax, 0x10(%rsp)
movaps 0x30(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r13, %rdi
movq %r15, %r13
callq 0x6f857
movq 0x10(%rbx), %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x3c554
movq 0x18(%rsp), %rdx
movq 0x50(%rsp), %rbp
testq %rax, %rax
je 0x44c58
jmp 0x44b5f
movq %rbx, %rcx
movq 0x18(%rbx), %rax
testq %rax, %rax
je 0x44d65
movq 0x8(%rax), %rdi
jmp 0x44d67
movq %r14, %rdi
jmp 0x449cd
movq %rbx, %rcx
movq 0x18(%rbx), %rax
testq %rax, %rax
je 0x44dc2
movq 0x8(%rax), %rdi
jmp 0x44dc4
xorl %edi, %edi
leaq 0x40(%rcx), %rbx
movq %rcx, %r14
callq 0x71db6
movq %rax, %r15
movq 0x30(%r14), %rax
testq %rax, %rax
je 0x44d85
movq 0x8(%rax), %rdi
jmp 0x44d87
xorl %edi, %edi
callq 0x71db6
leaq 0x71549(%rip), %rsi     # 0xb62dc
movq %rbx, %rdi
movq %r15, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0x41984
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
jmp 0x442d9
movq 0x20(%rsp), %rdi
movq %r14, %rsi
callq 0x8d2dd
jmp 0x449df
xorl %edi, %edi
leaq 0x40(%rcx), %rbx
movq %rcx, %r14
callq 0x71db6
movq %rax, %r15
movq 0x30(%r14), %rax
testq %rax, %rax
je 0x44de2
movq 0x8(%rax), %rdi
jmp 0x44de4
xorl %edi, %edi
callq 0x71db6
leaq 0x714a4(%rip), %rsi     # 0xb6294
jmp 0x44b4f