Function at 0x180142810
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 0x18014288d
test rax, rax
js 0x1801429e5
cvtsi2ss xmm0, rax
test r15, r15
jns 0x180142a03
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 [0x180207580]
jb 0x180142a19
mov qword [rsi], 0
jmp 0x1801428a8
mov rcx, r15
shr rcx, 2
mov rdx, r15
sub rdx, rcx
cmp rax, rdx
jne 0x1801428be
test rax, rax
je 0x180142d01
add r15, r15
mov rcx, rsi
mov rdx, r15
call fcn.1801441f0
test al, al
jne 0x18014332f
cmp dword [rsi], 2
jne 0x180142957
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 [0x180202380]
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.18003dd80
test rdi, rdi
je 0x180142bd2
mov rdx, qword [r14 + 8]
mov r8, qword [r14 + 0x10]
lea rcx, [rsp + 0x50]
jmp 0x180142bf2
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 0x180142cf0
mov r8, qword [r14 + 0x10]
test r8, r8
je 0x180142e98
mov rax, qword [r14 + 8]
movabs rcx, 0x100000001b3
mov r9, r8
and r9, 7
je 0x180142e19
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 0x1801429c0
cmp r8, 8
jae 0x180142e22
jmp 0x180142e98
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
test r15, r15
js 0x18014285b
cvtsi2ss xmm1, r15
divss xmm0, xmm1
ucomiss xmm0, dword [0x180207580]
jae 0x180142884
mov rcx, rsi
call fcn.18018bf10
mov rax, qword [rsi + 0x50]
test rax, rax
je 0x180142a8f
mov rdx, qword [rsi + 0x48]
lea rcx, [rax - 1]
movabs r8, 0x3fffffffffffffff
and r8, rcx
mov rcx, rdx
cmp r8, 7
jb 0x180142a79
inc r8
mov r9, r8
and r9, 0xfffffffffffffff8
lea rcx, [rdx + r9*4]
xor r10d, r10d
movaps xmm0, xmmword [0x180207570]
movups xmmword [rdx + r10*4], xmm0
movups xmmword [rdx + r10*4 + 0x10], xmm0
add r10, 8
cmp r9, r10
jne 0x180142a60
cmp r8, r9
je 0x180142a8f
lea rax, [rdx + rax*4]
nop dword [rax]
mov dword [rcx], 0xffff
add rcx, 4
cmp rcx, rax
jne 0x180142a80
mov rax, qword [rsi + 0x28]
test rax, rax
je 0x1801428be
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.18007ca70
mov ecx, r13d
and ecx, eax
mov word [r12 + 0x58], ax
xor edx, edx
cmp rcx, rbx
cmovae rcx, rdi
jb 0x180142b19
nop word cs:[rax + rax]
test rbx, rbx
je 0x180142bc0
cmp word [rbp + rcx*4], 0xffff
je 0x180142b83
movzx r8d, word [rbp + rcx*4 + 2]
and r8d, r13d
mov r9d, ecx
sub r9d, r8d
and r9d, r13d
cmp r9, rdx
jb 0x180142b6a
inc rdx
inc rcx
cmp rcx, rbx
cmovae rcx, rdi
jae 0x180142b10
jmp 0x180142b19
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 0x180142b78
test rbx, rbx
je 0x180142bd0
movzx edx, word [rbp + rcx*4]
cmp dx, 0xffff
jne 0x180142b50
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 0x180142ac5
jmp 0x1801428be
jmp 0x180142bc0
jmp 0x180142bd0
movzx eax, byte [r14 + 8]
mov qword [rsp + 0xc0], rax
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0xc0]
mov r8d, 8
call fcn.18003dd80
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 0x180142e98
movzx ecx, byte [r14 + 8]
xor r15, rcx
imul r15, rax
jmp 0x180142e98
mov word [rsi + 0x58], 7
movzx eax, byte [0x180281288]
mov ecx, 0x20
mov edx, 2
call fcn.180057670
test rax, rax
je 0x180143348
mov r12, rax
movaps xmm0, xmmword [0x180207570]
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
test r15, r15
je 0x180142d52
mov rcx, qword [rsi + 0x48]
shl r15, 2
mov r8d, 2
mov rdx, r15
call fcn.180057680
mov qword [rsi + 0x48], r12
mov qword [rsi + 0x50], 8
movzx eax, byte [0x180281288]
mov ecx, 0x240
mov edx, 8
call fcn.180057670
test rax, rax
je 0x180143357
mov r15, rax
mov rdi, qword [rsi + 0x28]
test rdi, rdi
je 0x180142ddc
mov r12, qword [rsi + 0x20]
add r12, 0x30
jmp 0x180142dbe
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 0x180142ddc
mov rax, qword [r12 + 8]
test rax, rax
je 0x180142da0
lea rcx, [r12 + 0x20]
mov rdx, qword [r12 + 0x10]
mov r8, qword [r12 + 0x18]
call qword [rax + 0x20]
jmp 0x180142da0
mov rax, qword [rsp + 0x28]
mov rax, qword [rax]
test rax, rax
je 0x180142e00
mov rcx, qword [rsi + 0x20]
shl rax, 5
lea rdx, [rax + rax*2]
mov r8d, 8
call fcn.180057680
mov qword [rsi + 0x18], 6
mov qword [rsi + 0x20], r15
mov qword [rsi + 0x28], 0
jmp 0x1801428be
mov rdx, rax
cmp r8, 8
jb 0x180142e98
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 0x180142e30
and r15d, 0x7fff
movzx eax, word [rsi + 0x58]
mov r12d, r15d
and r12d, eax
xor edi, edi
jmp 0x180142ec6
movzx ecx, byte [rcx + 8]
cmp cl, byte [r14 + 8]
je 0x180142f75
nop dword [rax + rax]
inc rdi
inc r12
cmp r12, qword [rsi + 0x50]
jb 0x180142ed8
mov rax, qword [rsi + 0x50]
test rax, rax
je 0x180142ed0
xor r12d, r12d
mov rax, qword [rsi + 0x48]
movzx r13d, word [rax + r12*4]
cmp r13, 0xffff
je 0x18014302b
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 0x180143121
cmp ax, r15w
jne 0x180142ec0
mov rax, qword [rsi + 0x28]
cmp rax, r13
jbe 0x18014332d
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 0x180142ec0
add rcx, rbx
add rcx, 0x38
test rdx, rdx
je 0x180142ead
mov rdx, r14
call fcn.1801a09c0
test al, al
je 0x180142ec0
mov rax, qword [rsi + 0x28]
cmp rax, r13
jbe 0x18014332d
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 0x180143287
mov r14, qword [rdi + 0x10]
mov rbx, qword [rsi + 0x40]
cmp rbx, qword [rsi + 0x30]
jne 0x180142fbe
call fcn.180145020
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 0x18014332d
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 0x1801432e3
mov rdi, qword [rsi + 0x28]
lea rcx, [rsp + 0x30]
mov rdx, r14
call fcn.180187530
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 0x1801432ee
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 0x1801430a3
call fcn.180144f50
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 0x18014332d
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.180187530
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 0x1801432ee
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 0x1801431a7
call fcn.180144f50
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 0x180143215
test rcx, rcx
je 0x180143250
movzx r9d, word [rax + r12*4]
cmp r9w, 0xffff
je 0x180143252
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 0x180143210
jmp 0x180143215
jmp 0x180143250
mov word [rax + r12*4], di
mov word [rax + r12*4 + 2], r15w
cmp rdx, 0x80
setb al
not bl
test bl, al
jne 0x18014310b
cmp qword [rsi], 0
jne 0x18014310b
mov qword [rsi], 1
jmp 0x18014310b
mov rbx, qword [rsi + 0x40]
cmp rbx, qword [rsi + 0x30]
jne 0x180143296
call fcn.180145020
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 0x18014310d
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 0x18014332d
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.18018dc30
mov ecx, 8
mov edx, 0x240
call fcn.18018dc30
int3