// File: /workspace/github_c_makefile_star2_O1/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 0x9c135
cmpb $0x0, (%r14)
jne 0x8e1ae
movb $0x1, (%r14)
movq 0x18(%r15), %rax
testq %rax, %rax
movq %rbx, 0x10(%rsp)
movq %r12, (%rsp)
je 0x8df2d
movq 0x8(%rax), %rbx
jmp 0x8df2f
xorl %ebx, %ebx
movq %r13, 0x8(%rsp)
movq 0x10(%r15), %r12
leaq 0x119751(%rip), %rdx    # 0x1a7690
movl 0x11974b(%rip), %eax    # 0x1a7690
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 0x8df9c
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbx, %rdx
je 0x8df9c
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbx, %rdx
je 0x8df9c
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbx, %rdx
jne 0x8e1bf
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x8dfcc
movabsq $-0x2d60bfcb4cae7a7a, %rdi # imm = 0xD29F4034B3518586
movq %rbx, %rsi
callq 0xf3f85
movq %rax, %r13
leaq 0x1196cf(%rip), %rdi    # 0x1a7690
movq %rbx, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r12, %rdi
callq *0x18(%r13)
testb %al, %al
jne 0x8dfe7
movq %rbp, %rdi
callq 0x112fb6
testb %al, %al
je 0x8e197
movq 0x30(%r15), %rax
testq %rax, %rax
je 0x8dff6
movq 0x8(%rax), %r12
jmp 0x8dff9
xorl %r12d, %r12d
movq 0x28(%r15), %rbx
movl 0x11968d(%rip), %eax    # 0x1a7690
cltq
leaq (%rax,%rax,2), %rax
leaq 0x119680(%rip), %rdx    # 0x1a7690
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 0x8e061
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x8e061
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x8e061
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x8e1c7
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x8e091
movabsq $-0x2d60bfcb4cae7a7a, %rdi # imm = 0xD29F4034B3518586
movq %r12, %rsi
callq 0xf3f85
movq %rax, %r13
leaq 0x11960a(%rip), %rdi    # 0x1a7690
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
movq %rbx, %rdi
callq *0x18(%r13)
testb %al, %al
jne 0x8e0ae
movq 0x8(%rsp), %rdi
callq 0x112fb6
testb %al, %al
je 0x8e197
movq 0x48(%r15), %rax
testq %rax, %rax
je 0x8e0bd
movq 0x8(%rax), %r12
jmp 0x8e0c0
xorl %r12d, %r12d
movq 0x40(%r15), %rbx
movl 0x1195c6(%rip), %eax    # 0x1a7690
cltq
leaq (%rax,%rax,2), %rax
leaq 0x1195b9(%rip), %rdx    # 0x1a7690
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 0x8e128
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x8e128
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x8e128
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x8e1cf
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x8e158
movabsq $-0x2d60bfcb4cae7a7a, %rdi # imm = 0xD29F4034B3518586
movq %r12, %rsi
callq 0xf3f85
movq %rax, %r13
leaq 0x119543(%rip), %rdi    # 0x1a7690
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
movq %rbx, %rdi
callq *0x18(%r13)
testb %al, %al
jne 0x8e170
movq (%rsp), %rdi
callq 0x112fb6
testb %al, %al
je 0x8e197
movq %r15, %rdi
callq 0xc8348
movq %rax, %rbx
movq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x112baf
testq %rbx, %rbx
je 0x8e19d
movq (%rbx), %rdi
callq 0x1123e1
jmp 0x8e19f
movb $0x0, (%r14)
jmp 0x8e1ae
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
xorl %r13d, %r13d
jmp 0x8dfa0
xorl %r13d, %r13d
jmp 0x8e065
xorl %r13d, %r13d
jmp 0x8e12c