Function at 0x18003cf50
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x938
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x8a0], xmm15
movdqa xmmword [rbp + 0x890], xmm14
movdqa xmmword [rbp + 0x880], xmm13
movaps xmmword [rbp + 0x870], xmm12
movaps xmmword [rbp + 0x860], xmm11
movaps xmmword [rbp + 0x850], xmm10
movaps xmmword [rbp + 0x840], xmm9
movaps xmmword [rbp + 0x830], xmm8
movaps xmmword [rbp + 0x820], xmm7
movaps xmmword [rbp + 0x810], xmm6
mov qword [rbp + 0x808], 0xfffffffffffffffe
movaps xmm6, xmm3
mov r12, r8
mov rdi, rdx
mov qword [rbp + 0x7c0], rcx
mov esi, 4
mov r14d, 4
test r8, r8
mov qword [rbp + 0x800], r8
je 0x18003d047
mov rax, r12
shr rax, 0x3d
jne 0x18003d6a9
lea rbx, [r12*4]
test rbx, rbx
je 0x18003d027
movzx eax, byte [0x1800a4291]
mov edx, 4
mov rcx, rbx
call fcn.1800458d0
mov rsi, rax
test rax, rax
je 0x18003d6d7
movzx eax, byte [0x1800a4291]
mov edx, 4
mov rcx, rbx
call fcn.1800458d0
test rax, rax
je 0x18003d6b0
mov r14, rax
movss xmm7, dword [rbp + 0x920]
xor ebx, ebx
lea rcx, [rbp - 0x60]
mov r8d, 0x800
xor edx, edx
call sub.VCRUNTIME140.dll_memset
movaps xmm11, xmm7
shufps xmm11, xmm7, 0
movaps xmm12, xmm6
shufps xmm12, xmm6, 0
movdqa xmm13, xmmword [0x180083770]
movss xmm8, dword [0x180085664]
xorps xmm15, xmm15
movss xmm10, dword [0x180085660]
movdqa xmm14, xmmword [0x1800837a0]
movaps xmm9, xmmword [0x180085640]
mov qword [rbp + 0x7f0], r14
mov r15, r14
mov qword [rbp + 0x7f8], rsi
mov qword [rbp + 0x7e0], rsi
xor eax, eax
mov qword [rbp + 0x7d8], rax
xor eax, eax
mov rcx, r12
xor esi, esi
movaps xmmword [rbp + 0x7a0], xmm12
nop word cs:[rax + rax]
cmp r12, rsi
mov r14, rsi
cmova r14, r12
test rcx, rcx
je 0x18003d59b
mov qword [rbp + 0x7d0], rax
mov qword [rbp + 0x7b0], r15
cmp rcx, 0x200
mov r13d, 0x200
mov qword [rbp + 0x7b8], rcx
cmovb r13, rcx
cmp r13, 4
jae 0x18003d130
xor r15d, r15d
jmp 0x18003d1e0
mov r15d, r13d
and r15d, 0x3fc
lea rbx, [r13*4]
and rbx, 0xfffffffffffffff0
xor r12d, r12d
nop dword [rax]
movups xmm7, xmmword [rdi + r12]
mulps xmm7, xmm11
movaps xmm0, xmm7
shufps xmm0, xmm7, 0xff
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movaps xmm8, xmm0
movaps xmm0, xmm7
unpckhpd xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movaps xmm9, xmm0
unpcklps xmm9, xmm8
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movaps xmm8, xmm0
shufps xmm7, xmm7, 0x55
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
unpcklps xmm8, xmm0
movlhps xmm8, xmm9
movups xmmword [rbp + r12 - 0x60], xmm8
add r12, 0x10
cmp rbx, r12
jne 0x18003d150
cmp r13, r15
mov r12, qword [rbp + 0x800]
movss xmm7, dword [rbp + 0x920]
mov ebx, 0
movss xmm8, dword [0x180085664]
movaps xmm9, xmmword [0x180085640]
je 0x18003d1fe
nop word cs:[rax + rax]
movss xmm0, dword [rdi + r15*4]
mulss xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss dword [rbp + r15*4 - 0x60], xmm0
inc r15
cmp r13, r15
jne 0x18003d1e0
mov rax, qword [rbp + 0x7d8]
lea r11, [r14 + rax]
mov rdx, qword [rbp + 0x7d0]
mov rax, rdx
shl rax, 9
sub r14, rax
lea rax, [r13 - 1]
cmp r14, rax
mov rcx, rax
cmovb rcx, r14
inc rcx
cmp rcx, 5
mov r15d, 0xffffffff
jb 0x18003d3a0
mov r9, rdx
shl r9, 0xb
add r9, qword [rbp + 0x7f8]
lea r8, [rbp - 0x60]
sub r9, r8
mov r8d, 0
cmp r9, 0xf
jbe 0x18003d3a3
mov r9d, ecx
and r9d, 3
mov r8d, 4
cmove r9, r8
sub rcx, r9
cmp r11, rax
mov r8, rax
mov qword [rbp + 0x7e8], r11
cmovb r8, r11
sub r8, r9
inc r8
xor r9d, r9d
movdqa xmm12, xmmword [0x180085650]
mov rdx, qword [rbp + 0x7e0]
nop
movdqu xmm1, xmmword [rbp + r9*4 - 0x60]
movdqa xmm0, xmm1
pand xmm0, xmm13
pshufd xmm2, xmm0, 0xff
cvttss2si r10, xmm2
ucomiss xmm2, xmm15
cmovb r10d, ebx
ucomiss xmm2, xmm10
cmova r10d, r15d
pxor xmm2, xmm2
pcmpgtd xmm2, xmm1
movd xmm1, r10d
pshufd xmm3, xmm0, 0xee
cvttss2si r10, xmm3
ucomiss xmm3, xmm15
cmovb r10d, ebx
ucomiss xmm3, xmm10
cmova r10d, r15d
movd xmm3, r10d
cvttss2si r10, xmm0
ucomiss xmm0, xmm15
cmovb r10d, ebx
ucomiss xmm0, xmm10
cmova r10d, r15d
pshufd xmm4, xmm0, 0x55
cvttss2si r11, xmm4
ucomiss xmm4, xmm15
cmovb r11d, ebx
ucomiss xmm4, xmm10
movd xmm4, r10d
movdqa xmm5, xmm0
cmpnltps xmm0, xmm9
paddd xmm5, xmm12
cmova r11d, r15d
punpckldq xmm3, xmm1
movd xmm1, r11d
punpckldq xmm4, xmm1
punpcklqdq xmm4, xmm3
pand xmm5, xmm0
pandn xmm0, xmm4
por xmm0, xmm5
movdqa xmm1, xmm0
pxor xmm1, xmm13
pxor xmm0, xmm14
pand xmm1, xmm2
pandn xmm2, xmm0
por xmm2, xmm1
movdqu xmmword [rdx + r9*4], xmm2
add r9, 4
cmp r8, r9
jne 0x18003d2a0
mov r8, rcx
movaps xmm12, xmmword [rbp + 0x7a0]
mov r11, qword [rbp + 0x7e8]
jmp 0x18003d3a3
xor r8d, r8d
lea rcx, [rdi + r13*4]
mov qword [rbp + 0x7e8], rcx
mov r10, qword [rbp + 0x7b8]
sub r10, r13
mov r15, qword [rbp + 0x7b0]
nop
movd xmm0, dword [rbp + r8*4 - 0x60]
movdqa xmm1, xmm0
pand xmm1, xmm13
ucomiss xmm8, xmm1
jbe 0x18003d400
cvttss2si rcx, xmm1
ucomiss xmm1, xmm15
cmovb ecx, ebx
ucomiss xmm1, xmm10
mov r9d, 0xffffffff
ja 0x18003d40c
mov r9d, ecx
jmp 0x18003d40c
movd r9d, xmm1
add r9d, 0xb5800000
lea rcx, [rsi + r8]
cmp rcx, r12
jae 0x18003d65e
movmskps ecx, xmm0
shl ecx, 0x1f
sar ecx, 0x1f
add ecx, 0x80000000
xor r9d, ecx
mov rcx, qword [rbp + 0x7e0]
mov dword [rcx + r8*4], r9d
inc r8
cmp r13, r8
jne 0x18003d3c0
cmp r14, rax
cmovae r14, rax
inc r14
cmp r14, 4
ja 0x18003d460
xor r14d, r14d
jmp 0x18003d4e0
mov ecx, r14d
and ecx, 3
mov r8d, 4
cmove rcx, r8
sub r14, rcx
cmp r11, rax
cmovb rax, r11
sub rax, rcx
inc rax
xor ecx, ecx
nop word cs:[rax + rax]
movdqu xmm0, xmmword [rdi + rcx*4]
movdqa xmm1, xmm0
psrad xmm1, 0x1f
por xmm1, xmm14
pxor xmm1, xmm0
movups xmm0, xmmword [rbp + rcx*4 - 0x60]
mulps xmm0, xmm12
movaps xmm2, xmm0
psrad xmm2, 0x1f
por xmm2, xmm14
pxor xmm2, xmm0
psubd xmm1, xmm2
movdqu xmmword [r15 + rcx*4], xmm1
add rcx, 4
cmp rax, rcx
jne 0x18003d490
nop word cs:[rax + rax]
lea rcx, [rsi + r14]
cmp rcx, r12
jae 0x18003d66f
mov eax, dword [rdi + r14*4]
mov ecx, eax
sar ecx, 0x1f
or ecx, 0x80000000
xor ecx, eax
movss xmm0, dword [rbp + r14*4 - 0x60]
mulss xmm0, xmm6
movd eax, xmm0
mov edx, eax
sar edx, 0x1f
or edx, 0x80000000
xor edx, eax
sub ecx, edx
mov dword [r15 + r14*4], ecx
lea rax, [r14 + 1]
mov r14, rax
cmp r13, rax
jne 0x18003d4e0
mov rdx, rsi
add rdx, r13
mov rax, qword [rbp + 0x7f0]
jb 0x18003d698
cmp rdx, r12
ja 0x18003d680
mov r14, r10
lea rcx, [rax + rsi*4]
mov rdx, r13
call fcn.18002ffb0
add rsi, 0x200
mov rax, qword [rbp + 0x7d0]
inc rax
add qword [rbp + 0x7d8], 0xfffffffffffffe00
add qword [rbp + 0x7e0], 0x800
add r15, 0x800
mov rdi, qword [rbp + 0x7e8]
mov r12, qword [rbp + 0x800]
mov rcx, r14
jmp 0x18003d0e0
movzx eax, byte [0x1800a4291]
mov ecx, 0x30
mov edx, 8
call fcn.1800458d0
test rax, rax
je 0x18003d6c6
mov rcx, qword [rbp + 0x7f8]
mov qword [rax], rcx
mov qword [rax + 8], r12
mov qword [rax + 0x10], r12
mov rcx, qword [rbp + 0x7f0]
mov qword [rax + 0x18], rcx
mov qword [rax + 0x20], r12
mov qword [rax + 0x28], r12
mov rcx, qword [rbp + 0x7c0]
mov qword [rcx], rax
mov qword [rcx + 8], 2
mov qword [rcx + 0x10], 2
mov rax, rcx
movaps xmm6, xmmword [rbp + 0x810]
movaps xmm7, xmmword [rbp + 0x820]
movaps xmm8, xmmword [rbp + 0x830]
movaps xmm9, xmmword [rbp + 0x840]
movaps xmm10, xmmword [rbp + 0x850]
movaps xmm11, xmmword [rbp + 0x860]
movaps xmm12, xmmword [rbp + 0x870]
movaps xmm13, xmmword [rbp + 0x880]
movaps xmm14, xmmword [rbp + 0x890]
movaps xmm15, xmmword [rbp + 0x8a0]
add rsp, 0x938
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea r8, str.D:_apcodecpcodecpco_src_float_mult_utils.rs
mov rdx, r12
call fcn.180082960
jmp 0x18003d6d5
lea r8, str.D:_apcodecpcodecpco_src_float_mult_utils.rs
mov rdx, r12
call fcn.180082960
jmp 0x18003d6d5
lea r8, str.D:_apcodecpcodecpco_src_float_mult_utils.rs
mov rcx, rdx
mov rdx, qword [rbp + 0x800]
call fcn.180082d50
jmp 0x18003d6d5
lea r8, str.D:_apcodecpcodecpco_src_float_mult_utils.rs
mov rcx, rsi
call fcn.180082dd0
jmp 0x18003d6d5
call fcn.18006c380
ud2
mov qword [rbp + 0x7c8], rsi
mov ecx, 4
mov rdx, rbx
call fcn.180082720
jmp 0x18003d6d5
mov ecx, 8
mov edx, 0x30
call fcn.180082720
ud2
mov ecx, 4
mov rdx, rbx
call fcn.180082720
ud2