// File: /workspace/github_c_makefile_star2_O1/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 $0x178, %rsp            # imm = 0x178
movq %rcx, %rbx
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbp
leaq 0x10(%rdi), %r12
leaq 0x28(%rdi), %r13
movq %r12, %rsi
movq %r13, %rdx
movq %r15, %rcx
movq %rbx, %r8
callq 0x98c64
testq %rax, %rax
je 0x9a3d9
leaq 0x10ea0a(%rip), %rcx    # 0x1a8dd0
movq %rax, %rbx
movq (%rcx), %rdi
callq 0xe0b30
movq %rbx, %rsi
jmp 0x9b373
movq %r12, 0x78(%rsp)
cmpb $0x0, (%rbx)
jne 0x9b371
movq %rbx, 0xb8(%rsp)
movb $0x1, (%rbx)
movq 0x8(%rbp), %rdx
movabsq $0x7e66519174a3ce0, %rcx # imm = 0x7E66519174A3CE0
cmpq %rcx, %rdx
movq %r15, 0x30(%rsp)
movq %r13, 0x48(%rsp)
jg 0x9a4fe
movabsq $-0x58bc6f89b3e5cfaa, %rcx # imm = 0xA74390764C1A3056
cmpq %rcx, %rdx
movq 0x78(%rsp), %r15
je 0x9a5ca
movq %r14, %rbx
movabsq $-0xe64339e40c20067, %rcx # imm = 0xF19BCC61BF3DFF99
cmpq %rcx, %rdx
movq %rbp, %r14
jne 0x9b0f3
movq 0x18(%r14), %rcx
testq %rcx, %rcx
je 0x9b0f3
movabsq $-0x19831b480b40fba0, %r15 # imm = 0xE67CE4B7F4BF0460
cmpq %r15, 0x8(%rcx)
jne 0x9b0f3
leaq 0x10e964(%rip), %rcx    # 0x1a8dd0
movq (%rcx), %rsi
leaq 0x88(%rsp), %r13
movq %rax, %rbp
movq %r13, %rdi
callq 0xe0431
movq $0x4, 0x10(%r13)
movq 0x10(%r14), %rdi
callq 0xc8348
movl $0x4, %esi
movq %r13, %rdi
movq %r15, %rdx
movq %rax, %rcx
callq 0xe0676
movq %rax, %r12
xorl %eax, %eax
callq 0xc494c
movabsq $-0x78ea303a4f284a4, %rdx # imm = 0xF8715CFC5B0D7B5C
movl $0x4, %esi
movq %r13, %rdi
movq %rax, %rcx
callq 0xe0676
movq %rax, %r15
xorps %xmm0, %xmm0
movaps %xmm0, 0xf0(%rsp)
movq $0x0, 0x100(%rsp)
movq 0x100(%rsp), %rax
movq %rax, 0x10(%rsp)
movaps 0xf0(%rsp), %xmm0
jmp 0x9a7c7
movabsq $0x7e66519174a3ce1, %rcx # imm = 0x7E66519174A3CE1
cmpq %rcx, %rdx
movq 0x78(%rsp), %r13
movq %r14, %rbx
je 0x9a70f
movabsq $0x4328f78ab20e1f98, %rcx # imm = 0x4328F78AB20E1F98
cmpq %rcx, %rdx
movq %rbp, %r14
jne 0x9b0f3
movq %rax, 0x18(%rsp)
movq %r13, %rdi
callq 0x112fb6
testb %al, %al
je 0x9a830
leaq 0x10e885(%rip), %rax    # 0x1a8dd0
movq (%rax), %rsi
leaq 0x88(%rsp), %rdi
movq %rdi, 0x60(%rsp)
callq 0xe0431
movq 0x60(%rsp), %r15
movq $0x4, 0x10(%r15)
callq 0x94403
movabsq $-0x240ec4eb25c1f3e8, %rdx # imm = 0xDBF13B14DA3E0C18
movl $0x4, %esi
movq %r15, %rdi
movq %rax, %rcx
callq 0xe0676
movq %rax, %rbp
leaq 0x8(%rax), %r15
movq %r13, %rdi
callq 0x113836
movq %r15, %rdi
movq %rax, %rsi
callq 0xc4b01
movq 0x30(%r14), %rax
testq %rax, %rax
je 0x9aa3a
movabsq $-0x19831b480b40fba0, %rcx # imm = 0xE67CE4B7F4BF0460
cmpq %rcx, 0x8(%rax)
sete %r15b
jmp 0x9aa3d
movq %rbp, %r14
movq 0x18(%rbp), %rcx
testq %rcx, %rcx
je 0x9b0f3
movabsq $-0x19831b480b40fba0, %rbx # imm = 0xE67CE4B7F4BF0460
cmpq %rbx, 0x8(%rcx)
jne 0x9b0f3
movq 0x30(%r14), %rcx
testq %rcx, %rcx
je 0x9b0f3
cmpq %rbx, 0x8(%rcx)
jne 0x9b0f3
leaq 0x10e7c4(%rip), %rcx    # 0x1a8dd0
movq (%rcx), %rsi
leaq 0x88(%rsp), %r12
movq %rax, %rbp
movq %r12, %rdi
callq 0xe0431
movq $0x4, 0x10(%r12)
movq (%r15), %rdi
callq 0xc8348
movl $0x4, %esi
movq %r12, %rdi
movq %rbx, %rdx
movq %rax, %rcx
callq 0xe0676
movq %rax, %r13
movq 0x48(%rsp), %rax
movq (%rax), %rdi
callq 0xc8348
movl $0x4, %esi
movq %r12, %rdi
movq %rbx, %rdx
movq %rax, %rcx
callq 0xe0676
movq %rax, %r15
movq 0x8(%r13), %rax
cmpq $0x1, 0x30(%rax)
je 0x9a6b0
addq $0x40, %r14
leaq 0xa98ed(%rip), %rsi     # 0x143f6f
movq %r14, %rdi
xorl %eax, %eax
callq 0x95f0b
movq %rbp, %rsi
movq %rax, %r14
testq %rax, %rax
je 0x9a6a7
leaq 0x88(%rsp), %rdi
callq 0xe0b30
movq %r14, %rsi
testq %r14, %r14
jne 0x9b373
callq 0x95afd
leaq 0x88(%rsp), %r14
movl $0x4, %esi
movq %r14, %rdi
movq %rbx, %rdx
movq %rax, %rcx
callq 0xe0676
movq %rax, %rbx
movq 0x8(%r15), %rsi
movq 0x10(%r15), %rdx
movq 0x30(%r15), %rcx
movq %rax, %rdi
callq 0x8b750
movq %rbx, %rdi
movq %r13, %rsi
callq 0x95e1f
movq %rbx, %rdi
callq 0xc8348
movq 0x30(%rsp), %rdi
movq %rax, %rsi
callq 0x8abdf
movq %r14, %rdi
jmp 0x9a826
movq %rbp, %r14
movq 0x18(%rbp), %rcx
testq %rcx, %rcx
je 0x9b0f3
movabsq $-0x19831b480b40fba0, %r15 # imm = 0xE67CE4B7F4BF0460
cmpq %r15, 0x8(%rcx)
jne 0x9b0f3
leaq 0x10e696(%rip), %rcx    # 0x1a8dd0
movq (%rcx), %rsi
leaq 0x88(%rsp), %r13
movq %rax, %rbp
movq %r13, %rdi
callq 0xe0431
movq $0x4, 0x10(%r13)
movq 0x10(%r14), %rdi
callq 0xc8348
movl $0x4, %esi
movq %r13, %rdi
movq %r15, %rdx
movq %rax, %rcx
callq 0xe0676
movq %rax, %r12
xorl %eax, %eax
callq 0xc494c
movabsq $-0x78ea303a4f284a4, %rdx # imm = 0xF8715CFC5B0D7B5C
movl $0x4, %esi
movq %r13, %rdi
movq %rax, %rcx
callq 0xe0676
movq %rax, %r15
xorps %xmm0, %xmm0
movaps %xmm0, 0x110(%rsp)
movq $0x0, 0x120(%rsp)
movq 0x120(%rsp), %rax
movq %rax, 0x10(%rsp)
movaps 0x110(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r15, %rdi
callq 0xc4cee
movq %rax, %rdi
movq 0x48(%rsp), %rsi
callq 0x112dbc
addq $0x40, %r14
movq %r12, %rdi
movq %r14, %rsi
movq %rbx, %rdx
movq %r15, %rcx
movq 0x30(%rsp), %r8
callq 0x95f8f
movq %rbp, %rsi
movq %rax, %rbx
testq %rax, %rax
je 0x9a815
leaq 0x88(%rsp), %rdi
callq 0xe0b30
movq %rbx, %rsi
testq %rbx, %rbx
jne 0x9b373
leaq 0x88(%rsp), %rdi
callq 0xe0b30
jmp 0x9b371
movq 0x18(%r14), %rax
testq %rax, %rax
movq 0x18(%rsp), %rsi
je 0x9b0f3
movabsq $-0x240ec4eb25c1f3e8, %r13 # imm = 0xDBF13B14DA3E0C18
cmpq %r13, 0x8(%rax)
jne 0x9b0f3
movq 0x30(%r14), %rcx
movb $0x1, %al
testq %rcx, %rcx
je 0x9b0eb
movq 0x10(%r14), %r15
movabsq $-0x19831b480b40fba0, %rdx # imm = 0xE67CE4B7F4BF0460
cmpq %rdx, 0x8(%rcx)
jne 0x9aba4
movq %r15, 0x28(%rsp)
leaq 0x10e547(%rip), %rax    # 0x1a8dd0
movq (%rax), %rsi
leaq 0x88(%rsp), %r15
movq %r15, %rdi
callq 0xe0431
movq $0x6, 0x10(%r15)
callq 0x86f00
movabsq $-0x8f0f83b86d2b0b3, %rdx # imm = 0xF70F07C4792D4F4D
movl $0x6, %esi
movq %r15, %rdi
movq %rax, %rcx
callq 0xe0676
movq %rax, 0x38(%rsp)
movq %rax, %rdi
movq %rbx, %rsi
callq 0x87135
movq 0x48(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x58(%rsp)
movq 0x8(%rax), %rax
movq 0x30(%rax), %rax
cmpq $0x2, %rax
je 0x9ae20
cmpq $0x1, %rax
movq 0x28(%rsp), %r15
jne 0x9afcd
leaq 0xc0(%rsp), %rbx
leaq 0x88(%rsp), %rsi
movq %rbx, %rdi
callq 0xe0431
movq $0x7, 0x10(%rbx)
callq 0x94403
movl $0x7, %esi
movq %rbx, %rdi
movq %r13, %rdx
movq %rax, %rcx
callq 0xe0676
movq %rax, %rbx
movq 0x18(%r15), %rsi
leaq 0x8(%rax), %rdi
callq 0xc4b01
movq %rbx, 0x50(%rsp)
cmpq $0x0, 0x18(%rbx)
setne %r12b
je 0x9afdc
movq 0x58(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq %rax, 0x40(%rsp)
movq 0x38(%rsp), %rcx
addq $0x78, %rcx
movq %rcx, 0x80(%rsp)
xorl %ebx, %ebx
xorl %r13d, %r13d
movq 0x18(%rsp), %rsi
movq 0x50(%rsp), %rbp
movq 0x10(%r15), %rax
movups (%rax,%rbx), %xmm0
movaps %xmm0, 0x160(%rsp)
movq 0x10(%rax,%rbx), %rax
andq $-0x3, %rax
movaps %xmm0, 0x60(%rsp)
movq %rax, 0x70(%rsp)
movq %rax, 0x10(%rsp)
movaps 0x60(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %rsi, %r15
movq 0x80(%rsp), %rdi
movq 0x40(%rsp), %rsi
callq 0xddff8
movq 0x58(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x10(%rbp), %rdx
addq %rbx, %rdx
movq 0x38(%rsp), %rsi
callq 0x8b0fe
movq %r15, %rsi
movq %rax, %r15
testq %rax, %rax
je 0x9aa0d
leaq 0xc0(%rsp), %rdi
callq 0xe0b30
movq %r15, %rsi
testq %r15, %r15
movq 0x50(%rsp), %rbp
jne 0x9afe1
incq %r13
addq $0x18, %rbx
cmpq 0x18(%rbp), %r13
setb %r12b
movq 0x28(%rsp), %r15
jb 0x9a992
jmp 0x9afe1
xorl %r15d, %r15d
movq 0x48(%rsp), %r13
testb %r15b, %r15b
je 0x9ab7a
movl %r15d, 0x40(%rsp)
movq 0x60(%rsp), %rsi
leaq 0xc0(%rsp), %r15
movq %r15, %rdi
callq 0xe0431
movq $0x5, 0x10(%r15)
callq 0x86f00
movabsq $-0x8f0f83b86d2b0b3, %rdx # imm = 0xF70F07C4792D4F4D
movl $0x5, %esi
movq %r15, %rdi
movq %rax, %rcx
callq 0xe0676
movq %rax, 0x28(%rsp)
movq %rax, %rdi
movq %rbx, %rsi
callq 0x87135
movq (%r13), %rax
movq %rax, 0x38(%rsp)
movq 0x8(%rax), %rax
cmpq $0x1, 0x30(%rax)
jne 0x9ab8e
cmpq $0x0, 0x18(%rbp)
setne %r12b
je 0x9ad96
movq 0x28(%rax), %rax
movq (%rax), %rax
movq %rax, 0x58(%rsp)
movq 0x28(%rsp), %rax
addq $0x78, %rax
movq %rax, 0x50(%rsp)
xorl %r13d, %r13d
xorl %ebx, %ebx
movq 0x18(%rsp), %rsi
movq %rsi, %r15
leaq 0x148(%rsp), %rdi
movq %rbx, %rsi
callq 0x1127f3
movq 0x158(%rsp), %rax
movq %rax, 0x10(%rsp)
movups 0x148(%rsp), %xmm0
movups %xmm0, (%rsp)
movq 0x50(%rsp), %rdi
movq 0x58(%rsp), %rsi
callq 0xddff8
movq 0x38(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x10(%rbp), %rdx
addq %r13, %rdx
movq 0x28(%rsp), %rsi
callq 0x8b0fe
movq %r15, %rsi
movq %rax, %r15
testq %rax, %rax
je 0x9ab57
leaq 0xc0(%rsp), %rdi
callq 0xe0b30
movq %r15, %rsi
testq %r15, %r15
jne 0x9ad9b
incq %rbx
addq $0x18, %r13
cmpq 0x18(%rbp), %rbx
setb %r12b
jb 0x9aae7
jmp 0x9ad9b
leaq 0x60(%rsp), %rdi
callq 0xe0b11
movq 0x18(%rsp), %rsi
jmp 0x9ae12
movq 0x18(%r14), %rax
testq %rax, %rax
je 0x9adbf
movq 0x8(%rax), %rdi
jmp 0x9adc1
testq %rcx, %rcx
je 0x9b0eb
cmpq %r13, 0x8(%rcx)
jne 0x9b0eb
leaq 0x10e212(%rip), %rax    # 0x1a8dd0
movq (%rax), %rsi
leaq 0x88(%rsp), %rbx
movq %rbx, %rdi
callq 0xe0431
movq $0x7, 0x10(%rbx)
movq 0x48(%rsp), %rax
movq (%rax), %r12
callq 0x94403
movl $0x7, %esi
movq %rbx, %rdi
movq %r13, %rdx
movq %rax, %rcx
callq 0xe0676
movq 0x18(%r15), %rcx
movq %r12, 0x18(%rsp)
movq 0x18(%r12), %rsi
cmpq %rsi, %rcx
movq %rsi, %r13
cmovlq %rcx, %r13
movq %rax, %r12
cmovgq %rcx, %rsi
leaq 0x8(%rax), %rdi
callq 0xc4b01
testq %r13, %r13
movq %r15, %rbx
jle 0x9ac57
xorl %ebp, %ebp
movq %r13, %r15
movq 0x10(%rbx), %rdi
addq %rbp, %rdi
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rsi
addq %rbp, %rsi
movq 0x10(%r12), %rdx
addq %rbp, %rdx
callq 0x96c97
addq $0x18, %rbp
decq %r15
jne 0x9ac2e
movq %r12, 0x28(%rsp)
movq 0x18(%rbx), %rax
movq 0x18(%rsp), %rcx
cmpq 0x18(%rcx), %rax
je 0x9ad69
leaq 0xc0(%rsp), %rdi
movq %rdi, 0x60(%rsp)
leaq 0x88(%rsp), %rsi
callq 0xe0431
movq 0x60(%rsp), %rbp
movq $0x8, 0x10(%rbp)
xorl %eax, %eax
callq 0x112d0e
movabsq $0x79b76918ff0af12a, %rdx # imm = 0x79B76918FF0AF12A
movl $0x8, %esi
movq %rbp, %rdi
movq %rax, %rcx
callq 0xe0676
movq %rax, %r12
callq 0x94403
movq %r12, %rdi
movq %rax, %rsi
callq 0x8abdf
movq %r13, 0x38(%rsp)
cmpq 0x18(%rbx), %r13
movq 0x28(%rsp), %rcx
jge 0x9ad1d
movq %rbx, %r13
movq 0x38(%rsp), %r15
leaq (,%r15,8), %rax
leaq (%rax,%rax,2), %rbp
movq 0x10(%r13), %rdi
addq %rbp, %rdi
movq 0x10(%rcx), %rdx
addq %rbp, %rdx
movq %r12, %rsi
movq %r12, %rbx
movq %rcx, %r12
callq 0x96c97
movq %r12, %rcx
movq %rbx, %r12
incq %r15
addq $0x18, %rbp
cmpq 0x18(%r13), %r15
jl 0x9acee
movq 0x18(%rsp), %rbx
movq 0x38(%rsp), %r13
cmpq 0x18(%rbx), %r13
jge 0x9ad5f
movq %rcx, %r15
leaq (,%r13,8), %rax
leaq (%rax,%rax,2), %rbp
movq 0x10(%rbx), %rsi
addq %rbp, %rsi
movq 0x10(%r15), %rdx
addq %rbp, %rdx
movq %r12, %rdi
callq 0x96c97
incq %r13
addq $0x18, %rbp
cmpq 0x18(%rbx), %r13
jl 0x9ad3c
leaq 0x60(%rsp), %rdi
callq 0xe0b11
movq 0x28(%rsp), %rdi
callq 0xc8348
movq 0x30(%rsp), %rdi
movq %rax, %rsi
callq 0x8abdf
leaq 0x88(%rsp), %rdi
callq 0xe0b30
xorl %eax, %eax
xorl %esi, %esi
jmp 0x9b0eb
movq 0x18(%rsp), %rsi
testb $0x1, %r12b
movl 0x40(%rsp), %r15d
jne 0x9ae12
movq %rbp, %rdi
callq 0xc8348
movq 0x30(%rsp), %rdi
movq %rax, %rsi
callq 0x8db81
xorl %ebx, %ebx
jmp 0x9ae02
xorl %edi, %edi
movl 0x40(%rsp), %r15d
leaq 0x40(%r14), %rbx
callq 0xe0cbc
movq %rax, %rbp
movq 0x30(%r14), %rax
testq %rax, %rax
je 0x9ade1
movq 0x8(%rax), %rdi
jmp 0x9ade3
xorl %edi, %edi
callq 0xe0cbc
leaq 0xa91b4(%rip), %rsi     # 0x143fa3
movq %rbx, %rdi
movq %rbp, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0x95f0b
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0xe0b30
movq %rbx, %rsi
testb %r15b, %r15b
je 0x9b0f3
jmp 0x9b373
leaq 0xc0(%rsp), %rbx
leaq 0x88(%rsp), %rsi
movq %rbx, %rdi
callq 0xe0431
movq $0x8, 0x10(%rbx)
movq 0x28(%rsp), %r12
cmpq $0x0, 0x18(%r12)
je 0x9b016
xorl %eax, %eax
callq 0x112d0e
leaq 0xc0(%rsp), %rdi
movabsq $0x79b76918ff0af12a, %rdx # imm = 0x79B76918FF0AF12A
movl $0x8, %esi
movq %rax, %rcx
callq 0xe0676
movq 0x10(%r12), %rdx
movq 0x10(%rdx), %rcx
andq $-0x3, %rcx
movups (%rdx), %xmm0
movups %xmm0, (%rax)
movq %rax, 0x40(%rsp)
movq %rcx, 0x10(%rax)
cmpq $0x2, 0x18(%r12)
setae %al
jb 0x9b079
movq 0x38(%rsp), %rcx
addq $0x78, %rcx
movq %rcx, 0x80(%rsp)
movl $0x1, %ecx
movl $0x28, %ebx
movq 0x80(%rsp), %r13
movq %rcx, 0x50(%rsp)
movb %al, 0x27(%rsp)
movq 0x58(%rsp), %r15
movq 0x8(%r15), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
movq 0x40(%rsp), %rbp
movq 0x10(%rbp), %rax
movq %rax, 0x70(%rsp)
movups (%rbp), %xmm0
movaps %xmm0, 0x60(%rsp)
movq 0x70(%rsp), %rax
movq %rax, 0x10(%rsp)
movaps 0x60(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r13, %rdi
callq 0xddff8
xorps %xmm0, %xmm0
movups %xmm0, (%rbp)
movq $0x0, 0x10(%rbp)
movq 0x8(%r15), %rax
movq 0x28(%rax), %rax
movq 0x8(%rax), %rsi
movq 0x10(%r12), %rax
movups -0x10(%rax,%rbx), %xmm0
movaps %xmm0, 0x130(%rsp)
movq (%rax,%rbx), %rax
andq $-0x3, %rax
movaps 0x130(%rsp), %xmm0
movaps %xmm0, 0x60(%rsp)
movq %rax, 0x70(%rsp)
movq %rax, 0x10(%rsp)
movaps 0x60(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r13, %rdi
callq 0xddff8
movq 0x10(%r15), %rdi
movq 0x38(%rsp), %rsi
movq %rbp, %rdx
callq 0x8b0fe
movq %rax, %r15
testq %rax, %rax
movq 0x18(%rsp), %rbp
je 0x9af9b
leaq 0xc0(%rsp), %rdi
callq 0xe0b30
movq %r15, %rbp
testq %r15, %r15
movq 0x50(%rsp), %rcx
movq %rbp, 0x18(%rsp)
jne 0x9b075
incq %rcx
addq $0x18, %rbx
movq 0x28(%rsp), %r12
cmpq 0x18(%r12), %rcx
setb %al
jb 0x9aec5
jmp 0x9b079
movq 0x18(%r14), %rax
testq %rax, %rax
je 0x9b025
movq 0x8(%rax), %rdi
jmp 0x9b027
movq 0x18(%rsp), %rsi
testb $0x1, %r12b
jne 0x9b0e9
movq 0x50(%rsp), %rdi
callq 0xc8348
movq 0x30(%rsp), %rdi
movq %rax, %rsi
callq 0x8db81
leaq 0xc0(%rsp), %rdi
callq 0xe0b30
xorl %esi, %esi
jmp 0x9b0e9
movq 0x18(%r14), %rax
testq %rax, %rax
je 0x9b097
movq 0x8(%rax), %rdi
jmp 0x9b099
xorl %edi, %edi
leaq 0x40(%r14), %rbx
callq 0xe0cbc
movq %rax, %rbp
movq 0x30(%r14), %rax
testq %rax, %rax
je 0x9b042
movq 0x8(%rax), %rdi
jmp 0x9b044
xorl %edi, %edi
callq 0xe0cbc
leaq 0xa8fe8(%rip), %rsi     # 0x144038
movq %rbx, %rdi
movq %rbp, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0x95f0b
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0xe0b30
movq %rbx, %rsi
jmp 0x9b0e9
movb 0x27(%rsp), %al
testb $0x1, %al
movq 0x30(%rsp), %rdi
jne 0x9b0e4
movq 0x40(%rsp), %rsi
callq 0x112dbc
movq $0x0, 0x18(%rsp)
jmp 0x9b0d7
xorl %edi, %edi
leaq 0x40(%r14), %rbx
callq 0xe0cbc
movq %rax, %rbp
movq 0x30(%r14), %rax
testq %rax, %rax
je 0x9b0b4
movq 0x8(%rax), %rdi
jmp 0x9b0b6
xorl %edi, %edi
callq 0xe0cbc
leaq 0xa8f2e(%rip), %rsi     # 0x143ff0
movq %rbx, %rdi
movq %rbp, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0x95f0b
movq %rax, 0x18(%rsp)
leaq 0xc0(%rsp), %rdi
callq 0xe0b30
movq 0x18(%rsp), %rsi
xorl %eax, %eax
testb %al, %al
je 0x9b373
movq 0x18(%r14), %rax
testq %rax, %rax
je 0x9b102
movq 0x8(%rax), %rbp
jmp 0x9b104
xorl %ebp, %ebp
movq 0x10(%r14), %rbx
leaq 0x10c581(%rip), %r13    # 0x1a7690
movl 0x10c57b(%rip), %eax    # 0x1a7690
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 0x9b16c
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbp, %rdx
je 0x9b16c
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbp, %rdx
je 0x9b16c
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbp, %rdx
jne 0x9b388
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0x9b19c
movabsq $-0x2d60bfcb4cae7a7a, %rdi # imm = 0xD29F4034B3518586
movq %rbp, %rsi
callq 0xf3f85
movq %rax, %r15
leaq 0x10c4ff(%rip), %rdi    # 0x1a7690
movq %rbp, %rsi
movq %rax, %rdx
callq 0x12128c
movq %rbx, %rdi
callq *0x18(%r15)
testb %al, %al
je 0x9b26e
movq 0x30(%r14), %rax
testq %rax, %rax
je 0x9b1ba
movq 0x8(%rax), %rbp
jmp 0x9b1bc
xorl %ebp, %ebp
movq 0x28(%r14), %rbx
movl 0x10c4ca(%rip), %eax    # 0x1a7690
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 0x9b21d
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbp, %rdx
je 0x9b21d
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbp, %rdx
je 0x9b21d
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbp, %rdx
jne 0x9b397
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0x9b24d
movabsq $-0x2d60bfcb4cae7a7a, %rdi # imm = 0xD29F4034B3518586
movq %rbp, %rsi
callq 0xf3f85
movq %rax, %r15
leaq 0x10c44e(%rip), %rdi    # 0x1a7690
movq %rbp, %rsi
movq %rax, %rdx
callq 0x12128c
movq %rbx, %rdi
callq *0x18(%r15)
testb %al, %al
jne 0x9b32c
movq 0x48(%rsp), %rdi
callq 0x112fb6
testb %al, %al
jne 0x9b32c
movq 0x30(%r14), %rax
testq %rax, %rax
je 0x9b27d
movq 0x8(%rax), %r15
jmp 0x9b280
xorl %r15d, %r15d
movq 0x28(%r14), %rbx
movl 0x10c406(%rip), %eax    # 0x1a7690
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 0x9b2e1
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r15, %rdx
je 0x9b2e1
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r15, %rdx
je 0x9b2e1
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r15, %rdx
jne 0x9b390
movq (%rax,%rcx), %rbp
movq 0x78(%rsp), %r13
testq %rbp, %rbp
jne 0x9b316
movabsq $-0x2d60bfcb4cae7a7a, %rdi # imm = 0xD29F4034B3518586
movq %r15, %rsi
callq 0xf3f85
movq %rax, %rbp
leaq 0x10c385(%rip), %rdi    # 0x1a7690
movq %r15, %rsi
movq %rax, %rdx
callq 0x12128c
movq %rbx, %rdi
callq *0x18(%rbp)
testb %al, %al
je 0x9b353
movq %r13, %rdi
callq 0x112fb6
testb %al, %al
je 0x9b353
movq %r14, %rdi
callq 0xc8348
movq %rax, %rbx
movq 0x30(%rsp), %r14
movq %r14, %rdi
callq 0x112baf
testq %rbx, %rbx
je 0x9b360
movq (%rbx), %rdi
callq 0x1123e1
jmp 0x9b362
movq 0xb8(%rsp), %rax
movb $0x0, (%rax)
jmp 0x9b371
xorl %eax, %eax
movq %rbx, (%r14)
movq %rax, 0x8(%r14)
movq $0x3, 0x10(%r14)
xorl %esi, %esi
movq %rsi, %rax
addq $0x178, %rsp            # imm = 0x178
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %r15d, %r15d
jmp 0x9b170
xorl %ebp, %ebp
jmp 0x9b2e5
xorl %r15d, %r15d
jmp 0x9b221