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

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x248]
sub rsp, 0x310
mov qword [rbp - 0x68], 0xfffffffffffffffe
mov qword [rax + 0x20], rbx
mov rax, qword [0x1401e3028]
xor rax, rsp
mov qword [rbp + 0x200], rax
mov rbx, rdx
mov r14, rcx
mov word [rsp + 0x38], r8w
xor edi, edi
mov sil, dil
mov byte [rsp + 0x30], dil
add rcx, 0x18
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rdi
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
lea eax, [rdi + 1]
lock xadd dword [rsp + 0x60], eax
test eax, eax
jne 0x1401151e6
cmp dword [rsp + 0x64], edi
jne 0x1401156c9
call sub.KERNEL32.dll_GetCurrentThreadId
mov dword [rsp + 0x64], eax
mov rcx, r14
call fcn.140115ec4
mov r13, qword [r14]
mov r12, qword [rbx + 0x10]
mov r8, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x140115202
mov r8, qword [rbx]
movabs rcx, 0xcbf29ce484222325
mov rdx, rdi
test r12, r12
je 0x140115232
movzx eax, byte [rdx + r8]
xor rcx, rax
movabs r9, 0x100000001b3
imul rcx, r9
inc rdx
cmp rdx, r12
jb 0x140115214
mov r15, qword [r13 + 0x38]
and r15, rcx
add r15, r15
mov rax, qword [r13 + 0x20]
mov qword [rsp + 0x68], rax
mov rdi, qword [rax + r15*8]
mov r13, qword [r13 + 0x10]
cmp qword [rax + r15*8], r13
jne 0x140115258
mov rax, r13
jmp 0x140115260
mov rax, qword [rax + r15*8 + 8]
mov rax, qword [rax]
cmp rdi, rax
je 0x1401152d4
lea rsi, [rdi + 0x10]
mov rdx, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x140115276
mov rdx, qword [rbx]
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x70], rax
mov rcx, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x14011528c
mov rcx, qword [rsi]
cmp rax, r12
jne 0x14011529d
mov r8, rax
call fcn.140130c00
test eax, eax
je 0x1401152a7
mov rdi, qword [rdi]
mov rax, qword [rsp + 0x68]
jmp 0x14011524d
cmp qword [rsi + 0x18], 0x10
jb 0x1401152b1
mov rsi, qword [rsi]
mov rcx, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x1401152be
mov rcx, qword [rbx]
cmp r12, qword [rsp + 0x70]
jne 0x1401152d4
mov r8, r12
mov rdx, rsi
call fcn.140130c00
test eax, eax
je 0x1401152d7
mov rdi, r13
mov rcx, r14
call fcn.140115ec4
mov rax, qword [r14]
cmp rdi, qword [rax + 0x10]
jne 0x14011535f
mov rcx, r14
call fcn.140115ec4
mov rdi, qword [r14]
mov rax, qword [rdi + 0x10]
mov rsi, qword [rax]
mov r14, qword [rsi + 8]
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
mov r9, rbx
mov r8, r14
mov rdx, rsi
call fcn.1401167fc
mov rdx, rax
mov rax, qword [rdi + 0x18]
movabs rcx, 0x492492492492491
sub rcx, rax
cmp rcx, 1
jb 0x1401156d9
inc rax
mov qword [rdi + 0x18], rax
mov qword [rsi + 8], rdx
mov qword [r14], rdx
mov r9, qword [rdi + 0x10]
mov r9, qword [r9]
lea r8, [r9 + 0x10]
lea rdx, [rbp - 0x60]
lea rcx, [rdi + 8]
call fcn.140116240
mov sil, 1
jmp 0x140115364
mov sil, byte [rsp + 0x30]
lea rcx, [rsp + 0x58]
call fcn.140039cc4
xor r12d, r12d
test sil, sil
jne 0x140115426
lea rax, [0x140186ca0]
mov qword [rbp + 0xc0], rax
lea rax, [0x1401b2928]
mov qword [rbp + 0xc8], rax
xorps xmm0, xmm0
movdqu xmmword [rbp + 0xe0], xmm0
mov rdx, rbx
lea rcx, [rbp + 0xd0]
call fcn.14002e910
mov word [rbp + 0xf0], r12w
lea rax, [rbp + 0xc0]
mov qword [rsp + 0x28], rax
lea rax, [0x1401b28c0]
mov qword [rsp + 0x20], rax
mov ecx, 0x14036a0
lea r8d, [r12 + 0xf]
call fcn.140116480
mov rax, qword [rbp + 0xe8]
cmp rax, 0x10
jb 0x140115696
mov rcx, qword [rbp + 0xd0]
mov rdx, rcx
inc rax
mov ebx, 0x1000
cmp rax, rbx
jb 0x14011541c
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
ja 0x1401156e9
call fcn.140152ed8
jmp 0x140115696
cmp word [rsp + 0x38], 0xa
je 0x140115696
lea rcx, [rbp - 0x50]
call fcn.140115bbc
movzx edx, word [rsp + 0x38]
lea rcx, [rbp - 0x50]
call fcn.140115c74
lea rdx, [rbp + 0xa0]
lea rcx, [rbp - 0x48]
call fcn.14003c440
lea r14, [0x1401862f0]
mov qword [rbp + 0x180], r14
movups xmm0, xmmword [rbp + 0xa0]
movaps xmmword [rbp + 0x1d0], xmm0
movups xmm1, xmmword [rbp + 0xb0]
movaps xmmword [rbp + 0x1e0], xmm1
movdqa xmm0, xmmword [0x1401b39c0]
movdqu xmmword [rbp + 0xb0], xmm0
mov byte [rbp + 0xa0], r12b
mov r15d, 4
mov word [rbp + 0x1f0], r15w
or rsi, 0xffffffffffffffff
mov r9, rsi
lea r8, [0x1401b2920]
lea edi, [rsi + 0x42]
mov edx, edi
lea rcx, [rbp + 0x188]
call fcn.14014f790
nop
mov qword [rbp + 0x100], r14
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x160], xmm0
mov rdx, rbx
lea rcx, [rbp + 0x150]
call fcn.14002e910
mov word [rbp + 0x170], r15w
mov r9, rsi
lea r8, [0x1401b2898]
mov edx, edi
lea rcx, [rbp + 0x108]
call fcn.14014f790
nop
mov word [rsp + 0x40], 0x7801
mov word [rsp + 0x52], r15w
mov byte [rsp + 0x50], 1
mov byte [rsp + 0x48], r12b
mov byte [rsp + 0x4c], r12b
mov word [rsp + 0x44], 0xbf01
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x48]
lea r8, [rsp + 0x4c]
lea rdx, [rsp + 0x44]
lea rcx, [rsp + 0x78]
call fcn.140108f58
lea rcx, [0x140186198]
mov qword [rbp - 0x80], rcx
lea rax, [0x140244600]
mov qword [rbp - 0x78], rax
lea rax, [0x1401b28a8]
mov qword [rbp - 0x70], rax
lea r9, [rbp + 0x180]
lea r8, [rbp + 0x100]
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x80]
call fcn.140116124
mov ebx, 0x1000
mov rax, qword [rbp + 0x168]
cmp rax, 0x10
jb 0x1401155d6
inc rax
mov rcx, qword [rbp + 0x150]
mov rdx, rcx
cmp rax, rbx
jb 0x1401155d0
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
ja 0x1401156f3
call fcn.140152ed8
nop
movdqa xmm0, xmmword [0x1401b39c0]
movdqa xmmword [rbp + 0x160], xmm0
mov byte [rbp + 0x150], r12b
mov rax, qword [rbp + 0x1e8]
cmp rax, 0x10
jb 0x140115627
inc rax
mov rcx, qword [rbp + 0x1d0]
mov rdx, rcx
cmp rax, rbx
jb 0x140115621
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
ja 0x1401156fd
call fcn.140152ed8
nop
movdqa xmm0, xmmword [0x1401b39c0]
movdqa xmmword [rbp + 0x1e0], xmm0
mov byte [rbp + 0x1d0], r12b
mov rax, qword [rbp + 0xb8]
cmp rax, 0x10
jb 0x140115674
inc rax
mov rcx, qword [rbp + 0xa0]
mov rdx, rcx
cmp rax, rbx
jb 0x14011566e
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
ja 0x1401156c0
call fcn.140152ed8
nop
lea rcx, [rbp + 0x38]
call fcn.140115b40
lea rax, [0x140182828]
mov qword [rbp + 0x38], rax
lea rcx, [rbp + 0x38]
nop dword [rax]
call fcn.14012b87c
nop
mov rcx, qword [rbp + 0x200]
xor rcx, rsp
call fcn.14012e400
mov rbx, qword [rsp + 0x368]
add rsp, 0x310
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140153124
nop
jmp 0x1401156c8
nop
xor edx, edx
mov ecx, 0x131f4c4
call fcn.1400320f0
nop
jmp 0x1401156d8
nop
lea rcx, [0x14018c0f0]
call fcn.14012a8f4
nop
jmp 0x1401156e8
nop
call fcn.140153124
nop
jmp 0x1401156f2
nop
call fcn.140153124
nop
jmp 0x1401156fc
nop
call fcn.140153124
nop
jmp 0x140115706
nop
nop