Function at 0x18003e0f0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x148
movaps xmmword [rsp + 0x130], xmm15
movaps xmmword [rsp + 0x120], xmm14
movaps xmmword [rsp + 0x110], xmm13
movaps xmmword [rsp + 0x100], xmm12
movaps xmmword [rsp + 0xf0], xmm11
movaps xmmword [rsp + 0xe0], xmm10
movaps xmmword [rsp + 0xd0], xmm9
movaps xmmword [rsp + 0xc0], xmm8
movaps xmmword [rsp + 0xb0], xmm7
movaps xmmword [rsp + 0xa0], xmm6
mov rbx, r8
mov rsi, rcx
mov rcx, r8
shr rcx, 1
cmp rcx, r8
jae 0x18003eb88
mov rdi, r9
mov r14, rdx
mov r15, qword [rsp + 0x1b0]
movss xmm15, dword [rdx + rcx*4]
lea r12, [rdx + rbx*4]
movss xmm0, dword [0x180085670]
mulss xmm0, xmm15
movss dword [rsp + 0x30], xmm0
xorps xmm11, xmm11
mov eax, 1
movss xmm12, dword [0x180085670]
mov r13, rdx
cmp eax, 1
jne 0x18003e4f1
movss xmm10, dword [r13]
movss xmm0, dword [rsp + 0x30]
ucomiss xmm0, xmm11
jae 0x18003e310
movaps xmm0, xmm10
mulss xmm0, xmm12
ucomiss xmm0, xmm11
jae 0x18003e340
movaps xmm13, xmm10
unpcklps xmm13, xmm11
movaps xmm6, xmm11
movaps xmm7, xmm10
movaps xmm14, xmmword [0x180085680]
movss xmm9, dword [0x180083be0]
nop word cs:[rax + rax]
movaps xmm8, xmm10
divss xmm7, xmm6
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movaps xmm1, xmmword [0x180083770]
shufps xmm0, xmm0, 0
mulps xmm0, xmm14
subps xmm9, xmm0
movaps xmm0, xmm13
mulps xmm0, xmm9
movaps xmm7, xmm0
shufps xmm7, xmm0, 0x55
addss xmm7, xmm0
movaps xmm10, xmm7
andps xmm10, xmm1
mulss xmm8, dword [0x180085690]
xor eax, eax
ucomiss xmm8, xmm10
jae 0x18003e340
andps xmm0, xmm1
movaps xmm8, xmm15
cmpunordss xmm8, xmm15
movaps xmm1, xmm8
andps xmm1, xmm0
maxss xmm0, xmm15
movaps xmm2, xmm8
andnps xmm2, xmm0
orps xmm2, xmm1
mulss xmm2, xmm12
mov bpl, 1
ucomiss xmm2, xmm10
jae 0x18003e318
divss xmm6, xmm7
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movaps xmm2, xmmword [0x180083770]
shufps xmm0, xmm0, 0
mulps xmm0, xmm9
subps xmm14, xmm0
movaps xmm6, xmm13
mulps xmm6, xmm14
movaps xmm1, xmm6
shufps xmm1, xmm6, 0x55
addss xmm6, xmm1
movaps xmm0, xmm6
andps xmm0, xmm2
mulss xmm11, dword [0x180085690]
xor eax, eax
ucomiss xmm11, xmm0
jae 0x18003e32f
andps xmm1, xmm2
movaps xmm2, xmm8
andps xmm2, xmm1
maxss xmm1, xmm15
andnps xmm8, xmm1
orps xmm8, xmm2
mulss xmm8, xmm12
ucomiss xmm8, xmm0
movaps xmm11, xmm0
jb 0x18003e210
jmp 0x18003e320
xor ebp, ebp
movaps xmm11, xmm10
jmp 0x18003e342
nop dword [rax + rax]
add r13, 4
cmp r13, r12
jne 0x18003e1b0
jmp 0x18003e354
movaps xmm11, xmm10
nop word cs:[rax + rax]
xor ebp, ebp
mov eax, 1
add r13, 4
cmp r13, r12
jne 0x18003e1b0
xor eax, eax
test bpl, bpl
jne 0x18003e4f3
movss xmm12, dword [0x180083be0]
movaps xmm7, xmm12
divss xmm7, xmm11
lea r12, [rbx*4]
movss xmm9, dword [0x180085694]
movss xmm8, dword [0x180084af8]
xor r13d, r13d
movaps xmm6, xmm9
nop word cs:[rax + rax]
movss xmm10, dword [r14 + r13]
movaps xmm0, xmm7
mulss xmm0, xmm10
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movaps xmm1, xmm11
mulss xmm1, xmm0
subss xmm1, xmm10
divss xmm1, xmm0
movaps xmm0, xmm1
minss xmm0, xmm8
cmpunordss xmm8, xmm8
movaps xmm2, xmm8
andps xmm2, xmm1
andnps xmm8, xmm0
orps xmm8, xmm2
cmpunordss xmm6, xmm6
movaps xmm0, xmm6
andps xmm0, xmm1
maxss xmm1, xmm9
andnps xmm6, xmm1
orps xmm6, xmm0
add r13, 4
movaps xmm9, xmm6
cmp r12, r13
jne 0x18003e3a0
addss xmm6, xmm8
mulss xmm6, dword [0x180085698]
addss xmm11, xmm6
movaps xmm6, xmm12
divss xmm6, xmm11
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movaps xmm7, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_log10
call sub.api_ms_win_crt_math_l1_1_0.dll_round
movaps xmm1, xmm0
movsd xmm0, qword [0x1800856a0]
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movaps xmm1, xmm6
subss xmm1, xmm7
andps xmm1, xmmword [0x180083770]
movss xmm2, dword [0x1800856a8]
ucomiss xmm2, xmm1
jbe 0x18003e474
movaps xmm11, xmm12
divss xmm11, xmm7
movaps xmm6, xmm7
jmp 0x18003e4a3
cvtsd2ss xmm0, xmm0
movaps xmm1, xmm6
subss xmm1, xmm0
andps xmm1, xmmword [0x180083770]
divss xmm1, xmm6
movss xmm2, dword [0x1800856ac]
ucomiss xmm2, xmm1
jbe 0x18003e4a3
movaps xmm11, xmm12
divss xmm11, xmm0
movaps xmm6, xmm0
movss dword [rsp + 0x28], xmm6
lea r8, [rsp + 0x28]
mov rcx, r14
mov rdx, rbx
call fcn.180044220
test al, al
je 0x18003e4f1
test r15, r15
je 0x18003e4f1
movss xmm7, dword [rsp + 0x28]
divss xmm12, xmm7
lea rax, [r15 - 1]
movabs r14, 0x3fffffffffffffff
and r14, rax
cmp r14, 3
jae 0x18003e561
xor ebp, ebp
xor r13d, r13d
mov rbx, rdi
jmp 0x18003eac7
xor eax, eax
mov dword [rsi], eax
movaps xmm6, xmmword [rsp + 0xa0]
movaps xmm7, xmmword [rsp + 0xb0]
movaps xmm8, xmmword [rsp + 0xc0]
movaps xmm9, xmmword [rsp + 0xd0]
movaps xmm10, xmmword [rsp + 0xe0]
movaps xmm11, xmmword [rsp + 0xf0]
movaps xmm12, xmmword [rsp + 0x100]
movaps xmm13, xmmword [rsp + 0x110]
movaps xmm14, xmmword [rsp + 0x120]
movaps xmm15, xmmword [rsp + 0x130]
add rsp, 0x148
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movss dword [rsp + 0x2c], xmm6
inc r14
mov r12, r14
and r12, 0xfffffffffffffffc
lea rbx, [rdi + r12*4]
movaps xmmword [rsp + 0x40], xmm7
shufps xmm7, xmm7, 0
movaps xmmword [rsp + 0x70], xmm7
movaps xmmword [rsp + 0x50], xmm12
shufps xmm12, xmm12, 0
movaps xmmword [rsp + 0x60], xmm12
xor r13d, r13d
xorps xmm1, xmm1
xorps xmm2, xmm2
xorps xmm6, xmm6
xorps xmm15, xmm15
nop word cs:[rax + rax]
movaps xmmword [rsp + 0x80], xmm6
movaps xmmword [rsp + 0x90], xmm2
movaps xmmword [rsp + 0x30], xmm1
movq xmm8, qword [rdi + r13*4]
movq xmm9, qword [rdi + r13*4 + 8]
movdqa xmm10, xmm8
psrad xmm10, 0x1f
movdqa xmm14, xmmword [0x1800856b0]
por xmm10, xmm14
movdqa xmm6, xmm9
psrad xmm6, 0x1f
por xmm6, xmm14
pxor xmm10, xmm8
pxor xmm6, xmm9
movaps xmm0, xmmword [rsp + 0x70]
mulps xmm8, xmm0
mulps xmm9, xmm0
movaps xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movaps xmm7, xmm0
shufps xmm8, xmm8, 0x55
movaps xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
unpcklps xmm7, xmm0
movaps xmm0, xmm9
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movaps xmm8, xmm0
shufps xmm9, xmm9, 0x55
movaps xmm0, xmm9
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movaps xmm2, xmmword [rsp + 0x60]
movaps xmm1, xmm2
unpcklps xmm8, xmm0
mulps xmm1, xmm7
movaps xmm0, xmm2
mulps xmm0, xmm8
movaps xmm3, xmm1
psrad xmm3, 0x1f
movaps xmm2, xmm0
psrad xmm2, 0x1f
por xmm3, xmm14
por xmm2, xmm14
pxor xmm3, xmm1
pxor xmm2, xmm0
movdqa xmm1, xmm3
psubd xmm1, xmm10
movdqa xmm0, xmm10
psubd xmm10, xmm3
movdqa xmm9, xmmword [0x1800837a0]
pxor xmm3, xmm9
pxor xmm0, xmm9
pcmpgtd xmm0, xmm3
pand xmm10, xmm0
pandn xmm0, xmm1
movdqa xmm3, xmm2
movdqa xmm1, xmm6
psubd xmm3, xmm6
psubd xmm6, xmm2
pxor xmm1, xmm9
pxor xmm2, xmm9
pcmpgtd xmm1, xmm2
pand xmm6, xmm1
pandn xmm1, xmm3
por xmm0, xmm10
por xmm1, xmm6
paddd xmm0, xmm0
paddd xmm1, xmm1
movdqa xmm2, xmm0
psrld xmm2, 1
por xmm2, xmm0
movdqa xmm0, xmm2
psrld xmm0, 2
por xmm0, xmm2
movdqa xmm2, xmm0
psrld xmm2, 4
por xmm2, xmm0
movdqa xmm3, xmm2
psrld xmm3, 8
por xmm3, xmm2
movdqa xmm0, xmm3
psrld xmm0, 0x10
por xmm0, xmm3
pcmpeqd xmm5, xmm5
pxor xmm0, xmm5
movdqa xmm2, xmm0
psrlw xmm2, 1
movdqa xmm3, xmm1
psrld xmm3, 1
movdqa xmm6, xmmword [str.UUUUUUUUUUUUUUUU3333333333333333]
pand xmm2, xmm6
por xmm3, xmm1
movdqa xmm1, xmm3
psrld xmm1, 2
psubb xmm0, xmm2
por xmm1, xmm3
movdqa xmm2, xmm1
psrld xmm2, 4
movdqa xmm3, xmm0
por xmm2, xmm1
movdqa xmm4, xmm2
psrld xmm4, 8
psrlw xmm0, 2
por xmm4, xmm2
movdqa xmm1, xmm4
psrld xmm1, 0x10
movdqa xmm10, xmmword [0x1800856d0]
pand xmm3, xmm10
por xmm1, xmm4
pxor xmm1, xmm5
movdqa xmm2, xmm1
pand xmm0, xmm10
psrlw xmm2, 1
pand xmm2, xmm6
psubb xmm1, xmm2
paddb xmm0, xmm3
movdqa xmm3, xmm1
pand xmm3, xmm10
psrlw xmm1, 2
pand xmm1, xmm10
movaps xmm2, xmmword [0x180083770]
andps xmm7, xmm2
andps xmm8, xmm2
psrld xmm7, 0x17
movdqa xmm2, xmm0
psrld xmm8, 0x17
movdqa xmm5, xmm7
movdqa xmm6, xmmword [0x180085700]
pcmpgtd xmm5, xmm6
paddb xmm1, xmm3
pand xmm7, xmm5
pandn xmm5, xmm6
por xmm5, xmm7
psrlw xmm2, 4
movdqa xmm3, xmm8
pcmpgtd xmm3, xmm6
pand xmm8, xmm3
movdqa xmm4, xmm1
pandn xmm3, xmm6
por xmm3, xmm8
movdqa xmm6, xmmword [0x180085710]
paddd xmm5, xmm6
paddb xmm2, xmm0
paddd xmm3, xmm6
pxor xmm8, xmm8
punpckldq xmm5, xmm8
punpckldq xmm3, xmm8
psrlw xmm4, 4
movdqa xmm13, xmmword [0x180085750]
movdqa xmm6, xmm13
psubq xmm6, xmm5
movdqa xmm7, xmmword [0x180085720]
pxor xmm5, xmm7
paddb xmm4, xmm1
pshufd xmm1, xmm5, 0xf5
movdqa xmm14, xmmword [0x180085730]
movdqa xmm0, xmm14
pcmpgtd xmm0, xmm5
pcmpeqd xmm1, xmm8
pshufd xmm5, xmm0, 0xa0
pand xmm5, xmm1
movdqa xmm12, xmmword [0x180085740]
pand xmm0, xmm12
movdqa xmm10, xmmword [0x1800856e0]
pand xmm2, xmm10
por xmm0, xmm5
pand xmm0, xmm6
punpckldq xmm2, xmm8
psubq xmm13, xmm3
pxor xmm3, xmm7
pshufd xmm6, xmm3, 0xf5
psadbw xmm2, xmm8
pcmpeqd xmm6, xmm8
movdqa xmm1, xmm14
pcmpgtd xmm1, xmm3
packuswb xmm2, xmm2
pshufd xmm7, xmm1, 0xa0
pand xmm7, xmm6
movdqa xmm6, xmmword [0x1800856f0]
movdqa xmm3, xmm6
psubd xmm3, xmm2
pand xmm4, xmm10
punpckldq xmm4, xmm8
psadbw xmm4, xmm8
packuswb xmm4, xmm4
pand xmm1, xmm12
por xmm1, xmm7
movdqa xmm2, xmm6
movdqa xmm6, xmmword [rsp + 0x80]
psubd xmm2, xmm4
pand xmm1, xmm13
movdqa xmm4, xmm0
paddq xmm6, xmm0
punpckldq xmm3, xmm8
psubq xmm0, xmm3
pxor xmm4, xmm9
pxor xmm3, xmm9
movdqa xmm5, xmm4
pcmpgtd xmm5, xmm3
pcmpeqd xmm4, xmm3
pshufd xmm3, xmm5, 0xa0
pshufd xmm4, xmm4, 0xf5
pand xmm4, xmm3
punpckldq xmm2, xmm8
pshufd xmm3, xmm5, 0xf5
por xmm3, xmm4
movdqa xmm4, xmm1
psubq xmm4, xmm2
pand xmm3, xmm0
paddq xmm15, xmm1
pxor xmm1, xmm9
movdqa xmm0, xmm1
pxor xmm2, xmm9
pcmpgtd xmm0, xmm2
pcmpeqd xmm1, xmm2
pshufd xmm2, xmm0, 0xa0
pshufd xmm1, xmm1, 0xf5
pand xmm1, xmm2
movdqa xmm2, xmmword [rsp + 0x90]
pshufd xmm0, xmm0, 0xf5
por xmm0, xmm1
movdqa xmm1, xmmword [rsp + 0x30]
paddq xmm1, xmm3
pand xmm0, xmm4
paddq xmm2, xmm0
add r13, 4
cmp r12, r13
jne 0x18003e5b0
paddq xmm15, xmm6
pshufd xmm0, xmm15, 0xee
paddq xmm0, xmm15
movq r13, xmm0
paddq xmm2, xmm1
pshufd xmm0, xmm2, 0xee
paddq xmm0, xmm2
movq rbp, xmm0
cmp r14, r12
movaps xmm12, xmmword [rsp + 0x50]
movss xmm6, dword [rsp + 0x2c]
movaps xmm7, xmmword [rsp + 0x40]
jne 0x18003eac7
movq xmm3, rbp
movdqa xmm0, xmmword [0x180083740]
punpckldq xmm3, xmm0
movapd xmm1, xmmword [0x180083750]
subpd xmm3, xmm1
movq xmm2, r13
punpckldq xmm2, xmm0
subpd xmm2, xmm1
movapd xmm4, xmm2
unpckhpd xmm4, xmm2
addsd xmm4, xmm2
movapd xmm2, xmm3
unpckhpd xmm2, xmm3
mulsd xmm4, qword [0x180085760]
addsd xmm2, xmm3
xor eax, eax
ucomisd xmm2, xmm4
jbe 0x18003e4f3
mov rcx, qword [rsp + 0x1b0]
shl rcx, 5
movq xmm3, rcx
punpckldq xmm3, xmm0
subpd xmm3, xmm1
movapd xmm0, xmm3
unpckhpd xmm0, xmm3
addsd xmm0, xmm3
mulsd xmm0, qword [0x180085768]
ucomisd xmm2, xmm0
jbe 0x18003e4f3
movss dword [rsi + 4], xmm11
movss dword [rsi + 8], xmm6
mov eax, 1
jmp 0x18003e4f3
mov rax, qword [rsp + 0x1b0]
lea rdi, [rdi + rax*4]
mov r14d, 0x7e
xor r12d, r12d
jmp 0x18003eb23
add rbx, 4
mov ecx, 0x20
sub ecx, eax
movd eax, xmm0
and eax, 0x7f800000
shr eax, 0x17
cmp eax, 0x7f
cmovl eax, r14d
add eax, 0xffffff82
mov edx, 0x17
sub rdx, rax
cmovb rdx, r12
add r13, rdx
sub rdx, rcx
cmovb rdx, r12
add rbp, rdx
cmp rbx, rdi
je 0x18003ea25
movd xmm0, dword [rbx]
movd eax, xmm0
mov r15d, eax
sar r15d, 0x1f
or r15d, 0x80000000
xor r15d, eax
mulss xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movaps xmm1, xmm12
mulss xmm1, xmm0
movd eax, xmm1
mov ecx, eax
sar ecx, 0x1f
or ecx, 0x80000000
xor ecx, eax
mov eax, ecx
mov edx, r15d
sub rdx, rax
mov rcx, rdx
neg rcx
cmovs rcx, rdx
mov eax, 0x20
add ecx, ecx
je 0x18003eae0
bsr eax, ecx
xor eax, 0x1f
jmp 0x18003eae0
lea r8, str.D:_apcodecpcodecpco_src_float_mult_utils.rs
mov rdx, rbx
call fcn.180082960
ud2