Function at 0x140040c20
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
mov rax, rsp
push rbp
lea rbp, [rax - 0x5f]
sub rsp, 0xf0
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
mov rax, qword [0x14005e040]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov qword [rbp - 0x79], rcx
mov ecx, dword [0x1401687ec]
test ecx, ecx
je 0x140040cbb
sub ecx, 1
je 0x140040cb1
cmp ecx, 1
je 0x140040c78
xor r8d, r8d
lea rdx, [rbp - 0x79]
lea rcx, [rbp - 0x69]
call fcn.1400402a0
movsd xmm0, qword [rax]
movss xmm6, dword [rax + 8]
jmp 0x140040ce5
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_srand]
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
lea rdx, [rbp - 0x79]
lea rcx, [rbp - 0x69]
test al, 1
je 0x140040cc3
mov r8d, 4
call fcn.1400402a0
movsd xmm0, qword [rax]
movss xmm6, dword [rax + 8]
jmp 0x140040ce5
lea rdx, [rbp - 0x79]
lea rcx, [rbp - 0x69]
jmp 0x140040c9b
lea rdx, [rbp - 0x79]
lea rcx, [rbp - 0x69]
mov r8d, 6
call fcn.1400402a0
movsd xmm0, qword [rax]
mov eax, dword [rax + 8]
mov dword [rbp - 0x71], eax
movss xmm6, dword [rbp - 0x71]
addss xmm6, dword [0x140054d98]
mov rdx, qword [0x140168498]
add rdx, qword [0x1401686f0]
movsd qword [rbp - 0x79], xmm0
cmp rdx, 0xffffffffffffffff
je 0x140040d0d
mov r9d, 0x40
lea r8, [rbp - 0x29]
call fcn.14003a9e0
movss xmm3, dword [rbp - 0x75]
movss xmm2, dword [rbp - 0x79]
movss xmm0, dword [rbp - 0x29]
movss xmm1, dword [rbp - 0x11]
movss xmm4, dword [rbp - 0x25]
movss xmm5, dword [rbp - 0x15]
movss xmm7, dword [rbp + 0xb]
mulss xmm0, xmm2
mulss xmm4, xmm3
mulss xmm5, xmm3
addss xmm4, xmm0
mulss xmm1, xmm6
movss xmm0, dword [rbp - 0x21]
mulss xmm0, xmm6
mulss xmm7, xmm3
addss xmm4, xmm0
movss xmm0, dword [rbp - 0x19]
mulss xmm0, xmm2
addss xmm4, dword [rbp - 0x1d]
addss xmm5, xmm0
movss xmm0, dword [rbp + 7]
mulss xmm0, xmm2
addss xmm5, xmm1
movss xmm1, dword [rbp + 0xf]
addss xmm7, xmm0
mulss xmm1, xmm6
movss xmm0, dword [0x140054b78]
addss xmm5, dword [rbp - 0xd]
addss xmm7, xmm1
addss xmm7, dword [rbp + 0x13]
comiss xmm0, xmm7
jae 0x140040fb1
movss xmm6, dword [0x140054be0]
xorps xmm0, xmm0
mov eax, dword [0x1401686ec]
xorps xmm3, xmm3
mov ecx, dword [0x1401684b0]
divss xmm4, xmm7
cvtsi2ss xmm0, eax
addss xmm4, xmm6
divss xmm5, xmm7
mulss xmm4, dword [0x140054bb4]
subss xmm6, xmm5
mulss xmm4, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, ecx
mulss xmm6, dword [0x140054bb4]
mulss xmm6, xmm0
ucomiss xmm6, xmm3
jp 0x140040df8
je 0x140040fb1
cdq
mov qword [rsp + 0x108], rbx
sub eax, edx
movaps xmmword [rsp + 0xc0], xmm8
sar eax, 1
xorps xmm2, xmm2
xorps xmm7, xmm7
movd xmm8, eax
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
ucomiss xmm4, xmm3
movd xmm5, eax
cvtdq2ps xmm5, xmm5
cvtdq2ps xmm8, xmm8
jp 0x140040e32
je 0x140040e7e
comiss xmm4, xmm8
jbe 0x140040e60
movaps xmm2, xmm8
movaps xmm0, xmm8
subss xmm2, xmm4
addss xmm0, xmm8
xorps xmm2, xmmword [0x140055020]
movaps xmm1, xmm2
addss xmm1, xmm8
comiss xmm1, xmm0
jbe 0x140040e60
xorps xmm2, xmm2
comiss xmm8, xmm4
jbe 0x140040e7e
movaps xmm2, xmm4
subss xmm2, xmm8
movaps xmm0, xmm2
addss xmm0, xmm8
comiss xmm3, xmm0
jbe 0x140040e7e
xorps xmm2, xmm2
comiss xmm6, xmm5
movaps xmm8, xmmword [rsp + 0xc0]
jbe 0x140040eb0
movaps xmm7, xmm5
movaps xmm0, xmm5
subss xmm7, xmm6
addss xmm0, xmm5
xorps xmm7, xmmword [0x140055020]
movaps xmm1, xmm7
addss xmm1, xmm5
comiss xmm1, xmm0
jbe 0x140040eb0
xorps xmm7, xmm7
comiss xmm5, xmm6
jbe 0x140040ecb
movaps xmm7, xmm6
subss xmm7, xmm5
movaps xmm1, xmm7
addss xmm1, xmm5
comiss xmm3, xmm1
jbe 0x140040ecb
xorps xmm7, xmm7
divss xmm2, dword [0x140167bc0]
xor eax, eax
mov qword [rbp - 0x45], 1
mov dword [rbp - 0x59], eax
mov dword [rbp - 0x49], eax
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_floorf
divss xmm7, dword [0x140167bc0]
cvttss2si eax, xmm0
movaps xmm0, xmm7
movd xmm1, eax
cvtdq2pd xmm1, xmm1
addsd xmm1, qword [0x140168420]
cvttsd2si eax, xmm1
mov dword [rbp - 0x51], eax
call sub.api_ms_win_crt_math_l1_1_0.dll_floorf
cvttss2si eax, xmm0
xor ecx, ecx
mov edx, 0x1000
mov r8d, edx
lea r9d, [rcx + 0x40]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
subsd xmm1, qword [0x140168700]
cvttsd2si eax, xmm1
mov dword [rbp - 0x4d], eax
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rax
test rax, rax
je 0x140040fa9
movups xmm0, xmmword [0x1401687f0]
mov r8d, 0x28
movups xmmword [rax], xmm0
movsd xmm1, qword [0x140168800]
lea ecx, [r8 - 0x27]
movsd qword [rax + 0x10], xmm1
mov edx, dword [0x140168808]
mov dword [rax + 0x18], edx
movzx edx, word [0x14016880c]
mov word [rax + 0x1c], dx
lea rdx, [rbp - 0x59]
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]
mov rbx, qword [rsp + 0x108]
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.14004cb30
movaps xmm6, xmmword [rsp + 0xe0]
movaps xmm7, xmmword [rsp + 0xd0]
add rsp, 0xf0
pop rbp
ret