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

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x340]
sub rsp, 0x440
mov rdi, rcx
xor r13d, r13d
mov dword [rbp + 0x390], r13d
mov qword [rsp + 0x58], r13
mov esi, reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x70], rsi
mov byte [rsp + 0x58], r13b
mov qword [rsp + 0x68], 3
xor eax, eax
mov dword [rsp + 0x58], eax
lea rdx, [rsp + 0x58]
mov byte [rbp + 0x388], 0xde
movzx eax, byte [rbp + 0x388]
lea rbx, [0x1800efec0]
movzx eax, byte [rax + rbx]
mov byte [rdx + 2], al
mov byte [rbp + 0x388], 2
movzx eax, byte [rbp + 0x388]
movzx eax, byte [rax + rbx]
mov byte [rdx + 1], al
mov byte [rbp + 0x388], 0xf6
movzx eax, byte [rbp + 0x388]
movzx eax, byte [rax + rbx]
mov byte [rdx], al
lea rdx, [rsp + 0x58]
lea rcx, [rbp + 0x80]
call fcn.18002bb40
nop
mov rdx, rdi
lea rcx, [rbp + 0x60]
call fcn.18002b530
nop
lea rdx, [rbp + 0x80]
lea rcx, [rbp + 0x60]
call fcn.180028370
mov rdx, rax
lea rcx, [rbp + 0xc0]
call fcn.18002b530
mov dword [rbp + 0x390], 1
mov rdx, qword [rbp + 0x78]
cmp rdx, 8
jb 0x18003ccb1
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003ccac
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d4db
call fcn.18008a564
movdqa xmm0, xmmword [0x180102450]
movdqu xmmword [rbp + 0x70], xmm0
mov word [rbp + 0x60], r13w
mov rdx, qword [rbp + 0x98]
cmp rdx, 8
jb 0x18003cd09
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003cd04
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d4e1
call fcn.18008a564
movdqa xmm0, xmmword [0x180102450]
movdqu xmmword [rbp + 0x90], xmm0
mov word [rbp + 0x80], r13w
mov rdx, qword [rsp + 0x70]
cmp rdx, 0x10
jb 0x18003cd5e
inc rdx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003cd59
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d4e7
call fcn.18008a564
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x70], rsi
mov byte [rsp + 0x58], 0
mov rcx, rdi
call fcn.18002eec0
test al, al
jne 0x18003cd81
xor r15b, r15b
jmp 0x18003d474
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x48], r13
mov edx, 1
lea rcx, [rsp + 0x30]
call fcn.18002c0c0
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x30]
mov byte [rax + rcx], 0
inc rcx
mov qword [rsp + 0x48], rcx
mov qword [rbp - 0x28], rsi
mov byte [rbp - 0x40], 0
mov qword [rbp - 0x30], 7
xor eax, eax
mov qword [rbp - 0x40], rax
lea rdx, [rbp - 0x40]
mov byte [rbp + 0x388], 1
movzx eax, byte [rbp + 0x388]
movzx eax, byte [rax + rbx]
mov byte [rdx + 6], al
mov byte [rbp + 0x388], 0x53
movzx eax, byte [rbp + 0x388]
movzx eax, byte [rax + rbx]
mov byte [rdx + 5], al
mov byte [rbp + 0x388], 3
movzx eax, byte [rbp + 0x388]
movzx eax, byte [rax + rbx]
mov byte [rdx + 4], al
mov byte [rbp + 0x388], 0x5c
movzx eax, byte [rbp + 0x388]
movzx eax, byte [rax + rbx]
mov byte [rdx + 3], al
mov byte [rbp + 0x388], 0x8f
movzx eax, byte [rbp + 0x388]
movzx eax, byte [rax + rbx]
mov byte [rdx + 2], al
mov byte [rbp + 0x388], 0x5c
movzx eax, byte [rbp + 0x388]
movzx eax, byte [rax + rbx]
mov byte [rdx + 1], al
mov byte [rbp + 0x388], 3
movzx eax, byte [rbp + 0x388]
movzx eax, byte [rax + rbx]
mov byte [rdx], al
lea rdx, [rbp - 0x40]
lea rcx, [rbp + 0xa0]
call fcn.18002bb40
nop
lea rdx, [rbp]
lea rcx, [rbp + 0xa0]
call fcn.1800285b0
nop
movzx ebx, word [rbp + 0x10]
mov rcx, qword [rsp + 0x38]
mov rax, rcx
mov rdx, qword [rsp + 0x30]
sub rax, rdx
lea r8, [rax + 2]
cmp r8, rax
jae 0x18003ceab
lea rcx, [r8 + rdx]
jmp 0x18003cedc
jbe 0x18003cee1
mov rax, qword [rsp + 0x40]
sub rax, rdx
cmp r8, rax
jbe 0x18003ced3
mov rdx, r8
lea rcx, [rsp + 0x30]
call fcn.18002c0c0
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
jmp 0x18003cee1
xor eax, eax
mov word [rcx], ax
add rcx, 2
mov qword [rsp + 0x38], rcx
mov rax, qword [rsp + 0x48]
mov word [rdx + rax], bx
add rax, 2
mov qword [rsp + 0x48], rax
sub rcx, rdx
mov rdx, qword [rbp + 0x10]
add rdx, rcx
lea rcx, [rsp + 0x30]
call fcn.18002b230
lea rdx, [rbp]
cmp qword [rbp + 0x18], 0x10
cmovae rdx, qword [rbp]
mov r14, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x48]
lea rcx, [r14 + rbx]
mov r8, qword [rbp + 0x10]
call fcn.18008c6d0
add rbx, qword [rbp + 0x10]
mov qword [rsp + 0x48], rbx
mov rdx, qword [rbp + 0x18]
cmp rdx, 0x10
jb 0x18003cf71
inc rdx
mov rcx, qword [rbp]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003cf6b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d4ed
call fcn.18008a564
nop
mov rdx, qword [rbp + 0xb8]
cmp rdx, 8
jb 0x18003cfb7
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003cfb2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d4f3
call fcn.18008a564
movdqa xmm0, xmmword [0x180102450]
movdqu xmmword [rbp + 0xb0], xmm0
mov word [rbp + 0xa0], r13w
mov rdx, qword [rbp - 0x28]
cmp rdx, 0x10
jb 0x18003d00a
inc rdx
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003d005
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d4f9
call fcn.18008a564
xor r15b, r15b
mov byte [rbp + 0x388], r15b
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x60], xmm0
xor r8d, r8d
mov rdx, rdi
lea rcx, [rbp - 0x60]
call fcn.18002b9c0
test eax, eax
jne 0x18003d4ff
mov rdi, qword [rbp - 0x58]
mov qword [rbp + 0x398], rdi
test rdi, rdi
je 0x18003d057
lock inc dword [rdi + 8]
mov r14, qword [rsp + 0x30]
mov rdi, qword [rbp - 0x58]
mov qword [rbp + 0x398], rdi
movdqa xmm0, xmmword [rbp - 0x60]
movdqa xmmword [rbp - 0x50], xmm0
test rdi, rdi
je 0x18003d07f
lock inc dword [rdi + 8]
mov r14, qword [rsp + 0x30]
mov rax, qword [rbp - 0x58]
mov qword [rbp + 0x398], rax
movdqa xmm0, xmmword [rbp - 0x60]
movdqa xmmword [rbp + 0x40], xmm0
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0x50]
call fcn.1800291b0
nop
mov rsi, qword [rbp - 0x50]
mov r12d, dword [rbp + 0x390]
mov rbx, qword [rbp - 0x48]
cmp rsi, qword [rbp + 0x50]
je 0x18003d3ed
mov rax, qword [rsi + 0x30]
lea rcx, [rsi + 0x20]
cmp qword [rsi + 0x38], 8
jb 0x18003d0be
mov rcx, qword [rsi + 0x20]
lea r11, [rcx + rax*2]
mov rdx, r11
call fcn.1800282d0
sub r11, rax
sar r11, 1
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x10], r13
mov qword [rbp - 8], 7
mov word [rbp - 0x20], r13w
mov r8, r11
mov rdx, rax
lea rcx, [rbp - 0x20]
call fcn.18002b6f0
or r12d, 0xe
lea r15, [rbp - 0x20]
cmp qword [rbp - 8], 8
cmovae r15, qword [rbp - 0x20]
mov r14, qword [rbp - 0x10]
call fcn.180088ad4
mov r13d, eax
xor eax, eax
mov qword [rsp + 0x78], rax
mov edx, eax
mov qword [rbp - 0x78], rax
mov r10d, reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x70], r10
mov byte [rsp + 0x78], al
bts r12d, 7
mov dword [rbp + 0x390], r12d
test r14, r14
je 0x18003d1c3
cmp r14, 0x7fffffff
ja 0x18003d525
mov dword [rsp + 0x20], eax
xor r9d, r9d
mov r8d, r14d
mov rdx, r15
mov ecx, r13d
call fcn.180088b44
mov rbx, rax
mov qword [rsp + 0x50], rax
shr rax, 0x20
test eax, eax
jne 0x18003d51b
movsxd rdx, ebx
xor r8d, r8d
lea rcx, [rsp + 0x78]
call fcn.180021950
lea r9, [rsp + 0x78]
cmp qword [rbp - 0x70], 0x10
cmovae r9, qword [rsp + 0x78]
mov dword [rsp + 0x20], ebx
mov r8d, r14d
mov rdx, r15
mov ecx, r13d
call fcn.180088b44
mov qword [rsp + 0x50], rax
shr rax, 0x20
test eax, eax
jne 0x18003d511
mov r10, qword [rbp - 0x70]
mov rdx, qword [rbp - 0x78]
btr r12d, 7
or r12d, 0x70
lea r8, [rsp + 0x78]
cmp r10, 0x10
setae r11b
mov r9, qword [rsp + 0x78]
cmovae r8, r9
mov ebx, 0x7c3f72fb
xor r13d, r13d
mov eax, r13d
test rdx, rdx
je 0x18003d215
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [rax + r8]
xor ecx, ebx
imul ebx, ecx, 0x1000193
inc rax
cmp rax, rdx
jb 0x18003d200
test r11b, r11b
je 0x18003d24b
lea rdx, [r10 + 1]
mov rax, r9
cmp rdx, 0x1000
jb 0x18003d243
add rdx, 0x27
mov r9, qword [r9 - 8]
sub rax, r9
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d52b
mov rcx, r9
call fcn.18008a564
mov qword [rbp - 0x78], r13
mov qword [rbp - 0x70], reloc.WS2_32.dll_ntohs
mov byte [rsp + 0x78], r13b
mov rdx, qword [rbp - 8]
cmp rdx, 8
jb 0x18003d29c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003d297
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d531
call fcn.18008a564
cmp ebx, 0x58b086d4
je 0x18003d2b8
lea rdx, [rsi + 0x20]
lea rcx, [rbp + 0x20]
call fcn.18005b270
nop
cmp byte [rbp + 0x38], 0
jne 0x18003d32b
movzx r15d, byte [rbp + 0x388]
mov r14, qword [rsp + 0x30]
nop word [rax + rax]
lea rdx, [rbp + 0xf0]
mov rcx, qword [rsi + 0x40]
call fcn.180088f54
cmp eax, 0x12
je 0x18003d3c8
test eax, eax
jne 0x18003d537
cmp word [rbp + 0x11c], 0x2e
jne 0x18003d317
movzx eax, word [rbp + 0x11e]
test ax, ax
je 0x18003d2d0
cmp ax, 0x2e
jne 0x18003d317
cmp word [rbp + 0x120], 0
je 0x18003d2d0
lea rdx, [rbp + 0xf0]
mov rcx, rsi
call fcn.180028dd0
jmp 0x18003d09d
lea rdx, [rsi + 0x20]
lea rcx, [rsp + 0x30]
call fcn.180029420
mov rdi, qword [rbp + 0x28]
sub rdi, qword [rbp + 0x20]
mov rdx, qword [rsp + 0x38]
sub rdx, qword [rsp + 0x30]
add rdx, 4
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x48]
mov dword [rcx + rax], edi
add rax, 4
mov qword [rsp + 0x48], rax
mov rdx, qword [rsp + 0x38]
sub rdx, rcx
add rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov r14, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x48]
lea rcx, [r14 + rbx]
mov r8, rdi
mov rdx, qword [rbp + 0x20]
call fcn.18008c6d0
add rbx, rdi
mov qword [rsp + 0x48], rbx
mov r15b, 1
mov byte [rbp + 0x388], r15b
cmp byte [rbp + 0x38], 0
je 0x18003d2d0
lea rcx, [rbp + 0x20]
call fcn.18002c060
jmp 0x18003d2d0
mov rsi, r13
mov qword [rbp - 0x50], r13
mov rcx, qword [rbp - 0x48]
mov rbx, r13
mov qword [rbp - 0x48], rbx
test rcx, rcx
je 0x18003d0a1
call fcn.1800280b0
jmp 0x18003d0a1
lea rcx, [rbp + 0x50]
call fcn.180029160
nop
test rbx, rbx
je 0x18003d405
mov rcx, rbx
call fcn.1800280b0
nop
mov rdi, qword [rbp + 0x398]
test rdi, rdi
je 0x18003d419
mov rcx, rdi
call fcn.1800280b0
test r15b, r15b
je 0x18003d439
xor r9d, r9d
lea r8, [rsp + 0x30]
mov dl, inet_ntoa
lea rcx, [0x180118fd0]
call fcn.180059d90
mov r14, qword [rsp + 0x30]
test r14, r14
je 0x18003d474
mov rdx, qword [rsp + 0x40]
sub rdx, r14
mov rax, r14
cmp rdx, 0x1000
jb 0x18003d46b
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d546
mov rcx, r14
call fcn.18008a564
nop
mov rdx, qword [rbp + 0xd8]
cmp rdx, 8
jb 0x18003d4b6
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0xc0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003d4b1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d4d5
call fcn.18008a564
movzx eax, r15b
mov rbx, qword [rsp + 0x480]
add rsp, 0x440
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.180090f98
nop
call fcn.180090f98
nop
call fcn.180090f98
nop
call fcn.180090f98
nop
call fcn.180090f98
nop
call fcn.180090f98
nop
call fcn.180090f98
nop
mov r8, rdi
mov edx, eax
lea rcx, str.directory_iterator::directory_iterator
call fcn.18002e8c0
nop
mov ecx, dword [rsp + 0x54]
call fcn.180028190
int3
mov ecx, dword [rsp + 0x54]
call fcn.180028190
int3
call fcn.180027ee0
nop
call fcn.180090f98
nop
call fcn.180090f98
int3
mov edx, eax
lea rcx, str.directory_iterator::operator
call fcn.180028b60
nop
call fcn.180090f98
int3