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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x250]
sub rsp, 0x350
mov rax, qword [0x1801044f8]
xor rax, rsp
mov qword [rbp + 0x240], rax
mov qword [rbp], r8
mov qword [rsp + 0x70], rdx
xorps xmm0, xmm0
movups xmmword [rbp + 0x30], xmm0
xorps xmm1, xmm1
movups xmmword [rbp + 0x10], xmm1
movups xmmword [rbp + 0x20], xmm0
xor esi, esi
mov qword [rbp + 8], rsi
call fcn.180009850
mov r15, rax
mov qword [rbp - 0x60], rsi
mov qword [rbp - 0x50], rsi
mov qword [rbp - 0x48], 0xf
mov byte [rbp - 0x60], sil
lea r8d, [rsi + 0x28]
lea rdx, str.RtlDosApplyFileIsolationRedirection_Ustr
lea rcx, [rbp - 0x60]
call fcn.1800058b0
nop
call fcn.180022290
lea rax, [r15 + 0x40]
mov qword [rsp + 0x60], rax
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea r8, [rbp - 0x60]
cmp qword [rbp - 0x48], 0x10
setae r13b
mov r14, qword [rbp - 0x60]
cmovae r8, r14
movabs r12, 0xcbf29ce484222325
mov qword [rsp + 0x78], r12
mov rdx, r12
mov ecx, esi
movabs r9, 0x100000001b3
mov rdi, qword [rbp - 0x50]
test rdi, rdi
je 0x180018504
nop dword [rax]
movzx eax, byte [rcx + r8]
xor rdx, rax
imul rdx, r9
inc rcx
cmp rcx, rdi
jb 0x1800184f0
mov rcx, qword [r15 + 0x30]
and rcx, rdx
add rcx, rcx
mov rax, qword [r15 + 0x18]
mov rbx, qword [rax + rcx*8 + 8]
mov rdx, qword [r15 + 8]
mov qword [rsp + 0x58], rdx
cmp rbx, rdx
je 0x180018575
mov r15, qword [rax + rcx*8]
nop dword [rax]
lea rdx, [rbx + 0x10]
mov rax, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x180018542
mov rdx, qword [rdx]
lea rcx, [rbp - 0x60]
test r13b, r13b
cmovne rcx, r14
cmp rdi, rax
jne 0x18001855e
mov r8, rdi
call fcn.1800961b0
test eax, eax
je 0x180018569
cmp rbx, r15
je 0x180018570
mov rbx, qword [rbx + 8]
jmp 0x180018530
mov rdx, qword [rsp + 0x58]
jmp 0x180018578
mov rdx, qword [rsp + 0x58]
mov rbx, rsi
test rbx, rbx
cmove rbx, rdx
mov rcx, qword [rsp + 0x60]
cmp rbx, rdx
je 0x180018595
mov rbx, qword [rbx + 0x30]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x18001859e
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rbx, rsi
test r13b, r13b
je 0x1800185d7
mov rdx, qword [rbp - 0x48]
inc rdx
mov rax, r14
cmp rdx, 0x1000
jb 0x1800185cf
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180018aec
mov rcx, r14
call fcn.180093588
test rbx, rbx
jne 0x1800185e6
mov eax, 0xc0000138
jmp 0x180018abc
call fcn.180009850
mov r15, rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x58], rax
cmp qword [rax + 0x18], 8
jb 0x180018607
mov rax, qword [rax]
mov qword [rsp + 0x58], rax
mov qword [rbp - 0x40], rsi
mov qword [rbp - 0x30], rsi
mov qword [rbp - 0x28], 0xf
mov byte [rbp - 0x40], 0
mov r8d, 0x14
lea rdx, str.RtlInitUnicodeString
lea rcx, [rbp - 0x40]
call fcn.1800058b0
nop
call fcn.180022290
lea rax, [r15 + 0x40]
mov qword [rsp + 0x68], rax
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea r8, [rbp - 0x40]
cmp qword [rbp - 0x28], 0x10
setae r13b
mov r14, qword [rbp - 0x40]
cmovae r8, r14
mov rdx, r12
mov rcx, rsi
mov rdi, qword [rbp - 0x30]
test rdi, rdi
je 0x180018694
movabs r9, 0x100000001b3
nop word [rax + rax]
movzx eax, byte [rcx + r8]
xor rdx, rax
imul rdx, r9
inc rcx
cmp rcx, rdi
jb 0x180018680
mov rcx, qword [r15 + 0x30]
and rcx, rdx
add rcx, rcx
mov rax, qword [r15 + 0x18]
mov rbx, qword [rax + rcx*8 + 8]
mov rdx, qword [r15 + 8]
mov qword [rsp + 0x60], rdx
cmp rbx, rdx
je 0x180018705
mov r15, qword [rax + rcx*8]
nop dword [rax]
lea rdx, [rbx + 0x10]
mov rax, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x1800186d2
mov rdx, qword [rdx]
lea rcx, [rbp - 0x40]
test r13b, r13b
cmovne rcx, r14
cmp rdi, rax
jne 0x1800186ee
mov r8, rdi
call fcn.1800961b0
test eax, eax
je 0x1800186f9
cmp rbx, r15
je 0x180018700
mov rbx, qword [rbx + 8]
jmp 0x1800186c0
mov rdx, qword [rsp + 0x60]
jmp 0x180018708
mov rdx, qword [rsp + 0x60]
mov rbx, rsi
test rbx, rbx
cmove rbx, rdx
mov rcx, qword [rsp + 0x68]
cmp rbx, rdx
je 0x180018735
mov rbx, qword [rbx + 0x30]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test rbx, rbx
je 0x18001873c
mov rdx, qword [rsp + 0x58]
lea rcx, [rbp + 0x30]
call rbx
jmp 0x18001873c
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
test r13b, r13b
je 0x180018775
mov rdx, qword [rbp - 0x28]
inc rdx
mov rax, r14
cmp rdx, 0x1000
jb 0x18001876d
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180018aec
mov rcx, r14
call fcn.180093588
lea rax, [rbp + 0x40]
mov qword [rbp + 0x18], rax
mov dword [rbp + 0x10], 0x1fe0000
call fcn.180009850
mov r14, rax
mov qword [rbp - 0x20], rsi
mov qword [rbp - 0x10], rsi
mov qword [rbp - 8], 0xf
mov byte [rbp - 0x20], 0
mov r8d, 0x28
lea rdx, str.RtlDosApplyFileIsolationRedirection_Ustr
lea rcx, [rbp - 0x20]
call fcn.1800058b0
nop
call fcn.180022290
lea rax, [r14 + 0x40]
mov qword [rsp + 0x68], rax
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea r8, [rbp - 0x20]
cmp qword [rbp - 8], 0x10
setae r13b
mov byte [rsp + 0x50], r13b
mov r15, qword [rbp - 0x20]
cmovae r8, r15
mov rdx, r12
mov rcx, rsi
mov rdi, qword [rbp - 0x10]
test rdi, rdi
je 0x18001881b
movabs r13, 0x100000001b3
movzx eax, byte [rcx + r8]
xor rdx, rax
imul rdx, r13
inc rcx
cmp rcx, rdi
jb 0x180018801
movzx r13d, byte [rsp + 0x50]
mov rcx, qword [r14 + 0x30]
and rcx, rdx
add rcx, rcx
mov rax, qword [r14 + 0x18]
mov rbx, qword [rax + rcx*8 + 8]
mov r12, qword [r14 + 8]
cmp rbx, r12
je 0x180018879
mov r14, qword [rax + rcx*8]
nop dword [rax + rax]
lea rdx, [rbx + 0x10]
mov rax, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x180018852
mov rdx, qword [rdx]
lea rcx, [rbp - 0x20]
test r13b, r13b
cmovne rcx, r15
cmp rdi, rax
jne 0x18001886e
mov r8, rdi
call fcn.1800961b0
test eax, eax
je 0x18001887c
cmp rbx, r14
je 0x180018879
mov rbx, qword [rbx + 8]
jmp 0x180018840
mov rbx, rsi
test rbx, rbx
cmove rbx, r12
mov rcx, qword [rsp + 0x68]
cmp rbx, r12
je 0x1800188d3
mov rbx, qword [rbx + 0x30]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test rbx, rbx
je 0x1800188d9
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
lea rax, [rbp + 8]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x20]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x10]
xor r8d, r8d
lea rdx, [rbp + 0x30]
lea ecx, [r8 + 1]
call rbx
mov r14d, eax
jmp 0x1800188df
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r14d, 0xc0000138
test r13b, r13b
je 0x180018918
mov rdx, qword [rbp - 8]
inc rdx
mov rax, r15
cmp rdx, 0x1000
jb 0x180018910
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180018aec
mov rcx, r15
call fcn.180093588
test r14d, r14d
jne 0x18001895e
mov rax, qword [rbp]
mov rax, qword [rax + 0x10]
cmp byte [rax + 0x17], r14b
je 0x180018935
mov eax, 0xc015001d
jmp 0x180018abc
mov rax, qword [rbp + 8]
mov rdx, qword [rax + 8]
mov r8, 0xffffffffffffffff
inc r8
cmp word [rdx + r8*2], 0
jne 0x180018944
mov rcx, qword [rsp + 0x70]
call fcn.180005760
jmp 0x180018ab9
cmp qword [rbp + 0x28], 0
je 0x180018ab9
call fcn.180009850
mov r15, rax
mov qword [rbp - 0x80], rsi
mov qword [rbp - 0x70], rsi
mov qword [rbp - 0x68], 0xf
mov byte [rbp - 0x80], 0
mov r8d, 0x14
lea rdx, str.RtlFreeUnicodeString
lea rcx, [rbp - 0x80]
call fcn.1800058b0
nop
call fcn.180022290
lea rax, [r15 + 0x40]
mov qword [rsp + 0x70], rax
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea rdx, [rbp - 0x80]
cmp qword [rbp - 0x68], 0x10
setae r13b
mov r12, qword [rbp - 0x80]
cmovae rdx, r12
mov rcx, rsi
mov rdi, qword [rbp - 0x70]
test rdi, rdi
je 0x180018a0e
movabs rsi, 0x100000001b3
movabs r12, 0xcbf29ce484222325
nop dword [rax + rax]
movzx eax, byte [rcx + rdx]
xor r12, rax
imul r12, rsi
inc rcx
cmp rcx, rdi
jb 0x1800189f0
mov qword [rsp + 0x78], r12
xor esi, esi
mov r12, qword [rbp - 0x80]
mov rcx, qword [r15 + 0x30]
and rcx, qword [rsp + 0x78]
add rcx, rcx
mov rax, qword [r15 + 0x18]
mov rbx, qword [rax + rcx*8 + 8]
mov rdx, qword [r15 + 8]
mov qword [rsp + 0x78], rdx
cmp rbx, rdx
je 0x180018a81
mov r15, qword [rax + rcx*8]
nop word [rax + rax]
lea rdx, [rbx + 0x10]
mov rax, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x180018a52
mov rdx, qword [rdx]
lea rcx, [rbp - 0x80]
test r13b, r13b
cmovne rcx, r12
cmp rdi, rax
jne 0x180018a6e
mov r8, rdi
call fcn.1800961b0
test eax, eax
je 0x180018a79
cmp rbx, r15
je 0x180018a7c
mov rbx, qword [rbx + 8]
jmp 0x180018a40
mov rsi, rbx
mov rdx, qword [rsp + 0x78]
test rsi, rsi
cmove rsi, rdx
mov rcx, qword [rsp + 0x70]
cmp rsi, rdx
je 0x180018aa9
mov rbx, qword [rsi + 0x30]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test rbx, rbx
je 0x180018ab0
lea rcx, [rbp + 0x20]
call rbx
jmp 0x180018ab0
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
lea rcx, [rbp - 0x80]
call fcn.180005560
mov eax, r14d
mov rcx, qword [rbp + 0x240]
xor rcx, rsp
call fcn.180093c30
lea r11, [rsp + 0x350]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.18009a4c4
int3