// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_copy_typed
er_t st_s_copy_typed( st_s* o, tp_t type, vc_t src )
{
    switch( type )
    {
        case TYPEOF_st_s: st_s_copy( o,              (const st_s*)src ); break;
        case TYPEOF_sc_t: st_s_copy_sc( o,          *(const sc_t*)src ); break;
        case TYPEOF_sd_t: st_s_copy_sc( o,          *(const sc_t*)src ); break;
        case TYPEOF_s0_t: st_s_copyf( o, "%"PRIi8 , *(const s0_t*)src ); break;
        case TYPEOF_s1_t: st_s_copyf( o, "%"PRIi16, *(const s1_t*)src ); break;
        case TYPEOF_s2_t: st_s_copyf( o, "%"PRIi32, *(const s2_t*)src ); break;
        case TYPEOF_s3_t: st_s_copyf( o, "%"PRIi64, *(const s3_t*)src ); break;
        case TYPEOF_u0_t: st_s_copyf( o, "%"PRIu8 , *(const u0_t*)src ); break;
        case TYPEOF_u1_t: st_s_copyf( o, "%"PRIu16, *(const u1_t*)src ); break;
        case TYPEOF_u2_t: st_s_copyf( o, "%"PRIu32, *(const u2_t*)src ); break;
        case TYPEOF_u3_t: st_s_copyf( o, "%"PRIu64, *(const u3_t*)src ); break;
        case TYPEOF_f2_t: st_s_copyf( o, "%g",      *(const f2_t*)src ); break;
        case TYPEOF_f3_t: st_s_copyf( o, "%.18lg",  *(const f3_t*)src ); break;
        case TYPEOF_sz_t: st_s_copyf( o, "%ti",     *(const sz_t*)src ); break;
        case TYPEOF_uz_t: st_s_copyf( o, "%zu",     *(const uz_t*)src ); break;
        case TYPEOF_vd_t: st_s_copyf( o, "%p",      *(const vd_t*)src ); break;
        case TYPEOF_vc_t: st_s_copyf( o, "%p",      *(const vc_t*)src ); break;

        case TYPEOF_smax_t:   st_s_copyf( o, "%"PRIiMAX, *(const smax_t*)src ); break;
        case TYPEOF_umax_t:   st_s_copyf( o, "%"PRIuMAX, *(const umax_t*)src ); break;
        case TYPEOF_offset_t: st_s_copyf( o, "%zu",      *(const offset_t*)src ); break;

        case TYPEOF_er_t: st_s_copyf( o, "%"PRIi32, *(const er_t*)src ); break;
        case TYPEOF_bl_t: st_s_copy_sc( o, *(const bl_t*)src ? "true" : "false" ); break;
        case TYPEOF_tp_t:
        case TYPEOF_aware_t:
        {
            uintmax_t val = *(const tp_t*)src;
            st_s_copyf( o, "%"PRIuMAX, val );
        }
        break;

        default:
        {
            return bcore_error_push_fa( TYPEOF_conversion_error, "Converting type '#<sc_t>' into 'st_s' is not supported.", ifnameof( type ) );
        }
        break;
    }
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
movabsq $-0x73f6ae1ad309fd45, %rcx # imm = 0x8C0951E52CF602BB
subq %rcx, %rax
je 0xfefe6
jmp 0xfecf1
movq -0x30(%rbp), %rax
movabsq $-0x6bce971ace902370, %rcx # imm = 0x943168E5316FDC90
subq %rcx, %rax
je 0xff004
jmp 0xfed0a
movq -0x30(%rbp), %rax
movabsq $-0x6119581ac7eacd63, %rcx # imm = 0x9EE6A7E53815329D
subq %rcx, %rax
je 0xff022
jmp 0xfed23
movq -0x30(%rbp), %rax
movabsq $-0x5fc2af85f419929b, %rcx # imm = 0xA03D507A0BE66D65
subq %rcx, %rax
je 0xff080
jmp 0xfed3c
movq -0x30(%rbp), %rax
movabsq $-0x5aa4411ac4e2880e, %rcx # imm = 0xA55BBEE53B1D77F2
subq %rcx, %rax
je 0xff03f
jmp 0xfed55
movq -0x30(%rbp), %rax
movabsq $-0x58737885f0577326, %rcx # imm = 0xA78C877A0FA88CDA
subq %rcx, %rax
je 0xff05d
jmp 0xfed6e
movq -0x30(%rbp), %rax
movabsq $-0x503db0e6e1c2e704, %rcx # imm = 0xAFC24F191E3D18FC
subq %rcx, %rax
je 0xfef33
jmp 0xfed87
movq -0x30(%rbp), %rax
movabsq $-0x4db4989f9014f113, %rcx # imm = 0xB24B67606FEB0EED
subq %rcx, %rax
je 0xff171
jmp 0xfeda0
movq -0x30(%rbp), %rax
movabsq $-0x4882601bdca6aefb, %rcx # imm = 0xB77D9FE423595105
subq %rcx, %rax
je 0xff0bd
jmp 0xfedb9
movq -0x30(%rbp), %rax
movabsq $-0x3f1363e6d8155aed, %rcx # imm = 0xC0EC9C1927EAA513
subq %rcx, %rax
je 0xff09f
jmp 0xfedd2
movq -0x30(%rbp), %rax
movabsq $-0x3ac242643d9c35a8, %rcx # imm = 0xC53DBD9BC263CA58
subq %rcx, %rax
je 0xff18c
jmp 0xfedeb
movq -0x30(%rbp), %rax
movabsq $-0x388c46b188de83fe, %rcx # imm = 0xC773B94E77217C02
subq %rcx, %rax
je 0xff1b2
jmp 0xfee04
movq -0x30(%rbp), %rax
movabsq $-0x84b14e74a9e1ff0, %rcx # imm = 0xF7B4EB18B561E010
subq %rcx, %rax
je 0xfef45
jmp 0xfee1d
movq -0x30(%rbp), %rax
movabsq $0x230abe18cdeefc99, %rcx # imm = 0x230ABE18CDEEFC99
subq %rcx, %rax
je 0xfef5a
jmp 0xfee36
movq -0x30(%rbp), %rax
movabsq $0x23dccbb013b0d1e5, %rcx # imm = 0x23DCCBB013B0D1E5
subq %rcx, %rax
je 0xff135
jmp 0xfee4f
movq -0x30(%rbp), %rax
movabsq $0x47b8ff5cd069fea1, %rcx # imm = 0x47B8FF5CD069FEA1
subq %rcx, %rax
je 0xff153
jmp 0xfee68
movq -0x30(%rbp), %rax
movabsq $0x4fc0143367a53daf, %rcx # imm = 0x4FC0143367A53DAF
subq %rcx, %rax
je 0xff117
jmp 0xfee81
movq -0x30(%rbp), %rax
movabsq $0x510c2417c67dabeb, %rcx # imm = 0x510C2417C67DABEB
subq %rcx, %rax
je 0xfefab
jmp 0xfee9a
movq -0x30(%rbp), %rax
movabsq $0x54de8100f7c1cbe5, %rcx # imm = 0x54DE8100F7C1CBE5
subq %rcx, %rax
je 0xff0f9
jmp 0xfeeb3
movq -0x30(%rbp), %rax
movabsq $0x585a3b17ca3de200, %rcx # imm = 0x585A3B17CA3DE200
subq %rcx, %rax
je 0xfefc8
jmp 0xfeecc
movq -0x30(%rbp), %rax
movabsq $0x62367a17d02b474d, %rcx # imm = 0x62367A17D02B474D
subq %rcx, %rax
je 0xfef6f
jmp 0xfeee5
movq -0x30(%rbp), %rax
movabsq $0x69849117d3eb7d62, %rcx # imm = 0x69849117D3EB7D62
subq %rcx, %rax
je 0xfef8d
jmp 0xfeefe
movq -0x30(%rbp), %rax
movabsq $0x6d07f9ef5b68e8a2, %rcx # imm = 0x6D07F9EF5B68E8A2
subq %rcx, %rax
je 0xff1b2
jmp 0xfef17
movq -0x30(%rbp), %rax
movabsq $0x6f0b060106a30da4, %rcx # imm = 0x6F0B060106A30DA4
subq %rcx, %rax
je 0xff0db
jmp 0xff1d5
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0xfe850
jmp 0xff1ff
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movq (%rax), %rsi
callq 0xfea50
jmp 0xff1ff
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movq (%rax), %rsi
callq 0xfea50
jmp 0xff1ff
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movsbl (%rax), %edx
leaq 0x592c4(%rip), %rsi     # 0x158245
movb $0x0, %al
callq 0xfeb40
jmp 0xff1ff
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movswl (%rax), %edx
leaq 0x592a6(%rip), %rsi     # 0x158245
movb $0x0, %al
callq 0xfeb40
jmp 0xff1ff
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movl (%rax), %edx
leaq 0x59289(%rip), %rsi     # 0x158245
movb $0x0, %al
callq 0xfeb40
jmp 0xff1ff
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movq (%rax), %rdx
leaq 0x527b1(%rip), %rsi     # 0x15178b
movb $0x0, %al
callq 0xfeb40
jmp 0xff1ff
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movzbl (%rax), %edx
leaq 0x4e7e6(%rip), %rsi     # 0x14d7de
movb $0x0, %al
callq 0xfeb40
jmp 0xff1ff
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movzwl (%rax), %edx
leaq 0x4e7c8(%rip), %rsi     # 0x14d7de
movb $0x0, %al
callq 0xfeb40
jmp 0xff1ff
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movl (%rax), %edx
leaq 0x4e7ab(%rip), %rsi     # 0x14d7de
movb $0x0, %al
callq 0xfeb40
jmp 0xff1ff
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movq (%rax), %rdx
leaq 0x520ee(%rip), %rsi     # 0x15113f
movb $0x0, %al
callq 0xfeb40
jmp 0xff1ff
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movss (%rax), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x52727(%rip), %rsi     # 0x15179b
movb $0x1, %al
callq 0xfeb40
jmp 0xff1ff
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movsd (%rax), %xmm0
leaq 0x575d3(%rip), %rsi     # 0x156666
movb $0x1, %al
callq 0xfeb40
jmp 0xff1ff
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movq (%rax), %rdx
leaq 0x526de(%rip), %rsi     # 0x15178f
movb $0x0, %al
callq 0xfeb40
jmp 0xff1ff
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movq (%rax), %rdx
leaq 0x4ed02(%rip), %rsi     # 0x14ddd1
movb $0x0, %al
callq 0xfeb40
jmp 0xff1ff
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movq (%rax), %rdx
leaq 0x57580(%rip), %rsi     # 0x15666d
movb $0x0, %al
callq 0xfeb40
jmp 0xff1ff
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movq (%rax), %rdx
leaq 0x57562(%rip), %rsi     # 0x15666d
movb $0x0, %al
callq 0xfeb40
jmp 0xff1ff
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movq (%rax), %rdx
leaq 0x52662(%rip), %rsi     # 0x15178b
movb $0x0, %al
callq 0xfeb40
jmp 0xff1ff
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movq (%rax), %rdx
leaq 0x51ff8(%rip), %rsi     # 0x15113f
movb $0x0, %al
callq 0xfeb40
jmp 0xff1ff
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movq (%rax), %rdx
leaq 0x4ec6c(%rip), %rsi     # 0x14ddd1
movb $0x0, %al
callq 0xfeb40
jmp 0xff1ff
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movq (%rax), %rdx
leaq 0x590c2(%rip), %rsi     # 0x158245
movb $0x0, %al
callq 0xfeb40
jmp 0xff1ff
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movb (%rax), %cl
leaq 0x3ab78(%rip), %rsi     # 0x139d15
leaq 0x59ca7(%rip), %rax     # 0x158e4b
testb $0x1, %cl
cmovneq %rax, %rsi
callq 0xfea50
jmp 0xff1ff
movq -0x20(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rdx
leaq 0x51f73(%rip), %rsi     # 0x15113f
movb $0x0, %al
callq 0xfeb40
jmp 0xff1ff
movq -0x18(%rbp), %rdi
callq 0xff220
movq %rax, %rdx
movabsq $-0x4e68f1e683c13928, %rdi # imm = 0xB1970E197C3EC6D8
leaq 0x5747e(%rip), %rsi     # 0x156670
movb $0x0, %al
callq 0x9e090
movq %rax, -0x8(%rbp)
jmp 0xff207
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)