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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x40
mov rax, qword [0x18015f040]
xor rax, rsp
mov qword [rsp + 0x30], rax
cmp qword [0x1801607e0], 0
je 0x180058044
cmp byte [0x18015fb31], 0
jne 0x180058027
mov rax, qword [0x18015fe98]
lea rdx, [rsp + 0x20]
mov rcx, qword [0x18015fe80]
xor r8d, r8d
mov dword [rsp + 0x20], 0xffffffff
mov rbx, qword [rax + 0x58]
mov rax, qword [rcx]
call qword [rax + 0x178]
mov edx, dword [rsp + 0x20]
mov rcx, rbx
inc edx
call fcn.180052690
mov rbx, rax
test rax, rax
je 0x180058027
mov rcx, qword gs:[0x58]
mov edx, dword [0x18015fb14]
mov r8d, 4
mov qword [rsp + 0x58], r14
mov esi, r8d
mov r14, qword [rcx + rdx*8]
mov ecx, dword [r14 + r8]
cmp dword [0x1801600d4], ecx
jle 0x180057da1
lea rcx, [0x1801600d4]
call fcn.1800e1570
cmp dword [0x1801600d4], 0xffffffff
jne 0x180057da1
movabs rcx, 0x737ddda9e99e0b5d
call fcn.180071fb0
lea rcx, [0x1801600d4]
mov dword [0x1801600e0], eax
call fcn.1800e1504
mov edx, dword [0x1801600e0]
mov rax, qword [0x18015fe98]
mov edx, dword [rdx + rbx]
cmp edx, 0xffffffff
je 0x180058022
mov rcx, qword [rax + 0x58]
and edx, 0x7fff
call fcn.180052690
mov rbx, rax
test rax, rax
je 0x180058022
mov ecx, dword [r14 + rsi]
cmp dword [0x1801600d0], ecx
jle 0x180057e17
lea rcx, [0x1801600d0]
call fcn.1800e1570
cmp dword [0x1801600d0], 0xffffffff
jne 0x180057e17
movabs rcx, 0x9c0228dc6ecb3d3d
call fcn.180071fb0
lea rcx, [0x1801600d0]
mov dword [0x1801600e8], eax
call fcn.1800e1504
mov eax, dword [0x1801600e8]
mov rbx, qword [rax + rbx]
test rbx, rbx
je 0x180058022
mov eax, dword [r14 + rsi]
cmp dword [0x1801600ec], eax
jle 0x180057e6c
lea rcx, [0x1801600ec]
call fcn.1800e1570
cmp dword [0x1801600ec], 0xffffffff
jne 0x180057e6c
movabs rcx, 0xbb8bea5feaa6e1f9
call fcn.180071fb0
lea rcx, [0x1801600ec]
mov dword [0x1801600fc], eax
call fcn.1800e1504
mov edx, dword [0x1801600fc]
mov rax, qword [0x18015fe98]
mov edx, dword [rdx + rbx]
cmp edx, 0xffffffff
je 0x180058022
mov rcx, qword [rax + 0x58]
and edx, 0x7fff
call fcn.180052690
mov rdi, rax
test rax, rax
je 0x180058022
xor ebx, ebx
lea rdx, [rsp + 0x28]
mov qword [rsp + 0x28], rbx
mov rcx, rax
mov r8, qword [rax]
call qword [r8 + 0x130]
mov r9, qword [rsp + 0x28]
test r9, r9
je 0x180058022
mov r9, qword [r9 + 8]
movabs rcx, 0xcbf29ce484222325
mov rdx, r9
cmp byte [r9], bl
je 0x180057ee7
nop dword [rax]
inc rdx
cmp byte [rdx], bl
jne 0x180057ee0
sub rdx, r9
je 0x180058022
movabs r8, 0x100000001b3
nop word [rax + rax]
movsx rax, byte [r9 + rbx]
inc rbx
xor rcx, rax
imul rcx, r8
cmp rbx, rdx
jb 0x180057f00
movabs rax, 0xbd351618e64488bc
cmp rcx, rax
jne 0x180058022
mov eax, dword [r14 + rsi]
cmp dword [0x1801600d8], eax
jle 0x180057f69
lea rcx, [0x1801600d8]
call fcn.1800e1570
cmp dword [0x1801600d8], 0xffffffff
jne 0x180057f69
movabs rcx, 0x7a137b8341f323c8
call fcn.180071fb0
lea rcx, [0x1801600d8]
mov dword [0x1801600f8], eax
call fcn.1800e1504
mov eax, dword [0x1801600f8]
mov dword [rax + rdi], 0x3e19999a
mov eax, dword [r14 + rsi]
cmp dword [0x1801600f4], eax
jle 0x180057fb8
lea rcx, [0x1801600f4]
call fcn.1800e1570
cmp dword [0x1801600f4], 0xffffffff
jne 0x180057fb8
movabs rcx, 0x195180e84751ee2
call fcn.180071fb0
lea rcx, [0x1801600f4]
mov dword [0x1801600e4], eax
call fcn.1800e1504
mov eax, dword [0x1801600e4]
mov dword [rax + rdi], 0x3e19999a
mov eax, dword [r14 + rsi]
cmp dword [0x1801600f0], eax
jle 0x180058007
lea rcx, [0x1801600f0]
call fcn.1800e1570
cmp dword [0x1801600f0], 0xffffffff
jne 0x180058007
movabs rcx, 0x5de0d79e3a0bfca7
call fcn.180071fb0
lea rcx, [0x1801600f0]
mov dword [0x1801600dc], eax
call fcn.1800e1504
mov eax, dword [0x1801600dc]
mov byte [0x18015fb32], 0
mov byte [0x18015fb31], 1
mov dword [rax + rdi], 1
mov r14, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.1800e1360
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x40
pop rdi
ret
cmp byte [0x18015fb32], 0
jne 0x180058027
mov rax, qword [0x18015fe98]
lea rdx, [rsp + 0x20]
mov rcx, qword [0x18015fe80]
xor r8d, r8d
mov dword [rsp + 0x20], 0xffffffff
mov rbx, qword [rax + 0x58]
mov rax, qword [rcx]
call qword [rax + 0x178]
mov edx, dword [rsp + 0x20]
mov rcx, rbx
inc edx
call fcn.180052690
mov rbx, rax
test rax, rax
je 0x180058027
mov rcx, qword gs:[0x58]
mov edx, dword [0x18015fb14]
mov r8d, 4
mov edi, r8d
mov rsi, qword [rcx + rdx*8]
mov ecx, dword [rsi + r8]
cmp dword [0x1801600d4], ecx
jle 0x1800580ec
lea rcx, [0x1801600d4]
call fcn.1800e1570
cmp dword [0x1801600d4], 0xffffffff
jne 0x1800580ec
movabs rcx, 0x737ddda9e99e0b5d
call fcn.180071fb0
lea rcx, [0x1801600d4]
mov dword [0x1801600e0], eax
call fcn.1800e1504
mov edx, dword [0x1801600e0]
mov rax, qword [0x18015fe98]
mov edx, dword [rdx + rbx]
cmp edx, 0xffffffff
je 0x180058027
mov rcx, qword [rax + 0x58]
and edx, 0x7fff
call fcn.180052690
mov rbx, rax
test rax, rax
je 0x180058027
mov ecx, dword [rsi + rdi]
cmp dword [0x1801600d0], ecx
jle 0x180058161
lea rcx, [0x1801600d0]
call fcn.1800e1570
cmp dword [0x1801600d0], 0xffffffff
jne 0x180058161
movabs rcx, 0x9c0228dc6ecb3d3d
call fcn.180071fb0
lea rcx, [0x1801600d0]
mov dword [0x1801600e8], eax
call fcn.1800e1504
mov eax, dword [0x1801600e8]
mov rbx, qword [rax + rbx]
test rbx, rbx
je 0x180058027
mov eax, dword [rsi + rdi]
cmp dword [0x1801600ec], eax
jle 0x1800581b5
lea rcx, [0x1801600ec]
call fcn.1800e1570
cmp dword [0x1801600ec], 0xffffffff
jne 0x1800581b5
movabs rcx, 0xbb8bea5feaa6e1f9
call fcn.180071fb0
lea rcx, [0x1801600ec]
mov dword [0x1801600fc], eax
call fcn.1800e1504
mov edx, dword [0x1801600fc]
mov rax, qword [0x18015fe98]
mov edx, dword [rdx + rbx]
cmp edx, 0xffffffff
je 0x180058027
mov rcx, qword [rax + 0x58]
and edx, 0x7fff
call fcn.180052690
test rax, rax
je 0x180058027
xor ebx, ebx
lea rdx, [rsp + 0x28]
mov qword [rsp + 0x28], rbx
mov rcx, rax
mov r8, qword [rax]
call qword [r8 + 0x130]
mov r9, qword [rsp + 0x28]
test r9, r9
je 0x180058027
mov r9, qword [r9 + 8]
movabs rcx, 0xcbf29ce484222325
mov rdx, r9
cmp byte [r9], bl
je 0x18005822a
inc rdx
cmp byte [rdx], bl
jne 0x180058223
sub rdx, r9
je 0x180058027
movabs r8, 0x100000001b3
nop dword [rax]
movsx rax, byte [rbx + r9]
inc rbx
xor rcx, rax
imul rcx, r8
cmp rbx, rdx
jb 0x180058240
movabs rax, 0xbd351618e64488bc
cmp rcx, rax
jne 0x180058027
movabs rax, 0xb1fc1442c37f53ce
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x20], rax
movabs rbx, 0xe0a17fe7855f7bcc
mov rax, qword [rsp + 0x20]
movabs rbp, 0xb1fc1462f9073283
mov qword [rsp + 0x20], rbx
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x20], rbp
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x20], rbx
mov rax, qword [rsp + 0x20]
mov eax, dword [rsi + rdi]
cmp dword [0x1801600d8], eax
jle 0x1800582f3
lea rcx, [0x1801600d8]
call fcn.1800e1570
cmp dword [0x1801600d8], 0xffffffff
jne 0x1800582f3
movabs rcx, 0x7a137b8341f323c8
call fcn.180071fb0
lea rcx, [0x1801600d8]
mov dword [0x1801600f8], eax
call fcn.1800e1504
movabs rax, 0xb1fc1442c3695bce
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x20], rbx
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x20], rbp
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x20], rbx
mov rax, qword [rsp + 0x20]
mov eax, dword [rsi + rdi]
cmp dword [0x1801600f4], eax
jle 0x180058366
lea rcx, [0x1801600f4]
call fcn.1800e1570
cmp dword [0x1801600f4], 0xffffffff
jne 0x180058366
movabs rcx, 0x195180e84751ee2
call fcn.180071fb0
lea rcx, [0x1801600f4]
mov dword [0x1801600e4], eax
call fcn.1800e1504
movabs rax, 0x8b907b108d695dc0
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
movabs rax, 0xe0a17fe7855f7bec
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x20], rbp
mov rax, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x50]
mov qword [rsp + 0x20], rbx
mov rax, qword [rsp + 0x20]
mov eax, dword [rsi + rdi]
cmp dword [0x1801600f0], eax
jle 0x1800583e8
lea rcx, [0x1801600f0]
call fcn.1800e1570
cmp dword [0x1801600f0], 0xffffffff
jne 0x1800583e8
movabs rcx, 0x5de0d79e3a0bfca7
call fcn.180071fb0
lea rcx, [0x1801600f0]
mov dword [0x1801600dc], eax
call fcn.1800e1504
mov byte [0x18015fb32], 1
mov byte [0x18015fb31], 0
jmp 0x180058027