// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore.xo.c
// Function: x_btcl_operator_top_s_solve
er_t x_btcl_operator_top_s_solve( x_btcl_operator_top_s* o, x_btcl_frame_s* frame, sr_s* result, bl_t* success )
{
    // bcore_x_btcl_operator.x:854:1
    
    // exportable operations
    BLM_TRY(x_btcl_operator_top_s_solve_exportable_a_b_c(o,&(o->a),&( o->b),&( o->c), result, success ))
    if( (*(success)) ) return  0;
    
    (*(success)) = true;
    
    // residual (not exportable) operations
    switch( o->type )
    {
        default: break;
    }
    
    if
    (
           ( x_btcl_operator_sr_is_exportable_operand(&(o->a )) || sr_s_is_numeric(&(o->a)) )
        && ( x_btcl_operator_sr_is_exportable_operand(&(o->b )) || sr_s_is_numeric(&(o->b)) )
        && ( x_btcl_operator_sr_is_exportable_operand(&(o->c )) || sr_s_is_numeric(&(o->c)) )
    )
    {
        sr_s_asc(result,((x_btcl_operator_top_s*)bcore_fork(o)) );
        return  0;
    }
    
    (*(success)) = false;
    return  0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rcx, %r14
movq %rdx, %rbx
movq %rdi, %r15
leaq 0x10(%rdi), %rbp
leaq 0x28(%rdi), %r13
leaq 0x40(%rdi), %r12
movq %rbp, %rsi
movq %r13, %rdx
movq %r12, %rcx
movq %rbx, %r8
movq %r14, %r9
callq 0x93a2e
cmpb $0x0, (%r14)
jne 0x85fd9
movb $0x1, (%r14)
movq 0x18(%r15), %rax
testq %rax, %rax
movq %rbx, 0x10(%rsp)
movq %r12, (%rsp)
movq %r13, 0x8(%rsp)
je 0x85d69
movq 0x8(%rax), %rbx
jmp 0x85d6b
xorl %ebx, %ebx
movq 0x10(%r15), %r12
leaq 0x11491a(%rip), %rdx    # 0x19a690
movl 0x114914(%rip), %eax    # 0x19a690
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rdx,%rax,8), %rcx
movq 0x18(%rdx,%rax,8), %rdx
andq %rbx, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbx, %rdx
je 0x85dcf
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbx, %rdx
je 0x85dcf
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbx, %rdx
je 0x85dcf
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbx, %rdx
jne 0x85dd8
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x85dff
movabsq $-0x2d60bfcb4cae7a7a, %rdi # imm = 0xD29F4034B3518586
movq %rbx, %rsi
callq 0xe9bc5
movq %rax, %r13
leaq 0x11489c(%rip), %rdi    # 0x19a690
movq %rbx, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r12, %rdi
callq *0x18(%r13)
testb %al, %al
jne 0x85e1a
movq %rbp, %rdi
callq 0x108085
testb %al, %al
je 0x85fc2
movq 0x30(%r15), %rax
testq %rax, %rax
je 0x85e29
movq 0x8(%rax), %r12
jmp 0x85e2c
xorl %r12d, %r12d
movq 0x28(%r15), %rbx
movl 0x11485a(%rip), %eax    # 0x19a690
cltq
leaq (%rax,%rax,2), %rax
leaq 0x11484d(%rip), %rdx    # 0x19a690
movq 0x20(%rdx,%rax,8), %rcx
movq 0x18(%rdx,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x85e90
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x85e90
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x85e90
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x85e99
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x85ec0
movabsq $-0x2d60bfcb4cae7a7a, %rdi # imm = 0xD29F4034B3518586
movq %r12, %rsi
callq 0xe9bc5
movq %rax, %r13
leaq 0x1147db(%rip), %rdi    # 0x19a690
movq %r12, %rsi
movq %rax, %rdx
callq 0x115fac
movq %rbx, %rdi
callq *0x18(%r13)
testb %al, %al
jne 0x85edd
movq 0x8(%rsp), %rdi
callq 0x108085
testb %al, %al
je 0x85fc2
movq 0x48(%r15), %rax
testq %rax, %rax
je 0x85eec
movq 0x8(%rax), %r12
jmp 0x85eef
xorl %r12d, %r12d
movq 0x40(%r15), %rbx
movl 0x114797(%rip), %eax    # 0x19a690
cltq
leaq (%rax,%rax,2), %rax
leaq 0x11478a(%rip), %rdx    # 0x19a690
movq 0x20(%rdx,%rax,8), %rcx
movq 0x18(%rdx,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x85f53
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x85f53
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x85f53
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x85f5c
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x85f83
movabsq $-0x2d60bfcb4cae7a7a, %rdi # imm = 0xD29F4034B3518586
movq %r12, %rsi
callq 0xe9bc5
movq %rax, %r13
leaq 0x114718(%rip), %rdi    # 0x19a690
movq %r12, %rsi
movq %rax, %rdx
callq 0x115fac
movq %rbx, %rdi
callq *0x18(%r13)
testb %al, %al
jne 0x85f9b
movq (%rsp), %rdi
callq 0x108085
testb %al, %al
je 0x85fc2
movq %r15, %rdi
callq 0xbe7e4
movq %rax, %rbx
movq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x107ca9
testq %rbx, %rbx
je 0x85fc8
movq (%rbx), %rdi
callq 0x1074f1
jmp 0x85fca
movb $0x0, (%r14)
jmp 0x85fd9
xorl %eax, %eax
movq %rbx, (%r14)
movq %rax, 0x8(%r14)
movq $0x3, 0x10(%r14)
xorl %eax, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq