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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], r9
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x340]
sub rsp, 0x440
mov r15, r9
mov r14, r8
mov rsi, rcx
lea rbx, [rdx + 0x20]
lea rdx, [rbp]
mov rcx, rbx
call fcn.18002e2f0
mov rdx, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x18002efdd
mov rax, qword [rax]
mov r8d, 0x3857089a
mov rcx, rax
call fcn.18005a570
movzx edi, al
mov rdx, qword [rbp + 0x18]
cmp rdx, 0x10
jb 0x18002f029
inc rdx
mov rcx, qword [rbp]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002f024
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002f864
call fcn.18008a564
xor r12d, r12d
test dil, dil
je 0x18002f827
mov r8, rbx
lea rdx, [rsp + 0x30]
mov rcx, rsi
call fcn.18005ab70
nop
cmp byte [rsp + 0x30], r12b
je 0x18002f7e8
lea rcx, [rsp + 0x38]
cmp qword [rsp + 0x50], 8
cmovae rcx, qword [rsp + 0x38]
mov r9d, 0xffffffff
lea r8d, [r12 + 3]
lea rdx, [rbp + 0x20]
call fcn.18008903c
test eax, eax
jne 0x18002f099
mov ecx, dword [rbp + 0x30]
bt ecx, 0xa
jae 0x18002f094
mov eax, dword [rbp + 0x34]
cmp eax, 0xa000000c
je 0x18002f099
cmp eax, 0xa0000003
je 0x18002f099
test cl, 0x10
jne 0x18002f0f4
lea rdx, [rbp + 0x40]
lea rcx, [rsp + 0x38]
call fcn.18002e3e0
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.1800290c0
mov rdx, qword [rbp + 0x58]
cmp rdx, 8
jb 0x18002f0f4
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002f0ef
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002f86a
call fcn.18008a564
mov dword [rbp - 0x80], 0x1e326aa3
mov dword [rbp - 0x7c], 0x4f034e03
mov dword [rbp - 0x78], 0xd403194e
lea rdx, [rbp + 0x60]
lea rcx, [rsp + 0x38]
call fcn.180028710
nop
lea rdx, [rbp - 0x20]
mov rcx, rax
call fcn.18002e2f0
mov r8, rax
mov r9, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x18002f135
mov r8, qword [rax]
mov edx, 0x7c3f72fb
mov rcx, r12
test r9, r9
je 0x18002f165
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rcx + r8]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r9
jb 0x18002f150
lea rax, [rbp - 0x80]
nop dword [rax]
cmp edx, dword [rax]
je 0x18002f185
add rax, 4
lea rcx, [rbp - 0x74]
cmp rax, rcx
jne 0x18002f170
xor bl, bl
jmp 0x18002f187
mov bl, 1
mov rdx, qword [rbp - 8]
cmp rdx, 0x10
jb 0x18002f1c2
inc rdx
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002f1bd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002f870
call fcn.18008a564
mov qword [rbp - 0x10], r12
mov qword [rbp - 8], reloc.WS2_32.dll_ntohs
mov byte [rbp - 0x20], 0
mov rdx, qword [rbp + 0x78]
cmp rdx, 8
jb 0x18002f212
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002f20d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002f876
call fcn.18008a564
test bl, bl
je 0x18002f271
mov rdx, qword [rsp + 0x50]
cmp rdx, 8
jb 0x18002f258
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002f253
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002f85e
call fcn.18008a564
movdqa xmm0, xmmword [0x180102450]
movdqu xmmword [rsp + 0x48], xmm0
mov word [rsp + 0x38], r12w
jmp 0x18002f827
lea rcx, [rsp + 0x38]
call fcn.18002eec0
test al, al
je 0x18002f34e
lea rdx, [rbp + 0x80]
lea rcx, [rsp + 0x38]
call fcn.18002e2f0
mov r8, rax
mov r10, qword [rax + 0x10]
mov rdx, rax
cmp qword [rax + 0x18], 0x10
jb 0x18002f2a8
mov rdx, qword [rax]
movabs r9, 0xcbf29ce484222325
mov rcx, r12
test r10, r10
je 0x18002f2e3
movabs r11, 0x100000001b3
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r11
inc rcx
cmp rcx, r10
jb 0x18002f2d0
lea rdx, [rbp + 0xc0]
mov rcx, r14
call fcn.1800330a0
mov rbx, qword [rax + 8]
test rbx, rbx
je 0x18002f301
mov rdi, qword [r14 + 8]
jmp 0x18002f308
mov rbx, qword [r14 + 8]
mov rdi, rbx
mov rdx, qword [rbp + 0x98]
cmp rdx, 0x10
jb 0x18002f349
inc rdx
mov rcx, qword [rbp + 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002f344
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002f87c
call fcn.18008a564
cmp rbx, rdi
je 0x18002f3b1
mov rdx, qword [rsp + 0x50]
cmp rdx, 8
jb 0x18002f390
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x38]
cmp rdx, 0x1000
mov rax, rcx
jb 0x18002f38b
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002f85e
call fcn.18008a564
movdqa xmm0, xmmword [0x180102450]
movdqu xmmword [rsp + 0x48], xmm0
mov word [rsp + 0x38], r12w
mov rcx, r15
call fcn.18002b180
jmp 0x18002f840
lea rdx, [rbp + 0xa0]
lea rcx, [rsp + 0x38]
call fcn.18002e2f0
nop
mov r8, rax
lea rdx, [rbp + 0xd0]
mov rcx, r14
call fcn.180032780
nop
mov rdx, qword [rbp + 0xb8]
cmp rdx, 0x10
jb 0x18002f417
inc rdx
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002f412
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002f882
call fcn.18008a564
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
lea rdx, [rsp + 0x38]
lea rcx, [rbp - 0x50]
call fcn.18002b530
lea rcx, [rbp - 0x50]
cmp qword [rbp - 0x38], 8
cmovae rcx, qword [rbp - 0x50]
mov ebx, 0x3e
mov r9d, 0xffffffff
mov r8d, ebx
lea rdx, [rbp - 0x70]
call fcn.18008903c
test eax, eax
jne 0x18002f46d
test dword [rbp - 0x60], 0x400
mov eax, 6
cmovne ebx, eax
mov dword [rbp - 0x54], ebx
jmp 0x18002f471
mov dword [rbp - 0x54], r12d
mov rcx, qword [r15 + 0x38]
test rcx, rcx
je 0x18002f888
mov rax, qword [rcx]
lea rdx, [rbp - 0x70]
call qword [rax + reloc.WS2_32.dll_recv]
test al, al
sete bl
mov rdx, qword [rbp - 0x38]
cmp rdx, 8
jb 0x18002f4cd
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002f4c8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002f88e
call fcn.18008a564
test bl, bl
jne 0x18002f6d4
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x60], xmm0
mov r8d, 3
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x60]
call fcn.18002b9c0
test eax, eax
jne 0x18002f894
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x18002f50e
lock inc dword [rax + 8]
mov rax, qword [rsp + 0x68]
movdqa xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x20], xmm0
test rax, rax
je 0x18002f529
lock inc dword [rax + 8]
movdqa xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rbp - 0x30], xmm0
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x70]
call fcn.1800291b0
nop
mov esi, 0xffffffff
nop dword [rax]
nop word [rax + rax]
mov rdi, qword [rsp + 0x20]
cmp rdi, qword [rsp + 0x70]
je 0x18002f739
mov rcx, qword [r15 + 0x38]
test rcx, rcx
je 0x18002f8b7
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.WS2_32.dll_recv]
test al, al
je 0x18002f625
nop
lea rdx, [rbp + 0xf0]
mov rcx, qword [rdi + 0x40]
call fcn.180088f54
cmp eax, 0x12
je 0x18002f5d4
test eax, eax
jne 0x18002f8a8
cmp word [rbp + 0x11c], 0x2e
jne 0x18002f5c3
movzx eax, word [rbp + 0x11e]
test ax, ax
je 0x18002f580
cmp ax, 0x2e
jne 0x18002f5c3
cmp word [rbp + 0x120], 0
je 0x18002f580
lea rdx, [rbp + 0xf0]
mov rcx, rdi
call fcn.180028dd0
jmp 0x18002f555
mov rdi, r12
mov qword [rsp + 0x20], r12
mov rbx, qword [rsp + 0x28]
mov qword [rsp + 0x28], r12
test rbx, rbx
je 0x18002f555
mov eax, esi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x18002f550
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, esi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x18002f550
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
jmp 0x18002f550
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x18002f660
mov eax, esi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x18002f660
mov rbx, qword [rsp + 0x78]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, esi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x18002f660
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x18002f69b
mov eax, esi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x18002f69b
mov rbx, qword [rsp + 0x28]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, esi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x18002f69b
mov rcx, qword [rsp + 0x28]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x18002f6d4
mov eax, esi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x18002f6d4
mov rbx, qword [rsp + 0x68]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], esi
cmp esi, 1
jne 0x18002f6d4
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [rsp + 0x50]
cmp rdx, 8
jb 0x18002f716
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x38]
cmp rdx, 0x1000
mov rax, rcx
jb 0x18002f711
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002f85e
call fcn.18008a564
movdqa xmm0, xmmword [0x180102450]
movdqu xmmword [rsp + 0x48], xmm0
mov word [rsp + 0x38], r12w
mov rcx, r15
call fcn.18002b180
xor al, al
jmp 0x18002f842
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x18002f774
mov eax, esi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x18002f774
mov rbx, qword [rsp + 0x78]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, esi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x18002f774
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x18002f7af
mov eax, esi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x18002f7af
mov rbx, qword [rsp + 0x28]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, esi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x18002f7af
mov rcx, qword [rsp + 0x28]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x18002f7e8
mov eax, esi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x18002f7e8
mov rbx, qword [rsp + 0x68]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], esi
cmp esi, 1
jne 0x18002f7e8
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [rsp + 0x50]
cmp rdx, 8
jb 0x18002f827
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002f821
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002f85e
call fcn.18008a564
nop
mov rcx, qword [r15 + 0x38]
test rcx, rcx
je 0x18002f840
cmp rcx, r15
mov rax, qword [rcx]
setne dl
call qword [rax + 0x20]
mov qword [r15 + 0x38], r12
mov al, 1
lea r11, [rsp + 0x440]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
call fcn.180090f98
nop
call fcn.180090f98
nop
call fcn.180090f98
nop
call fcn.180090f98
nop
call fcn.180090f98
int3
call fcn.180090f98
int3
call fcn.180090f98
nop
call fcn.180087d6c
nop
call fcn.180090f98
nop
lea r8, [rsp + 0x38]
mov edx, eax
lea rcx, str.directory_iterator::directory_iterator
call fcn.18002e8c0
nop
mov edx, eax
lea rcx, str.directory_iterator::operator
call fcn.180028b60
int3
call fcn.180087d6c
int3