Function at 0x14013f720
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xf8
mov qword [rsp + 0x20], r8
mov r14, rdx
mov rsi, rcx
add rcx, 0x18
mov rax, qword [rsi + 0x28]
cmp dword [rsi], 1
mov r15, qword [rsi + 0x50]
mov qword [rsp + 0x28], rcx
jne 0x14013f79d
test rax, rax
js 0x14013f8f5
cvtsi2ss xmm0, rax
test r15, r15
jns 0x14013f913
mov rax, r15
shr rax, 1
mov ecx, r15d
and ecx, 1
or rcx, rax
cvtsi2ss xmm1, rcx
addss xmm1, xmm1
divss xmm0, xmm1
ucomiss xmm0, dword [0x1402058d0]
jb 0x14013f929
mov qword [rsi], 0
jmp 0x14013f7b8
mov rcx, r15
shr rcx, 2
mov rdx, r15
sub rdx, rcx
cmp rax, rdx
jne 0x14013f7ce
test rax, rax
je 0x14013fc11
add r15, r15
mov rcx, rsi
mov rdx, r15
call fcn.140141100
test al, al
jne 0x14014023f
cmp dword [rsi], 2
jne 0x14013f867
movdqu xmm0, xmmword [rsi + 8]
pshufd xmm1, xmm0, 0x44
pxor xmm1, xmmword [str.uespemosarenegylmodnarodsetybdet]
movdqa xmmword [rsp + 0x50], xmm1
pshufd xmm1, xmm0, 0xee
pxor xmm1, xmmword [0x140202e80]
movdqa xmmword [rsp + 0x60], xmm1
movdqa xmmword [rsp + 0x70], xmm0
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x80], xmm0
mov qword [rsp + 0x90], 0
mov rdi, qword [r14]
xor eax, eax
test rdi, rdi
setne al
mov qword [rsp + 0xc0], rax
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0xc0]
mov r8d, 8
call fcn.140052730
test rdi, rdi
je 0x14013fae2
mov rdx, qword [r14 + 8]
mov r8, qword [r14 + 0x10]
lea rcx, [rsp + 0x50]
jmp 0x14013fb02
mov rcx, qword [r14]
xor eax, eax
test rcx, rcx
setne al
movabs r15, 0xcbf29ce484222325
xor r15, rax
movabs rax, 0x1efac7090aef4a21
imul r15, rax
test rcx, rcx
je 0x14013fc00
mov r8, qword [r14 + 0x10]
test r8, r8
je 0x14013fda8
mov rax, qword [r14 + 8]
movabs rcx, 0x100000001b3
mov r9, r8
and r9, 7
je 0x14013fd29
mov r10, r15
mov rdx, rax
nop word cs:[rax + rax]
movzx r15d, byte [rdx]
inc rdx
xor r15, r10
imul r15, rcx
mov r10, r15
dec r9
jne 0x14013f8d0
cmp r8, 8
jae 0x14013fd32
jmp 0x14013fda8
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
test r15, r15
js 0x14013f76b
cvtsi2ss xmm1, r15
divss xmm0, xmm1
ucomiss xmm0, dword [0x1402058d0]
jae 0x14013f794
mov rcx, rsi
call fcn.140188e20
mov rax, qword [rsi + 0x50]
test rax, rax
je 0x14013f99f
mov rdx, qword [rsi + 0x48]
lea rcx, [rax - 1]
movabs r8, 0x3fffffffffffffff
and r8, rcx
mov rcx, rdx
cmp r8, 7
jb 0x14013f989
inc r8
mov r9, r8
and r9, 0xfffffffffffffff8
lea rcx, [rdx + r9*4]
xor r10d, r10d
movaps xmm0, xmmword [0x1402058c0]
movups xmmword [rdx + r10*4], xmm0
movups xmmword [rdx + r10*4 + 0x10], xmm0
add r10, 8
cmp r9, r10
jne 0x14013f970
cmp r8, r9
je 0x14013f99f
lea rax, [rdx + rax*4]
nop dword [rax]
mov dword [rcx], 0xffff
add rcx, 4
cmp rcx, rax
jne 0x14013f990
mov rax, qword [rsi + 0x28]
test rax, rax
je 0x14013f7ce
mov r12, qword [rsi + 0x20]
lea rax, [rax + rax*2]
shl rax, 5
add rax, r12
mov qword [rsp + 0xe0], rax
movzx r13d, word [rsi + 0x58]
mov rbp, qword [rsi + 0x48]
mov rbx, qword [rsi + 0x50]
xor edi, edi
xor r15d, r15d
lea rax, [r12 + 0x60]
mov qword [rsp + 0xf0], rax
lea rax, [r15 + 1]
mov qword [rsp + 0xe8], rax
lea rdx, [r12 + 0x38]
mov rcx, rsi
call fcn.140079460
mov ecx, r13d
and ecx, eax
mov word [r12 + 0x58], ax
xor edx, edx
cmp rcx, rbx
cmovae rcx, rdi
jb 0x14013fa29
nop word cs:[rax + rax]
test rbx, rbx
je 0x14013fad0
cmp word [rbp + rcx*4], 0xffff
je 0x14013fa93
movzx r8d, word [rbp + rcx*4 + 2]
and r8d, r13d
mov r9d, ecx
sub r9d, r8d
and r9d, r13d
cmp r9, rdx
jb 0x14013fa7a
inc rdx
inc rcx
cmp rcx, rbx
cmovae rcx, rdi
jae 0x14013fa20
jmp 0x14013fa29
movzx r8d, word [rbp + rcx*4 + 2]
mov word [rbp + rcx*4], r15w
mov word [rbp + rcx*4 + 2], ax
inc rcx
mov eax, r8d
mov r15d, edx
cmp rcx, rbx
cmovae rcx, rdi
jb 0x14013fa88
test rbx, rbx
je 0x14013fae0
movzx edx, word [rbp + rcx*4]
cmp dx, 0xffff
jne 0x14013fa60
mov word [rbp + rcx*4], r15w
mov word [rbp + rcx*4 + 2], ax
mov r12, qword [rsp + 0xf0]
cmp r12, qword [rsp + 0xe0]
mov r15, qword [rsp + 0xe8]
jne 0x14013f9d5
jmp 0x14013f7ce
jmp 0x14013fad0
jmp 0x14013fae0
movzx eax, byte [r14 + 8]
mov qword [rsp + 0xc0], rax
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0xc0]
mov r8d, 8
call fcn.140052730
mov rax, qword [rsp + 0x60]
mov r9, qword [rsp + 0x80]
shl r9, 0x38
or r9, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x68]
xor rcx, r9
mov r8, qword [rsp + 0x50]
add r8, rax
mov rdx, qword [rsp + 0x58]
add rdx, rcx
rol rax, 0xd
xor rax, r8
rol rcx, 0x10
rol r8, 0x20
xor rcx, rdx
add rdx, rax
rol rax, 0x11
add r8, rcx
xor rax, rdx
rol rcx, 0x15
xor rcx, r8
rol rdx, 0x20
xor r8, r9
xor rdx, 0xff
add r8, rax
rol rax, 0xd
add rdx, rcx
xor rax, r8
rol rcx, 0x10
xor rcx, rdx
rol r8, 0x20
add rdx, rax
add r8, rcx
rol rax, 0x11
xor rax, rdx
rol rcx, 0x15
rol rdx, 0x20
xor rcx, r8
add r8, rax
rol rax, 0xd
add rdx, rcx
xor rax, r8
rol rcx, 0x10
xor rcx, rdx
rol r8, 0x20
add rdx, rax
add r8, rcx
rol rax, 0x11
xor rax, rdx
rol rcx, 0x15
rol rdx, 0x20
xor rcx, r8
add r8, rax
rol rax, 0xd
add rdx, rcx
xor rax, r8
shl rcx, 0x10
xor rcx, rdx
add rdx, rax
shr rax, 0x2f
shr rcx, 0x2b
xor rcx, rax
mov r15, rdx
shr r15, 0x20
xor r15, rdx
xor r15, rcx
jmp 0x14013fda8
movzx ecx, byte [r14 + 8]
xor r15, rcx
imul r15, rax
jmp 0x14013fda8
mov word [rsi + 0x58], 7
movzx eax, byte [0x14027f2b8]
mov ecx, 0x20
mov edx, 2
call fcn.140055570
test rax, rax
je 0x140140258
mov r12, rax
movaps xmm0, xmmword [0x1402058c0]
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
test r15, r15
je 0x14013fc62
mov rcx, qword [rsi + 0x48]
shl r15, 2
mov r8d, 2
mov rdx, r15
call fcn.140055580
mov qword [rsi + 0x48], r12
mov qword [rsi + 0x50], 8
movzx eax, byte [0x14027f2b8]
mov ecx, 0x240
mov edx, 8
call fcn.140055570
test rax, rax
je 0x140140267
mov r15, rax
mov rdi, qword [rsi + 0x28]
test rdi, rdi
je 0x14013fcec
mov r12, qword [rsi + 0x20]
add r12, 0x30
jmp 0x14013fcce
mov rax, qword [r12 - 0x18]
mov rdx, qword [r12 - 0x10]
mov r8, qword [r12 - 8]
mov rcx, r12
call qword [rax + 0x20]
add r12, 0x60
dec rdi
je 0x14013fcec
mov rax, qword [r12 + 8]
test rax, rax
je 0x14013fcb0
lea rcx, [r12 + 0x20]
mov rdx, qword [r12 + 0x10]
mov r8, qword [r12 + 0x18]
call qword [rax + 0x20]
jmp 0x14013fcb0
mov rax, qword [rsp + 0x28]
mov rax, qword [rax]
test rax, rax
je 0x14013fd10
mov rcx, qword [rsi + 0x20]
shl rax, 5
lea rdx, [rax + rax*2]
mov r8d, 8
call fcn.140055580
mov qword [rsi + 0x18], 6
mov qword [rsi + 0x20], r15
mov qword [rsi + 0x28], 0
jmp 0x14013f7ce
mov rdx, rax
cmp r8, 8
jb 0x14013fda8
add rax, r8
nop word cs:[rax + rax]
movzx r8d, byte [rdx]
xor r8, r15
imul r8, rcx
movzx r9d, byte [rdx + 1]
xor r9, r8
imul r9, rcx
movzx r8d, byte [rdx + 2]
xor r8, r9
imul r8, rcx
movzx r9d, byte [rdx + 3]
xor r9, r8
imul r9, rcx
movzx r8d, byte [rdx + 4]
xor r8, r9
imul r8, rcx
movzx r9d, byte [rdx + 5]
xor r9, r8
imul r9, rcx
movzx r8d, byte [rdx + 6]
xor r8, r9
imul r8, rcx
movzx r15d, byte [rdx + 7]
add rdx, 8
xor r15, r8
imul r15, rcx
cmp rdx, rax
jne 0x14013fd40
and r15d, 0x7fff
movzx eax, word [rsi + 0x58]
mov r12d, r15d
and r12d, eax
xor edi, edi
jmp 0x14013fdd6
movzx ecx, byte [rcx + 8]
cmp cl, byte [r14 + 8]
je 0x14013fe85
nop dword [rax + rax]
inc rdi
inc r12
cmp r12, qword [rsi + 0x50]
jb 0x14013fde8
mov rax, qword [rsi + 0x50]
test rax, rax
je 0x14013fde0
xor r12d, r12d
mov rax, qword [rsi + 0x48]
movzx r13d, word [rax + r12*4]
cmp r13, 0xffff
je 0x14013ff3b
movzx eax, word [rax + r12*4 + 2]
movzx ecx, word [rsi + 0x58]
mov edx, eax
and edx, ecx
mov r8d, r12d
sub r8d, edx
and r8d, ecx
cmp r8, rdi
jb 0x140140031
cmp ax, r15w
jne 0x14013fdd0
mov rax, qword [rsi + 0x28]
cmp rax, r13
jbe 0x14014023d
mov rcx, qword [rsi + 0x20]
lea rbx, [r13*2]
add rbx, r13
shl rbx, 5
mov rdx, qword [rcx + rbx + 0x38]
test rdx, rdx
setne r8b
cmp qword [r14], 0
sete r9b
cmp r8b, r9b
je 0x14013fdd0
add rcx, rbx
add rcx, 0x38
test rdx, rdx
je 0x14013fdbd
mov rdx, r14
call fcn.14019d8d0
test al, al
je 0x14013fdd0
mov rax, qword [rsi + 0x28]
cmp rax, r13
jbe 0x14014023d
mov rax, qword [rsi + 0x20]
lea rdi, [rax + rbx]
lea rcx, [rsi + 0x30]
mov rdx, qword [rsp + 0x20]
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
cmp qword [rax + rbx], 0
je 0x140140197
mov r14, qword [rdi + 0x10]
mov rbx, qword [rsi + 0x40]
cmp rbx, qword [rsi + 0x30]
jne 0x14013fece
call fcn.140141f30
mov rax, qword [rsi + 0x38]
mov rcx, rbx
shl rcx, 6
mov qword [rax + rcx], 1
mov qword [rax + rcx + 8], r14
mov qword [rax + rcx + 0x10], 0
mov qword [rax + rcx + 0x18], r13
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movups xmmword [rax + rcx + 0x20], xmm0
movups xmmword [rax + rcx + 0x30], xmm1
lea rax, [rbx + 1]
mov qword [rsi + 0x40], rax
cmp r14, rax
jae 0x14014023d
mov rax, qword [rsi + 0x38]
shl r14, 6
mov qword [rax + r14 + 0x10], 1
mov qword [rax + r14 + 0x18], rbx
mov qword [rdi], 1
jmp 0x1401401f3
mov rdi, qword [rsi + 0x28]
lea rcx, [rsp + 0x30]
mov rdx, r14
call fcn.140185ae0
mov rax, qword [rsp + 0x20]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rsp + 0xb0], xmm1
movaps xmmword [rsp + 0xa0], xmm0
mov rbx, qword [rsi + 0x28]
cmp rbx, 0x7fff
ja 0x1401401fe
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xc0], xmm0
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
mov rcx, qword [rsp + 0x28]
cmp rbx, qword [rcx]
jne 0x14013ffb3
call fcn.140141e60
mov rax, qword [rsi + 0x20]
lea rcx, [rbx + rbx*2]
shl rcx, 5
mov qword [rax + rcx], 0
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movups xmmword [rax + rcx + 0x18], xmm0
movups xmmword [rax + rcx + 0x28], xmm1
movaps xmm0, xmmword [rsp + 0xc0]
movaps xmm1, xmmword [rsp + 0xd0]
movups xmmword [rax + rcx + 0x38], xmm0
movups xmmword [rax + rcx + 0x48], xmm1
mov word [rax + rcx + 0x58], r15w
inc rbx
mov qword [rsi + 0x28], rbx
cmp r12, qword [rsi + 0x50]
jae 0x14014023d
mov rax, qword [rsi + 0x48]
mov word [rax + r12*4], di
mov word [rax + r12*4 + 2], r15w
xor eax, eax
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp rdi, 0x200
setae bl
cmp qword [rsi], 2
setne bpl
lea rcx, [rsp + 0x30]
mov rdx, r14
call fcn.140185ae0
mov rax, qword [rsp + 0x20]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rsp + 0xb0], xmm1
movaps xmmword [rsp + 0xa0], xmm0
mov rdi, qword [rsi + 0x28]
cmp rdi, 0x7fff
ja 0x1401401fe
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xc0], xmm0
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
mov rcx, qword [rsp + 0x28]
cmp rdi, qword [rcx]
jne 0x1401400b7
call fcn.140141e60
and bl, bpl
mov rax, qword [rsi + 0x20]
lea rcx, [rdi + rdi*2]
shl rcx, 5
mov qword [rax + rcx], 0
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movups xmmword [rax + rcx + 0x18], xmm0
movups xmmword [rax + rcx + 0x28], xmm1
movaps xmm0, xmmword [rsp + 0xc0]
movaps xmm1, xmmword [rsp + 0xd0]
movups xmmword [rax + rcx + 0x38], xmm0
movups xmmword [rax + rcx + 0x48], xmm1
mov word [rax + rcx + 0x58], r15w
lea rax, [rdi + 1]
mov qword [rsi + 0x28], rax
mov rax, qword [rsi + 0x48]
mov rcx, qword [rsi + 0x50]
xor r8d, r8d
xor edx, edx
cmp r12, rcx
cmovae r12, r8
jb 0x140140125
test rcx, rcx
je 0x140140160
movzx r9d, word [rax + r12*4]
cmp r9w, 0xffff
je 0x140140162
inc rdx
movzx r10d, word [rax + r12*4 + 2]
mov word [rax + r12*4], di
mov word [rax + r12*4 + 2], r15w
inc r12
mov r15d, r10d
mov edi, r9d
cmp r12, rcx
cmovae r12, r8
jae 0x140140120
jmp 0x140140125
jmp 0x140140160
mov word [rax + r12*4], di
mov word [rax + r12*4 + 2], r15w
cmp rdx, 0x80
setb al
not bl
test bl, al
jne 0x14014001b
cmp qword [rsi], 0
jne 0x14014001b
mov qword [rsi], 1
jmp 0x14014001b
mov rbx, qword [rsi + 0x40]
cmp rbx, qword [rsi + 0x30]
jne 0x1401401a6
call fcn.140141f30
mov rax, qword [rsi + 0x38]
mov rcx, rbx
shl rcx, 6
mov qword [rax + rcx], 0
mov qword [rax + rcx + 8], r13
mov qword [rax + rcx + 0x10], 0
mov qword [rax + rcx + 0x18], r13
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movups xmmword [rax + rcx + 0x20], xmm0
movups xmmword [rax + rcx + 0x30], xmm1
lea rax, [rbx + 1]
mov qword [rsi + 0x40], rax
mov qword [rdi], 1
mov qword [rdi + 8], rbx
mov qword [rdi + 0x10], rbx
mov al, 1
jmp 0x14014001d
lea rcx, [rsp + 0xb8]
mov rax, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xa8]
mov r8, qword [rsp + 0xb0]
call qword [rax + 0x20]
mov rax, qword [rsp + 0x30]
test rax, rax
je 0x14014023d
lea rcx, [rsp + 0x48]
mov rdx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x40]
call qword [rax + 0x20]
ud2
mov r8, qword [rsp + 0x20]
lea rcx, [r8 + 0x18]
mov rax, qword [r8]
mov rdx, qword [r8 + 8]
mov r8, qword [r8 + 0x10]
call qword [rax + 0x20]
ud2
mov ecx, 2
mov edx, 0x20
call fcn.14018ba60
mov ecx, 8
mov edx, 0x240
call fcn.14018ba60
int3