Function at 0x46d8b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
pxor xmm0, xmm0
mov r9d, 0
movdqu xmm1, xmmword [rdx]
mov rdi, qword [rdx + 0x58]
movlps xmm0, qword [rdx + 0x10]
movups xmmword [rcx], xmm1
mov eax, dword [rdx + 0x2c]
mov rbx, rcx
movhps xmm0, qword [rdx + 0x18]
mov rsi, rdx
movlps qword [rcx + 0x10], xmm0
movhps qword [rcx + 0x18], xmm0
movss xmm0, dword [rdx + 0x20]
movss dword [rcx + 0x20], xmm0
movss xmm0, dword [rdx + 0x24]
movss dword [rcx + 0x24], xmm0
movss xmm0, dword [rdx + 0x28]
mov dword [rcx + 0x2c], eax
mov eax, dword [rdx + 0x3c]
movss dword [rcx + 0x28], xmm0
movss xmm0, dword [rdx + 0x30]
movss dword [rcx + 0x30], xmm0
movss xmm0, dword [rdx + 0x34]
movss dword [rcx + 0x34], xmm0
movss xmm0, dword [rdx + 0x38]
mov dword [rcx + 0x3c], eax
movzx eax, byte [rdx + 0x48]
movss dword [rcx + 0x38], xmm0
movss xmm0, dword [rdx + 0x40]
movss dword [rcx + 0x40], xmm0
movss xmm0, dword [rdx + 0x44]
mov byte [rcx + 0x48], al
mov eax, dword [rdx + 0x4c]
movss dword [rcx + 0x44], xmm0
pxor xmm0, xmm0
mov dword [rcx + 0x4c], eax
sub rdi, qword [rdx + 0x50]
movups xmmword [rcx + 0x50], xmm0
mov qword [rcx + 0x60], 0
je 0x46d96f
mov rcx, rdi
call sym.operator_new_unsigned_long_long_
mov r9, rax
add rdi, r9
movq xmm0, r9
mov qword [rbx + 0x60], rdi
punpcklqdq xmm0, xmm0
xor edi, edi
movups xmmword [rbx + 0x50], xmm0
mov rdx, qword [rsi + 0x50]
mov rax, qword [rsi + 0x58]
sub rax, rdx
jne 0x46dac0
lea rbp, [rbx + 0x78]
add r9, rdi
mov qword [rbx + 0x58], r9
lea rcx, [rbx + 0x68]
mov qword [rbx + 0x68], rbp
mov rdx, qword [rsi + 0x68]
mov r8, qword [rsi + 0x70]
add r8, rdx
call method.void_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_construct_char__char__char__std::forward_iterator_tag___clone_.constprop.3713_
lea r12, [rbx + 0x98]
mov qword [rbx + 0x88], r12
mov rdx, qword [rsi + 0x88]
lea rcx, [rbx + 0x88]
mov r8, qword [rsi + 0x90]
add r8, rdx
call method.void_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_construct_char__char__char__std::forward_iterator_tag___clone_.constprop.3713_
movss xmm0, dword [rsi + 0xa8]
lea rdx, [rsi + 0xb0]
lea rcx, [rbx + 0xb0]
movss dword [rbx + 0xa8], xmm0
call fcn.004a1500
mov rdi, qword [rsi + 0xf0]
xor r9d, r9d
pxor xmm0, xmm0
sub rdi, qword [rsi + 0xe8]
movups xmmword [rbx + 0xe8], xmm0
mov qword [rbx + 0xf8], 0
mov rax, rdi
sar rax, 2
test rax, rax
je 0x46da58
movabs rdx, 0x3fffffffffffffff
cmp rax, rdx
ja 0x46dad6
mov rcx, rdi
call sym.operator_new_unsigned_long_long_
mov r9, rax
add rdi, r9
movq xmm0, r9
mov qword [rbx + 0xf8], rdi
punpcklqdq xmm0, xmm0
movups xmmword [rbx + 0xe8], xmm0
mov rax, qword [rsi + 0xf0]
mov rdx, qword [rsi + 0xe8]
mov rdi, rax
sub rdi, rdx
cmp rax, rdx
je 0x46da99
mov rcx, r9
mov r8, rdi
call sym.memmove
mov r9, rax
movzx eax, byte [rsi + 0x100]
add r9, rdi
mov qword [rbx + 0xf0], r9
mov byte [rbx + 0x100], al
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rcx, r9
mov r8, rax
mov rdi, rax
call sym.memmove
mov r9, rax
jmp 0x46d996
call sym.std::__throw_bad_alloc__
mov rcx, qword [rbx + 0xc0]
mov rsi, rax
test rcx, rcx
jne 0x46db66
mov r8, qword [rbx + 0xb8]
xor edx, edx
mov rcx, qword [rbx + 0xb0]
shl r8, 3
call sym.memset
mov rcx, qword [rbx + 0xb0]
lea rax, [rbx + 0xe0]
mov qword [rbx + 0xc8], 0
mov qword [rbx + 0xc0], 0
cmp rcx, rax
jne 0x46db80
mov rcx, qword [rbx + 0x88]
cmp r12, rcx
je 0x46db3d
call sym.operator_delete_void_
mov rcx, qword [rbx + 0x68]
cmp rbp, rcx
je 0x46db4b
call sym.operator_delete_void_
mov rcx, qword [rbx + 0x50]
test rcx, rcx
je 0x46db59
call sym.operator_delete_void_
mov rcx, rsi
call sym._Unwind_Resume
mov rsi, rax
jmp 0x46db2c
mov rdi, qword [rcx]
call sym.operator_delete_void_
mov rcx, rdi
jmp 0x46dae5
call sym.operator_delete_void_
jmp 0x46db2c