// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore.xo.c
// Function: x_btcl_operator_uop_s_solve_exportable_a
er_t x_btcl_operator_uop_s_solve_exportable_a( const x_btcl_operator_uop_s* o, const sr_s* a, sr_s* result, bl_t* success )
{
    // bcore_x_btcl_operator.x:107:1
    
    (*(success)) = true;
    
    switch( o->type )
    {
        case ((tp_t)(TYPEOF_identity)): sr_s_tsc(result,sr_s_type(a), ((x_inst*)bcore_fork(a->o)) ); return  0;
    
        case ((tp_t)(TYPEOF_neg)):
        {
            if( sr_s_is_integer(a) ) { sr_s_const_from_s3(result,-sr_s_to_s3(a) ); return  0; }
            if( sr_s_is_float(a)   ) { sr_s_const_from_f3(result,-sr_s_to_f3(a) ); return  0; }
        }
        break;
    
        case ((tp_t)(TYPEOF_size)):
        {
            if( sr_s_type(a) == ((tp_t)(TYPEOF_x_btcl_list_s))          ) { sr_s_const_from_s3(result,((const x_btcl_list_s*)(a->o))->arr.size ); return  0; }
            if( x_array_t_is_array(sr_s_type(a) ) ) { sr_s_const_from_s3(result,x_array_t_size(((const x_array*)( a->o)),sr_s_type(a) ) ); return  0; }
        }
        break;
    
        case ((tp_t)(TYPEOF_not)):   if( sr_s_is_numeric(a) ) { sr_s_const_from_bl(result,!sr_s_to_bl(a) ); return  0; } break;
        case ((tp_t)(TYPEOF_exp)):   if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_exp(   sr_s_to_f3(a) ) ); return  0; } break;
        case ((tp_t)(TYPEOF_log)):   if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_log(   sr_s_to_f3(a) ) ); return  0; } break;
        case ((tp_t)(TYPEOF_log2)):  if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_log2(  sr_s_to_f3(a) ) ); return  0; } break;
        case ((tp_t)(TYPEOF_log10)): if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_log10( sr_s_to_f3(a) ) ); return  0; } break;
        case ((tp_t)(TYPEOF_sin)):   if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_sin(   sr_s_to_f3(a) ) ); return  0; } break;
        case ((tp_t)(TYPEOF_cos)):   if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_cos(   sr_s_to_f3(a) ) ); return  0; } break;
        case ((tp_t)(TYPEOF_tan)):   if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_tan(   sr_s_to_f3(a) ) ); return  0; } break;
        case ((tp_t)(TYPEOF_tanh)):  if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_tanh(  sr_s_to_f3(a) ) ); return  0; } break;
        case ((tp_t)(TYPEOF_sqrt)):  if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_sqrt(  sr_s_to_f3(a) ) ); return  0; } break;
        case ((tp_t)(TYPEOF_sign)):  if( sr_s_is_numeric(a) ) { sr_s_const_from_s3(result,f3_sign(  sr_s_to_f3(a) ) ); return  0; } break;
    
        case ((tp_t)(TYPEOF_abs)):
        {
            if( sr_s_is_integer(a) ) { sr_s_const_from_s3(result,s3_abs( sr_s_to_s3(a) ) ); return  0; }
            if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_abs( sr_s_to_f3(a) ) ); return  0; }
        }
        break;
    
        case ((tp_t)(TYPEOF_ceil)):  if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_ceil(  sr_s_to_f3(a) ) ); return  0; } break;
        case ((tp_t)(TYPEOF_floor)): if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_floor( sr_s_to_f3(a) ) ); return  0; } break;
    
        default: break;
    }
    
    (*(success)) = false;
    return  0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq -0x28(%rbp), %rax
movb $0x1, (%rax)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
movabsq $-0x7db75ee6a3133b53, %rcx # imm = 0x8248A1195CECC4AD
subq %rcx, %rax
je 0x69cc2
jmp 0x69883
movq -0x30(%rbp), %rax
movabsq $-0x69eb30e6f0372831, %rcx # imm = 0x9614CF190FC8D7CF
subq %rcx, %rax
je 0x69dda
jmp 0x6989c
movq -0x30(%rbp), %rax
movabsq $-0x5fc58b56bd24bc43, %rcx # imm = 0xA03A74A942DB43BD
subq %rcx, %rax
je 0x69f38
jmp 0x698b5
movq -0x30(%rbp), %rax
movabsq $-0x3cedf4e70f8fbbf8, %rcx # imm = 0xC3120B18F0704408
subq %rcx, %rax
je 0x69bbc
jmp 0x698ce
movq -0x30(%rbp), %rax
movabsq $-0x31f869528f143ee7, %rcx # imm = 0xCE0796AD70EBC119
subq %rcx, %rax
je 0x69c3c
jmp 0x698e7
movq -0x30(%rbp), %rax
movabsq $-0x26cbaf10f87bc4f0, %rcx # imm = 0xD93450EF07843B10
subq %rcx, %rax
je 0x69d94
jmp 0x69900
movq -0x30(%rbp), %rax
movabsq $-0x266ae76f02928178, %rcx # imm = 0xD9951890FD6D7E88
subq %rcx, %rax
je 0x69ef8
jmp 0x69919
movq -0x30(%rbp), %rax
movabsq $-0x18e04de6fabe8d85, %rcx # imm = 0xE71FB2190541727B
subq %rcx, %rax
je 0x69e6b
jmp 0x69932
movq -0x30(%rbp), %rax
movabsq $-0x16f0e7b3955c0045, %rcx # imm = 0xE90F184C6AA3FFBB
subq %rcx, %rax
je 0x69a16
jmp 0x6994b
movq -0x30(%rbp), %rax
movabsq $-0x9fb03e6f2fe8924, %rcx # imm = 0xF604FC190D0176DC
subq %rcx, %rax
je 0x69d08
jmp 0x69964
movq -0x30(%rbp), %rax
movabsq $0x29c1fb6e090c590, %rcx # imm = 0x29C1FB6E090C590
subq %rcx, %rax
je 0x69c7c
jmp 0x6997d
movq -0x30(%rbp), %rax
movabsq $0x125073191daf5431, %rcx # imm = 0x125073191DAF5431
subq %rcx, %rax
je 0x69bfc
jmp 0x69996
movq -0x30(%rbp), %rax
movabsq $0x2138e5192571d261, %rcx # imm = 0x2138E5192571D261
subq %rcx, %rax
je 0x69a54
jmp 0x699af
movq -0x30(%rbp), %rax
movabsq $0x215ad619258e9f4a, %rcx # imm = 0x215AD619258E9F4A
subq %rcx, %rax
je 0x69b79
jmp 0x699c8
movq -0x30(%rbp), %rax
movabsq $0x4dea9618e618ae3c, %rcx # imm = 0x4DEA9618E618AE3C
subq %rcx, %rax
je 0x69ae3
jmp 0x699e1
movq -0x30(%rbp), %rax
movabsq $0x4e0f7f18e637a364, %rcx # imm = 0x4E0F7F18E637A364
subq %rcx, %rax
je 0x69e20
jmp 0x699fa
movq -0x30(%rbp), %rax
movabsq $0x56d7b2194448b0d8, %rcx # imm = 0x56D7B2194448B0D8
subq %rcx, %rax
je 0x69d4e
jmp 0x69f78
movq -0x20(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rdi
callq 0x45450
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0x9d3d0
movq -0x40(%rbp), %rdi
movq -0x38(%rbp), %rsi
movq %rax, %rdx
callq 0x5e7b0
movq $0x0, -0x8(%rbp)
jmp 0x69f89
movq -0x18(%rbp), %rdi
callq 0xfc2d0
testb $0x1, %al
jne 0x69a63
jmp 0x69a91
movq -0x20(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x18(%rbp), %rdi
callq 0xfce10
movq -0x48(%rbp), %rdi
xorl %ecx, %ecx
movl %ecx, %esi
subq %rax, %rsi
callq 0xfc5c0
movq $0x0, -0x8(%rbp)
jmp 0x69f89
movq -0x18(%rbp), %rdi
callq 0xfc2a0
testb $0x1, %al
jne 0x69aa0
jmp 0x69ade
movq -0x20(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rdi
callq 0xfc680
movq -0x50(%rbp), %rdi
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0xfc4e0
movq $0x0, -0x8(%rbp)
jmp 0x69f89
jmp 0x69f7a
movq -0x18(%rbp), %rdi
callq 0x45450
movabsq $-0x240ec4eb25c1f3e8, %rcx # imm = 0xDBF13B14DA3E0C18
cmpq %rcx, %rax
jne 0x69b1c
movq -0x20(%rbp), %rdi
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rsi
callq 0xfc5c0
movq $0x0, -0x8(%rbp)
jmp 0x69f89
movq -0x18(%rbp), %rdi
callq 0x45450
movq %rax, %rdi
callq 0x63680
testb $0x1, %al
jne 0x69b33
jmp 0x69b74
movq -0x20(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x60(%rbp)
movq -0x18(%rbp), %rdi
callq 0x45450
movq -0x60(%rbp), %rdi
movq %rax, %rsi
callq 0x549c0
movq -0x58(%rbp), %rdi
movq %rax, %rsi
callq 0xfc5c0
movq $0x0, -0x8(%rbp)
jmp 0x69f89
jmp 0x69f7a
movq -0x18(%rbp), %rdi
callq 0xfc220
testb $0x1, %al
jne 0x69b88
jmp 0x69bb7
movq -0x20(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x18(%rbp), %rdi
callq 0xfd120
movq -0x68(%rbp), %rdi
xorb $-0x1, %al
movzbl %al, %esi
andl $0x1, %esi
callq 0xfc600
movq $0x0, -0x8(%rbp)
jmp 0x69f89
jmp 0x69f7a
movq -0x18(%rbp), %rdi
callq 0xfc220
testb $0x1, %al
jne 0x69bcb
jmp 0x69bf7
movq -0x20(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x18(%rbp), %rdi
callq 0xfc680
callq 0x69fa0
movq -0x70(%rbp), %rdi
callq 0xfc4e0
movq $0x0, -0x8(%rbp)
jmp 0x69f89
jmp 0x69f7a
movq -0x18(%rbp), %rdi
callq 0xfc220
testb $0x1, %al
jne 0x69c0b
jmp 0x69c37
movq -0x20(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x18(%rbp), %rdi
callq 0xfc680
callq 0x69fc0
movq -0x78(%rbp), %rdi
callq 0xfc4e0
movq $0x0, -0x8(%rbp)
jmp 0x69f89
jmp 0x69f7a
movq -0x18(%rbp), %rdi
callq 0xfc220
testb $0x1, %al
jne 0x69c4b
jmp 0x69c77
movq -0x20(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x18(%rbp), %rdi
callq 0xfc680
callq 0x6a010
movq -0x80(%rbp), %rdi
callq 0xfc4e0
movq $0x0, -0x8(%rbp)
jmp 0x69f89
jmp 0x69f7a
movq -0x18(%rbp), %rdi
callq 0xfc220
testb $0x1, %al
jne 0x69c8b
jmp 0x69cbd
movq -0x20(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x18(%rbp), %rdi
callq 0xfc680
callq 0x6a060
movq -0x88(%rbp), %rdi
callq 0xfc4e0
movq $0x0, -0x8(%rbp)
jmp 0x69f89
jmp 0x69f7a
movq -0x18(%rbp), %rdi
callq 0xfc220
testb $0x1, %al
jne 0x69cd1
jmp 0x69d03
movq -0x20(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x18(%rbp), %rdi
callq 0xfc680
callq 0x6a0b0
movq -0x90(%rbp), %rdi
callq 0xfc4e0
movq $0x0, -0x8(%rbp)
jmp 0x69f89
jmp 0x69f7a
movq -0x18(%rbp), %rdi
callq 0xfc220
testb $0x1, %al
jne 0x69d17
jmp 0x69d49
movq -0x20(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x18(%rbp), %rdi
callq 0xfc680
callq 0x6a0d0
movq -0x98(%rbp), %rdi
callq 0xfc4e0
movq $0x0, -0x8(%rbp)
jmp 0x69f89
jmp 0x69f7a
movq -0x18(%rbp), %rdi
callq 0xfc220
testb $0x1, %al
jne 0x69d5d
jmp 0x69d8f
movq -0x20(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x18(%rbp), %rdi
callq 0xfc680
callq 0x6a0f0
movq -0xa0(%rbp), %rdi
callq 0xfc4e0
movq $0x0, -0x8(%rbp)
jmp 0x69f89
jmp 0x69f7a
movq -0x18(%rbp), %rdi
callq 0xfc220
testb $0x1, %al
jne 0x69da3
jmp 0x69dd5
movq -0x20(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x18(%rbp), %rdi
callq 0xfc680
callq 0x6a110
movq -0xa8(%rbp), %rdi
callq 0xfc4e0
movq $0x0, -0x8(%rbp)
jmp 0x69f89
jmp 0x69f7a
movq -0x18(%rbp), %rdi
callq 0xfc220
testb $0x1, %al
jne 0x69de9
jmp 0x69e1b
movq -0x20(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0x18(%rbp), %rdi
callq 0xfc680
callq 0x6a130
movq -0xb0(%rbp), %rdi
callq 0xfc4e0
movq $0x0, -0x8(%rbp)
jmp 0x69f89
jmp 0x69f7a
movq -0x18(%rbp), %rdi
callq 0xfc220
testb $0x1, %al
jne 0x69e2f
jmp 0x69e66
movq -0x20(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0x18(%rbp), %rdi
callq 0xfc680
callq 0x6a150
movq -0xb8(%rbp), %rdi
cvttsd2si %xmm0, %rsi
callq 0xfc5c0
movq $0x0, -0x8(%rbp)
jmp 0x69f89
jmp 0x69f7a
movq -0x18(%rbp), %rdi
callq 0xfc2d0
testb $0x1, %al
jne 0x69e7a
jmp 0x69eb2
movq -0x20(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0x18(%rbp), %rdi
callq 0xfce10
movq %rax, %rdi
callq 0x6a190
movq -0xc0(%rbp), %rdi
movq %rax, %rsi
callq 0xfc5c0
movq $0x0, -0x8(%rbp)
jmp 0x69f89
movq -0x18(%rbp), %rdi
callq 0xfc220
testb $0x1, %al
jne 0x69ec1
jmp 0x69ef3
movq -0x20(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0x18(%rbp), %rdi
callq 0xfc680
callq 0x6a1c0
movq -0xc8(%rbp), %rdi
callq 0xfc4e0
movq $0x0, -0x8(%rbp)
jmp 0x69f89
jmp 0x69f7a
movq -0x18(%rbp), %rdi
callq 0xfc220
testb $0x1, %al
jne 0x69f07
jmp 0x69f36
movq -0x20(%rbp), %rax
movq %rax, -0xd0(%rbp)
movq -0x18(%rbp), %rdi
callq 0xfc680
callq 0x6a210
movq -0xd0(%rbp), %rdi
callq 0xfc4e0
movq $0x0, -0x8(%rbp)
jmp 0x69f89
jmp 0x69f7a
movq -0x18(%rbp), %rdi
callq 0xfc220
testb $0x1, %al
jne 0x69f47
jmp 0x69f76
movq -0x20(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq -0x18(%rbp), %rdi
callq 0xfc680
callq 0x6a230
movq -0xd8(%rbp), %rdi
callq 0xfc4e0
movq $0x0, -0x8(%rbp)
jmp 0x69f89
jmp 0x69f7a
jmp 0x69f7a
movq -0x28(%rbp), %rax
movb $0x0, (%rax)
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0xe0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)