// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore.xo.c
// Function: x_btcl_operator_bop_s_solve_exportable_a_b
er_t x_btcl_operator_bop_s_solve_exportable_a_b( const x_btcl_operator_bop_s* o, const sr_s* a, const sr_s* b, sr_s* result, bl_t* success )
{
    // bcore_x_btcl_operator.x:291:1
    
    (*(success)) = true;
    
    switch( o->type )
    {
        case ((tp_t)(TYPEOF_pow)):
        {
            if( bcore_tp_is_numeric( sr_s_type(a) ) && bcore_tp_is_numeric( sr_s_type(b) ) )
            {
                sr_s_const_from_f3(result,pow( sr_s_to_f3(a), sr_s_to_f3(b) ) );
                return  0;
            }
        }
        break;
    
        case ((tp_t)(TYPEOF_div)):
        {
            if( bcore_tp_is_numeric( sr_s_type(a) ) && bcore_tp_is_numeric( sr_s_type(b) ) )
            {
                if( sr_s_to_f3(b) == 0 ) return  x_source_point_s_parse_error_fa(&(o->sp),"Division by zero.\n" );
                sr_s_const_from_f3(result,sr_s_to_f3(a) / sr_s_to_f3(b) );
                return  0;
            }
        }
        break;
    
        case ((tp_t)(TYPEOF_mod)):
        {
            if( bcore_tp_is_integer( sr_s_type(a) ) && bcore_tp_is_integer( sr_s_type(b) ) )
            {
                if( sr_s_to_s3(b) == 0 ) return  x_source_point_s_parse_error_fa(&(o->sp),"Modulo division by zero.\n" );
                sr_s_const_from_s3(result,sr_s_to_s3(a) % sr_s_to_s3(b) );
                return  0;
            }
        }
        break;
    
        case ((tp_t)(TYPEOF_mul)):
        {
            if( bcore_tp_is_numeric( sr_s_type(a) ) && bcore_tp_is_numeric( sr_s_type(b) ) )
            {
                if( bcore_tp_is_integer( sr_s_type(a) ) && bcore_tp_is_integer( sr_s_type(b) ) )
                {
                    sr_s_const_from_s3(result,sr_s_to_s3(a) * sr_s_to_s3(b) );
                }
                else
                {
                    sr_s_const_from_f3(result,sr_s_to_f3(a) * sr_s_to_f3(b) );
                }
                return  0;
            }
            else if( sr_s_type(a) == ((tp_t)(TYPEOF_x_btcl_list_s)) )
            {
                const x_btcl_list_s* list_a = ((const x_btcl_list_s*)(a->o));
                if( sr_s_type(b) == ((tp_t)(TYPEOF_x_btcl_list_s)) )
                {BLM_INIT_LEVEL(6);
                    const x_btcl_list_s* list_b = ((const x_btcl_list_s*)(b->o));
                    x_btcl_list_s* list_r = ((x_btcl_list_s*)BLM_LEVEL_T_PUSH(6,x_btcl_list_s,x_btcl_list_s_create()));
                    x_btcl_list_s_set_size(list_r,x_btcl_list_s_size(list_a) * x_btcl_list_s_size(list_b) );
                    for(sz_t i = 0; i < x_btcl_list_s_size(list_a); i++ )
                    {
                        sr_s* sa =&( list_a->arr.data[ i ]);
    
                        for(sz_t j = 0; j < x_btcl_list_s_size(list_b); j++ )
                        {
                            sr_s* sb =&( list_b->arr.data[ j ]);
                            BLM_TRY(x_btcl_bop_cat_ab(sa, sb,&( list_r->arr.data[ i * x_btcl_list_s_size(list_b) + j ] )))
                        }
                    }
                    sr_s_asc(result,((x_btcl_list_s*)bcore_fork(list_r)) );
                    BLM_RETURNV(er_t, 0)
                BLM_DOWN();}
            }
        }
        break;
    
        case ((tp_t)(TYPEOF_sub)):
        {
            if( bcore_tp_is_numeric( sr_s_type(a) ) && bcore_tp_is_numeric( sr_s_type(b) ) )
            {
                if( bcore_tp_is_integer( sr_s_type(a) ) && bcore_tp_is_integer( sr_s_type(b) ) )
                {
                    sr_s_const_from_s3(result,sr_s_to_s3(a) - sr_s_to_s3(b) );
                }
                else
                {
                    sr_s_const_from_f3(result,sr_s_to_f3(a) - sr_s_to_f3(b) );
                }
                return  0;
            }
        }
        break;
    
        case ((tp_t)(TYPEOF_max)):
        {
            if( bcore_tp_is_numeric( sr_s_type(a) ) && bcore_tp_is_numeric( sr_s_type(b) ) )
            {
                if( bcore_tp_is_integer( sr_s_type(a) ) && bcore_tp_is_integer( sr_s_type(b) ) )
                {
                    sr_s_const_from_s3(result,s3_max( sr_s_to_s3(a), sr_s_to_s3(b) ) );
                }
                else
                {
                    sr_s_const_from_f3(result,f3_max( sr_s_to_f3(a), sr_s_to_f3(b) ) );
                }
                return  0;
            }
        }
        break;
    
        case ((tp_t)(TYPEOF_min)):
        {
            if( bcore_tp_is_numeric( sr_s_type(a) ) && bcore_tp_is_numeric( sr_s_type(b) ) )
            {
                if( bcore_tp_is_integer( sr_s_type(a) ) && bcore_tp_is_integer( sr_s_type(b) ) )
                {
                    sr_s_const_from_s3(result,s3_min( sr_s_to_s3(a), sr_s_to_s3(b) ) );
                }
                else
                {
                    sr_s_const_from_f3(result,f3_min( sr_s_to_f3(a), sr_s_to_f3(b) ) );
                }
                return  0;
            }
        }
        break;
    
        case ((tp_t)(TYPEOF_add)):
        {
            if( bcore_tp_is_numeric( sr_s_type(a) ) )
            {
                if( bcore_tp_is_numeric( sr_s_type(b) ) )
                {
                    if( bcore_tp_is_integer( sr_s_type(a) ) && bcore_tp_is_integer( sr_s_type(b) ) )
                    {
                        sr_s_const_from_s3(result,sr_s_to_s3(a) + sr_s_to_s3(b) );
                    }
                    else
                    {
                        sr_s_const_from_f3(result,sr_s_to_f3(a) + sr_s_to_f3(b) );
                    }
                    return  0;
                }
            }
    
            if( sr_s_type(a) == ((tp_t)(TYPEOF_st_s)) || sr_s_type(b) == ((tp_t)(TYPEOF_st_s)) )
            {BLM_INIT_LEVEL(4);
                st_s* st1 = ((st_s*)BLM_LEVEL_T_PUSH(4,st_s,st_s_create()));
                st_s* st2 = ((st_s*)BLM_LEVEL_T_PUSH(4,st_s,st_s_create()));
                if( st_s_copy_typed(st1,sr_s_type(a), a->o ) ) {BLM_INIT_LEVEL(5); BLM_RETURNV(er_t, x_source_point_s_parse_error_fa(&(o->sp),"operator '+': #<sc_t>\n", bcore_error_pop_all_to_st(((st_s*)BLM_LEVEL_T_PUSH(5,st_s,st_s_create())) )->sc )) BLM_DOWN();}
                if( st_s_copy_typed(st2,sr_s_type(b), b->o ) ) {BLM_INIT_LEVEL(5); BLM_RETURNV(er_t, x_source_point_s_parse_error_fa(&(o->sp),"operator '+': #<sc_t>\n", bcore_error_pop_all_to_st(((st_s*)BLM_LEVEL_T_PUSH(5,st_s,st_s_create())) )->sc )) BLM_DOWN();}
                st_s_push_st(st1,st2 );
    
                sr_s_asc(result,((st_s*)bcore_fork(st1)) );
                BLM_RETURNV(er_t, 0)
            BLM_DOWN();}
        }
        break;
    
        case ((tp_t)(TYPEOF_spawn)):
        {
            if( sr_s_is_numeric(a) && sr_s_type(b) != ((tp_t)(TYPEOF_x_btcl_function_s)) )
            {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(a) );
                for(sz_t i = 0; i < list->arr.size; i++ )
                {
                    sr_s_tsc(&(list->arr.data[ i ]),sr_s_type(b), x_inst_t_clone( b->o,sr_s_type(b) ) );
                }
                sr_s_asc(result,((x_btcl_list_s*)bcore_fork(list)) );
                BLM_RETURNV(er_t, 0)
            BLM_DOWN();}
        }
        break;
    
        case ((tp_t)(TYPEOF_cat)): return  x_btcl_bop_cat_ab(((sr_s*)(a)), ((sr_s*)(b)), result );
    
        case ((tp_t)(TYPEOF_equal)):
        {
            if( x_btcl_operator_is_comparable(a, b ) )
            {
                sr_s_from_bl(result,0 == x_compare_t_num_dominant(sr_s_type(a), a->o, sr_s_type(b), b->o ) );
                return  0;
            }
        }
        break;
    
        case ((tp_t)(TYPEOF_unequal)):
        {
            if( x_btcl_operator_is_comparable(a, b ) )
            {
                sr_s_from_bl(result,0 != x_compare_t_num_dominant(sr_s_type(a), a->o, sr_s_type(b), b->o ) );
                return  0;
            }
        }
        break;
    
        case ((tp_t)(TYPEOF_larger_equal)):
        {
            if( x_btcl_operator_is_comparable(a, b ) )
            {
                sr_s_from_bl(result,0 >= x_compare_t_num_dominant(sr_s_type(a), a->o, sr_s_type(b), b->o ) );
                return  0;
            }
        }
        break;
    
    
        case ((tp_t)(TYPEOF_larger)):
        {
            if( x_btcl_operator_is_comparable(a, b ) )
            {
                sr_s_from_bl(result,0 >  x_compare_t_num_dominant(sr_s_type(a), a->o, sr_s_type(b), b->o ) );
                return  0;
            }
        }
        break;
    
        case ((tp_t)(TYPEOF_smaller_equal)):
        {
            if( x_btcl_operator_is_comparable(a, b ) )
            {
                sr_s_from_bl(result,0 <= x_compare_t_num_dominant(sr_s_type(a), a->o, sr_s_type(b), b->o ) );
                return  0;
            }
        }
        break;
    
        case ((tp_t)(TYPEOF_smaller)):
        {
            if( x_btcl_operator_is_comparable(a, b ) )
            {
                sr_s_from_bl(result,0 <  x_compare_t_num_dominant(sr_s_type(a), a->o, sr_s_type(b), b->o ) );
                return  0;
            }
        }
        break;
    
        case ((tp_t)(TYPEOF_and)): if( sr_s_is_numeric(a) && sr_s_is_numeric(b) ) { sr_s_from_bl(result,sr_s_to_bl(a) && sr_s_to_bl(b) ); return  0; } break;
        case ((tp_t)(TYPEOF_or)):  if( sr_s_is_numeric(a) && sr_s_is_numeric(b) ) { sr_s_from_bl(result,sr_s_to_bl(a) || sr_s_to_bl(b) ); return  0; } break;
    
        case ((tp_t)(TYPEOF_shift_left)):
        {
            if( sr_s_type(a) == ((tp_t)(TYPEOF_x_btcl_net_node_s)) )
            {BLM_INIT_LEVEL(4);
                x_btcl_net_node_s* node = ((x_btcl_net_node_s*)BLM_LEVEL_T_PUSH(4,x_btcl_net_node_s,x_btcl_net_node_s_clone(((x_btcl_net_node_s*)(a->o)))));
                x_btcl_net_node_s_push_plain_branch(node,0, false,&( o->sp), ((sr_s*)(b)) );
                sr_s_asc(result,((x_btcl_net_node_s*)bcore_fork(node)) );
                BLM_RETURNV(er_t, 0)
            BLM_DOWN();}
        }
        break;
    
        default: break;
    }
    
    (*(success)) = false;
    return  0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movq %r8, %r12
movq %rcx, %rbx
movq %rdx, %r14
movq %rsi, %r15
movb $0x1, (%r8)
movq 0x8(%rdi), %rax
movabsq $-0x7d8e62e6a2f03d0b, %rcx # imm = 0x82719D195D0FC2F5
cmpq %rcx, %rax
je 0x43729
movabsq $-0x7852cb8bc90e7dee, %rcx # imm = 0x87AD347436F18212
cmpq %rcx, %rax
je 0x436a6
movabsq $-0x57358b5d24648dc3, %rcx # imm = 0xA8CA74A2DB9B723D
cmpq %rcx, %rax
je 0x435f6
movabsq $-0x474675c9029fa41c, %rcx # imm = 0xB8B98A36FD605BE4
cmpq %rcx, %rax
je 0x43340
movq %rdi, %r13
movabsq $-0x3557c5e70b91a778, %rcx # imm = 0xCAA83A18F46E5888
cmpq %rcx, %rax
je 0x434df
movabsq $-0x190868e6fae00d7a, %rcx # imm = 0xE6F79719051FF286
cmpq %rcx, %rax
je 0x43372
movabsq $-0x18f43ce6facf19ac, %rcx # imm = 0xE70BC3190530E654
cmpq %rcx, %rax
je 0x43668
movabsq $-0xe64339e40c20067, %rcx # imm = 0xF19BCC61BF3DFF99
cmpq %rcx, %rax
je 0x433f4
movabsq $-0xa1cf8e6f31b5cd9, %rcx # imm = 0xF5E307190CE4A327
cmpq %rcx, %rax
je 0x433af
movabsq $0x4c3dbe7cbbb5fb, %rcx # imm = 0x4C3DBE7CBBB5FB
cmpq %rcx, %rax
je 0x436d8
movabsq $0x7e66519174a3ce1, %rcx # imm = 0x7E66519174A3CE1
cmpq %rcx, %rax
je 0x4348e
movabsq $0x7f4431917564077, %rcx # imm = 0x7F4431917564077
cmpq %rcx, %rax
je 0x4370a
movabsq $0x808591917670ee3, %rcx # imm = 0x808591917670EE3
cmpq %rcx, %rax
je 0x435d7
movabsq $0x80f5119176d1ff9, %rcx # imm = 0x80F5119176D1FF9
cmpq %rcx, %rax
je 0x43687
movabsq $0x8b05407b5565ca4, %rcx # imm = 0x8B05407B5565CA4
cmpq %rcx, %rax
je 0x43628
movabsq $0x1894146c8d27f1ee, %rcx # imm = 0x1894146C8D27F1EE
cmpq %rcx, %rax
je 0x433c2
movabsq $0x4328f78ab20e1f98, %rcx # imm = 0x4328F78AB20E1F98
cmpq %rcx, %rax
je 0x434fe
movabsq $0x6a7933d70f43faaf, %rcx # imm = 0x6A7933D70F43FAAF
cmpq %rcx, %rax
je 0x434ad
movabsq $0x779b5f19564f3b35, %rcx # imm = 0x779B5F19564F3B35
cmpq %rcx, %rax
jne 0x43c48
testq %r15, %r15
je 0x437d5
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x437d5
movq 0x8(%rax), %rdi
jmp 0x437d7
movq %r15, %rdi
movq %r14, %rsi
callq 0x4410b
testb %al, %al
je 0x43c48
testq %r15, %r15
je 0x43c52
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x43c52
movq 0x8(%rax), %rdi
jmp 0x43c54
movq %r15, %rdi
callq 0x8d3ab
testb %al, %al
je 0x43c48
movq %r14, %rdi
callq 0x8d3ab
testb %al, %al
je 0x43c48
movq %r15, %rdi
callq 0x8db7d
testb %al, %al
je 0x44018
movq %r14, %rdi
callq 0x8db7d
jmp 0x4401a
movq %r15, %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x4241b
jmp 0x44025
movq %r15, %rdi
movq %r14, %rsi
callq 0x4410b
testb %al, %al
je 0x43c48
testq %r15, %r15
je 0x43c7c
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x43c7c
movq 0x8(%rax), %rdi
jmp 0x43c7e
testq %r15, %r15
je 0x43c48
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x43c48
movabsq $-0x1948b20c22462ae4, %rbp # imm = 0xE6B74DF3DDB9D51C
cmpq %rbp, 0x8(%rax)
jne 0x43c48
leaq 0xd49ab(%rip), %rax     # 0x117dd0
movq (%rax), %rsi
leaq 0x18(%rsp), %r12
movq %r12, %rdi
callq 0x717f5
movq $0x4, 0x10(%r12)
movq (%r15), %rdi
callq 0x44215
pushq $0x4
popq %rsi
movq %r12, %rdi
movq %rbp, %rdx
movq %rax, %rcx
callq 0x71967
movq %rax, %rbp
addq $0x40, %r13
xorl %r15d, %r15d
movq %rax, %rdi
xorl %esi, %esi
xorl %edx, %edx
movq %r13, %rcx
movq %r14, %r8
callq 0x4422f
movq %rbp, %rdi
callq 0x6026d
movq %rbx, %rdi
movq %rax, %rsi
callq 0x3def0
movq %r12, %rdi
jmp 0x440e1
testq %r15, %r15
je 0x43748
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x43748
movq 0x8(%rax), %rdi
jmp 0x4374a
movq %r15, %rdi
movq %r14, %rsi
callq 0x4410b
testb %al, %al
je 0x43c48
testq %r15, %r15
je 0x43cac
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x43cac
movq 0x8(%rax), %rdi
jmp 0x43cae
testq %r15, %r15
je 0x43777
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x43777
movq 0x8(%rax), %rdi
jmp 0x43779
movq %r15, %rdi
callq 0x8d3ab
testb %al, %al
je 0x43c48
testq %r14, %r14
je 0x43530
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x43530
movabsq $-0x19831b480b40fba0, %rcx # imm = 0xE67CE4B7F4BF0460
cmpq %rcx, 0x8(%rax)
je 0x43c48
movq %rbx, 0x8(%rsp)
leaq 0xd4894(%rip), %rax     # 0x117dd0
movq (%rax), %rsi
leaq 0x18(%rsp), %r12
movq %r12, %rdi
callq 0x717f5
movq $0x4, 0x10(%r12)
callq 0x41317
pushq $0x4
popq %rsi
movabsq $-0x240ec4eb25c1f3e8, %rdx # imm = 0xDBF13B14DA3E0C18
movq %r12, %rdi
movq %rax, %rcx
callq 0x71967
movq %rax, %r12
leaq 0x8(%rax), %r13
movq %r15, %rdi
callq 0x8d9e8
movq %r13, %rdi
movq %rax, %rsi
callq 0x5d326
xorl %ebp, %ebp
xorl %ebx, %ebx
cmpq 0x18(%r12), %rbx
jae 0x438c0
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x435aa
movq 0x8(%rax), %r15
jmp 0x435ad
xorl %r15d, %r15d
movq 0x10(%r12), %r13
addq %rbp, %r13
movq (%r14), %rsi
movq %r15, %rdi
callq 0x2de39
movq %r13, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x3c770
incq %rbx
addq $0x18, %rbp
jmp 0x43590
testq %r15, %r15
je 0x437a6
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x437a6
movq 0x8(%rax), %rdi
jmp 0x437a8
movq %r15, %rdi
movq %r14, %rsi
callq 0x4410b
testb %al, %al
je 0x43c48
testq %r15, %r15
je 0x43cdc
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x43cdc
movq 0x8(%rax), %rdi
jmp 0x43cde
movq %r15, %rdi
callq 0x8d3ab
testb %al, %al
je 0x43c48
movq %r14, %rdi
callq 0x8d3ab
testb %al, %al
je 0x43c48
movq %r15, %rdi
callq 0x8db7d
movl %eax, %ecx
movb $0x1, %al
testb %cl, %cl
jne 0x43660
movq %r14, %rdi
callq 0x8db7d
movzbl %al, %esi
jmp 0x4401d
testq %r15, %r15
je 0x43804
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x43804
movq 0x8(%rax), %rdi
jmp 0x43806
testq %r15, %r15
je 0x43833
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x43833
movq 0x8(%rax), %rdi
jmp 0x43835
movq %r15, %rdi
movq %r14, %rsi
callq 0x4410b
testb %al, %al
je 0x43c48
testq %r15, %r15
je 0x43d0c
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x43d0c
movq 0x8(%rax), %rdi
jmp 0x43d0e
movq %r15, %rdi
movq %r14, %rsi
callq 0x4410b
testb %al, %al
je 0x43c48
testq %r15, %r15
je 0x43d3c
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x43d3c
movq 0x8(%rax), %rdi
jmp 0x43d3e
testq %r15, %r15
je 0x43862
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x43862
movq 0x8(%rax), %rdi
jmp 0x43864
testq %r15, %r15
je 0x43891
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x43891
movq 0x8(%rax), %rdi
jmp 0x43893
xorl %edi, %edi
callq 0x987e0
testq %rax, %rax
je 0x4390f
testq %r14, %r14
je 0x438e4
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x438e4
movq 0x8(%rax), %rdi
jmp 0x438e6
xorl %edi, %edi
callq 0x987e0
testq %rax, %rax
je 0x43c48
testq %r14, %r14
je 0x43a19
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x43a19
movq 0x8(%rax), %rdi
jmp 0x43a1b
xorl %edi, %edi
callq 0x98918
testq %rax, %rax
je 0x43c48
testq %r14, %r14
je 0x43a55
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x43a55
movq 0x8(%rax), %rdi
jmp 0x43a57
xorl %edi, %edi
callq 0x987e0
testq %rax, %rax
je 0x43c48
testq %r14, %r14
je 0x43a9f
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x43a9f
movq 0x8(%rax), %rdi
jmp 0x43aa1
xorl %edi, %edi
callq 0x987e0
testq %rax, %rax
je 0x43b02
testq %r14, %r14
je 0x43ad7
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x43ad7
movq 0x8(%rax), %rdi
jmp 0x43ad9
xorl %edi, %edi
callq 0x987e0
testq %rax, %rax
je 0x43c48
testq %r14, %r14
je 0x43bc7
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x43bc7
movq 0x8(%rax), %rdi
jmp 0x43bc9
xorl %edi, %edi
callq 0x987e0
testq %rax, %rax
je 0x43c48
testq %r14, %r14
je 0x43bf2
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x43bf2
movq 0x8(%rax), %rdi
jmp 0x43bf4
xorl %edi, %edi
callq 0x987e0
testq %rax, %rax
je 0x43c48
testq %r14, %r14
je 0x43c1d
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x43c1d
movq 0x8(%rax), %rdi
jmp 0x43c1f
movq %r12, %rdi
callq 0x6026d
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x3def0
leaq 0x18(%rsp), %rdi
callq 0x71b64
jmp 0x44025
xorl %edi, %edi
callq 0x987e0
testq %rax, %rax
je 0x4390f
testq %r15, %r15
je 0x43d6c
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x43d6c
movq 0x8(%rax), %rdi
jmp 0x43d6e
testq %r15, %r15
je 0x43c48
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x43c48
movabsq $-0x240ec4eb25c1f3e8, %r13 # imm = 0xDBF13B14DA3E0C18
cmpq %r13, 0x8(%rax)
jne 0x43c48
testq %r14, %r14
je 0x43c48
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x43c48
cmpq %r13, 0x8(%rax)
jne 0x43c48
movq (%r15), %r12
leaq 0xd446d(%rip), %rax     # 0x117dd0
movq (%rax), %rsi
leaq 0x18(%rsp), %r15
movq %r15, %rdi
callq 0x717f5
movq $0x6, 0x10(%r15)
movq (%r14), %rbp
callq 0x41317
pushq $0x6
popq %rsi
movq %r15, %rdi
movq %r13, %rdx
movq %rax, %rcx
callq 0x71967
movq %rax, %r14
movq 0x18(%rbp), %rsi
imulq 0x18(%r12), %rsi
leaq 0x8(%rax), %rdi
callq 0x5d326
xorl %r13d, %r13d
xorl %eax, %eax
movq %rbx, 0x8(%rsp)
movq %r12, 0x10(%rsp)
cmpq 0x18(%r12), %rax
jge 0x440fb
movq %rax, (%rsp)
imulq $0x18, %rax, %r15
addq 0x10(%r12), %r15
xorl %ebx, %ebx
xorl %r12d, %r12d
movq 0x18(%rbp), %rdx
cmpq %rdx, %r12
jge 0x43a02
movq 0x10(%rbp), %rsi
addq %rbx, %rsi
imulq %r13, %rdx
addq 0x10(%r14), %rdx
addq %rbx, %rdx
movq %r15, %rdi
callq 0x4241b
incq %r12
addq $0x18, %rbx
jmp 0x439d6
movq (%rsp), %rax
incq %rax
addq $0x18, %r13
movq 0x8(%rsp), %rbx
movq 0x10(%rsp), %r12
jmp 0x439b9
xorl %edi, %edi
callq 0x987e0
testq %rax, %rax
je 0x43c48
movq %r14, %rdi
callq 0x8d63e
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x43fc9
jp 0x43fc9
addq $0x40, %r13
leaq 0x7277f(%rip), %rsi     # 0xb61cf
jmp 0x44000
xorl %edi, %edi
callq 0x98918
testq %rax, %rax
je 0x43c48
movq %r14, %rdi
callq 0x8d9e8
testq %rax, %rax
je 0x43ff5
movq %r15, %rdi
callq 0x8d9e8
movq %rax, %r15
movq %r14, %rdi
callq 0x8d9e8
movq %rax, %rcx
movq %r15, %rax
cqto
idivq %rcx
movq %rbx, %rdi
movq %rdx, %rsi
jmp 0x43fa2
xorl %edi, %edi
callq 0x987e0
testq %rax, %rax
je 0x43c48
movq %r15, %rdi
callq 0x8d63e
movsd %xmm0, (%rsp)
movq %r14, %rdi
callq 0x8d63e
movapd %xmm0, %xmm1
movsd (%rsp), %xmm0
callq 0xd470
jmp 0x43edc
xorl %edi, %edi
callq 0x987e0
testq %rax, %rax
je 0x43b02
testq %r15, %r15
je 0x43d9b
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x43d9b
movq 0x8(%rax), %rdi
jmp 0x43d9d
movabsq $-0x503db0e6e1c2e704, %rcx # imm = 0xAFC24F191E3D18FC
testq %r15, %r15
je 0x43b20
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x43b20
cmpq %rcx, 0x8(%rax)
je 0x43b40
testq %r14, %r14
je 0x43c48
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x43c48
cmpq %rcx, 0x8(%rax)
jne 0x43c48
leaq 0xd4289(%rip), %rax     # 0x117dd0
movq (%rax), %rsi
leaq 0x18(%rsp), %r12
movq %r12, %rdi
callq 0x717f5
movq $0x4, 0x10(%r12)
xorl %eax, %eax
callq 0x8eb65
pushq $0x4
popq %rbp
movq %r12, %rdi
movq %rbp, %rsi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
movq %rax, %rcx
callq 0x71967
movq %rax, (%rsp)
xorl %eax, %eax
callq 0x8eb65
movq %r12, %rdi
movq %rbp, %rsi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
movq %rax, %rcx
callq 0x71967
movq %rax, %r12
testq %r15, %r15
je 0x4403a
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x44042
movq 0x8(%rax), %rsi
jmp 0x44044
xorl %edi, %edi
callq 0x987e0
testq %rax, %rax
je 0x43c48
testq %r15, %r15
je 0x43dca
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x43dca
movq 0x8(%rax), %rdi
jmp 0x43dcc
xorl %edi, %edi
callq 0x987e0
testq %rax, %rax
je 0x43c48
testq %r15, %r15
je 0x43df9
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x43df9
movq 0x8(%rax), %rdi
jmp 0x43dfb
xorl %edi, %edi
callq 0x987e0
testq %rax, %rax
je 0x43c48
testq %r15, %r15
je 0x43e28
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x43e28
movq 0x8(%rax), %rdi
jmp 0x43e2a
movb $0x0, (%r12)
jmp 0x44025
xorl %edi, %edi
movq (%r15), %rsi
testq %r14, %r14
je 0x43c6b
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x43c6b
movq 0x8(%rax), %rdx
jmp 0x43c6d
xorl %edx, %edx
movq (%r14), %rcx
callq 0x44195
notl %eax
jmp 0x43d2f
xorl %edi, %edi
movq (%r15), %rsi
testq %r14, %r14
je 0x43c95
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x43c95
movq 0x8(%rax), %rdx
jmp 0x43c97
xorl %edx, %edx
movq (%r14), %rcx
callq 0x44195
xorl %esi, %esi
testl %eax, %eax
setne %sil
jmp 0x4401d
xorl %edi, %edi
movq (%r15), %rsi
testq %r14, %r14
je 0x43cc5
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x43cc5
movq 0x8(%rax), %rdx
jmp 0x43cc7
xorl %edx, %edx
movq (%r14), %rcx
callq 0x44195
xorl %esi, %esi
testl %eax, %eax
sete %sil
jmp 0x4401d
xorl %edi, %edi
movq (%r15), %rsi
testq %r14, %r14
je 0x43cf5
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x43cf5
movq 0x8(%rax), %rdx
jmp 0x43cf7
xorl %edx, %edx
movq (%r14), %rcx
callq 0x44195
xorl %esi, %esi
testl %eax, %eax
setle %sil
jmp 0x4401d
xorl %edi, %edi
movq (%r15), %rsi
testq %r14, %r14
je 0x43d25
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x43d25
movq 0x8(%rax), %rdx
jmp 0x43d27
xorl %edx, %edx
movq (%r14), %rcx
callq 0x44195
shrl $0x1f, %eax
movq %rbx, %rdi
movl %eax, %esi
jmp 0x44020
xorl %edi, %edi
movq (%r15), %rsi
testq %r14, %r14
je 0x43d55
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x43d55
movq 0x8(%rax), %rdx
jmp 0x43d57
xorl %edx, %edx
movq (%r14), %rcx
callq 0x44195
xorl %esi, %esi
testl %eax, %eax
setg %sil
jmp 0x4401d
xorl %edi, %edi
callq 0x98918
testq %rax, %rax
je 0x43e7f
testq %r14, %r14
je 0x43e57
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x43e57
movq 0x8(%rax), %rdi
jmp 0x43e59
xorl %edi, %edi
callq 0x98918
testq %rax, %rax
je 0x43ec2
testq %r14, %r14
je 0x43e9b
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x43e9b
movq 0x8(%rax), %rdi
jmp 0x43e9d
xorl %edi, %edi
callq 0x98918
testq %rax, %rax
je 0x43f0f
testq %r14, %r14
je 0x43ee4
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x43ee4
movq 0x8(%rax), %rdi
jmp 0x43ee6
xorl %edi, %edi
callq 0x98918
testq %rax, %rax
je 0x43f5a
testq %r14, %r14
je 0x43f32
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x43f32
movq 0x8(%rax), %rdi
jmp 0x43f34
xorl %edi, %edi
callq 0x98918
testq %rax, %rax
je 0x43fa9
testq %r14, %r14
je 0x43f7a
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x43f7a
movq 0x8(%rax), %rdi
jmp 0x43f7c
xorl %edi, %edi
callq 0x98918
testq %rax, %rax
je 0x43e7f
movq %r15, %rdi
callq 0x8d9e8
movq %rax, %r15
movq %r14, %rdi
callq 0x8d9e8
imulq %rax, %r15
jmp 0x43f9c
movq %r15, %rdi
callq 0x8d63e
movsd %xmm0, (%rsp)
movq %r14, %rdi
callq 0x8d63e
mulsd (%rsp), %xmm0
jmp 0x43edc
xorl %edi, %edi
callq 0x98918
testq %rax, %rax
je 0x43ec2
movq %r15, %rdi
callq 0x8d9e8
movq %rax, %r15
movq %r14, %rdi
callq 0x8d9e8
addq %rax, %r15
jmp 0x43f9c
movq %r15, %rdi
callq 0x8d63e
movsd %xmm0, (%rsp)
movq %r14, %rdi
callq 0x8d63e
addsd (%rsp), %xmm0
movq %rbx, %rdi
jmp 0x43fee
xorl %edi, %edi
callq 0x98918
testq %rax, %rax
je 0x43f0f
movq %r15, %rdi
callq 0x8d9e8
movq %rax, %r15
movq %r14, %rdi
callq 0x8d9e8
cmpq %rax, %r15
cmovleq %rax, %r15
jmp 0x43f9c
movq %r15, %rdi
callq 0x8d63e
movsd %xmm0, (%rsp)
movq %r14, %rdi
callq 0x8d63e
movsd (%rsp), %xmm1
maxsd %xmm0, %xmm1
jmp 0x43fe7
xorl %edi, %edi
callq 0x98918
testq %rax, %rax
je 0x43f5a
movq %r15, %rdi
callq 0x8d9e8
movq %rax, %r15
movq %r14, %rdi
callq 0x8d9e8
cmpq %rax, %r15
cmovgeq %rax, %r15
jmp 0x43f9c
movq %r15, %rdi
callq 0x8d63e
movsd %xmm0, (%rsp)
movq %r14, %rdi
callq 0x8d63e
movsd (%rsp), %xmm1
minsd %xmm0, %xmm1
jmp 0x43fe7
xorl %edi, %edi
callq 0x98918
testq %rax, %rax
je 0x43fa9
movq %r15, %rdi
callq 0x8d9e8
movq %rax, %r15
movq %r14, %rdi
callq 0x8d9e8
subq %rax, %r15
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8d5c6
jmp 0x44025
movq %r15, %rdi
callq 0x8d63e
movsd %xmm0, (%rsp)
movq %r14, %rdi
callq 0x8d63e
movsd (%rsp), %xmm1
subsd %xmm0, %xmm1
jmp 0x43fe7
movq %r15, %rdi
callq 0x8d63e
movsd %xmm0, (%rsp)
movq %r14, %rdi
callq 0x8d63e
movsd (%rsp), %xmm1
divsd %xmm0, %xmm1
movq %rbx, %rdi
movapd %xmm1, %xmm0
callq 0x8d566
jmp 0x44025
addq $0x40, %r13
leaq 0x721e2(%rip), %rsi     # 0xb61e2
movq %r13, %rdi
xorl %eax, %eax
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x41984
xorl %eax, %eax
movzbl %al, %esi
movq %rbx, %rdi
callq 0x8d516
xorl %r15d, %r15d
movq %r15, %rax
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%rsp), %rbp
xorl %esi, %esi
jmp 0x44048
xorl %esi, %esi
movq (%rsp), %rbp
movq (%r15), %rdx
movq %rbp, %rdi
callq 0x8e83e
testq %rax, %rax
jne 0x4407e
testq %r14, %r14
je 0x4406c
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x4406c
movq 0x8(%rax), %rsi
jmp 0x4406e
xorl %esi, %esi
movq (%r14), %rdx
movq %r12, %rdi
callq 0x8e83e
testq %rax, %rax
je 0x440eb
leaq 0x48(%rsp), %rbx
leaq 0x18(%rsp), %rsi
movq %rbx, %rdi
callq 0x717f5
movq $0x5, 0x10(%rbx)
addq $0x40, %r13
xorl %eax, %eax
callq 0x8eb65
pushq $0x5
popq %rsi
movq %rbx, %rdi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
movq %rax, %rcx
callq 0x71967
movq %rax, %r14
movq %rax, %rdi
callq 0x6098b
movq 0x8(%r14), %rdx
leaq 0x7212b(%rip), %rsi     # 0xb61fc
movq %r13, %rdi
xorl %eax, %eax
callq 0x41984
movq %rax, %r15
movq %rbx, %rdi
callq 0x71b64
jmp 0x44028
movq %rbp, %rdi
movq %r12, %rsi
callq 0x8f23a
movq %rbp, %rdi
jmp 0x440fe
movq %r14, %rdi
callq 0x6026d
movq %rbx, %rdi
jmp 0x438cd