Function at 0x1401b0c20
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push r13
push r14
sub rsp, 0xd8
mov eax, dword [rcx]
movsxd r14, r9d
mov rdi, r8
mov dword [rsp + 0x118], eax
mov rax, qword [rcx + 0x20]
mov r13, rdx
mov rsi, rcx
mov qword [rsp + 0x68], rax
cmp r14d, 1
jne 0x1401b0c7a
mov rax, qword [rsp + 0x140]
mov r9d, dword [rsp + 0x120]
mov qword [rsp + 0x20], rax
call fcn.1401afec0
add rsp, 0xd8
pop r14
pop r13
pop rdi
pop rsi
ret
mov eax, dword [rsp + 0x150]
mov qword [rsp + 0x108], rbx
mov qword [rsp + 0xd0], rbp
mov qword [rsp + 0xc8], r12
lea rcx, [rsp + 0x150]
mov qword [rsp + 0xc0], r15
movaps xmmword [rsp + 0xb0], xmm6
movaps xmmword [rsp + 0xa0], xmm7
mov r15d, dword [rsp + 0x128]
mov qword [rsp + 0x50], rcx
mov ecx, dword [rsp + 0x138]
mov dword [rsp + 0x100], eax
mov r9, r8
lea rax, [rsp + 0x120]
mov r8, rdx
mov r12d, 1
lea rdx, [rsp + 0x80]
mov dword [rsp + 0x48], r12d
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x38], r15d
mov dword [rsp + 0x30], r15d
mov qword [rsp + 0x28], rax
mov rcx, rsi
mov dword [rsp + 0x20], r14d
call fcn.1401af620
movss xmm0, dword [0x1402811ec]
movd xmm7, dword [rsp + 0x84]
movd xmm6, dword [rsp + 0x88]
cvtdq2ps xmm7, xmm7
cvtdq2ps xmm6, xmm6
mulss xmm7, xmm0
mulss xmm6, xmm0
cmp r14d, 2
jne 0x1401b0f14
mov eax, dword [rsp + 0x90]
xor ebx, ebx
mov ebp, ebx
mov r8d, ebx
test eax, eax
je 0x1401b0d67
mov ecx, 8
cmp eax, 0x4000
cmovne r8d, ecx
mov ecx, dword [rsp + 0x120]
mov edx, ebx
sub ecx, r8d
cmp eax, 0x2000
mov eax, dword [rsp + 0x94]
setg dl
mov dword [rsp + 0x60], ecx
lea ecx, [r8 + rax]
sub dword [rsi + 0x28], ecx
test edx, edx
mov rax, r13
cmovne rax, rdi
test edx, edx
mov rcx, rdi
cmovne rcx, r13
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rcx
test r8d, r8d
je 0x1401b0df9
cmp dword [rsp + 0x118], ebx
je 0x1401b0dea
movss xmm1, dword [rcx + 4]
movss xmm0, dword [rax + 4]
mulss xmm1, dword [rax]
mulss xmm0, dword [rcx]
subss xmm1, xmm0
comiss xmm1, dword [0x14028d050]
jae 0x1401b0dd9
mov ebp, r12d
mov rcx, qword [rsp + 0x68]
mov r8d, r12d
mov edx, ebp
call fcn.1401a6a10
jmp 0x1401b0df9
mov rcx, qword [rsp + 0x68]
mov edx, r12d
call fcn.1401aafa0
mov ebp, eax
movss xmm0, dword [0x1402ab594]
mov r9d, dword [rsp + 0x60]
lea eax, [rbp + rbp]
mov rbp, qword [rsp + 0x70]
sub r12d, eax
mov eax, dword [rsp + 0x100]
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0x148]
mov r8d, 2
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x140]
mov rdx, rbp
movss dword [rsp + 0x40], xmm0
mov qword [rsp + 0x38], rax
mov eax, dword [rsp + 0x138]
mov rcx, rsi
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r15d
call fcn.1401b07c0
mov ecx, r12d
mov r15d, eax
mov rax, qword [rsp + 0x78]
neg ecx
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [rbp + 4]
movss dword [rax], xmm0
movd xmm0, r12d
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [rbp]
movss dword [rax + 4], xmm0
cmp dword [rsi + 4], ebx
je 0x1401b1111
movaps xmm2, xmm6
movaps xmm0, xmm7
movaps xmm1, xmm7
mulss xmm0, dword [r13]
mulss xmm1, dword [r13 + 4]
movss dword [r13], xmm0
movss dword [r13 + 4], xmm1
mulss xmm2, dword [rdi]
mulss xmm6, dword [rdi + 4]
movss dword [rdi], xmm2
movss dword [rdi + 4], xmm6
movss xmm1, dword [r13]
movaps xmm0, xmm1
subss xmm0, xmm2
movss dword [r13], xmm0
addss xmm1, dword [rdi]
movss dword [rdi], xmm1
movss xmm2, dword [r13 + 4]
movaps xmm0, xmm2
subss xmm0, dword [rdi + 4]
movss dword [r13 + 4], xmm0
addss xmm2, dword [rdi + 4]
movss dword [rdi + 4], xmm2
jmp 0x1401b1111
mov r12d, dword [rsp + 0x120]
mov eax, r12d
sub eax, dword [rsp + 0x8c]
cdq
sub eax, edx
sar eax, 1
cmp r12d, eax
mov ebp, eax
cmovl eax, r12d
xor ebx, ebx
test eax, eax
jns 0x1401b0f3e
mov ebp, ebx
jmp 0x1401b0f45
cmp r12d, ebp
cmovl ebp, r12d
mov eax, dword [rsp + 0x94]
sub r12d, ebp
sub dword [rsi + 0x28], eax
cmp ebp, r12d
mov eax, dword [rsi + 0x28]
mov dword [rsp + 0x118], eax
jl 0x1401b103b
mov eax, dword [rsp + 0x150]
movss xmm0, dword [0x1402ab594]
mov r9d, ebp
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0x148]
mov r8d, r14d
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x140]
mov rdx, r13
movss dword [rsp + 0x40], xmm0
mov qword [rsp + 0x38], rax
mov eax, dword [rsp + 0x138]
mov rcx, rsi
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r15d
call fcn.1401b07c0
mov r15d, eax
mov eax, dword [rsi + 0x28]
sub eax, dword [rsp + 0x118]
add eax, ebp
cmp eax, 0x18
jle 0x1401b0fe8
cmp dword [rsp + 0x90], ebx
je 0x1401b0fe8
lea r12d, [r12 + rax - 0x18]
mov eax, dword [rsp + 0x128]
mov edx, dword [rsp + 0x150]
mov r9d, r12d
mov ecx, eax
mov r8d, r14d
sar edx, cl
mov ecx, dword [rsp + 0x138]
mov dword [rsp + 0x50], edx
mov qword [rsp + 0x48], rbx
mov rdx, rdi
movss dword [rsp + 0x40], xmm6
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x30], ecx
mov rcx, rsi
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], eax
call fcn.1401b07c0
or r15d, eax
jmp 0x1401b1111
mov eax, dword [rsp + 0x150]
mov ecx, r15d
mov r9d, r12d
sar eax, cl
mov r8d, r14d
mov rdx, rdi
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x138]
mov qword [rsp + 0x48], rbx
movss dword [rsp + 0x40], xmm6
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x30], eax
mov rcx, rsi
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], r15d
call fcn.1401b07c0
mov r15d, eax
mov eax, dword [rsi + 0x28]
sub eax, dword [rsp + 0x118]
add eax, r12d
cmp eax, 0x18
jle 0x1401b10a7
cmp dword [rsp + 0x90], 0x4000
je 0x1401b10a7
lea ebp, [rbp + rax - 0x18]
mov eax, dword [rsp + 0x150]
movss xmm0, dword [0x1402ab594]
mov r9d, ebp
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0x148]
mov r8d, r14d
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x140]
mov rdx, r13
movss dword [rsp + 0x40], xmm0
mov qword [rsp + 0x38], rax
mov eax, dword [rsp + 0x138]
mov rcx, rsi
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x128]
mov dword [rsp + 0x20], eax
call fcn.1401b07c0
or r15d, eax
cmp dword [rsi + 4], 0
movaps xmm6, xmmword [rsp + 0xb0]
mov r12, qword [rsp + 0xc8]
mov rbp, qword [rsp + 0xd0]
je 0x1401b11e9
cmp r14d, 2
je 0x1401b1151
mov eax, dword [rsi + 0x3c]
movaps xmm2, xmm7
mov r9d, r14d
mov rdx, rdi
mov rcx, r13
mov dword [rsp + 0x20], eax
call fcn.1401ae7d0
cmp dword [rsp + 0x80], 0
je 0x1401b11e9
cmp r14, 4
movss xmm2, dword [0x1402abc60]
mov rdx, r14
jl 0x1401b11ce
lea rcx, [r14 - 4]
lea rax, [rdi + 8]
shr rcx, 2
inc rcx
lea rbx, [rcx*4]
nop word [rax + rax]
movss xmm0, dword [rax - 8]
movss xmm1, dword [rax - 4]
add rax, 0x10
sub rcx, 1
xorps xmm0, xmm2
xorps xmm1, xmm2
movss dword [rax - 0x18], xmm0
movss xmm0, dword [rax - 0x10]
movss dword [rax - 0x14], xmm1
movss xmm1, dword [rax - 0xc]
xorps xmm0, xmm2
xorps xmm1, xmm2
movss dword [rax - 0x10], xmm0
movss dword [rax - 0xc], xmm1
jne 0x1401b1190
cmp rbx, rdx
jge 0x1401b11e9
movss xmm0, dword [rdi + rbx*4]
inc rbx
cmp rbx, rdx
xorps xmm0, xmm2
movss dword [rdi + rbx*4 - 4], xmm0
jl 0x1401b11d3
movaps xmm7, xmmword [rsp + 0xa0]
mov rbx, qword [rsp + 0x108]
mov eax, r15d
mov r15, qword [rsp + 0xc0]
add rsp, 0xd8
pop r14
pop r13
pop rdi
pop rsi
ret