// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore.xo.c
// Function: x_btcl_operator_f3_uop_s_setup
BCORE_DEFINE_OBJECT_INST_P_NASC_END( x_btcl_operator_f3_uop_s )

er_t x_btcl_operator_f3_uop_s_setup( x_btcl_operator_f3_uop_s* o )
{
    // bcore_x_btcl_operator_f3.x:129:5
    
    o->sa = ( x_btcl_operator_f3_spect_s* )x_btcl_operator_f3_spect_s_get_aware( o->a );
    switch( o->type )
    {
        case ((tp_t)(TYPEOF_identity)): o->fp_get = f3_ident; break;
        case ((tp_t)(TYPEOF_neg)):      o->fp_get = f3_neg;   break;
        case ((tp_t)(TYPEOF_exp)):      o->fp_get = f3_exp;   break;
        case ((tp_t)(TYPEOF_log)):      o->fp_get = f3_log;   break;
        case ((tp_t)(TYPEOF_log2)):     o->fp_get = f3_log2;  break;
        case ((tp_t)(TYPEOF_log10)):    o->fp_get = f3_log10; break;
        case ((tp_t)(TYPEOF_sin)):      o->fp_get = f3_sin;   break;
        case ((tp_t)(TYPEOF_cos)):      o->fp_get = f3_cos;   break;
        case ((tp_t)(TYPEOF_tan)):      o->fp_get = f3_tan;   break;
        case ((tp_t)(TYPEOF_tanh)):     o->fp_get = f3_tanh;  break;
        case ((tp_t)(TYPEOF_sqrt)):     o->fp_get = f3_sqrt;  break;
        case ((tp_t)(TYPEOF_sign)):     o->fp_get = f3_sign;  break;
        case ((tp_t)(TYPEOF_abs)):      o->fp_get = f3_abs;   break;
        case ((tp_t)(TYPEOF_ceil)):     o->fp_get = f3_ceil;  break;
        case ((tp_t)(TYPEOF_floor)):    o->fp_get = f3_floor; break;
        default: return  x_source_point_s_parse_error_fa(&(o->sp),"Unhandled operator type: #<sc_t>.", bnameof( o->type ) ); break;
    }
    BLM_TRY(x_btcl_operator_f3_a_setup(o->a))
    return  0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x10(%rdi), %rax
movq (%rax), %r14
leaq 0x109838(%rip), %r12    # 0x1a78a8
movl 0x109832(%rip), %eax    # 0x1a78a8
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r12,%rax,8), %rcx
movq 0x18(%r12,%rax,8), %rdx
andq %r14, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r14, %rdx
je 0x9e0cd
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r14, %rdx
je 0x9e0cd
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r14, %rdx
je 0x9e0cd
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r14, %rdx
jne 0x9e2df
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0x9e0fd
movabsq $0x37a58f457601baa0, %rdi # imm = 0x37A58F457601BAA0
movq %r14, %rsi
callq 0xf3f85
movq %rax, %r15
leaq 0x1097b6(%rip), %rdi    # 0x1a78a8
movq %r14, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r15, 0x18(%rbx)
movq 0x8(%rbx), %rdi
movabsq $-0x18e04de6fabe8d86, %rax # imm = 0xE71FB2190541727A
cmpq %rax, %rdi
jle 0x9e16c
movabsq $0x125073191daf5430, %rax # imm = 0x125073191DAF5430
cmpq %rax, %rdi
jg 0x9e1c4
movabsq $-0x9fb03e6f2fe8925, %rax # imm = 0xF604FC190D0176DB
cmpq %rax, %rdi
jg 0x9e27c
movabsq $-0x18e04de6fabe8d85, %rax # imm = 0xE71FB2190541727B
cmpq %rax, %rdi
je 0x9e2f0
movabsq $-0x16f0e7b3955c0045, %rax # imm = 0xE90F184C6AA3FFBB
cmpq %rax, %rdi
jne 0x9e314
leaq 0x2a2(%rip), %rax       # 0x9e409
jmp 0x9e343
movabsq $-0x3cedf4e70f8fbbf9, %rax # imm = 0xC3120B18F0704407
cmpq %rax, %rdi
jle 0x9e209
movabsq $-0x26cbaf10f87bc4f1, %rax # imm = 0xD93450EF07843B0F
cmpq %rax, %rdi
jg 0x9e24e
movabsq $-0x3cedf4e70f8fbbf8, %rax # imm = 0xC3120B18F0704408
cmpq %rax, %rdi
je 0x9e2cd
movabsq $-0x31f869528f143ee7, %rax # imm = 0xCE0796AD70EBC119
cmpq %rax, %rdi
jne 0x9e314
leaq -0x62b8(%rip), %rax     # 0x97f07
jmp 0x9e343
movabsq $0x4e0f7f18e637a363, %rax # imm = 0x4E0F7F18E637A363
cmpq %rax, %rdi
jg 0x9e2a6
movabsq $0x125073191daf5431, %rax # imm = 0x125073191DAF5431
cmpq %rax, %rdi
je 0x9e2f9
movabsq $0x2138e5192571d261, %rax # imm = 0x2138E5192571D261
cmpq %rax, %rdi
jne 0x9e314
leaq 0x206(%rip), %rax       # 0x9e40a
jmp 0x9e343
movabsq $-0x7db75ee6a3133b53, %rax # imm = 0x8248A1195CECC4AD
cmpq %rax, %rdi
je 0x9e33c
movabsq $-0x69eb30e6f0372831, %rax # imm = 0x9614CF190FC8D7CF
cmpq %rax, %rdi
je 0x9e2e7
movabsq $-0x5fc58b56bd24bc43, %rax # imm = 0xA03A74A942DB43BD
cmpq %rax, %rdi
jne 0x9e314
leaq -0x629c(%rip), %rax     # 0x97fad
jmp 0x9e343
movabsq $-0x26cbaf10f87bc4f0, %rax # imm = 0xD93450EF07843B10
cmpq %rax, %rdi
je 0x9e2d6
movabsq $-0x266ae76f02928178, %rax # imm = 0xD9951890FD6D7E88
cmpq %rax, %rdi
jne 0x9e314
leaq -0x62cf(%rip), %rax     # 0x97fa8
jmp 0x9e343
movabsq $-0x9fb03e6f2fe8924, %rax # imm = 0xF604FC190D0176DC
cmpq %rax, %rdi
je 0x9e302
movabsq $0x29c1fb6e090c590, %rax # imm = 0x29C1FB6E090C590
cmpq %rax, %rdi
jne 0x9e314
leaq -0x6383(%rip), %rax     # 0x97f1e
jmp 0x9e343
movabsq $0x4e0f7f18e637a364, %rax # imm = 0x4E0F7F18E637A364
cmpq %rax, %rdi
je 0x9e30b
movabsq $0x56d7b2194448b0d8, %rax # imm = 0x56D7B2194448B0D8
cmpq %rax, %rdi
jne 0x9e314
leaq -0x638c(%rip), %rax     # 0x97f3f
jmp 0x9e343
leaq -0x63e9(%rip), %rax     # 0x97eeb
jmp 0x9e343
leaq -0x6399(%rip), %rax     # 0x97f44
jmp 0x9e343
xorl %r15d, %r15d
jmp 0x9e0d1
leaq -0x63a5(%rip), %rax     # 0x97f49
jmp 0x9e343
leaq -0x6364(%rip), %rax     # 0x97f93
jmp 0x9e343
leaq -0x6410(%rip), %rax     # 0x97ef0
jmp 0x9e343
leaq -0x63cf(%rip), %rax     # 0x97f3a
jmp 0x9e343
leaq -0x63b6(%rip), %rax     # 0x97f5c
jmp 0x9e343
addq $0x28, %rbx
callq 0xe0cbc
leaq 0xa5f81(%rip), %rsi     # 0x1442a5
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x95f0b
leaq -0x640e(%rip), %rax     # 0x97f35
movq %rax, 0x20(%rbx)
movq 0x10(%rbx), %rbx
movq (%rbx), %r14
movl 0x109554(%rip), %eax    # 0x1a78a8
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r12,%rax,8), %rcx
movq 0x18(%r12,%rax,8), %rdx
andq %r14, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r14, %rdx
je 0x9e3a7
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r14, %rdx
je 0x9e3a7
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r14, %rdx
je 0x9e3a7
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r14, %rdx
jne 0x9e404
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0x9e3d7
movabsq $0x37a58f457601baa0, %rdi # imm = 0x37A58F457601BAA0
movq %r14, %rsi
callq 0xf3f85
movq %rax, %r15
leaq 0x1094dc(%rip), %rdi    # 0x1a78a8
movq %r14, %rsi
movq %rax, %rdx
callq 0x12128c
movq %rbx, %rdi
callq *0x10(%r15)
movq %rax, %rbx
testq %rax, %rax
je 0x9e3f5
leaq 0x10a9e3(%rip), %rax    # 0x1a8dd0
movq (%rax), %rdi
callq 0xe0b30
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
xorl %r15d, %r15d
jmp 0x9e3ab