Function at 0x140199430
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0x110
lea rbp, [rsp + 0x20]
mov qword [rbp + 0x120], rbx
mov qword [rbp + 0x128], rsi
mov qword [rbp + 0x130], rdi
movaps xmmword [rbp + 0xe0], xmm6
movaps xmmword [rbp + 0xd0], xmm7
movaps xmmword [rbp + 0xc0], xmm8
movaps xmmword [rbp + 0xb0], xmm9
movaps xmmword [rbp + 0xa0], xmm10
movaps xmmword [rbp + 0x90], xmm11
movaps xmmword [rbp + 0x80], xmm12
movaps xmmword [rbp + 0x70], xmm13
mov rax, qword [0x1402de400]
xor rax, rbp
mov qword [rbp + 0x68], rax
movss xmm0, dword [0x1402a88f0]
movss xmm11, dword [0x14027e798]
movsxd rax, edx
mov qword [rbp + 0x50], r9
mov esi, r8d
mov dword [rbp + 0x18], r8d
mov dword [rbp + 4], eax
mov r13, rcx
mov qword [rbp + 0x30], rcx
subss xmm0, dword [rbp + 0x160]
comiss xmm0, xmm11
jb 0x1401994df
movaps xmm11, xmm0
mulss xmm11, dword [0x14027e794]
lea r8, [rax*4]
mov r12, rax
lea rax, [r8 + 0xf]
mov qword [rbp + 0x60], r8
movabs r14, 0xffffffffffffff0
cmp rax, r8
ja 0x14019950d
mov rax, r14
and rax, 0xfffffffffffffff0
call fcn.14022fc50
mov rcx, qword [rcx + 0x20]
mov r9d, dword [rbp + 0x158]
movsx edx, word [rcx + r12*2]
sub rsp, rax
movsx eax, word [rcx + r12*2 - 2]
sub edx, eax
mov ecx, r9d
lea rdi, [rsp + 0x20]
shl edx, cl
mov qword [rbp + 0x10], rdi
movsxd rax, edx
shl rax, 2
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x140199552
mov rcx, r14
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.14022fc50
sub rsp, rcx
mov rcx, qword [r13 + 0x20]
movsx eax, word [rcx + r12*2 - 2]
movsx edx, word [rcx + r12*2]
mov ecx, r9d
sub edx, eax
lea rbx, [rsp + 0x20]
shl edx, cl
movsxd rax, edx
shl rax, 2
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x14019958f
mov rcx, r14
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.14022fc50
sub rsp, rcx
lea rax, [rsp + 0x20]
mov qword [rbp + 0x40], rax
lea rax, [r8 + 0xf]
cmp rax, r8
ja 0x1401995b3
mov rax, r14
and rax, 0xfffffffffffffff0
call fcn.14022fc50
sub rsp, rax
lea rax, [rsp + 0x20]
mov qword [rbp + 0x38], rax
lea rax, [r8 + 0xf]
cmp rax, r8
ja 0x1401995d4
mov rax, r14
and rax, 0xfffffffffffffff0
call fcn.14022fc50
xor r15d, r15d
sub rsp, rax
lea rax, [rsp + 0x20]
mov r8, r15
mov qword [rbp + 0x20], r15
mov qword [rbp + 0x48], rax
test r12, r12
jle 0x1401998c6
mov r9d, dword [rbp + 0x150]
mov r10d, dword [rbp + 0x158]
movss xmm12, dword [0x1402a88d4]
movss xmm8, dword [0x14027e5a0]
xorps xmm10, xmm10
mov eax, r15d
imul r9d, dword [rbp + 0x168]
test esi, esi
mov dword [rbp + 0x150], r9d
cmovne eax, r10d
movd xmm13, eax
cvtdq2ps xmm13, xmm13
mulss xmm13, xmm11
addss xmm13, xmm12
nop dword [rax + rax]
mov rax, qword [r13 + 0x20]
mov ecx, r10d
movaps xmm9, xmm10
movsx edx, word [rax + r8*2 + 2]
movsx eax, word [rax + r8*2]
movaps xmm6, xmm10
sub edx, eax
mov eax, r15d
mov r14d, r15d
mov r12d, edx
shl r12d, cl
cmp edx, 1
sete al
movsxd r13, r12d
mov dword [rbp + 8], r12d
mov dword [rbp], eax
mov rax, qword [rbp + 0x30]
lea rdi, [r13*4]
mov rax, qword [rax + 0x20]
movsx eax, word [rax + r8*2]
mov r8, rdi
shl eax, cl
mov rcx, qword [rbp + 0x148]
add eax, r9d
cdqe
lea rdx, [rcx + rax*4]
mov rcx, rbx
call fcn.1401e3ed0
cmp r13, 2
mov rax, r15
movaps xmm5, xmm10
jl 0x1401996f5
lea rcx, [r13 - 1]
nop dword [rax + rax]
movss xmm0, dword [rbx + rax*4]
movss xmm1, dword [rbx + rax*4 + 4]
add rax, 2
cmp rax, rcx
andps xmm0, xmm8
andps xmm1, xmm8
addss xmm9, xmm0
addss xmm6, xmm1
jl 0x1401996d0
cmp rax, r13
jge 0x140199703
movss xmm5, dword [rbx + rax*4]
andps xmm5, xmm8
addss xmm9, xmm6
addss xmm9, xmm5
mulss xmm9, xmm13
test esi, esi
je 0x140199778
cmp dword [rbp], r14d
jne 0x140199778
mov r8, rdi
mov rdi, qword [rbp + 0x40]
mov rdx, rbx
mov rcx, rdi
call fcn.1401e3ed0
mov r9d, dword [rbp + 0x158]
mov r8d, 1
mov ecx, r9d
mov edx, r12d
shl r8d, cl
sar edx, cl
mov rcx, rdi
call fcn.1401ac5b0
mov r10d, dword [rbp + 0x158]
mov edx, r12d
movaps xmm3, xmm11
lea r8d, [r10 + 1]
mov rcx, rdi
call fcn.1401993a0
comiss xmm0, xmm9
jae 0x14019977f
movaps xmm9, xmm0
or r14d, 0xffffffff
jmp 0x14019977f
mov r10d, dword [rbp + 0x158]
movsxd rax, dword [rbp]
mov edi, r15d
lea r12d, [r10 - 1]
mov qword [rbp + 0x28], rax
nop
test esi, esi
jne 0x1401997a2
test rax, rax
jne 0x1401997a2
mov edx, 1
mov eax, edx
jmp 0x1401997aa
mov eax, r15d
mov edx, 1
add eax, r10d
cmp edi, eax
jge 0x140199865
test esi, esi
mov esi, r12d
jne 0x1401997bf
lea esi, [rdi + 1]
mov r8d, edx
mov edx, dword [rbp + 8]
mov ecx, edi
sar edx, cl
shl r8d, cl
mov rcx, rbx
movaps xmm6, xmm10
movaps xmm7, xmm10
call fcn.1401ac5b0
cmp r13, 2
mov rax, r15
movaps xmm5, xmm10
jl 0x140199814
lea rcx, [r13 - 1]
nop dword [rax]
movss xmm0, dword [rbx + rax*4]
movss xmm1, dword [rbx + rax*4 + 4]
add rax, 2
cmp rax, rcx
andps xmm0, xmm8
andps xmm1, xmm8
addss xmm6, xmm0
addss xmm7, xmm1
jl 0x1401997f0
cmp rax, r13
jge 0x140199822
movss xmm5, dword [rbx + rax*4]
andps xmm5, xmm8
movd xmm0, esi
addss xmm6, xmm7
addss xmm6, xmm5
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm11
addss xmm0, xmm12
mulss xmm0, xmm6
comiss xmm0, xmm9
jae 0x14019984d
movaps xmm9, xmm0
lea r14d, [rdi + 1]
mov esi, dword [rbp + 0x18]
mov rax, qword [rbp + 0x28]
mov r10d, dword [rbp + 0x158]
inc edi
dec r12d
jmp 0x140199790
mov r8, qword [rbp + 0x20]
mov rdi, qword [rbp + 0x10]
test esi, esi
je 0x14019987b
lea eax, [r14 + r14]
mov dword [rdi + r8*4], eax
jmp 0x140199885
neg r14d
add r14d, r14d
mov dword [rdi + r8*4], r14d
cmp dword [rbp], r15d
je 0x1401998a5
mov ecx, dword [rdi + r8*4]
test ecx, ecx
je 0x14019989e
mov eax, r10d
neg eax
add eax, eax
cmp ecx, eax
jne 0x1401998a5
lea eax, [rcx - 1]
mov dword [rdi + r8*4], eax
movsxd rcx, dword [rbp + 4]
mov r13, qword [rbp + 0x30]
mov r9d, dword [rbp + 0x150]
inc r8
cmp r8, rcx
mov qword [rbp + 0x20], r8
jl 0x140199650
jmp 0x1401998c9
mov r10d, r9d
mov r12d, dword [rbp + 0x140]
mov edi, dword [rdi]
mov rbx, r15
test esi, esi
mov rax, rbx
movsxd rcx, r10d
mov r9d, r12d
mov dword [rbp], r15d
mov r15, qword [rbp + 0x170]
mov r8d, dword [r15]
cmovne r9d, eax
movsxd rax, esi
lea rax, [rax + rcx*2]
lea rcx, [0x14027f0e0]
mov qword [rbp + 0x28], rbx
mov dword [rbp + 0x30], edi
mov dword [rbp + 0x20], r8d
mov dword [rbp + 8], r9d
lea rsi, [rcx + rax*4 + 1]
mov qword [rbp + 0x58], rax
nop dword [rax + rax]
movsx r13d, byte [rsi - 1]
movsx r14d, byte [rsi]
mov eax, edi
add r13d, r13d
add r14d, r14d
sub eax, r13d
cdq
mov r11d, eax
mov eax, edi
xor r11d, edx
sub eax, r14d
sub r11d, edx
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
movsxd rdx, dword [rbp + 4]
imul r11d, r8d
imul ecx, r8d
add ecx, r9d
cmp rdx, 1
jle 0x1401999e8
mov rdi, qword [rbp + 0x10]
add r15, 4
lea rbx, [rdx - 1]
sub rdi, qword [rbp + 0x170]
nop word [rax + rax]
mov r8d, dword [r15]
lea r9d, [rcx + r12]
lea eax, [r11 + r12]
cmp r11d, r9d
cmovl r9d, r11d
cmp eax, ecx
cmovl ecx, eax
add r15, 4
mov r10d, ecx
mov ecx, dword [rdi + r15 - 4]
mov eax, ecx
sub ecx, r14d
sub eax, r13d
cdq
mov r11d, eax
mov eax, ecx
xor r11d, edx
sub r11d, edx
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
imul r11d, r8d
add r11d, r9d
imul ecx, r8d
add ecx, r10d
sub rbx, 1
jne 0x140199980
mov rbx, qword [rbp + 0x28]
mov r15, qword [rbp + 0x170]
mov edi, dword [rbp + 0x30]
mov r8d, dword [rbp + 0x20]
mov r9d, dword [rbp + 8]
cmp r11d, ecx
cmovl ecx, r11d
inc rbx
add rsi, 2
cmp rbx, 2
mov dword [rbp + rbx*4 + 0x3c], ecx
mov qword [rbp + 0x28], rbx
jl 0x140199920
mov eax, dword [rbp + 0x40]
mov ebx, dword [rbp]
cmp dword [rbp + 0x44], eax
jge 0x140199a21
cmp dword [rbp + 0x18], ebx
mov eax, 1
cmovne ebx, eax
mov dword [rbp], ebx
mov rsi, qword [rbp + 0x58]
mov r11d, dword [r15]
lea r14, [0x14027f0e0]
mov eax, edi
movsxd r10, ebx
lea r8, [r10 + rsi*2]
movsx ecx, byte [r14 + r8*2]
add ecx, ecx
sub eax, ecx
movsx ecx, byte [r14 + r8*2 + 1]
cdq
add ecx, ecx
mov r9d, eax
sub edi, ecx
movsxd rcx, dword [rbp + 4]
xor r9d, edx
mov eax, edi
sub r9d, edx
cdq
xor eax, edx
sub eax, edx
mov rdx, rcx
imul r9d, r11d
imul eax, r11d
add eax, dword [rbp + 8]
cmp rcx, 1
jle 0x140199b27
mov r8, qword [rbp + 0x48]
mov rdi, qword [rbp + 0x38]
lea rcx, [r10 + rsi*2]
movsx r13d, byte [r14 + rcx*2]
movsx r14d, byte [r14 + rcx*2 + 1]
mov rcx, qword [rbp + 0x10]
sub rcx, r8
add r13d, r13d
add r14d, r14d
sub rdi, r8
lea r10, [r8 + 4]
lea rsi, [rdx - 1]
mov qword [rbp + 0x10], rcx
sub r15, r8
nop
lea ebx, [rax + r12]
mov edx, 1
cmp r9d, ebx
jge 0x140199acb
mov ebx, r9d
mov dword [rdi + r10], 0
jmp 0x140199acf
mov dword [rdi + r10], edx
lea r11d, [r9 + r12]
cmp r11d, eax
jge 0x140199ae1
mov dword [r10], 0
jmp 0x140199ae7
mov r11d, eax
mov dword [r10], edx
mov ecx, dword [rcx + r10]
mov r8d, dword [r15 + r10]
add r10, 4
mov eax, ecx
sub ecx, r14d
sub eax, r13d
cdq
mov r9d, eax
mov eax, ecx
mov rcx, qword [rbp + 0x10]
xor r9d, edx
sub r9d, edx
cdq
xor eax, edx
sub eax, edx
imul r9d, r8d
add r9d, ebx
imul eax, r8d
add eax, r11d
sub rsi, 1
jne 0x140199ab0
mov ebx, dword [rbp]
mov r10, qword [rbp + 0x50]
mov rcx, qword [rbp + 0x60]
cmp r9d, eax
mov eax, 0
setge al
mov dword [rcx + r10 - 4], eax
mov eax, dword [rbp + 4]
add eax, 0xfffffffe
movsxd rdx, eax
js 0x140199b8a
mov rcx, qword [rbp + 0x48]
mov rax, qword [rbp + 0x38]
mov r9, r10
sub r9, rcx
sub rax, rcx
lea r8, [rcx + rdx*4 + 4]
mov qword [rbp + 0x38], rax
cmp dword [r8 + r9], 1
jne 0x140199b78
mov eax, dword [r8]
mov dword [r10 + rdx*4], eax
mov rax, qword [rbp + 0x38]
jmp 0x140199b80
mov ecx, dword [r8 + rax]
mov dword [r10 + rdx*4], ecx
sub r8, 4
sub rdx, 1
jns 0x140199b64
mov eax, ebx
mov rcx, qword [rbp + 0x68]
xor rcx, rbp
call fcn.1401e42a0
mov rbx, qword [rbp + 0x120]
mov rsi, qword [rbp + 0x128]
mov rdi, qword [rbp + 0x130]
movaps xmm6, xmmword [rbp + 0xe0]
movaps xmm7, xmmword [rbp + 0xd0]
movaps xmm8, xmmword [rbp + 0xc0]
movaps xmm9, xmmword [rbp + 0xb0]
movaps xmm10, xmmword [rbp + 0xa0]
movaps xmm11, xmmword [rbp + 0x90]
movaps xmm12, xmmword [rbp + 0x80]
movaps xmm13, xmmword [rbp + 0x70]
lea rsp, [rbp + 0xf0]
pop r15
pop r14
pop r13
pop r12
pop rbp
ret