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

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x60]
sub rsp, 0x160
mov rax, qword [0x140230a00]
xor rax, rsp
mov qword [rbp + 0x50], rax
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rbp - 0x80], xmm0
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm0
lea rcx, [rsp + 0x50]
call fcn.1400214a0
nop
xorps xmm0, xmm0
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rbp], xmm0
movups xmmword [rbp + 0x10], xmm0
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm0
movups xmmword [rbp + 0x40], xmm0
lea rcx, [rbp - 0x30]
call fcn.1400214a0
nop
lea rdx, [rbx + 0xf8]
mov r8, qword [rbx + 0x30]
lea rcx, [rsp + 0x50]
call fcn.140021a80
mov ebx, eax
xor r14d, r14d
cmp byte [rsi], r14b
jne 0x140015931
test eax, eax
js 0x140016117
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
movzx eax, byte [rsi + 1]
mov qword [rsp + 0x40], r14
mov byte [rsp + 0x48], al
test al, al
je 0x140015909
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_Wow64DisableWow64FsRedirection]
nop
lea rdx, [rdi + 0xf8]
mov r8, qword [rdi + 0x30]
lea rcx, [rbp - 0x30]
call fcn.140021a80
mov ebx, eax
cmp byte [rsp + 0x48], 0
je 0x140015931
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_Wow64RevertWow64FsRedirection]
test ebx, ebx
js 0x140016117
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], 7
mov word [rsp + 0x20], r14w
lea rdx, str.LdrpHandleTlsData
lea rcx, [rsp + 0x20]
call fcn.140002550
lea rdx, [rsp + 0x20]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x38]
cmp rsi, 8
cmovae rdx, rdi
movabs rbx, 0xcbf29ce484222325
mov r9, rbx
mov rax, qword [rsp + 0x30]
lea r8, [rax + rax]
mov rcx, r14
movabs r15, 0x100000001b3
test r8, r8
je 0x1400159b3
nop dword [rax]
movzx eax, byte [rdx + rcx]
xor r9, rax
imul r9, r15
inc rcx
cmp rcx, r8
jb 0x1400159a0
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x70]
call fcn.140023950
mov rcx, qword [rax + 8]
mov rdx, qword [rbp - 0x68]
test rcx, rcx
cmovne rdx, rcx
cmp rdx, qword [rbp - 0x68]
je 0x1400159ea
mov eax, dword [rdx + 0x30]
add rax, qword [rsp + 0x68]
mov qword [0x140237da0], rax
cmp rsi, 8
jb 0x140015a25
lea rdx, [rsi*2 + 2]
mov rax, rdi
cmp rdx, 0x1000
jb 0x140015a1d
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001615d
mov rcx, rdi
call fcn.140079aa4
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], 7
mov word [rsp + 0x20], r14w
lea rdx, str.LdrpHandleTlsData
lea rcx, [rsp + 0x20]
call fcn.140002550
lea rdx, [rsp + 0x20]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x38]
cmp rsi, 8
cmovae rdx, rdi
mov r9, rbx
mov rax, qword [rsp + 0x30]
lea r8, [rax + rax]
mov rcx, r14
test r8, r8
je 0x140015a93
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r15
inc rcx
cmp rcx, r8
jb 0x140015a80
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x10]
call fcn.140023950
mov rcx, qword [rax + 8]
mov rdx, qword [rbp + 0x18]
test rcx, rcx
cmovne rdx, rcx
cmp rdx, qword [rbp + 0x18]
je 0x140015ac9
mov eax, dword [rdx + 0x30]
add rax, qword [rbp - 0x18]
mov qword [0x140237da8], rax
cmp rsi, 8
jb 0x140015b04
lea rdx, [rsi*2 + 2]
mov rax, rdi
cmp rdx, 0x1000
jb 0x140015afc
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140016163
mov rcx, rdi
call fcn.140079aa4
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], 7
mov word [rsp + 0x20], r14w
lea rdx, str.LdrpInvertedFunctionTable
lea rcx, [rsp + 0x20]
call fcn.140002550
lea rdx, [rsp + 0x20]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x38]
cmp rsi, 8
cmovae rdx, rdi
mov r9, rbx
mov rax, qword [rsp + 0x30]
lea r8, [rax + rax]
mov rcx, r14
test r8, r8
je 0x140015b73
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r15
inc rcx
cmp rcx, r8
jb 0x140015b60
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x70]
call fcn.140023950
mov rcx, qword [rax + 8]
mov rdx, qword [rbp - 0x68]
test rcx, rcx
cmovne rdx, rcx
cmp rdx, qword [rbp - 0x68]
je 0x140015baa
mov eax, dword [rdx + 0x30]
add rax, qword [rsp + 0x68]
mov qword [0x140237db0], rax
cmp rsi, 8
jb 0x140015be5
lea rdx, [rsi*2 + 2]
mov rax, rdi
cmp rdx, 0x1000
jb 0x140015bdd
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140016169
mov rcx, rdi
call fcn.140079aa4
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], 7
mov word [rsp + 0x20], r14w
lea rdx, str.LdrpInvertedFunctionTable
lea rcx, [rsp + 0x20]
call fcn.140002550
lea rdx, [rsp + 0x20]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x38]
cmp rsi, 8
cmovae rdx, rdi
mov r9, rbx
mov rax, qword [rsp + 0x30]
lea r8, [rax + rax]
mov rcx, r14
test r8, r8
je 0x140015c53
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r15
inc rcx
cmp rcx, r8
jb 0x140015c40
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x10]
call fcn.140023950
mov rcx, qword [rax + 8]
mov rdx, qword [rbp + 0x18]
test rcx, rcx
cmovne rdx, rcx
cmp rdx, qword [rbp + 0x18]
je 0x140015c89
mov eax, dword [rdx + 0x30]
add rax, qword [rbp - 0x18]
mov qword [0x140237db8], rax
cmp rsi, 8
jb 0x140015cc4
lea rdx, [rsi*2 + 2]
mov rax, rdi
cmp rdx, 0x1000
jb 0x140015cbc
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001616f
mov rcx, rdi
call fcn.140079aa4
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], 7
mov word [rsp + 0x20], r14w
lea rdx, str.RtlInsertInvertedFunctionTable
lea rcx, [rsp + 0x20]
call fcn.140002550
lea rdx, [rsp + 0x20]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x38]
cmp rsi, 8
cmovae rdx, rdi
mov r9, rbx
mov rax, qword [rsp + 0x30]
lea r8, [rax + rax]
mov rcx, r14
test r8, r8
je 0x140015d33
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r15
inc rcx
cmp rcx, r8
jb 0x140015d20
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x70]
call fcn.140023950
mov rcx, qword [rax + 8]
mov rdx, qword [rbp - 0x68]
test rcx, rcx
cmovne rdx, rcx
cmp rdx, qword [rbp - 0x68]
je 0x140015d6a
mov eax, dword [rdx + 0x30]
add rax, qword [rsp + 0x68]
mov qword [0x140237dc0], rax
cmp rsi, 8
jb 0x140015da5
lea rdx, [rsi*2 + 2]
mov rax, rdi
cmp rdx, 0x1000
jb 0x140015d9d
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140016175
mov rcx, rdi
call fcn.140079aa4
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], 7
mov word [rsp + 0x20], r14w
lea rdx, str.RtlInsertInvertedFunctionTable
lea rcx, [rsp + 0x20]
call fcn.140002550
lea rdx, [rsp + 0x20]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x38]
cmp rsi, 8
cmovae rdx, rdi
mov r9, rbx
mov rax, qword [rsp + 0x30]
lea r8, [rax + rax]
mov rcx, r14
test r8, r8
je 0x140015e13
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
xor r9, rax
imul r9, r15
inc rcx
cmp rcx, r8
jb 0x140015e00
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x10]
call fcn.140023950
mov rcx, qword [rax + 8]
mov rdx, qword [rbp + 0x18]
test rcx, rcx
cmovne rdx, rcx
cmp rdx, qword [rbp + 0x18]
je 0x140015e49
mov eax, dword [rdx + 0x30]
add rax, qword [rbp - 0x18]
mov qword [0x140237dc8], rax
cmp rsi, 8
jb 0x140015e84
lea rdx, [rsi*2 + 2]
mov rax, rdi
cmp rdx, 0x1000
jb 0x140015e7c
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001617b
mov rcx, rdi
call fcn.140079aa4
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], 7
mov word [rsp + 0x20], r14w
lea rdx, str.LdrpReleaseTlsEntry
lea rcx, [rsp + 0x20]
call fcn.140002550
lea rdx, [rsp + 0x20]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x38]
cmp rsi, 8
cmovae rdx, rdi
mov r9, rbx
mov rax, qword [rsp + 0x30]
lea r8, [rax + rax]
mov rcx, r14
test r8, r8
je 0x140015ef3
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rdx + rcx]
xor r9, rax
imul r9, r15
inc rcx
cmp rcx, r8
jb 0x140015ee0
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x70]
call fcn.140023950
mov rcx, qword [rax + 8]
mov rdx, qword [rbp - 0x68]
test rcx, rcx
cmovne rdx, rcx
cmp rdx, qword [rbp - 0x68]
je 0x140015f2a
mov eax, dword [rdx + 0x30]
add rax, qword [rsp + 0x68]
mov qword [0x140237dd0], rax
cmp rsi, 8
jb 0x140015f65
lea rdx, [rsi*2 + 2]
mov rax, rdi
cmp rdx, 0x1000
jb 0x140015f5d
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140016181
mov rcx, rdi
call fcn.140079aa4
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], 7
mov word [rsp + 0x20], r14w
lea rdx, str.LdrpReleaseTlsEntry
lea rcx, [rsp + 0x20]
call fcn.140002550
lea rdx, [rsp + 0x20]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x38]
cmp rsi, 8
cmovae rdx, rdi
mov r9, rbx
mov rax, qword [rsp + 0x30]
lea r8, [rax + rax]
mov rcx, r14
test r8, r8
je 0x140015fd3
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
xor r9, rax
imul r9, r15
inc rcx
cmp rcx, r8
jb 0x140015fc0
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x10]
call fcn.140023950
mov rcx, qword [rax + 8]
mov rdx, qword [rbp + 0x18]
test rcx, rcx
cmovne rdx, rcx
cmp rdx, qword [rbp + 0x18]
je 0x140016009
mov eax, dword [rdx + 0x30]
add rax, qword [rbp - 0x18]
mov qword [0x140237dd8], rax
cmp rsi, 8
jb 0x140016044
lea rdx, [rsi*2 + 2]
mov rax, rdi
cmp rdx, 0x1000
jb 0x14001603c
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140016187
mov rcx, rdi
call fcn.140079aa4
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], 7
mov word [rsp + 0x20], r14w
lea rdx, str.LdrProtectMrdata
lea rcx, [rsp + 0x20]
call fcn.140002550
lea rdx, [rsp + 0x20]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x38]
cmp rsi, 8
cmovae rdx, rdi
mov rax, qword [rsp + 0x30]
lea r8, [rax + rax]
mov rcx, r14
test r8, r8
je 0x1400160a4
movzx eax, byte [rdx + rcx]
xor rbx, rax
imul rbx, r15
inc rcx
cmp rcx, r8
jb 0x140016091
mov r9, rbx
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x70]
call fcn.140023950
mov rcx, qword [rax + 8]
mov rdx, qword [rbp - 0x68]
test rcx, rcx
cmovne rdx, rcx
cmp rdx, qword [rbp - 0x68]
je 0x1400160de
mov eax, dword [rdx + 0x30]
add rax, qword [rsp + 0x68]
mov qword [0x140237de0], rax
cmp rsi, 8
jb 0x14001611d
lea rdx, [rsi*2 + 2]
mov rax, rdi
cmp rdx, 0x1000
jb 0x14001610d
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140016157
mov rcx, rdi
call fcn.140079aa4
jmp 0x14001611d
mov r14d, 0xc0000001
lea rcx, [rbp - 0x30]
call fcn.140021990
nop
lea rcx, [rsp + 0x50]
call fcn.140021990
mov eax, r14d
mov rcx, qword [rbp + 0x50]
xor rcx, rsp
call fcn.140079bc0
mov rbx, qword [rsp + 0x190]
add rsp, 0x160
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
call fcn.1400892cc
nop
call fcn.1400892cc
int3
call fcn.1400892cc
int3
call fcn.1400892cc
int3
call fcn.1400892cc
int3
call fcn.1400892cc
int3
call fcn.1400892cc
int3
call fcn.1400892cc
int3
call fcn.1400892cc
int3