Function at 0x1402df880
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x18], r8d
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x98
mov r12d, r8d
movsxd rbp, edx
mov rdx, qword [rcx + 0x80]
mov r14d, r8d
sar r12d, 1
mov r13d, r8d
sar r13d, 3
xor esi, esi
sar r14d, 2
mov rbx, rcx
mov dword [rsp + 0xe0], r12d
lea edi, [r12*4]
mov dword [rsp + 0xf8], r13d
add edi, 7
and edi, 0xfffffff8
add dword [rcx + 8], edi
test rdx, rdx
je 0x1402df8fe
movsxd rax, dword [rcx + 0x90]
lea ecx, [rax + rdi]
cmp ecx, dword [rbx + 0x94]
jg 0x1402df90c
mov dword [rbx + 0x90], ecx
add rax, rdx
jmp 0x1402df90f
test edi, edi
je 0x1402df90c
movsxd rcx, edi
call fcn.14033c138
jmp 0x1402df90f
mov rax, rsi
mov qword [rbx + rbp*8 + 0x588], rax
mov r15, rbp
add dword [rbx + 8], edi
mov rdx, qword [rbx + 0x80]
mov qword [rsp + 0x20], rbp
test rdx, rdx
je 0x1402df94b
movsxd rax, dword [rbx + 0x90]
lea ecx, [rax + rdi]
cmp ecx, dword [rbx + 0x94]
jg 0x1402df959
mov dword [rbx + 0x90], ecx
add rax, rdx
jmp 0x1402df95c
test edi, edi
je 0x1402df959
movsxd rcx, edi
call fcn.14033c138
jmp 0x1402df95c
mov rax, rsi
mov qword [rbx + rbp*8 + 0x598], rax
lea eax, [r14*4 + 7]
mov r8, qword [rbx + 0x80]
and eax, 0xfffffff8
add dword [rbx + 8], eax
test r8, r8
je 0x1402df99c
movsxd rcx, dword [rbx + 0x90]
lea edx, [rcx + rax]
cmp edx, dword [rbx + 0x94]
jg 0x1402df9ad
mov dword [rbx + 0x90], edx
lea rdi, [r8 + rcx]
jmp 0x1402df9b0
test eax, eax
je 0x1402df9ad
movsxd rcx, eax
call fcn.14033c138
mov rdi, rax
jmp 0x1402df9b0
mov rdi, rsi
movaps xmmword [rsp + 0x80], xmm6
movaps xmmword [rsp + 0x70], xmm7
mov qword [rbx + rbp*8 + 0x5a8], rdi
mov rbp, qword [rbx + rbp*8 + 0x588]
movaps xmmword [rsp + 0x60], xmm8
movaps xmmword [rsp + 0x50], xmm9
test rbp, rbp
je 0x1402dfcf1
mov rax, qword [rbx + r15*8 + 0x598]
test rax, rax
je 0x1402dfcf1
test rdi, rdi
je 0x1402dfcf1
movsd xmm9, qword [0x14039b430]
movsd xmm7, qword [0x1403aeb98]
movsd xmm8, qword [0x140390520]
movaps xmmword [rsp + 0x40], xmm10
test r14d, r14d
jle 0x1402dfb1c
movd xmm10, dword [rsp + 0xf0]
lea r13, [rax + 4]
mov dword [rsp + 0xe8], 1
mov r12d, esi
movaps xmmword [rsp + 0x30], xmm11
sub rbp, rax
movss xmm11, dword [0x14036ef74]
mov r15d, r14d
mov r14d, dword [rsp + 0xe8]
cvtdq2pd xmm10, xmm10
xorps xmm6, xmm6
cvtsi2sd xmm6, r12d
mulsd xmm6, xmm7
divsd xmm6, xmm10
movaps xmm0, xmm6
call fcn.1403383f0
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movaps xmm0, xmm6
movss dword [r13 + rbp - 4], xmm1
call fcn.140338970
xorps xmm6, xmm6
xorps xmm0, xmm9
cvtsi2sd xmm6, r14d
cvtsd2ss xmm0, xmm0
mulsd xmm6, xmm7
movss dword [r13 + rbp], xmm0
divsd xmm6, xmm10
mulsd xmm6, xmm8
movaps xmm0, xmm6
call fcn.1403383f0
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movaps xmm0, xmm6
mulss xmm1, xmm11
movss dword [r13 - 4], xmm1
call fcn.140338970
xorps xmm1, xmm1
lea r13, [r13 + 8]
cvtsd2ss xmm1, xmm0
add r12d, 4
add r14d, 2
mulss xmm1, xmm11
movss dword [r13 - 8], xmm1
sub r15, 1
jne 0x1402dfa63
mov r15, qword [rsp + 0x20]
mov r12d, dword [rsp + 0xe0]
mov r13d, dword [rsp + 0xf8]
movaps xmm11, xmmword [rsp + 0x30]
test r13d, r13d
jle 0x1402dfb86
movd xmm10, dword [rsp + 0xf0]
mov ebp, 2
cvtdq2pd xmm10, xmm10
mov r14d, r13d
nop dword [rax + rax]
movd xmm6, ebp
cvtdq2pd xmm6, xmm6
mulsd xmm6, xmm7
divsd xmm6, xmm10
movaps xmm0, xmm6
call fcn.1403383f0
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movaps xmm0, xmm6
movss dword [rdi], xmm1
call fcn.140338970
xorps xmm0, xmm9
lea rdi, [rdi + 8]
cvtsd2ss xmm0, xmm0
add ebp, 4
movss dword [rdi - 4], xmm0
sub r14, 1
jne 0x1402dfb40
lea edx, [r12*4]
mov rcx, rbx
call fcn.1402e1640
movaps xmm10, xmmword [rsp + 0x40]
mov rbp, rax
mov qword [rbx + r15*8 + 0x5b8], rax
test rax, rax
je 0x1402dfcf1
mov edi, esi
test r12d, r12d
jle 0x1402dfc1d
movsd xmm9, qword [0x1403b3dc8]
movd xmm6, r12d
cvtdq2pd xmm6, xmm6
nop dword [rax]
xorps xmm0, xmm0
cvtsi2sd xmm0, edi
addsd xmm0, xmm8
divsd xmm0, xmm6
mulsd xmm0, xmm8
mulsd xmm0, xmm7
call fcn.140338970
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
mulss xmm1, xmm1
cvtps2pd xmm0, xmm1
mulsd xmm0, xmm9
call fcn.140338970
xorps xmm1, xmm1
inc edi
cvtsd2ss xmm1, xmm0
movss dword [rbp], xmm1
add rbp, 4
cmp edi, r12d
jl 0x1402dfbd0
lea edx, [r13*2]
mov rcx, rbx
call fcn.1402e1640
mov qword [rbx + r15*8 + 0x5c8], rax
mov r9, rax
test rax, rax
je 0x1402dfcf1
mov ecx, dword [rsp + 0xf0]
call fcn.1402dee30
movsxd r11, r13d
test r13d, r13d
jle 0x1402dfcea
mov r10d, 0x24
mov r8, rsi
sub r10d, eax
nop word [rax + rax]
lea eax, [rsi + rsi]
mov ecx, esi
shr ecx, 1
xor ecx, eax
lea eax, [rsi + rsi]
and ecx, 0x55555555
inc esi
xor ecx, eax
mov edx, ecx
shr edx, 2
lea eax, [rcx*4]
xor edx, eax
lea eax, [rcx*4]
and edx, 0x33333333
xor edx, eax
mov ecx, edx
mov eax, edx
shl edx, 4
shr ecx, 4
shl eax, 4
xor ecx, eax
and ecx, 0xf0f0f0f
xor ecx, edx
mov edx, ecx
mov eax, ecx
shr edx, 8
shl ecx, 8
shl eax, 8
xor edx, eax
and edx, 0xff00ff
xor edx, ecx
mov ecx, r10d
rol edx, 0x10
shr edx, cl
shl dx, 2
mov word [r9 + r8*2], dx
inc r8
cmp r8, r11
jl 0x1402dfc70
mov eax, 1
jmp 0x1402dfcfd
mov dword [rbx + 0x9c], 3
xor eax, eax
movaps xmm9, xmmword [rsp + 0x50]
movaps xmm8, xmmword [rsp + 0x60]
movaps xmm7, xmmword [rsp + 0x70]
movaps xmm6, xmmword [rsp + 0x80]
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret